【发布时间】:2018-09-26 20:09:32
【问题描述】:
我正在为 DBpedia 使用 Virtuoso SPARQL 端点。我在运行一些测试查询时没有问题,但我的问题是当我在基于实体的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 文字返回阿拉斯加的首都。
【问题讨论】:
-
?state a foaf:name "State of Alaska"@en .-> 这显然不是三重模式! -
主要问题是,您的 FOAF 命名空间是错误的,它必须是
xmlns而不是xlms->http://xmlns.com/foaf/0.1/