Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

SPARQL/UNION

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

Suppose the set A: 28 capitals in European Union SELECT ?city ?cityLabel WHERE { wd:Q458 wdt:P150 ?country. # European Union contains administrative territorial entity ?country wdt:P36 ?city. # capital SERVICE wikibase:label { bd:serviceParam wikibase:language "en". } }Suppose the set B: 3 cities with millions of inhabitants in European Union. SELECT ?city ?cityLabel WHERE { wd:Q458 wdt:P150 ?country. # European Union contains administrative territorial entity ?city wdt:P17 ?country. # city in a (European) country ?city wdt:P31 wd:Q1637706. # city with millions of inhabitants SERVICE wikibase:label { bd:serviceParam wikibase:language "en". } } The intersection of A and B, big capitals of the European Union, can simply be achieved by combining all the triples. This results in 1 city. SELECT ?city ?cityLabel WHERE { wd:Q458 wdt:P150 ?country. # European Union contains administrative territorial entity ?country wdt:P36 ?city. # capital ?city wdt:P17 ?country. # city in a (European) country ?city wdt:P31 wd:Q1637706. # city with millions of inhabitants SERVICE wikibase:label { bd:serviceParam wikibase:language "en". } } All capitals of the European union, excluding big cities can be achieved by filtering using FILTER NOT EXISTS { }. This results in the other 27 capitals. SELECT ?city ?cityLabel WHERE { wd:Q458 wdt:P150 ?country. # European Union contains administrative territorial entity ?country wdt:P36 ?city. # capital ?city wdt:P17 ?country. # city in a (European) country FILTER NOT EXISTS{ ?city wdt:P31 wd:Q1637706. } # NOT a city with millions of inhabitants SERVICE wikibase:label { bd:serviceParam wikibase:language "en". } } Finally a UNION of capitals and big cities result in 30 cities, one of which was deduplicated by DISTINCT. SELECT DISTINCT ?city ?cityLabel WHERE { wd:Q458 wdt:P150 ?country. # European Union contains administrative territorial entity { ?country wdt:P36 ?city. } # capital UNION { ?city wdt:P17 ?country. # city in a (European) country ?city wdt:P31 wd:Q1637706. # a city with millions of inhabitants } SERVICE wikibase:label { bd:serviceParam wikibase:language "en". } } Mind that the 2 parts of the union should both be within brackets { ... } UNION { ... }. Two simpler examples of UNION are {?a wdt:P27 wd:Q55. } UNION { ?a wdt:P27 wd:Q29999. } 27 for 55 or 29999. {?child wdt:P22 ?parent. } UNION {?child wdt:P25 ?parent. } 22 or 25. The last code can be simplified by using property path ?child wdt:P22|wdt:P25 ?parent. An overview of all kind of joins: Venn diagram Mathematical SPARQL 100px And A. B. 100px A. FILTER NOT EXISTS{ B. } 100px A. OPTIONAL{ B. } 100px Or { A. } UNION { B. }