Python中SPARQL查询查询ttl文件的语法



我试图用Python中的RDFLib查询一个(原来是.ttl)文件。文件的摘录如下所示。

http://id.vlaanderen。be/statisticken/dq/kubus-kadaster/observtive/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: opperlaktetype http://id.vlaanderen.be/statistieken/concept/appartementen#id;sdmx-attribute:unit计量单位:欧元;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查询是错误的。

第一个三重模式后缺少分号:

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 .
}

最新更新