2014-03-03 2 views
1

BIND() 함수로 다양한 SPARQL 쿼리를 시도하고 있는데 rdflib 4.0에서는 작동하지 않습니다.Python rdflib 및 SPARQL BIND 지원

때마다 나는 점점 오전 :

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

어떤 힌트에 대한 것은 무슨 일을 할 수 있습니다

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) 

편집을 여기에 쿼리입니까?

+0

시도중인 실제 검색어를 표시 할 수 있습니까? –

+0

여기 있습니다 : { ? aspectA? predicateURI? aspectLabel. } 어디서 { ? aspectA aspects : A0060? aspectType; aspect : A0101? aspectLabel. BIND (IRI (CONCAT ("http : //some.uri/raw/aspects#A",? aspectType)) predicateURI). } –

+0

감사합니다. 코드 예제와 쿼리를 주석으로 게시하는 것이 아니라 실제 질문에 넣는 것이 더 좋습니다. 실제 질문에서는 제대로 형식을 지정할 수 있기 때문에 읽기가 훨씬 쉽습니다. 나는 이번에 당신을 위해 그것을 돌 보았습니다. –

답변

1

어디에서 문제가 발생했는지 알았습니다. rdfextras가 필요한 기존의 rdflib로 프로젝트를 시작했습니다. 그들은 rdfextras가 더 이상 필요하지 않은 4.0 (그리고 결국 4.2-dev)으로 rdflib를 업그레이드했습니다. 실제로, 그들을 등록하는 것은 그 문제를 일으키는 것이 었습니다. 일단 rdfextras를 제거하고 그들을 참조하는 plugin.register 항목을 제거하면 모든 것이 원활하게 실행되기 시작했습니다.