- From: Henry S. Thompson <ht@cogsci.ed.ac.uk>
- Date: Fri, 02 Jan 2004 14:42:53 +0000
- To: www-rdf-rules@w3.org
As briefly discussed at the BOF in Philadelphia, here's my proposal for using XQuery to query RDF graphs, by traversing a synthetic XPath data model which is an Edinburgh Normal Form reflection (see [1]) of the RDF graph: First the reflection -- basically elements encode relations, attributes encode properties and (RDF) types encode entities. <_anon rdf:type="wsdl:service"> <a href="http://www.w3.org/2001/11/13-RDF-Query-Rules/#implementations"> From Eric P</a> <wsdl:hasPort rdf:type="wsdl:port"> <wsdl:binding wssoap:style="wssoap:document" wssoap:transport="wssoap:http" wsdl:name="es:EndorsementSoapSearchBinding"/> <wssoap:address>. . .</wssoap:address> </wsdl:hasPort> </_anon> and here's the query (I'm not an XQuery expert, so someone who is please correct any mistakes -- I trust the intention at least is clear): <flwr>for $port in //*[rdf:type="wsdl:service"]/wsdl:hasPort for $binding in $port/wsdl:binding[@wssoap:style="wssoap:document"] return ($port, $binding/@wsdl:name) </flwr> I think a more interesting approach, which allows more native use of the power of typed XPath expressions, assumes a reflection which uses _Schema_ (complex) types to encode entities: <flwr>for $port in //element(*,wsdl:service)/wsdl:hasPort for $binding in $port/wsdl:binding[@wssoap:style="wssoap:document"] return ($port, $binding/@wsdl:name) </flwr> ht [1] http://www.idealliance.org/papers/extreme03/html/2003/Thompson01/EML2003Thompson01.html -- Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh Half-time member of W3C Team 2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440 Fax: (44) 131 650-4587, e-mail: ht@cogsci.ed.ac.uk URL: http://www.ltg.ed.ac.uk/~ht/ [mail really from me _always_ has this .sig -- mail without it is forged spam]
Received on Friday, 2 January 2004 09:43:11 UTC