User:Tkarcher/SPARQL-Abfragen
Jump to navigation
Jump to search
Try it!
Try it!
Mapping von Klexikon-Artikeln zu deWiki-Artikeln
[edit]SELECT ?item ?dewikilemma ?klexid
WHERE
{
?item wdt:P6573 ?klexid.
?dewiki schema:about ?item .
FILTER REGEX(STR(?dewiki), "de.wikipedia.org/wiki/") .
BIND (REPLACE(STR(?dewiki), "https://de.wikipedia.org/wiki/", "") as ?dewikilemma )
SERVICE wikibase:label { bd:serviceParam wikibase:language "de". }
}
Abfrage für Länder-Infoboxen im Klexikon
[edit]#Länder-Infoboxen im Klexikon
SELECT
?item
?itemLabel
(MAX(?ew_in_millionen) as ?max_ew_in_mio)
(GROUP_CONCAT(DISTINCT (IF(BOUND(?asklextitel),CONCAT('[[',?asklextitel,'|',?amtssprachenLabel,']]'),?amtssprachenLabel)); SEPARATOR=", ") as ?amtssprachen)
(MAX(?flaeche_rund) as ?max_flaeche_rund)
(GROUP_CONCAT(DISTINCT (IF(BOUND(?hsklextitel),CONCAT('[[',REPLACE(?hsklextitel, "_", " "),']]'),?hauptstadtLabel)); SEPARATOR=", ") as ?hauptstaedte)
(GROUP_CONCAT(DISTINCT (COALESCE (?oberhaupt_titel_ausnahme, ?oberhaupt_bezLabel)); SEPARATOR=", ") as ?oberhaupt_bezeichnung)
(GROUP_CONCAT(DISTINCT (IF(BOUND(?ohklextitel),CONCAT('[[',?ohklextitel,'|',?oberhauptLabel,']]'),?oberhauptLabel)); SEPARATOR=", ") as ?oberhaeupter)
(GROUP_CONCAT(DISTINCT (CONCAT('[[',?kontinentLabel,']]')); SEPARATOR=" und ") as ?kontinente)
?safeFlaggenDatei
?safeKartenDatei
?titel_im_klexikon
WHERE
{
?item p:P31 [ps:P31 wd:Q6256]. # Finde alle Länder
?item wdt:P6573 ?titel_im_klexikon. # die es im Klexikon gibt
?item wdt:P1082 ?ewzahl. # und zeige ihre Einwohnerzahl
BIND (STR(ROUND(?ewzahl / 1000) / 1000) as ?ew_in_millionen) # in Millionen
?item wdt:P2046 ?flaeche. # ihre Fläche
BIND (STR(IF(?flaeche > 999, ROUND(?flaeche / 1000) * 1000,ROUND(?flaeche))) as ?flaeche_rund) # gerundet
?item wdt:P37 ?amtssprache. # ihre Amtssprache
OPTIONAL {?amtssprache wdt:P6573 ?asklextitel}
OPTIONAL { # Optional wg. Vatikanstadt
?item wdt:P36 ?hauptstadt. # ihre Hauptstädte
OPTIONAL {?hauptstadt wdt:P6573 ?hsklextitel}
}
?item wdt:P35 ?oberhaupt. # das Staatsoberhaupt
OPTIONAL {?oberhaupt wdt:P6573 ?ohklextitel}
OPTIONAL {
?item wdt:P1906/wdt:P279* ?oberhaupt_titel.
FILTER (?oberhaupt_titel IN ( # einschränken auf bekannte / kinderverständliche Titel
wd:Q30461, # Präsident
wd:Q116, # Monarch
wd:Q7645115, # Oberster Führer
wd:Q166382, # Emir
wd:Q683337, # Kofürst von Andorra
wd:Q258045, # Capitano Reggente
wd:Q844944 # Präsidium von Bosnien und Herzegowina
))
OPTIONAL {?oberhaupt_titel wdt:P2521 ?oberhaupt_titel_weiblich.}
}
OPTIONAL {?oberhaupt wdt:P21 ?geschlecht.}
FILTER (!BOUND(?oberhaupt_titel_weiblich) || LANG(?oberhaupt_titel_weiblich) = "de").
BIND (IF (BOUND(?oberhaupt_titel_weiblich) && BOUND(?geschlecht) && (?geschlecht = wd:Q6581072),
IF(STR(?oberhaupt_titel_weiblich) = "Monarchin", wd:Q16511993, ?oberhaupt_titel_weiblich),
IF(?oberhaupt_titel = wd:Q116, wd:Q12097, ?oberhaupt_titel)) as ?oberhaupt_bez
)
OPTIONAL { # Länderspezifische Titel
VALUES (?item ?oberhaupt_titel_ausnahme) {
(wd:Q794 "Religionsführer") # Iran
(wd:Q17 "Kaiser") # Japan
(wd:Q40 "Bundespräsident") # Österreich
(wd:Q183 "Bundespräsident") # Deutschland
(wd:Q32 "Großherzog") # Luxemburg
(wd:Q237 "Papst") # Vatikan
(wd:Q347 "Fürst") # Liechtenstein
(wd:Q683 "Häuptling") #Samoa
}
}
?item wdt:P41 ?flagge.
BIND(REPLACE(wikibase:decodeUri(STR(?flagge)), "http://commons.wikimedia.org/wiki/Special:FilePath/", "") as ?flaggenDatei).
BIND(REPLACE(?flaggenDatei, " ", "_") as ?safeFlaggenDatei)
?item wdt:P30 ?kontinent_alt.
OPTIONAL {
?item wdt:P361*/wdt:P706*/wdt:P361* wd:Q27611
BIND (wd:Q29876 as ?mittelamerika)
}
BIND (COALESCE(?mittelamerika, ?kontinent_alt) as ?kontinent)
OPTIONAL { # Lagekarte: Grünes Land auf dem Globus
?item p:P242 ?p_karte1.
?p_karte1 pq:P195 wd:Q21167586.
?p_karte1 ps:P242 ?karte1.
}
OPTIONAL { # Lagekarte: Rotes Land auf dem Globus
?item p:P242 ?p_karte2.
?p_karte2 pq:P195 wd:Q47008743.
?p_karte2 ps:P242 ?karte2.
}
# Nimm Globus, falls vorhanden, sonst 2:1-Ausschnitt
BIND(REPLACE(wikibase:decodeUri(STR(COALESCE(?karte1, ?karte2))), "http://commons.wikimedia.org/wiki/Special:FilePath/", "") as ?kartenDatei).
BIND(REPLACE(?kartenDatei, " ", "_") as ?safeKartenDatei)
SERVICE wikibase:label {
bd:serviceParam wikibase:language "[AUTO_LANGUAGE],de".
?item rdfs:label ?itemLabel.
?amtssprache rdfs:label ?amtssprachenLabel.
?hauptstadt rdfs:label ?hauptstadtLabel.
?oberhaupt_bez rdfs:label ?oberhaupt_bezLabel.
?oberhaupt rdfs:label ?oberhauptLabel.
?kontinent rdfs:label ?kontinentLabel.
}
}
GROUP BY ?item ?itemLabel ?safeFlaggenDatei ?safeKartenDatei ?titel_im_klexikon
ORDER BY ?itemLabel