Sparql DBPedia不返回foaf:name查询

时间:2018-09-26 20:09:32

标签: sparql dbpedia

我正在将Virtuoso SPARQL端点用于DBpedia。运行某些测试查询没有问题,但是我的问题是当我基于实体的foaf:name "literal"进行查询时。这是我的代码如下:

prefix db: <http://dbpedia.org/resource/>
prefix dbo: <http://dbpedia.org/ontology/>
prefix foaf: <http://xlms.com/foaf/0.1/>

SELECT ?capital WHERE{
        ?state dbo:capital ?capital .
        ?state foaf:name "State of Alaska"@en .
        }

我的逻辑是,?state dbo:capital ?capital是指DBpedia猫头鹰本体中一个国家的首字母。 ?state foaf:name "State of Alaska"@en应该将变量?state与文字实体Alaska进行匹配。当我的查询由非foaf:name的变量控制时,我没有问题。我查看了示例,但看不出语法有什么问题。即使我将最后一行编辑为-

?state a foaf:name "State of Alaska"@en .

-代码继续失败。我查看了其他示例,但找不到我的特定问题。似乎该代码应该根据foaf:name文字返回阿拉斯加的资本。

1 个答案:

答案 0 :(得分:2)

我找到了答案。关键是不要在顶部添加此前缀

prefix foaf: <http://xlms.com/foaf/0.1/> 

应将其替换为正确的foaf:前缀声明:

prefix foaf: <http://xmlns.com/foaf/0.1/> 

或者可能甚至跳过了,因为foaf:前缀是predefined

因此以下查询实际上有效:

SELECT ?capital WHERE {
        ?state dbo:capital ?capital .
        ?state foaf:name "State of Alabama"@en .
}