Предлагает ли RDFLib статическую/семантическую проверку SPARQL (помимо parseQuery)?Python

Программы на Python
Anonymous
 Предлагает ли RDFLib статическую/семантическую проверку SPARQL (помимо parseQuery)?

Сообщение Anonymous »

Код: Выделить всё

parseQuery
в RDFLib обнаруживает синтаксические ошибки, но я не могу найти способ создать семантические/статические проблемы с флагом RDFLib (например, несоответствия GROUP BY) перед выполнением на удаленной конечной точке. TranslateQuery был предложен в качестве более строгой проверки, но, похоже, он не срабатывает в тех случаях, когда я ожидал. Даже выполнение запроса на пустом графе не приводит к возникновению исключений.

Код: Выделить всё

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)
Если запрос SPARQL выполняется на конечной точке на основе Blazegraph, возникает ошибка «Плохой агрегат», как и следовало ожидать.


Подробнее здесь: https://stackoverflow.com/questions/797 ... parsequery

Вернуться в «Python»