Overzicht van onmogelijkheden: Difference between revisions

From Doelgericht Digitaal Transformeren
No edit summary
No edit summary
 
(38 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Lijstjes via SPARQL voor overzicht, quality assurance en data validatie ==
= Onmogelijkheden =


=== Data overviews ===
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.


==== Overzicht van alle Items van het type Activiteit, met een activiteitstype ====
Een andere aanpak moet ook mogelijk zijn, bv. via SHACL?


Toon alle "item [[Property:P1|is]] een [[Item:Q1|Activiteit]], via een qualifier [[Property:P13|gelinkt aan]] een [[Item:Q15|Activiteitstype]]"
== Activiteiten ==


  SELECT DISTINCT ?item ?itemLabel ?type ?typeLabel
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 {
  WHERE {
  ?item <http://osloddt.wiki.opencura.com/prop/P1> ?statement.
  ?activiteit <http://osloddt.wiki.opencura.com/prop/direct/P1> <http://osloddt.wiki.opencura.com/entity/Q1>;
  ?statement <http://osloddt.wiki.opencura.com/prop/statement/P1> <http://osloddt.wiki.opencura.com/entity/Q1>.
              <http://osloddt.wiki.opencura.com/prop/direct/P49> ?activiteitTypeVrij.
  ?statement <http://osloddt.wiki.opencura.com/prop/qualifier/P13> ?type.
  MINUS { ?activiteit <http://osloddt.wiki.opencura.com/prop/direct/P13> ?activiteitType }.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . }
  }
  }
ORDER BY ?typeLabel


Of som de items op waar er nog geen activiteitstype aan hangt (dit zou empty moeten terugkomen, want elke activiteit moet een type krijgen):
=== Overzicht van alle Items van het type Activiteit, zonder enig activiteitstype ===


  SELECT DISTINCT ?item ?itemLabel ?type ?typeLabel
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 {
  WHERE {
  ?item <http://osloddt.wiki.opencura.com/prop/P1> ?statement.
  ?activiteit <http://osloddt.wiki.opencura.com/prop/direct/P1> <http://osloddt.wiki.opencura.com/entity/Q1>.
  ?statement <http://osloddt.wiki.opencura.com/prop/statement/P1> <http://osloddt.wiki.opencura.com/entity/Q1>.
  MINUS { ?activiteit <http://osloddt.wiki.opencura.com/prop/direct/P13> ?activiteitType }.
  MINUS { ?statement <http://osloddt.wiki.opencura.com/prop/qualifier/P13> ?type }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . }
  }
  }
ORDER BY ?typeLabel


==== Overzicht van alle Activiteit Types ====
=== 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.
 
=== 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 ====


Toon alle "item [[Property:P1|is]] een [[Item:Q15|Activiteit Type]]"
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.


  SELECT DISTINCT ?item ?itemLabel ?typeLabel
==== Activiteiten van het type "beurs", maar niet gebracht door een Organisator van het type "Beurs" ====
  WHERE {
    ?item <http://osloddt.wiki.opencura.com/prop/direct/P1> ?type.
    FILTER (?type IN (<http://osloddt.wiki.opencura.com/entity/Q15>)).
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . }
  }
  ORDER BY ?item ?typeLabel


==== Overzicht van alle Actor Types ====
Kunstbeurzen zijn een relatief afgebakende lijst. Zo een "Organisator" moet dus getypeerd worden als een [[Item:Q157549|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.


  SELECT DISTINCT ?item ?itemLabel ?typeLabel
Deze lijst (https://osloddt.wikibase.cloud/wiki/Special:WhatLinksHere/Item:Q157549) zou dus een overzicht moeten geven van de kunstbeurzen.
  WHERE {
    ?item <http://osloddt.wiki.opencura.com/prop/direct/P1> ?type.
    FILTER (?type IN (<http://osloddt.wiki.opencura.com/entity/Q1428>, <http://osloddt.wiki.opencura.com/entity/Q23>, <http://osloddt.wiki.opencura.com/entity/Q1454>)).
    SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . }
  }
  ORDER BY ?item ?typeLabel


==== Overzicht van alle Rollen ====
==== Activiteiten die onder tentoonstellingen vallen, maar niet op een Locatie of gebracht door een Organisator met het type "Tentoonstellingsruimte" ====


  SELECT DISTINCT ?item ?itemLabel ?typeLabel
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 (activiteit) ====
 
Een podiumvoorstelling laten we niet zweven zonder een overkoepelend object aan te bieden. Doorgaans zijn podiumvoorstellingen geen eenmalige gebeurtenissen. Ze worden herhaald opgevoerd, en daarom moeten we kunnen verwijzen naar een overkoepelende activiteit via "is onderdeel van".
 
We hebben een lijst nodig van podiumvoorstellingen die niet "is onderdeel van" hebben en waarbij dat niet linkt naar een activiteit van het type podiumproductie (activiteit).
 
==== Podiumproducties (activiteit) die niet verwijzen naar een podiumproductie (werk) ====
 
Podiumproducties (activiteit) zijn overkoepelend objecten om uitvoeringen van die podiumproductie mee te bundelen. Het kan gaan over een seizoenslogica, of over een vaste samenstelling van de cast, of ... Maar ook daarboven is er een object nodig om die items te bundelen: een "herneming" in een nieuw seizoen, een "herneming" met een hele andere cast, een vertaling, ... Daarom is er ook een Werk object voor podiumproducties.
 
We hebben dus een lijst nodig van podiumproducties (activiteit) die niet "gebruikt werk" hebben en verwijzen naar een item van het type podiumproductie (werk).
 
=== Muziek ===
 
Sommige onmogelijkheden zijn specifiek voor activiteiten binnen een bepaalde discipline. Hier bekijken we onmogelijkheden in de muziek.
 
==== Tracks zonder een "Muziekuitgave" ====
 
Tracks (opnames, phonogrammen, ...) kunnen eigenlijk niet op zichzelf bestaan in onze databank. Ze moeten "gereleased" worden via een muziekuitgave (die dan een bepaald concept (een single, een album, ...) en format (op cd, op vinyl, ...) heeft). We hebben daarom een lijst nodig van Tracks die niet "is onderdeel van" een item van het type muziekuitgave zijn.
 
==== Concerten zonder Locatie ====
 
Concerten moeten altijd plaatsvinden op een bepaalde locatie. Door een legacy redenering zijn er heel wat concerten die geen "plaats" zullen hebben. Die moeten we in een lijst brengen en bekijken hoe we die een locatie geven, eventueel de overeenkomstige Organisator dubbelen om als Locatie te kunnen opereren.
 
==== Locaties van concerten die het type Organisator hebben zijn niet toegestaan ====
 
Concerten vinden plaats op locaties en worden gebracht door organisatoren. Maar door een legacy redenering zou het kunnen dat er locaties (via property plaats) gekoppeld worden aan een concert die van het type Organisator zijn. Dat zou niet mogen. We moeten daarom een lijst krijgen van items die gekoppeld zijn aan concerten via "plaats" en van het type Organisator zijn.
 
==== Concerten zonder artiesten ====
 
Net zoals tentoonstellingen kunnen concerten niet plaatsvinden zonder een item dat gelinkt is met "gebracht door" van het type "Uitvoerder". We hebben dus een lijst van concerten zonder een gebracht door statement waarbij het object van het type uitvoerder is.
 
== Realisatoren ==
 
Hieronder een bundeling van "onmogelijkheden" die te maken hebben met realisatoren (uitvoerders en organisatoren) in het algemeen.
 
=== Overzicht van alle Actoren, met een vrij agent type, maar zonder gestructureerd type ===
 
Actoren (realisatoren, uitvoerders, organisatoren, ...) hoeven niet altijd een agent type te krijgen. Maar als ze een vrij agent type hebben gekregen, dan is het wel best dat dat ook genormaliseerd wordt met een gestructureerd type. We hebben daarom een lijst nodig van items die "is" "uitvoerder" of "organisator" zijn, een vrij agent type hebben, maar geen gestructureerd agent type.
 
PREFIX kp:<https://osloddt.wikibase.cloud/entity/>
PREFIX kpp:<https://osloddt.wikibase.cloud/prop/direct/>
  SELECT DISTINCT ?actor ?actorLabel ?typeLabel
  WHERE {
  WHERE {
  ?item <http://osloddt.wiki.opencura.com/prop/direct/P1> ?type.
  ?actor kpp:P1 ?is.
  FILTER (?type IN (<http://osloddt.wiki.opencura.com/entity/Q20>)).
  FILTER (?is IN (kp:Q58543, kp:Q58545)).
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . }
  OPTIONAL {?actor kpp:P41 ?type. }.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . }
  }
  }
ORDER BY ?item ?typeLabel


Rollen kunnen ook vrij gemodelleerd worden:
=== Actoren met dezelfde naam ===
 
Het is onvermijdelijk dat er mensen of organisaties met dezelfde naam zijn. In het beste geval voorzien we in de description een kleine disambiguering, maar in eerste instantie kunnen we daar niet naar kijken, omdat de description informatie bevat over de bron, en die kan misleidend zijn. In eerste instantie hebben we daarom een lijst nodig van labels (van items die "is" "uitvoerder" of "organisator" zijn, en die meerdere keren voorkomen).


==== Overzicht van alle Samenwerkings types ====
=== Overzicht van items die het object zijn van een statement met verb "actor type", maar niet "is" "actor type" hebben ===


==== Overzicht van alle URL types ====
We moeten hygiënisch zijn bij de manier waarop we agent types toekennen aan uitvoerders of organisatoren. Zo is "kunstenaar" een agent type, maar ook apart een "rol". Het mag niet voorkomen dat mensen de rol "kunstenaar" gebruiken als object van een statement met als verb "agent type". We hebben dus een lijst nodig van items waarbij in het statement agent type het object niet van het type "uitvoerdertype" of "organisatortype" is


==== Overzicht van alle email types ====
=== Items die het object zijn van "gebracht door" maar niet "is" "Uitvoerder" of "Organisator" hebben ===


==== Overzicht van alle onderdeel types ====
Over alle activiteiten heen zijn de items die gelinkt kunnen worden via "gebracht door" verplicht van het type "uitvoerder" of "organisator. We hebben een lijst nodig van items waarbij "gebracht door" gecombineerd wordt met items die niet dat type hebben.
Waarmee sub/superactiviteiten met elkaar gelinkt worden


Samenwerkingstypes kunnen ook vrij gemodelleerd worden:
=== Items die het object zijn van "gebracht door" en "is" "Locatie" hebben mogen niet bestaan ===


==== Overzicht van alle format types ====
Activiteiten die via "gebracht door" gerelateerd zijn met andere items mogen die relatie niet gebruiken om te verwijzen naar Locaties. Dat zijn fysieke plekken, architecturale entiteiten, ... en die hebben geen "agency" om iets te brengen. We hebben dus een lijst nodig van items waarbij "gebracht door" gebruikt wordt in combinatie met een item van het type Locatie.


==== Overzicht van alle subsidie types ====
== Locaties ==


=== Locaties die ook Realisatoren zijn ===


=== Quality assurance ===
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".


==== Overzicht van alle items die geen "is" property hebben ====
We hebben een lijst nodig van items die "is" zowel een Locatie én Organisator/Uitvoerder zijn. Die moeten dan gesplitst worden.


==== Overzicht van alle items met een "Activiteit" via "is", maar geen activiteit type ====
=== Festivals zijn geen locaties ===


==== Overzicht van alle items met een "Actor" via "is", maar geen actor type ====
We moeten streng zijn dat festivals geen architecturale entiteiten zijn, en dus niet als "Locatie" mogen gedefinieerd worden. We hebben een lijst nodig van items met "festival" ofzo in de naam en die toch "is" "locatie" zijn.


==== Overzicht van alle Rollen die geen Actor Type zijn, en vice versa ====
Daarnaast moeten we ook consistent zijn dat items die een agent type dat met "festival" te maken heeft ook niet gelijktijdig "is" Locatie zijn. We hebben dus ook een lijst nodig van items met een agent type dat "festival bevat" én ook "is" locatie zijn.


==== Overzicht van items waarin een qualifier zit met "rol (vrij)", zonder een genormaliseerde "rol" ====
=== Kunstbeurzen zijn geen locaties ===


==== Overzicht van items waarin een qualifier zit met "samenwerkings type (vrij)", zonder een genormaliseerde "samenwerkings type" ====
Idem als bij festivals.


==== Overzicht van items waarin een qualifier zit met "onderdeel type (vrij)", zonder een genormaliseerde "onderdeel type" ====
=== Locaties kunnen niet het object zijn van "gebracht" door ===


==== Overzicht van items die het object zijn van een statement met verb "activiteit type", maar niet "is" "activiteit type" hebben ====
Dit is vermoedelijk een andere insteek voor wat er hoger ook al gezegd werd, maar locaties zijn architecturale entiteiten die geen activiteiten kunnen brengen. Daarom mogen ze niet voorkomen als object van een "gebracht door" property. We hebben dus een lijst nodig van activiteiten waarbij in het gebracht door statement heb object toch een Locatie is.
 
== Generiek ==
 
Een aantal onmogelijkheden zijn echt wel generiek.
 
=== Overzicht van alle Items, zonder "IS" statement ===
 
Er zouden in de databakn geen items mogen zitten die niet via "is" een bepaalde categorie toebehoren. We hebben dus een lijst nodig van items die geen "is" statement hebben.
 
=== Consequentie tussen verbs en de objecten die eraan worden meegegeven ===
 
Bij een werkwoord hoort vaak een bepaald item type, bv. een statement met verb "url type" moet verwijzen naar een item dat "is" "url type". We zouden moeten lijstjes maken van items waarin statements zitten met een incongruentie tussen wat het werkwoord wil zien, en het "is" type van het object.


==== 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 statement met verb "url type", maar niet "is" "url type" hebben ====


==== Overzicht van items die het object zijn van een statement met verb "actor type", maar niet "is" "actor type" hebben ====
==== Overzicht van items die het object zijn van een qualifying statement met verb "rol", maar niet "is" "Rol" hebben ====
 
==== Overzicht van items die het object zijn van een qualifying statement met verb "gebruikt werk", maar niet "is" "Werk" hebben ====
 
==== Overzicht van items die het object zijn van een qualifying statement met verb "activiteit type", maar niet "is" "Activiteit Type" hebben ====


==== Overzicht van items die het object zijn van een qualifying statement met verb "land", maar niet "is" "Land" hebben ====


=== Data validation ===
==== Overzicht van items die het object zijn van een qualifying statement met verb "plaats", maar niet "is" "plaats" hebben ====


==== Items van "is" Actor die niet de bepaalde statements hebben ====
==== Overzicht van items die het object zijn van een qualifying statement met verb "beginplaats", maar niet "is" "plaats" hebben ====


==== Items van "is" Activiteit, type "Concert" die niet de bepaalde statements hebben ====
==== Overzicht van items die het object zijn van een qualifying statement met verb "eindplaats", maar niet "is" "plaats" hebben ====


==== Items van "is" Activiteit, type "Muziekuitgave" die niet de bepaalde statements hebben ====
==== Overzicht van items die het object zijn van een qualifying statement met verb "locatie", maar niet "is" "Locatie" hebben ====


==== Items van het type Track die niet de bepaalde statements hebben ====
==== Overzicht van items die het object zijn van een qualifying statement met verb "is onderdeel van", maar niet "is" "Activiteit" hebben ====
 
==== Overzicht van items die het object zijn van een qualifying statement met verb "onderdeel type", maar niet "is" "Onderdeeltype" hebben ====
 
==== Overzicht van items die het object zijn van een qualifying statement met verb "werk type", maar niet "is" "Werktype" hebben ====
 
==== Overzicht van items die het object zijn van een qualifying statement met verb "concept", maar niet "is" "Concept" hebben ====
 
==== Overzicht van items die het object zijn van een qualifying statement met verb "format", maar niet "is" "Format" hebben ====
 
==== Overzicht van items die het object zijn van een qualifying statement met verb "samenwerkingstype", maar niet "is" "Samenwerkings type" hebben ====
 
=== Overzicht van alle plaatsen zonder land ===
 
Plaatsen zouden niet zonder een land indicatie mogen zijn. We hebben een lijst nodig van plaatsen zonder een land.
 
=== Plaatsen in hetzelfde land met dezelfde naam ===
 
Hoewel het kan voorkomen dat in hetzelfde land een plaats is met dezelfde naam is het goed om er daar dan een disambiguatie aan toe te voegen in de description.
 
== 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" . }
}


==== Items van het type track zonder een "Muziekuitgave" ====
=== Overzicht van alle Werken met een werk type in vrije tekst, maar niet gestructureerd ===


==== Items van "is" Activiteit, type "Podiumproductie" die niet de bepaalde statements hebben ====
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.


==== Items van "is" Activiteit, type "Voorstelling" die niet de bepaalde statements hebben ====
=== Podiumproducties (activiteit) die niet verwijzen naar een podiumproductie (werk) ===


==== Items van het type voorstelling zonder een podiumproductie ====
(zie ook hoger)


==== Items van "is" Activiteit, type "Residentie" die niet de bepaalde statements hebben ====
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).


==== Items van "is" Activiteit, type "Tentoonstelling" die niet de bepaalde statements hebben ====
=== Werken die niet gebruikt worden in activiteiten ===


==== Items van het type toonmoment die niet de bepaalde statements hebben ====
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, ...


==== Items van het type toonmoment zonder een overkoepelende tentoonstelling of residentie ====
We hebben in elk geval een lijst nodig van werken die niet gebruikt worden in items "is" "activiteit".

Latest revision as of 09:36, 22 June 2023

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.

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 een relatief afgebakende lijst. 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 (activiteit)

Een podiumvoorstelling laten we niet zweven zonder een overkoepelend object aan te bieden. Doorgaans zijn podiumvoorstellingen geen eenmalige gebeurtenissen. Ze worden herhaald opgevoerd, en daarom moeten we kunnen verwijzen naar een overkoepelende activiteit via "is onderdeel van".

We hebben een lijst nodig van podiumvoorstellingen die niet "is onderdeel van" hebben en waarbij dat niet linkt naar een activiteit van het type podiumproductie (activiteit).

Podiumproducties (activiteit) die niet verwijzen naar een podiumproductie (werk)

Podiumproducties (activiteit) zijn overkoepelend objecten om uitvoeringen van die podiumproductie mee te bundelen. Het kan gaan over een seizoenslogica, of over een vaste samenstelling van de cast, of ... Maar ook daarboven is er een object nodig om die items te bundelen: een "herneming" in een nieuw seizoen, een "herneming" met een hele andere cast, een vertaling, ... Daarom is er ook een Werk object voor podiumproducties.

We hebben dus een lijst nodig van podiumproducties (activiteit) die niet "gebruikt werk" hebben en verwijzen naar een item van het type podiumproductie (werk).

Muziek

Sommige onmogelijkheden zijn specifiek voor activiteiten binnen een bepaalde discipline. Hier bekijken we onmogelijkheden in de muziek.

Tracks zonder een "Muziekuitgave"

Tracks (opnames, phonogrammen, ...) kunnen eigenlijk niet op zichzelf bestaan in onze databank. Ze moeten "gereleased" worden via een muziekuitgave (die dan een bepaald concept (een single, een album, ...) en format (op cd, op vinyl, ...) heeft). We hebben daarom een lijst nodig van Tracks die niet "is onderdeel van" een item van het type muziekuitgave zijn.

Concerten zonder Locatie

Concerten moeten altijd plaatsvinden op een bepaalde locatie. Door een legacy redenering zijn er heel wat concerten die geen "plaats" zullen hebben. Die moeten we in een lijst brengen en bekijken hoe we die een locatie geven, eventueel de overeenkomstige Organisator dubbelen om als Locatie te kunnen opereren.

Locaties van concerten die het type Organisator hebben zijn niet toegestaan

Concerten vinden plaats op locaties en worden gebracht door organisatoren. Maar door een legacy redenering zou het kunnen dat er locaties (via property plaats) gekoppeld worden aan een concert die van het type Organisator zijn. Dat zou niet mogen. We moeten daarom een lijst krijgen van items die gekoppeld zijn aan concerten via "plaats" en van het type Organisator zijn.

Concerten zonder artiesten

Net zoals tentoonstellingen kunnen concerten niet plaatsvinden zonder een item dat gelinkt is met "gebracht door" van het type "Uitvoerder". We hebben dus een lijst van concerten zonder een gebracht door statement waarbij het object van het type uitvoerder is.

Realisatoren

Hieronder een bundeling van "onmogelijkheden" die te maken hebben met realisatoren (uitvoerders en organisatoren) in het algemeen.

Overzicht van alle Actoren, met een vrij agent type, maar zonder gestructureerd type

Actoren (realisatoren, uitvoerders, organisatoren, ...) hoeven niet altijd een agent type te krijgen. Maar als ze een vrij agent type hebben gekregen, dan is het wel best dat dat ook genormaliseerd wordt met een gestructureerd type. We hebben daarom een lijst nodig van items die "is" "uitvoerder" of "organisator" zijn, een vrij agent type hebben, maar geen gestructureerd agent 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

Het is onvermijdelijk dat er mensen of organisaties met dezelfde naam zijn. In het beste geval voorzien we in de description een kleine disambiguering, maar in eerste instantie kunnen we daar niet naar kijken, omdat de description informatie bevat over de bron, en die kan misleidend zijn. In eerste instantie hebben we daarom een lijst nodig van labels (van items die "is" "uitvoerder" of "organisator" zijn, en die meerdere keren voorkomen).

Overzicht van items die het object zijn van een statement met verb "actor type", maar niet "is" "actor type" hebben

We moeten hygiënisch zijn bij de manier waarop we agent types toekennen aan uitvoerders of organisatoren. Zo is "kunstenaar" een agent type, maar ook apart een "rol". Het mag niet voorkomen dat mensen de rol "kunstenaar" gebruiken als object van een statement met als verb "agent type". We hebben dus een lijst nodig van items waarbij in het statement agent type het object niet van het type "uitvoerdertype" of "organisatortype" is

Items die het object zijn van "gebracht door" maar niet "is" "Uitvoerder" of "Organisator" hebben

Over alle activiteiten heen zijn de items die gelinkt kunnen worden via "gebracht door" verplicht van het type "uitvoerder" of "organisator. We hebben een lijst nodig van items waarbij "gebracht door" gecombineerd wordt met items die niet dat type hebben.

Items die het object zijn van "gebracht door" en "is" "Locatie" hebben mogen niet bestaan

Activiteiten die via "gebracht door" gerelateerd zijn met andere items mogen die relatie niet gebruiken om te verwijzen naar Locaties. Dat zijn fysieke plekken, architecturale entiteiten, ... en die hebben geen "agency" om iets te brengen. We hebben dus een lijst nodig van items waarbij "gebracht door" gebruikt wordt in combinatie met een item van het type Locatie.

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

We moeten streng zijn dat festivals geen architecturale entiteiten zijn, en dus niet als "Locatie" mogen gedefinieerd worden. We hebben een lijst nodig van items met "festival" ofzo in de naam en die toch "is" "locatie" zijn.

Daarnaast moeten we ook consistent zijn dat items die een agent type dat met "festival" te maken heeft ook niet gelijktijdig "is" Locatie zijn. We hebben dus ook een lijst nodig van items met een agent type dat "festival bevat" én ook "is" locatie zijn.

Kunstbeurzen zijn geen locaties

Idem als bij festivals.

Locaties kunnen niet het object zijn van "gebracht" door

Dit is vermoedelijk een andere insteek voor wat er hoger ook al gezegd werd, maar locaties zijn architecturale entiteiten die geen activiteiten kunnen brengen. Daarom mogen ze niet voorkomen als object van een "gebracht door" property. We hebben dus een lijst nodig van activiteiten waarbij in het gebracht door statement heb object toch een Locatie is.

Generiek

Een aantal onmogelijkheden zijn echt wel generiek.

Overzicht van alle Items, zonder "IS" statement

Er zouden in de databakn geen items mogen zitten die niet via "is" een bepaalde categorie toebehoren. We hebben dus een lijst nodig van items die geen "is" statement hebben.

Consequentie tussen verbs en de objecten die eraan worden meegegeven

Bij een werkwoord hoort vaak een bepaald item type, bv. een statement met verb "url type" moet verwijzen naar een item dat "is" "url type". We zouden moeten lijstjes maken van items waarin statements zitten met een incongruentie tussen wat het werkwoord wil zien, en het "is" type van het object.

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 items die het object zijn van een qualifying statement met verb "gebruikt werk", maar niet "is" "Werk" hebben

Overzicht van items die het object zijn van een qualifying statement met verb "activiteit type", maar niet "is" "Activiteit Type" hebben

Overzicht van items die het object zijn van een qualifying statement met verb "land", maar niet "is" "Land" hebben

Overzicht van items die het object zijn van een qualifying statement met verb "plaats", maar niet "is" "plaats" hebben

Overzicht van items die het object zijn van een qualifying statement met verb "beginplaats", maar niet "is" "plaats" hebben

Overzicht van items die het object zijn van een qualifying statement met verb "eindplaats", maar niet "is" "plaats" hebben

Overzicht van items die het object zijn van een qualifying statement met verb "locatie", maar niet "is" "Locatie" hebben

Overzicht van items die het object zijn van een qualifying statement met verb "is onderdeel van", maar niet "is" "Activiteit" hebben

Overzicht van items die het object zijn van een qualifying statement met verb "onderdeel type", maar niet "is" "Onderdeeltype" hebben

Overzicht van items die het object zijn van een qualifying statement met verb "werk type", maar niet "is" "Werktype" hebben

Overzicht van items die het object zijn van een qualifying statement met verb "concept", maar niet "is" "Concept" hebben

Overzicht van items die het object zijn van een qualifying statement met verb "format", maar niet "is" "Format" hebben

Overzicht van items die het object zijn van een qualifying statement met verb "samenwerkingstype", maar niet "is" "Samenwerkings type" hebben

Overzicht van alle plaatsen zonder land

Plaatsen zouden niet zonder een land indicatie mogen zijn. We hebben een lijst nodig van plaatsen zonder een land.

Plaatsen in hetzelfde land met dezelfde naam

Hoewel het kan voorkomen dat in hetzelfde land een plaats is met dezelfde naam is het goed om er daar dan een disambiguatie aan toe te voegen in de description.

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)

(zie ook hoger)

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".