我目前正在尝试运行我的查询,但我一直收到错误,在第0行,括号在'}'处不平衡
我已经多次检查了我的整个代码,但我似乎没有修复它。我目前正在使用dbpedia端点。
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX yago: <http://dbpedia.org/class/yago/>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT ?country ?government ?population
WHERE{ ?country dct:subject <http://dbpedia.org/resource>/Category:Countries_in_Europe> ;
rdfs:label ?country;
dbo:government ?government.
?government rdfs:label ?government.
?population rdfs:subClassOf* dbo:PopulatedPlace
rdf:type dbpedia-owl:Country;
rdfs:label ?country ;
prop:populationEstimate ?population .
FILTER (?population < 3000000) .
FILTER ( lang(?country) AND (lang(?(government = 'en')
}
应显示图表中的三行,首先以国家/地区为标题,第二行以国家/地区的政府类型作为标题,第三行应为总排名为3000000的人口。
非常感谢您提前帮助我!
答案 0 :(得分:3)
此查询中有多个错误。
突然出现了几件事。
事情1 -
?government rdfs:label ?government.
你有几个类似的?subject ?predicate ?subject
结构。
事情2 -
?population rdfs:subClassOf* dbo:PopulatedPlace
rdf:type dbpedia-owl:Country;
我认为在dbo:PopulatedPlace
事情3 -
FILTER ( lang(?country) AND (lang(?(government = 'en')
FILTER
以多种方式破解语法。我想这会做你想要的 -
FILTER ( lang(?country) = 'en') .
FILTER ( lang(?government) = 'en') .
东西4 -
<http://dbpedia.org/resource>/Category:Countries_in_Europe>
你在中间字符串中有一个额外的>
。
事情5 -
dbpedia-owl:Country
我认为应该是dbo:Country
事情6 -
prop:populationEstimate
我认为应该是dbp:populationEstimate
还有很多问题......我不确定你是不是真的在尝试。