Wikidata SPARQL查询筛选器或

Wikidata SPARQL查询筛选器或,sparql,wikidata,Sparql,Wikidata,我正在尝试查询Wikidata中作为或实例的所有项 其中一项工作是: SELECT DISTINCT ?organization WHERE { ?organization wdt:P31 wd:Q4830453 } 但这并不能收回所有的数据。只是所有的生意 我也尝试过以下方法,但似乎都不管用 SELECT DISTINCT ?organization WHERE { ?organization wdt:P31 wd:Q4830453 || wd:Q163740 } 当然,我可以在事

我正在尝试查询Wikidata中作为或实例的所有项

其中一项工作是:

SELECT DISTINCT ?organization WHERE {
  ?organization wdt:P31 wd:Q4830453
}
但这并不能收回所有的数据。只是所有的生意

我也尝试过以下方法,但似乎都不管用

SELECT DISTINCT ?organization WHERE {
  ?organization wdt:P31 wd:Q4830453 || wd:Q163740
}

当然,我可以在事后提出两个单独的请求并将它们合并,但这似乎没有那么有效,似乎应该有更好的方法来处理这一问题。

这里有一个可行的解决方案:

SELECT * 
WHERE {
    VALUES ?o { wd:Q4830453 wd:Q163740 } 
    ?s wdt:P31 ?o.
}
请注意,以下查询也可能是一个解决方案。然而,
FILTER
如果存在另一种可能性,那么解决方案永远不是实现某件事情的有效方法

SELECT * 
WHERE { 
    ?s wdt:P31 ?o.
    FILTER (?o IN (wd:Q4830453, wd:Q163740 ) )
}

或者是SPARQL 1.1之前的era方式
过滤器(?o=wd:Q4830453 | |?o=wd:Q163740)
另请参见关键字。
SELECT * 
WHERE { 
    ?s wdt:P31 ?o.
    FILTER (?o IN (wd:Q4830453, wd:Q163740 ) )
}