Поддержка Python rdflib и SPARQL BIND

Я пробую различные SPARQL-запросы с помощью функции BIND(), и ни один из них не работает с rdflib 4.0.

Каждый раз, когда я получаю:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "~/.env/lib/python2.7/site-packages/rdflib/graph.py", line 1045, in query
    query_object, initBindings, initNs, **kwargs))
  File "~/.env/lib/python2.7/site-packages/rdfextras/sparql/processor.py", line 49, in query
    loadContexts=loadContexts)
  File "~/.env/lib/python2.7/site-packages/rdfextras/sparql/algebra.py", line 406, in TopEvaluate
    assert isinstance(expr,AlgebraExpression), repr(expr)

редактировать Вот запрос:

CONSTRUCT { ?aspectA ?predicateURI ?aspectLabel. } 
WHERE { ?aspectA aspects:A0060 ?aspectType; 
                 aspects:A0101 ?aspectLabel. 
        BIND ( IRI( CONCAT("some.uri/raw/aspects#A";, ?aspectType) ) AS ?predicateURI ). 
} 

Любые намеки на то, что может быть не так?

1 ответ

Я нашел, откуда возникла проблема. Я начал проект с какой-то старой rdflib, которая требовала rdfextras. Они обновили rdflib до 4.0 (и в конечном итоге до 4.2-dev), где rdfextras больше не нужны. На самом деле, регистрация их была причиной этой проблемы. Как только я удалил rdfextras и удалил записи plugin.register, ссылающиеся на них, все начало работать без сбоев.

Другие вопросы по тегам