[英]Syntax of SPARQL query in Python to query ttl file
I am trying to query a (originally .ttl) file with the RDFLib in Python. 我试图用Python中的RDFLib查询(最初是.ttl)文件。 An extract from the file is shown below.
该文件的摘录如下所示。
http://id.vlaanderen.be/statistieken/dq/kubus-kadaster/observatie/0/0/0#id a qb:Observation ;
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 ;
qb:dataSet http://id.vlaanderen.be/statistieken/dq/kubus-kadaster#id ; statsvl:refArea http://id.fedstats.be/nis/11001#id ;
statsvl:refArea http://id.fedstats.be/nis/11001#id ; statsvl:timePeriod http://id.vlaanderen.be/statistieken/concept/jaar_1997#id ;
statsvl:timePeriod http://id.vlaanderen.be/statistieken/concept/jaar_1997#id ; statsvl:oppervlaktetype http://id.vlaanderen.be/statistieken/concept/appartementen#id ;
statsvl:oppervlaktetype http://id.vlaanderen.be/statistieken/concept/appartementen#id ; sdmx-attribute:unitMeasure unit:Euro ;
sdmx-attribute:unitMeasure单位:欧元; qb:measureType statsvl:totaleki ;
qb:measureType statsvl:totaleki; statsvl:totaleki "916371"^^xsd:int .
statsvl:totaleki“ 916371” ^^ xsd:int。
I want to extract the value of totaleki for this example. 我想为该示例提取totaleki的值。 I am using the SPARQLWrapper to do this.
我正在使用SPARQLWrapper来执行此操作。 However, I think there is something wrong with the WHERE clause.
但是,我认为WHERE子句有问题。 Does anyone know how I can get this value for this specific refArea?
有谁知道我如何获得此特定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}
""")
This produces the error: QueryBadFormed: a bad request has been sent to the endpoint, probably the sparql query is bad formed. 这将产生错误: QueryBadFormed:错误的请求已发送到端点,可能是sparql查询的格式错误。
Semicolon is missing after the first triple pattern: 在第一个三元模式之后缺少分号:
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 .
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.