User:Stefan Kühn/SPARQL
Jump to navigation
Jump to search
Try it!
Try it!
Try it!
Try it!
Try it!
Try it!
Try it!
Get revision ID for last revision of some items
Try it!
Doku[edit]
- Wikibook SPARQL
- SPARQL 1.1 Query Language
- Wikidata Query Service/User Manual
- Wikidata:SPARQL query service/queries/examples/de
- Wikidata:SPARQL query service/Wikidata Query Help/Result Views Ausgabe-Formatierung
- Tutorial
Code-Snipets[edit]
Label[edit]
?item rdfs:label ?name FILTER(REGEX(STR(?name), "Flu")) # Filter für Name SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en,de". } OPTIONAL { ?item rdfs:label ?label_de. # Label abspeichern filter (lang(?label_de) = "de"). # Label nur auf Deutsch filtern }
Commons-Link (Sitelink)[edit]
# Commons-Link (über "Andere Websites") OPTIONAL {?commons schema:about ?item ; schema:isPartOf <https://commons.wikimedia.org/> . }
Alle Sitelinks[edit]
PREFIX schema: <http://schema.org/> SELECT ?item ?itemLabel ?sitelink WHERE { BIND(wd:Q1558099 AS ?item) ?sitelink schema:about ?item. #FILTER(REGEX(STR(?sitelink), ".wikipedia.org/wiki/")) }
Alternativnamen[edit]
SELECT ?item ?itemLabel ?itemDescription WHERE { ?item skos:altLabel 'Rheims'@de . SERVICE wikibase:label { bd:serviceParam wikibase:language "de,[AUTO_LANGUAGE]". } }
Beschreibung/Description[edit]
# filter description ?item schema:description ?desc_de. # Beschreibung in Variable speichern filter (lang(?desc_de) = "de"). # nur Sprache "de" abrufen FILTER(REGEX(STR(?desc_de), "Dresden")) # Regex-Filter für deutsche Beschreibung # no description filter not exists {?item schema:description ?desc . filter(lang(?desc)="de") } # Beschreibung auf Deutsch ist leer
IS NULL[edit]
# Item has no image OPTIONAL { ?item wdt:P18 ?image. } FILTER(!BOUND(?commons))
VALUE OR and AND[edit]
# Aussage mit verschieden Werten VALUES ?instance_of { wd:Q79007 wd:Q174782 wd:Q537127 } # Innerortstraße oder Platz oder Brücke ?item wdt:P31 ?instance_of # Statement mit verschiedenen Aussagen OPTIONAL {?stmt pq:P580|pq:P585 ?start} . # hat kein OSM-Eintrag (NOT AND NOT AND NOT) FILTER( !BOUND(?osm_way) && !BOUND(?osm_relation) && !BOUND(?osm_node) ) # hat mindestens einen OSM-Eintag (OR OR) FILTER( BOUND(?osm_way) !! BOUND(?osm_relation) !! BOUND(?osm_node) )
Koordinate zerlegen[edit]
OPTIONAL {?item p:P625 ?coordinate. ?coordinate psv:P625 ?coordinate_node. ?coordinate_node wikibase:geoLatitude ?lat. ?coordinate_node wikibase:geoLongitude ?lon. }
Like / not like[edit]
-- like FILTER (CONTAINS(?name, 'Mustermann')) . -- not like FILTER (!CONTAINS(?name, 'Mustermann')) .
Funktionen[edit]
Textfunktionen[edit]
FILTER(REGEX(STR(?name), "Suchtext")) . # mit regulären Ausdruck filtern FILTER(REGEX(STR(?hasc), "ez","i")) # mit regulären Ausdruck filtern (case insensitve) FILTER(CONTAINS(?name, 'Suchtext')) . # enthält Suchtext FILTER(STRSTARTS(?name, 'Suchtext')) . # beginnt mit Suchtext xsd:integer(STRAFTER(str(?item), 'Q')) # QID wird in Zahl umgewandelt (URI(CONCAT("https://www.openstreetmap.org/relation/",?osm)) as ?osm_link) # Verkettung
Datumsfuntkion[edit]
(year(?startdatum) AS ?y1)
Zahlfunktion[edit]
#ORDER BY xsd:integer(STRAFTER(str(?item), 'Q')) # QID wird in Zahl umgewandelt
Gruppenfunktion[edit]
# Gruppenfunktion SAMPLE
#defaultView:Table
SELECT ?item ?itemLabel ?itemDescription ?Steuernummer ?rechtsformLabel ?adresse ?street ?streetLabel ?coordinate (SAMPLE(?image) AS ?img)
WHERE {
?item wdt:P159 wd:Q1731. # hat Hauptverwaltung in Dresden
OPTIONAL { ?item wdt:P18 ?image. } # Bild
?item rdfs:label ?name
FILTER(REGEX(STR(?name), "Flu")) # Filter für Name
SERVICE wikibase:label { bd:serviceParam wikibase:language "de,en,[AUTO_LANGUAGE]". }
} GROUP BY ?item ?itemLabel ?itemDescription ?Steuernummer ?rechtsformLabel ?adresse ?street ?streetLabel ?coordinate
(count(*) as ?ct)
Komplexeres Element Nr. 1[edit]
SELECT ?hauptverwaltung ?any ?value WHERE {
BIND(wd:Q1420476 AS ?item) .
?item wdt:P159 wd:Q1731.
?item p:P159 ?hauptverwaltung.
?hauptverwaltung ?any ?value .
}
Komplexeres Element Nr. 2[edit]
#--------------------------------------------------------
# Koordinate in Bestandteil zerlegen
#--------------------------------------------------------
SELECT ?node ?any ?value WHERE {
BIND(wdv:63c4fd01b2d7c4f1ec53e904cf87a8ce AS ?node) .
?node ?any ?value .
}
URL verlinken in Ausgabe[edit]
# URL verlinken in Ausgabe
SELECT ?item ?itemLabel ?value ?country ?capitelLabel ?coordinate
(URI(CONCAT("https://www.openstreetmap.org/relation/",?osm)) as ?osm_link)
WHERE
{
?item wdt:P8119 ?value .
?item wdt:P17 ?country .
OPTIONAL {?item wdt:P402 ?osm .}
?item wdt:P36 ?capitel .
OPTIONAL {?capitel wdt:P625 ?coordinate .}
SERVICE wikibase:label { bd:serviceParam wikibase:language "de,en" }
}
Property Qualifier[edit]
# Abfragen von Property Qualifier (Start- und Endzeit)
SELECT ?item ?itemLabel
#?itemDescription
?hasc ?nuts ?startime ?endtime
#?capital
WHERE
{
?item wdt:P17 wd:Q183.
?item wdt:P131 wd:Q1202.
OPTIONAL{?item wdt:P8119 ?hasc. }
?item wdt:P605 ?nuts.
OPTIONAL{?item p:P605 [ pq:P580 ?starttime ] . } # pq Property Qualifier
OPTIONAL{?item p:P605 [ pq:P582 ?endtime ] . }
#?item wdt:P36 ?capital.
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
order by ?endtime ?itemLabel
Linie zeichnen[edit]
#
#defaultView:Map
SELECT ?line ("9B0058" as ?rgb) WHERE {
BIND(CONCAT('LINESTRING (',
STR("13.3"), ' ', STR("50.4"), ',',
STR("13.8"), ' ', STR("51.3"), ')') AS ?str) .
BIND(STRDT(?str, geo:wktLiteral) AS ?line)
}
zufällige Datensätze mit mehr als 20 Sprachartikeln[edit]
# zufällige Datensätze mit mehr als 20 Sprachartikeln (sitelinks)
SELECT ?item ?itemLabel ?sitelinks ?random
WHERE
{
#Minimum sitelinks (Sprachen)
?item wikibase:sitelinks ?sitelinks . hint:Prior hint:rangeSafe true .
FILTER (?sitelinks > 20 )
#Random stuff
BIND(SHA512(CONCAT(STR(RAND()), STR(?item))) AS ?random) .
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], en" . }
}
LIMIT 100
Von Datensatz, die letzte Revision ermitteln[edit]
#title: Get revision ID for last revision of some items
SELECT ?item ?revid
WHERE
{
VALUES ?item_strings { "Q2" "Q5" }
SERVICE wikibase:mwapi
{
bd:serviceParam wikibase:endpoint "www.wikidata.org" .
bd:serviceParam wikibase:api "Generator" .
bd:serviceParam mwapi:generator "revisions" .
bd:serviceParam mwapi:prop "revisions" .
bd:serviceParam mwapi:titles ?item_strings .
?item wikibase:apiOutputItem mwapi:title .
?revid wikibase:apiOutput "revisions/rev/@revid" .
}
}
Suche nach Label[edit]
SELECT ?item ?itemLabel ?instance_ofLabel
WHERE
{
?item rdfs:label "Plauen"@de .
?item wdt:P31 ?instance_of .
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],de,en". }
}