MyCoRe bietet verschiedene Möglichkeiten an, Persistente Identifier zu generieren. Es ist möglich DOISs, URNs oder PURLs zu erzeugen. Für die Registrierung einer DOI wird aktuell ein XSL-Stylesheet angeboten, das aus MyCoRe-MODS-Objekten ein XML im Datacite-Format generiert, das dann entsprechend zur Registrierung genutzt werden kann.
Um DOIs aus der MyCoRe-Anwendung heraus zu prägen und beispielsweise bei DataCite über die REST-API
zu registrieren stellt MyCoRe in der Komponente mycore-pi
eine entsprechende Implementierung
bereit. Mit der folgenden Konfiguration kann die DOI-Registrierung bei Datacite aktiviert werden. Diese
Beispielkonfiguration geht von MyCoRe-MODS als Datenmodell aus. Für ein anderes Datenmodell müsste entsprechend
ein eigener Transformer und MetadataManager implementiert werden.
|
|
Nachdem die Anwendung entsprechend konfiguriert wurde, kann über /receive
mittels des URL-Parameters
XSL.Transformer=datacite
das datacite-XML angezeigt werden. Sollte im MODS
bereits eine DOI angegeben sein, wird diese angezeigt.
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".
Über das Property .CreationPredicate
kann eine Bedingung festgelegt werden. Wenn diese Bedingung
erfüllt ist, wird ein Persistent Identifier erstellt und registriert.
Falls es nötig ist, zunächst ein PI zu reservieren, aber noch nicht zu registrieren kann man das Property
.RegistrationPredicate
setzen, welches eine Bedingung definiert, die für die Registrierung erfüllt sein
muss. Die Bedingung muss auch erfüllt sein, wenn die der PI nicht automatisch erstellt wurde!
Beispiel:
|
|
Wenn ein Objekt erzeugt wird und im Zustand new ist, dann wird ein PI angelegt (MCRPIStatePredicate = new).
Anschließend wird die PI nichtregistriert, da die Bedingung für das Registrieren nicht erfüllt ist (MCRPIStatePredicate != published).
Stellt ein Nutzer das Objekt auf den Status published
, dann wird der PI automatisch registriert.
Bei jeder Änderung am Objekt wird die Bedingung durch einen EventHandler geprüft.
Es ist auch möglich komplexe Bedingungen zu definieren:
|
|
In dem Beispiel wird ein PI nur im State
new
erzeugt und wenn eine Institution angegeben ist. Mehr erfährt man im Quellcode.
Die Konfiguration für URN erfolgt analog zu DOI. Eine Beispiel für eine Konfiguration kann in den MIR-Properties gefunden werden.