2016-10-20 4 views
0

Я пытаюсь запросить файл (первоначально .ttl) с помощью RDFLib в Python. Выдержка из файла показана ниже.Синтаксис запроса SPARQL в Python для запроса файла ttl

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?

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} 
""") 

Это дает ошибку: QueryBadFormed: плохой запрос был отправлен в конечную точку, вероятно, 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 . 
}