query-26b7b4315b3d66f007d245e84a87f376
19:15, 10 September 2020 (UTC)) talk (Realworldobject : Before the filter is applied you have a result with each value of ?ignorableType for each ?item. The filter do remove results for each match with an ignorable type, but leaves result with unmatched ignorable type. If you know the number of ignorable types, you can count the results for each item and filter out ?item where some results are removed:Realworldobject@
Use at
- https://query.wikidata.org/sparql
PREFIX wikibase: <http://wikiba.se/ontology#>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX bd: <http://www.bigdata.com/rdf#>
SELECT ?item ?itemLabel ?typeLabel
WHERE {
  VALUES ?ignorableType {
    wd:Q5
    wd:Q20643955
  }
  VALUES ?item {
    wd:Q36322
  }
  ?item wdt:P31 ?type .
  FILTER NOT EXISTS {?item wdt:P31 ?ignorableType}
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
GROUP BY ?item ?itemLabel ?typeLabel
HAVING (COUNT(?item) = 2) # 2 is the number of ignorable types.
Query found at
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
  v4("?_anon_42b5416610844a34809f33a099ae9de1200")
  v3("?ignorableType")
  v3("?item"):::projected 
  v3("?type")
  a1((" "))
  c4(["bd:serviceParam"]):::iri 
  c6(["#91;AUTO_LANGUAGE#93;,en"]):::literal 
  f0[[" = '2^^xsd:integer'"]]
  f0 --> a1
  f1[["not  "]]
  subgraph f1e0["Exists Clause"]
    e0v1 --"wdt:P31"-->  e0v2
    e0v2("?ignorableType"):::projected 
    e0v1("?item"):::projected 
  end
  f1--EXISTS--> f1e0
  f1 --> v3
  f1 --> c2
  f1 --> v3
  v3 --"wdt:P31"-->  v3
  bind2[/VALUES ?ignorableType/]
  bind2-->v3
  bind20(["wd:Q5"])
  bind20 --> bind2
  bind21(["wd:Q20643955"])
  bind21 --> bind2
  bind3[/VALUES ?item/]
  bind3-->v3
  bind30(["wd:Q36322"])
  bind30 --> bind3
  v3 --"wdt:P31"-->  v3
  subgraph s1["http://wikiba.se/ontology#label"]
    style s1 stroke-width:4px;
    c4 --"wikibase:language"-->  c6
  end
  bind5[/"count(?item)"/]
  v3 --o bind5
  bind5 --as--o v4