Daten nachnutzen

Aus Spielkarten-Wiki
Zur Navigation springen Zur Suche springen

Wie du die Daten dieses Wikis maschinell abholst — Abfragedienst, Schnittstelle, Adressen, Beispiele.

Die Daten dieses Wikis stehen unter CC0 1.0 und dürfen ohne Bedingung weiterverwendet werden; die Einzelheiten und die Bildrechte stehen auf der Seite Urheberrecht und Lizenz. Diese Seite hier sagt, wie du an die Daten kommst.

Der kürzeste Weg: die Abfrage-Konsole

query.spielkarten.wiki öffnet eine Konsole, in die du eine Abfrage in der Sprache SPARQL tippen und sie sofort ausführen kannst — ohne Anmeldung, ohne Schlüssel. Wer SPARQL noch nicht kennt: die Beispiele weiter unten laufen sofort, wenn du sie hineinkopierst.

Für Programme liegt derselbe Dienst unter https://query.spielkarten.wiki/sparql. Er nimmt GET und POST mit dem Parameter query und antwortet in JSON, XML, CSV oder TSV, je nach Accept-Kopfzeile.

Die Adressen, und eine Falle dabei

Was Adresse
Wiki https://spielkarten.wiki
Ein Eintrag https://spielkarten.wiki/entity/Q1900
Abfragedienst https://query.spielkarten.wiki/sparql
Abfrage-Konsole https://query.spielkarten.wiki/
MediaWiki- und Wikibase-Schnittstelle https://spielkarten.wiki/w/api.php

Achtung bei den Präfixen. Anders als bei Wikidata heißen unsere RDF-Präfixe nach unserer Adresse. Eine Abfrage mit den Wikidata-Präfixen läuft hier ohne Fehlermeldung durch und liefert null Treffer — sie sieht aus, als hätte sie sauber gearbeitet. Diese sechs Zeilen gehören deshalb vor jede Abfrage:

PREFIX wd:   <https://spielkarten.wiki/entity/>
PREFIX wdt:  <https://spielkarten.wiki/prop/direct/>
PREFIX p:    <https://spielkarten.wiki/prop/>
PREFIX ps:   <https://spielkarten.wiki/prop/statement/>
PREFIX pq:   <https://spielkarten.wiki/prop/qualifier/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

In der Abfrage-Konsole sind sie bereits gesetzt.

Fremde Kennungen: was im RDF daraus wird

Viele Einträge tragen eine Kennung aus einem fremden Verzeichnis — eine Wikidata-Nummer, eine GND-Nummer, einen DOI. Im Wiki siehst du sie als Verweis, den du anklicken kannst. Im RDF steht sie zweimal: einmal als bloße Zeichenkette und einmal als vollständige, auflösbare Adresse. Die zweite Form ist die, mit der du unsere Daten an fremde Datenbestände anschließt.

Kennung Eigenschaft Adresse im RDF
Wikidata P38 http://www.wikidata.org/entity/…
GOV (CompGen) P39 http://gov.genealogy.net/…
GeoNames P40 https://sws.geonames.org/…/
GND (Deutsche Nationalbibliothek) P84 https://d-nb.info/gnd/…
ISSN P86 https://portal.issn.org/resource/ISSN/…
DOI P87 https://doi.org/…

Die Zeichenkette steht unter dem Präfix wdt:, die Adresse unter wdtn: (dasselbe mit ps: und psn: am Aussage-Knoten). Nachsehen kannst du das am RDF eines einzelnen Eintrags:

https://spielkarten.wiki/wiki/Spezial:Objektdaten/Q3996.ttl

  wdt:P84  "1030800-3" ;
  wdtn:P84 <https://d-nb.info/gnd/1030800-3> ;

Die ISBN (P85) fehlt in dieser Tabelle, und zwar mit Absicht. Für eine ISBN gibt es keinen neutralen, dauerhaften Auflöser — die üblichen Kandidaten sind Buchhändler, und darauf wollen wir nicht verlinken. Die ISBN steht deshalb nur als Zeichenkette da.

Noch nicht im Abfragedienst. Diese Adressen stehen ab sofort im RDF eines jeden Eintrags. In den Index des Abfragedienstes wandern sie erst mit dem nächsten vollständigen Neuaufbau; bis dahin findest du sie über Spezial:Objektdaten, nicht über wdtn: in SPARQL.

Wie das Datenmodell aufgebaut ist

Jeder Gegenstand ist ein Eintrag mit einer Q-Nummer, jede Aussage über ihn benutzt eine Eigenschaft mit einer P-Nummer. Die Klasse eines Eintrags steht in der Eigenschaft ist ein (P3):

Klasse Nummer Was darin steht
Spiel Q1 ein Kartenspiel als Objekt
Person Q3 ein Kartenmacher, Stecher, Verleger
Firma Q4 eine Kartenfabrik oder Firma
Steuersystem Q6 eine Stempelordnung
Steuerstempel Q8 ein einzelner Stempel
Ort Q15 ein Ort
Quelle Q16 ein Buch, ein Aufsatz, ein Katalog
Sammlung Q1388 ein Museum oder eine Privatsammlung

Die wichtigsten Verbindungen zwischen den Klassen:

Eigenschaft Nummer Von → nach
Hersteller P6 Spiel → Person/Firma
tätig in P13 Person/Firma → Ort, mit Zeitraum als Zusatz
trägt Stempel P9 Spiel → Steuerstempel
Teil von P5 Steuerstempel → Steuersystem
ist beschrieben in P78 alles → Quelle, mit Katalognummer und Seite
befindet sich in Sammlung P80 Spiel → Sammlung, mit Inventarnummer
historisch Teil von P60 Ort → historische Region → Land
liegt heute in P68 Ort → heutige Region → heutiger Staat

Die vollständige Liste steht auf der Seite Terminologie und Datenmodell.

Vier Abfragen zum Loslegen

Alle vier laufen unverändert in der Abfrage-Konsole.

Spiele mit ihrem Erscheinungsjahr

SELECT ?spiel ?name ?jahr WHERE {
  ?spiel wdt:P3 wd:Q1 ; rdfs:label ?name ; wdt:P24 ?jahr .
  FILTER(LANG(?name) = "de")
}
LIMIT 50

Alle Hersteller, die in Prag (Q988) tätig waren

SELECT ?person ?name WHERE {
  ?person wdt:P13 wd:Q988 ; rdfs:label ?name .
  FILTER(LANG(?name) = "de")
}

Spiele einer Sammlung, mit Inventarnummer — hier die Sammlung Kranich (Q8305)

SELECT ?spiel ?name ?inventarnummer WHERE {
  ?spiel p:P80 ?aussage .
  ?aussage ps:P80 wd:Q8305 .
  OPTIONAL { ?aussage pq:P82 ?inventarnummer }
  ?spiel rdfs:label ?name .
  FILTER(LANG(?name) = "de")
}

Steuerstempel mit ihrem Geltungszeitraum

SELECT ?stempel ?name ?von ?bis WHERE {
  ?stempel wdt:P3 wd:Q8 ; rdfs:label ?name .
  OPTIONAL { ?stempel wdt:P25 ?von }
  OPTIONAL { ?stempel wdt:P26 ?bis }
  FILTER(LANG(?name) = "de")
}

Ein Hinweis zu wdt: gegenüber p:. wdt: liefert nur die gültigen Aussagen. p: führt über den Aussage-Knoten und liefert auch Aussagen, die wir ausdrücklich als zurückgewiesen gekennzeichnet haben — etwa eine Zuschreibung an einen Hersteller, die die Forschung widerlegt hat. Wer p: braucht, weil er an die Zusatzangaben will, sollte den Rang mitprüfen.

Verbund-Abfragen zu Wikidata

Der Abfragedienst kann Wikidata mitfragen. Damit lassen sich unsere Einträge über ihre Normdaten-Anker mit dem dortigen Bestand verbinden:

SELECT ?ding ?wikidataLabel WHERE {
  ?ding wdt:P38 ?wdId .
  BIND(IRI(CONCAT("http://www.wikidata.org/entity/", ?wdId)) AS ?wd)
  SERVICE <https://query.wikidata.org/sparql> {
    ?wd rdfs:label ?wikidataLabel . FILTER(LANG(?wikidataLabel) = "de")
  }
}
LIMIT 20

Die Schnittstelle des Wikis

Neben dem Abfragedienst steht die gewöhnliche MediaWiki- und Wikibase-Schnittstelle unter https://spielkarten.wiki/w/api.php zur Verfügung. Einen einzelnen Eintrag holst du damit so:

https://spielkarten.wiki/w/api.php?action=wbgetentities&ids=Q1900&format=json

Für RDF genügt die Adresse des Eintrags selbst; sie verweist auf die maschinenlesbare Fassung weiter.

Bitte fair abfragen

Der Dienst läuft auf einer einzelnen Maschine, die ein ehrenamtlicher Verein bezahlt. Am Vorschaltdienst hängt eine Drosselung. Wenn du größere Mengen brauchst:

  • Frag in großen Abfragen statt in vielen kleinen.
  • Trag eine erkennbare Kennung in die User-Agent-Kopfzeile ein, am besten mit
 einer Kontaktadresse — dann können wir uns melden, statt zu sperren.
  • Willst du den ganzen Bestand, dann nimm den Abzug statt den Abfragedienst.
 Siehe den nächsten Abschnitt — eine Datei statt zehntausend Anfragen.

Der ganze Bestand als eine Datei

Unter spielkarten.wiki/abzug liegt der vollständige Bestand als Turtle, gepackt. Ein Zeitgeber schreibt ihn jede Nacht neu; die letzten vier Stände bleiben liegen.

Was Adresse
immer der neueste https://spielkarten.wiki/abzug/spielkarten-wiki-neuester.ttl.gz
ein bestimmter Tag https://spielkarten.wiki/abzug/spielkarten-wiki-JJJJ-MM-TT.ttl.gz
Übersicht mit Größen und Ständen https://spielkarten.wiki/abzug/

Der Abzug enthält alle Einträge und Eigenschaften in derselben Form, die auch Spezial:Objektdaten ausgibt — mit unseren Präfixen (siehe oben) und mit den auflösbaren Adressen fremder Kennungen. Er ist damit auch der bequeme Weg, unsere Daten in einen eigenen Abfragedienst zu laden.

Das gilt ausdrücklich als Einladung: Lade den Abzug, statt den Abfragedienst leerzuräumen. Wenn dir etwas fehlt, schreib uns an info@talon.cc.

Verweise auf uns

Die Adresse eines Eintrags aus seiner Q-Nummer ist stabil und darf zitiert werden — siehe den Abschnitt über die Adressen auf der Seite Urheberrecht und Lizenz. Wenn du unsere Einträge in einer eigenen Datenbank verankerst, freuen wir uns über eine Nachricht an info@talon.cc; dann können wir in der Gegenrichtung auf dich verweisen.