[Kobv-opus-tester] Problem mit automatischer URN-Vergabe

Thoralf Klein thoralf.klein at zib.de
Fre Jan 20 18:59:00 MET 2012


Lieber Herr Heitmann,


dank ihres Fehlerberichts haben wir intern nochmal über Verwendung und
Konfiguration der URN-Vergabe diskutiert.  Das zugehörige Ticket 
* https://wiki.kobv.de/jira/browse/OPUSVIER-1821

Ist inzwischen bearbeitet.  Meine Kommentare dazu finden Sie im Text.


On Thursday 13 October 2011 11:32:35 Sven Heitmann [UB] wrote:
> Liebes OPUS4-Entwickler-Team,
> 
> soeben ist uns noch einmal das Problem mit den URNs begegnet. In
> Regensburg hatten wir ja kurz darüber gesprochen. Das Ganze ist aber
> doch problematischer als zuerst gedacht.
> 
> Das System vergibt anhand der OPUS4-ID automatisch neue URNs unter
> Berücksichtigung des in der config.ini eingetragenen Namensraumes. Nach
> der Migration von OPUS3 auf OPUS4 kann es vorkommen, dass die OPUS4-ID
> nicht der ursprünglichen OPUS3-ID entspricht. Bei uns ist das so, denn
> es gab leere ID-Bereiche in unserem OPUS3-System.

Bei der Migration einer Instanz mit vorhandenen URNs das Präfix für den
NISS (namespace specific string) entsprechend angepasst werden muss,
da wir schlecht wissen können welche IDs bisher vergeben wurden.  Ist
die alte URN z.B. der Form 
  urn:nbn:de:hbz:386-kluedo-123x

so bieten sich z.B. folgende alternative Namespace an:
  urn:nbn:de:hbz:386-kluedo2-123x
  urn:nbn:de:hbz:386-kluedo-2-123x
  urn:nbn:de:hbz:386-opus4-123x
  etc.

Sie müssen nur darauf achten, den von der DNB zugewiesenen Namespace 
  urn:nbn:de:hbz:386
nicht zu verlassen und zusätzlich sicherstellen, dass Sie nach dem "-"
einen bisher unbenutzten Präfix verwenden.

Für weitergehende Informationen kann ich den folgenden Artikel aus
dem NESTOR-Handbuch nur empfehlen:
http://nbn-resolving.de/urn/resolver.pl?urn=urn:nbn:de:0008-20100305176


> So konnte es
> vorkommen, dass nach der Migration für neu hochgeladene Dokumente,
> bereits vorhandene URNs doppelt vergeben wurden. Denn die neue OPUS4-ID
> war bei uns niedriger als viele alte OPUS3-IDs.

Das ist auf jeden Fall ein kritischer Fehler, der nicht vorkommen darf.
Ab dem kommenden Release wird vor dem Anlegen einer neuen URN
geprüft, ob sie bereits im System existiert.

Wir können auf diesem Weg natürlich nicht ausschliessen, dass wir URNs
von bereits gelöschten Dokumenten wiedervergeben.  Daher raten wir
dringend dazu, den Namespace entsprechend anzupassen!


> Dieses Problem konnten
> wir lösen, indem wir in der Datenbank den Zähler für die OPUS4-ID soweit
> angehoben haben, dass dieser größer ist, als die höchste OPUS3-ID. Neu
> hochgeladene Dokumente erhalten nun also immer einen noch nicht
> vorhandenen gültigen URN.

Auf die Idee, die IDs zu erhöhen bis keine Kollisionen mehr erfolgen 
können, muss man auch erstmal kommen.  Auf jeden Fall ein schöner
Hack. :)

Wir würden trotzdem zu einer Anpassung des Namespaces raten, da
wir nur schlecht mit 100%iger Sicherheit prüfen können was die höchste 
ID des alten Systems war.


> Sofern man nun aber ein altes Dokument im Admin-Bereich editiert,
> welches noch keinen URN hatte, wird automatisch auch für dieses alte
> Dokument ein URN erzeugt. Und hierdurch können erneut doppelte URNs
> entstehen. Das haben wir in einem Test nachvollzogen. Das System prüft
> bei der automatischen Generierung nicht, ob der URN bereits existiert.
> Momentan müssen wir deswegen vor jeder Änderung eines alten Datensatzes
> prüfen, ob die zugehörige automatisch erzeugte URN überhaupt noch frei
> wäre und ggfs. vorher eine freie URN raussuchen und vorbeugend eintragen.

Siehe oben: Dieser Fehler wurde inzwischen behoben.


> Kann man die automatische URN-Vergabe für bereits vorhandene Dokumente
> deaktivieren?
> Für uns wäre es besser, wenn nur neu hochgeladenen Dokumente einen URN
> erhalten. Für alte Dokumente ohne URN wäre ein Button zur automatischen
> Vergabe eines URN im Admin-Bereich hilfreich. Bei der automatischen
> Erzeugung sollte geprüft werden, ob dieser URN bereits existiert und
> ggfs. ein anderer freier URN vergeben werden.

Für dieses Feature haben wir ein Ticket angelegt:
* https://wiki.kobv.de/jira/browse/OPUSVIER-2294

Wir diskutieren noch, wie die Umsetzung dafür aussehen könnte und 
bitten um ein wenig Geduld.


Viele Grüße und ein schönes Wochenende,
-- 
Thoralf Klein <thoralf.klein at zib.de>
Telefon: +49 (30) 841 85-216, Raum: 3011