ner relations

ner relations geht einen Schritt weiter als ner suggest: Statt einzelne Personen, Orte und Organisationen zu erkennen, erkennt es die Beziehungen zwischen ihnen. Aus „Maria Beispiel arbeitet bei Tollwerk" wird nicht nur der Hinweis auf die beiden Entitäten, sondern der gerichtete Vorschlag Maria Beispiel → arbeitet-bei → Tollwerk. Das Kommando liest den Body einer Entität, erkennt die genannten Entitäten, lässt daraus die ausgesprochenen Beziehungen ableiten und gibt sie dir im Terminal aus.

In der späteren Web-Oberfläche taucht dieselbe Mechanik im Beziehungen-Tab als Vorschlag auf. Im CLI ist es der manuelle Auslöser pro Entität.

Wofür ist das?

Aufruf

apparat ner relations <entity-id> [--vault=<vault>]

Das Argument <entity-id> ist die NanoID der Entität, deren Body analysiert werden soll. Die --vault-Option folgt dem üblichen Apparat-Pattern: registrierter Vault-Name, absoluter oder relativer Pfad, oder Auto-Detection aus dem aktuellen Verzeichnis.

Ausgabe

Jede erkannte Beziehung wird als gerichtete Aussage ausgegeben — von links nach rechts gelesen: Quelle → Typ → Ziel.

Vault "Projekt-Notizen" — relation suggestions for Pr0j3ktN:

  - Maria Beispiel [person] (V1StGXRa)  --works_at-->  Tollwerk [organisation] (T0llW3rk)  (×1)

Die Quelle links ist die Entität, in deren Frontmatter die Beziehung geschrieben würde — das grammatische Subjekt der Aussage. Diese Richtung ist bewusst festgelegt: „Quelle Typ Ziel" muss eine wahre Aussage über den Text sein. Warum die Beziehung beim Subjekt sitzt und nicht beim Ziel, erklärt Beziehungen bearbeiten.

Beide Enden einer angezeigten Beziehung sind Entitäten, die im Vault bereits existieren — eine Beziehung, deren Subjekt oder Ziel noch keine Entität ist, taucht in der Liste nicht auf. Die Zählung ×2 heißt: die Beziehung wird im Body zweimal ausgesprochen.

Übernommen wird nichts automatisch — welche Beziehung du anlegst, entscheidest du über entity link.

Beziehungstypen

Für den Typ (works_at, written_by, …) bevorzugt Apparat die Beziehungs­namen, die in deinem Vault bereits vorkommen — so bleibt das Vokabular konsistent, statt für dieselbe Sache zwei Namen zu führen. Nur wenn keiner der bestehenden passt, wird ein neuer, kurzer Name geprägt. Die Angleichung leicht abweichender Schreibweisen übernimmt beim Anlegen die Vokabular-Konsolidierung.

Voraussetzung

ner relations braucht zwei Dienste: die Spracherkennung (für die Entitäten im Text) und das Schreibmodell — dasselbe, das auch der Chat nutzt. Beide sind Teil des Standard-Compose-Stacks und laufen automatisch mit; das Kommando wird vom apparat-Wrapper im Web-Container des Mandanten ausgeführt, wo beide erreichbar sind.

Verhalten bei Ausfall

Ist die Spracherkennung nicht erreichbar, meldet das Kommando das mit einem Hinweis auf ner ping und Exit-Code 1. Fällt das Schreibmodell aus, bricht der Aufruf ebenfalls mit Exit-Code 1 ab. Das Schreiben und Lesen im Vault bleibt davon unberührt — nur der Beziehungs­vorschlag fällt aus.