Edurep:Voorbeeld Implementatie Aanbieder: verschil tussen versies
(→Uitvoer naar Edurep: delete) |
k (bold) |
||
(7 tussenliggende versies door 2 gebruikers niet weergegeven) | |||
Regel 1: | Regel 1: | ||
+ | {{Talen}} |
||
+ | |||
In dit voorbeeld wordt een voorbeeld aanbieder beschreven, Uitgeverij Kubus, en hoe hun aansluiting op Edurep eruit zo moeten zien. |
In dit voorbeeld wordt een voorbeeld aanbieder beschreven, Uitgeverij Kubus, en hoe hun aansluiting op Edurep eruit zo moeten zien. |
||
Regel 10: | Regel 12: | ||
Allereerst moeten er blijkbaar identifiers worden ge-exporteerd. Navraag bij de mensen van techniek leert dat elk leermateriaal in de interne database een unieke identifier krijgt die niet meer wijzigt. Omdat deze identifier ook wordt gebruikt voor het ontsluiten via de website, zijn daarmee deze links ook geschikt als object identifiers (bijv. <nowiki>http://uitgeverijkubus.nl/materialen/?id=1</nowiki>). |
Allereerst moeten er blijkbaar identifiers worden ge-exporteerd. Navraag bij de mensen van techniek leert dat elk leermateriaal in de interne database een unieke identifier krijgt die niet meer wijzigt. Omdat deze identifier ook wordt gebruikt voor het ontsluiten via de website, zijn daarmee deze links ook geschikt als object identifiers (bijv. <nowiki>http://uitgeverijkubus.nl/materialen/?id=1</nowiki>). |
||
− | === Uitvoer naar NL-LOM === |
+ | === Uitvoer naar NL-LOM of schema.org === |
De volgende stap is het uitvoeren van de metadata in het NL-LOM formaat. Bij navraag blijkt dat de interne database de volgende gegevens bevat per veld: |
De volgende stap is het uitvoeren van de metadata in het NL-LOM formaat. Bij navraag blijkt dat de interne database de volgende gegevens bevat per veld: |
||
{| class="wikitable" |
{| class="wikitable" |
||
Regel 38: | Regel 40: | ||
− | De meeste van deze informatie blijkt gelukkig gemakkelijk te mappen naar een NL-LOM uitvoerformaat. Bijvoorbeeld leermateriaal 1: |
+ | De meeste van deze informatie blijkt gelukkig gemakkelijk te mappen naar een NL-LOM of schema.org uitvoerformaat. Bijvoorbeeld leermateriaal 1: |
+ | ==== [[Standaarden:NL_LOM|NL LOM]] ==== |
||
− | |||
<syntaxhighlight lang="xml"> |
<syntaxhighlight lang="xml"> |
||
<lom xsi:schemaLocation="http://www.imsglobal.org/xsd/imsmd_v1p2 http://www.imsglobal.org/xsd/imsmd_v1p2p4.xsd"> |
<lom xsi:schemaLocation="http://www.imsglobal.org/xsd/imsmd_v1p2 http://www.imsglobal.org/xsd/imsmd_v1p2p4.xsd"> |
||
Regel 49: | Regel 51: | ||
<catalog>URI</catalog> |
<catalog>URI</catalog> |
||
<entry> |
<entry> |
||
− | <langstring xml:lang="x-none">http://uitgeverijkubus.nl/materialen/?id=1</langstring> |
+ | <langstring xml:lang="x-none">http://www.uitgeverijkubus.nl/materialen/?id=1</langstring> |
</entry> |
</entry> |
||
</catalogentry> |
</catalogentry> |
||
Regel 78: | Regel 80: | ||
</lifecycle> |
</lifecycle> |
||
<technical> |
<technical> |
||
− | <location>http://uitgeverijkubus.nl/materialen/?id=1</location> |
+ | <location>http://www.uitgeverijkubus.nl/materialen/?id=1</location> |
</technical> |
</technical> |
||
</lom> |
</lom> |
||
+ | </syntaxhighlight> |
||
+ | |||
+ | ==== [[Standaarden:Schema.org|Schema.org]] ==== |
||
+ | <syntaxhighlight lang="json"> |
||
+ | { |
||
+ | "@context": { |
||
+ | "schema": "https://schema.org/" |
||
+ | }, |
||
+ | "schema:datePublished": "2013-12-09", |
||
+ | "schema:description": { |
||
+ | "@language": "nl", |
||
+ | "@value": "Les en toets voor optellen onder de 10" |
||
+ | }, |
||
+ | "schema:identifier": "http://www.uitgeverijkubus.nl/materialen/?id=1", |
||
+ | "schema:keywords": [ |
||
+ | { |
||
+ | "@language": "nl", |
||
+ | "@value": "optellen" |
||
+ | }, |
||
+ | { |
||
+ | "@language": "nl", |
||
+ | "@value": "rekenen" |
||
+ | } |
||
+ | ], |
||
+ | "schema:name": { |
||
+ | "@language": "nl", |
||
+ | "@value": "optellen onder de 10" |
||
+ | }, |
||
+ | "schema:url": "http://www.uitgeverijkubus.nl/materialen/?id=1" |
||
+ | } |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
Regel 93: | Regel 125: | ||
* soort lesmateriaal: De lessen bevatten open opdrachten en toetsen, dus "open opdracht" en "evaluatie- en toetsmateriaal". |
* soort lesmateriaal: De lessen bevatten open opdrachten en toetsen, dus "open opdracht" en "evaluatie- en toetsmateriaal". |
||
* context: De bedoelde sector is de basisschool, dus "PO". |
* context: De bedoelde sector is de basisschool, dus "PO". |
||
− | * leeftijdsgroep: Deze kan vrij breed worden ingevuld voor de doelgroep: |
+ | * leeftijdsgroep: Deze kan vrij breed worden ingevuld voor de doelgroep: 4-8 |
* eindgebruiker: Het leermateriaal is bedoeld voor studenten (ook al moet een leerkracht het kopen), dus "learner". |
* eindgebruiker: Het leermateriaal is bedoeld voor studenten (ook al moet een leerkracht het kopen), dus "learner". |
||
* formaat: Aangezien het leermateriaal op internetpagina's staat is het mimetype "text/html". |
* formaat: Aangezien het leermateriaal op internetpagina's staat is het mimetype "text/html". |
||
Regel 115: | Regel 147: | ||
|} |
|} |
||
− | Het uiteindelijke resultaat is te zien in het volgende [ |
+ | '''Het uiteindelijke resultaat is te zien in het volgende [https://raw.githubusercontent.com/kennisnet/edurep-files/master/example/nllom-kubus.xml NL-LOM] of [https://raw.githubusercontent.com/kennisnet/edurep-files/master/example/json-ld-kubus.txt schema.org] record.''' |
=== Uitvoer naar Edurep === |
=== Uitvoer naar Edurep === |
Huidige versie van 18 sep 2023 om 22:56
Nederlands | English |
In dit voorbeeld wordt een voorbeeld aanbieder beschreven, Uitgeverij Kubus, en hoe hun aansluiting op Edurep eruit zo moeten zien.
Inleiding
Uitgeverij Kubus heeft een aantal leermaterialen ontsloten via hun website. Een aantal webredacteuren houden deze informatie up-to-date via het interne content management systeem. Daarmee is de metadata van de leermaterialen opgeslagen in een database. Na een gesprek met het Edurep team heeft de uitgeverij besloten om hun metadata via Edurep te ontsluiten.
Stappenplan
De projectleidier heeft besloten het stappenplan van Edurep te volgen voor de aansluiting.
Identifiers
Allereerst moeten er blijkbaar identifiers worden ge-exporteerd. Navraag bij de mensen van techniek leert dat elk leermateriaal in de interne database een unieke identifier krijgt die niet meer wijzigt. Omdat deze identifier ook wordt gebruikt voor het ontsluiten via de website, zijn daarmee deze links ook geschikt als object identifiers (bijv. http://uitgeverijkubus.nl/materialen/?id=1).
Uitvoer naar NL-LOM of schema.org
De volgende stap is het uitvoeren van de metadata in het NL-LOM formaat. Bij navraag blijkt dat de interne database de volgende gegevens bevat per veld:
id | titel | omschrijving | trefwoorden | datum wijziging | vak |
---|---|---|---|---|---|
1 | optellen onder de 10 | Les en toets voor optellen onder de 10 | optellen, rekenen | 2013-12-09 | rekenen |
2 | bomen tekenen | Les basis boom tekenen. | boom, natuur, tekenen | 2013-11-08 | tekenen |
De meeste van deze informatie blijkt gelukkig gemakkelijk te mappen naar een NL-LOM of schema.org uitvoerformaat. Bijvoorbeeld leermateriaal 1:
NL LOM
<lom xsi:schemaLocation="http://www.imsglobal.org/xsd/imsmd_v1p2 http://www.imsglobal.org/xsd/imsmd_v1p2p4.xsd">
<general>
<title>
<langstring xml:lang="nl">optellen onder de 10</langstring>
</title>
<catalogentry>
<catalog>URI</catalog>
<entry>
<langstring xml:lang="x-none">http://www.uitgeverijkubus.nl/materialen/?id=1</langstring>
</entry>
</catalogentry>
<description>
<langstring xml:lang="nl">Les en toets voor optellen onder de 10</langstring>
</description>
<keyword>
<langstring xml:lang="nl">optellen</langstring>
</keyword>
<keyword>
<langstring xml:lang="nl">rekenen</langstring>
</keyword>
</general>
<lifecycle>
<contribute>
<role>
<source>
<langstring xml:lang="x-none">http://purl.edustandaard.nl/vdex_lifecycle_contribute_role_lomv1p0_20060628.xml</langstring>
</source>
<value>
<langstring xml:lang="x-none">publisher</langstring>
</value>
</role>
<date>
<datetime>2013-12-09</datetime>
</date>
</contribute>
</lifecycle>
<technical>
<location>http://www.uitgeverijkubus.nl/materialen/?id=1</location>
</technical>
</lom>
Schema.org
{
"@context": {
"schema": "https://schema.org/"
},
"schema:datePublished": "2013-12-09",
"schema:description": {
"@language": "nl",
"@value": "Les en toets voor optellen onder de 10"
},
"schema:identifier": "http://www.uitgeverijkubus.nl/materialen/?id=1",
"schema:keywords": [
{
"@language": "nl",
"@value": "optellen"
},
{
"@language": "nl",
"@value": "rekenen"
}
],
"schema:name": {
"@language": "nl",
"@value": "optellen onder de 10"
},
"schema:url": "http://www.uitgeverijkubus.nl/materialen/?id=1"
}
Statische velden
Echter, het blijkt dat er voor optimale vindbaarheid en zichtbaarheid wat meer informatie nodig is. Gelukkig blijkt daarbij ook dat de meeste informatie standaard ingevuld kan worden.
- aggregatieniveau: Aangezien al het uitgevoerde materiaal een les is, wordt dit "3".
- taal: Alles lessen zijn gemaakt in het Nederlands, dus "nl".
- kosten: Het materiaal is niet gratis, dus dit wordt "yes".
- rechten: Het materiaal is niet rechtenvrij dus dit wordt "yes".
- rechtenomschrijving: De rechten berusten bij de uitgever, dus iets als "Copyright Uitgeverij Kubus".
- uitgever: Ook bekend, "Uitgeverij Kubus".
- soort lesmateriaal: De lessen bevatten open opdrachten en toetsen, dus "open opdracht" en "evaluatie- en toetsmateriaal".
- context: De bedoelde sector is de basisschool, dus "PO".
- leeftijdsgroep: Deze kan vrij breed worden ingevuld voor de doelgroep: 4-8
- eindgebruiker: Het leermateriaal is bedoeld voor studenten (ook al moet een leerkracht het kopen), dus "learner".
- formaat: Aangezien het leermateriaal op internetpagina's staat is het mimetype "text/html".
Vakgebied
Tot slot moet ook het vakgebied worden ingevuld. In Edurep wordt het OnderwijsBegrippenKader gebruikt als coderingssysteem voor vakgebieden en leerniveaus. Dit betekent dat alle vakgebieden in de interne database gemapt moeten worden met de corresponderende waarde in het OBK. Wanneer de waarden worden opgezocht, resulteert dit in de volgende mappingstabel:
vak kubus | obk id | obk label |
---|---|---|
rekenen | b48fa351-4561-44c7-a071-ebfd6103eec3 | Rekenen |
tekenen | 5cb7f440-c370-4056-b30d-f57130cccede | Tekenen |
Het uiteindelijke resultaat is te zien in het volgende NL-LOM of schema.org record.
Uitvoer naar Edurep
De uitvoer van de NL-LOM records geschiedt door middel van OAI-PMH. Dit protocol synchroniseert alle nieuwe leermaterialen die in de database worden gezet met Edurep. Om dit effectief te kunnen doen is er voor elk materiaal een laatste wijzigingsdatum nodig en gelukkig is deze beschikbaar.
eerste keer
Om Edurep in eerste instantie te vullen stelt de Edurep harvester de volgende vraag op de oaiprovider van Uitgeverij Kubus:
http://www.uitgeverijkubus.nl/oaiprovider?verb=ListRecords&metadataPrefix=lom
Feitelijk worden hiermee alle records opgehaald in volgorde van laatste wijziging. Optimaal worden niet alle records tegelijk teruggegeven maar verdeeld over meerdere pagina's waarbij de aanbieder mag bepalen hoeveel records er pagina worden teruggegeven. Om serverload binnen de perken te houden, adviseert de technische afdeling bij de uitgever om 100 records tegelijk terug te geven. De sql query voor de eerste pagina ziet er dan ongeveer zo uit:
SELECT * FROM leermaterialen ORDER BY laatstewijziging DESC LIMIT 100;
In de eerste respons naar Edurep toe staat in de zogenaamde resumptionToken de referentie om de volgende 100 records op te halen. De Edurep harvest gebruikt deze referentie om de volgende 100 records op te halen als volgt:
http://www.uitgeverijkubus.nl/oaiprovider?verb=ListRecords&resumptionToken=100-lom
Dit zou op de uitgeversdatabase moeten vertalen naar query die er dan ongeveer zo uit ziet:
SELECT * FROM leermaterialen ORDER BY laatstewijziging DESC LIMIT 100, 200;
synchroniseren
Wanneer Edurep alle records heeft binnengehaald zal Edurep eenmaal per dag langskomen om de wijzigingen van de afgelopen dag op te halen. Op 2013-12-15 zou Edurep de records ophalen die gewijzigd zijn vanaf 2013-12-14:
http://www.uitgeverijkubus.nl/oaiprovider?verb=ListRecords&metadataPrefix=lom&from=2013-12-14
De database query neemt dit ook mee:
SELECT * FROM leermaterialen WHERE laatstewijziging > '2013-12-14' ORDER BY laatstewijziging DESC LIMIT 100;
verwijderde leermaterialen
Het kan ook voorkomen dat leermaterialen worden verwijderd van de website omdat bijvoorbeeld de inhoud verouderd is. Echter wanneer het leermateriaal uit de interne database wordt verwijderd, kan deze verwijdering niet meer worden doorgegeven aan Edurep. Om alsnog de verwijderingen door te kunnen geven kan het raadzaam zijn om een aparte oai-tabel bij te houden waar de oai identifier, laatste wijzigingsdatum en delete status bijgehouden worden. Het originele leermateriaal kan worden verwijderd, en vervolgens in de oaitabel de delete status op 1 worden gezet en de laatste wijzigingsdatum geupdate.