Hi,

I found out (after a bug-report from my users) that the SPARQL XML
results are not looking the same as proposed in [1].

I wrote a small program (attached) and tried to reproduce example 3.1
from [1]. It seems like that for each binding there is also a result
tag. Also, ORDER BY in SPARQL-queries does not work. I got the
following traceback when running the query from 3.1:

Traceback (most recent call last):
 File "testQuery.py", line 42, in ?
   results = graph.query(test_query)
 File "/usr/lib/python2.4/site-packages/rdflib/Graph.py", line 642, in query
   return plugin.get('SPARQLQueryResult',QueryResult)(p.query(strOrQuery,
initBindings, initNs, DEBUG))
 File "/usr/lib/python2.4/site-packages/rdflib/sparql/bison/Processor.py",
line 34, in query
   return  Evaluate(self.graph, strOrQuery, initBindings, DEBUG=DEBUG)
 File "/usr/lib/python2.4/site-packages/rdflib/sparql/bison/SPARQLEvaluate.py",
line 382, in Evaluate
   expr = orderCond.expression.reduce()
AttributeError: 'Variable' object has no attribute 'expression'

Is this the best channel to report bugs, or should I use the
trac-installation linked from rdflib.net?

Thanks,
Mikael

[1] http://www.w3.org/TR/rdf-sparql-XMLres/
from rdflib import ConjunctiveGraph, plugin
from rdflib.store import Store
from StringIO import StringIO

test_data = """ 
@prefix foaf:       <http://xmlns.com/foaf/0.1/> .
@prefix rdf:        <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:	    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ex:         <http://ns.example.org/#> .

_:a  foaf:name       "Alice" .
_:a  foaf:homepage   <http://work.example.org/alice/> .
#_:a  ex:blurb       "<p xmlns=\"http://www.w3.org/1999/xhtml\";>My name is <em>Alice</em></p>"^^rdf:XMLLiteral .
_:a  foaf:mbox       "" .
_:a  foaf:knows      _:b .

_:b  foaf:name       "Bob"@en .
_:b  foaf:mbox       <mailto:[EMAIL PROTECTED]> .
_:b  foaf:homepage   <http://work.example.org/bob/> .
_:b  ex:ageInYears   30 .
_:b  foaf:knows      _:a .
"""

test_query = """
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX ex: <http://ns.example.org/#>

SELECT ?x ?hpage ?name ?mbox ?age ?blurb ?friend

WHERE { ?x foaf:name ?name .
        ?x foaf:mbox ?mbox .
        ?x foaf:homepage ?hpage .
        ?x foaf:knows ?friend .
        OPTIONAL { ?x ex:ageInYears ?age } .
        OPTIONAL { ?x ex:blurb ?blurb }
      }
#ORDER BY ?name
"""

graph = ConjunctiveGraph(plugin.get('IOMemory',Store)())
graph.parse(StringIO(test_data), format="n3")
results = graph.query(test_query)

print results.serialize(format='xml')
<?xml version="1.0" encoding="utf-8"?>
<sparql:sparql xmlns:sparql="http://www.w3.org/2005/sparql-results#"; xmlns:xml="http://www.w3.org/XML/1998/namespace";><sparql:head><sparql:variable name="friend"></sparql:variable><sparql:variable name="x"></sparql:variable><sparql:variable name="hpage"></sparql:variable><sparql:variable name="name"></sparql:variable><sparql:variable name="mbox"></sparql:variable></sparql:head><sparql:results distinct="false" ordered="false"><sparql:result><sparql:binding name="x"><sparql:bnode name="x">zxdcQDqs5</sparql:bnode></sparql:binding></sparql:result><sparql:result><sparql:binding name="hpage"><sparql:uri name="hpage">http://work.example.org/alice/</sparql:uri></sparql:binding></sparql:result><sparql:result><sparql:binding name="name"><sparql:literal>Alice</sparql:literal></sparql:binding></sparql:result><sparql:result><sparql:binding name="age"><sparql:literal datatype="http://www.w3.org/2001/XMLSchema#integer";>30</sparql:literal></sparql:binding></sparql:result><sparql:result><sparql:binding name="friend"><sparql:bnode name="friend">zxdcQDqs6</sparql:bnode></sparql:binding></sparql:result><sparql:result><sparql:binding name="x"><sparql:bnode name="x">zxdcQDqs6</sparql:bnode></sparql:binding></sparql:result><sparql:result><sparql:binding name="hpage"><sparql:uri name="hpage">http://work.example.org/bob/</sparql:uri></sparql:binding></sparql:result><sparql:result><sparql:binding name="name"><sparql:literal xml:lang="en">Bob</sparql:literal></sparql:binding></sparql:result><sparql:result><sparql:binding name="mbox"><sparql:uri name="mbox">mailto:[EMAIL PROTECTED]</sparql:uri></sparql:binding></sparql:result><sparql:result><sparql:binding name="age"><sparql:literal datatype="http://www.w3.org/2001/XMLSchema#integer";>30</sparql:literal></sparql:binding></sparql:result><sparql:result><sparql:binding name="friend"><sparql:bnode name="friend">zxdcQDqs5</sparql:bnode></sparql:binding></sparql:result></sparql:results></sparql:sparql>
_______________________________________________
Dev mailing list
[email protected]
http://rdflib.net/mailman/listinfo/dev

Reply via email to