Leermateriaal delen en vinden met de Groene Route van de HBO Kennisbank

De HBO Kennisbank wordt goed gebruikt om kennis te delen en te vinden en is dus een bron van inspiratie voor velen. Wij bouwden deze databank; het is een goed voorbeeld van de ‘groene route’ in het hoger onderwijs. Het houdt onder meer in dat er door iedereen kosteloos full text in gezocht mag worden. De meeste artikelen zijn vrij te downloaden. Zo kan kennis zich sneller verspreiden en kan iedereen er zijn voordeel mee doen.

Zo werkt het

Minder evident is iets te weten te komen over de achterkant van deze voorziening. In de onderstaande infographic laten we de belangrijkste technische aspecten die ‘onder water’ spelen, in vogelvlucht zien.

Infographic HBO Kennisbank 2017.png

Open Source Erfgoed Software: Meresco

In Schudden voor gebruik – Nationale strategie voor landelijke voorzieningen voor digitaal erfgoed (zie Openbare Review Nationale Strategie Digitaal Erfgoed) wordt gezegd:

“Het ICT-maatwerk heeft in de voorbije jaren veel kunnen betekenen voor instellingen en hun klanten, maar leidt nu ook tot beperkingen bij de ontwikkeling van een goed functionerend informatienetwerk. Er moet daarom nu meer aandacht uitgaan naar gestandaardiseerde en toegankelijke basisvoorzieningen, om daar bovenop eenvoudiger en voordeliger maatwerktoepassingen te kunnen maken.

80/20
Ja! In de Erfgoedsector kan 80% van de software gedeeld worden. Je doet zoveel mogelijk samen, zonder dat je wordt beperkt in je vrijheid om je eigen ding te realiseren. 20% maatwerk daar bovenop is het interessante deel waarmee je je onderscheidt en waar besteding van het budget te rechtvaardigen is, omdat het meerwaarde oplevert.

Nu al beschikbaar
Wat dat betreft is er goed nieuws. In de afgelopen jaren heeft Seecr al veel gemeenschappelijke software ontwikkeld voor het publiceren en toegankelijk maken van grote hoeveelheden data. Deze software is:

  • beschikbaar onder Open Source licentie;
  • onder copyright van erfgoedinstellingen;
  • gesmeed tot een geheel van herbruikbare componenten;
  • als source gepubliceerd op GitHub;
  • als binaire packages installeerbaar op Debian of RedHat;
  • bewezen technologie: productierijp en grootschalig inzetbaar.

Bewezen technologie
Vandaag de dag draaien grote landelijke netwerken op deze software. In het domein van onderwijs, erfgoed, openbare en wetenschappelijke bibliotheken. Deze bevatten zeer veel gecombineerde data en hebben dagelijks een groot publiek van institutionele gebruikers en eindgebruikers.

bron Elsbeth Kwantbron: Elsbeth Kwant
In bovenstaande afbeelding van Elsbeth Kwant geeft de oranje kleur in stam en wortels aan waar deze software aanwezig is. Deze data wordt al dagelijks gebruikt en onder elkaar uitgewisseld.

Verbetering componenten
Herbruikbare componenten bedenk je niet, die groeien. Ze ontstaan als gevolg van hergebruik: de eerste maakt iets, de volgende past het aan en bij de derde kun je gaan spreken van een herbruikbaar component. Als dat enkele jaren doorgaat, ontstaat er een enorme hoeveelheid aan meer generieke en steeds betere componenten. Dit is precies wat met deze software de afgelopen jaren is gebeurd en wat dagelijks plaatsvindt.

Copyright en licenties
Een open source licentie is mooi, maar daarmee heb je nog geen controle over wat er met die software gebeurt, want die ligt bij de copyright eigenaar. Het copyright van deze software ligt bij grote spelers uit de erfgoed sector waaronder Stichting Beeld en Geluid, de Koninklijke Bibliotheek, de Koninklijke Nederlandse Academie van Wetenschappen (KNAW) en Stichting Kennisnet.

Publicatie en packaging
De publicatie en packaging is de afgelopen jaren om niet gedaan door Seecr. De binaire packages kunnen in enkele minuten geïnstalleerd worden. In een handomdraai heb je dan een eigen netwerk waar je een eigen toepassing op kunt bouwen zonder je zorgen te hoeven maken over de gemeenschappelijke delen. Een goed voorbeeld hiervan is Narcis die door DANS wordt onderhouden.

Heeft deze software al een naam? Ja! In 2007 hebben wij met vier partijen die hiermee begonnen zijn de naam Meresco bedacht. Onder die naam is het sindsdien gepubliceerd en onderhouden tot op de dag van vandaag: zie github.com/seecr?query=meresco

Wat is er met deze software allemaal mogelijk? In een volgende blog zal ik hier dieper op in gaan.

Update HBO Kennisbank

De afgelopen weken hebben we gewerkt aan HBO Kennisbank. De release hiervan moet nog plaatsvinden, maar graag laten we alvast zien wat er is toegevoegd. Tot op heden was niet duidelijk zichtbaar welke hoge scholen bij HBO kennisbank zijn aangesloten. Daar komt nu verandering in.

HBO Kennisbank

Wat wij hebben gedaan is het filter uitgebreid. Alle deelnemende scholen worden bovenaan in alfabetische volgorde getoond met daarbij de vermelding hoeveel artikelen er beschikbaar zijn. De technische verbetering zit hem met name in het anders tonen van de organisatiefacetten.

Daarnaast hebben we ook de bestaande software bijgewerkt. We zorgen er graag voor dat onze klanten kunnen profiteren van de nieuwste functionaliteiten en prestaties die gerealiseerd zijn in andere projecten gebaseerd op dezelfde software componenten.

 

Versiebeheer met changesets

In deze blog leggen we uit hoe we ons versiebeheer hebben georganiseerd om voor verschillende opdrachtgevers tegelijkertijd aan dezelfde open source code te kunnen ontwikkelen. Een belangrijk doel van onze werkwijze is om die aanpassingen eenvoudig uit te wisselen tussen de verschillende opdrachtgevers. Bovendien kunnen opdrachtgevers en anderen precies zien welke features voor eigen gebruik interessant zijn.

Workingsets
Voor het versiebeheer van onze open source software gebruiken we Subversion, gehost op Sourceforge. Een typische Subversion repository is opgedeeld in tags voor versies, een trunk waarop de wijzigingen worden gemaakt voor een release en eventueel branches voor de ontwikkeling van specifieke aanpassingen. In onze benadering vervalt de trunk en organiseren we branches in workingsets. De tags directory bevat zoals gebruikelijk de versies die gepubliceerd worden. Zodra we een nieuwe feature ontwikkelen, maken we eerst een workingset op basis van een specifieke tag.

De directory tree van een project ziet er dan als volgt uit:

meresco-solr/
    tags/
        version_0.9/
            ...
        version_1.0/
            ...
        version_1.1/
            ...
        workingsets/
            1.1-projectX/
                ...
            1.0-projectY/
                ...

Een workingset bevat op zichzelf weer interne versies en branches. Binnen een nieuwe workingset beginnen we met version_0, dus:

$ svn cp tags/version_1.1 workingsets/1.1-projectX/version_0

De ontwikkeling van feature A gebeurt in version_0-feature_A:

$ cd workingsets/1.1-projectX
$ svn cp version_0 version_0-feature_A

De tree voor deze workingset ziet er nu als volgt uit:

workingsets/
    ...

    1.1-projectX/
        version_0/
	    ...
        version_0-feature_A/
	    ...

Als feature_A klaar is, bundelen we de wijzigingen in een changeset voor die feature door de diff te nemen tussen version_0 en version_0-feature_A. Die changeset plaatsen we in een subdirectory applied en we maken version_1:

workingsets/
    ...

    1.1-projectX/

        version_0/
            ...
        version_1/
            applied/
                ...
                201103081154.feature_A.changeset
            ...

Conclusie
Door op deze manier te werken met workingsets kunnen we in dezelfde periode voor verschillende projecten ontwikkelen aan dezelfde source code zonder dat dit conflicten oplevert. Daarbij worden alle veranderingen voor een story expliciet in één changeset gecombineerd. Zolang workingsets naast elkaar bestaan kunnen individuele changesets desgewenst van elkaar worden overgenomen. Dit werkt veel eenvoudiger dan het mergen zoals we dat gewend waren voor de introductie van de changesets.

Op een bepaald moment kunnen we besluiten dat een workingset klaar is om als officiële versie gepubliceerd te worden. Binnen de applied directory van de tag blijven alle changesets beschikbaar. Het mooie hiervan is dat we een changeset ook op oudere versies kunnen toepassen, bijvoorbeeld om een specifiek productieprobleem snel op te lossen zonder eerst een volledige upgrade te hoeven doen.

Voor onze open source projecten is deze manier van werken live te volgen op, bijvoorbeeld: http://meresco.svn.sourceforge.net/viewvc/meresco/meresco-core/.

De changesets publiceren we op: http://meresco.org/page/changesets.