Persistent Identifier

MyCoRe bietet verschiedene Möglichkeiten an, Persistente Identifier zu generieren. Es ist möglich URNs oder Handle zu erzeugen. Für die Registrierung einer DOI wird aktuell ein Stylesheet angeboten, das aus MyCoRe-MODS-Objekten ein datacite-Format generiert, das dann entsprechend zur Registrierung genutzt werden kann.

Nutzung der URN-Vergabe

URN in der Anwendung

Um die URN-Vergabe für Dokumente und deren Derivate zu aktivieren, muss das folgende Property für die entsprechenden MyCoRe-Objekttypen definiert werden:

        MCR.URN.Enabled.Objects=mods
      

Soll für mehrere Objekttypen die URN-Vergabe ermöglicht werden, so müssen alle Typen durch Komma getrennt an dieser Stelle angegeben werden:

        MCR.URN.Enabled.Objects=document,file,certificate
      

In der Anwendung MIR ist die URN-Vergabe für MODS-Dokumente standardmäßig aktiviert. Werden Dateien angehangen, so kann über das Aktionen-Menü des jeweiligen Derivates eine URN für das Derivat erzeugt werden.

Das MCRAddURNToObjectServlet

In der Anwendung kann das MCRAddURNToObjectServlet genutzt werden, um je nach Anforderung die URN zu erzeugen. Dafür stehen die folgenden Optionen zur Verfügung:

URL-Parameter Werte Beschreibung
object ObjectID / DerivatID Pflichtangabe, übergibt die ID des Objektes bzw. Derivates, für das eine URN erzeugt werden soll; ohne weitere Parameter wird bei Angabe einer Objekt-ID eine URN in den Metadaten eingetragen, bei Angabe einer Derivat-ID bekommt das Derivat eine URN und alle enthaltenen Dateien bekommen eine darauf aufbauende URN-granular
target "file" oder "derivate" optional und nur in Kombination mit object=<DerivatID> möglich; "file" gibt an, dass die URN für eine einzelne Datei erzeugt werden soll; "derivate" gibt an, dass die URN nur für das Derivat erzeugt werden soll
file Pfad zur Datei innerhalb des Derivates, für die eine URN erzeugt werden soll optional und nur in Kombination mit object=<DerivatID> und target=file

Wird die URN in den Metadaten-Abschnitt generiert, so hat diese folgende Form:

        <def.identifier>
          <identifier type="urn">urn:foo:bar</identifier>
        </def.identifier>
      

Die Implementierung

Die URN-Funktionalität wird in der MyCoRe-Komponente mycore-urn bereitgestellt.

In der Basisimplementierung sorgt der MCRURNProvider für die Erzeugung der URN. Dieser generiert die URN nach einem in den Properties definierten Schema:

          MCR.URN.Provider.Class=org.mycore.urn.services.MCRURNProvider
        # CHANGE: Subnamespace for Campus MyCoRe
          MCR.URN.SubNamespace.Default.Prefix=urn:nbn:de:mcr:1-
          MCR.URN.SubNamespace.Default.NISSBuilder=org.mycore.urn.services.MCRNISSBuilderDateCounter
          MCR.URN.SubNamespace.Default.NISSPattern=yyyyMMdd-HHmmss-
          #MCR.URN.SubNamespace.Default.NISSBuilder=org.mycore.urn.services.MCRNISSBuilderUUID
      

Die gelisteten Properties zeigen die Standard-Konfiguration. Diese können (und sollten) entsprechend in den Properties der Anwendung angepasst werden. Die Komponente mycore-urn bringt zwei Möglichkeiten mit, eine URN zu generieren. Es kann eine UUID (MCRNISSBuilderUUID) erzeugt werden, oder anhand des Zeitpunktes, zu dem die URN erzeugt wird. Das genaue Muster dafür kann mittels des NISSPattern-Properties (MCRNISSBuilderDateCounter) definiert werden.

Reichen die Optionen über die Properties nicht aus und die URNs sollen mit einem anderen Aufbau generiert werden, so muss dafür eine eigene Klasse geschrieben werden, die das org.mycore.services.urn.IURNProvider-Interface implementiert oder einfacher gleich von org.mycore.services.urn.AbstractURNProvider abgeleitet wird. Die neue Klasse muss dann mit dem vollen Klassenpfad als Wert für das Property MCR.URN.Provider.Class gesetzt werden.

Die erzeugten URNs werden sowohl in der Datenbanktabelle MCRURN, als auch im Derivate bzw. Objekt selber abgelegt.

DOI-Registrierung über datacite

2016.06 Um DOIs aus der MyCoRe-Anwendung heraus zu prägen und bei DataCite über die REST-API zu registrieren stellt MyCoRe die Komponente mycore-pi mit einer entsprechenden Implementierung bereit. Diese basiert auf dem MyCoRe-MODS-Datenmodell. Mit der folgenden Konfiguration kann die DOI-Registrierung aktiviert werden:

  MCR.DOI.Prefix=10.5072
  MCR.DOI.HostingInstitution=MyCoRe Community
  MCR.DOI.NISSPattern=yyyyMMdd-HHmmss
  MCR.PI.Registration.Datacite=org.mycore.pi.doi.MCRDOIRegistrationService
  MCR.PI.Registration.Datacite.Inscriber=MODSDOI
  MCR.PI.Registration.Datacite.Generator=DateDOI
  MCR.PI.Registration.Datacite.RegisterBaseURL=http://intr2dok.vifa-recht.de
  MCR.PI.Registration.Datacite.Username=
  MCR.PI.Registration.Datacite.Password=
#  MCR.PI.Registration.Datacite.UseTestPrefix=true

  MCR.PI.Registration.Datacite.Transformer=datacite
  MCR.PI.Generator.UUIDDOI=org.mycore.pi.doi.MCRUUIDDOIGenerator
  MCR.PI.Generator.DateDOI=org.mycore.pi.doi.MCRCreateDateDOIGenerator
  MCR.PI.Inscriber.MODSDOI=org.mycore.mods.identifier.MCRMODSDOIPersistentIdentifierInscriber
  MCR.PI.Parsers.doi=org.mycore.pi.doi.MCRDOIParser
    

Nachdem die Anwendung entsprechend konfiguriert wurde, kann mittels des URL-Parameters XSL.Transformer=datacite das datacite-XML abgerufen werden. Sollte im MODS bereits eine DOI angegeben sein, wird diese angezeigt. Ist noch keine DOI erfasst, wird diese entsprechend der Konfiguration erstellt.

MIR-Aktionen-Menü mit aktivierter DOI-Registrierung

Abbildung 1: MIR-Aktionen-Menü einer Publikation

Die Anwendung MIR stellt diese Funktionalität bereit, wenn das entsprechende Property MIR.registerDOI=true gesetzt wird. Dann erscheint im Aktionen-Menü eines einzelnen Objektes ein weiterer Menüpunkt "DOI Registrieren".