2016-10-20 1 views
0

파이썬에서 RDFLib로 (원래 .ttl) 파일을 쿼리하려고합니다. 파일에서 추출한 내용은 다음과 같습니다.파이썬에서 ttl 파일을 쿼리하는 SPARQL 쿼리의 구문

http://id.vlaanderen.be/statistieken/dq/kubus-kadaster/observatie/0/0/0#id a qb:Observation ; qb:dataSet http://id.vlaanderen.be/statistieken/dq/kubus-kadaster#id ; statsvl:refArea http://id.fedstats.be/nis/11001#id ; statsvl:timePeriod http://id.vlaanderen.be/statistieken/concept/jaar_1997#id ; statsvl:oppervlaktetype http://id.vlaanderen.be/statistieken/concept/appartementen#id ; sdmx-attribute:unitMeasure unit:Euro ; qb:measureType statsvl:totaleki ; statsvl:totaleki "916371"^^xsd:int .

내가이 예를 들어 totaleki의 값을 추출 할. 이 작업을 수행하려면 SPARQLWrapper을 사용하고 있습니다. 그러나 WHERE 절이 잘못되었다고 생각합니다. 누구든지이 특정 refArea에 대해이 값을 얻을 수있는 방법을 알고 있습니까? QueryBadFormed :

import rdflib 
from SPARQLWrapper import SPARQLWrapper, JSON 

g = rdflib.Graph() 
result = g.parse('cube7.ttl', format='n3') 

sparql = SPARQLWrapper("http://dbpedia.org/sparql") 
sparql.setQuery(""" 
PREFIX statsvl: <http://id.vlaanderen.be/statistieken/def#> 
SELECT ?refArea ?totaleki 
WHERE { <http://id.fedstats.be/nis/11001#id> statsvl:refArea ?refArea 
     statsvl:totaleki ?totaleki} 
""") 

이 오류를 생성하는 잘못된 요청은 아마 SPARQL 쿼리는 형성 나쁜, 엔드 포인트로 전송되었습니다.

답변

1

세미콜론 제 트리플 패턴 후 누락 :

PREFIX statsvl: <http://id.vlaanderen.be/statistieken/def#> 
SELECT ?refArea ?totaleki 
WHERE { <http://id.fedstats.be/nis/11001#id> statsvl:refArea ?refArea ; 
              statsvl:totaleki ?totaleki . 
} 
관련 문제