Data kwaliteit projecten

From Knowledge Graph Kunstenpunt

Overwegingen

De gegevens in deze wikibase komen uit de legacy databanken van Kunstenpunt. Er is werk om de kwaliteit op het allerhoogste niveau te krijgen.

  • Landen en steden: hergebruiken, verlinken, zelf in orde brengen?
  • Entiteiten van het type Actor: deze lijst kan nog dubbels bevatten, en in het beste geval hebben op termijn alle entiteiten een ID die verwijst naar wikidata of een andere autoriteit.
  • Entiteiten van het type Activiteit: hier is ongetwijfeld ook nog ruis in te vinden > beurzen of groepstentoonstellingen die dubbel ingevoerd zijn, festivals die meermaals erin zitten, ...
  • Entiteiten van het type Rol: hier is een wildgroei in gebeurd doorheen de jaren, ook mogelijke dubbels door de samenvoeging van muziek en podiumkunsten, en moet opgekuist worden
  • Groepstentoonstellingen nakijken op dubbels, en kunstenaars toevoegen/mergen
  • alles met (versie X) in de description
  • ...

Om deze data kwaliteit issues aan te pakken definiëren we een aantal types van projecten die uitgevoerd kunnen worden. Zie hieronder

Als principe hanteren we SNAIL: https://commonists.wordpress.com/2024/10/09/small-data-slow-data-a-snail-approach-to-wikidata/

  • Slow
  • NArrow
  • In-depth
  • Local

Types van data kwaliteit projecten

Kruisverbanden project

Met de bedoeling om de linken met wikidata, musicbrainz, ... en discogs, operabase, ... strak te houden. Een voorbeeld zou kunnen zijn om alle uitvoerders die werkten aan meer dan 100 activiteiten zeker van een Q-nummer in Wikidata te voorzien. De Query om die lijst op te stellen is de volgende:

PREFIX kp:<https://kg.kunsten.be/entity/>
PREFIX kpp:<https://kg.kunsten.be/prop/direct/>
SELECT DISTINCT ?item (count(distinct ?activiteit) AS ?aantalActiviteiten)
WHERE {
  ?item kpp:P1 kp:Q58543.
  ?activiteit kpp:P42 ?item.
  FILTER NOT EXISTS { ?item kp:P75 ?wd }.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . }
}
GROUP BY ?item
HAVING (?aantalActiviteiten > 100)
ORDER BY DESC(?aantalActiviteiten)

https://kg.kunsten.be/query/#PREFIX%20kp%3A%3Chttps%3A%2F%2Fkg.kunsten.be%2Fentity%2F%3E%0APREFIX%20kpp%3A%3Chttps%3A%2F%2Fkg.kunsten.be%2Fprop%2Fdirect%2F%3E%0ASELECT%20DISTINCT%20%3Fitem%20%28count%28distinct%20%3Factiviteit%29%20AS%20%3FaantalActiviteiten%29%0AWHERE%20%7B%0A%20%20%3Fitem%20kpp%3AP1%20kp%3AQ58543.%0A%20%20%3Factiviteit%20kpp%3AP42%20%3Fitem.%0A%20%20FILTER%20NOT%20EXISTS%20%7B%20%3Fitem%20kp%3AP75%20%3Fwd%20%7D.%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE%5D%2Cnl%2Cen%22%20.%20%7D%0A%7D%0AGROUP%20BY%20%3Fitem%0AHAVING%20%28%3FaantalActiviteiten%20%3E%20100%29%0AORDER%20BY%20DESC%28%3FaantalActiviteiten%29

Week 1

  • Dag 1: Bepalen van een scope, bv. alle items van het type "Uitvoerder" die in de afgelopen 12 maanden zijn toegevoegd aan de wikibase en nog geen wikidata Identifier hebben. (Of: items toegevoegd aan musicbrainz met relatie aan Vlaanderen, en wiens musicbrainz id nog niet in de wikibase zit, de 100 meest verlinkte uitvoerders, ...)
  • Dag 2: Overzicht van de hoeveelheid items, opdelen van het werk in haalbare hoeveelheden per dag, eventueel scope herzien.
  • Dag 3-5: Eerste poging om kruisverbanden toe te voegen aan de items.

Week 2

  • Dag 1: evaluatie van de scope na eerste dagen van kruisverbanden leggen, eventueel scope herzien.
  • Dag 2-5: Kruisverbanden toevoegen aan de items

Week 3

  • Herhaling van week 2

Week 4

  • Dag 1: evaluatie van de scope, eventueel helder eindpunt voorzien dat als startpunt voor een volgend project kan dienen.
  • Dag 2-4: Kruisverbanden leggen
  • Dag 5: Eindpunt bereiken, documenteren.

Data aanvul project

Met de bedoeling om agenten (uitvoerders en organisatoren) ... en activiteiten van een afgelopen periode in kaart te brengen.

Week 1

  • dag 1: kennismaking wikibase
  • dag 2-3: met collega's overzicht maken van relevante toonplekken, festivals, wedstrijden, recensieplatformen, ... in Vlaanderen/Brussel en in afgebakende periode.
  • dag 4-5: opgesomde toonplekken, festivals, wedstrijden, recensie, ... toevoegen of updaten in wikibase

Week 2

  • dag 1: per opgesomde toonplek, festival, wedstrijd, ... de programmatie opzoeken, eventueel programma afprinten, brochure downloaden, ...
  • dag 2: genoemde artiesten, bands, ensembles, collectieven, gezelschappen, ... controleren in wikibase; waar nodig toevoegen
  • dag 3: eventueel continuering van dag 2
  • dag 4: concrete "culturele activiteiten" (concerten, tentoonstellingen, voorstellingen, ...) in de opgesomde toonplekken, ... toevoegen
  • dag 5: continuering van dag 4

Week 3

  • dag 1-5: per recent genoemde artiest / ... (cf. week 2, dag 2) culturele activiteiten in buitenland opzoeken en toevoegen

Week 4

  • dag 1-5: continuering van week 3
  • bij tijd over:
    • residentiebeurzen en projectsubsidies checken

Data verrijking project

Met bedoeling om bestaande agenten (uitvoerders en organisatoren) en activiteiten verder aan te vullen op vlak van juistheid, volledigheid, ...

Vertrekken vanuit activiteiten:

  • groepstentoonstellingen detecteren en bij mekaar zetten
  • tracks op releases
  • speelreeks van een podiumproductie
  • aanvullen van een festival
  • tournees
  • ...

Week 1

  • Dag 1: bepalen van de scope, op basis van een activiteittype, periode, regio, ... Start van de documentatie (projectpagina, ...)
  • Dag 2: ophalen van mogelijk betroffen items, haalbaarheid inschatten, opdeling van hoeveelheid over 5 dagen gedurende vier weken
  • Dag 3-5: Eerste verrijkings-edits

Week 2

  • Dag 1: evaluatie van de scope op basis van de edits van vorige week; eventueel scope bijstellen
  • Dag 2-5: verrijkings-edits doorvoeren

Week 3

  • Herhaling van week 2

Week 4

  • Dag 1: evaluatie van de scope, eventueel scherp eindpunt definiëren en laatste planning juist zetten
  • Dag 2-4: verrijkings-edits doorvoeren
  • Dag 5: geplande eindpunt bereiken, of herzetten; documenteren van het gevoerde werk.

Concrete projecten

Verwijzingen na merging

Blijkbaar worden verwijzingen/redirects na een merge niet automatisch doorgevoerd. Op wikidata is er daarvoor een bot (https://www.wikidata.org/wiki/User:KrBot) die werkt om de oude referenties om te zetten naar de nieuwe: https://www.mediawiki.org/wiki/Wikibase/Indexing/RDF_Dump_Format#Redirects

Een query om deze oude linken te detecteren

PREFIX kp:<https://kg.kunsten.be/entity/>
PREFIX kpp:<https://kg.kunsten.be/prop/direct/>

SELECT DISTINCT ?item ?new ?newLabel
  WHERE {
    ?old owl:sameAs ?new .
    ?item ?prop ?old .
    ?item rdf:type ?type .
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . }
  }
LIMIT 1000

Het is mogelijk om via de api met wbgetclaim (output van deze query) en dan wbsetclaim (die json die je van wbgetclaim krijgt, aanpassen naar het nieuwe item) alle links aan te passen.

Festivals, beurzen, biënnales, ...

De logica van invoeren is hier soms niet helemaal goed gelukt:

  • een festival als organisator
  • een festival als editie > activiteit
  • de editie is een activiteit waarvan een andere activiteit een onderdeel kan zijn (een concert, een voorstelling). Of een tentoonstelling als onderdeel van een editie van een biënnale.

Dit is niet altijd goed gelukt, en zouden we moeten manueel corrigeren. Zie documentatie hier.

Entiteiten zonder label

mogen niet bestaan: https://kg.kunsten.be/w/index.php?title=Speciaal:Zoeken&sort=relevance&search=-haslabel%3Anl&ns120=1

Weesitems

Er zouden eigenlijk geen items mogen zijn die niet met andere items gekoppeld zijn.

Deduplicatie na ingest

Door bij het ingesten gegevens over Uitvoerders, Organisatoren, Locaties, Plaatsen, Rollen en Disciplines uit verschillende fysiek aparte databanken bij elkaar te brengen zijn er duplicaten ontstaan. Die duplicaten moeten we herkennen, bv. op basis van gelijkaardige labels, en ze dan "mergen". Het zal dan zijn dat er twee of meerdere Kunstenpunt legacy URLs gekoppeld zijn. Waar mogelijk kunnen we ook 1 verwijzing naar wikidata toevoegen.

De logische volgorde om dit aan te pakken is:

  • Landen (done)
  • Locaties
  • Actoren (uitvoerders én organisatoren)
  • Locaties ("venues"), waarbij we moeten opletten dat we eventueel zelfs entiteiten splitsen, zodat we een apart Q-nummer hebben voor de "architecturale entiteiten" en een apart Q-nummer voor de Actoren, bv. Kaaitheater als gebouw versus Kaaitheater als Uitvoerder of Organisator. Daarna moeten we ook controleren of er geen Actoren gebruikt worden als Locatie voor een activiteit, en die dus vervangen door het overeenkomstige Q-nummer van het type Locatie. >>> DIT IS EEN GROOT WERK, zie hieronder, een aparte heading ervoor.
  • Rollen
  • Disciplines (done)
  • Activiteiten

Hier is een query om uitvoerders / organisatoren te detecteren met een identiek label:

PREFIX kp:<https://kg.kunsten.be/entity/>
PREFIX kpt:<https://kg.kunsten.be/prop/direct/>
PREFIX kpp:<https://kg.kunsten.be/prop/>
PREFIX kppq:<https://kg.kunsten.be/prop/qualifier/>
PREFIX kpps:<https://kg.kunsten.be/prop/statement/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
  SELECT ?label (count(distinct ?item) AS ?itemCount)
  WHERE
  {
    ?item kpt:P1 ?agent.
    FILTER(?agent IN (kp:Q81875, kp:Q58545)).
    ?item rdfs:label ?label.
    filter(strstarts(lcase(?label), "a"@nl))
  }
GROUP BY ?label
HAVING (?itemCount > 1)
ORDER BY ?label

Aanvullingen na ingest

  • Adresgegevens van venues > of die net overlaten aan CJI? Wat houden we bij in onze wikibase, en wat elders?
  • Geboortedatum en -plaatsen (inclusief sterfdatum en -plaats) van mensen en organisaties uit data.kunsten.be > GDPR?
  • Taalinfo bij podiumproducties > op niveau van productie
  • Relaties tussen personen, organisaties en venues (data.kunsten.be + muziekcentrum.kunsten.be)
  • Relaties tussen releases > ReleaseGroup introduceren?
  • Files en images
  • Bioteksten > naar pagina's, en dan ook een sitekoppeling
  • ...

Verwijderingen na ingest

  • in de agent types is er veel ruis geslopen, met testcategorieën of irrelevante namen.
  • door soms hickups in de ingest zijn er soms items met (versie X) in de description die niet noodzakelijk duplicates zijn, en die dus wegmogen
  • ...

Mapping wikidata

  • hoe omgaan met het verschil in modelleren tussen OSLO en wikidata op vlak van "gebracht door" > in OSLO generieke property, die via een qualifier specifieker gemaakt kan worden met een rol als "producent" of "acteur" <> in Wikidata zit de rol in de property (https://www.wikidata.org/wiki/Wikidata:WikiProject_Performing_arts/Data_structure#Contributors).
  • backreferences naar wikidata leggen: een federated query om te zien welk Q nummers naar de Kunstenpunt knowledge base gelegd worden, die nog niet van bij ons naar wikidata gaan?

Dubbelen van Organisatoren en Locaties

Er zijn heel wat items in de databank die we moeten verdubbelen om zowel een Organisator te zijn én dan apart een Locatie. Het gaat om Cultuurcentra, kunstencentra, kunsthallen, concertzalen, galeries, ... Dit is parallel aan een grote operatie die ook in wikidata plaatsvond: https://www.wikidata.org/wiki/Wikidata:WikiProject_Performing_arts/Data_structure/Data_modelling_issues/organizations en vooral ook https://www.wikidata.org/wiki/Wikidata:WikiProject_Performing_arts/Data_structure/Data_modelling_issues#Items_confounding_architectural_structures_and_organizations

Werkobjecten uit muziekcentrum als composities

De werkobjecten uit MCV hebben geen werktype meegekregen, die moeten allemaal het type Compositie ofzo krijgen?

Werkobjecten maken voor Beeldende kunst

We kunnen in principe ook werk objecten maken van de afbeeldingen van de beeldend kunstenaars. Hier een voorbeeld van een kunstwerk: Item:Q1583805 dat dan gebruikt wordt in een tentoonstelling Item:Q268244.

Detecteren van dubbele tentoonstellingen

Zeker groepstentoonstellingen moeten eengemaakt worden. De query:

PREFIX kp:<https://kg.kunsten.be/entity/>
PREFIX kpt:<https://kg.kunsten.be/prop/direct/>
PREFIX kpp:<https://kg.kunsten.be/prop/>
PREFIX kppq:<https://kg.kunsten.be/prop/qualifier/>
PREFIX kpps:<https://kg.kunsten.be/prop/statement/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
  SELECT DISTINCT ?plaatsLabel ?locatieLabel ?itemLabel ?item
  WHERE
  {
    ?item kpt:P13 ?activiteittype.
    FILTER(?activiteittype IN (kp:Q58537, kp:Q58538)). # solo of groepstentoonstelling
    ?item kpt:P17 ?begindatum.
    FILTER (?begindatum >= "2024-01-01T00:00:0+00:00"^^xsd:dateTime && ?begindatum < "2025-01-01T00:00:00+00:00"^^xsd:dateTime).
    ?item kpt:P62 ?locatie.
    ?locatie kpt:P10 ?plaats.
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . }
  }
ORDER BY ?plaatsLabel ?locatieLabel ?itemLabel

In uitvoer

Ulrikes Dream

De concert-historiek van Ulrikes Dream overnemen in kg.kunsten.be > https://ud20blog.wordpress.com/concerts/

Door telkens de hele line-up op te nemen komt de punk-crust scène mooi in beeld:

#defaultView:Graph
PREFIX kp:<https://kg.kunsten.be/entity/>
PREFIX kpt:<https://kg.kunsten.be/prop/direct/>
PREFIX kpp:<https://kg.kunsten.be/prop/>
PREFIX kppq:<https://kg.kunsten.be/prop/qualifier/>
PREFIX kpps:<https://kg.kunsten.be/prop/statement/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT DISTINCT ?bandA ?bandALabel ?bandB ?bandBLabel
WHERE
{
?activiteit kpt:P13 kp:Q58533.
?activiteit kpt:P42 kp:Q601279.
?activiteit kpt:P42 ?bandA.
?activiteit kpt:P42 ?bandB.
FILTER(?bandA != ?bandB)
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . }
}

Check de query hier

Let's clean up Brussels

Doelstelling: een kaart van Brussel met de kunstenorganisaties

#defaultView:Map

PREFIX kp:<https://kg.kunsten.be/entity/>
PREFIX kpp:<https://kg.kunsten.be/prop/direct/>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>

SELECT DISTINCT ?agent ?agentLabel ?wikidata ?gps
     WHERE {
       ?tempplaats kpp:P10 kp:Q160205.
       ?tempplaats (^kpp:P10|^owl:sameAs)* ?plaats .
       ?agent kpp:P1 ?agenttype.
       FILTER(?agenttype IN (kp:Q58545, kp:Q58543, kp:Q58547)).
       {?agent kpp:P10 ?plaats} UNION {?agent kpp:P34 ?plaats} UNION {?agent kpp:P33 ?plaats}
       ?agent kpp:P75 ?wikidata.
       BIND(URI(CONCAT(STR(wd:), ?wikidata)) AS ?wd)
       SERVICE <https://query.wikidata.org/sparql> {
         ?wd wdt:P625 ?gps.
       }
       SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . }
     }
     ORDER BY ?agent

Link naar deze query.

Zo is de stand van zaken op 12 oktober 2024:

kaart van brussel met rode bolletjes die de kunstenorganisaties en -plekken tonen op 12 oktober 2024.
Startpunt voor het cleaning project op 12 oktober 2024

Werk-concept voor beeldende kunsten

Beelden die aan kunstenaars hangen, maar eigenlijk werken zijn, zouden eigenlijk nog een tussenstap moeten hebben, bijvoorbeeld op deze manier: Item:Q1581911. Door een werk te introduceren kunnen we met meer niveau kunstenaars beschrijven, maar ook bijvoorbeeld tentoonstellingen (door aan te geven welke werken er in die tentoonstelling gebruikt worden).

We kunnen dit uitproberen met enkele kunstenaars die veel beelden hebben, te vinden met deze query:

PREFIX kp:<https://kg.kunsten.be/entity/>
PREFIX kpt:<https://kg.kunsten.be/prop/direct/>
PREFIX kpp:<https://kg.kunsten.be/prop/>
PREFIX kppq:<https://kg.kunsten.be/prop/qualifier/>
PREFIX kpps:<https://kg.kunsten.be/prop/statement/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT DISTINCT ?kunstenaar ?kunstenaarLabel (COUNT(?media) AS ?mediacount)
WHERE
{
?kunstenaar kpt:P41 kp:Q70575;
            kpt:P71 ?media.
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . }
}
GROUP BY ?kunstenaar ?kunstenaarLabel
HAVING (?mediacount >= 50)
ORDER BY DESC(?mediacount)

Bijvoorbeeld Ana Torfs.

Uitgevoerd

HTML tags in wikitext pagina's

Op sommige pagina's staat er foutieve html. Lijstjes om af te werken:

Die pagina's moeten opgekuist worden, zodat de html daar niet meer in staat. Bv. door gebruik te maken van deze html tag remover: https://www.w3docs.com/tools/string-remove-tags

OSLO Mapping

Het datamodel in deze wikibase is compatibel met OSLO Cultuurparticipatie. Zie ook https://osloddt.wikibase.cloud/wiki/Mapping_oslo. Om dit expliciet te maken moeten de properties en de core items gelinkt worden met het OSLO Cultuurparticipatievocabularium, of andere ontologieën. Zie de mappings alvast via |hier

  • Linken van core items
  • Linken van Landen, steden, ... (Plaatsen)
  • Linken van realisator types
  • Linken van activiteit types
  • Linken van Formats
  • Linken van Concepts
  • Linken van properties
  • ...