Data kwaliteit projecten
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)
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.
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.
Voorbeelddata:
De logische volgorde om dit aan te pakken is:
- Landen
- 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
- 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).
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?
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" . } }
Let's clean up Brussels
- Plaatsen (gemeentes) in Brussel Hoofdstedelijk Gewest opruimen
- de naam van gemeenten met een postcode die anders is dan 1000 correct maken, bv. Item:Q59868
- dedupliceren van dubbele gemeenten (bv. Item:Q59866 en Item:Q65827), maar dan ook bv. Item:Q63880, Item:Q67842, Item:Q59867, Item:Q67841, Item:Q65840, Item:Q65871, ...
- de "plaats" van deze gemeentes is ook nog Brussel Hoofdstedelijk Gewest, bv. Item:Q68295 > zo krijgen we alle gemeentes van Brussel Hoofdstedelijk Gewest bij mekaar > Speciaal:VerwijzingenNaarHier/Item:Q160205
- Ruimtes in Brussel (alle gemeentes) opkuisen
- hun "plaats" juist zetten, eventueel adres toevoegen
- dedupliceren van de ruimtes, met de verdeling wel tussen organisaties (bv. Item:Q164958 en Item:Q613570) en locaties (fysieke gebouwen/architecturale entiteiten, bv. Item:Q184905)
- Ruimtes verrijken
- wikidata link: Property:P75 (hier een query om de items in Brussel te vinden zonder wikidata link, en waar in wikidata nog GPS info ontbreekt)
- media van commons linken: Property:P19
- ...
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
Zo is de stand van zaken 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:
- https://gist.github.com/fd/9a09c9629aa8ec404c2c07b9b3afa459
- of via https://kg.kunsten.be/w/index.php?search=href&title=Speciaal%3AZoeken&profile=advanced&fulltext=1&ns3000=1&ns3002=1
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
- ...