[Kitodo] REST-API
Christian Haenger
christian.haenger at bib.uni-mannheim.de
Di Okt 15 13:51:26 CEST 2019
Lieber Herr Ronge,
haben Sie vielen Dank für die Info. Für Kitodo 2 werden wir mit der
meta.xml arbeiten und für Kitodo 3 gibt es vielleicht gute Optionen.
Viele Grüße
Christian Hänger
Am 14.10.2019 um 09:57 schrieb Ronge, Matthias:
>
> 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
>
> <http://www.zeutschel.de>
>
> <https://twitter.com/zeutschelgmbh>
>
>
>
> <http://www.youtube.com/user/zeutschelbookscanner>
>
>
>
> <https://www.facebook.com/pages/Zeutschel-GmbH/193873073980288?fref=ts>
>
> *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
>
> <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
>
> <http://www.zeutschel.de>
>
>
>
> <https://twitter.com/zeutschelgmbh>
>
>
>
> <http://www.youtube.com/user/zeutschelbookscanner>
>
>
>
> <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
>
> <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
>
> _______________________________________________
> Kitodo-Community mailing list
> 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/20191015/211aabfe/attachment-0001.html>
-------------- 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: nicht verfügbar
URL : <http://bibservices.biblio.etc.tu-bs.de/pipermail/kitodo/attachments/20191015/211aabfe/attachment-0010.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: nicht verfügbar
URL : <http://bibservices.biblio.etc.tu-bs.de/pipermail/kitodo/attachments/20191015/211aabfe/attachment-0011.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: nicht verfügbar
URL : <http://bibservices.biblio.etc.tu-bs.de/pipermail/kitodo/attachments/20191015/211aabfe/attachment-0012.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: nicht verfügbar
URL : <http://bibservices.biblio.etc.tu-bs.de/pipermail/kitodo/attachments/20191015/211aabfe/attachment-0013.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: nicht verfügbar
URL : <http://bibservices.biblio.etc.tu-bs.de/pipermail/kitodo/attachments/20191015/211aabfe/attachment-0014.png>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname : image001.png
Dateityp : image/png
Dateigröße : 4047 bytes
Beschreibung: nicht verfügbar
URL : <http://bibservices.biblio.etc.tu-bs.de/pipermail/kitodo/attachments/20191015/211aabfe/attachment-0015.png>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname : image002.png
Dateityp : image/png
Dateigröße : 4594 bytes
Beschreibung: nicht verfügbar
URL : <http://bibservices.biblio.etc.tu-bs.de/pipermail/kitodo/attachments/20191015/211aabfe/attachment-0016.png>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname : image003.png
Dateityp : image/png
Dateigröße : 4355 bytes
Beschreibung: nicht verfügbar
URL : <http://bibservices.biblio.etc.tu-bs.de/pipermail/kitodo/attachments/20191015/211aabfe/attachment-0017.png>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname : image004.png
Dateityp : image/png
Dateigröße : 4533 bytes
Beschreibung: nicht verfügbar
URL : <http://bibservices.biblio.etc.tu-bs.de/pipermail/kitodo/attachments/20191015/211aabfe/attachment-0018.png>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname : image005.png
Dateityp : image/png
Dateigröße : 38938 bytes
Beschreibung: nicht verfügbar
URL : <http://bibservices.biblio.etc.tu-bs.de/pipermail/kitodo/attachments/20191015/211aabfe/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