Inhalt

CRIS-Webservice

tl;dr

Der CRIS-Webservice liefert XML-Repräsentationen von Datensätzen (z.B. Publikationen), deren Verknüpfung untereinander (z.B. Autoren einer Publikation) und fertige Verknüpfungsketten (z.B. alle Publikationen an einer Organisation). Abfragen auf den Webservice erfolgen per HTTP-GET-Abfragen, welche zur Geschwindigkeitssteigerung in einem Cache zwischengespeichert werden. Der Zugriff auf den Webservice ist nur innerhalb der FAU möglich. Für die Einbindung in WordPress oder den FAU-Webbaukasten können Sie fertige Plug-Ins nutzen. Für eigene Entwicklungen steht die nachfolgende Dokumentation zur Verfügung.

Einführung

Die Daten im Forschungsinformationssystem CRIS können auch über einen Webservice im XML-Format abgerufen werden. Es sind dabei nur Daten zugänglich, welche auch im öffentlichen Forschungsportal verfügbar sind1. Der Zugriff auf den CRIS-Webservice ist nur innerhalb des FAU-Netzes möglich.

Dieses Dokument enthält eine erste Übersicht über den CRIS-Webservice. Wenn Sie weitere Informationen benötigen, wenden Sie sich bitte an den CRIS-Support.

Zugang und Cache

Endpunkt für alle Anfragen ist die Adresse https://cris.fau.de/ws-cached/1.0/public/. Hinter dieser Adresse ist ein Cache installiert, welcher die Antworten auf die Anfragen zwischenspeichert. Bei der ersten Anfrage werden die Informationen direkt aus dem CRIS-System abgerufen und ausgeliefert. Je nach Komplexität der Anfrage kann dies mehrere Sekunden Zeit in Anspruch nehmen. Alle weiteren Abfragen werden anschließend aus dem Cache bedient. Der Cache kommt dabei nur zum Einsatz, sofern die Anfrage erfolgreich war.

Die Inhalte im Cache werden regelmäßig durch Daten aus dem CRIS-System aktualisiert. Eine komplette Erneuerung wird zwischen 7:30 bis ca. 9 Uhr durchgeführt (pre-seeding). Änderungen an Publikationen werden für die Autorinnen und Autoren und die jeweils zugeordnete Organisationseinheit innerhalb 15 Minuten ausgeliefert. Werden Abfragen über einen längeren Zeitraum nicht genutzt, so werden diese aus dem Cache-/Seed-Prozess automatisch entfernt.

Der Endpunkt ist versioniert, aktuell ist die Version 1.0. Erfolgt der Aufruf ohne Versionsangabe, so wird immer die aktuellste Version genutzt. Für die Anbindung von Drittsystemen wird dringend die Nutzung mit Versionsnummer empfohlen!

Struktur

Für die Abfrage von Publikationen bieten sich als Einstiegspunkte entweder Organisationseinheiten und Personen an. Alternativ kann auch eine Publikation als Einstiegspunkt genutzt werden. Jeder Datensatz kann mit einer eindeutigen ID referenziert werden, eine Recherche nach diesem Schlüssel ist im öffentlichen Forschungsportal möglich.

Die Schlüssel können direkt aus der URL abgelesen werden, z.B. aus https://cris.fau.de/converis/publicweb/Person/163324 extrahiert man die ID 163324, aus https://cris.fau.de/converis/publicweb/Organisation/142477 die ID 142477.

Diese Schlüssel sind Primärschlüssel im System und daher stabil und eineindeutig. Die Datenstruktur der gelieferten XML-Datensätze ist passt sich flexibel an das Datenmodell in CRIS an, eine DTD oder XSD liegt daher nicht vor. Der Umfang der abfragbaren Daten ist jedoch mit dem Datenschutzbeauftragten der FAU abgestimmt und es erfolgt keine Umbenennung von Datenfeldern. Die Datenstrukturen sind damit innerhalb einer Version stabil (siehe Endpunkt oben). Innerhalb einer Version werden keine relevanten Felder entfernt oder hinzugefügt und keine Umbenennungen von Identifikatoren vorgenommen. Die Reihenfolge der Kindelemente kann sich jedoch ändern.

Version 1.0: Die Datenstrukturen sind schlecht mit XPath-Ausdrücken zu verarbeiten, da alle Kindelemente attribute heißen und sich nur um Wert des Attributes name unterscheiden. Jedes <attribute>-Element enthält darüber hinaus das Attribut language mit den möglichen Werten 0, 1 und 2 für „ohne“, „Englisch“ und „Deutsch“. Bsp: „_Short description“ existiert 2x, jeweils einmal mit dem Sprachcode 1 und 2.

Beispielabfragen

Einzelabfrage von Datensätzen

Ein Datensatz kann über die URL https://cris.fau.de/ws-cached/1.0/public/infoobject/get/Entity/ID abgerufen werden. Für die Angabe Entity muss der entsprechende Typ des Datensatzes eingesetzt werden (hier: Person, Card, Publication, Organisation), ID wird durch den Primärschlüssel gesetzt.

Person

Die Abfrage erfolgt über die URL https://cris.fau.de/ws-cached/1.0/public/infoobject/get/Person/ID, hier das Ergebnis der Abfrage mit ID=163324.

[xml]

<?xml version=“1.0″ encoding=“UTF-8″ standalone=“yes“?>
<infoObject type=“Person“ id=“163324″ createdOn=“2013-02-09T11:29:25.393+01:00″ statusProcess=“2″ statusVisible=“true“ updatedOn=“2015-05-13T02:21:03.989+02:00″>
<attribute disposition=“string“ language=“1″ name=“_Short description“>
<data>Hornegger, Joachim Prof. Dr.-Ing.</data>
</attribute>
<attribute disposition=“string“ language=“2″ name=“_Short description“>
<data>Hornegger, Joachim Prof. Dr.-Ing.</data>
</attribute>
<attribute disposition=“string“ language=“0″ name=“Preferred_name“>
<data/>
</attribute>
<attribute disposition=“choicegroup“ language=“0″ name=“salutation“>
<data/>
</attribute>
<attribute disposition=“email“ language=“0″ name=“email“>
<data>joachim.hornegger@fau.de</data>
</attribute>
<attribute disposition=“string“ language=“0″ name=“cfFirstNames“>
<data>Joachim</data>
</attribute>
<attribute disposition=“string“ language=“0″ name=“cfFamilyNames“>
<data>Hornegger</data>
</attribute>
<attribute disposition=“string“ language=“0″ name=“FAU_Person_ID“>
<data>3518</data>
</attribute>
<attribute disposition=“string“ language=“1″ name=“cfResInt“>
<data/>
</attribute>
<attribute disposition=“string“ language=“2″ name=“cfResInt“>
<data/>
</attribute>
<attribute disposition=“string“ language=“0″ name=“embeddedVideos“>
<data/>
</attribute>
<attribute disposition=“choicegroup“ language=“0″ name=“Academic title“>
<data>3706</data>
<additionalInfo>Prof. Dr.-Ing.</additionalInfo>
</attribute>
</infoObject>

[/xml]

Verknüpfungen zwischen Datensätzen

Viele Datensätze in CRIS sind untereinander verknüpft. So gehören u.U. mehrere Visitenkarten zu einer Person. Per Webservice lassen sich diese Informationen abfragen. Die Abfragen liefern nicht nur die Schlüssel-IDs zurück, sondern gleich die verknüpften Datensätze.

Das grundsätzliche Schema zum Abruf ist https://cris.fau.de/ws-cached/1.0/public/infoobject/getrelated/Entity/ID/Relation, wobei Entity wie oben für den Typ des Datensatzes steht, ID dessen Primärschlüssel enthält und Relation die Art der Beziehung definiert (hier: pers_has_card, publ_has_card, card_has_orga).

Visitenkarte(n) / Person

Die Struktur der Abfrage folgt dem Schema https://cris.fau.de/ws-cached/1.0/public/infoobject/getrelated/Person/ID/pers_has_card (Bsp: Karten zur ID 163324).

Diese Abfrage funktioniert auch in entgegengesetzter Richtung via https://cris.fau.de/ws-cached/1.0/public/infoobject/getrelated/Card/ID/pers_has_card – die ID ist hier diejenige der Karte (entsprechend des obigen Beispiels Person zur Karte ID 95171).

Visitenkarte / Publikation

Jede Publikation in CRIS ist mit mindestens einer Visitenkarte verknüpft. Dies erlaubt die folgenden Abfragen:

  • Visitenkarten einer Publikation: https://cris.fau.de/ws-cached/1.0/public/infoobject/getrelated/Publication/ID/Publ_has_CARD (Beispiel mit Publikation-ID 1007306),
  • alle Publikationen einer Visitenkarte: https://cris.fau.de/ws-cached/1.0/public/infoobject/getrelated/Card/ID/Publ_has_CARD (Beispiel mit Karten-ID 95171).
Karte / Organisation

Visitenkarten sind mit genau einer Organisation verknüpft.

  • Organisation einer Visitenkarte: https://cris.fau.de/ws-cached/1.0/public/infoobject/getrelated/Card/ID/card_has_orga (Beispiel mit Karten-ID 95171),
  • Visitenkarte(n) einer Organisation: https://cris.fau.de/ws-cached/1.0/public/infoobject/getrelated/Organisation/ID/card_has_orga (Beispiel mit Organisation-ID 142477).

Verknüpfungsketten

Der Webservice bietet eine elegante Art zur Abfrage von Informationen über hintereinanderliegende Verknüpfungen, die sogenannten Auto-Relationen. Dies erlaubt z.B. die einfache Abfrage aller Publikationen mit ausschließlich der Angabe einer Organisation-ID, obwohl zwei Relationen zwischen den Datensätzen liegen (card_has_orga und publ_has_card).

Diese Auto-Relationen werden direkt im System definiert und können somit nicht frei kombiniert werden. CRIS bietet derzeit folgende Auto-Relationen im Webservice an:

  • alle Publikationen einer Person: https://cris.fau.de/ws-cached/public/infoobject/getautorelated/Person/ID/PERS_2_PUBL_1 (Beispiel mit Personen-ID 163324). Ist eine Person an mehreren Organisationen tätig, so werden hier sämtliche Publikationen ausgegeben. Werden nur die Publikation einer Person an einer bestimmten Organisation benötigt (z.B. für die Darstellung eines Checkbriefs innerhalb einer Lehrstuhlseite), so muss die Abfrage über die Visitenkarte erfolgen (siehe oben).
  • alle Publikationen an einer Organisation: https://cris.fau.de/ws-cached/public/infoobject/getautorelated/Organisation/ID/ORGA_2_PUBL_1 (Beispiel mit Organisation-ID 142477).

Hinweis: Abweichend von den bisherigen Relationsdefinitionen sind jene für die Auto-Relationen case-sensitive, müssen also GROSS geschrieben werden.


1 Für Publikationen bedeutet dies, dass der Status auf Fertig, alle Autoren verknüpft gesetzt ist.