Vorlage:Wikidata CrossRef Österreich/Doku

aus Wikipedia, der freien Enzyklopädie

Diese Vorlage dient der einheitlichen Verlinkung von Ids über Wikidata zu externen / internen Datenbeständen mit Österreichbezug und stellt diese Ids in einheitlicher Form und der immer gleichen Reihenfolge für diverse Listen zur Verfügung. Sie erledigt als Container die Formatierung aller eingebetteten Untervorlagen. Sie ist für die Verwendung in Tabellenzeilenvorlagen gedacht.

Kopiervorlage

{{Wikidata CrossRef Österreich|{{{WD-Item|}}}|ignore=<prop>}}

Parameter

1
WD-Item zu einem existierenden Datensatz in Wikidata
ignore
Property-ID aus Wikidata, die bei der Ausgabe unterdrückt werden soll, weil sie bereits an anderer Stelle in der Tabellenzeile ausgegeben wird (etwa auch anders formatiert).

Beispiele

{{Wikidata CrossRef Österreich|Q28146548}}
----
{{Wikidata CrossRef Österreich|Q28146548|ignore=P9154}}
----
{{Wikidata CrossRef Österreich|Q8888888888888}}


im Kontext
Anzeige Erläuterung
(Q28146548)
Denkmalschutz und Gemeindebau,
etwa in Bauwerkslisten von Architekten
(Q28146548)
Anzeige in Listen, wo der DS-Primärschlüssel an anderer Stelle steht (hier die BDA-ID),
also unsere Denkmallisten
(Q28146548)
Anzeige in Listen, wo der DS-Primärschlüssel an anderer Stelle steht (hier die BDA-ID),
also unsere Denkmallisten
(Q28146548)
Anzeige in Listen, wo der Wiener-Wohnen-Primärschlüssel an anderer Stelle steht,
also unsere Listen mit Gemeindebauten
(Q38066547)
denkmalgeschütztes Objekt im Tiroler Kunstkataster,
etwa in Bauwerkslisten von Architekten
(Q38105803)
denkmalgeschütztes Objekt im Tiroler Kunstkataster mit mehreren Werten für TKK (noch nicht implementiert)
(Q92306874)
nur Tiroler Kunstkataster,
etwa in Bauwerkslisten von Architekten

Implementierungsbeschreibung

Am Beispiel von Wiener Wohnen.

  • Die Vorlage {{Wikidata CrossRef Österreich}} hat die Aufgabe, für alle relevanten IDs an die jeweiligen providerspezifischen Unterlagen zu propagieren. Dabei ist dafür zu sorgen, dass die Ausgabe jeweils einer ID unterdrückt werden kann.
-->{{#ifeq: {{{ignore|}}}|P8231||{{Wikidata Wiener Wohnen Id|{{{1|}}}|br=1}}}}<!--
  • die providerspezifische Vorlage, hier {{Wikidata Wiener Wohnen Id}}, hat folgende Aufgaben:
    • besorge den entsprechenden Propertywert aus Wikidata. Falls dieser existiert
    • unterstütze den Parameter {{{br}}} zur optionalen Erzeugung eines führenden Zeilenumbruchs
    • erzeugen einen kurzen Text zur benutzerverständlichen Markierung der ID, eventuell mit dem css-Attribut title
    • ignoriere eventuell auftretende Werte Kein Wert indem in der Folge keine ID ausgegeben wird (nur die benutzerverständliche Markierung). Es wird davon ausgegangen, dass Kein Wert immer als einziger Wert auftritt.
    • Erzeuge den Link auf den externen Datensatz unter Zuhilfenahme der aus Wikidata gewonnenen Werte.
      • Der Link kann direkt erstellt werden, falls sichergestellt ist, dass es immer nur maximal einen eindeutigen Wert geben kann (trotz uniqueness constraint ist das jedoch nie sichergestellt, bei mehreren Werten wird dann halt nur der erste rückgelieferte Wert angezeigt. Soweit ich weiß, lässt sich die Reihenfolge in Wikidata jedoch nicht beeinflussen.)
      • Listenlinks werden mit der generischen Untervorlage für die Ausgabe von Listen, {{Wikidata CrossRef Österreich/Liste}} erzeugt.

Alles zusammen (mit Umbrüchen zur Formatierung, die in der Implementierung stören):

{{#if: {{#invoke:Wikidata|claim|P8231|id={{{1|}}}}}            ## Propertywert in Wikidata definiert?
  |{{#if:{{{br|}}}|<br />}}                                    ## optionaler Umbruch
   Wiener Wohnen:&nbsp;                                        ## benutzerverständliche Markierung 
   {{#ifeq: {{#invoke:Wikidata|claim|P8231|id={{{1|}}}}}       ## Abfangen von ''Kein Wert''
   |Kein Wert
   |                                                           ## dann keine Ausgabe
   |{{Wikidata CrossRef Österreich/Liste                       ## sonst propagiere an Liste
    |template=Wikidata Wiener Wohnen Id/Link                   ## providerspezifische Link-Vorlage
    |list={{#invoke:Wikidata|claim|P8231|id={{{1|}}}|list=/ }} ## hole die komplette Liste der Werte aus Wikidata, durch '/' getrennt
    }}
   }}
}}

Erweiterung um zusätzliche IDs

Die Idee dahinter ist, dass ein Objekt mehrere unterschiedliche IDs haben kann (ein Gemeindebau kann denkmalgeschützt sein), aber nicht alle (ein Gemeindebau ist kein Naturdenkmal oder kein Kunstwerk im öffentlichen Raum). Es werden daher immer alle definierten Ids bei allen Objekten ausgegeben versucht und es ist klar, dass die meisten IDs mangels Wert keine Anzeige zur Folge haben. Da die Ids alle an einem Objekt definiert sein müssen (dem durch WD-Item in der Tabellenzeile definierten Item), erfolgt nur ein einziger teurer Wikidatazugriff je Tabellenzeile. Für Tabellenzeilen ohne WD-Item-Wert erfolgt kein Wikidatazugriff.

Für das Hinzufügen einer neuen ID (etwa der ID der Wiener Kunstwerke im öffentlichen Raum) sind folgende Schritte notwendig:

Voraussetzungen
  1. Antrag auf eine neue Property für diese neue ID in Wikidata. Genehmigungsprozess.
  2. Versorgung aller WD-Items, die einem Tabelleneintrag entsprechen, mit der neuen Property und dem korrekten Wert.
  3. Versorgung aller Tabellenzeilen mit dem zugeordneten WD-Item aus Wikidata. (User:Herzi Bot Pinki kann helfen, braucht aber maßgeschneiderte Lösungen für die jeweiligen Vorlagen.)
  4. Ev. für noch nicht in Wikidata als WD-Items existierende Tabelleneinträge Neuanlage derselben. Kann auch unabhängig von den weiteren Schritten erfolgen.
Einbau der neuen ID in die Containervorlage
  1. Erstellen einer Vorlage für die neue ID nach dem Muster von etwa {{Wikidata Wiener Wohnen Id}} und demselben Interface. Als Namenskonvention für die Vorlage wird Wikidata <provider> Id empfohlen.
    1. Erstellen einen Untervorlage zum Erstellen eines simplen Weblinks zu den Daten des externen Providers, etwa wie {{Wikidata Wiener Wohnen Id/Link}}. Diese Vorlagen zur Linkerzeugung erwarten immer eine id als einzigen, unbenannten Parameter.
  2. Einbau der neu erstellten Vorlage in diese Containervorlage durch Einfügen einer neuen Zeile nach dem vorhandenen Muster.
  3. t.b.c (hat auf Commons noch Auswirkungen)