Graph-IT

Die Graph-API

Mit der Graph-API kann in unterschiedlichen Kontexten auf einen Graphen zugegriffen werden: sowohl in Daten- und Aktionfunktionen innerhalb des Graphen selbst als auch in externen Scripten und GUI-Apps.

Um sicherzustellen, dass Datenfunktionen keine Seiteneffekte haben, sind die in Datenfunktionen verwendbaren API-Funktionen sehr weitgehend eingeschränkt.

Knoten-Instanzen

erzeuge

erzeuge(string $knoten_typ): ?string

Erzeugt eine neue Instanz vom Knoten-Typ $knoten_typ. Ist der Knoten-Typ unbekannt so wird null zurückgegeben.

Darf nicht in Datenfunktionen verwendet werden.

vernichte

vernichte(string $node_guid): ?boolean

Vernichtet die Instanz $node_guid. Gibt true zurück, wenn die Instanz tatsächlich vernichtet wurde.

Darf nur in Aktionfunktionen *_loeschen verwendet werden.

knotentyp

knotentyp(string $node_guid): ?string

Gibt den Knoten-Typ zu der gegebenen Instanz $node_guid zurück.

Darf nicht in Datenfunktionen verwendet werden.

Attribute

setze

setze(string $node_guid, string $attributknoten_typ, string $wert): ?boolean

Setzt den Wert des Attributknoten $attributknoten_typ an der Instanz $node_guid auf $wert. Gibt true zurück, wenn der gespeicherte Wert sich geändert hat.

Darf nicht in Datenfunktionen verwendet werden.

attribut

attribut(string $node_guid, string $attributknoten_typ): ?string

Gibt den Wert zurück, den der Attributknoten $attributknoten_typ an der Instanz $node_guid hat.

attribute

attribute(string $node_guid, string $knoten_typ, string $attribute): ?array<string, ?string>

Gibt ein assoziatives Array mit den Werten zurück, die die Atttribute in $attribute an der Instanz $node_guid vom Knoten-Typ $knoten_typ haben.

attributsknoten

attributsknoten(string $attributknoten_typ, string $wert): ?string

Gibt die eindeutige Instanz zurück, an der der Attributknoten $attributknoten_typ den Wert $wert hat.

Darf nicht in Datenfunktionen verwendet werden.

berechne

berechne(string $node_guid, string $datenfunktion_name): ?mixed

Berechnet den Wert der Datenfunktion $datenfunktion_name an der Instanz $node_guid und gibt ihn zurück.

Verknüpfungen

verknuepfe

verknuepfe(string $node_guid1, string $node_guid2): ?boolean

Verknüpft die beiden Instanzen $node_guid1 und $node_guid2. Gibt true zurück, wenn die Instanzen neu verknüpft wurden.

Darf nicht in Datenfunktionen verwendet werden.

entknuepfe

entknuepfe(string $node_guid1, string $node_guid2): ?boolean

Entknüpft die beiden Instanzen $node_guid1 und $node_guid2. Gibt true zurück, wenn zuvor verknüpfte Instanzen entknüpft wurden.

Darf nicht in Datenfunktionen verwendet werden.

knoten

knoten(string $node_guid, string $knoten_typ): ?string

Gibt die eindeutige Instanz vom Knoten-Typ $knoten_typ zurück, welche mit der Instanz $node_guid verknüpft ist. Kann keine solche Instanz gefunden werden, so wird null zurück gegeben.

Darf in Datenfunktionen nur auf der fest gesetzten Variable $node_guid aufgerufen werden.

Reihenfolgen und Eingrenzungen

Reihenfolgen werden in allen der folgenden API-Funktionen verwendet, die mehrere Instanzen zurückgeben. Eingrenzungen auf Instanzen, die bestimmte Bedingungen erfüllen, werden zusätzlich auch in den API-Funktionen verwendet, die eine Anzahl von Instanzen ermitteln.

Reihenfolgen sind kommaseparierte Listen von Attributen des entsprechenden Knoten-Typs, wobei optional eine Richtung (asc oder desc) angegeben werden kann. Vorgabe ist eine aufsteigende Reihenfolge (asc). Die Ergebnisse werden dann nacheinander nach den Werten dieser Attribute sortiert.

Für einen Knoten mit den Attributen datum und nummer könnte eine Reihenfolge beispielsweise "datum desc, nummer asc" lauten, um die neuesten Daten am Anfang des Ergebnisses zu haben, aber innerhalb eines Datums dann nach aufsteigenden Nummern zu sortieren.

Eingrenzungen können aus einer Bedingung und einer Limitierung bestehen, wobei eines von beiden vorhanden sein muss.

Eine Bedingung kann mit den logischen Operatoren and, or, not und xor und Klammern aus atomaren Bedingungen !attribut, attribut und Vergleichen von Attributen mit den Operatoren =, !=, >=, <=, >, <, like, not like, regexp und not regexp zusammengesetzt werden. Die rechte Seite eines Vergleichs kann dabei eine literale Konstante, ein anderes Attribut oder ein mit : beginnender Parameter sein.

Beispiele für solche zusammengesetzten Bedingungen sind:

Parameter müssen in einem assoziativen Array als letztem Argument des jeweiligen API-Aufrufs gesetzt werden.

Eine Limitierung besteht aus dem Schlüsselwort limit und entweder nur der Anzahl der Ergebnisse, die maximal zurückgegeben werden sollen, oder einem Offset, bei welchem Ergebnis begonnen werden soll, und einer solchen Anzahl durch Komma getrennt.

Beispiele für solche Limitierungen sind:

Listen von verknüpften Instanzen

liste

liste(string $node_guid, string $knoten_typ, string|false $reihenfolge = false, string|false $eingrenzung = false, array<string, mixed> $parameter = array()): ?list<string>

Gibt eine Liste der GUIDs der mit der Instanz $node_guid verknüpften Instanzen vom Knoten-Typ $knoten_typ zurück.

Für die Parameter $reihenfolge, $eingrenzung und $parameter, siehe vorheriger Abschnitt.

Darf in Datenfunktionen nur auf der fest gesetzten Variable $node_guid aufgerufen werden.

listeattribute

listeattribute(string $node_guid, string $knoten_typ, string $attribute, string|false $reihenfolge = false, string|false $eingrenzung = false, array<string, mixed> $parameter = array()): ?array<string, array<string, ?string>>

Gibt ein GUID-indiziertes Array von Attribut-indizierten Arrays für alle mit der Instanz $node_guid verknüpften Instanzen vom Knoten-Typ $knoten_typ mit den Werten der Attribute in $attribute zurück.

Für die Parameter $reihenfolge, $eingrenzung und $parameter, siehe vorheriger Abschnitt.

Darf in Datenfunktionen nur auf der fest gesetzten Variable $node_guid aufgerufen werden.

listezahl

listezahl(string $node_guid, string $knoten_typ, string|false $eingrenzung = false, array<string, mixed> $parameter = array()): ?integer

Gibt die Anzahl der Instanzen zurück, welche durch einen Aufruf von liste() mit gleichen Parametern zurückgegeben würden.

Für die Parameter $eingrenzung und $parameter, siehe vorheriger Abschnitt.

Darf in Datenfunktionen nur auf der fest gesetzten Variable $node_guid aufgerufen werden.

Mögliche verknüpfbare Instanzen

moegliche

moegliche(string $node_guid, string $knoten_typ, string|false $reihenfolge = false, string|false $eingrenzung = false, array<string, mixed> $parameter = array()): ?list<string>

Gibt eine Liste der GUIDs aller Instanzen vom Knoten-Typ $knoten_typ zurück, die noch mit der Instanz $node_guid verknüpft werden können, also noch nicht mit ihr verknüpft sind und bei einer zu-1-Verknüpfung oder Gruppe auch noch nicht mit einer anderen Instanz verknüpft sind.

Für die Parameter $reihenfolge, $eingrenzung und $parameter, siehe entsprechender Abschnitt.

Darf nicht in Datenfunktionen verwendet werden.

moeglicheattribute

moeglicheattribute(string $node_guid, string $knoten_typ, string $attribute, string|false $reihenfolge = false, string|false $eingrenzung = false, array<string, mixed> $parameter = array()): ?array<string, array<string, ?string>>

Gibt ein GUID-indiziertes Array von Attribut-indizierten Arrays aller Instanzen vom Knoten-Typ $knoten_typ zurück, die noch mit der Instanz $node_guid verknüpft werden können, mit den Werten der Attribute in $attribute.

Für die Parameter $reihenfolge, $eingrenzung und $parameter, siehe entsprechender Abschnitt.

Darf nicht in Datenfunktionen verwendet werden.

moeglichezahl

moeglichezahl(string $node_guid, string $knoten_typ, string|false $eingrenzung = false, array<string, mixed> $parameter = array()): ?integer

Gibt die Anzahl der Instanzen zurück, welche durch einen Aufruf von moegliche() mit gleichen Parametern zurückgegeben würden.

Für die Parameter $eingrenzung und $parameter, siehe entsprechender Abschnitt.

Darf nicht in Datenfunktionen verwendet werden.

Listen aller Instanzen

alle

alle(string $knoten_typ, string|false $reihenfolge = false, string|false $eingrenzung = false, array<string, mixed> $parameter = array()): ?list<string>

Gibt eine Liste der GUIDs aller Instanzen vom Knoten-Typ $knoten_typ zurück.

Für die Parameter $reihenfolge, $eingrenzung und $parameter, siehe entsprechender Abschnitt.

Darf nicht in Datenfunktionen verwendet werden.

alleattribute

alleattribute(string $knoten_typ, string $attribute, string|false $reihenfolge = false, string|false $eingrenzung = false, array<string, mixed> $parameter = array()): ?array<string, array<string, ?string>>

Gibt ein GUID-indiziertes Array von Attribut-indizierten Arrays aller Instanzen vom Knoten-Typ $knoten_typ mit den Werten der Attribute in $attribute zurück.

Für die Parameter $reihenfolge, $eingrenzung und $parameter, siehe entsprechender Abschnitt.

Darf nicht in Datenfunktionen verwendet werden.

allezahl

allezahl(string $knoten_typ, string|false $eingrenzung = false, array<string, mixed> $parameter = array()): ?integer

Gibt die Anzahl der Instanzen zurück, welche durch einen Aufruf von alle() mit gleichen Parametern zurückgegeben würden.

Für die Parameter $eingrenzung und $parameter, siehe entsprechender Abschnitt.

Darf nicht in Datenfunktionen verwendet werden.

Aktionen

aktion

aktion(string $node_guid, string $aktionfunktion_name): ?boolean

Führt die Aktionfunktion $aktionfunktion_name für die Instanz $node_guid aus.

Darf nicht in Datenfunktionen verwendet werden.

Session-Variablen

sessionsetze

sessionsetze(string $schluessel, mixed $wert): ?boolean

Setzt den Wert $value einer Session-Variable $schluessel für diese GraphConnection. Gibt true zurück, wenn sich der Wert geändert hat, false, wenn er sich nicht geändert hat, und null, wenn die Variable nicht existiert.

sessionattribut

sessionattribut(string $schluessel, ?mixed $default = null): ?mixed

Ruft den Wert einer Session-Variable $schluessel an dieser GraphConnection ab. Kann kein Wert gefunden werden, so wird $default zurückgegeben.

Graphmodul-Services

service

service(string $graphmodulservice_name, mixed ...$parameter): mixed

Ruft den Service $graphmodulservice_name mit den Parametern ...$parameter auf.