Bietet RDFLib eine statische/semantische Validierung für SPARQL (über parseQuery hinaus)?Python

Python-Programme
Anonymous
 Bietet RDFLib eine statische/semantische Validierung für SPARQL (über parseQuery hinaus)?

Post by Anonymous »

Code: Select all

parseQuery
in RDFLib fängt Syntaxfehler ab, aber ich kann keine Möglichkeit finden, dass RDFLib semantische/statische Probleme (z. B. GROUP BY-Konflikte) vor der Ausführung auf einem Remote-Endpunkt kennzeichnet. translatorQuery wurde als strengere Prüfung vorgeschlagen, aber es scheint nicht in den Fällen zu kommen, die ich erwarten würde. Selbst das Ausführen der Abfrage für ein leeres Diagramm erzeugt keine Ausnahme.

Code: Select all

from rdflib import Graph
from rdflib.plugins.sparql.parser import parseQuery
from rdflib.plugins.sparql.algebra import translateQuery

q = """SELECT ?s WHERE {
?s ?p ?o .
}
GROUP BY ?nonexistent"""

ast = parseQuery(q)          # succeeds (syntax OK)
algebra = translateQuery(ast)  # also succeeds...!?

g = Graph()
for row in g.query(q):       # runs on empty graph; no exception...!?
print(row)
Wenn die SPARQL-Abfrage auf einem Blazegraph-basierten Endpunkt ausgeführt wird, gibt es – wie erwartet – den Fehler „Ungültiges Aggregat“.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post