Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sparql.setReturnFormat(RDF) causes rdflib.exceptions.ParserError #176

Closed
eggplants opened this issue Jan 4, 2022 · 1 comment
Closed

Comments

@eggplants
Copy link
Contributor

eggplants commented Jan 4, 2022

from SPARQLWrapper import SPARQLWrapper, RDF
sparql = SPARQLWrapper('http://ja.dbpedia.org/sparql')
sparql.setQuery('select * where { ?x ?y ?z. } limit 1')
sparql.setReturnFormat(RDF)
results = sparql.query().convert()
/Users/eggplants/prog/sparqlwrapper/SPARQLWrapper/Wrapper.py:649: RuntimeWarning: Sending Accept header '*/*' because unexpected returned format 'rdf' in a 'SELECT' SPARQL query form
  warnings.warn("Sending Accept header '*/*' because unexpected returned format '%s' in a '%s' SPARQL query form" % (self.returnFormat, self.queryType), RuntimeWarning)
Traceback (most recent call last):
  File "<string>", line 5, in <module>
  File "/Users/eggplants/prog/sparqlwrapper/SPARQLWrapper/Wrapper.py", line 1016, in convert
    return self._convertRDF()
  File "/Users/eggplants/prog/sparqlwrapper/SPARQLWrapper/Wrapper.py", line 912, in _convertRDF
    retval.load(self.response)  # (DEPRECATED) publicID=' ')
  File "/Users/eggplants/.pyenv/versions/3.9.9/lib/python3.9/site-packages/rdflib/graph.py", line 1280, in load
    return self.parse(source, publicID, format)
  File "/Users/eggplants/.pyenv/versions/3.9.9/lib/python3.9/site-packages/rdflib/graph.py", line 1851, in parse
    context.parse(source, publicID=publicID, format=format, **args)
  File "/Users/eggplants/.pyenv/versions/3.9.9/lib/python3.9/site-packages/rdflib/graph.py", line 1258, in parse
    parser.parse(source, self, **args)  # type: ignore[call-arg]
  File "/Users/eggplants/.pyenv/versions/3.9.9/lib/python3.9/site-packages/rdflib/plugins/parsers/rdfxml.py", line 608, in parse
    self._parser.parse(source)
  File "/Users/eggplants/.pyenv/versions/3.9.9/lib/python3.9/xml/sax/expatreader.py", line 111, in parse
    xmlreader.IncrementalParser.parse(self, source)
  File "/Users/eggplants/.pyenv/versions/3.9.9/lib/python3.9/xml/sax/xmlreader.py", line 125, in parse
    self.feed(buffer)
  File "/Users/eggplants/.pyenv/versions/3.9.9/lib/python3.9/xml/sax/expatreader.py", line 217, in feed
    self._parser.Parse(data, isFinal)
  File "/private/var/folders/w6/33w9tbtn5n92g_3l9n356h7r0000gn/T/python-build.20211204234811.30045/Python-3.9.9/Modules/pyexpat.c", line 461, in EndElement
  File "/Users/eggplants/.pyenv/versions/3.9.9/lib/python3.9/xml/sax/expatreader.py", line 381, in end_element_ns
    self._cont_handler.endElementNS(pair, None)
  File "/Users/eggplants/.pyenv/versions/3.9.9/lib/python3.9/site-packages/rdflib/plugins/parsers/rdfxml.py", line 197, in endElementNS
    self.current.end(name, qname)
  File "/Users/eggplants/.pyenv/versions/3.9.9/lib/python3.9/site-packages/rdflib/plugins/parsers/rdfxml.py", line 366, in node_element_end
    self.error(
  File "/Users/eggplants/.pyenv/versions/3.9.9/lib/python3.9/site-packages/rdflib/plugins/parsers/rdfxml.py", line 225, in error
    raise ParserError(info + message)
rdflib.exceptions.ParserError: None:8:153: Repeat node-elements inside property elements: http://www.w3.org/2005/sparql-results#binding

ref: #190

@nicholascar
Copy link
Member

A SPARQL SELECT query doesn't return RDF, so RDF here is not a valid selection for a return type. Return types of JSON & XML are valid and work fine.

So the issue should probably be handled by raising an error due to this incompatibility of the format request, not seeing the code fail.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants