-
Notifications
You must be signed in to change notification settings - Fork 579
Closed
Description
Issue: When performing a CONSTRUCT query on a triplestore-backed Dataset, an error is raised if the result set is empty.
Environment: Linux, Python 3.5.3, rdflib 4.2.2, Fuseki/TDB 3.4.0 back end
To reproduce:
>>> from rdflib.plugins.stores.sparqlstore import SPARQLUpdateStore
>>> from rdflib import Dataset, Graph
>>>
>>> store = SPARQLUpdateStore(queryEndpoint='http://localhost:3030/my_dataset/query',
... update_endpoint='http://localhost:3030/my_dataset/update',
... autocommit=False)
>>> ds = Dataset(store, default_union=True)
>>>
>>> # This is expected:
>>> qres = ds.query('SELECT * WHERE { <urn:res:a> ?p ?o . }')
>>> len(qres)
22
>>> # This is expected:
>>> qres = ds.query('CONSTRUCT WHERE { <urn:res:a> ?p ?o . }')
>>> len(qres)
22
>>> # This is expected:
>>> qres = ds.query('SELECT * WHERE { <urn:bogus:0> ?p ?o . }')
>>> len(qres)
0
>>> # This is NOT expected:
>>> qres = ds.query('CONSTRUCT WHERE { <urn:bogus:0> ?p ?o . }')
Traceback (most recent call last):
File "/home/scossu/code/my_prj/virtualenv/lib/python3.5/site-packages/rdflib/plugins/sparql/results/xmlresults.py", line 64, in __init__
raise
RuntimeError: No active exception to reraise
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/scossu/code/my_prj/virtualenv/lib/python3.5/site-packages/rdflib/graph.py", line 1079, in query
**kwargs)
File "/home/scossu/code/my_prj/virtualenv/lib/python3.5/site-packages/rdflib/plugins/stores/sparqlstore.py", line 616, in query
return SPARQLStore.query(self, *args, **kwargs)
File "/home/scossu/code/my_prj/virtualenv/lib/python3.5/site-packages/rdflib/plugins/stores/sparqlstore.py", line 320, in query
return Result.parse(res)
File "/home/scossu/code/my_prj/virtualenv/lib/python3.5/site-packages/rdflib/query.py", line 197, in parse
return parser.parse(source, **kwargs)
File "/home/scossu/code/my_prj/virtualenv/lib/python3.5/site-packages/rdflib/plugins/sparql/results/xmlresults.py", line 34, in parse
return XMLResult(source)
File "/home/scossu/code/my_prj/virtualenv/lib/python3.5/site-packages/rdflib/plugins/sparql/results/xmlresults.py", line 69, in __init__
"No RDF Graph, result-bindings or boolean answer found!")
rdflib.query.ResultException: No RDF Graph, result-bindings or boolean answer found!
Metadata
Metadata
Assignees
Labels
No labels