RDF Graph Patterns

RDF Graph Patterns::

An RDF Graph Pattern is a description of a set of RDF subgraphs.  If an RDF
graph is in the set then it is said to match the graph pattern.


(If anyone can define 'match' further without getting into defining the
expressiveity of the pattern, do suggest something).

c.f regular expressions and strings - and we get to define the expressivity
of the graph pattern expression language.

Example: Simple case::

RDF Graphs are defined in http://www.w3.org/TR/rdf-concepts/ in terms of RDF
triples.  An RDF triple pattern is an RDF Triple with the addition that
subject, predicate or object can be a named query variable as well as the
items defined in "RDF Concepts".  An RDF Graph Pattern is a set of RDF
Triple Patterns.

A match is an association of RDF graph labels and the variables, such that
substituting the labels for variables yields an RDF subgraph of the source
RDF graph.

In matching, if a query variable is used in more than one triple pattern,
and/or more than once in a single triple pattern, it must be bound to the
same label in any one query solution.

Discussion::

This is the conjunctive form of graph patterns : its an RDF graph with some
of the subject/predicate/object replaced by query variable (not bNodes of
the graph).  If we have disjunction in any form, then just a
graph-with-variables isn't enough - we need a construction to express
disjunction or (maybe) reify the query pattern.

This does not say anything about restricting labels matched by value or
lexical form.  There may well be syntactic sugar to make this easier to
write but it is equivalent to putting a variable (not part of the results
for the variable binding case) into the graph pattern and, separately,
writing an expression limiting the range of values for the label.

I'd like to see a building block being a conjunctive graph pattern with a
set of restrictions on labels.

	Andy

Received on Thursday, 13 May 2004 06:29:21 UTC