-
Notifications
You must be signed in to change notification settings - Fork 589
Open
Labels
Description
Consider following query straight from wikidata (Cats, with pictures). To execute this query and get results using my local GraphDB instance, I need to wrap the body with SERVICE pointing ot the wikidata SPARQL endpoint. So the query is valid and returns a non-empty result set.
query = """
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX bd: <http://www.bigdata.com/rdf#>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT ?item ?pic
WHERE
{
SERVICE <https://query.wikidata.org/sparql> {
?item wdt:P31 wd:Q146 .
?item wdt:P18 ?pic
SERVICE wikibase:label {
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en".
} # Helps get the label in your language, if not, then en language
}
}
"""
However, when I parse it using rdflib's parseQuery I get the error message "RecursionError: maximum recursion depth exceeded in comparison".
Full stack trace
query_tree = parser.parseQuery(query)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/rdflib/plugins/sparql/parser.py:1544: in parseQuery
return Query.parseString(q, parseAll=True)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:1131: in parse_string
loc, tokens = self._parse(instring, 0)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:3886: in parseImpl
loc, exprtokens = e._parse(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4114: in parseImpl
return e._parse(
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4375: in parseImpl
return self.expr._parse(instring, loc, doActions, callPreParse=False)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:3886: in parseImpl
loc, exprtokens = e._parse(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4375: in parseImpl
return self.expr._parse(instring, loc, doActions, callPreParse=False)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:5226: in parseImpl
return super().parseImpl(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4375: in parseImpl
return self.expr._parse(instring, loc, doActions, callPreParse=False)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:3886: in parseImpl
loc, exprtokens = e._parse(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4114: in parseImpl
return e._parse(
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4375: in parseImpl
return self.expr._parse(instring, loc, doActions, callPreParse=False)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:3886: in parseImpl
loc, exprtokens = e._parse(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4891: in parseImpl
return super().parseImpl(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4790: in parseImpl
loc, tokens = self_expr_parse(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:3864: in parseImpl
loc, resultlist = self.exprs[0]._parse(
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4375: in parseImpl
return self.expr._parse(instring, loc, doActions, callPreParse=False)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4114: in parseImpl
return e._parse(
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4375: in parseImpl
return self.expr._parse(instring, loc, doActions, callPreParse=False)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:3886: in parseImpl
loc, exprtokens = e._parse(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4375: in parseImpl
return self.expr._parse(instring, loc, doActions, callPreParse=False)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:5226: in parseImpl
return super().parseImpl(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4375: in parseImpl
return self.expr._parse(instring, loc, doActions, callPreParse=False)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:3886: in parseImpl
loc, exprtokens = e._parse(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4114: in parseImpl
return e._parse(
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4375: in parseImpl
return self.expr._parse(instring, loc, doActions, callPreParse=False)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:3886: in parseImpl
loc, exprtokens = e._parse(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4891: in parseImpl
return super().parseImpl(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4790: in parseImpl
loc, tokens = self_expr_parse(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:3864: in parseImpl
loc, resultlist = self.exprs[0]._parse(
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4375: in parseImpl
return self.expr._parse(instring, loc, doActions, callPreParse=False)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:4114: in parseImpl
return e._parse(
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:823: in _parseNoCache
tokens = self.postParse(instring, loc, tokens)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/rdflib/plugins/sparql/parserutils.py:227: in postParse
service_string = sgp.searchString(instring)[0][0]
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:1311: in search_string
[t for t, s, e in self.scan_string(instring, maxMatches, debug=debug)]
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:1311: in <listcomp>
[t for t, s, e in self.scan_string(instring, maxMatches, debug=debug)]
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:1202: in scan_string
nextLoc, tokens = parseFn(instring, preloc, callPreParse=False)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:3886: in parseImpl
loc, exprtokens = e._parse(instring, loc, doActions)
../../anaconda3/envs/baseDSEnv/lib/python3.8/site-packages/pyparsing/core.py:817: in _parseNoCache
loc, tokens = self.parseImpl(instring, pre_loc, doActions)
E RecursionError: maximum recursion depth exceeded
!!! Recursion detected (same locals & position)
----------------------------- Captured stderr call -----------------------------
Traceback (most recent call last):
File "/home/fkovacev/.vscode/extensions/ms-python.python-2022.16.0/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_trace_dispatch_regular.py", line 359, in __call__
is_stepping = pydev_step_cmd != -1
RecursionError: maximum recursion depth exceeded in comparison
Reactions are currently unavailable