如何在SPARQL查询Wikidata时从输出中排除值?

如何在SPARQL查询Wikidata时从输出中排除值?,sparql,wikidata,Sparql,Wikidata,我正在尝试使用wikidata查询服务编写一个SPARQL查询,以检索1970年以来的所有荷兰首相。然而,我想通过检查首相是否为大学工作来过滤输出。如果一位部长为一所大学工作,就不应该在产出中 我想我必须使用过滤器不存在的表达式,但不知道如何正确地写这行。有人能帮我吗 有关我的查询和输出,请参见下文: SELECT ?pmLabel ?start ?companyLabel WHERE { ?pm wdt:P39 wd:Q3058109. ?pm p:P39 ?posHeld.

我正在尝试使用wikidata查询服务编写一个SPARQL查询,以检索1970年以来的所有荷兰首相。然而,我想通过检查首相是否为大学工作来过滤输出。如果一位部长为一所大学工作,就不应该在产出中

我想我必须使用过滤器不存在的表达式,但不知道如何正确地写这行。有人能帮我吗

有关我的查询和输出,请参见下文:

SELECT ?pmLabel ?start ?companyLabel
WHERE
{   
  ?pm wdt:P39 wd:Q3058109.
  ?pm p:P39 ?posHeld.
  ?pm wdt:P108 ?company.
  ?posHeld ps:P39 wd:Q3058109.
  ?posHeld pq:P580 ?start.
    
  FILTER(year(?start) > 1970) 
  # FILTER NOT EXISTS(?company (something) "Universit") 
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". } # labels

 } 
ORDER BY DESC(?start)

+----------------------+------------------+------------------------------+
|  primeMinisterLabel  |      start       |         companyLabel         |
+----------------------+------------------+------------------------------+
| Mark Rutte           | 14 October 2010  | Unilever                     |
| Mark Rutte           | 14 October 2010  | Calvé                        |
| Jan Peter Balkenende | 22 July 2002     | Erasmus University Rotterdam |
| Jan Peter Balkenende | 22 July 2002     | Vrije Universiteit Amsterdam |
| Ruud Lubbers         | 4 November 1982  | United Nations               |
| Ruud Lubbers         | 4 November 1982  | Harvard University           |
| Ruud Lubbers         | 4 November 1982  | Tilburg University           |
| Ruud Lubbers         | 4 November 1982  | Hollandia                    |
| Dries van Agt        | 19 December 1977 | Kyoto University             |
| Dries van Agt        | 19 December 1977 | Radboud University Nijmegen  |
| Dries van Agt        | 19 December 1977 | Kwansei Gakuin University    |
| Dries van Agt        | 19 December 1977 | Ritsumeikan University       |
+----------------------+------------------+------------------------------+

筛选器不存在{公司wdt:P31 wd:Q3918}
是否有方法检查值中是否有单词“University”?并非此输出中的每一所大学都是大学(Q3918)的实例。请尝试添加
筛选器(!CONTAINS(LCASE(?companyLabel),“universit”)
。正确的筛选器应该遵循类层次结构:
筛选器不存在{公司wdt:P31/wdt:P279*wd:Q3918}
有效!非常感谢你!