De TheaterEncyclopedie is vernieuwd!

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 .

Het ligt voor de hand ook te kijken 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.

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

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.