Re: Pondering RDF Path

OK, it sounds to me as if you're treating a path as a syntactic sugaring of 
a query-for-triples, which is pretty much how I ended up doing my own query 
implementation for report generation, etc.  Currently, primitive triple 
queries form the basis of some inference tool work I'm doing.

My discussion about abstraction was, in part, extrapolating from my 
perception of the relationship between XPath and XQuery, where XPath 
provides low-level access to the underlying syntax of an XML document, and 
XQuery builds upon that.

Cheers!

#g
--

At 10:23 05/09/03 +0100, Sean B. Palmer wrote:
> > I'd be interested to hear how you think an RDF
> > Path language differs from the simple RDF query
> > proposals that have been circulating.
>
>I believe that it differs only in the way that the API accesses and
>returns the information. With RDF-Query, you dip a graph in and see
>what sticks; with RDF-Path you start from a point and walk about. And
>an RDF-Query returns bindings, whereas an RDF-Path interrogation will
>return a list of nodes.
>
>I have said before that "RDF is is own path language", and I still
>think that the differences are minimal. On Aaron's RDF
>Path document, cited from my ponderings, he provides a similar note:
>Sandro suggested that the difference between a Path and a Query is
>negligable. In fact, int he drafting of my RDF Path note, one of the
>examples I came up with was formulated from a query. Viz. that this:-
>
>*[rdf:type/foaf:Person foaf:name/"Sean B. Palmer"]/foaf:knows/
>*[rdf:type/foaf:Person]/foaf:mbox/*
>
>Started out as:-
>
>{ ?x a foaf:Person; foaf:name "Sean B. Palmer";
>    foaf:knows ?y . ?y a foaf:Person; foaf:mbox ?z }
>
>But the difference is that the latter is really a list of triples:-
>
>?x rdf:type foaf:Person .
>?x foaf:name "Sean B. Palmer" .
>?x foaf:knows ?y .
>?y rdf:type foaf:Person .
>?y foaf:mbox ?z .
>
>And the former is a mixture of selectors, filters, and paths:-
>
>Select: *
>Test: rdf:type/foaf:Person
>Test: foaf:name/"Sean B. Palmer"
>Path: foaf:knows/*
>Test: rdf:type/foaf:Person
>Path: foaf:mbox/*
>
>With Query, you can start matching any of the triples in any order,
>whereas with the path you have to do all of the pieces in order. So
>Path is more straightforward in that respect.
>
> > (Roughly, I'm thinking of *Path as a selector that operates
> > closely on the syntax to which it is applied, where *Query
> > abstracts away somewhat to access (at some level) the
> > information thus encoded.)
>
>I don't think that *Query is all that abstract: it's just a triple
>matching procedure, with a search tree where bindings must be
>satisfied. But it's certainly different to *Path in that respect,
>though I was planning on implementing *Path on top of *Query
>methods...
>
>--
>Sean B. Palmer, <http://purl.org/net/sbp/>
>"phenomicity by the bucketful" - http://miscoranda.com/

------------
Graham Klyne
GK@NineByNine.org

Received on Friday, 5 September 2003 08:16:35 UTC