A set of SPARQL examples that are used in different TGX resources
License: https://www.gnu.org/licenses/gpl-3.0
Uses method in: https://github.com/WDscholia/scholia/tree/master/scholia/app/templates/ontology_data.sparql
Ontology aspect: data
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX target: <http://www.wikidata.org/entity/Q116446479>
SELECT DISTINCT ?description ?value ?valueUrl
WHERE {
BIND(target: AS ?ontology)
{
BIND(1 AS ?order)
BIND("Website" AS ?description)
?ontology wdt:P856 ?value .
BIND(?value AS ?valueUrl)
}
UNION
{
SELECT
(2 AS ?order)
("Maintainer(s)" AS ?description)
(GROUP_CONCAT(?value_; separator=", ") AS ?value)
(CONCAT("../authors/", GROUP_CONCAT(?q; separator=",")) AS ?valueUrl)
{
BIND(1 AS ?dummy)
target: wdt:P126 ?iri .
BIND(SUBSTR(STR(?iri), 32) AS ?q)
?iri rdfs:label ?value_string .
FILTER (LANG(?value_string) = 'en')
BIND(COALESCE(?value_string, ?q) AS ?value_)
}
GROUP BY ?dummy
}
UNION
{
SELECT
(3 AS ?order)
("Contributors" AS ?description)
(GROUP_CONCAT(?value_; separator=", ") AS ?value)
(CONCAT("../authors/", GROUP_CONCAT(?q; separator=",")) AS ?valueUrl)
{
BIND(1 AS ?dummy)
target: wdt:P50 | wdt:P178 | wdt:P767 ?iri .
BIND(SUBSTR(STR(?iri), 32) AS ?q)
?iri rdfs:label ?value_string .
FILTER (LANG(?value_string) = 'en')
BIND(COALESCE(?value_string, ?q) AS ?value_)
}
GROUP BY ?dummy
}
UNION
{
SELECT
(4 AS ?order)
("Part of" AS ?description)
(GROUP_CONCAT(?value_; separator=", ") AS ?value)
(CONCAT("../topic/", GROUP_CONCAT(?q; separator=",")) AS ?valueUrl)
{
BIND(1 AS ?dummy)
target: wdt:P361 ?iri .
BIND(SUBSTR(STR(?iri), 32) AS ?q)
?iri rdfs:label ?value_string .
FILTER (LANG(?value_string) = 'en')
BIND(COALESCE(?value_string, ?q) AS ?value_)
}
GROUP BY ?dummy
}
UNION
{
SELECT
(5 AS ?order)
("License" AS ?description)
(GROUP_CONCAT(?value_; separator=", ") AS ?value)
(CONCAT("../topic/", GROUP_CONCAT(?q; separator=",")) AS ?valueUrl)
{
BIND(1 AS ?dummy)
target: wdt:P275 ?iri .
BIND(SUBSTR(STR(?iri), 32) AS ?q)
?iri rdfs:label ?value_string .
FILTER (LANG(?value_string) = 'en')
BIND(COALESCE(?value_string, ?q) AS ?value_)
}
GROUP BY ?dummy
}
UNION
{
SELECT
(6 AS ?order)
("Wikidata property" AS ?description)
(GROUP_CONCAT(?value_; separator=", ") AS ?value)
(CONCAT("../", GROUP_CONCAT(?q; separator=",")) AS ?valueUrl)
{
BIND(1 AS ?dummy)
target: wdt:P1687 ?iri .
BIND(SUBSTR(STR(?iri), 32) AS ?q)
?iri rdfs:label ?value_string .
FILTER (LANG(?value_string) = 'en')
BIND(COALESCE(?value_string, ?q) AS ?value_)
}
GROUP BY ?dummy
}
UNION
{
SELECT
(7 AS ?order)
("🛑 Replaced by" AS ?description)
(GROUP_CONCAT(?value_; separator=", ") AS ?value)
(CONCAT("../", GROUP_CONCAT(?q; separator=",")) AS ?valueUrl)
{
BIND(1 AS ?dummy)
?iri wdt:P1365 target: .
BIND(SUBSTR(STR(?iri), 32) AS ?q)
?iri rdfs:label ?value_string .
FILTER (LANG(?value_string) = 'en')
BIND(COALESCE(?value_string, ?q) AS ?value_)
}
GROUP BY ?dummy
}
}
ORDER BY ?order
graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
v11("?_anon_d5635a4148474aba9b1ec2d6f2e48935148")
v12("?_anon_d5635a4148474aba9b1ec2d6f2e48935153")
v13("?_anon_d5635a4148474aba9b1ec2d6f2e48935156")
v14("?_anon_d5635a4148474aba9b1ec2d6f2e48935159")
v15("?_anon_d5635a4148474aba9b1ec2d6f2e48935162")
v16("?_anon_d5635a4148474aba9b1ec2d6f2e48935165")
v17("?description"):::projected
v16("?dummy")
v8("?iri")
v2("?ontology")
v17("?order")
v16("?q")
v17("?value"):::projected
v17("?valueUrl"):::projected
v16("?value_")
v6("?value_string")
c3([http://www.wikidata.org/entity/Q116446479]):::iri
bind0[/"http://www.wikidata.org/entity/Q116446479"/]
bind0 --as--o v2
subgraph union0[" Union "]
subgraph union0l[" "]
style union0l fill:#abf,stroke-dasharray: 3 3;
subgraph union1[" Union "]
subgraph union1l[" "]
style union1l fill:#abf,stroke-dasharray: 3 3;
subgraph union2[" Union "]
subgraph union2l[" "]
style union2l fill:#abf,stroke-dasharray: 3 3;
subgraph union3[" Union "]
subgraph union3l[" "]
style union3l fill:#abf,stroke-dasharray: 3 3;
subgraph union4[" Union "]
subgraph union4l[" "]
style union4l fill:#abf,stroke-dasharray: 3 3;
subgraph union5[" Union "]
subgraph union5l[" "]
style union5l fill:#abf,stroke-dasharray: 3 3;
f1[["?value_string = 'en'"]]
f1 --> v6
bind2[/"'1^^xsd:integer'"/]
bind2 --as--o v16
v8 --"p:direct/P1365"--> c3
bind3[/"substring(str(?iri),'32^^xsd:integer')"/]
v8 --o bind3
bind3 --as--o v16
v8 --"rdfs:label"--> v6
bind4[/"?value_string?q"/]
v6 --o bind4
v16 --o bind4
bind4 --as--o v16
bind7[/"?q"/]
v16 --o bind7
bind7 --as--o v16
bind8[/"'7^^xsd:integer'"/]
bind8 --as--o v17
bind9[/"'🛑 Replaced by'"/]
bind9 --as--o v17
bind10[/"?value_"/]
v16 --o bind10
bind10 --as--o v17
bind11[/"concat('../',)"/]
null --o bind11
bind11 --as--o v17
end
subgraph union5r[" "]
style union5r fill:#abf,stroke-dasharray: 3 3;
f12[["?value_string = 'en'"]]
f12 --> v6
bind13[/"'1^^xsd:integer'"/]
bind13 --as--o v16
c3 --"p:direct/P1687"--> v8
bind14[/"substring(str(?iri),'32^^xsd:integer')"/]
v8 --o bind14
bind14 --as--o v16
v8 --"rdfs:label"--> v6
bind15[/"?value_string?q"/]
v6 --o bind15
v16 --o bind15
bind15 --as--o v16
bind18[/"?q"/]
v16 --o bind18
bind18 --as--o v15
bind19[/"'6^^xsd:integer'"/]
bind19 --as--o v17
bind20[/"'Wikidata property'"/]
bind20 --as--o v17
bind21[/"?value_"/]
v16 --o bind21
bind21 --as--o v17
bind22[/"concat('../',)"/]
null --o bind22
bind22 --as--o v17
end
union5r <== or ==> union5l
end
end
subgraph union4r[" "]
style union4r fill:#abf,stroke-dasharray: 3 3;
f23[["?value_string = 'en'"]]
f23 --> v6
bind24[/"'1^^xsd:integer'"/]
bind24 --as--o v16
c3 --"p:direct/P275"--> v8
bind25[/"substring(str(?iri),'32^^xsd:integer')"/]
v8 --o bind25
bind25 --as--o v16
v8 --"rdfs:label"--> v6
bind26[/"?value_string?q"/]
v6 --o bind26
v16 --o bind26
bind26 --as--o v16
bind29[/"?q"/]
v16 --o bind29
bind29 --as--o v14
bind30[/"'5^^xsd:integer'"/]
bind30 --as--o v17
bind31[/"'License'"/]
bind31 --as--o v17
bind32[/"?value_"/]
v16 --o bind32
bind32 --as--o v17
bind33[/"concat('../topic/',)"/]
null --o bind33
bind33 --as--o v17
end
union4r <== or ==> union4l
end
end
subgraph union3r[" "]
style union3r fill:#abf,stroke-dasharray: 3 3;
f34[["?value_string = 'en'"]]
f34 --> v6
bind35[/"'1^^xsd:integer'"/]
bind35 --as--o v16
c3 --"p:direct/P361"--> v8
bind36[/"substring(str(?iri),'32^^xsd:integer')"/]
v8 --o bind36
bind36 --as--o v16
v8 --"rdfs:label"--> v6
bind37[/"?value_string?q"/]
v6 --o bind37
v16 --o bind37
bind37 --as--o v16
bind40[/"?q"/]
v16 --o bind40
bind40 --as--o v13
bind41[/"'4^^xsd:integer'"/]
bind41 --as--o v17
bind42[/"'Part of'"/]
bind42 --as--o v17
bind43[/"?value_"/]
v16 --o bind43
bind43 --as--o v17
bind44[/"concat('../topic/',)"/]
null --o bind44
bind44 --as--o v17
end
union3r <== or ==> union3l
end
end
subgraph union2r[" "]
style union2r fill:#abf,stroke-dasharray: 3 3;
f45[["?value_string = 'en'"]]
f45 --> v6
bind46[/"'1^^xsd:integer'"/]
bind46 --as--o v16
subgraph union6[" Union "]
subgraph union6l[" "]
style union6l fill:#abf,stroke-dasharray: 3 3;
subgraph union7[" Union "]
subgraph union7l[" "]
style union7l fill:#abf,stroke-dasharray: 3 3;
c3 --"p:direct/P767"--> v8
end
subgraph union7r[" "]
style union7r fill:#abf,stroke-dasharray: 3 3;
c3 --"p:direct/P178"--> v8
end
union7r <== or ==> union7l
end
end
subgraph union6r[" "]
style union6r fill:#abf,stroke-dasharray: 3 3;
c3 --"p:direct/P50"--> v8
end
union6r <== or ==> union6l
end
bind47[/"substring(str(?iri),'32^^xsd:integer')"/]
v8 --o bind47
bind47 --as--o v16
v8 --"rdfs:label"--> v6
bind48[/"?value_string?q"/]
v6 --o bind48
v16 --o bind48
bind48 --as--o v16
bind51[/"?q"/]
v16 --o bind51
bind51 --as--o v12
bind52[/"'3^^xsd:integer'"/]
bind52 --as--o v17
bind53[/"'Contributors'"/]
bind53 --as--o v17
bind54[/"?value_"/]
v16 --o bind54
bind54 --as--o v17
bind55[/"concat('../authors/',)"/]
null --o bind55
bind55 --as--o v17
end
union2r <== or ==> union2l
end
end
subgraph union1r[" "]
style union1r fill:#abf,stroke-dasharray: 3 3;
f56[["?value_string = 'en'"]]
f56 --> v6
bind57[/"'1^^xsd:integer'"/]
bind57 --as--o v16
c3 --"p:direct/P126"--> v8
bind58[/"substring(str(?iri),'32^^xsd:integer')"/]
v8 --o bind58
bind58 --as--o v16
v8 --"rdfs:label"--> v6
bind59[/"?value_string?q"/]
v6 --o bind59
v16 --o bind59
bind59 --as--o v16
bind62[/"?q"/]
v16 --o bind62
bind62 --as--o v11
bind63[/"'2^^xsd:integer'"/]
bind63 --as--o v17
bind64[/"'Maintainer(s)'"/]
bind64 --as--o v17
bind65[/"?value_"/]
v16 --o bind65
bind65 --as--o v17
bind66[/"concat('../authors/',)"/]
null --o bind66
bind66 --as--o v17
end
union1r <== or ==> union1l
end
end
subgraph union0r[" "]
style union0r fill:#abf,stroke-dasharray: 3 3;
bind67[/"'1^^xsd:integer'"/]
bind67 --as--o v17
bind68[/"'Website'"/]
bind68 --as--o v17
v2 --"p:direct/P856"--> v17
bind69[/"?value"/]
v17 --o bind69
bind69 --as--o v17
end
union0r <== or ==> union0l
end