Overzicht van onmogelijkheden: Difference between revisions

From Doelgericht Digitaal Transformeren
Line 100: Line 100:
==== Overzicht van alle Landen ====
==== Overzicht van alle Landen ====


PREFIX kp:<https://osloddt.wikibase.cloud/entity/>
PREFIX kp:<https://osloddt.wikibase.cloud/entity/>
PREFIX kpp:<https://osloddt.wikibase.cloud/prop/direct/>
PREFIX kpp:<https://osloddt.wikibase.cloud/prop/direct/>
  SELECT DISTINCT ?item ?itemLabel ?legacyurlLabel
  SELECT DISTINCT ?item ?itemLabel ?legacyurlLabel
  WHERE {
  WHERE {

Revision as of 14:46, 14 February 2023

Lijstjes via SPARQL voor overzicht, quality assurance en data validatie

Data overviews

Overzicht van alle Items van het type Activiteit, met een activiteitstype

Toon alle "item is een Activiteit, met ook een relatie voor een activiteit type, waarbij het type van is een Activiteitstype" (dit zijn "valid activiteiten")

SELECT ?activiteit ?activiteitLabel ?activiteitType ?activiteitTypeLabel
WHERE {
 ?activiteit <http://osloddt.wiki.opencura.com/prop/direct/P1> <http://osloddt.wiki.opencura.com/entity/Q1>.
 ?activiteit <http://osloddt.wiki.opencura.com/prop/direct/P13> ?activiteitType.  
 ?activiteitType <http://osloddt.wiki.opencura.com/prop/direct/P1> <http://osloddt.wiki.opencura.com/entity/Q15>.
 SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . }
}

Overzicht van alle Actoren, met actor type

SELECT ?actor ?actorLabel ?typeLabel
WHERE {
 ?actor <http://osloddt.wiki.opencura.com/prop/direct/P1> <http://osloddt.wiki.opencura.com/entity/Q1453>.
 ?actor <http://osloddt.wiki.opencura.com/prop/direct/P41> ?type.  
 ?type <http://osloddt.wiki.opencura.com/prop/direct/P1> <http://osloddt.wiki.opencura.com/entity/Q1454>.
 SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . }
}
order by ?actorLabel

Overzicht van alle Werken, met werk type

SELECT ?work ?workLabel ?typeLabel
WHERE {
?work <http://osloddt.wiki.opencura.com/prop/direct/P1> <http://osloddt.wiki.opencura.com/entity/Q1457>.
?work <http://osloddt.wiki.opencura.com/prop/direct/P48> ?type.  
?type <http://osloddt.wiki.opencura.com/prop/direct/P1> <http://osloddt.wiki.opencura.com/entity/Q1496>.
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . }
}
order by ?workLabel

Overzicht van alle Activiteit Types

Toon alle "item is een Activiteit Type"

  SELECT DISTINCT ?item ?itemLabel ?typeLabel
  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

 SELECT DISTINCT ?item ?itemLabel ?typeLabel
 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 Werk types

 SELECT DISTINCT ?item ?itemLabel ?typeLabel
 WHERE {
   ?item <http://osloddt.wiki.opencura.com/prop/direct/P1> ?type.
   FILTER (?type IN (<http://osloddt.wiki.opencura.com/entity/Q1496>)).
   SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . }
 }
 ORDER BY ?item ?typeLabel

Overzicht van alle Rollen

SELECT DISTINCT ?item ?itemLabel ?typeLabel
WHERE {
  ?item <http://osloddt.wiki.opencura.com/prop/direct/P1> ?type.
  FILTER (?type IN (<http://osloddt.wiki.opencura.com/entity/Q20>)).
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . }
}
ORDER BY ?item ?typeLabel

Rollen kunnen ook vrij gemodelleerd worden. Dan moeten we op zoek naar de objecten van een qualifying statement van de property rol (vrij):

SELECT DISTINCT ?typeLabel
WHERE {
 ?item <http://osloddt.wiki.opencura.com/prop/qualifier/P45> ?type.
 SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . }
}
ORDER BY ?typeLabel

Overzicht van alle Plaatsen

SELECT DISTINCT ?item ?itemLabel ?landLabel
WHERE {
  ?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" . }
}
ORDER BY ?landLabel ?itemLabel

Overzicht van alle Landen

PREFIX kp:<https://osloddt.wikibase.cloud/entity/>
PREFIX kpp:<https://osloddt.wikibase.cloud/prop/direct/>
SELECT DISTINCT ?item ?itemLabel ?legacyurlLabel
WHERE {
  ?item kpp:P1 kp:Q70;
        kpp:P26 ?legacyurl.
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . }
}
ORDER BY ?itemLabel

Overzicht van alle Samenwerkings types

Samenwerkingstypes kunnen ook vrij gemodelleerd worden:

Overzicht van alle URL types

Overzicht van alle email types

Overzicht van alle onderdeel types

Waarmee sub/superactiviteiten met elkaar gelinkt worden

Overzicht van alle format types

Overzicht van alle subsidie types

Overzicht van alle trigger types

Quality assurance

Overzicht van alle items die geen "is" property hebben

Overzicht van alle items met een "Activiteit", maar geen activiteit type

Toon alle activiteiten zonder activiteit type (zou een lege lijst moeten opleveren!):

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 alle items met een "Actor" via "is", maar geen actor type

Overzicht van alle Rollen die geen Actor Type zijn, en vice versa

Overzicht van activiteiten zonder gestructureerd activiteit type, maar wel met een vrij activiteit type

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 items waarin een qualifier zit met "rol (vrij)", zonder een genormaliseerde "rol"

Overzicht van items waarin een qualifier zit met "samenwerkings type (vrij)", zonder een genormaliseerde "samenwerkings type"

Overzicht van items waarin een qualifier zit met "onderdeel type (vrij)", zonder een genormaliseerde "onderdeel type"

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):

SELECT distinct ?activiteitType ?activiteitTypeLabel
WHERE {
 ?activiteit <http://osloddt.wiki.opencura.com/prop/direct/P1> <http://osloddt.wiki.opencura.com/entity/Q1>.
 ?activiteit <http://osloddt.wiki.opencura.com/prop/direct/P13> ?activiteitType.  
 FILTER NOT EXISTS { ?activiteitType <http://osloddt.wiki.opencura.com/prop/direct/P1> <http://osloddt.wiki.opencura.com/entity/Q15> }.
 SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],nl,en" . }
}

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 alle plaatsen zonder land

Overzicht van plaatsen zonder land:

Items met dezelfde naam

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)
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)
Groepstentoonstellingen in hetzelfde jaar en in dezelfde locatie, met gelijkaardige titels

TODO

Activiteiten van het type "beurs", maar niet op een locatie van het type "Beurs"
Activiteiten die onder tentoonstellingen vallen, maar niet op een locatie met het type "Tentoonstellingsruimte"

Data validation

TODO te onderzoeken of dit kan met schema's, bv. te genereren via https://wikishape.weso.es/

Items van "is" Actor die niet de bepaalde statements hebben

Items van "is" Activiteit, type "Concert" die niet de bepaalde statements hebben

Items van "is" Activiteit, type "Muziekuitgave" die niet de bepaalde statements hebben

Items van het type Track die niet de bepaalde statements hebben

Items van het type track zonder een "Muziekuitgave"

Items van "is" Activiteit, type "Podiumproductie" die niet de bepaalde statements hebben

Items van "is" Activiteit, type "Voorstelling" die niet de bepaalde statements hebben

Items van het type voorstelling zonder een podiumproductie

Items van "is" Activiteit, type "Residentie" die niet de bepaalde statements hebben

Items van "is" Activiteit, type "Tentoonstelling" die niet de bepaalde statements hebben

Items van het type toonmoment die niet de bepaalde statements hebben

Items van het type toonmoment zonder een overkoepelende tentoonstelling of residentie

Enkele SPARQL truukjes

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