Die TIB bietet eine neue Anfragemöglichkeit ihrer Daten über das standardisierte Webservice-Protokoll SRU (Search/Retrieve via URL) an.
Search/Retrieve via URL (SRU) ist ein technischer Standard für Bibliotheken (eine Weiterentwicklung des Z39.50-Protokolls), der von der Library of Congress veröffentlicht wurde.
Das SRU-Protokoll ist XML basiert und verwendet die HTTP GET Methode zum Empfang und Rückgabe von SRU kompatiblen Suchanfragen und -Ergebnissen.
Über die SRU-Schnittstelle sind die TIB-Datenbanken verfügbar. Die spezifischen Anfragen sind mittels Retrievalsprache CQL und solr-Syntax formuliert.
Die Ergebnisse der Suche sind in verschiedenen XML-Formaten (MARCXML, Dublin core, RDF_XML) verfügbar.
Standards der SRU-Schnittstelle
Protokoll SRU: Version 2.0 (Version 1.1 und Version 1.2 sind unterstützt)
Retrievalsprache CQL: Version 1.2
SRU-Funktionen
SRU umfasst zwei Basisfunktionen: Explain und Search/Retrieve.
Jede Anfrage muss einen Parameter query oder queryType enthalten.
Je nach Operation (searchRetrieve, explain) kommen weitere GET-Parameter hinzu. Werden keine GET-Parameter angegeben, so verhält sich der Server so, als hätte er eine Anfrage für explain erhalten.
Parameters in einer SRU-Anfrage:
Parameter | Typ | Default | Beschreibung |
---|---|---|---|
operation | enum | Gewünschte SRU-Operation: explain oder searchRetrieve (erforderlich für Version 1.1 und 1.2) | |
version | string | 1.2 | SRU-Version (erforderlich für Version 1.1 und 1.2) |
query | string | Suchanfrage als CQL | |
queryType | string | cql | |
startRecord | integer | 1 | Erster darzustellender Eintrag der Ergebnisliste (beginnend mit 1) |
maximumRecords | integer | 10 | Maximale Anzahl gewünschter Ergebnisse (max = 50) |
sortKeys | string | ||
recordSchema | string | dc | Das gewünschte Ausgabeformat für die Ergebnisse. Unterstützt wird derzeit dc (Dublin Core) und marcxml (XML-Format für Marc 21) |
facetLimit | string |
explain
explain ist die Selbstbeschreibung der SRU-Server im XML-Standardformat, enthält Informationen über:
- Datenbank
- Indizes
- Datenformate
Beispiel:
searchRetrieve
Dies ist die eigentliche Suchoperation.
GET-Parameter query muss eine Anfrage enthalten.
SRU-Schnittstelle von TIB bietet drei Anfragetypen: cql, solr und searchTerms. GET-Parameter queryType ist dafür verantwortet. Wenn keine queryType Parameter angegeben, wird queryType als cql eingesetzt.
- cql - Anfragetype
Die Suchanfragen werden in CQL formuliert. Es ist Default-Anfragetype. Die CQL-Syntax ist nachfolgend beschrieben. Es gelt für alle SRU-Version (1.1, 1.2 und 2.0).
Beispiel:
https://www.tib.eu/sru/tibkat?query=classField=mat and date any 2001
- solr - Anfragetype
Die gleiche Anfragesyntax wie in Tib Portal und die gleiche Treffenzahlen bei Suchen. Die Daten sind im Solr-Index in verschiedenen Felder abgelegt. Zur Suche in einem speziellen wird der Feldname und der Suchterm durch ein Doppelpunkt getrennt:
https://www.tib.eu/sru/tibkat?queryType=solr&query=isbn:2* AND issued:2010
Nur für SRU-Version 2.0 funktioniert.
- searchTerms
Die Anfrage besteht aus einer Liste der Suchterms. Zum Beispiel: 'solid laser water' , dass als 'solid OR laser OR water' interpretiert wird. Parameter query ist für diesen Anfragetyp nicht erforderlich.
Nur für SRU-Version 2.0 funktioniert.
Zum Beispiel:
https://www.tib.eu/sru/tibkat?queryType=searchTerms=mama papa baba
CQL - Contextual Query Language
CQL ist eine formale Sprache zur Wiedergabe von Anfragen. Für die feldweise Suche werden alle Dublin-Core Felder und TIB spezifischen Felder benutzt.
Folgende Relationen und boolsche Operatoren werden unterstützt:
- all AND-Verknüpfung
- any OR-Verknüpfung
- and, or
Beispiele für Abfrageformulierungen:
query=creator=James or Stirling
query=creator=Stirlin and title=Mikro-KWK-Anlage
query=creator any Stirling and date any 2001
S. auch https://www.loc.gov/standards/sru/cql/spec.html
Ohne Eingabe des CQL-Dublin-Core-Feldes (entspricht cql.serverChoice oder serverChoice) wird in den folgenden Feldern gesucht: Titel, alternative Titel, Subtitel, Journal Titel, Konferenztitel, Autor, Publikationscodes (ISSN, ISBN uzw.), Identifikatoren (PPN, FTX-ID), Schlüsselworte, Abstract, Volltext, Publisher und Erscheinungsjahr.
Die Tabelle stellt Für die feldweise Suche dar:
CQL-Felder | Beschreibung (TIB spezifisch FTX-Felder) |
---|---|
(ohne Eingabe) oder | mainTitle, alternativeTitle, subTitle, journalTitle |
title oder | mainTitle, alternativeTitle, subTitle, journalTitle |
creator oder | author |
date oder | issued (Jahresangabe) |
description oder | abstract, fulltext, dissertationInfo |
identifier oder | Id (FTX-ID / TIB spezifische ID) |
subject oder | keywords |
volume | volumeNumber |
issue | issueNumber |
firstPage | firstPage |
license | licenseModel |
numbers | Identifikatoren und Codes (außer FTX-ID): PPN, EPN, isbn, issn, publishingNumber uzw |
ppn | PPN (mit der Prüfziffer) |
coverDate | coverDate |
classField | classification |
genreCode | documentGenreCode |
format | documentTypeCode |
journal | journalTitle |
Die Werte für genreCode:
Wert | Suchterm |
---|---|
A | Audiovisuelles Material |
B | Buch (einschl. Konferenzbände, Dissertationen etc.) |
BC | Kapitel (Buch) |
C | Konferenzband (Teilmenge von Buch) |
CA | Beitrag (Konferenz) |
D | Dissertation (Teilmenge von Buch) |
FD | Forschungsdaten |
I | Bild |
J | Zeitschriftentitel |
K | Karte |
JL | Aufsatz (Zeitschrift) |
PP | Preprint |
LA | Artikel (Lexikon) |
M | 3D-Modell |
P | Patent |
PA | Paper |
R | Report |
S | Technische Regel |
T | Audio-Material |
X | Unbekannt |
Die Werte für format:
Wert | Suchterm |
---|---|
AV | Audiovisuelles Material |
CD | CD-ROM / DVD |
DC | Digitalisat Digital Copy |
EL | Elektronische Ressource |
MF | Mikroform |
PR | |
XX | Unbekannt |
Beispiele:
genreCode=JL
format=PR
Die Werte für license:
Wert | Suchterm |
---|---|
al | Allianzlizenz |
kl | Konsortiallizenz |
oa | Open-Access-Dokumente (Freier Zugriff) |
com | kommerzielle Dokumente |
nl | Dokumente mit Nationallizenz |
Die Werte für classField :
Wert | Suchterm |
---|---|
arc | Architektur |
che | Chemie |
inf | Informatik |
mat | Mathematik |
phy | Physik |
tec | Technik |
bio | Biologie |
pae | Erziehungswissenschaften |
hor | Gartenbau |
geo | Geowissenschaften |
his | Geschichte |
lin | Linguistik |
lit | Literaturwissenschaften |
phi | Philosophie |
jur | Recht |
rel | Theologie |
sow | Sozialwissenschaften |
spo | Sport |
oek | Wirtschaftswissenschaften |
SRU verfügbare Kataloge
Über die SRU-Schnittstelle sind folgende Kataloge verfügbar:
Katalog | Name in SRU-Anfrage | Beschreibung | Beispiel |
---|---|---|---|
TIBKAT | tibkat | Katalog Daten von TIB | https://www.tib.eu/sru/tibkat?query=solid&recordSchema=marcxml |
KMO-AV | kmo | TIB AV-Portal - Dokumente, die für externe Export frei sind | https://www.tib.eu/sru/kmo?query=solid&recordSchema=marcxml |
OLC | olc | Online Contents Dokumente, die für externe Export frei sind | https://www.tib.eu/sru/olc?query=solid&recordSchema=marcxml |
OPEN | open | all open access Datensätze in TIB-Portal | https://www.tib.eu/sru/open?query=solid&recordSchema=marcxml |
FREE | free | alle Datensätze in TIB-Portal, die für externe Export frei sind: TIBKAT, Online Contents (exportRestricted_flag:false), TIB AV-Portal (exportRestricted_flag:false) und alle open access Dokumente | https://www.tib.eu/sru/free?query=solid&recordSchema=marcxml |
Suchanfrage
Suche nach FTX-ID ( TIB spezifische ID)
Beispiele:
- Suche nach dem Datensatz mit der FTX-ID = TIBKAT:12939193X
query=identifier="TIBKAT:12939193X"
queryType=solr&query=id:"TIBKAT:12939193X" - Suche nach dem Datensatz mit der FTX-ID = awi:doi~10.2312%2FBzPM_0684_2015
URL-Encoding für ein '%' - Zeichen: '%' - '%25'query=identifier="awi:doi~10.2312%252FBzPM_0684_2015"
queryType=solr&query=id:"awi:doi~10.2312%252FBzPM_0684_2015"
Suche nach Identifikatoren und Codes
Es wird im Standardsuchfeld (ohne Angabe des CQL- /Solr-Felders) gesucht. Wenn eine genauere Suche nötig ist, kann man das Feld numbers benutzen.
Bei der Suche mit Wildcards (*, ?) ist queryType=solr und das Feld numbers empfohlen.
- Suche nach PPN = 129110248
query=129110248
queryType=solr&query=129110248
queryType=solr&query=numbers:1291*
- Suche nach isbn = 0952701111
query=0952701111
queryType=solr&query=0952701111
queryType=solr&query=numbers:09527?1111
- Suche nach issn = 0165-6074
query=0165-6074
query=01656074
queryType=solr&query=01656074
queryType=solr&query=numbers:0165* Suche nach doi = 10.5170/CERN-2016-001
query="10.5170/CERN-2016-001"
query=numbers="10.5170/CERN-2016-001"
queryType=solr&query="10.5170/CERN-2016-001"
queryType=solr&query=numbers:10.5170\/CERN*- Suche nach coden = PIXXD2
query=PIXXD2
queryType=solr&query=PIXXD2
queryType=solr&query=numbers:PIX* - Suche nach Patentangaben = WO99-11806
query=WO99-11806
queryType=solr&query=WO99-11806
queryType=solr&query=numbers:WO99*
Sortierung
Im SRU 1.1 war die Sortierung ein Teil des Protokolls - ein Parameter sortKeys. Im SRU 1.2 wurde es vom Protokoll entfernt und eine Funktion von CQL gemacht - CQl-Parameter sortBy .
Im SRU 2.0 ist die beiden Wege der Sortierung möglich. Der Grund besteht darin, dass im SRU 2.0 man eine andere Anfragensprache außer CQL verwenden kann, und dass diese Anfragensprache die Sortierung nicht unterstützen könnte.
Die SRU - Schnittstelle von TIB ünterstürtzt die Sortierung bei zwei Felder: date und mainTitle.
Beispiele mit dem CQl Parameter sortBy :
- Suche nach 'laser' mit der Sortierung absteigend nach Erscheinungsjahr
:
https://www.tib.eu/sru/tibkat?query=laser sortBy date/sort.descending
- Suche nach 'solid' mit der Sortierung aufsteigend nach Erscheinungsjahr
Beispiele mit dem Parameter sortKeys:
- Suche nach 'laser' mit der Sortierung absteigend nach Erscheinungsjahr
- Suche nach 'laser' mit der Sortierung aufsteigend nach Erscheinungsjahr
https://www.tib.eu/sru/tibkat?query=laser&sortKeys=date,dc,0
Suche nach 'isbn:1*' mit der Sortierung aufsteigend nach Erscheinungsjahr
https://www.tib.eu/sru/tibkat?queryType=solr&query=isbn:1*&sortKeys=date,dc,0
Suche nach 'isbn:1*' mit der Sortierung aufsteigend nach Titel
https://www.tib.eu/sru/tibkat?queryType=solr&query=isbn:1*&sortKeys=title,dc,0
Suche nach 'mama oder papa' mit dem queryType=searchTerms und der Sortierung aufsteigend nach Titel
https://www.tib.eu/sru/tibkat?queryType=searchTerms=mama%20papa&sortKeys=title,dc,0
Faceted Analyse
Faceted Search ist Neues in SRU 2.0.
SRU 2.0 kann die faceted Ergebnisse für eine Abfrage anbieten: wie die Suchergebnisse über verschiedene Kategorien verteilt werden.
SRU-Schnittstelle von TIB bietet ein faceted Analyse für folgenden Kategorien: creator, license, issued, format und genreCode.
Facet Request Parameter - facetLimit
Parameter facetLimit bestimmt eine minimale Anzahl der Suchtreffer. Man kann eine Grenze pro Feldbasis und/oder eine globale Grenze angeben, die für alle Felder gilt.
Besondere Werte für facetLimit:
- -1 - die Grenze nicht bestimmt, unlimited
- 0 - keine faceted Analyse
Zum Beispiel:
1. facetLimit=100
legt die Grenze zu 100 für jedes Feld fest.
2. facetLimit=100:creator
die Grenze 100 nur für creator ist; keine faceted Analyse für anderes Feld
3. The combination: facetLimit=10,100:creator
die Grenze 100 nur für creator ist und die Grenze 10 für alle Felder
4. The combination: facetLimit=10,100:creator,200:license
die Grenze 100 für creator; 200 - für license und 10 für alle andere Felder
5. The combination: facetLimit=100:license,200:issued
die Grenze 100 für license ; 200 - für issued; keine faceted Analyse für anderes Feld
6. The combination:facetLimit= -1,100: format
die Grenze 100 für format und unlimited für alle andere Felder
7. facetLimit=0
keine faceted Analyse
https://www.tib.eu/sru/tibkat?queryType=searchTerms=mama%20papa&facetLimit=100
https://www.tib.eu/sru/tibkat?queryType=searchTerms=mama&facetLimit=-1,5:creator
https://www.tib.eu/sru/tibkat?queryType=solr&query=isbn:2*&facetLimit=10:license
Syntax einer SRU-Anfrage
Beispielanfrage:
Version 2.0
https://www.tib.eu/sru/tibkat?query=title=solid&startRecord=1&maximumRecords=5&recordSchema=marcxml
URL | Erklärung |
---|---|
Anfrage an den SRU-Server der TIB (nur für interne Butzer) | |
?version=1.2 ? | Angabe der SRU-Version: Version 1.2 /1.1 Version 2.0 |
&operation=searchRetrieve - ----- - | Befehl an den Server Version 2.0 |
&queryType | cql (Default), solr, searchTerms nur bei Version 2.0 |
&query= | Anfrage formulieren |
&startRecord=1 | Erster darzustellender Eintrag der Ergebnisliste |
&maximumRecords=5 | Maximale Anzahl den Datensätzen pro Anfrage |
&recordSchema=marcxml | Gewünschtes Format der SRU-Antwort |
Formate
Folgende Formate werden extern angeboten:
Format | Name in SRU-Anfrage |
---|---|
marcxml | |
Datacite | datacite |
Dublin core | dc |
Dublin Core Extension | dcx |
Oai Dublin Core | oai_dc |
BibTeX | bibtex |
Research Information System Format | ris |
Text DE | text_de |
Text EN | text_en |
rdf_xml | |
RDF/Turtle | rdf_turtle |
RDF/N3 | rdf_n3 |
RDF/Json | rdf_json |
JSON-based Serialization for Linked Data | json_ld |
Anzahl der gelieferten Datensätze pro Anfrage
- Standard: 10 Datensätze pro Antwort
- Maximal: 100 Datensätze pro Antwort bei Angabe von ...&maximumRecords=100 (mögliche Werte 1 bis 100)
- Abruf weiterer Datensätze: ...&startRecord=51 (mögliche Werte 1 bis unendlich)
Zusätzlich: der Link zur Vollanzeige des Datensatzes in TIB Portal
Der Link zur Vollanzeige des Datensatzes in Tib Portal wird mit dieser Regel gebaut:
https://www.tib.eu/de/suchen/id/<FTX-ID>
Zum Beispiel: Für Datensatz mit der FTX-ID = TIBKAT:506054543
https://www.tib.eu/de/suchen/id/TIBKAT:506054543/
oder
https://www.tib.eu/de/suchen/id/TIBKAT%3A506054543/
Der Datensatz im Marcxml-Format enthält diesen Link im Feld 500 (subfield code="a"):
<datafield ind1=" " ind2=" " tag="500"> <subfield code="a">https://www.tib.eu/de/suchen/id/TIBKAT%3A506054543/</subfield> </datafield>