Edurep:Metadata verwerking: verschil tussen versies

Uit Kennisnet Developers Documentatie
Ga naar: navigatie, zoeken
(XSLT)
(XSLT)
Regel 64: Regel 64:
 
| lom.educational.context
 
| lom.educational.context
 
| LOMv1.0, http://purl.edustandaard.nl/vdex_context_lomv1p0_20060628.xml, http://purl.edustandaard.nl/vdex_context_czp_20060628.xml
 
| LOMv1.0, http://purl.edustandaard.nl/vdex_context_lomv1p0_20060628.xml, http://purl.edustandaard.nl/vdex_context_czp_20060628.xml
  +
| [[Edurep:Validatie_lom.educational.context|Meer info]]
|
 
 
|-
 
|-
 
| lom.educational.typicallearningtime
 
| lom.educational.typicallearningtime

Versie van 26 mei 2014 om 10:38

Deze pagina tracht inzicht te geven in wat er met de metadata van aanbieders gebeurt in Edurep.

Validatie

Elk record wordt gevalideerd op conformiteit met de LOM xsd. Invalide records worden geweigerd in het harvestproces. Ook de OBK identifiers (termen) worden gevalideerd zodanig dat alleen geldige OBK identifiers in de records staan. Wordt er een niet bestaande Begrippenkader identifier gebruikt dan wordt het record geweigerd en gerapporteerd.

Voor de duidelijkheid, men geeft middels de taxon source aan dat 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>
    <langstring xml:lang="x-none">http://purl.edustandaard.nl/begrippenkader</langstring>
  </source>
  <taxon>
    <!-- uuid komt niet voor in OBK, record invalide -->
    <id>3a26037c-b635-4027-82b2-0941a4a5bc88</id>
  </taxon>
</taxonpath>


<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>

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.

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 en vica versa.

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.

XSLT

Een deel van de automatische wijzigingen op de metadata vinden plaats in de Edurep broncode, een ander deel (met name de collectie-specifieke wijzigingen) door middel van zogenaamde XSLT's. Ten behoeve van de transparantie zijn deze XSLT's van elke collectie te bekijken op GitHub.

De automatische wijzigingen hebben betrekking op veelgebruikte NL LOM vocabulaire velden. Over het algemeen worden alleen de waarden van bepaalde vocabulaires goedgekeurd. Indien een waarde in een veld herleidbaar is tot een van de geldige waarden (bijv. %20 fout, hoofdletter/kleine letter), wordt deze verbeterd tot een geldige waarde. Bij andere waarden wordt het veld uit het record verwijderd.

veld vocabulaires
lom.general.aggregationlevel LOMv1.0, http://purl.edustandaard.nl/vdex_aggregationlevel_lomv1p0_20060628.xml, http://purl.edustandaard.nl/vdex_aggregationlevel_czp_20060628.xml Meer info
lom.educational.learningresourcetype http://purl.edustandaard.nl/vdex_learningresourcetype_czp_20060628.xml Meer info
lom.educational.intendedenduserrole LOMv1.0, http://purl.edustandaard.nl/vdex_intendedenduserrole_lomv1p0_20060628.xml Meer info
lom.educational.context LOMv1.0, http://purl.edustandaard.nl/vdex_context_lomv1p0_20060628.xml, http://purl.edustandaard.nl/vdex_context_czp_20060628.xml Meer info
lom.educational.typicallearningtime Moet voldoen aan het string formaat zoals beschreven op https://wiki.surfnet.nl/display/nllom/duration
lom.rights.cost LOMv1.0, http://purl.edustandaard.nl/vdex_cost_lomv1p0_20060628.xml
lom.rights.copyrightandotherrestrictions LOMv1.0, http://purl.edustandaard.nl/vdex_copyrightsandotherrestrictions_lomv1p0_20060628.xml, http://purl.edustandaard.nl/copyrightsandotherrestrictions_nllom_20110411

OBK: aanvullen taxon entry

Het invullen van een taxonentry 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 taxonentries altijd in voor elk geldig OBK identifier in de taxon id 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>


Aangezien sommige aanduidingen voor OBK begrippen contextafhankelijk zijn, probeert Edurep ook de contextafhankelijke term toe te voegen indien dit mogelijk is. Dit gebeurt op basis van de inhoud van het educational context veld (5.6). Alleen wanneer er hier één waarde is ingevuld, kan betrouwbaar een contextspecifieke waarde worden gekozen. In alle andere gevallen wordt de contextonafhankelijke aanduiding gebruikt.

Voorbeeld input:

<educational>
    <context>
        <source>
            <langstring xml:lang=”x-none”>http://purl.edustandaard.nl/vdex_context_czp_20060628.xml</langstring>
        </source>
        <value>
            <langstring xml:lang=”x-none”>PO</langstring>
        </value>
    </context>
</educational>
<classification>
    <purpose>
        <source>
            <langstring xml:lang=”x-none”>LOMv1.0</langstring>
        </source>
        <value>
            <langstring xml:lang=”x-none”>discipline</langstring>
        </value>
    </purpose>
<taxonpath>
      <source>
    <langstring xml:lang="x-none">http://purl.edustandaard.nl/begrippenkader</langstring>
      </source>
  <taxon>
    <id>3401cf6e-82e4-404c-b216-b980ff407159</id>
    <entry>
        <langstring xml:lang=”nl”>Nederlands</langstring>
    </entry>
 </taxon>
</taxonpath>
</classification>

Resultaat:

<educational>
    <context>
        <source>
            <langstring xml:lang=”x-none”>http://purl.edustandaard.nl/vdex_context_czp_20060628.xml</langstring>
        </source>
        <value>
            <langstring xml:lang=”x-none”>PO</langstring>
        </value>
    </context>
</educational>
<classification>
    <purpose>
        <source>
            <langstring xml:lang=”x-none”>LOMv1.0</langstring>
        </source>
        <value>
            <langstring xml:lang=”x-none”>discipline</langstring>
        </value>
    </purpose>
<taxonpath>
      <source>
    <langstring xml:lang="x-none">http://purl.edustandaard.nl/begrippenkader</langstring>
      </source>
  <taxon>
    <id>3401cf6e-82e4-404c-b216-b980ff407159</id>
    <!-- De PO specifieke aanduiding voor Nederlands is Nederlandse Taal -->
    <entry>
        <langstring xml:lang=”nl”>Nederlandse Taal</langstring>
    </entry>
 </taxon>
</taxonpath>
</classification>

OBK: vak taxon hiërarchie

Het zou kunnen voorkomen dat een aanbieder alleen op het diepste vakniveau heeft gemetadateerd en niet de bovenliggende vakinhouden. Ondanks dat deze aanlevering niet conform de afspraak is tracht Edurep toch op basis van het OBK de bovenliggende vakinhouden dan aan te vullen wanneer deze eenduidig zijn vast te stellen.

Wanneer een begrip slechts één parent heeft in het OBK, dan kan deze ook geautomatiseerd in de metadata worden toegevoegd. Mochten er meerdere parents zijn dan stopt het aanvullen.

Voorbeeld input:

<taxonpath>
    <source>
        <langstring xml:lang="x-none">http://purl.edustandaard.nl/begrippenkader</langstring>
    </source>
    <taxon>
        <id>80463ecd-26a1-43ad-9aa9-7506bba383c0</id>
        <entry>
            <langstring xml:lang="nl">Tellen</langstring>
        </entry>
    </taxon>
</taxonpath>

Resultaat:

<taxonpath>
    <source>
        <langstring xml:lang="x-none">http://purl.edustandaard.nl/begrippenkader</langstring>
    </source>
    <!-- Eenduidige parent wordt aangevuld. Wordt niet aangevuld tot Wiskunde omdat Getallen en variabelen meerdere parents heeft in het OBK. -->
    <taxon>
        <id>dced6368-c076-4d51-8d83-53e9a87bef40</id>
        <entry>
            <langstring xml:lang="nl">Getallen en variabelen</langstring>
        </entry>
    </taxon>
    <taxon>
        <id>80463ecd-26a1-43ad-9aa9-7506bba383c0</id>
        <entry>
            <langstring xml:lang="nl">Tellen</langstring>
        </entry>
    </taxon>
</taxonpath>

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.

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.