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
Dev@rdflib.net
http://rdflib.net/mailman/listinfo/dev

Reply via email to