Overzicht van onmogelijkheden
Onmogelijkheden
Sommige zaken zijn onmogelijk volgens de data modellering. Als een item een "Activiteit" is, dan moet die ook een "Activiteit type" hebben, bijvoorbeeld. Hieronder proberen we alle onmogelijkheden op te sommen, er een SPARQL query voor te verzinnen, en op die manier een lijstje krijgen van "foute" items, zodat we die kunnen corrigeren.
Een andere aanpak moet ook mogelijk zijn, bv. via SHACL?
Activiteiten
Hieronder een bundeling van "onmogelijkheden" die te maken hebben met activiteiten op het algemene niveau.
Overzicht van alle Items van het type Activiteit, met een vrije tekst activiteitstype
Toon alle activiteiten zonder activiteit type, maar wel met een een activiteit type (vrij), zodat dat vrije tekst veld gestructureerd kan worden.
SELECT ?activiteit ?activiteitLabel ?activiteitType ?activiteitTypeLabel ?activiteitTypeVrijLabel WHERE { ?activiteit <http://osloddt.wiki.opencura.com/prop/direct/P1> <http://osloddt.wiki.opencura.com/entity/Q1>; <http://osloddt.wiki.opencura.com/prop/direct/P49> ?activiteitTypeVrij. MINUS { ?activiteit <http://osloddt.wiki.opencura.com/prop/direct/P13> ?activiteitType }. SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . } }
Overzicht van alle Items van het type Activiteit, zonder enig activiteitstype
Alle activiteiten zouden getypeerd moeten zijn, liefst met een gestructureerd activiteitstype, of eventueel via een vrije tekst veld. We hebben een lijst nodig van activiteiten die noch een gestructureerd activiteitstype, noch een een vrije tekst activiteitstype hebben.
SELECT ?activiteit ?activiteitLabel ?activiteitType ?activiteitTypeLabel WHERE { ?activiteit <http://osloddt.wiki.opencura.com/prop/direct/P1> <http://osloddt.wiki.opencura.com/entity/Q1>. MINUS { ?activiteit <http://osloddt.wiki.opencura.com/prop/direct/P13> ?activiteitType }. SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . } }
Overzicht van Items met een "activiteit type", maar die niet "Is" "Activiteit" hebben
Als items getypeerd zijn met een bepaalde activiteitstype, dan moeten ze ook verplicht als "is" "activiteit" worden benoemd. We hebben daarom een lijst nodig van activiteiten met een activiteitstype, maar zonder "is" "activiteit".
Overzicht van items die het object zijn van een statement met verb "activiteit type", maar niet "is" "activiteit type" hebben
Toon alle activiteiten met een activiteit type, maar het activiteit type is geen "activiteit type" (dit soort van "rogue" activiteit types zouden niet toegelaten mogen zijn). Dit is om te vermijden dat er items als "activiteit type" worden gekoppeld aan activiteiten zonder dat die items gekenmerkt zijn als activiteit type. Zo is er bijvoorbeeld een "podiumproductie" als type "werk", en is er een item "podiumproductie" als type "activiteit type". Je wil dat enkel het item podiumproductie dat "is" "activiteit type" gebruikt wordt als activiteit type.
We hebben dus een lijst nodig van items die in een statement voorkomen met het Verb "activiteit type", maar die niet zelf "is" "activiteit type" hebben.
Werken
Hieronder een bundeling van "onmogelijkheden" die te maken hebben met werken in het algemeen.
Overzicht van alle Werken, zonder enig werk type
Om te vermijden dat een werk-item wordt aangemaakt zonder het typeren willen we checken of items liefst een gestructureerd werk type hebben, of eventueel een werk type in vrije tekst.
We hebben een lijst nodig van items "is" "werk", maar zonder een "werk type" of "werk type (vrij)" statement.
PREFIX kp:<https://osloddt.wikibase.cloud/entity/> PREFIX kpp:<https://osloddt.wikibase.cloud/prop/direct/> SELECT ?work ?workLabel ?typeLabel WHERE { ?work kpp:P1 kp:Q58528. ?work kpp:P48 ?type. ?type kpp:P1 kp:Q58529. SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . } }
Overzicht van alle Werken met een werk type in vrije tekst, maar niet gestructureerd
Idealiter zijn werken met een werk type in vrije tekst toch ook voorzien van een gestructureerd werk type. We hebben dus een lijst nodig van items "is" "werk", met een "werk type (vrij)" statement, maar zonder een gestructureerd werk type erbij.
Podiumproducties (activiteit) die niet verwijzen naar een podiumproductie (werk)
Podiumproducties van het type "activiteit" (dus opgevoerd tijdens een bepaalde periode) verwijzen idealiter terug naar een podiumproductie als werk, om eventuele connecties tussen de producties te kunnen modelleren. We hebben dus een lijst nodig van items "is" podiumproductie (activiteit), maar die niet "gebruikt werk" hebben en verwijzen naar een podiumproductie (werk).
Werken die niet gebruikt worden in activiteiten
Deze wikibase is in principe geen databank voor kunstwerken. Ze kunnen hier summier beschreven worden om een activiteit meer context te geven, maar werken zonder linken naar een activiteit zijn te vermijden. We kunnen dit oplossen door het werk ofwel te verwijderen, of expliciet te linken aan een tentoonstelling, podiumproductie, opname, concert, ...
We hebben in elk geval een lijst nodig van werken die niet gebruikt worden in items "is" "activiteit".
Beeldende kunst
Sommige onmogelijkheden zijn specifiek voor activiteiten binnen een bepaalde discipline. Hier bekijken we onmogelijkheden in de beeldende kunsten.
Tentoonstellingen of residenties zonder "kunstenaars"
Een beeldende kunst activiteit zonder een kunstenaar erbij is onmogelijk. We hebben dus een lijst nodig van activiteiten van het type solotentoonstelling, groepstentoonstelling, tentoonstelling of residentie die niet "gebracht worden" door iemand met de rol "kunstenaar".
Tentoonstellingen of residenties zonder "locatie"
Een beeldende kunst activiteit vindt altijd wel ergens plaats. We hebben een lijst nodig van solotentoonstellingen, groepstentoonstellingen, tentoonstellingen en residenties die niet via de property "plaats" gelinkt zijn met een locatie.
Het kan zijn dat dit veel problemen oplevert: door een legacy-beslissing zitten tentoonstellingen vaak in de databank met een "gebracht door" relatie naar een Organisator die de rol "locatie" opneemt. Dat zouden we best normaliseren.
Groepstentoonstellingen in hetzelfde jaar en in dezelfde locatie of plaats, met gelijkaardige titels
Groepstentoonstellingen worden soms apart ingevoerd voor elke kunstenaar. Maar eigenlijk willen we dat er 1 groepstentoonstelling-item is, met daaraan alle deelnemende kunstenaars. We hebben dus een lijst nodig van groepstentoonstellingen die op dezelfde plek plaatsvinden, op hetzelfde moment, en waarvan de titel bovendien gelijkaardig is (case insensitive, misschien zelfs geen spaties, leestekens, fuzzy match, ...)
Groepstentoonstellingen met maar 1 kunstenaar eraan
Het punt van een groepstentoonstelling is dat er meerdere kunstenaars aan meedoen, dus een groepstentoonstelling met maar 1 kunstenaar is verdacht. We hebben dus een lijst nodig van groepstentoonstellingen die "gebracht door" hebben met maar 1 item dat de rol van "kunstenaar" opneemt.
Activiteiten van het type "beurs", maar niet gebracht door een Organisator van het type "Beurs"
Kunstbeurzen zijn niet zo wijd verspreid. Het zijn er maar een aantal. Zo een "Organisator" moet dus getypeerd worden als een Beurs We hebben dus een lijst nodig van Organisatoren die "gebracht door" opnemen bij activiteiten van het activiteit type "beurs", maar zelf niet "agent type" "beurzen" hebben.
Deze lijst (https://osloddt.wikibase.cloud/wiki/Special:WhatLinksHere/Item:Q157549) zou dus een overzicht moeten geven van de kunstbeurzen.
Activiteiten die onder tentoonstellingen vallen, maar niet op een Locatie of gebracht door een Organisator met het type "Tentoonstellingsruimte"
Tentoonstellingen worden georganiseerd door Organisatoren of Locaties die zichzelf als een tentoonstellingsruimte positioneren, en zouden dus dit type moeten krijgen. We hebben daarom een lijst nodig van Locaties of Organisatoren (die de rol (bij gebracht door) van locatie opnemen) die verbonden zijn aan tentoonstellingen, maar niet getypeerd worden als tentoonstellingsruimte.
Podiumkunsten
Sommige onmogelijkheden zijn specifiek voor activiteiten binnen een bepaalde discipline. Hier bekijken we onmogelijkheden in de podiumkunsten.
Podiumvoorstellingen die niet verwijzen naar een podiumproductie
Muziek
Tracks zonder een "Muziekuitgave"
Concerten zonder Locatie
Concerten zonder artiesten
Realisatoren
Overzicht van alle Actoren, zonder enig actor type
PREFIX kp:<https://osloddt.wikibase.cloud/entity/> PREFIX kpp:<https://osloddt.wikibase.cloud/prop/direct/> SELECT DISTINCT ?actor ?actorLabel ?typeLabel WHERE { ?actor kpp:P1 ?is. FILTER (?is IN (kp:Q58543, kp:Q58545)). OPTIONAL {?actor kpp:P41 ?type. }. SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . } }
Actoren met dezelfde naam
Deze lijst kijkt heel naïef naar enkel de labels, maar neemt niet in rekening als er al een disambiguerende description voorzien is.
SELECT ?itemLabel (GROUP_CONCAT(?item;separator=", ") as ?itemURLs) (count(?itemLabel) as ?itemLabelCount) { ?item <http://osloddt.wiki.opencura.com/prop/direct/P1> <http://osloddt.wiki.opencura.com/entity/Q1453>. SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . } } GROUP BY ?itemLabel HAVING (count(?itemLabel) > 1) ORDER BY DESC(?itemLabelCount)
Overzicht van items die het object zijn van een statement met verb "actor type", maar niet "is" "actor type" hebben
Items die het object zijn van "gebracht door" maar niet "is" "Uitvoerder" of "Organisator" hebben
Items die het object zijn van "gebracht door" en "is" "Locatie" hebben mogen niet bestaan
Locaties
Locaties die ook Realisatoren zijn
Er is een risico om locaties (fysieke plekken, architecturale entiteiten, ...) te "confounden" met Organisatoren (organisaties die activiteiten organiseren). We volgen de logica van OSLO en wikidata om die apart te houden. Natuurlijk vallen die soms samen (de AB is zowel een architecturale entiteit als een concertorganisator), maar we zorgen er toch voor dat het aparte items zijn, met aparte Q-nummers. We kunnen linken tussen de Locatie en de Realisator via "werkt samen met".
We hebben een lijst nodig van items die "is" zowel een Locatie én Organisator/Uitvoerder zijn. Die moeten dan gesplitst worden.
Festivals zijn geen locaties
Kunstbeurzen zijn geen locaties
Locaties kunnen niet het object zijn van "gebracht" door
Generiek
Overzicht van alle Items, zonder "IS" statement
Overzicht van items die het object zijn van een statement met verb "url type", maar niet "is" "url type" hebben
Overzicht van items die het object zijn van een qualifying statement met verb "rol", maar niet "is" "Rol" hebben
Overzicht van alle plaatsen zonder land
Plaatsen in hetzelfde land met dezelfde naam
SELECT ?landLabel ?itemLabel (GROUP_CONCAT(?item) as ?itemURLs) (count(?itemLabel) as ?itemLabelCount) { ?item <http://osloddt.wiki.opencura.com/prop/direct/P1> <http://osloddt.wiki.opencura.com/entity/Q229>; <http://osloddt.wiki.opencura.com/prop/direct/P20> ?land. SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . } } GROUP BY ?landLabel ?itemLabel HAVING (count(?itemLabel) > 1)