SPARQL:未解析的前缀名称:dbpprop:author

SPARQL: Unresolved prefixed name: dbpprop:author

我是运行这个查询。它在 DBpedia (http://dbpedia.org/sparql) 上运行良好,但在我的 Java 代码中不起作用:

PREFIX res: <http://dbpedia.org/resource/>
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>

SELECT ?book
WHERE {
  ?book a dbpedia-owl:Book .
  ?book dbpprop:author ?author .
  ?author dbpprop:name ?name
  FILTER regex(?name, "Agatha Christie", "i")
}

事实上,正如查询验证器 (http://www.sparql.org/query-validator.html) 所述:

Line 7, column 9: Unresolved prefixed name: dbpprop:author

为什么它在 DBpedia 中有效? DBpedia 会自动添加缺少的前缀吗?我在哪里可以找到前缀以使其在我的 Java 代码中工作?

默认情况下,DBpedia 端点了解最常见词汇表的许多最常见前缀。正如 KBorja 在上面的评论中指出的那样,可以在此处查找这些内容:http://dbpedia.org/sparql?nsdecl。所以你想把这个添加到你的前缀中:

PREFIX dbpprop: <http://dbpedia.org/property/>

除此之外,还有一个非正式的 "prefix registry",如果您遇到不知道 URI 的前缀:http://prefix.cc or http://prefix.cc/popular/all[=13,您可以使用它来进行很好的猜测=]