我正在尝试展示英国的所有慈善机构,但它没有显示,这是我在DBPEDIA使用的链接 - http://dbpedia.org/page/Category:Charities_based_in_the_United_Kingdom
以下是生成的SPARQL查询:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX type: <http://dbpedia.org/class/yago/>
PREFIX prop: <http://dbpedia.org/property/>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX dbc: <http://dbpedia.org/resource/Category>
SELECT *
WHERE {
?Charities dct:subject dbc:Charities_based_in_the_United_Kingdom.
}
Limit 5
].join(" ");
现在它只显示变量?Charities
我如何才能显示慈善机构列表?谢谢你的时间:)
答案 0 :(得分:1)
这应该可以解决问题(对我有用):
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX type: <http://dbpedia.org/class/yago/>
PREFIX prop: <http://dbpedia.org/property/>
PREFIX dbr: <http://dbpedia.org/resource/>
## Added ##
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT ?actor WHERE {
?actor <http://purl.org/dc/terms/subject> <http://dbpedia.org/resource/Category:Charities_based_in_the_United_Kingdom>
}
答案 1 :(得分:0)
查询中的错误是dbc
前缀的定义。
您的定义PREFIX dbc: <http://dbpedia.org/resource/Category>
会导致URI http://dbpedia.org/resource/CategoryCharities_based_in_the_United_Kingdom
,但是缺少冒号。
正确的前缀是:
PREFIX dbc: <http://dbpedia.org/resource/Category:>
通过此更改,您的代码适合我。