TheaterEncyclopedie: Koppeling met Adlib

Uit TheaterEncyclopedie
Ga naar: navigatie, zoeken

>>> Werk in Uitvoering <<<

Deze pagina bevat informatie over de koppeling van de TheaterEncyclopedie met Adlib. Adlib is het collectie beheersysteem van de UvA-UB, waarin de Theatercollectie is geregistreerd. Het systeem is toegankelijk via de website theatercollectie.uva.nl.

Onder deze koppeling vallen in de huidige situatie (2018):

  • Script/bot voor het downloaden/uploaden van afbeeldingen
  • PHP-script voor het downloaden/kopiëren van gegevens uit Adlib naar de TheaterEncyclopedie (TINbot)
  • Procedure voor het toevoegen van producties aan Adlib en de TE
  • Richtlijnen voor het aanpassen en aanvullen van gegevens over bestaande producties (etc.) in Adlib en TE

Daarnaast is er een aantal noodzakelijke en/of wenselijke ontwikkelingen voor de koppeling:

  • Onderzoek naar het herschrijven van de huidige scripts in PHP versie 7
  • Onderzoeken en (mogelijk) ontwikkelen van alternatieven voor de huidige scripts

Huidige situatie (2018)

Script/bot voor het uploaden van afbeeldingen

Dagelijks (?) wordt met behulp van dit script afbeeldingen vanuit Adlib naar de Theaterencyclopedie overgebracht. Dit script maakt geen deel uit van de automatische dagelijkse "cronjob" om gegevens te importeren.

Gebruiker: Gebruiker:Tinbot Framework: Peachy wikibot

TINbot - PHP-script voor het kopiëren van gegevens naar de TE

Via een automatisch commando (cron-job - cron.sh) wordt iedere nacht een aantal scripts gestart:

  • filecache rebuild script (standaard MediaWiki maintenance script)
  • backupwiki script
  • people.php (standaard wordt dit script niet uitgevoerd)
  • productions.php (feitelijke TINbot script)

NB: Het script bestaat uit meer dan hierboven genoemd (library.php, adlib.class.php, adlibkeys.php, scripts-config.php etc.)

De api van de adlib-service is bereikbaar via de url: http://servicetin.adlibhosting.com/te4/wwwopac.ashx

korte beschrijving

(bron Documentatie#TINbot)

TINbot is een PHP script dat communiceert met de API van de Adlib database en de API van de wiki en elke nacht de Theaterencyclopedie bijwerkt. Alle voorstellingen die worden ingevoerd in bovengenoemde productiedatabase zijn ook zichtbaar op de Theaterencyclopedie. Tenminste, als zij over de drie vereiste datavelden beschikken, namelijk: titel-producent-premièredatum. Dit is de unieke code waarmee elke voorstelling een aparte pagina krijgt in de Theaterencyclopedie, de titel van een pagina bestaat namelijk uit deze drie elementen. Voor dit systeem is gekozen vanwege drie argumenten: 1. Uniek, 2. Doorzoekbaar, 3. Leesbaar

In de productiedatabase worden ook voorstellingen ingevoerd waarvan de premièredatum op dat moment onbekend is (die wordt dan hopelijk later aangevuld), deze voorstellingen verschijnen niet in de Theaterencyclopedie. TINbot vergelijkt dus elke nacht de inhoud van de database (Adlib) met de inhoud van de Theaterencyclopedie, daarbij kijkt TINbot 5 dagen terug in de tijd. Alle voorstellingen die zijn aangevuld in de productiedatabase krijgen automatisch een nieuwe pagina in de Theaterencyclopedie.

Voor meer informatie zie de pagina Theaterencyclopedie: Documentatie TINbot.

Ontwikkelingen

De scripts voor het uploaden en downloaden van de diverse gegevens uit Adlib zijn maatwerk software geschreven in PHP (Versie 5). Onderhoud en documentatie komt daarmee terecht bij de UvA UB / DD zelf.

Bij de upgrade van MediaWiki 1.23 naar 1.27 is het script “ongewijzigd” blijven functioneren; bij de eerstkomende upgrade van MediaWiki naar 1.31 moet her script in ieder geval aangepast worden naar PHP versie 7.x . Dat is inmiddels gebeurd.

Er is toentertijd gekeken naar alternatieven, zoals het gebruik van standaard extensies van (Semantic) MediaWiki, die vergelijkbare functionaliteit hebben.

De extensies die hiervoor in aanmerking komen zijn (deels) beschreven op op MediaWikiGids (Werk in uitvoering!). Vooral de extensie “ExternalData” lijkt veel van de benodigde functionaliteit te kunnen bieden (zie: Gebruiksaanwijzing met enkele voorbeelden.

NOTE: De voorbeelden maken gebruik van de test-server van adlib. Deze server is met enige regelmaat niet beschikbaar, waardoor de voorbeelden niet goed zichtbaar zijn
Zie ook: http://api.adlibsoft.com/

Enkele mogelijke (en nog te evalueren) import scenario’s

De combinatie van Semantic MediaWiki en de extensie ExternalData biedt verschillende (beproefde) om gegevens uit andere bestanden binnen een MediaWiki-installatie te gebruiken (te importeren). Uitgaande van het gebruik voor de TheaterEncyclopedie, komen de volgende import scenario's in aanmerkingen.

  1. Alleen downloaden en semantisch registreren van Adlib-benaming en essentieel attributen van een afbeelding. Direct weergeven ("serven") van afbeeldingen uit Adlib (Gebruik hiervoor bijvoorbeeld de reeds geïnstalleerde extensie Widget).
  2. Totaal overzicht downloaden en semantisch registreren van Voorstellingen + adlib id (gebruik ExternalData)
    > Per voorstelling (wikipagina) overzicht downloaden van betrokken personen, acteurs etc. en semantisch registreren (gebruik hiervoor SMW internal objects of maak een import-tabel).
  3. Totaal overzicht downloaden en semantisch registreren van Theaters + adlib id (gebruik ExternalData)
    > Per Theater (wikipagina) een overzicht downloaden en semantisch registreren van attributen
    Als alternatief voor Adlib: gebruik informatie van van WikiData/Wikibase gegevens.


Zie ook:

Ontwikkeling- & migratie scenario

De TheaterEncyclopedie is na de upgrade van juli 2018 gebaseerd op MediaWiki 1.27.4 en draait op PHP versie 5. De eerstevolgend LTS-release van MediaWiki is 1.31, waarvoor PHP 7 noodzakelijk is en een aanpassing van de Adlib-scripts OF alternatief. Dit betekent dat er voor de eerstvolgende MediaWiki systeemupgrade:

  1. een keuze gemaakt moet zijn in de oplossingsrichting voor de koppeling met Adlib (upgrade scripts of alternatief op basis van ExternalData of ...)
  2. de ontwikkeling van de koppeling moet plaatsvinden
  3. Integratietesten van deze koppeling met de nieuwe systeemversie 1.31 moeten zijn uitgevoerd.


Omdat het tevens gaat om de kerngegevens van de TheaterEncyclopedie en tevens de schaalgrootte (bestandsgrootte) aanzienlijk is, moet een migratiescenario zeer robuust zijn.

  • Uitsluiten van onbeschikbaar zijn of verlies van gegevens
  • Mogelijkheid tot terugdraaien naar oorspronkelijke situatie
  • Mogelijkheid tot tussentijds wijzigen van scenario bij voortschrijdend inzicht
  • Tussentijdse testmogelijkheden
  • etc. etc.

Voorbeeld van een migratiescenario:

  1. Onderzoek & ontwikkeling importmethodiek
    1. Bouw test / pilot van alternatieve importmethodiek in bestaande 1.27 test-versie
    2. Bij problemen terugvallen naar upgrade van scripts naar PHP 7
  2. Integratietest van importmethode in combinatie met 1.31 (test.theaterencyclopie_1.31.nl bijv.)
  3. Migreer en ga live met nieuwe methodiek bij de livegang van MediaWiki 1.31


Upgrade van Adlib naar Axiell Collections (2022 - )

In 2022 is begonnen met het aanpassen van de Adlib-gegevens t.b.v. de registratie in Axiell Collections.

Uit e-mail Hennie Dolfsma:

"Voor onze situatie houdt dat in dat we voor de database (de “applicatie”) van versie 3.4 naar versie 5.0 gaan. Daarbij zullen sommige veldnamen veranderen. Versie 5.0 gaat uit van één grote Objecten database (“collect”), waarin in elk geval de huidige Document database opgaat (boeken, teksten, audiovisueel). Ook custom objecten, zoals onze Producties, worden in principe opgenomen in de Collect database. Voor Document en Producties zou dat betekenen dat hun recordnummers (prirefs) veranderen. Andere informatie blijft behouden en ook het oorspronkelijke recordnummer kan in het record worden vastgelegd. Het al dan niet opnemen van Producties in Collect is een keuze, aantrekkelijk omdat we dan dichter bij de default installatie blijven en gemakkelijker kunnen uitwisselen met andere instellingen."

Migratie van de TE

Vanuit de TheaterEncyclopedie gezien is de meest elegante oplossing zoals we het nu zien en hebben besproken als volgt:

  1. Verwijzingen naar “Adlib” (de huidige situatie), laten we intact en ongewijzigd
  2. We voegen en nieuwe verwijzing toe in de semantische database naar “Axiell” (de nieuwe situatie)
  3. Met behulp van een referentie-tabel met de huidige Adlib-referentie en de bijbehorende nieuwe Axiell-referentie, vullen we eenmalig dit nieuw semantische veld. Wanneer er een eenduidige relatie is tussen de “oude" Adlib-referentie en de “nieuwe” Axiell-referentie, dan kan dat handig zijn, maar het niet echt noodzakelijk.
  4. Het huidige Tinbot-script kan waarschijnlijk tot nader order blijven werken op basis van de Adlib-referentie; het aangepaste Tinbot-script kan t.z.t. de synchronisatie overnemen op basis van de nieuwe Axiell-referentie en (mogelijk) nieuwe gegevensstructuur.

Dit bovenstaande is bedoeld voor de Productiedatabase c.q. de referenties m.b.t. de premières. Er is hierbij geen sprake van het opnieuw laden van alle producties/productiegegevens uit Axiell/Adlib v 5.0, maar slechts het eenmalig laden van de nieuwe referenties.

We zullen nog een onderzoek(je) doen naar het gebruik van de overige referenties naar Adlib:

  • Multimedia (reeds genoemde AV-records)
  • Personen
  • Foto’s/affiches
  • … ??

Zie hiervoor TE:Koppeling met Adlib/Migratie naar Axiell

Zie ook LOD van UvA

Test-migratie d.d. juni 2023

Zie e-mail van HD d.d. 15-6-2023, "Samenvatting upgrade Adlib naar Axiell Collections".

  • Test referentie-/concordantielijsten opgeleverd

Snapshot van de files:

recordnummer,orig_perform_priref,productiecode
500000001,1,128283012.001
500000002,2,129801871.001
500000003,3,129801871.003
500000004,4,129702455.001
500000005,5,123990005.001
500000006,6,123990005.002
500000007,7,123990005.003
500000008,8,123890042.003
500000009,9,129502351.001

Bevindingen:

Test 1:

Info uit Adlib:

  • Titel: !Ay, Carmela!
  • Productiecode: 129601214.002
  • Producent/Gezelschap: Nieuw Amsterdam, De
  • Premieredatum: 1996-10-10

RESULTAAT:

  • Concordantie- entry: 24061: 500023858,24061,129601214.002 (correct)

Opmerkingen:

Vragen uit e-mail/antwoorden:

  1. is dit voldoende om de TE bij te werken voor de links naar Axiell?
    • Dit is "in principe" voldoende informatie voor producties
    • Pas na een technische "proof-of-concept" kunnen we definitief aangeven of het ook in de praktijk gaat werken
    • De lijst bevat geen personen
    • Andere referenties (Repro-code) zijn niet benoemd
  2. Als het handiger is wanneer ik de lijsten samenvoeg, of juist in meer slices verdeel, laat het weten
    • Lijsten samenvoegen is handiger
    • Format van de code conform TE voorkomt waarschijnlijk ook problemen: "perform/<nummer>" en evt. "people/<nummer> (voorloop nullen??)

PoC

  • Lijsten samenvoegen tot 1 referentielijst
  • Lijst in CSV-format uploaden naar de TE (als standaard bestand - evt. upload van CSV mogelijk maken via config)
  • Test: lijst importeren m.b.v. "external-data"-extensie (reeds beschikbaar)
  • Test: lijst filteren voor "perform/xxxxx" en "record"-waarde selecteren
  • Test: gefilterde record-waarde opslaan in nieuwe ADLIB-property / AXIELL-property

Evt. extra's / alternatieven

  • (Eenmalig) Bijwerken van productiepagina's m.b.v. een script
    • Werkzaamheden vergelijkbaar met bovengenoemd PoC
  • Overgaan naar "officiële" URI-referentie (i.p.v. ID)
  • Waarde "vast" opslaan als wikitext (en niet semantisch opslaan c.q. als geïmporteerde waarde)


Informatie uit overleg 9-11-2023

  • Backlinks naar ProductieDB/Axiell ("gebruikersinterface") komen later beschikbaar dan migratie van data (dus tijdelijk dode links)
  • Na migratie data blijft Adlib nog (tijdelijk) bijgewerkt worden, totdat overige onderdelen Axiell (API, Webinterface, ...) beschikbaar zijn
    • Tinbot kan in de tussentijd dus "normaal" doorwerken.
    • Daarna volgt een finale "update" naar Axiell
  • Het Foto-uploadtool wordt als onderdeel van Tinbot aangepast; Repro-codes hebben de aandacht en collect/prirefs (Eigenschap:CollectDB) blijven ongewijzigd
  • De url van de productieDB kan mogelijk wijzigen
  • Er worden - naast de nieuwe collect-referentienummers - ook PID's / URI's geïmplementeerd
    • Dit gebeurt mogelijk LATER dan de migratie
    • De voorkeur bij de TE is om dit in 1x te implementeren
  • people/priref wordt krijgen geen nieuw collect-referentienummer (hoeft dus ook niet aangepast/aangevuld in de TE)

Nog niet besproken:

  • Mogelijk ontwikkeling van script om producties aan te passen (ipv via ExternalData)

Zie ook: e-mail (verslag) van Bianca de Waal d.d. 9-11-2023

Status en planning

NOTE: Eind 2018 is in overleg vastgesteld dat het onderhoud en het upgraden van het bestaande maatwerk PHP-script voor de TINbot naar PHP 7 door de afdeling Digitale Diensten kan worden uitgevoerd. De mogelijkheid om de koppeling met behulp van standaard extensie ExternalData te implementeren wordt daarom niet verder onderzocht en uitgewerkt. Zie ook notities overleg.