带有 OR 运算符的简单 SPARQL

simple SPARQL with OR operator

我正在尝试学习 SPARQL 以与 WikiData 一起使用,但我不知道如何执行 'OR' 语句,例如查找属于哺乳动物子类或子类子类的所有分类单元哺乳动物。我看不到如何使用 VALUES 方法,如果我将 operator P171* 与过滤器一起使用,它会花费太长时间。以下代码提供了一个 'AND' 语句我想要等效的 'OR' 语句。

SELECT ?taxon 
WHERE
{
  ?taxon wdt:P171 wd:Q7377.  #taxon is a subclass of mammals
  ?taxonn wdt:P171/wdt:P171 wd:Q7377.  #taxon is a subclass of a subclass of mammals
}

有多种方法可以在 SPARQL 中执行 'OR' 语句。以下答案提供了一个很好的概述:.

对于您的查询,最简单的方法是使用 |,即

SELECT ?taxon WHERE {
   ?taxon wdt:P171|wdt:P171/wdt:P171 wd:Q7377.
}