- From: Sean B. Palmer <sean@mysterylights.com>
- Date: Fri, 5 Sep 2003 10:23:28 +0100
- To: "Graham Klyne" <gk@ninebynine.org>
- Cc: <www-rdf-rules@w3.org>
> 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