Edurep:Metadata verwerking: verschil tussen versies
(restructure and some edits) |
(→Mapping "oude stijl" VDEX waarden naar OBK waarden en vice versa: remove toOld mapping) |
||
Regel 106: | Regel 106: | ||
De doorlooptijd van het verwerken van metadata in Edurep is de tijd tussen het inschieten SMO's of het ophalen van LOM bij de aanbieder en de beschikbaarheid in Edurep Search. Deze doorlooptijd is near-realtime en in de praktijk nauwelijks merkbaar. De primaire doelstelling van Edurep is de beschikbaarheid van het zoeken naar LOM/SMO's en het inschieten van SMO's. De doorlooptijd zal zoveel mogelijk worden geminimaliseerd. |
De doorlooptijd van het verwerken van metadata in Edurep is de tijd tussen het inschieten SMO's of het ophalen van LOM bij de aanbieder en de beschikbaarheid in Edurep Search. Deze doorlooptijd is near-realtime en in de praktijk nauwelijks merkbaar. De primaire doelstelling van Edurep is de beschikbaarheid van het zoeken naar LOM/SMO's en het inschieten van SMO's. De doorlooptijd zal zoveel mogelijk worden geminimaliseerd. |
||
− | == Mapping "oude stijl" VDEX waarden naar OBK waarden |
+ | == Mapping "oude stijl" VDEX waarden naar OBK waarden == |
{{Warn|Dit mechanisme zal in 2020 langzaam uitgefaseerd worden.}} |
{{Warn|Dit mechanisme zal in 2020 langzaam uitgefaseerd worden.}} |
||
Repositories gebruiken voor het metadateren |
Repositories gebruiken voor het metadateren |
||
Regel 125: | Regel 125: | ||
</syntaxhighlight> |
</syntaxhighlight> |
||
− | Ten behoeve van de optimale vindbaarheid van records tijdens de migratie naar het Begrippenkader, worden termen van "oude" vocabulaires gemapt naar termen uit het Begrippenkader |
+ | Ten behoeve van de optimale vindbaarheid van records tijdens de migratie naar het Begrippenkader, worden termen van "oude" vocabulaires gemapt naar termen uit het Begrippenkader. |
− | |||
− | De terugmapping (van Begrippenkader termen naar "oude" vocabulairetermen) vindt plaats naar de nieuwste vocabulaires die voor een bepaald type beschikbaar waren. Bijvoorbeeld, de Begrippenkader "havo_3" wordt alleen teruggemapt naar ''vdex_classification_educationallevel_czp_20071115.xml'' en niet naar ''vdex_classification_educationallevel_czp_20060628.xml'' terwijl deze andersom wel wordt gemapt. Ook worden automatisch aangevulde OBK begrippen niet teruggemapt. |
||
Dit mapping mechanisme is gebaseerd op de mappings zoals die door Edustandaard gemaakt zijn, [http://developers.wiki.kennisnet.nl/index.php?title=OBK:Mappen_naar_het_OBK '''een uitgebreide beschrijving is hier'''] te vinden. |
Dit mapping mechanisme is gebaseerd op de mappings zoals die door Edustandaard gemaakt zijn, [http://developers.wiki.kennisnet.nl/index.php?title=OBK:Mappen_naar_het_OBK '''een uitgebreide beschrijving is hier'''] te vinden. |
||
Regel 148: | Regel 146: | ||
<czp:taxonpath> |
<czp:taxonpath> |
||
<czp:source> |
<czp:source> |
||
− | <czp:langstring xml:lang="x-none">http://purl.edustandaard.nl/ |
+ | <czp:langstring xml:lang="x-none">http://purl.edustandaard.nl/vdex_classification_opleidingsdomeinen_en_studierichtingen_mbo_2010.xml</czp:langstring> |
</czp:source> |
</czp:source> |
||
<czp:taxon> |
<czp:taxon> |
||
− | <czp:id> |
+ | <czp:id>16</czp:id> |
<czp:entry> |
<czp:entry> |
||
<czp:langstring xml:lang="nl">Voedsel, natuur en leefomgeving</czp:langstring> |
<czp:langstring xml:lang="nl">Voedsel, natuur en leefomgeving</czp:langstring> |
||
Regel 165: | Regel 163: | ||
<czp:purpose> |
<czp:purpose> |
||
<czp:source> |
<czp:source> |
||
− | <czp:langstring xml:lang="x-none">http:// |
+ | <czp:langstring xml:lang="x-none">http://purl.edustandaard.nl/vdex_classification_purpose_czp_20060628.xml</czp:langstring> |
</czp:source> |
</czp:source> |
||
<czp:value> |
<czp:value> |
||
Regel 173: | Regel 171: | ||
<czp:taxonpath> |
<czp:taxonpath> |
||
<czp:source> |
<czp:source> |
||
− | <czp:langstring xml:lang="x-none">http://purl.edustandaard.nl/ |
+ | <czp:langstring xml:lang="x-none">http://purl.edustandaard.nl/vdex_classification_opleidingsdomeinen_en_studierichtingen_mbo_2010.xml</czp:langstring> |
</czp:source> |
</czp:source> |
||
<czp:taxon> |
<czp:taxon> |
||
− | <czp:id> |
+ | <czp:id>16</czp:id> |
<czp:entry> |
<czp:entry> |
||
<czp:langstring xml:lang="nl">Voedsel, natuur en leefomgeving</czp:langstring> |
<czp:langstring xml:lang="nl">Voedsel, natuur en leefomgeving</czp:langstring> |
||
Regel 186: | Regel 184: | ||
<czp:purpose> |
<czp:purpose> |
||
<czp:source> |
<czp:source> |
||
− | <czp:langstring xml:lang="x-none">http:// |
+ | <czp:langstring xml:lang="x-none">http://download.edustandaard.nl/vdex/vdex_classification_purpose_czp_20060628.xml</czp:langstring> |
</czp:source> |
</czp:source> |
||
<czp:value> |
<czp:value> |
||
Regel 194: | Regel 192: | ||
<czp:taxonpath> |
<czp:taxonpath> |
||
<czp:source> |
<czp:source> |
||
− | <czp:langstring xml:lang="x-none">http://purl.edustandaard.nl/ |
+ | <czp:langstring xml:lang="x-none">http://purl.edustandaard.nl/begrippenkader</czp:langstring> |
</czp:source> |
</czp:source> |
||
<czp:taxon> |
<czp:taxon> |
||
− | <czp:id> |
+ | <czp:id>5e86dc82-1981-48df-bbe5-abd4a9b3767b</czp:id> |
<czp:entry> |
<czp:entry> |
||
<czp:langstring xml:lang="nl">Voedsel, natuur en leefomgeving</czp:langstring> |
<czp:langstring xml:lang="nl">Voedsel, natuur en leefomgeving</czp:langstring> |
Versie van 19 dec 2019 07:49
Edurep harvest diverse repositories via het OAI-PMH protocol. Vervolgens kunnen eindgebruikers via een zoekportaal (zoals https://zoeken.wikiwijs.nl/) zoeken in het materiaal dat Edurep op deze wijze heeft verzameld.
Om de eindgebruiker zo goed mogelijk een antwoord te geven op zijn of haar zoekvraag is het belangrijk dat de regels voor het gebruik van metadata consistent worden toegepast. Edurep voert een aantal validaties en bewerkingen uit op de metadata om de kwaliteit en uniformiteit waar mogelijk te verhogen.
Deze pagina tracht inzicht te geven in wat er met de metadata van aanbieders gebeurt in Edurep.
Inhoudelijk validatie van velden
- Elk record wordt gevalideerd op conformiteit met de LOM XML schema. Invalide records worden geweigerd in het harvestproces.
- Door middel van een XSLT wordt de inhoud van een aantal LOM velden gevalideerd. Dit zijn velden waar een VDEX aan gekoppeld is en waarvan dus bekend is welke waarden hierin mogen staan. Tijdens deze validatie wordt geprobeerd om veel voorkomende fouten te corrigeren. Als dit niet mogelijk is dan wordt er een error gegenereerd en het record geweigerd. Een voorbeeld van zo'n error is:
<edurep:error xmlns:edurep="http://meresco.org/namespace/users/kennisnet/edurep">Element 'aggregationlevel' deleted due to the use of the invalid value: 'null'.</edurep:error>
Deze foutmeldingen zijn in de kolom #Validation Errors
terug te vinden op Harvester Status pagina. Daar kan per collectie ook een RSS feed gevolgd worden. Zie de Aanbieder Status pagina voor meer informatie.
De volgende velden worden gevalideerd (klik op een veld om de toegepaste business rules te bekijken):
lom.general.aggregationlevel
lom.educational.learningresourcetype
lom.educational.intendedenduserrole
lom.educational.context
lom.educational.typicallearningtime
(moet voldoen aan het string formaat zoals beschreven op https://wiki.surfnet.nl/display/nllom/duration)lom.rights.cost
lom.rights.copyrightandotherrestrictions
Automatische wijzigingen
Omwille van de kwaliteit van de metadata vult Edurep een aantal velden van de metadata indien deze niet zijn ingevuld door de aanbieder. Het gaat om:
- kosten: Edurep vult cost=yes in wanneer het /lom/rights/cost niet aanwezig is.
- uitgever: Edurep vult de repository_id in als publisher wanneer de aanbieder geen publisher meegeeft.
OBK: aanvullen/corrigeren taxon entry
Het invullen van een taxon entry is niet verplicht volgens NL-LOM, maar wel praktisch voor zoekportalen om vakgebieden ed. af te beelden bij zoekresultaten zonder daar een eigen lookup-service voor in te richten. Edurep vult daarom de taxon entries altijd in voor elke geldige purl.edustandaard.nl classificatie taxon id vanuit binnen de purpose types:
- discipline,
- educational level en
- educational objective.
Let wel, elke bestaande entry wordt ook overschreven.
Voorbeeld input:
<taxonpath>
<source>
<langstring xml:lang="x-none">http://purl.edustandaard.nl/begrippenkader</langstring>
</source>
<taxon>
<!-- OBK-id voor Voortgezet Onderwijs -->
<id>2a1401e9-c223-493b-9b86-78f6993b1a8d</id>
</taxon>
<taxon>
<id>512e4729-03a4-43a2-95ba-758071d1b725</id>
<entry>
<langstring xml:lang=”nl”>PO</langstring>
</entry>
</taxon>
</taxonpath>
Resultaat:
<taxonpath>
<source>
<langstring xml:lang="x-none">http://purl.edustandaard.nl/begrippenkader</langstring>
</source>
<taxon>
<id>2a1401e9-c223-493b-9b86-78f6993b1a8d</id>
<!-- De entry is automatisch aangevuld -->
<entry>
<langstring xml:lang=”nl”>Voortgezet Onderwijs</langstring>
</entry>
</taxon>
<taxon>
<id>512e4729-03a4-43a2-95ba-758071d1b725</id>
<!-- De entry is automatisch overschreven -->
<entry>
<langstring xml:lang=”nl”>Primair Onderwijs</langstring>
</entry>
</taxon>
</taxonpath>
![]() |
Indien een taxon geen id bevat, maar alleen een entry, wordt de taxon uit het record gehaald omdat de validiteit van de entry niet kan worden bepaald. |
vCard
Een VCARD in een centity wordt door Edurep gescand om te kunnen zoeken op "author" of "publisher". De geïndexeerde waarden zijn vervolgens ook beschikbaar in het "extra" x-recordSchema. Van de mogelijke variabelen in een vCard worden N, FN en ORG gebruikt als mogelijke waarden. Het eerste veld in een vCard wat voldoet aan deze variabelen wordt gebruikt. Een vCard moet voldoen aan versie 3.0. Hierbij zijn de FN, N en VERSION verplicht en niet leeg.
Deadlink Checker
De Deadlink Checker controleert of een LOM record een geldige en werkende URL bevat in het veld lom.technical.location. Een record kan één van de volgende statussen krijgen:
- OK: Het resultaat van de URL in lom.technical.location is een 2.x.x of 3.x.x HTTP status code
- NTL: Het LOM record bevat geen lom.technical.location (No Technical Location)
- FAILED: Het resultaat van de URL in lom.technical.location is een 4.x.x of een 5.x.x HTTP status code.
Het resultaat van deze check is dat records met status FAILED niet in het antwoord op een zoekvraag worden teruggegeven.
De Deadlink Checker verstuurt de URL in de eerste waarde uit het veld lom.technical.location als een request. Op dit request zit een timeout van 5 minuten. Als de server binnen die tijd het request niet volledig beantwoord heeft wordt deze gemarkeerd als “FAILED”. Dit gebeurt dus ook als de data niet binnen 5 minuten gedownload kan worden. De status "FAILED" kan dus de volgende oorzaken hebben:
- De URL komt uit op een 2.x.x of 3.x.x
- De URL is niet conform de correcte notatie (niet urlencoded).
- De server is niet bereikbaar
- De data van het leerobject kan niet binnen 5 minuten worden gedownload, bijv. in geval van een film-bestand.
Ongeveer één keer in de week worden alle records met de status “OK” gecontroleerd. De records met de status “FAILED” worden elke dag gecontroleerd. Als de status gewijzigd is dan wordt dit in Edurep verwerkt.
NB: Het kan toch nog voorkomen dat sommige leerobjecten niet als een dead link worden aangemerkt doordat de URL uitkomt op een "landingspagina" die zich meldt als een OK ipv FAILED. Deze situaties zijn lastig te herkennen.
SMO Tag Volgorde
Na het inschieten van een SMO kan de volgorde van tags verschillen met de volgorde van de tags in het origineel. Wanneer bijvoorbeeld de tags "Eerste Wereldwereldoorlog" eerst bestonden kan dat na een indexering "Wereldoorlog Eerste" zijn. In een zoekapplicatie zou men bij het zoeken naar tags niet een exacte volgorde van tags moeten implementeren maar één waarbij een OR of AND operator wordt toegepast.
Doorlooptijd
De doorlooptijd van het verwerken van metadata in Edurep is de tijd tussen het inschieten SMO's of het ophalen van LOM bij de aanbieder en de beschikbaarheid in Edurep Search. Deze doorlooptijd is near-realtime en in de praktijk nauwelijks merkbaar. De primaire doelstelling van Edurep is de beschikbaarheid van het zoeken naar LOM/SMO's en het inschieten van SMO's. De doorlooptijd zal zoveel mogelijk worden geminimaliseerd.
Mapping "oude stijl" VDEX waarden naar OBK waarden
![]() |
Dit mechanisme zal in 2020 langzaam uitgefaseerd worden. |
Repositories gebruiken voor het metadateren
- zowel "oude stijl" VDEX'en (bijvoorbeeld vdex_classification_kerndoelen_onderbouw_vo_20071115.xml )
- als termen uit het Begrippenkader.
Voor de duidelijkheid, men geeft middels de taxon source aan of er wordt gerefereerd naar het OBK. De correcte referentie hierbij is "http://purl.edustandaard.nl/begrippenkader". Zie de Standaarden uitleg voor meer informatie.
<taxonpath>
<source>
<!-- geen OBK verwijzing, dus elk id mag -->
<langstring xml:lang="x-none">http://purl.edustandaard.nl/mijn_begrippenkader</langstring>
</source>
<taxon>
<id>3a26037c-b635-4027-82b2-0941a4a5bc88</id>
</taxon>
</taxonpath>
Ten behoeve van de optimale vindbaarheid van records tijdens de migratie naar het Begrippenkader, worden termen van "oude" vocabulaires gemapt naar termen uit het Begrippenkader.
Dit mapping mechanisme is gebaseerd op de mappings zoals die door Edustandaard gemaakt zijn, een uitgebreide beschrijving is hier te vinden.
Het mapping mechanisme is per collectie ingesteld, een overzicht hiervan is hier te vinden.
Op basis van deze mappings zijn XSLT's gemaakt, deze XSTL's zijn publiekelijk beschikbaar op https://github.com/kennisnet/edurep-xslt.
Bij de mapping worden alleen termen toegevoegd en niet vervangen. Bijvoorbeeld, indien een record deze metadata bevat:
<czp:classification>
<czp:purpose>
<czp:source>
<czp:langstring xml:lang="x-none">http://download.edustandaard.nl/vdex/vdex_classification_purpose_czp_20060628.xml</czp:langstring>
</czp:source>
<czp:value>
<czp:langstring xml:lang="x-none">discipline</czp:langstring>
</czp:value>
</czp:purpose>
<czp:taxonpath>
<czp:source>
<czp:langstring xml:lang="x-none">http://purl.edustandaard.nl/vdex_classification_opleidingsdomeinen_en_studierichtingen_mbo_2010.xml</czp:langstring>
</czp:source>
<czp:taxon>
<czp:id>16</czp:id>
<czp:entry>
<czp:langstring xml:lang="nl">Voedsel, natuur en leefomgeving</czp:langstring>
</czp:entry>
</czp:taxon>
</czp:taxonpath>
</czp:classification>
Dan wordt dat als volgt gemapt:
<czp:classification>
<czp:purpose>
<czp:source>
<czp:langstring xml:lang="x-none">http://purl.edustandaard.nl/vdex_classification_purpose_czp_20060628.xml</czp:langstring>
</czp:source>
<czp:value>
<czp:langstring xml:lang="x-none">discipline</czp:langstring>
</czp:value>
</czp:purpose>
<czp:taxonpath>
<czp:source>
<czp:langstring xml:lang="x-none">http://purl.edustandaard.nl/vdex_classification_opleidingsdomeinen_en_studierichtingen_mbo_2010.xml</czp:langstring>
</czp:source>
<czp:taxon>
<czp:id>16</czp:id>
<czp:entry>
<czp:langstring xml:lang="nl">Voedsel, natuur en leefomgeving</czp:langstring>
</czp:entry>
</czp:taxon>
</czp:taxonpath>
</czp:classification>
<czp:classification>
<czp:purpose>
<czp:source>
<czp:langstring xml:lang="x-none">http://download.edustandaard.nl/vdex/vdex_classification_purpose_czp_20060628.xml</czp:langstring>
</czp:source>
<czp:value>
<czp:langstring xml:lang="x-none">discipline</czp:langstring>
</czp:value>
</czp:purpose>
<czp:taxonpath>
<czp:source>
<czp:langstring xml:lang="x-none">http://purl.edustandaard.nl/begrippenkader</czp:langstring>
</czp:source>
<czp:taxon>
<czp:id>5e86dc82-1981-48df-bbe5-abd4a9b3767b</czp:id>
<czp:entry>
<czp:langstring xml:lang="nl">Voedsel, natuur en leefomgeving</czp:langstring>
</czp:entry>
</czp:taxon>
</czp:taxonpath>
</czp:classification>