RELOAD – open source Metadata editor (deel 1)

Ik heb afgelopen weekend weer een beetje met de beta van de RELOAD editor zitten spelen. Met de huidige beta versie is het mogelijk IMS Contentpackaging bestanden te maken en daaraan, met behulp van de ingebouwde metadata editor ook de benodigde metadata te koppelen.

Maar er is meer, want behalve dat het de bedoeling is om ondersteuning in te bouwen voor bijvoorbeeld Simple Sequencing en Learning Design, geeft de tool ook een mooi beeld van een goed doordachte implementatie van de verschillende specificaties.

Zie ook: RELOAD website
Via de nieuwslijst van de CETIS Educational Content Special Interest Group (EC-SIG) worden regelmatig vragen van Phil Beauvoir, RELOAD’s senior developer, de wereld ingestuurd.

Uit de soort vragen, en vooral het ontbreken van eenduidige antwoorden, blijkt dat het implementeren van zo’n editor nog niet zo eenvoudig is als je zou denken. Nu had ik dat ook niet verwacht, want het implementeren van specificaties is nu eenmaal niet eenvoudig en eenduidig, maar voor deze mannen is er geen andere optie. Zij hebben als opdracht het bouwen van zo’n tool, en zij zullen dus keuzes moeten maken.

Een kort overzicht van de mogelijkheden in de huidige versie:

* Full Graphical User Interface with Drag and Drop

* Multi-Windows – edit more than one package at a time. Drag and drop between packages for aggregation and disaggregation

* Customisable Forms and fields, profiles and vocabularies * Plug-in Schema-intelligence. Use the latest IMS Schema – plug it in and go!

* Supports latest IMS specifications for Content Packaging, Simple Sequencing, Metadata, Learning Design (Autumn 2003), and also SCORM (later)

* Standalone and Content Package embedded Metadata Editor – add Metadata to all legal nodes of a Package or create a standalone Metadata file. Import and export too!

* Intelligent Resource parsing of HTML Pages – simply drag in a HTML page and all file dependencies are automatically included and referenced

* Intelligent Manifest Maker – auto-ID generation and referencing

* Package to Zip file

* Package Viewer – View the contents of your Package as you create it!

* Unlimited Undo/Redo

* Cross-platform written in Java – works for PC and Mac (OS X coming soon)

Soms ben ik het niet helemaal met de gemaakte keuzes eens, soms vind ik het heel aardige uitwerkingen. Zoals bijvoorbeeld de oplossing voor het flexibel maken van de metadata editor. Bij metadata is het namelijk zo dat, hoewel er een Learning Object Metadata (LOM) standaard bestaat, het exacte gebruik ervan van gebruikersgroep tot gebruikersgroep varieert. De ene groep gebruikers kan bijvoorbeeld beslissen bepaalde elementen als verplicht te stellen, terwijl de andere groep juist beslist diezelfde elementen niet in te vullen (dat dat voor onderlinge uitwisselbaarheid niet schitterend is, doet er hier nu even niet toe). Ook kan het zo zijn dat een gebruikersgroep de toegestanen waarden voor een element of attribuut beperkt tot een eindige lijst (een vocabulary voor het element of attribuut).

De Reload editor kan hiermee redelijk simpel overweg doordat het mogelijk is “helperbestanden” te maken die de gewenste structuur voor een gewenste situatie beschrijft.

Zo ziet de beschrijving van het applicatieprofiel voor de UKCMF er als volgt uit:

<?xml version="1.0" encoding="UTF-8"?>

<!– RELOAD Metadata Profile –>

<profile name="UKCMF version 1.0" vocabfile="lomv10.xml">

<group name="General">

<group name="Identifier">

<element name="Catalog" path="lom/general/catalogentry/catalog"/>

<element name="Entry" path="lom/general/catalogentry/entry/langstring"/>

</group>

<element name="Title" path="lom/general/title/langstring"/>

<element name="Language" path="lom/general/language"/>

<element name="Description" path="lom/general/description/langstring"/>

<element name="Keyword" path="lom/general/keyword/langstring"/>

<element name="Coverage" path="lom/general/coverage/langstring"/>

<element name="Structure" path="lom/general/structure/value/langstring"/>

<element name="Aggregation Level" path="lom/general/aggregationlevel/value/langstring"/>

</group>

<group name="Life Cycle">

<element name="Version" path="lom/lifecycle/version/langstring"/>

<element name="Status" path="lom/lifecycle/status/value/langstring"/>

<group name="Contribution">

<element name="Role" path="lom/lifecycle/contribute/role/value/langstring"/>

<element name="VCard" path="lom/lifecycle/contribute/centity/vcard"/>

<element name="Date" path="lom/lifecycle/contribute/date/datetime"/>

</group>

Een voorbeeld aan de hand van een denkbeeldige NedKernset toont de kracht hiervan aan:

<profile name="NEDKern versie 0.1" vocabfile="lomv10.xml">

<group name="Algemeen">

<group name="Identificatie">

<element name="Catalogus" path="lom/general/catalogentry/catalog"/>

<element name="Identificatiecode" path="lom/general/catalogentry/entry/langstring"/>

</group>

<element name="Titel" path="lom/general/title/langstring"/>

<element name="Taal" path="lom/general/language"/>

<element name="Omschrijving" path="lom/general/description/langstring"/>

<element name="Trefwoord" path="lom/general/keyword/langstring"/>

<element name="Dekking" path="lom/general/coverage/langstring"/>

<element name="Structuur" path="lom/general/structure/value/langstring"/>

<element name="Aggregatieniveau" path="lom/general/aggregationlevel/value/langstring"/>

</group>

In dit geval toont de editor de Nederlandse elementnamen, maar worden de ingevoerde waarden netjes in de Engelstalige elementen opgeslagen. De groepering en volgorde van de elementen in de editor kan naar wens aangepast worden, terwijl het resulterend bestand nog steeds aan de regels voldoet.

Klik hier voor een schermafdruk

Ook de waarden die in een attribuut mogen voorkomen kunnen redelijk eenvoudig worden beperkt:

<vocabList name="coverage">

<item>UK</item>

<item>England</item>

<item>Scotland</item>

<item>Wales</item>

<item>Northern Ireland</item>

<item>Other</item>

</vocabList>

is een voorbeeld van een lijst waarden die middels <element path="lom/general/coverage/langstring" list="coverage"/> aan het bijbehorend element gekoppeld wordt.

Bij de vocabularies zou het nog mooi zijn om binnen het item element een attribuut “display” of zo te hebben met de waarde die in de keuzelijst wordt getoond. Dat zou het namelijk mogelijk maken een vertaalde versie van een vast begrip te tonen en de originele versie op te slaan, of, de onprettige numerieke waarden bij aggrigationlevel op het beeldscherm te vervangen door duidelijke termen. Datzelfde is bijvoorbeeld bij “format” handig.

Wat ik nog niet weet is waarom er niet gekozen is voor een oplossing op basis van XML schema’s zoals bij de draft binding die voor de IEEE LOM gemaakt wordt. Dat wil ik nog gaan vragen aan de ontwikkelaars. Het lijkt me sowieso wel netjes om van de huidige XML-bestanden een schema of DTD aan te leveren die beschrijft wat de structuur van de bestanden is (al is het misschien ook wel weer een beetje overkill).

Je kunt eigenlijk het beste de editor downloaden en uitproberen. Hoewel er heel voorzichtig aangegeven wordt dat het een beta is, is hij heel stabiel en ben ik nog geen foutmelding tegen gekomen die niet netjes afgevangen werd. Natuurlijk, nog niet alle features zijn aanwezig, maar je kunt er al IMS metadatabestanden en contentpackages mee lezen en schrijven.

Andere interessante zaken die ik nog apart zal bespreken zijn onder andere: de discussie rond hoe om te gaan met afhankelijkheden tussen resources en die over de vraag hoe om te gaan met xml:base.

0 0 stemmen
Bericht waardering
2 Reacties
Inline Feedback
Bekijk alle reacties
Jerome Zijderveld, Three Ships
Jerome Zijderveld, Three Ships
20 jaren geleden

Hoi pierre,

ik heb geprobeerd Reload te installeren op een Windows 2000 en XP home maar helaas lukt het mij niet om de applicatie draaiend te krijgen. ik zal een mailtje naar de ontwikkelaars sturen want het ziet er veel belovend uit als applicatie

groet,

Jerome

Pierre
20 jaren geleden

Hoi Jerôme,

Zeker even doen. Ik draai hem overigens op XP Professional zonder problemen. Laat maar even weten of het lukt.
Groet,
Pierre