Wikipedia:Lua/Modul/WikidataScheme/Scenario

Vorlagenprogrammierung Diskussionen Lua Unterseiten
Modul Deutsch English

Modul: Dokumentation

Diese Seite beschreibt Anwendungsbeispiele für WikidataScheme.

Angenommen, es soll ein neues Datenobjekt manuell aus dem Nichts erstellt werden.

  • Natürlich gibt es auf Wikidata die Spezialseite d:Special:NewItem.
  • Trotzdem ist das Ausfüllen ein mühsamer Prozess:
    • Welche Statements sollen gemacht werden? In welcher Reihenfolge?
    • Wie genau heißen die Properties, welche P-Nummern haben sie?
    • Oft sind Items anzugeben; wie war doch gleich die Q-Nummer? Wie genau hieß das Ding?
    • Welche Qualifizierer sollen mitgegeben werden?
  • Jedes Statement, jeder Einzelwert muss einzeln publiziert werden.

Für bestimmte typische Objekte sollen mittels WikidataScheme immer oder häufig benötigte Eigenschaften (Property) und deren Werte (andere typische Items) sowie Qualifikatoren übersichtlich angeboten werden.

  • In der einfachen Stufe werden sie nur mit Namen sowie P- und Q-Nummern aufgelistet.
  • Wünschenswert wäre ein Gadget, das im Kontext jedes beliebigen Wikis aktiviert weden kann und ein aus dem WikidataScheme individuell generiertes Formular anzeigt, das die interaktive Arbeit effizient unterstützt und anschließend eine Abspeicherung auf einen Schlag ermöglicht.

Die Methodik ließe sich auch zur Vervollständigung bestehender aber unvollständiger Items verwenden, um bestimmte Eigenschaften zu ergänzen.

Beispiel: Opernsänger

Bearbeiten

Es mögen Items zu Musikern manuell generiert werden.

  • Manche Bearbeiter möchten Items zu Opernsängern.
  • Andere wünschen Items zu Mitgliedern von Rockbands und dergleichen.
  • Wieder andere beschäftigen sich mit Komponisten bestimmter Zeitalter.

Allen gemeinsam ist die Generierung als Mensch. Dazu gehören Geschlecht, Zeit und Ort von Geburt und ggf. Tod, Fragen der Nationalität.

  • Je nachdem wäre in jeder Musikrichtung zu spezialisieren: Stimmlage bei Opernsängern, Instrument und Bandzugehörigkeiten bei Rock & Pop, Zeitalter und Genre bei klassischen Komponisten.

Für Opernsänger könnte ein WikidataScheme mit einigen Minimalangaben in der Benutzersprache (siehe auch Französisch oder Hebräisch) wie nachstehend aussehen.

Opernsänger – Ein neues Datenobjekt erstellen

Bearbeiten
Opernsänger
Typ Beschreibung Status
P31 ist ein(e) Q5 Mensch erforderlich
P21 Geschlecht erforderlich
P734 Familienname erforderlich
P735 Vorname vorgeschlagen
P1787 Künstlername optional
P1477 Geburtsname optional
P569 Geburtsdatum vorgeschlagen
P19 Geburtsort vorgeschlagen
P570 Sterbedatum vorgeschlagen
P20 Sterbeort vorgeschlagen
P106 Tätigkeit erforderlich
P412 Stimmlage erforderlich
P136 Genre vorgeschlagen
P1303 Instrument erforderlich

Opernsänger – JSON

Bearbeiten

Spezifiziert wurde dies durch den folgenden JSON-Code:

{ "@generated": "2024-06-14T23:15:37+02:00",
  "@format": "WikidataScheme 2019-12-16",
  "caption": "Q2865819",
  "claims": [
    { "subject": "instance",
      "state":   "required",
      "values":  [
                   {
        "q": "human"
                   }
                 ]
    },
    { "subject": "gender",
      "state":   "required",
      "values":  [
                   {
        "qlist": [ "female",
                   "male",
                   true ]
                   }
                 ]
    },
    { "subject": "nameFamily",
      "state":   "required"
    },
    { "subject": "nameGiven",
      "state":   "suggested"
    },
    { "subject": "nameArtist",
      "state":   "optional"
    },
    { "subject": "nameBirth",
      "state":   "optional"
    },
    { "subject": "birthDate",
      "state":   "suggested"
    },
    { "subject": "birthPlace",
      "state":   "suggested"
    },
    { "subject": "deathDate",
      "state":   "suggested"
    },
    { "subject": "deathPlace",
      "state":   "suggested"
    },
    { "subject": "occupation",
      "state":   "required",
      "values":  [
                   {
        "qlist": [ "singerOpera",
                   "actorStage",
                   "actorMovie",
                   "singer",
                   true ]
                   }
                 ]
    },
    { "subject": "voicetype",
      "state":   "required",
      "values":  [
                   {
        "qlist": [ "soprano",
                   "mezzosoprano",
                   "contralto",
                   "countertenor",
                   "tenor",
                   "baritone",
                   "bass",
                   "falsetto",
                   true ]
                   }
                 ]
    },
    { "subject": "genre",
      "state":   "suggested",
      "values":  [
                   {
        "qlist": [ "opera",
                   "operetta",
                   "musical",
                   true ]
                   }
                 ]
    },
    { "subject": "instrument",
      "state":   "required",
      "values":  [
                   {
        "qlist": [ "instrumentVoice",
                   "instrumentPiano",
                   true ]
                   }
                 ]
    }
            ],
  "resolve": { "actorMovie":       { "Q": 10800557 },
               "actorStage":       { "Q": 2259451 },
               "baritone":         { "Q": 31687 },
               "bass":             { "Q": 27911 },
               "birthDate":        { "P": 569 },
               "birthPlace":       { "P": 19 },
               "contralto":        { "Q": 37137 },
               "countertenor":     { "Q": 223166 },
               "deathDate":        { "P": 570 },
               "deathPlace":       { "P": 20 },
               "falsetto":         { "Q": 193935 },
               "female":           { "Q": 6581072 },
               "gender":           { "P": 21 },
               "genre":            { "P": 136 },
               "human":            { "Q": 5 },
               "instance":         { "P": 31 },
               "instrument":       { "P": 1303 },
               "instrumentPiano":  { "Q": 5994 },
               "instrumentVoice":  { "Q": 17172850 },
               "male":             { "Q": 6581097 },
               "mezzosoprano":     { "Q": 186506 },
               "musical":          { "Q": 2743 },
               "nameArtist":       { "P": 1787 },
               "nameBirth":        { "P": 1477 },
               "nameFamily":       { "P": 734 },
               "nameGiven":        { "P": 735 },
               "occupation":       { "P": 106 },
               "opera":            { "Q": 1344 },
               "operetta":         { "Q": 170384 },
               "singer":           { "Q": 177220 },
               "singerOpera":      { "Q": 2865819 },
               "soprano":          { "Q": 30903 },
               "tenor":            { "Q": 27914 },
               "voicetype":        { "P": 412 }
           }
}

Beispiel: GlobalSharing/Registration

Bearbeiten

Ein „Etwas“, insbesondere eine Software-Einheit oder Projektseite, kann mittels GlobalSharing allen Projekten bekanntgemacht werden. Dafür ist ein Item erforderlich, das die Software usw. näher beschreibt. Danach können alle registrierten Objekte ausgewertet und nach Eigenschaften durchsucht werden.

  • Dieses Beispiel zeigt die Erweiterung der Datenstruktur um qualifiers.
  • Multilinguale Text-Elemente werden benutzt.
  • Der generierende JSON-Code ist hier offengelegt.