SPARQL查询空了

时间:2014-03-09 14:01:10

标签: sparql semantic-web dbpedia

我想用SPARQL查询DBPedia来选择汽车制造商(法国要开始),但我不知道如何做到这一点。

我从这个问题开始:

select distinct * where {
  ?carManufacturer dbpedia-owl:product <http://dbpedia.org/page/Automobile> .
  ?carManufacturer dbpprop:locationCountry "France"@en
} LIMIT 100

但是,它返回一个空结果集。我做错了什么?

1 个答案:

答案 0 :(得分:4)

您使用错误的URI来识别DBPedia资源。在DBPedia上,http://dbpedia.org/resource/Automobile引用名词'汽车',而http://dbpedia.org/page/Automobile引用描述名词'汽车'的页面。因此,

SELECT DISTINCT * WHERE {
  ?carManufacturer dbpedia-owl:product <http://dbpedia.org/resource/Automobile>.
  ?carManufacturer dbpprop:locationCountry "France"@en.
} LIMIT 100

工作正常。

但是,如果你想要更加惯用,你可以使用一些语法糖来消除查询中的主题重复。 DBPedia还会加载http://dbpedia.org/resource/作为前缀dbpedia,因此您实际上可以完全从查询中删除所有URI:

SELECT DISTINCT * WHERE {
  ?carManufacturer dbpedia-owl:product dbpedia:Automobile;
                   dbpprop:locationCountry "France"@en.
} LIMIT 100