1

我正在尝试使用 BIND() 函数进行各种 SPARQL 查询,但似乎都不适用于 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 ). 
} 

关于可能出错的任何提示?

4

1 回答 1

1

我发现问题出在哪里。我从一些需要 rdfextras 的旧 rdflib 开始了这个项目。他们我将 rdflib 升级到 4.0(最终升级到 4.2-dev),不再需要 rdfextras。实际上,注册它们导致了这个问题。一旦我卸载了 rdfextras 并删除了引用它们的 plugin.register 条目,一切都开始顺利运行。

于 2014-03-05T20:20:27.687 回答