]> Definition of the RDF Query Vocabulary 1.0 Patrick Stickler (patrick.stickler@nokia.com) Nokia application/rdf+xml Copyright (C) 2003 Nokia. All rights reserved. This document may be copied, published, and distributed, without restriction of any kind, provided it is not modified in any way. THIS DOCUMENT IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE DOCUMENT IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND USABILITY OF THIS DOCUMENT IS WITH YOU. SHOULD THIS DOCUMENT PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT NOKIA, ITS LICENSORS OR AFFILIATES OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. RDFQ: RDF Query Vocabulary 1.0 RDFQ is an RDF vocabulary and query model for resource and resource knowledge discovery. RDFQ is a tool for knowledge discovery, rather than for knowledge management or knowledge manipulation. Requesting agents submitting RDFQ queries need not know how knowledge is organized, partitioned, modeled, stored, accessed, or manipulated internally by the server. The RDFQ vocabulary provides for the definition of templates which can be matched against actual resource descriptions. The results of an RDFQ query is a an RDF graph containing either (a) the concise bounded descriptions of all resources matched by one or more of the specified target templates, or (b) a set of variable binding declarations. Any number of queries can be submitted in the same request, and any number of templates can be specified as part of the same query, and the results of all matched templates and queries specified in the input request are merged together in the results. A typical RDFQ query corresponds to the request: "Tell me everything you know about the resources which have the following characteristics..." In addition to one or more target templates, an input request may contain any amount of auxilliary knowledge which will be taken into account when executing the query. For servers which provide basic inference support, this is particularly useful for asserting vocabulary relationships between terms used by the server and terms used by the requesting agent, to tailor the results to the agent's needs, or to impose agent-specific assumptions on the evaluation of the query which are not shared by the server. Query A query is a collection of one or more templates to be matched against resource descriptions. It also may specify an RSS 1.0 channel, in terms of which the results are organized. Query Target A target is a template to be matched against resource descriptions. Property values for target resources may be exact, or qualified. A target property specified with an unqualified rdfq:Value will match any target property value, but at least one target property value must exist for the match to succeed. Target Graph A target graph is a template to be matched against named graphs, if supported by the query service. A named graph corresponds to a particular set of RDF statements (a graph) identified explicitly by a URI and typically qualified by one or more warrants providing a means to verify the source, authority, and validity of the graph. Comparison of resource target templates is restricted to named graphs which match a target graph template. Property values for target graphs may be exact, or qualified. Qualified Value A qualified value is a target property value which matches an actual resource value according to one or more operators. All operators must match in order for the qualified value to match the resource value. If no operators are specified, then the qualified value will match any target property value, but at least one target property value must exist for the match to succeed. Optional Value A optional value is a qualified value which need not match, but if it does, is bound to any specified local identifier specified with rdfq:id which can be selected using rdfq:select. Predicate A predicate of an RDF statement. variable selection Specifies a list (set) of variables for which bindings should be defined in the results. If a variable selection list is specified for an rdfq:Query, the results of that query will be output as variable bindings rather than outputting the concise bounded descriptions of all matched targets in the query. target graph Specifies a target graph to be matched. If the specified target is an anonymous target graph template, the template is matched against all named graphs in the knowledge base, with the statements of all matched graphs being included in the scope of the query. If the target graph is an explicitly named graph, the statements of that graph are included in the scope of the query. query target Specifies a target to be matched. If the specified target is an anonymous target template, the template is matched against all resources in the knowledge base. If the target is a named resource, the description of that resource is included in the results. 1 property The super-property of all properties. Every property is inferred to be a subproperty of this property; thus, this property matches every property in the graph. Not to be confused with rdfq:predicate. predicate The predicate of a particular property:value pair. Not to be confused with rdfq:property. not equal to The resource value is not equal to the specified value. less than The resource value is less than the specified value. greater than The resource value is greater than the specified value. less than or equal to The resource value is less than or equal to the specified value. greater than or equal to The resource value is greater than or equal to the specified value. matches regular expression The resource value's string representation matches the specified regular expression. Applies to literal values only. For typed literals, the string representation corresponds to the lexical form. For plain literals, the string representation is the literal itself, irrespective of language tag. language tag The resource value's language tag matches the specified language tag. Applies to plain literal values only. Comparison of language tags is case insensitive. local identifier A local identifier (variable) associated with a node within a particular target template. Local identifiers are used both for equating two or more otherwise unspecified values (e.g. two property values are the same, no matter what those values are) as well as binding variables for result set output as specified by an rdfq:select variable list. one hour ago Denotes the date and time exactly one hour ago from the present. one day ago Denotes the date and time exactly one day ago from the present. one week ago Denotes the date and time exactly one week ago from the present. one month ago Denotes the date and time exactly one month ago from the present. one year ago Denotes the date and time exactly one year ago from the present. no defined value Denotes the absence of any defined value.