Leipzig Data Banner

Leipziger Akteursdatenbank - die API

Allgemeines

Die Anbieter nutzen eine webbasierte Erfassungsschnittstelle, um die entsprechenden Informationen bereitzustellen. Die Plattform stellt eine REST-Schnittstelle zur Verfügung, über welche Informationen strukturiert im JSON-Format ausgelesen werden können.

Auf einzelne Datensätze einer Klasse kann teilweise über deren Klassennamen und die id zugegriffen werden.

Achtung - die intern vergebenen IDs der Art #(nr) und die id in der REST-API stimmen nicht überein.

Schnittstelle

Datenmodell - Übersicht

Im Modell wurden zunächst die zwei Klassen Akteure (users) und Aktivitäten (activities) unterschieden, welche über die REST-API ausgelesen werden können. Eine dritte Klasse Orte (locations) wurde 2020 eingeführt. Weitere kleinere Strukturen existieren als Werte einer morphologischen Tabelle (categories, goals, regions, products, …), deren Bedeutung noch genauer beschrieben werden muss.

Im Modell sind weitere Datenstrukturen implizit als Konzepte vorhanden. Das ist zum einen eine genauere Aufteilung eines Akteurs in

die alle in einer gemeinsamen Datenbanktabelle users zusammengefasst sind.

Aktivitäten sind in verschiedene Aktivitätstypen unterteilt, welche durch den Wert eines speziellen Attributs type unterschieden werden. Neben generischen Attributen haben die einzelnen Aktivitätstypen weitere spezielle Attribute, was man in einer zweistufigen (erweiterbaren) Vererbungshierarchie oder als abstrakten Datentyp (im Sinne etwa von Java Interfaces) als Mengen von Signaturen beschreiben kann. Im Weiteren wird die letztere Darstellungsform verwendet.

Die Klasse Akteure umfasst ein Sublimat aus Informationen zum Akteur selbst, zu dessen Adresse sowie zu Personen, die für den Akteur als Ansprechpartner tätig sind. Es lässt sich nicht unterscheiden, ob zum Beispiel eine Telefonnummer oder eine Adresse zum Vereinsbüro gehört oder zum Ansprechpartner. An anderer Stelle wird aber sehr wohl der Datentyp Kontakt („Kontakt zur Abholung“ einer Ressource, „Ansprechpartner“ eines Bildungsangebots) als Teilinterface mit [Name, Email-Adresse, Telefon] verwendet.

Die Klasse Aktivitäten zerfällt in die Unterklassen Event, Action, Project, Service und Store, die über das Feld type unterschieden werden. Später wurden die „Klassen“ Ressource, Bildungsangebot und Beratungsangebot als Unterklassen von Service eingeführt, wobei hier die zusätzliche Unterscheidung über das Feld service_type ausgeführt wird.

In der aktuellen Version werden für einen „einfachen Akteur“ Erfassungsmasken für die Datensatztypen Project, Event, Action sowie die drei Servicetypen Ressourcen, Bildungsangebot und Beratungsangebot angeboten.

Zur Unterscheidung der Instanzen werden ID’s als numerische Primärschlüssel der Datenbank verwendet.

Beschreibung einzelner Klassen

Akteure.

In der Collection users (Akteure) sind Informationen über Akteure zusammengefasst, wobei nicht zwischen den juristischen Personen und den für diese agierenden Personen unterschieden wird.

Prädikate in users.json:

Aktivitäten.

activities ist ein Obertyp zu verschiedenen Arten von Aktivitäten (Aktionen, Events, Projekte, Services, Stores, \ldots), die mit dem Prädikat hastype näher spezifiziert werden. In der Collection activities sind Informationen über die verschiedenen Typen von Aktivitäten zusammengefasst, wobei nicht alle Prädikate bei allen Untertypen verwendet werden.

Generische Prädikate:

Adresse besteht dabei aus:

Weitere Prädikate:

Das Folgende ist noch zu überarbeiten:

Weitere Prädikate für Events:

Weitere Prädikate für Projects:

Weitere Prädikate für Services:

Neu gibt es Beratungsangebote und Bidungsangebote, jeweils ohne Feld „Angebotsart“

Weitere Prädikate für Store:

Orte

2021 wurde eine weitere Klasse Orte ergänzt, die eine akteursübergreifende Verwaltung von Adressdaten umsetzt. Eine Adresse ist dabei eine implizite Datenstruktur, die über die API als Menge von Attributen

In der bisherigen Modellierung wurden Adressen grundsätzlich als Datenaggregate verwaltet, nicht als Datenobjekte. Wenn zu einer Aktivität keine Adresse angegeben ist, wird die Adresse aus den Profildaten des Akteurs übernommen. Spätere Änderungen dieser Profildaten haben aber aktuell keine Auswirkung auf diesen Klon.

Es ist eine akteursübergreifende Datenbank zu Orten im Aufbau, aus der häufig verwendete Adressdaten übernommen werden können. Auch dies geschieht durch einfache Übernahme der entsprechenden Attributwerte. Geplant ist, Änderungen in dieser Datenbasis in die entsprechenden Adressfelder von Aktivitäten (und auch Akteuren?) zu propagieren, wozu ein System von Backlinks aufgebaut werden müsste. Unklar bleibt, wie mit zwischenzeitlichen Änderungen umgegangen wird, die vom Besitzer der Aktivität an den früher übernommenen Adressdaten vorgenommen worden sind.

Weitere Teile der Modellierung.

Diese sind noch wenig ausgearbeitet und enthalten oft nur wenige Instanzen pro Klasse.