Projekt:Wikidata 2014/Testcase

Från Wikimedia
Hoppa till navigering Hoppa till sök

Förarbete - oavsett arbetsflöde

  1. Identifiera ett passande dataset. Dvs. ett där:
    • Licensen för metadata är CC0;
    • Vart objekt har ett unikt id.
  2. Om det inte finns sedan tidigare, skapa/föreslå en egenskap för id-numret
  3. Om det inte finns sedan tidigare, skapa ett objekt för datasetet (samt möjligen för databas, data ägare osv.)
  4. Identifiera vilka Wikidata-egenskaper som kan fyllas i från datasetet. Dvs.
    • egenskaper i datasetet
    • indirekta egenskaper som gäller för alla objekt i datasetet
    • identifiera även värdetyp för var av dessa
    • skapa/föreslå eventuella egenskaper som saknas
    • skapa vanligt förekommande värden (dvs nya objekt) som saknas
  5. Definiera en källhänvisning
  6. Starta en botförfrågan

Arbetsflöde - Data för existerande objekt

Notera att samma princip kan användas för att uppdatera information (t.ex. ny årgång av valdata) genom att även specificera ett bestämningsord som används (och jämförs mot) för var av egenskaperna
  1. Identifiera vilka objekt som finns i både datasetet och Wikidata
    • Antingen manuellt eller genom existerande matchningar
  2. Identifiera vilka värden som motsvaras av Wikidata-objekt
  3. Starta matchning och uppdatering genom att för vart objekt:
    1. Hämta innehåll via API och för var egenskap:
      • om samma egenskap redan finns, med samma värde och samma källa (tillåt att t.ex. datum för källa skiljer sig åt)
        • Hoppa över
      • om samma egenskap finns, med samma värde
        • Lägg till källa
      • om samma egenskap finns, med annat värde
        • Lägg till nytt värde med källa
      • om samma egenskap saknas
        • Lägg till ny egenskap med värde och källa

Arbetsflöde - Nya objekt

  1. Identifiera vilka objekt som sedan tidigare finns i Wikidata
    • Detta kan även innebära att existerande objekt måste fixas till
  2. Identifiera vilka värden som motsvaras av Wikidata-objekt
  3. Starta matchning och uppdatering. För vart objekt:
    1. Kontrollera om objektet redan finns:
      • Om finns, registrera Q-nummer
      • Om nytt, skapa ett nytt objekt med etikett och beskrivning, registrera Q-nummer för detta objektet
        • Notera att etikett+beskrivnings kombinationen måste vara unik (för vart språk)
    2. För var egenskap (eller var egenskap som inte redan är angiven)
      1. Lägg till egenskap med identifierat värde
      2. Lägg till bestämningsord (vid behov)
      3. Lägg till källa

Om inga av objekten finns sedan tidigare, eller alla som finns sedan tidigare hoppas över går det att kombinera alla stegen i punkt 3 med skapandet av det nya objektet. Fördelen med detta är att det enbart krävs en redigering, och att processen därmed även går snabbare. Nackdelen är att detta inte kan kombineras

Exempel 1: KulturNav – Utökad data och källor för existerande påståenden

kod på GitHub

I datasetet finns information om arkitekter. Flertalet av dessa har sedan tidigare matchats mot Wikipediaartiklar, och därefter Wikidata.

Förarbete

  1. Arkitekter verksamma i Sverige (Arkitektur- och designcentrum)
  2. KulturNav-id
  3. Arkitekter verksamma i Sverige (KulturNav, KulturIT)
  4.  
    • Alla är personer: P31:Q5
    • Alla är arkitekter: P106:Q42973
    • dcterms:identifier = P1248 (string)
    • foaf:name = alias/P513 (string)
    • dbpprop:birthDate = P569 (date)
    • dbpedia-owl:birthPlace = P19 (object)
    • dbpprop:deathDate = P570 (date)
    • dbpedia-owl:deathPlace = P20 (object)
    • foaf:gender = P21 (object)
    • sameAs (med libris innehåll) = P906 (string)
    • foaf:firstName = P735 (object)
    • foaf:lastName = P734 (object)
  5. Källan är formulerad som: anges i datasetet med publiceringsdatum när registerposten senast uppdaterades

Huvuddel

  1. Tidigare matchade av ArkDes
    • Objekt i Wikidata med referens till KulturNav: Hittas via WDQ
    • Objekt i datasetet, av typen person, med wikidatalänk som same_as: [1] [2] (länkarna innehåller bara de första objekten)
  2.  
    • gender: kan enbart ta två värden vilka direkt kan mappas mot Wikidata-objekt kvinna, man
    • birthPlace/deathPlace: är dbpediaobjekt vilka kan mappas "on the fly" mot wikidata genom att identifiera wikidataobjektet för den wikipediasidan (på det språket)
    • firstName/lastName: dessa kräver först
      • en sökning för att hitta existerande wikidataobjekt med detta som antingen en etikett eller ett alias (på svenska eller engelska)
      • för var av dessa träffar en kontroll att den är av typen: Q101352 (för efternamn) eller ett av Q12308941, Q11879590, Q202444 (för förnamn)
  3. För var och en av egenskaperna kontrolleras om påståendet finns, har samma värde och har samma källa
    • När källan jämförs ignoreras publiceringsdatum (då vi inte vill lägga till en ny källa som bara skiljer sig på datum)

Exempel 2: Nationalmuseum – Lägg till nya objekt eller lägg till nya påståenden för existerande objekt

kod på GitHub

Denna baserar sig på målningarna i Nationalmuseums samlingar vilka finns publicerade på Europeana. Flertalet av dessa fanns inte sedan tidigare på Wikidata men ett fåtal fanns och behövde därmed hanteras innan körningen. Körningen ingår i WikiProject sum of all paintings

Förarbete

  1. Målningar i Nationalmuseum via Europeana
  2. Inventarienummer med bestämningsord Samling:Nationalmuseum
  3. Samling:Nationalmuseum (samt bestämningsord för de ingående samlingarna ...)
  4.  
  5. Källan är formulerad som: anges i URL med hämtningsdatum

Huvuddel

  1. WDQ
  2. Konstnär motsvaras av ett wikidata objekt. Denna matchning kräver en sökning i etikett+alias följt av en kontroll av att:
    • Objektet är en person P31:Q5
    • Objektet är rätt person (typ yrke:något objekt i konstnärsträdet ...)
    • I den första körningen valde vi att utelämna denna egenskap då den är komplicerad att få rätt.
    • WDQ (ovan) kan användas för att identifiera Q-nummer för existerande objekt.
      • Dock måste man vara uppmärksam på det potentiella lagg som denna har, speciellt om man kör verktyget flera gånger och objekt från första körningen annars missas och blir dubbletter.
      • Notera att vi använder Q-numret för att sedan göra en sökning i Wikidata, dvs. vi använder inte de värden som WDQ ger då dessa ej är live
    • OM objektet inte finns skapas ett nytt där:
      • titel används so etikett (på de språk där detta anges)
      • "Målning av konstnär" används som beskrivning (och motsvarande på andra språk). Med konstnär=Okänd och liknande hanterat separat
  3. För vart objekt kontrollera vi om var egenskap redan finns:
    • Om den finns, hoppar vi över den egenskapen (oavsett värde)
    • Om den saknas anger vi värdet samt källa
      • För P195 använder vi inventarienummerprefixet för att lägga till ett bestämningsord för vilken "undersamling" objektet ingår i
      • För P276 använder vi inventarienummerprefixet för att avgöra på vilken plats objektet finns (baserat på "undersamlingen")