W3C home > Mailing lists > Public > public-rdf-dawg@w3.org > April to June 2004

Re: RDF Graph Patterns

From: Pat Hayes <phayes@ihmc.us>
Date: Mon, 17 May 2004 12:37:12 -0500
Message-Id: <p06001f0abcce97de4a10@[10.0.100.76]>
To: "Seaborne, Andy" <andy.seaborne@hp.com>
Cc: RDF Data Access Working Group <public-rdf-dawg@w3.org>

>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.
>

Sound too general to me. For example, one can describe RDF graphs 
using reification, but I wouldnt want to count that as a 'pattern'. 
Suggest instead your first example as a suitable definition of 
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.

That would be my definition, not an example.

>
>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.

That should be part of the definition of 'substitute for a variable'. 
It kind of falls out of he way that RDF graphs syntax is defined in 
terms of sets rather than as expressions.

>
>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.

Or think of it as a set of query graph patterns.

>
>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.

True, but we could accommodate that into this definition of pattern 
by allowing 'variables' to be more highly structured things, like 
describing sorted quantification as quantification over sorted 
variables.

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

Sounds about right to me, though I think we need to be very careful 
to describe those restrictions appropriately. One kind of useful 
restriction might be to a datatype, to constrain literal bindings (?).

Pat

>
>	Andy


-- 
---------------------------------------------------------------------
IHMC	(850)434 8903 or (650)494 3973   home
40 South Alcaniz St.	(850)202 4416   office
Pensacola			(850)202 4440   fax
FL 32501			(850)291 0667    cell
phayes@ihmc.us       http://www.ihmc.us/users/phayes
Received on Monday, 17 May 2004 13:37:35 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:15:19 GMT