[Kitodo] REST-API

Ronge, Matthias Matthias.Ronge at zeutschel.de
Mo Okt 14 09:57:03 CEST 2019


Hallo Herr Häger,

In Kitodo 3 ist das Bearbeiten der Metadateien über die Kitodo-API möglich. Die Kitodo API ist eine Java API (keine XML API). Sie können damit aber auf jeden Fall auf die METS-Datei zugreifen. Durch Verwendung der Kitodo-API ist sichergestellt, dass zusätzliche Annahmen, die für das Internformat gelten, korrekt berücksichtigt werden. Dennoch rate ich dazu, vor dem Verändern eine Sicherheitskopie der Datei anzulegen.

Hier ein Beispiel für das Hinzufügen von Daten:

import java.io.*;
import java.net.*;

// kitodo-api.jar
import org.kitodo.api.*; // metadata
import org.kitodo.api.dataformat.*; // Kitodo data format

// module from kitodo-dataformat.jar
import org.kitodo.dataformat.access.MetsXmlElementAccess;

public class AddDataExample {
    static final MetsXmlElementAccess kitodoDataformat= new MetsXmlElementAccess(); // load module

    public static void main(String[] args) throws IOException, URISyntaxException {
        // read existing file
        File metaXmlFile = new File("/path/to/meta.xml");
        Workpiece workpiece;
        try (InputStream in = new FileInputStream(metaXmlFile)) {
            workpiece = kitodoDataformat.read(in); // use module to read
        }

        // adding an included structural element
        IncludedStructuralElement includedStructuralElement = new IncludedStructuralElement();
        includedStructuralElement.setType("volume");
        includedStructuralElement.setLabel("Band J-N");
        workpiece.getRootElement().getChildren().add(includedStructuralElement);

        // adding metadata to an included structural element
        MetadataEntry metadata = new MetadataEntry();
        metadata.setKey("title");
        metadata.setValue("20000 Meilen unter dem Meer");
        metadata.setDomain(MdSec.DMD_SEC);
        workpiece.getRootElement().getMetadata().add(metadata);

        // adding a media unit to a workpiece
        MediaVariant localVariant = new MediaVariant();
        localVariant.setUse("LOCAL");
        localVariant.setMimeType("image/tiff");

        MediaVariant maxVariant = new MediaVariant();
        maxVariant.setUse("MAX");
        maxVariant.setMimeType("image/jpeg");

        MediaUnit mediaUnit = new MediaUnit();
        mediaUnit.setOrder(1234567);
        mediaUnit.getMediaFiles().put(localVariant, new URI("images/Vern2000_media/01234567.tif"));
        mediaUnit.getMediaFiles().put(maxVariant, new URI("jpgs/max/01234567.jpg"));
        workpiece.getMediaUnits().add(mediaUnit);

        // assigning a media unit to an included structural element
        View view = new View();
        view.setMediaUnit(mediaUnit);
        includedStructuralElement.getViews().add(view);

        // save file
        try (OutputStream out = new FileOutputStream(metaXmlFile)) {
            kitodoDataformat.save(workpiece, out); // use module to write
        }
    }
}

Ich hoffe, dass dies Ihnen nützlich sein kann.

An dieser Stelle noch der Link, wie Sie die Javadoc Quelltextdokumentation zu Kitodo erzeugen können:
https://kitodo-production.readthedocs.io/en/master/javadoc/README/

Mit freundlichen Grüßen
Matthias Ronge


________________________________

Matthias Ronge
Software Entwicklung/Software Development


[cid:Z_Logo_RGB_180px_2b974e26-85b9-4005-92dd-9bb8df881ab3.png]<http://www.zeutschel.de> <http://www.zeutschel.de>

[cid:Twitter-34x34_f9819937-1c34-4eab-b2fc-944fcf2e8938.png]<https://twitter.com/zeutschelgmbh>


[cid:YouTube-34x34_8cf03759-cc15-472e-a763-e628ea59d43b.png]<http://www.youtube.com/user/zeutschelbookscanner>


[cid:Facebook-34x34_ab94d89a-875f-49f2-81f3-e136c66e4bb5.png]<https://www.facebook.com/pages/Zeutschel-GmbH/193873073980288?fref=ts><https://plus.google.com/110507211572689796815/posts>


Zeutschel GmbH | Heerweg 2 | 72070 Tübingen | Deutschland
p: +49 (7071) 9706-62 | m: | f: +49 (7071) 9706-44
e: Matthias.Ronge at zeutschel.de<mailto:Matthias.Ronge at zeutschel.de> | w: http://www.zeutschel.de
Geschäftsführer/President: Joerg Vogler | Registergericht Stuttgart: HRB 380917

[cid:Banner-OS-Q_63e91370-8268-4a12-aec9-f048b5a97237.png]<https://www.zeutschel.de/>
Von: kitodo-community-bounces at kitodo.org <kitodo-community-bounces at kitodo.org> Im Auftrag von Christian Haenger
Gesendet: Donnerstag, 10. Oktober 2019 11:52
An: kitodo-community at kitodo.org
Betreff: Re: [Kitodo] REST-API

Hallo Herr Weber,

danke für die Antwort. Ja, mir geht es um die Ergänzung der Meta- und Strukturdaten eines bereits erstellten Vorgangs.

Wir schauen uns die Funktion für Kitodo.Production 3.x an.

Kurzfristig werden wir uns wahrscheinlich über die meta.xml helfen. Mittelfristig ist aus meiner Sicht eine funktionierende import-API der richtige Weg.

Viele Grüße

Christian Hänger


Am 10.10.2019 um 08:17 schrieb Weber, Frank-Ulrich:
Hallo Herr Hänger,

es geht Ihnen im Grundsatz also darum, die Meta- und Strukturdaten eines bereits erstellten Vorgangs
im Nachhinein automatisch (durch Import) zu aktualisieren und zu ergänzen?

Diese Erweiterung wurde für Kitodo.Production 2.x schon mehrmals diskutiert
und müsste jetzt in Kitodo.Production 3.x umgesetzt werden.
Da wir bereits in anderen Projekten (Kitodo.Production  2.x / Kitodo.Presentation) und jetzt im Rahmen des DFG-Projekts zu Kitodo.Production 3.x
aktiv an der Entwicklung von Kitodo teilnehmen, sind wir natürlich auch gerne bereit weitere Entwicklungen (z.B. API) durchzuführen.

Unabhängig davon werde ich Ihren Wunsch, sofern korrekt von mir interpretiert, in die Projektinterne Liste möglicher Weiterentwicklungen aufnehmen.

Beste Grüße

Frank Ulrich Weber

________________________________

Frank-Ulrich Weber
Product Manager Software Solutions

[cid:image001.png at 01D58274.A3092380]<http://www.zeutschel.de>


[cid:image002.png at 01D58274.A3092380]<https://twitter.com/zeutschelgmbh>


[cid:image003.png at 01D58274.A3092380]<http://www.youtube.com/user/zeutschelbookscanner>


[cid:image004.png at 01D58274.A3092380]<https://www.facebook.com/pages/Zeutschel-GmbH/193873073980288?fref=ts>

Zeutschel GmbH| Heerweg 2 | 72070 Tübingen | Deutschland
p: +49 (7071) 9706-56 | m: | f: +49 (7071) 9706-44
e: Frank-Ulrich.Weber at zeutschel.de<mailto:Frank-Ulrich.Weber at zeutschel.de> | w: http://www.zeutschel.de

Geschäftsführer/President: Joerg Vogler | Registergericht Stuttgart: HRB 380917


[cid:image005.png at 01D58274.A3092380]<https://www.zeutschel.de/>
Von:kitodo-community-bounces at kitodo.org<mailto:kitodo-community-bounces at kitodo.org><kitodo-community-bounces at kitodo.org><mailto:kitodo-community-bounces at kitodo.org>Im Auftrag von Christian Haenger
Gesendet: Mittwoch, 9. Oktober 2019 15:50
An:kitodo-community at kitodo.org<mailto:kitodo-community at kitodo.org>
Betreff: Re: [Kitodo] REST-API

Hallo Herr Ronge,

haben Sie erst einmal vielen Dank für die genaue Auflistung.

Ich habe die vier APIs für die Mannheimer Installation abgefragt und habe die folgenden Ergebnisse erzeilt:




http://server.domain.example/kitodo-production/rest/catalogueConfiguration

» Gibt die konfigurierten Katalogschnittstellen und Dokumenttypen aus. Diese Informationen sind analog zu den in opac.xml konfigurierten Informationen.
Das ist nicht relevant für die Fragestellung, Metadaten aus dem System zu exportieren (oder gar zu importieren)





http://server.domain.example/kitodo-production/rest/projects

» Gibt die konfigurierten Projekte mit entsprechenden Produktionsvorlagen mit verfügbaren Sammlungen, und Metadatenschlüsseln aus. Die Projekte und Produktionsvorlagen sind diejenigen, die auf dem System vorhanden sind. Die Sammlungen entsprechen der Konfiguration in der collections.xml-Datei, die Metadatenschlüssel entsprechen der Konfiguration in der projects.xml-Datei (wie für das betreffende Projekt konfiguriert).
Das ist nicht relevant für die Fragestellung, Metadaten aus dem System zu exportieren (oder gar zu importieren)



http://server.domain.example/kitodo-production/rest/processes

» Listet alle Vorgänge auf dem System auf. Die Vorgänge sind diejenigen, die auf dem System vorhanden sind.
Das beantwortet meine Frage am ehesten. Es werden aber keine  METS-Daten ausgegeben.
Beispiel:
<goobiProcess>
<identifier>52015858X</identifier>
<title>
Arnoldi Clapmari[i] Juris-Consulti, Nobile Triennium
</title>
</goobiProcess>
<goobiProcess>
<identifier>52015875X</identifier>
<title>Salomonis Codomanni ... Vindiciae</title>
</goobiProcess>



http://server.domain.example/kitodo-production/rest/processes/PPN/steps
Das ist nicht relevant für die Fragestellung, Metadaten aus dem System zu exportieren (oder gar zu importieren)

» Zeigt alle Schritte des Vorgangs mit der angegebenen PPN an. Beachten Sie, dass die PPN der Wert im Feld PPN digital a-Satz bzw. PPN digital f-Satz sein muss, nicht der Vorgangstitel.



Würde Zeutschel denn den Kitodo-APIs weiternetwickeln? Gedacht ist daran, über die API zu einem bestehenden Projekt und mit bestehenden Titeldaten aus dem Verbund ergänzend METS-Dateien (z.B. https://digi.bib.uni-mannheim.de/fileadmin/digi/490029922/490029922.xml) nach Kitodo Production zu importieren? Das ist aus meiner Sicht ein echter Mehrwert für Kitodo.



Viele Grüße



Christian Hänger













-----Ursprüngliche Nachricht-----
Von: kitodo-community-bounces at kitodo.org<mailto:kitodo-community-bounces at kitodo.org><kitodo-community-bounces at kitodo.org><mailto:kitodo-community-bounces at kitodo.org> Im Auftrag von Christian Haenger
Gesendet: Freitag, 20. September 2019 14:01
An: kitodo-community at kitodo.org<mailto:kitodo-community at kitodo.org>
Betreff: Re: [Kitodo] REST-API



Hallo Herr Hartwig,



ich habe mir fast gedacht, dass die REST-API nur Lesezugriffe erlaubt.

Wir haben ja eine ähnliche Kitodo-Geschichte wie die ULB Halle und sind

2015 von Visual Library auf Kitodo (damals noch Goobi) umgestiegen.

Allerdings haben wir wegen der damals auch noch nicht vorhandenen Exportmöglichkeiten die Alt-VL-Metadaten nicht nach Production importiert, sondern greifen nur mit Presentation darauf zu. Bei einer erneuten Bearbeitung des "Altdatensatzen" muss dann eine erneute Aufnahme in Production erfolgen.



Letztlich ist es suboptimal, nicht mit einem System, also Production, zu arbeiten, sondern Workarounds zu schaffen. Aber manchmal geht es nicht anders.



Viele Grüße



Christian Hänger







Am 20.09.2019 um 13:39 schrieb Uwe Hartwig:

> Hallo Herr Hänger,

>

> das klingt spannend. Bei uns geht es darum, unsere Strukturierung bei

> der Arbeit so weit es geht zu unterstützen, was ggf. heißt,

> Arbeitsschritte nicht über die Kitodo.Production2 Oberfläche

> durchzuführen, sondern auf anderen Wegen.

>

> Aktuell erlaubt die REST-API allerdings durchgehend nur Lesezugriffe,

> wobei mir leider das dahinterliegende Modell noch nicht klar ist

> (process vs. prozesse vs. prozesseeigenschaften vs. vorlagen vs.

> vorlageneigenschaften vs. werkstuecke vs. werkstueckeeigenschaften).

>

>

> Grüße

>

>

> On 20.09.19 13:16, Christian Haenger wrote:

>> Hallo Herr Hartwig,

>>

>> eine vergleichbare Frage wollte ich auch gerade stellen.

>>

>> Mein Problem ist, dass die Scanabteilung mehr digitalisierte Werke

>> liefert als die Metadatenabteilung beschreiben kann. Daher denke ich

>> bei Werken aus dem 19. und 20. Jahrhundert über eine Automatisierung nach.

>> Wir digitalisieren in Mannheim Fortsetzungswerke, deren Aufbau über

>> mehrere Ausgaben hinweg immer gleich bleibt. Das sind z.B.

>> Hoppenstedt Handbuch der Aktiengesellschaften. Daher denke ich

>> darüber nach, die Inhaltsverzeichnisse zu scannen und die Inhalte

>> automatisiert nach XML-DC oder XML-MODS zu überführen. Denkbar wäre

>> dann ein Import über die REST-API nach Production. Anschließend

>> erfolgt dann die manuelle weitere Bearbeitung in Kitodo.

>>

>> Hat das jemand mal gemacht oder einen anderen Lösungsvorschlag?

>>

>> In Mannheim haben wir bereits Metadaten und Imgaes automatisiert

>> übernommen, aber nur für Presentation zur Verfügung gestellt. Zuletzt:

>>

>> Viele Grüße

>>

>> Christian Hänger

>>

>>

>> Am 20.09.2019 um 11:20 schrieb Uwe Hartwig:

>>> Liebe Community,

>>>

>>> für Kitodo.Production existiert eine REST-API, die in unveränderter

>>> Form auch in Version3 übernommen wurde.

>>> Nutzt jemand aktuell diese Schnittstelle?

>>> Wird diese gepflegt bzw. gibt es Ideen für deren Weiterentwicklung?

>>>

>>>

>>> Viele Grüße

>>>



--

Dr. Christian Hänger

Abteilungsleiter Digitale Bibliotheksdienste UB Mannheim

68131 Mannheim

0049 621 181 2954







_______________________________________________

Kitodo-Community mailing list

Kitodo-Community at kitodo.org<mailto:Kitodo-Community at kitodo.org>

https://maillist.slub-dresden.de/cgi-bin/mailman/listinfo/kitodo-community




_______________________________________________

Kitodo-Community mailing list

Kitodo-Community at kitodo.org<mailto:Kitodo-Community at kitodo.org>

https://maillist.slub-dresden.de/cgi-bin/mailman/listinfo/kitodo-community



--

Dr. Christian Hänger

Abteilungsleiter Digitale Bibliotheksdienste

UB Mannheim

68131 Mannheim

0049 621 181 2954



_______________________________________________

Kitodo-Community mailing list

Kitodo-Community at kitodo.org<mailto:Kitodo-Community at kitodo.org>

https://maillist.slub-dresden.de/cgi-bin/mailman/listinfo/kitodo-community



--

Dr. Christian Hänger

Abteilungsleiter Digitale Bibliotheksdienste

UB Mannheim

68131 Mannheim

0049 621 181 2954
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://bibservices.biblio.etc.tu-bs.de/pipermail/kitodo/attachments/20191014/f8ebd86d/attachment-0001.html>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : image001.png
Dateityp    : image/png
Dateigröße  : 4047 bytes
Beschreibung: image001.png
URL         : <http://bibservices.biblio.etc.tu-bs.de/pipermail/kitodo/attachments/20191014/f8ebd86d/attachment-0010.png>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : image002.png
Dateityp    : image/png
Dateigröße  : 4594 bytes
Beschreibung: image002.png
URL         : <http://bibservices.biblio.etc.tu-bs.de/pipermail/kitodo/attachments/20191014/f8ebd86d/attachment-0011.png>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : image003.png
Dateityp    : image/png
Dateigröße  : 4355 bytes
Beschreibung: image003.png
URL         : <http://bibservices.biblio.etc.tu-bs.de/pipermail/kitodo/attachments/20191014/f8ebd86d/attachment-0012.png>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : image004.png
Dateityp    : image/png
Dateigröße  : 4533 bytes
Beschreibung: image004.png
URL         : <http://bibservices.biblio.etc.tu-bs.de/pipermail/kitodo/attachments/20191014/f8ebd86d/attachment-0013.png>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : image005.png
Dateityp    : image/png
Dateigröße  : 38938 bytes
Beschreibung: image005.png
URL         : <http://bibservices.biblio.etc.tu-bs.de/pipermail/kitodo/attachments/20191014/f8ebd86d/attachment-0014.png>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : Z_Logo_RGB_180px_2b974e26-85b9-4005-92dd-9bb8df881ab3.png
Dateityp    : image/png
Dateigröße  : 4047 bytes
Beschreibung: Z_Logo_RGB_180px_2b974e26-85b9-4005-92dd-9bb8df881ab3.png
URL         : <http://bibservices.biblio.etc.tu-bs.de/pipermail/kitodo/attachments/20191014/f8ebd86d/attachment-0015.png>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : Twitter-34x34_f9819937-1c34-4eab-b2fc-944fcf2e8938.png
Dateityp    : image/png
Dateigröße  : 4594 bytes
Beschreibung: Twitter-34x34_f9819937-1c34-4eab-b2fc-944fcf2e8938.png
URL         : <http://bibservices.biblio.etc.tu-bs.de/pipermail/kitodo/attachments/20191014/f8ebd86d/attachment-0016.png>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : YouTube-34x34_8cf03759-cc15-472e-a763-e628ea59d43b.png
Dateityp    : image/png
Dateigröße  : 4355 bytes
Beschreibung: YouTube-34x34_8cf03759-cc15-472e-a763-e628ea59d43b.png
URL         : <http://bibservices.biblio.etc.tu-bs.de/pipermail/kitodo/attachments/20191014/f8ebd86d/attachment-0017.png>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : Facebook-34x34_ab94d89a-875f-49f2-81f3-e136c66e4bb5.png
Dateityp    : image/png
Dateigröße  : 4533 bytes
Beschreibung: Facebook-34x34_ab94d89a-875f-49f2-81f3-e136c66e4bb5.png
URL         : <http://bibservices.biblio.etc.tu-bs.de/pipermail/kitodo/attachments/20191014/f8ebd86d/attachment-0018.png>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : Banner-OS-Q_63e91370-8268-4a12-aec9-f048b5a97237.png
Dateityp    : image/png
Dateigröße  : 38938 bytes
Beschreibung: Banner-OS-Q_63e91370-8268-4a12-aec9-f048b5a97237.png
URL         : <http://bibservices.biblio.etc.tu-bs.de/pipermail/kitodo/attachments/20191014/f8ebd86d/attachment-0019.png>
-------------- nächster Teil --------------
_______________________________________________
Kitodo-Community mailing list
Kitodo-Community at kitodo.org
https://maillist.slub-dresden.de/cgi-bin/mailman/listinfo/kitodo-community


Mehr Informationen über die Mailingliste Kitodo