Как исключить значения из выходных данных в запросе SPARQL для викиданных?

#sparql #wikidata

#sparql #wikidata-query-service

Вопрос:

Я пытаюсь написать запрос SPARQL, используя службу запросов викиданных, чтобы получить всех премьер-министров Нидерландов с 1970 года. Однако я хочу отфильтровать выходные данные, проверив, работал ли премьер-министр в университете. Если министр работал в университете, его не должно быть в выходных данных.

Я думаю, что я должен использовать выражение FILTER NOT EXISTS, но не знаю, как правильно написать эту строку. Может кто-нибудь, пожалуйста, помочь мне?

Смотрите ниже мой запрос и выходные данные:

 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       |
 ---------------------- ------------------ ------------------------------ 
  

Комментарии:

1. FILTER NOT EXISTS {?company wdt:P31 wd:Q3918 }

2. Есть ли способ проверить, есть ли в значении слово «Университет»? Не каждый университет в этом выводе является экземпляром university (Q3918).

3. Попробуйте добавить FILTER(!CONTAINS(LCASE(?companyLabel), "universit")) .

4. тогда правильным фильтром было бы следовать иерархии классов: FILTER NOT EXISTS {?company wdt:P31/wdt:P279* wd:Q3918 }