【发布时间】:2023-04-01 20:15:01
【问题描述】:
我需要在 DBpedia 上找到 http://dbpedia.org/resource/Benin 是主语或宾语的所有三元组。此查询以最适合我的格式提供我想要的输出(只有三个变量,没有空格):
PREFIX : <http://dbpedia.org/resource/>
SELECT * WHERE {
?s ?p ?o
FILTER (?s=:Benin OR ?o=:Benin)
}
如果我有这个查询,我会得到类似的结果:
PREFIX : <http://dbpedia.org/resource/>
SELECT * WHERE {
{:Benin ?p ?o}
UNION
{?s ?p :Benin}
}
但是,后者的格式是关闭的。它首先给我p 和o 输出留下s 空白,然后s 和p 留下o 空白。此外,第一个查询需要更多时间来执行。如果您能解释这两个查询的工作原理以及输出为何存在差异,我将不胜感激。
【问题讨论】:
-
OR在 SPARQL 中拼写为||。 -
@AndyS 是的,但是 dbpedia 的后端大师似乎并不在意,尽管我无法在源代码级别找到确认。
标签: sparql semantic-web linked-data