Edurep:Identifiers

Uit Kennisnet Developers Documentatie
Versie door Muskee01 (overleg | bijdragen) op 22 okt 2021 om 06:58 (move collectie zoekspul naar hier)
Ga naar: navigatie, zoeken

Edurep-symbol.png Edurep: Identifiers

Info.gif Vanwege de aankomende release zijn we bezig het voorbereiden van de wiki. Met name de informatie rondom schema.org en de jsonsearch is nog niet bruikbaar op productie.


Identifiers kunnen worden gebruikt om entiteiten uniek te identificeren. In de Edurep context zijn dit de volgende entiteiten in de volgende velden. Er zal in dit artikel stilgestaan worden bij het gebruik van object identifiers:

  • leerobjecten: /lom/general/catalogentry
  • sociale metadata: /smo/smoId

en metadata identifiers:

  • leerobject metadata: /lom/metametadata/catalogentry
  • leerobject metadata: /searchRetrieveResponse/records/record/recordIdentifier

Naast identificatie worden de identifiers ook gebruikt voor de persistente koppeling van verschillende informatie entiteiten.

Object Identifier

De object identifier wordt gebruikt om het leermiddel uniek te identificeren.

  • niet te verwarren met de record identifier
  • de object identifier is niet bedoeld om de url naar het leermiddel te metadateren:
    • de url naar het leermiddel mag wel aanvullend gebruikt worden als object identifier, let wel, de volgorde van url parameters is niet bepalend voor de functionaliteit van een url, maar wel voor gebruik als object identifier
    • in tegenstelling tot de url, wordt de object identifier niet gewijzigd als de fysieke locatie van het leerobject verandert

De object identifier wordt ook gebruikt om koppelingen tussen entiteiten in Edurep te maken, met name tussen een metadatarecord van een leermiddel en een record met sociale metadata.

Zo'n metadata koppeling kan alleen gemaakt worden met een URI. Als definitie van een URI wordt RFC 2396 gehanteerd. Aangezien een object identifier meerdere keren mag voorkomen, mag een URI definitie naast andere definities voorkomen. Er kan bijvoorbeeld gekozen worden voor een formele URN naamgeving wanneer deze beschikbaar is.

NL LOM

Bullet book.png Specificatie Nl.gif (leidend)
<!-- De urn notatie van een ISBN heeft de voorkeur vanwege de koppelmogelijkheden. -->
<lom>
  <general>
    <catalogentry> 
      <catalog>URI</catalog>
      <entry> 
        <langstring xml:lang="x-none">urn:isbn:0-395-36341-1<langstring>
      <entry>
    </catalogentry> 
    <catalogentry> 
      <catalog>ISBN</catalog>
      <entry> 
        <langstring xml:lang="x-none">0-395-36341-1<langstring>
      <entry>
    </catalogentry> 
  </general>
</lom>

Wanneer er geen formeel URN schema is, kan ook een eigen schema worden gebruikt in de URI. Het eigengemaakte schema mag dan niet 1 van de bekende URI schema's zijn.

<lom>
  <general>
    <catalogentry> 
      <catalog>URI</catalog>
      <entry> 
        <langstring xml:lang="x-none">lesidee:138<langstring>
      <entry>
    </catalogentry> 
    <catalogentry> 
      <catalog>LESIDEE.NL</catalog>
      <entry> 
        <langstring xml:lang="x-none">138<langstring>
      <entry>
    </catalogentry>
  </general>
</lom>

Schema.org

Bullet book.png Specificatie (identifier) En.gif (leidend)

In schema.org worden record identifiers in het schema:identifier veld gezet. Verder zijn er afhankelijk van het soort entiteit voor een aantal specifieke identifier velden beschikbaar, bijvoorbeeld:

{
  "@context": {
    "schema": "https://schema.org/"
  },
  "schema:identifier": [
    "http://example.org/resource/1",
    "urn:isbn:978-1-56619-909-4"
  ],
  "schema:isbn": "978-1-56619-909-4"

}

Record Identifier

De record identifier wordt gebruikt om in Edurep een metadata record te identificeren.

We onderscheiden een aantal record identifiers in Edurep:

  • recordId: de identifier waarmee het record in Edurep is gezet door de aanbieder (meestal het OAI-PMH record identifier) (niet gegarandeerd uniek binnen Edurep)
  • uploadId: de recordId geprefixed met de identifier van de repository (waarmee deze uniek is binnen Edurep)
  • jsonldId: de upload identifier die gebruikt kan worden in de @id van een schema.org record (voor LOM collecties geprefixed met "jsonld-from-lom"
  • smoId: de record identifier van een SMO

Response

De identifiers kunnen op verschillende plekken in de response gevonden worden.

soort record identifier waar vinden interface
recordId about recordSchema SRU
recordId meta recordSchema SRU
uploadId about recordSchema SRU
uploadId meta recordSchema SRU
uploadId recordIdentifier in SRU response SRU
jsonldId about recordSchema SRU
jsonldId @id attribuut in jsonld recordSchema's SRU/Jsonsearch
smoId recordIdentifier in SRU response SMO SRU
smoId smoId veld in smo recordSchema SMO SRU
smoId schema:itemReviewed veld in jsonld recordSchema van Review SRU/Jsonsearch

Zoeken

Als zoekveld binnen query.

soort record identifier zoekveld
uploadId about.identifier
uploadId meta.upload.id
recordId about.record.identifier
recordId meta.record.id
jsonldId about.jsonldIdentifier
jsonldId @id
smoId about.record.identifier
smoId smo.smoId
smoId schema:itemReviewed

Collectie Identifier

De collectie identifier is de identifier een aangesloten repository binnen Edurep bekend is. Deze identifier is te vinden als prefix in de upload identifier, maar ook los in het about recordSchema. Een overzicht van alle collecties is te vinden via een Drilldown|drilldown of middels ons collectie overzicht.

Omdat de collectie identifier alleen een technische (en geen inhoudelijke) waarde heeft, adviseren we niet om te zoeken met dit veld. Mocht er toch de behoefte zijn dan zijn er twee mogelijkheden: een whitelist of een blacklist. Met een whitelist wordt per zoekopdracht expliciet aangegeven in welke collecties moet worden gezocht. Met een blacklist wordt expliciet aangegeven in welke collecties niet moet worden gezocht.

Wanneer de meerderheid van de beschikbare collecties op de whitelist staat, wordt de zoekopdracht onnodig lang, en zal het de snelheid van de zoekopdracht vertragen. In dat geval is het gebruik van een blacklist beter. Een ander voordeel van een blacklist is dat er automatisch in nieuwe collecties gezocht zonder dat deze expliciet moeten worden inbegrepen in de whitelist. Onderstaand een voorbeeld van een blacklist zoekopdracht.

/edurep/sruns: query=fiets NOT (about.repository exact anno OR about.repository exact nationaalarchief)

Koppeling

De relatie tussen leerobjecten en sociale (en prijs) metadata wordt vastgelegd middels een identifier. De koppeling wordt in Edurep gerealiseerd door een match te maken tussen de leerobject-identifier en de gerelateerde identifier in een SMO of CPI. Zo'n koppeling kan alleen gemaakt worden met URI's.

Gegeven een leerobject met het volgende catalogentry als leerobjectidentifier:

<general> 
  ...
  <catalogentry> 
    <catalog>URI</catalog>
    <entry> 
      <langstring xml:lang="x-none">urn:uuid:554fa894-bb2e-4531-aa62-c1341edd32d3<langstring>
    <entry>
  </catalogentry> 
  ...
</general>

Een SMO wordt gekoppeld aan dit leerobject indien in de /smo/hReview/info dezelfde URI is ingevuld:

<hReview> 
  ...
  <info>urn:uuid:554fa894-bb2e-4531-aa62-c1341edd32d3</info>
  ...
</hReview>

Een CPI wordt gekoppeld aan dit leerobject indien in de /contentPrijsInfo/contentIdentifier dezelfde URI is ingevuld:

<contentPrijsInfo> 
  ...
  <contentIdentifier>urn:uuid:554fa894-bb2e-4531-aa62-c1341edd32d3</contentIdentifier>
  ...
</contentPrijsInfo>