TheaterEncyclopedie:Verbetering koppeling TheaterEncyclopedie en TheaterCollectie (2023)/Synchronisatie en kwaliteitsbeheer informatie

Uit TheaterEncyclopedie
Ga naar: navigatie, zoeken

In de doelstelling van plan voor verbetering van de koppeling tussen TC en TE is opgenomen dat er afspraken moeten komen over welke informatie leidend alsmede hoe de informatie gecontroleerd tussen beide bestanden kan worden uitgewisseld.

In de mailwisseling tus FM, BvdW en BM (zie e-mails d.d. 7 mei 2024 en eerder is het begrip van leidende informatie verder uitgewerkt. Hierbij is overigens de (voorlopige) conclusie getrokken dat voor veel van de (kern)informatie waarschijnlijk zal gelden dat zowel TE als TC zelfstandige informatiebronnen zullen zijn. Oftewel beiden bestanden zorgen zelfstandig voor kwaliteitsbeheer van de informatie (en de onderlinge synchronisatie).

Omdat tevens in de Uitwerking van de doelstellingen en in de Wensen & Eisen is gesteld dat Het verdubbelen van data-invoer moet voorkomen worden en Er moeten maatregelen komen voor kwaliteitsbeheer van de informatie (synchronisatie en ontdubbeling van informatie), blijven bestanden wel nauw aan elkaar gekoppeld en zijn er maatregelen nodig om gecontroleerd informatie uit te wisselen.

Uitwerking methodiek

Uitgaande van de Werkwijze aanvullingen en wijzigingen vanuit Theaterencyclopedie naar Axiell Collections TIN, Bianca de Waal, 3 februari 2025 (zie email d.d. 3-2025) is de volgende uitwerking opgesteld.

Terminologie

Enige uitleg over de in onderstaande tekst gebruikte termen:

TE
TheaterEncyclopedie gebaseerd op MediaWiki - Pagina's met (wiki)tekst en de (semantische) database met gestructureerde gegevens
TC / AC / Axiell
De TheaterCollectie gebaseerd op Axiell Collections - Gestructureerde informatie.
Entiteit
Benaming voor een informatierecord, met mogelijk verschillende attributen. Concreet kan dit bijvoorbeeld een Productierecord (?) zijn in de TC of een Productie-pagina in de TE. Voor een lijst van entiteiten op de TE, zie Categorie:Entiteit.
Attribuut
Informatie-eenheid behorend bij een entiteit. Concreet een veld in de TC (NB: kan 1 of meer informatie-eenheden of triples bevatten ! ) of een Eigenschap (Property) in de TE. Eigenschappen van producties op de TE, zie hieronder, of Categorie:Eigenschap van een productie.
Synchronisatie/koppeling
Informatie wordt technisch/automatisch of procedureel in overeenstemming met elkaar gehouden.

Leidende bron

Wanneer er afgesproken wordt dat 1 van de bronnen leidend is, dan is de methode van synchroniseren anders dan wanneer beide bronnen zelfstandig zijn.

1 leidende bron
het volgend bestand kopieert letterlijk de data uit een veld van het leidende bestand, zodat informatie van gekoppelde entiteiten in beide bestanden altijd volledig synchroon is
2 zelfstandige bronnen, maar met bijvoorbeeld wel een ‘comply or explain’ strategie
Beide bronnen vergelijken ‘zichzelf’ met de ander, maar nemen niet per definitie elkaars informatie over.

In het eerste geval moet nog wel rekening gehouden worden met het aanmaken of verwijderen van entiteiten (dit kan meestal technisch niet automatisch c.q. real-time gebeuren).

In het tweede geval kunnen er dus diverse situaties voorkomen:

  • Voor gekoppelde entiteiten is het mogelijk dat:
    • Geen verschillen zijn tussen beide bestanden; alle attributen/velden zijn identiek
    • Er kunnen verklaarde verschillen zijn:
      • meer/aanvullende informatie; extra attributen/velden en/of extra informatie in een veld
      • minder/ontbrekende informatie; ontbrekende attributen/velden of ontbrekende informatie in een veld
      • Verschillende codering van in principe dezelfde informatie
      • Niet gekoppelde/gesynchroniseerde attributen/velden
  • Niet gekoppelde entiteiten zullen/kunnen sowieso verschillen
Voorlopige conclusie
Op basis van de voorgaande discussie zal er tussen de TE en de TC vooral sprake zijn van het vergelijken van twee zelfstandige bronnen en is het dus nodig om aan beide kanten verschillenrapportages te kunnen opstellen.

De inhoud van de verschillen-rapportages en de procedure voor verwerking wordt verder uitgewerkt.

Lokale invoer, weergave & opslag vs. Linked Data

NB: DIT DEEL VERGT NOG KEUZES !! (met name over lokale opslag (en dus dubbele opslag) van gekoppelde informatie in de TE)

Om een goed begrip te krijgen van de veranderingen zijn de huidige en de (mogelijkheden voor) de toekomstige situatie verder uitgewerkt

Huidige situatie Tinbot voor theaterproducties:

- Lokale invoer, weergave en opslag in de TE van informatie, gekopieerd vanuit de TC ("in de infobox")
    - Voor sommige velden niet aanpasbaar (wordt overschreven); voorbeeld: titel, producent premieredatum
    - Voor sommige velden wel aanpasbaar ; voorbeeld: makers en uitvoerenden
- Lokale invoer, weergave en opslag van informatie in de TE, die niet is gekopieerd vanuit de TC ("buiten de infobox")
    - Toevoegen van informatie aan op zich gekoppelde productie, maar “buiten de infobox”
    - Toevoegen van geheel ongekoppelde theaterproducties
    - Verwijderen c.q. niet overnemen van theaterproductie
- Nieuwe productie in de TC worden via Tinbot per batch aangemaakt in de TE, informatie (infobox) wordt gekopieerd
- Uit de TC verwijderde producties ??
- Lokaal aangemaakte productie (ongekoppeld) (??)

Opties bij Linked Data

  1. Gesynchroniseerde/gekoppelde entiteiten en bijbehorende informatie; hiervoor zijn er drie mogelijkheden:
    1. Copy, Paste - Inlezen & weergeven : dus nooit c.q. geen enkele lokale invoer, lokale weergave en opslag van de remote linked data (alleen mogelijk i.g.v. "Leidende bron", vergelijk NA fotorecords e.d.)
    2. Compare only - Inlezen ter info only: altijd c.q. complete lokale invoer (en dus ook weergave en opslag van de lokale data) - Ongewenst gezien doelstellingen van dit project !
    3. Copy & Correct: Gedeeltelijk lokale invoer; hybride weergave en opslag van linked data versus lokale (aangepaste/gecorrigeerde) data.
      • Indien lokaal ingevoerd, dan lokaal ingevoerde informatie weergeven en opslaan
      • Indien geen lokaal ingevoerde data, dan Linked Data weergeven en opslaan.
  2. Niet gesynchroniseerde/ongekoppelde informatie (velden, eigenschappen) van op zicht gekoppelde entiteiten:
    1. Lokale invoer, weergave en opslag van lokale data (NB: in TC of TE!)
    2. Ontbrekende informatie, c.q. niet overgenomen informatie
  3. Technisch niet gekoppelde c.q. lokale entiteiten(, maar wel met referentie naar elkaar)
    • See also : Kijk voor eventueel aanvullende info op....
    • Vergelijkbaar met Compare only, maar alleen op niveau van (aanvullende) velden en indien remote beschikbaar

NB: Zoals al gemeld is er in het geval van Linked Data nog specifieke aandacht nodig voor het synchroniseren van entiteiten (producties) in beide systemen.

Verdere toelichting

Voorbeelden, gezien vanuit het perspectief van de TE:

Copy-Paste
Informatie uit de TC wordt ingelezen in de TE en in de TE opgeslagen in de semantische database. De informatie kan worden weergegeven op pagina's, maar kan niet aangepast worden (via bijv. een formulier). Voorbeelden: Referentienummers, URI's, ...
Compare only
Informatie uit de TC wordt ingelezen, maar niet lokaal in de semantische database opgeslagen. Alle info in de TE wordt lokaal ingevoerd en opgeslagen in de Semantische database. De informatie uit de TC wordt bijv. naast de lokaal ingevoerde (gekopieerde) data in het bewerkingsformulier weergegevens. Voorbeelden: Opmerkingen-velden, administratieve velden (??). Dit gebeurt momenteel met locatie-informatie in Wikidata (dit wordt ook aan de voorzijde weergegeven, overigens. Kan nuttig zijn in geval van een niet betrouwbare / vertrouwde bron
Copy & Correct
Informatie wordt ingelezen vanuit de TC en lokaal opgeslagen & weergegeven, tenzij er lokaal informatie is ingevoerd. In dat geval wordt de lokaal ingevoerde informatie opgeslagen en weergegeven. Eventueel kan signalering van verschillen plaatsvinden.

Logica per veld voor de "Copy & Paste" optie:

IF (axiell_referentie) THEN
	IF (<GEEN ERROR(remote_value)>) THEN ($remote_value) ELSE ( NULL )
ELSE ( NULL ) 

Logica per veld voor de "Copy & Correct" optie:

IF (local_input) THEN ($local_value) ELSE	
	IF (axiell_referentie) THEN
		IF (<GEEN ERROR(remote_value)>) THEN ($remote_value) ELSE ( NULL )
	ELSE ( NULL )

- Er kunnen ongekoppelde producties/records/pagina's bestaan (op de TE en in de TC)
- Lokaal ingevoerde waarde overschrijft alle remote informatie
- Meervoudige waarden worden "als geheel" overschreven; enkelvoudige aanvullingen niet mogelijk
- Gekoppelde producties wijzigen lokaal automatisch met remote aanpassingen (tenzij een lokale waarde is ingevoerd)
- zodra een lokale waarde is ingevoerd, worden remote aanpassingen niet meer automatisch weergegeven/opgeslagen
- minimale dubbele registratie
- op termijn toenemend moeizame synchronisatie 

Vergelijken van data - verschillen

NB: DIT DEEL VERGT NOG KEUZES EN UITWERKING !

Uitgaande van geen enkele lokale invoer; dan zullen er nooit verschillen zijn.

Uitgaande van complete lokale invoer

   - Rapportage per gesynchroniseerde pagina over verschillen tussen TE en TC; wanneer er in 1 of meer velden een verschil is tussen de data van de TE en de data van de TC, dan moet dat gesignaleerd worden.
       - Dit levert ingewikkelde vergelijkingen in het geval van :
           - Velden met verschillende schrijfwijzen en of “codering”, denk aan data en namen. 
           - Velden met meervoudige waarde(n), betekenisvolle volgorde van invullen van de waarden
   - Rapportage per niet gesynchroniseerde pagina

Uitgaande van hybride situatie - "Copy & Correct" (met deels lokale invoer, deels niet) is het waarschijnlijk meest praktisch een andere aanpak te kiezen:

   - Rapportage van gesynchroniseerde pagina’s met lokale invoer
      - N.B.: dit is mogelijk toch nog dezelfde invoer als de Linked Data !!
      - Die kan op termijn een omvangrijk bestand worden (met "gewenste verschillen/aanpassingen") - mogelijk is filteren op recente wijzigingen in de TE noodzakelijk. 
          - N.B.: Openstaande kwestie: wijzigingen in de TC (aan producties met lokale TE-invoer) - hoe rapporteren en afhandelen ??
   - Rapportage van ongesynchroniseerde pagina’s (TE en TC)

Voor het synchroniseren van entiteiten (producties) in beide systemen:

  1. nieuwe entiteiten (concreet: nieuwe producties aangemaakt in de TE of TC)
  2. te verwijderen entiteiten (concreet: uit de TE of TC verwijderde producties)
  3. Inventaris,
    • Verschillenlijst; entiteiten waarvan besloten is dat ze alleen in de TE of alleen in de TC voorkomen. EN/OF
    • Koppellijst; entiteiten waarvan besloten is dat ze in beiden systemen zijn gesynchroniseerd/gekoppeld

Inventarisatie van attributen

TO DO:

  • Toevoegen in overzicht:
    • Gekoppelde bron (specifiek: TheaterCollectie)
    • Gekoppelde data (specifiek: Record/veld
    • Wijze van koppeling (Leidende bron / (Volgend bestand), Informatief, "Copy & Correct", ...)


Overzicht van attributen (velden) van de entiteit productie:

 HeeftSubjectHeeft type"Heeft type <span style="font-size:small;">(Has type)</span>" is a predefined property that describes the datatype of a property and is provided by Semantic MediaWiki.HeeftObjectSubeigenschap van"Subeigenschap van <span style="font-size:small;">(Subproperty of)</span>" is a declarative predefined property to define that a property is a subproperty of another and is provided by Semantic MediaWiki.HasLinkedSourceHasLinkedDataHasLinkType
AdlibPersoon
Productie
Audiovisueel
TekstTheaterCollectieorig_perform_prirefvolgend
AfbeeldingPersoon
Productie
Locatie
PaginaFoto
BehoortTotTheaterCollectieSelectieProductieBooleaans
Co-producentProductiePaginaPersoon
DisciplineProductiePaginaTheaterdiscipline
Gallery captionProductiePagina
HeeftAxiellRefProductieTekst
HeeftWikidataItemIDProductieExternal identifierWikidatainformatief
InBewerkingVanProductiePaginaPersoonIsGerealiseerdDoor
InChoreografieVanProductiePaginaPersoonIsGerealiseerdDoor
IsGemaaktDoor
InMimografieVanProductiePaginaPersoonIsGerealiseerdDoor
InRegieVanProductiePaginaPersoonIsGerealiseerdDoor
InVertalingVanProductiePaginaPersoonIsGerealiseerdDoor
IsBedachtNaarProductiePaginaPersoonIsGerealiseerdDoor
IsBewerkingVanProductie
Werk
PaginaProductie
Werk
IsGebaseerdOp
IsGearrangeerdDoorProductiePaginaPersoonIsGerealiseerdDoor
IsGebaseerdOpProductie
Werk
PaginaProductie
Werk
IsGedanstDoorProductiePaginaPersoonIsGerealiseerdDoor
IsGeinspireerdOpProductie
Werk
PaginaWerkIsGebaseerdOp
IsGemimedDoorProductiePaginaPersoonIsGerealiseerdDoor
IsGepresenteerdDoorProductiePaginaPersoonIsGerealiseerdDoor
IsGeproduceerdDoorProductiePaginaPersoonIsGerealiseerdDoor
IsGerealiseerdDoorProductiePaginaPersoon
IsGeschrevenDoorProductie
Werk
PaginaPersoonIsGerealiseerdDoor
IsGemaaktDoor
IsGespeeldDoorProductiePaginaPersoonIsGerealiseerdDoor
IsGezongenDoorProductiePaginaPersoonIsGerealiseerdDoor
IsSamengesteldDoorProductiePaginaPersoonIsGerealiseerdDoor
IsUitgevoerdDoorProductiePaginaPersoonIsGerealiseerdDoor
IsVertalingVanProductie
Werk
PaginaProductie
Werk
IsGebaseerdOp
IsVerteldDoorProductiePaginaPersoonIsGerealiseerdDoor
LocatieProductiePaginaLocatie
MetAudiovisueelOntwerpVanProductiePaginaPersoonIsGerealiseerdDoor
MetDecor(ontwerp)VanProductiePaginaPersoonIsGerealiseerdDoor
MetDramaturgieVanProductiePaginaPersoonIsGerealiseerdDoor
MetGeluidDoorProductiePaginaPersoonIsGerealiseerdDoor
MetGrime(ontwerp)VanProductiePaginaPersoonIsGerealiseerdDoor
MetGrimeKapwerkVanProductiePaginaPersoonIsGerealiseerdDoor
MetInstuderingDoorProductiePaginaPersoonIsGerealiseerdDoor
MetKapwerkVanProductiePaginaPersoonIsGerealiseerdDoor
MetLiedtekstenVanProductiePaginaPersoonIsGerealiseerdDoor
MetMaskersVanProductiePaginaPersoonIsGerealiseerdDoor
MetPoppengespeeldDoorProductiePaginaPersoonIsGerealiseerdDoor
OnderwerpProductiePaginaOnderwerp
Oorspronkelijke titelProductiePaginaIsGebaseerdOp
OpmerkingenProductieTekst
PremieredatumProductieDatum
PremiereseizoenProductiePaginaSeizoenSeizoen
ProducentProductiePaginaProducent
SeizoenProductiePaginaSeizoen
TitelProductiePagina
... meer resultaten