Using FROM on ConjunctiveGraph causes Web Access · Issue #810 · RDFLib/rdflib (original) (raw)

I want to use FROM in a SPARQL query to select the default graph to execute the query on. But the RDFlib tries to call the graphs URI instead of resolving it in the ConjunctiveGraph.
To demonstrate this behavior, I've created an MWE:

#!/usr/bin/env python3

from rdflib import ConjunctiveGraph

data = """<urn:a> <urn:a> <urn:a> <urn:a> .
<urn:b> <urn:b> <urn:b> <urn:b> .
<urn:c> <urn:c> <urn:c> <urn:c> ."""

if __name__ == "__main__":
    graph = ConjunctiveGraph()
    graph.parse(data=data, format='nquads')
    graph.query("SELECT * FROM <urn:a> {?s ?p ?o}")
Traceback (most recent call last):
  File "…/lib/python3.5/site-packages/rdflib/plugins/sparql/sparql.py", line 266, in _load
    return graph.load(source, format='nt', **kwargs)
  File "…/lib/python3.5/site-packages/rdflib/graph.py", line 1050, in load
    self.parse(source, publicID, format)
  File "…/lib/python3.5/site-packages/rdflib/graph.py", line 1488, in parse
    file=file, data=data, format=format)
  File "…/lib/python3.5/site-packages/rdflib/parser.py", line 186, in create_input_source
    input_source = URLInputSource(absolute_location, format)
  File "…/lib/python3.5/site-packages/rdflib/parser.py", line 106, in __init__
    file = urlopen(req)
  File "/usr/lib/python3.5/urllib/request.py", line 163, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.5/urllib/request.py", line 466, in open
    response = self._open(req, data)
  File "/usr/lib/python3.5/urllib/request.py", line 489, in _open
    'unknown_open', req)
  File "/usr/lib/python3.5/urllib/request.py", line 444, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.5/urllib/request.py", line 1324, in unknown_open
    raise URLError('unknown url type: %s' % type)
urllib.error.URLError: <urlopen error unknown url type: urn>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "./try.py", line 12, in <module>
    graph.query("SELECT * FROM <urn:a> {?s ?p ?o}")
  File "…/lib/python3.5/site-packages/rdflib/graph.py", line 1089, in query
    query_object, initBindings, initNs, **kwargs))
  File "…/lib/python3.5/site-packages/rdflib/plugins/sparql/processor.py", line 79, in query
    return evalQuery(self.graph, query, initBindings, base)
  File "…/lib/python3.5/site-packages/rdflib/plugins/sparql/evaluate.py", line 464, in evalQuery
    ctx.load(d.default, default=True)
  File "…/lib/python3.5/site-packages/rdflib/plugins/sparql/sparql.py", line 280, in load
    _load(self.graph, source)
  File "…/lib/python3.5/site-packages/rdflib/plugins/sparql/sparql.py", line 270, in _load
    source))
Exception: Could not load urn:a as either RDF/XML, N3 or NTriples