Using XML Query and reflection to query RDF

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