Festlegen der Reihenfolge der Werte der kontrollierten Vokabulare?

Wir schauen gerade, den Vokabularmanager in Goobi zu nutzen und schreiben die erlaubten Vokabular-Werte nicht mehr in die entsprechenden Konfig-Dateien.

In den Drop-Down-Listen im METS-Editor werden die erlaubten Werte aus den Vokabularen im Vokabular-Manager nun aber alphabetisch geordnet aufgelistet. Wir hätten es aber gern in der von uns spezifizierten Reihenfolge.

Weiß jemand, ob und wenn ja wie das konfigurierbar ist?

Viele Gruesse!
Michael

Ist der Vokabularmanager eigentlich hier Übersicht - Goobi workflow - Plugins (Deutsch) dokumentiert, oder gibt es irgendwo eine Dokumentation??

So richtig hab ich nix gefunden. Hier aber die Hinweise zur Einbindung der Vokabulare in den METS-Editor: 7.6 goobi_metadataDisplayRules.xml - Goobi workflow (Deutsch)

@steffen : Gibt es da eine Anleitung für das PlugIn? Wir haben es zumindest auch installiert, ich habe habe es bisher aber nicht genutzt.

Das ausführlichste, das ich gefunden hab, ist hier:

Zusätzlich ist die von Michael verlinkte Anleitung auch sehr hilfreich.

1 Like

Das ist leider noch nicht möglich. Ich bin darüber auch vor kurzem gestolpert…

Und ja, eine Dokumentation des Bereichs fehlt auch noch. Das wurde ja mal irgendwann als Plugin Prototyp entwickelt und dann später in den Goobi workflow Kern integriert. Wir haben gerade ein paar Kleinigkeiten was Benennungen etc. angeht angepasst. Das ist dann im nächsten Release enthalten. Aber es gibt verschiedene Dinge auf der Liste, die wir hier eigentlich noch verbessern müssen bevor sich eine Dokumentation auch lohnt. Würden wir diese heute schreiben müssten wir vermutlich in den nächsten Monaten häufiger etwas anpassen…

Wenn wir schon dabei sind – im Juni 2021 gab es einen sehr interessanten Eintrag im Digest:

https://docs.goobi.io/goobi-workflow-digests-de/2021/06#aufbau-eines-authority-servers-fuer-vokabulare

Wie sieht es denn damit aus?

Tja … Das war der Plan, aber am Ende war das Design des entwickelten Servers nicht so wie gedacht.

Ich gebe Euch mal ein bisschen Hintergrund zu der ganzen Geschichte und probiere mich kurz zu fassen.

Vor vielen Jahren kam während einer Schulung bei einem Kunden der Wunsch auf Vokabulare zu verwalten. Daraufhin wurde während der Dienstreise Abends im Hotel, auf dem Flughafen, in der Bahn und am darauf folgenden Wochenende das Plugin “Vokabularverwaltung” entwickelt. Intern als JSON Datei im Dateisystem serialisiert…
Dann wünschte sich kurze Zeit später ein Kunde daraus ein Glossar im Goobi viewer anzuzeigen. Also wurde dieser erweitert um die JSON Dateien entgegen zu nehmen und innerhalb einer CMS-Seite als Glossar zu rendern.

Das Plugin war dann immer mal wieder in verschiedenen Projekten im Einsatz aber wir sind da an Limits gestoßen. Also sind zwei Entscheidungen getroffen worden:

  1. Das Plugin wird direkt in den Goobi workflow Core integriert
  2. Die Datenspeicherung wird von einer JSON Datei im Dateisystem in die SQL Datenbank überführt

Als die Vokabularverwaltung dann Teil des Kerns war kamen auf einmal viele neue Einsatzszenarien zutage für die das absolut prädestiniert ist. Allerdings wurde das halt nie dafür entwickelt, sondern der eigentliche Fokus der Entwicklung bestand nur aus dem was der Kunde auf der Dienstreise wollte und wo das in einer Nacht- und Nebel Aktion entwickelt wurde sowie der Goobi viewer Erweiterung des zweiten Kunden…

Der Status war ab diesem Zeitpunkt so, dass der Bereich etwas suggerierte zu können was es prinzipiell auch gut und einfach können würde, wenn man es denn dann entwickeln würde. Es bestand und besteht eine Diskrepanz aus dem was Anwender denken das es kann und dem was der Code hergibt.

Der Bereich wurde auch beständig weiterentwickelt. Immer in die Richtung die gerade benötigt wurde. Zum Beispiel um verschiedene Datenformate, ein internes XML aber auch SKOS oder JSKOS meine ich. Und so kamen immer wieder lose Enden zu Tage an denen man dachte: Ähhh … und warum geht es hier jetzt nicht weiter?

Einer der Bereiche war das, wo wir uns über den Vokabularserver Gedanken gemacht haben. Denn die Situation ist gerade, dass in der METS-Datei ein Eintrag aus einem Vokabular mit einer URL referenziert werden kann die dann XML, JSON etc. ausliefern kann mit weiteren Informationen. Genau so wie ein GND, VIAF oder Geonames Eintrag. Aber hier sind jetzt genau zwei lose Enden:

  1. Die URL verweist auf einen Goobi workflow REST Endpoint, die METS-Datei ist im Goobi viewer und Goobi workflow ist in ganz vielen Einrichtungen nicht von extern erreichbar. Es steht also eine URL in der METS-Datei und wenn die jemand auflösen will um mehr Informationen zum Eintrag zu bekommen geht das nicht
  2. Der Goobi viewer Indexer kann damit noch nicht umgehen. Er kann zwar GND, VIAF oder Geonames weil das alles mal beauftragt und implementiert wurde, aber er hat keine Unterstützung für den Goobi workflow internen Vokabularserver

Wir können an der Stelle immer nur Schrittweise vorgehen und versuchen eins nach dem anderen weiterzuentwickeln. Und eine Idee war es jetzt einen unabhängigen Dienst, den Vokabularserver zu entwickeln, der dann auf dem Goobi viewer Server als Dienst läuft. Dieser Dienst wird über HTTPS / REST und einfache CRUD Befehle angesprochen. In Goobi workflow gibt es das UI für die Vokabularverwaltung und weil der Dienst auf dem Goobi viewer Server läuft können wir die URLs so gestalten, dass sie immer von überall weltweit auch aufrufbar sind.
Idee war auch aus Goobi workflow heraus direkt auf dem Vokabularserver zu arbeiten, damit es immer einen Single-Point-of-Truth gibt.

Allerdings wurde dann der Authority Server nicht so entwickelt wie gedacht. Es wurde entwickelt, dass man in Goobi workflow auf einen Knopf drückt und dann wird eine Kopie dahin geschoben und die URLs in den METS-Dateien waren auch nicht angepasst. Aufgrund personeller Veränderungen und auch weil die Implementierung nicht dem entspricht was eigentlich initial gedacht war haben wir die Software nicht veröffentlicht.

Wir gehen hier jetzt gerade einen anderen Weg. Die Vokabulare sollen in der Zukunft einen zentralen Punkt in Goobi workflow einnehmen. Dafür arbeiten wir jetzt in kleinen Schritten an verschiedenen Stellen. Ab dem nächsten Release heißt der Bereich “Vokabulare” und wir haben an einigen Stellen bei Spaltenbenennungen oder Icons Änderungen vorgenommen um das konsistenter zu dem Rest der Bedienung zu machen. Parallel haben wir im letzten Jahr bereits begonnen überall dort wo es sinnvoll ist mit Kunden zu besprechen, dass bei potentiellen Beauftragungen mittel für die Erweiterung des Bereichs eingeplant werden. Das können kleinere aber auch größere Dinge sein. Gerne gebe ich Euch Beispiele für kleinere Einschränkungen die auch gut und gerne über Supportstunden bearbeitet werden können :wink:

Aber auch an anderen Stellen arbeiten wir. Zum Beispiel investieren wir gerade viel Zeit darein um die Metadatenbibliothek UGH mit Unit Tests abzudecken, da wir die Konfigurationsmöglichkeiten konzentrieren möchten. Einstellungen aus der goobi_digitalCollections.xml oder der goobi_metadataDisplayRules.xml sollen nach unseren Plänen nämlich in Vokabulare oder den Regelsatz wandern.

Das sind aber langfristige Pläne und nichts was wir heute ankündigen und dann in zwei Monaten da ist. Wir haben niemanden der uns diese Arbeiten finanziert, deswegen laufen sie immer mal nebenher aber Support und Projekte mit Entwicklungsaufträgen genießen Priorität.

So. Nun ist die Antwort doch etwas länger geworden, aber vielleicht bringt sie etwas Klarheit in die aktuelle Sachlage :wink:

2 Likes

Lieber Jan, danke für die ausführliche Antwort!

Da drängt sich mir jetzt leider die Frage auf: Was kann das nun wirklich und wie kann ich es jetzt sinnvoll einsetzen?
Und eventuell, was sollte ich nicht tun in Hinblick auf die kommenden Entwicklungen?

1 Like

Du kannst es nutzen um Vokabulare zu erzeugen und zu verwalten und dann im Metadateneditor zu verwenden, zum Beispiel :slight_smile:

Das heißt, jenseits dessen, was im Digest dokumentiert ist, gibt es keine »geheimen« Funktionen und die Mehrsprachigkeit ist momentan nur innerhalb von GW nützlich?

Also mir ist nichts geheimes bekannt. Und was genau möchtest Du mit der Mehrsprachigkeit machen? Ich hab das nicht genau gelesen :see_no_evil:

Wir zeigen im Viewer bspw. Klassifikationen je nach Viewersprache auf Englisch und Deutsch an. Die Übersetzung erfolgt durch die messages Dateien. Damit nicht irgendwo versehentlich ein Begriff wie »Wirtschaftspolitik« übersetzt wird, wo er nicht übersetzt werden soll, sind die Begriffe codiert eingegeben (bspw. RSTopicSEconomicPolicy). Das erfüllt soweit ganz gut seinen Zweck, aber im METS-Export ist es bei der Nachnutzung der Daten eher nicht so schön. Mein Gedanke war mit Hilfe des Vokabulars entweder die Daten bereits in Goobi Workflow zweisprachig auszustatten (in der meta.xml oder bei der Serialisierung) oder spätestens vom Viewer Indexer entsprechend anreichern zu lassen.

@steffen hatte dazu auch mal was in nem Digest geschrieben: Oktober 2022 - Goobi workflow Digests (Deutsch)

Also das zweisprachig zu exportieren sollte dann der richtige Weg sein. Dann kann man mit den _LANG Feldern Arbeiten und die Übersetzung der Metadaten automatisch mit der Goobi viewer Oberfläche wechseln lassen. Messages braucht es dann nicht.

Ich bin mir nur nicht sicher wie wir hier am besten exportieren, denn wir wollen ja einen Wert im Metadateneditor auswählen und zwei Werte dann in der METS-Datei haben. Dazu muss ich mit @steffen sprechen…

1 Like

Danke, genau das habe ich mir vorgestellt.