For DESCRIBE:
Consider: DESCRIBE ?x { ?s foaf:name "John Doe" }
It currently only outputs a graph for the first binding result, but it is
possible that there are more then one John Doe's. I believe the specs says
that resulting graph is to be the union of all the RDF graph descriptions.
Thus, the fix required is something like:
In Algebra.py:
Line 424,
rtGraph=Graph()
for binding in rt:
extensionFunctions[DESCRIBE](
query.query.describeVars,
binding,
tripleStore.graph,
rtGraph
)
return rtGraph
And the new describe method signature:
def describe(terms,bindings,graph,resultGraph=None):
"""
Default DESCRIBE returns all incomming and outgoing statements about the
given terms
"""
if resultGraph is None:
g = Graph()
else:
g = resultGraph
...
return g
Lastly, in the module rdflib.sparql.Query, there are a couple places that
try to access the obsolete 'store' attribute of a sparqlGraph.SPARLQGraph
object (ie. tripleStore.store). The fix is to replace these occurances with
'tripleStore.graph.store', or to add a 'store' property attribute to
SPARQLGraph that knows how to access the graph store properly.
_______________________________________________
Dev mailing list
[email protected]
http://rdflib.net/mailman/listinfo/dev