SPARQL查询返回空结果求助:获取dbo:wikiPageWikiLink属性值失败
解决DBpedia分类SPARQL查询空结果的问题
问题分析
你的两条查询返回空结果主要有两个原因:
- 第一条查询的URI错误:DBpedia的RDF资源标识用
/resource/路径,/page/只是网页展示地址,不是可用于SPARQL查询的资源URI。 - 第二条URI正确,但
dbo:wikiPageWikiLink的使用逻辑不对:这个属性表示当前页面主动链接到其他页面,分类页面的该属性指向的是相关页面而非分类下的成员;要获取分类包含的葡萄品种,需要反过来查询或使用更合适的属性。
正确查询示例
1. 使用dbo:subject属性(推荐)
dbo:subject专门用于表示资源所属的分类,直接查询属于该分类的葡萄品种:
PREFIX dbo: <http://dbpedia.org/ontology/> SELECT ?link WHERE { ?link dbo:subject <http://dbpedia.org/resource/Category:Grape_varieties_of_Greece> }
2. 反向使用dbo:wikiPageWikiLink
查询所有链接到该分类的资源(即分类下的条目):
PREFIX dbo: <http://dbpedia.org/ontology/> SELECT ?link WHERE { ?link dbo:wikiPageWikiLink <http://dbpedia.org/resource/Category:Grape_varieties_of_Greece> }
3. 使用SKOS词汇skos:member
DBpedia分类遵循SKOS标准,skos:member直接表示分类包含的成员:
PREFIX skos: <http://www.w3.org/2004/02/skos/core#> SELECT ?link WHERE { <http://dbpedia.org/resource/Category:Grape_varieties_of_Greece> skos:member ?link }
额外提示
- 查询前可以查看该分类的RDF数据,确认可用的属性和关联资源。
- 记得在查询中声明所需的前缀(比如
dbo:或skos:),避免语法错误。
内容的提问来源于stack exchange,提问作者C96
相关产品推荐
相关产品推荐

