W3C home > Mailing lists > Public > www-rdf-rules@w3.org > September 2001

Re: What is an RDF Query?

From: pat hayes <phayes@ai.uwf.edu>
Date: Mon, 10 Sep 2001 20:51:36 -0500
Message-Id: <v04210116b7c31d51a5a7@[205.160.76.173]>
To: Sandro Hawke <sandro@w3.org>
Cc: www-rdf-rules@w3.org
>I agree that RDF queries and RDF rule premises

Er.....actually, rule consequents/conclusions are more like queries 
than rule premises are. Is that what you meant?

> are basically the same
>things.  So what is an RDF query?
>
>At a very abstract level, I think the RDF query API is something like:
>
>    match(dataset, pattern) -> set of solutions
>
>This vaguely matches every RDF query system I've heard of.  The
>dataset is a set of RDF statements (triples), and the pattern is a set
>of RDF statements (triples) which may have existential variable
>elements.  A solution is either (1) a mapping from the variables to
>constants or (2) a set of triples which match the pattern (that is,
>with the variable subsitution done), or (3) both.  I think this is
>equivalent to a relational join.
>
>There is a shift in complexity if we go with the interpretation of RDF
>"anonymous nodes" as existential variables.  That simplifies things by
>saying the pattern is just an RDF graph like any other, but it
>complicates things by allowing the dataset to have variables too.
>This seems to be equivalent to trying to perform unification [1]
>between the two sets as conjunctions of their triples, with the
>complication that the elements have no intrinsic ordering.  (Does that
>turn this into a much harder problem, or is there a trick to making it
>not matter?)

Its pretty easy. Its 'flat' unification (terms don't get nested) and 
the basic rule is that a varaible in a premis acts just like a 
constant, ie its illegal to bind anything to it, but it can be bound 
to a consequent/query variable.

>This makes the match seem more symmetric, but it's still being able to
>match all the triples in the second argument which constitutes
>"success".

Right.

>If a match fails, it would be nice to have a pointer to a triple in
>the pattern it was unable to find in the dataset under any consistent
>set of variable bindings.  (I've been playing around with ideas for
>DAML diff [2], and that seems like good information to get out.)
>
>I don't think inference being used to arrive at either dataset changes
>the basic query operation (which is part of what makes queries and
>rule-premises the same thing), but it does suggest we'd like solutions
>to perhaps include proofs.

The big extension over RDF is going to be when the answer involves 
nested terms which are generated during the inference process, as in 
Prolog. Not that its really hard to do, but the technology changes in 
substantial ways.

Pat

---------------------------------------------------------------------
(650)859 6569 w
(650)494 3973 h (until September)
phayes@ai.uwf.edu 
http://www.coginst.uwf.edu/~phayes
Received on Monday, 10 September 2001 21:50:10 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:53:09 GMT