Re: draft XML query results format spec

On 29/09/2004, at 13:43, Simon Raboczi wrote:

> <rdf:RDF  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
>   xmlns:sparql="http://www.w3.org/sw/2001/DataAccess/sparql#"
>   xmlns:var="http://www.w3.org/sw/2001/DataAccess/variable#">
>
> <sparql:Query>
>   <sparql:solution rdf:parseType="Collection">
>
>     <sparql:Solution>
>       <var:hpage rdf:resource="http://work.example.org/alice/"/>
>       <var:blurb rdf:parseType="Literal"  
> xmlns="http://www.w3.org/1999/xhtml"><p>My name is  
> <b>alice</b></p></var:blurb>
>     </sparql:Solution>
>
>     <sparql:Solution>
>       <var:hpage rdf:resource="http://work.example.org/bob/"/>
>       <var:name xml:lang="en">Bob</var:name>
>       <var:mbox rdf:resource="mailto:bob@work"/>
>       <var:age  
> rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">30</var:age>
>     </sparql:Solution>
>
>   </sparql:solution>
> </sparql:Query>
>
> </rdf:RDF>
>

On further thought, if ordered results aren't required it seems safe to  
dispense with the sparql:Query instance entirely.  The structure is  
then nearly identical to the XML version, with <rdf:RDF> in place of  
<results> and <sparql:Solution> in place of <result>.

(And I added Alice's name back, which I missed the first time around.   
Oops.)

<rdf:RDF  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:sparql="http://www.w3.org/sw/2001/DataAccess/sparql#"
   xmlns:var="http://www.w3.org/sw/2001/DataAccess/variable#">

     <sparql:Solution>
       <var:hpage rdf:resource="http://work.example.org/alice/"/>
       <var:name>Alice</var:name>
       <var:blurb rdf:parseType="Literal"  
xmlns="http://www.w3.org/1999/xhtml"><p>My name is  
<b>alice</b></p></var:blurb>
     </sparql:Solution>

     <sparql:Solution>
       <var:hpage rdf:resource="http://work.example.org/bob/"/>
       <var:name xml:lang="en">Bob</var:name>
       <var:mbox rdf:resource="mailto:bob@work"/>
       <var:age  
rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">30</var:age>
     </sparql:Solution>

</rdf:RDF>

Although SPARQL doesn't having sorting yet, I'd be reluctant to suggest  
a result format that couldn't express an ordering for the solutions.   
The idea of flipflopping between the sparql:Query-rooted form and the  
one without a sparql:Query depending on whether the query asked for  
sorted results would be unpleasant for consumption by XML tools.  The  
XML format didn't have this problem because XML elements like the  
<result> children of <results> have an order, whereas in RDF/XML the  
<sparql:Solution> children of <rdf:RDF> don't have an ordering in the  
RDF graph.   One alternative would be to add a propertty  
sparql:position with domain sparql:Solution and range  
xsd:positiveInteger that would only be present for ordered results.  If  
the preceding result was intended to be sorted by $name, it'd look like  
this:

<rdf:RDF  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:sparql="http://www.w3.org/sw/2001/DataAccess/sparql#"
   xmlns:var="http://www.w3.org/sw/2001/DataAccess/variable#">

     <sparql:Solution>
       <sparql:position  
rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</sparql: 
solutionIndex>
       <var:hpage rdf:resource="http://work.example.org/alice/"/>
       <var:name>Alice</var:name>
       <var:blurb rdf:parseType="Literal"  
xmlns="http://www.w3.org/1999/xhtml"><p>My name is  
<b>alice</b></p></var:blurb>
     </sparql:Solution>

     <sparql:Solution>
       <sparql:position  
rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">2</sparql: 
solutionIndex>
       <var:hpage rdf:resource="http://work.example.org/bob/"/>
       <var:name xml:lang="en">Bob</var:name>
       <var:mbox rdf:resource="mailto:bob@work"/>
       <var:age  
rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">30</var:age>
     </sparql:Solution>

</rdf:RDF>

Received on Wednesday, 29 September 2004 09:47:22 UTC