我正在为DBpedia使用Virtuoso端点。我没有问题运行一些测试查询,但是我的问题是当我运行基于实体的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 owl本体中状态的首都。?state foaf:name "State of Alaska"@en应该将变量?state与文本实体Alaska匹配起来。当我的查询被非foaf:name的变量控制时,我没有问题。我已经查过了一些例子,但是我的语法有什么问题呢?即使我编辑最后一行--
?state a foaf:name "State of Alaska"@en .-代码继续失败。我查过其他的例子,找不到我的具体问题。这段代码似乎应该根据foaf:name文本返回阿拉斯加的首都。
发布于 2018-09-26 20:31:10
我找到了答案。关键是不要在顶部添加此前缀。
prefix foaf: <http://xlms.com/foaf/0.1/> 应该用正确的foaf:前缀声明来替换:
prefix foaf: <http://xmlns.com/foaf/0.1/> 甚至可能跳过,因为foaf:前缀是预定义。
因此,下面的查询实际上是有效的:
SELECT ?capital WHERE {
?state dbo:capital ?capital .
?state foaf:name "State of Alabama"@en .
}https://stackoverflow.com/questions/52525370
复制相似问题