Re: Pondering RDF Path

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

Received on Friday, 5 September 2003 05:26:40 UTC