2020.06 2021.06

Persistent Identifier

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.

DOI-Registrierung

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.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
  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.MetadataService=MODSDOI
  MCR.PI.Registration.Datacite.Generator=DateDOI
  MCR.PI.Registration.Datacite.RegisterBaseURL=https://intr2dok.vifa-recht.de
  MCR.PI.Registration.Datacite.Username=
  MCR.PI.Registration.Datacite.Password=
  #  MCR.PI.Registration.Datacite.UseTestServer=true
  MCR.PI.Registration.Datacite.Transformer=datacite

  # Vordefiniert in MyCoRe
  MCR.PI.Generator.UUIDDOI=org.mycore.pi.doi.MCRUUIDDOIGenerator
  MCR.PI.Generator.DateDOI=org.mycore.pi.doi.MCRCreateDateDOIGenerator
  MCR.PI.MetadataService.MODSDOI=org.mycore.mods.identifier.MCRMODSDOIPersistentIdentifierMetadataManager 

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.

MIR-Aktionen-Menü mit aktivierter DOI-Registrierung

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

Automatisches Erstellen und Reservieren von PI

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

1
2
3
4
MCR.PI.Service.Datacite.CreationPredicate=org.mycore.pi.condition.MCRPIStatePredicate
MCR.PI.Service.Datacite.CreationPredicate.State=new
MCR.PI.Service.Datacite.RegistrationPredicate=org.mycore.pi.condition.MCRPIStatePredicate
MCR.PI.Service.Datacite.RegistrationPredicate.State=published

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:

1
2
3
4
5
MCR.PI.Service.Datacite.CreationPredicate=org.mycore.pi.condition.MCRPIAndPredicate
MCR.PI.Service.Datacite.CreationPredicate.1=org.mycore.pi.condition.MCRPIStatePredicate
MCR.PI.Service.Datacite.CreationPredicate.1.State=new
MCR.PI.Service.Datacite.CreationPredicate.2=org.mycore.pi.condition.MCRPIXPathPredicate
MCR.PI.Service.Datacite.CreationPredicate.2.XPath=//modsContainer/mods:mods[count(mods:name[@type='corporate' and contains(@authorityURI, 'mir_institutes')])>0]

In dem Beispiel wird ein PI nur im State new erzeugt und wenn eine Institution angegeben ist. Mehr erfährt man im Quellcode.

URN-Registrierung

Die Konfiguration für URN erfolgt analog zu DOI. Eine Beispiel für eine Konfiguration kann in den MIR-Properties gefunden werden.