SPARQL/UNION
|
Suppose the set A: 28 capitals in European Union Template:SPARQL |
Suppose the set B: 3 cities with millions of inhabitants in European Union. Template:SPARQL |
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. Template:SPARQL
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.
Template:SPARQL
Finally a UNION of capitals and big cities result in 30 cities, one of which was deduplicated by DISTINCT.
Template:SPARQL
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. }Template:P for Template:Q or Template:Q.{?child wdt:P22 ?parent. } UNION {?child wdt:P25 ?parent. }Template:P or Template:P.
- 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 | |
|---|---|---|---|
| And | A. B. | ||
| A. FILTER NOT EXISTS{ B. } | |||
| A. OPTIONAL{ B. } | |||
| Or | { A. } UNION { B. } |