Python中SPARQL查询ttl-fi的语法

2024-06-15 05:55:52 发布

您现在位置:Python中文网/ 问答频道 /正文

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

http://id.vlaanderen.be/statistieken/dq/kubus-kadaster/observatie/0/0/0#id a qb:Observation ; qb:datasethttp://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的值totaleki。我正在使用SPARQLWrapper来执行此操作。不过,我认为WHERE子句有问题。有人知道我怎样才能得到这个值吗?在

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查询格式错误。


Tags: 文件idhttp错误besparqlttldq
1条回答
网友
1楼 · 发布于 2024-06-15 05:55:52

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

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

相关问题 更多 >