Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

Inhalt

Die ExpoDB verfügt über eine Web-API, die Applikationen der Museen online mit Daten versorgt und aus ihnen online Daten übernimmt. Die Schnittstelle, über die Daten aus der ExpoDB zur Verfügung gestellt werden, beruht auf XML-Datensätzen, die aus imdas-pro-Datenbanken regelmäßig automati­siert nach Solr exportiert werden. Für die Abfrage der Daten aus der ExpoDB wird für diese Daten­sätze eine Reihe von Indexen aufbereitet, die eine Identifizierung sowie Selektieren und Sortieren er­möglichen. Zu festgelegten Attributen werden zusätzlich Indexlisten angelegt, die Facettierung bzw. Drill-Down der Suchergebnisse erlauben.

...

Die Online-Schnittstelle zur ExpoDB wird mit dem Protokoll https angesprochen. Es wird jeweils eine Testinstallation unter der Domain expotest.bsz-bw.de eingerichtet und, sobald die Grundkonfigura­tion in der Teststellung passt, eine Produktivinstallation unter expo.bsz-bw.de. Die Anwendungen, die die ExpoDB nutzen, sollen mit ihren produktiven Instanzen möglichst bald auf die Produktivinstal­lation unter expo.bsz-bw.de wechseln: Dies erlaubt auf der Testinstanz die Entwicklung der ExpoDB weiterzutreiben. Dabei kann es vorkommen, wobei dort vorkomen kann, dass der Service aufgrund von Fehlern oder Wartungs­zeiten unterbrochen ist. Der Im Gegensatz dazu ist der Betrieb der Produktivinstanz ist stabiler, Wartungszeiten werden hier jeweils vorab angekündigt. Es wird empfohlen, auch für die Anwendungen, die die Schnittstelle nut­zen, jeweils eine Teststellung einzurichten. Diese sollte , die auf expotest.bsz-bw.de konnektiert werden wird und es erlaubt es, die Schnittstelle seitens der Bereitstellung und der Verwendung zu testen.

Für die folgenden Beispiele wird die Domäne Produktivinstallation expo.bsz-bw.de verwendet. Nach der Domänenangabe folgen die URL-Komponenten, die die anwendungsspezifische Installation der Schnittstelle bezeich­nen. Sie bestehen in der Regel aus einem dreistelligen Kürzel des Museums, z.B. sgs, smf, etc., sowie einer Bezeichnung der Teilsammlung bzw. intendierten Anwendung, z.B. sammlung-online oder digi­taler-katalog. Insgesamt ergibt sich bis dahin also z.B. https://expo.bsz-bw.de/sgs/sammlungdigitaler-onlinekatalog. Dann folgen die Methoden der Schnittstellen /selekt, /image etc. und schließlich der durch „?“ abge­trennte Querystring. Die URL-Parameter werden im Querystring der URL als name=value-Paare ko­diert, die mit "&" getrennt sind und deren Reihenfolge nicht signifikant ist. Zur Darstellung von reser­vierten Zeichen (z.B. Leerzeichen) und Sonderzei­chen ist ein URL-Encoding der Parameterwerte er­forderlich.

Jede Installation ist mit einem Basis-Format konfiguriert, das ausgeliefert wird, sofern kein fmt-Parameter angegeben wird. Alternative Formate können mit dem URL-Parameter "fmt" angegeben werden. Welche zusätzlichen Formate für eine Schnittstelle eingerichtet und angeboten werden, wird für jede Installation verabredet und mitgeteilt.

Mit dem optionalen URL-Parameter „mim“ "mim" oder dem http-Accept-Header, die „application"application/xml“ xml" oder „application"application/json“ json" annehmen können, wird festgelegt, in welcher Syntax, XML bzw. JSON, das Ergeb­nis aufbereitet und mit welchem Mimetype es ausgeliefert wird. Vorgabewert ist „application"application/xml“xml".

Mit einem URL-Parameter "dld" kann ein Dateiname übergeben werden, der bewirkt, dass Browser das Resultat zum Download unter diesem Dateinamen anbieten.

...

In den Basisformaten enthält der Header für Einzeltreffer nur eine „numfound“-Angabe, je nach Erfolg mit 1 oder 0, der angefragte id-Parameter sowie den fmt-Parameter.

Beispiel:

https://expo.bsz-bw.de/sgs/sammlungdigitaler-onlinekatalog/selekt?id=000FDDCB46B9491EDA22F1BDDCB46B5B

{    
„head“ : {
          „numfound“ : „1“,
          „id“ : „000FDDCB46B9491EDA22F1BDDCB46B5B“,
           „fmt“ : „json“
      },
      „record“ : {
          „id“ : „000FDDCB46B9491EDA22F1BDDCB46B5B“,
           „sammlung“ : „Moderne Malerei“,
           „kuenstler“ : „Max Müller“,
           „titel“ : „Ein Bild“,
          „material“ : [ {„term“ : „Leinwand“}, {„term“ : „Karton“ } ],
           „technik“ : „Ölmalerei“,
           „entstehungsjahr“ : „2017“
      }
}

...

An das Ende der Trefferliste wird eine Abschnitt facets angefügt, der zu jeder gewählten Facette die durch lmt begrenzte Anzahl von Indexbegriffen angibt. Die Indexbegriffe werden zusammen mit der Anzahl ihres Vorkommens angeben und entsprechend dem Parameter fcs sortiert. 

Beispiel:

https://expo.bsz-bw.de/sgs/sammlungdigitaler-onlinekatalog/export?qry=person+any+"müller"&fst=20&flt=technik:Öl&fct=material,jahr

...

Es sind auch Klammern zur Variation der Auswertungsreihenfolge bei drei und mehr Suchklauseln vorgesehen: In material all "gold" and ("nummer" any 9 or jahr le 1984) not nummer all "4 7b" selektiert nun alle Treffer, für die als Material Gold angegeben ist und entweder eine Nummer 9 oder das Jahr kleiner 1984 ist. Reduziert wird das Ergebnis um alle Treffer, deren Nummern sowohl 4 als auch 7b sind.

Weitere Beispiele

material any "Eisen Bronze" not material all "Gold Messing" or nummer any 4
Material ist Eisen oder Bronze, aber Material ist weder Gold noch Messing oder die Nummer ist 4.

text any "Eisen Meier" and material all "Messing*" not nummer any "4 7"
Irgendwo im Datensatz kommt Eisen und / oder Meier vor und ein Material beginnt mit Messing, aber die Nummer ist weder 4 noch 7.

material all Holz Eisen not nummer any 4 or person all "Meier Müller-Schmidt"
Der Materialien-Index enthält sowohl Holz als auch Eisen, jedoch der Nummern-Index nicht die 4 oder aber, unabhängig vom vorigen, enthält der Personen-Index sowohl Meier als auch Müller-Schmidt.

Bemerkung: Da Inventarnummern oft aus recht kurzen Komponenten zusammengesetzt sind, sollten sie mit adj gesucht werden, da Solr kurze Textbestandteile beim Suchen ignoriert.

Abruf von Medien für die die ExpoDB

In der ExpoDB sind insbesondere auch Pfade zu Bildern und anderen Mediendateien abgelegt.

Mittlerweile verwalten viele Museen ihre Bilder und anderen Assets in der Medienbe­reitstellung von MusIS oder in externen Asset-Management-Systemen. Bilder und Dokumente, die so verwaltet werden, werden in der Schnittstelle mit ihrer Abruf-URL ausgegeben. Die nutzende Anwen­dung muss diese URLs, z.B. falls sie eine IIIF-Schnittstelle adressieren, mit den für den Bereitstellungs­service möglichen Parametern konfigurieren.

Soweit die Pfade auf das sog. "Z-Laufwerk" des BSZ führen, adressieren sie kleingerechnete Arbeitsderivate der Museen in imdas pro. Diese Pfade werden  nicht in den Trefferformaten ausgegeben und können nicht direkt zum Abruf dieser Ressourcen über das Web verwendet werden. Vielmehr erfolgt der Abruf von Bildern sowie anderen Mediendateien über einen https-GET-Methode /image, /audio bzw. /pdf in dem die imdasid des Datensatzes, optional die Nummer des Bildes, des Audiofiles bzw. pdfs in der Liste der zum Datensatz publizierten Bilder sowie optional die Bilddimension als Parameter angege­ben sind. Folgende Parameter sind dabei vorgesehen:

BezeichnungBeschreibung
idDie Imdas-Id aus der Imdas Pro-Datenbank (s.o.).
posDie Position des Bildes in der Liste der zum Datensatz publizierten Bilder, wobei die erste Position mit 0 nummeriert ist. Sind z.B. zu einem Objekt fünf Bilder publiziert, bezeichnet img=2 das dritte Bild in dieser Liste (Vorgabewert: „0“).
widthNur bei /image: Bilder werden auf die gewünschte Größe in Pixeln skaliert; die Interpretation diese Werts bestimmt der Parameter mode (Vorgabewert: „100“).
modeNur bei /image: Für den Parameter mode sind die Werte „h“ width ist die gewünschte Höhe, „w“: width ist die gewünschte Breite, sowie „x“: width ist das größere von Länge und Breite, also ein umfassendes Quadrat (Vorgabewert: „x“)
langNur bei /audio: Liegen Audiofiles in verschiedenen Sprachen „de“, „en“, „fr“,… vor, bestimmt lang die Sprachvariante. (Vorgabe: „de“)

Bilder werden im JPG-Format unter dem Mimetype „image/jpeg“ ausgeliefert, Audio-Dateien unter dem Mimetype „audio/mpeg“ sowie PDF-Dateien unter dem Mimetype „application/pdf“.

Beispiel:

https://expo.bsz-bw.de/sgs/digitaler-katalog/image?id=000FDDCB46B9491EDA22F1BDDCB46B5B &width=200&mode=h

https://expo.bsz-bw.de/sgs/digitaler-katalog/01/pdf?id=000FDDCB46B9491EDA22F1BDDCB46B5B &pos=2
https://expo.bsz-bw.de/sgs/digitaler-katalog/01/audio?id=000FDDCB46B9491EDA22F1BDDCB46B 5B

Fehlermeldungen

Falls eine Parametrisierung fehlerhaft ist, also falsch strukturiert ist, nicht vereinbarte Index-Bezeich­ner verwendet, ein qry-Parameter entspricht nicht der Syntax der Anfragesprache, beim Abruf von Medien wird eine id angegeben, zu dem kein Datensatz existiert, oder ein img-Parameter, zu dem es kein Bild mit der angegebenen Nummer gibt, wird der Fehlercode http-400 zurückgeliefert.

Sofern ein anderer serverseitiger Fehler auftritt, wird der Fehlercode http-500 zurückgeliefert.

Bemerkung: Manche Installationen sind mit einer sog. „Viewer“-Anwendung ausgestattet, die mittels Angular implementiert wurde. In diesem Fall werden http-Fehler für interne Angular-Zwecke anders verwendet.

CORS

Zum Zugriff aus JavaScript-Anwendungen können CORS-Filter definiert werden, die bezogen auf einzelne Abfragemethoden ggf. für einzelne IPs die Zugriffsbeschränkung entsprechend der Same-Origin-Policy aufheben