对整数进行过滤的 SPARQL 查询

SPARQL Query with filtering over an integer

我正在编写一个非常简单的 sparql 查询来过滤整数值。

我通过this tutorial弄明白了 我知道 Wikipedia Id = 856 用于 apple_inc 但是这个查询没有给出任何结果,我不知道我错过了什么。任何帮助将不胜感激。

select ?uri where {?uri <http://dbpedia.org/ontology/wikiPageID> ?id. FILTER regex(?id, "856"^^xsd:integer, "i")}

你应该这样写:

select ?uri where {?uri <http://dbpedia.org/ontology/wikiPageID> ?id. FILTER (?id=856)}

根本没有理由在这里使用 filter。从概念上讲,filter 必须 select 所有页面 id 三倍,然后过滤掉除正确页面之外的所有页面。 (虽然实施应该使流程更有效率。)

将值放在查询中并完全跳过过滤器会更清楚:

select ?uri where {
  ?uri <http://dbpedia.org/ontology/wikiPageID> 856
}