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