- From: Howard Katz <howardk@fatdog.com>
- Date: Mon, 28 Jun 2004 11:10:45 -0700
- To: "Eric Prud'hommeaux" <eric@w3.org>
- Cc: <public-rdf-dawg@w3.org>
On Sun, Jun 27, 2004 at 01:40:14PM -0700, Howard Katz wrote: > > I've finished my XSRQL proposal, which can be found at > http://www.fatdog.com/xsrql.html. You'll notice I've shortened the acronym > slightly: XSRQL stands for XQuery-style RDF Query Language. I hope this [ snip ... ] > To make the bootstrapping process a bit shorter, could you contrast > this approach with XQuery with Functional Accessors [4] and > TreeHugger [5]? I'm looking for short, broad statements like > where XQueryFA gets to the graph via functions, XSRQL uses syntactic > XPath extensions, or XSRQL favors the letter 'e' less than TreeHugger. > > > [1] http://www.fatdog.com/xsrql.html#Introduction > > > > [2] http://www.fatdog.com/xsrql.html#Path%20language > > > > [3] http://www.fatdog.com/xsrql.html#Examples > > [4] http://www.w3.org/2001/11/13-RDF-Query-Rules/#XQueryFA > > [5] http://www.w3.org/2001/11/13-RDF-Query-Rules/#TreeHugger Short and broad first, somewhat expanded afterward: [1] XsRQL vs.TreeHugger --------------------------- TreeHugger uses XSLT to query RDF/XML. XsRQL uses a native implementation of an XPath-like language to query the underlying triples directly. TreeHugger knows about XML; XsRQL doesn't know anything about XML. [2] XsRQL vs XQueryFA --------------------------- XQueryFA uses XQuery to query RDF/XML and not triples. It abstracts the knowledge of how to traverse the RDF graph structure embedded in the XML to user-defined functions. XsRQL looks a lot like XQuery but again doesn't know how to operate on XML. Somewhat expanded: [1] XsRQL vs. TreeHugger ------------------------ TreeHugger uses XSLT and XPath to query the RDF/XML serialization of a graph (which means it can't query into an RDF triplestore), while XsRQL uses a native implementation of an XQuery-like language with an XPath-like sublanguage to query the underlying RDF graph directly (which means it can't query into RDF/XML). TreeHugger understands and requires XML; XsRQL doesn't. Given the query, "What is the name of the person that the person named with mailbox pldms@mac.com knows" and the following RDF/XML serialization: <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <foaf:Person> <foaf:name>Damian Steer</foaf:name> <foaf:mbox rdf:resource="mailto:pldms@mac.com"/> <foaf:knows> <foaf:Person> <foaf:name>Libby Miller</foaf:name> </foaf:Person> </foaf:knows> </foaf:Person> </rdf:RDF> TreeHugger uses XSLT and the following XPath to return "Libby Miller": /foaf:Person/foaf:mbox[@rdf:resource='mailto:pldms@mac.com']/.. /foaf:knows/foaf:Person/foaf:name/text() Given the triples formulation: _:jARP65578 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> . _:jARP65578 <http://xmlns.com/foaf/0.1/name> "Damian Steer" . _:jARP65578 <http://xmlns.com/foaf/0.1/mbox> <mailto:pldms@mac.com> . _:jARP65580 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> . _:jARP65580 <http://xmlns.com/foaf/0.1/name> "Libby Miller" . _:jARP65578 <http://xmlns.com/foaf/0.1/knows> _:jARP65580 . XsRQL says: declare prefix f:= <http://xmlns.com/foaf/0.1/>; *[ @f:mbox = "mailto:pldms@mac.com" ]/@f:knows/*/@f:name/* [2] XsRQL vs XQuery with Functional Accessors ------------------------------------------- XQuery with Functional Accessors (XQueryFA), like TreeHugger, requires an RDF/XML serialization of the graph, but in this case the query is done directly in XQuery (as opposed to XSLT in the case of TreeHugger, and a native implementation in the case of XsRQL), and the knowledge of how to traverse the RDF graph that's represented in the XML is abstracted out to user-defined functions. For both XsRQL and XQueryFA, the full syntactic power of XQuery (the real thing in the case of XQueryFA; a syntactic clone in the case of XsRQL) is available for further transformation and manipulation on the results. Howard
Received on Monday, 28 June 2004 14:09:51 UTC