ci / test (push) Successful in 27s
- ontology/know.yaml: 49 Klassen, 66 Beziehungen, 12 Vokabulare (72 Konzepte); erzeugt: know.ttl (OWL + SKOS), Ansicht aus viewer.html.tmpl - knaster.ontology: Modell + Prüfung, Export, Momentaufnahme der n8n-Workflows (nur GET; KNOW-Spezifikation aus dem Workflow-Code, Aufrufe inkl. Laufzeit- Operationen, direktes SQL), Abgleich, Übernahme von Entscheidungen - Service-Routine Schritt 8: Verstöße als Befunde, Ontologie-Änderungen als Vorschläge ontology_change (immer Freigabe); „ordne P-x <konzept> zu“; Entscheidungen in ontology_decisions, `knaster ontology apply` schreibt sie in die YAML (Version +1) - CLI: knaster ontology validate|export|snapshot|check|apply; knaster validate prüft Modell und Aktualität der Turtle-Datei - Gegen echten n8n-Export geprüft: neue Befunde B31–B33 (verified/confirmed, KAN ruft unbekannte Operation, MPA ordnet Projektereignisse nie ein) - SPEC-ontology, BETRIEB §6, Router-Image enthält die Ontologie Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1293 lines
34 KiB
YAML
1293 lines
34 KiB
YAML
# KNOW-Ontologie: Quelle der Wahrheit für Begriffe, Beziehungen und Vokabulare der n8n-Wissensdatenbank.
|
|
# Pflege: SPEC-ontology.md. Kern (classes, relations) per Commit; Vokabulare wachsen über Vorschläge der
|
|
# Service-Routine und `knaster ontology apply`. Erzeugt: Turtle, Graph, Webseite (`knaster ontology export`).
|
|
id: know
|
|
version: 1
|
|
label: KNOW-Ontologie
|
|
namespace: urn:mygodel:know#
|
|
modules:
|
|
mail: Mail & Absender
|
|
kanbau: Kontakte & Projekte
|
|
docs: Dokumente
|
|
kaf: Ankauf (KAF)
|
|
finance: Buchhaltung
|
|
learning: Lernen
|
|
agent: Agent
|
|
bsb: Browser-Sessions
|
|
llm: LLM-Worker
|
|
system: Externe Systeme
|
|
classes:
|
|
Postfach:
|
|
label: Postfach
|
|
module: mail
|
|
definition: Ein Microsoft-365-Postfach, das die Workflows lesen. Es gibt keine eigene Tabelle, das Postfach steckt in
|
|
der Spalte mailbox mehrerer Tabellen.
|
|
key: mailbox
|
|
Mail:
|
|
label: Mail
|
|
module: mail
|
|
definition: Eine eingegangene und klassifizierte Mail.
|
|
table: mail_events
|
|
key: message_id
|
|
sensitive: Absender und Betreff jeder verarbeiteten Mail
|
|
attributes:
|
|
id: BIGSERIAL
|
|
message_id: TEXT
|
|
mailbox: TEXT
|
|
sender: TEXT
|
|
subject: TEXT
|
|
received_at: TIMESTAMPTZ
|
|
category: TEXT
|
|
assigned_project_key: TEXT
|
|
workflow_status: TEXT
|
|
raw_signals: JSONB
|
|
last_processed_at: TIMESTAMPTZ
|
|
Absender:
|
|
label: Absender
|
|
module: mail
|
|
definition: Absenderadresse, beobachtet in einem Postfach über ein Zeitfenster (Profil mit Kategorien, Junk-Anteil, Abmelde-Link).
|
|
table: sender_observations
|
|
key: observation_key
|
|
attributes:
|
|
id: BIGSERIAL
|
|
observation_key: TEXT
|
|
mailbox: TEXT
|
|
email: TEXT
|
|
registered_domain: TEXT
|
|
display_name: TEXT
|
|
window_from: TIMESTAMPTZ
|
|
window_to: TIMESTAMPTZ
|
|
mail_count: INTEGER
|
|
junk_count: INTEGER
|
|
category_histogram: JSONB
|
|
dominant_category: TEXT
|
|
dominant_share: NUMERIC
|
|
avg_confidence: NUMERIC
|
|
absender_typ: TEXT
|
|
mail_art: TEXT
|
|
unsubscribe_url: TEXT
|
|
unsubscribe_mailto: TEXT
|
|
unsubscribe_one_click: BOOLEAN
|
|
first_mail_at: TIMESTAMPTZ
|
|
last_mail_at: TIMESTAMPTZ
|
|
subjects_sample: JSONB
|
|
source: TEXT
|
|
created_at: TIMESTAMPTZ
|
|
updated_at: TIMESTAMPTZ
|
|
Domain:
|
|
label: Domain
|
|
module: mail
|
|
definition: Registrierte Domain eines Absenders; bekannte Plattformen sind eigens markiert.
|
|
table: platform_domains
|
|
key: registered_domain
|
|
attributes:
|
|
id: BIGSERIAL
|
|
registered_domain: TEXT
|
|
display_name: TEXT
|
|
status: TEXT
|
|
source: TEXT
|
|
evidence_json: JSONB
|
|
first_seen_at: TIMESTAMPTZ
|
|
last_seen_at: TIMESTAMPTZ
|
|
updated_at: TIMESTAMPTZ
|
|
Postfachzugriff:
|
|
label: Postfachzugriff
|
|
module: mail
|
|
definition: Delegierter Zugriff auf ein Postfach (OAuth-Token, verschlüsselt gespeichert).
|
|
table: mailbox_grants
|
|
key: grant_key + provider
|
|
sensitive: OAuth-Tokens, verschlüsselt (AES-256-GCM)
|
|
attributes:
|
|
id: BIGSERIAL
|
|
grant_key: TEXT
|
|
provider: TEXT
|
|
scope: TEXT
|
|
token_ciphertext: TEXT
|
|
token_iv: TEXT
|
|
token_tag: TEXT
|
|
token_alg: TEXT
|
|
expires_hint: TIMESTAMPTZ
|
|
status: TEXT
|
|
source_workflow: TEXT
|
|
created_at: TIMESTAMPTZ
|
|
updated_at: TIMESTAMPTZ
|
|
MailKategorie:
|
|
label: Mail-Kategorie
|
|
module: mail
|
|
definition: 'Fachliche Kategorie einer Mail mit Regeln: ab wie vielen Beobachtungen die KI übersprungen wird, Priorität,
|
|
Modellwahl, Safety-Floor.'
|
|
table: workflow_hint_config
|
|
key: config_key
|
|
attributes:
|
|
config_key: TEXT
|
|
min_observations_for_skip_ai: INTEGER
|
|
priority_level: TEXT
|
|
preferred_model: TEXT
|
|
safety_floor: BOOLEAN
|
|
relevance_weight: NUMERIC
|
|
outlook_category: TEXT
|
|
requires_action: BOOLEAN
|
|
description: TEXT
|
|
updated_at: TIMESTAMPTZ
|
|
Projekt:
|
|
label: Projekt
|
|
module: kanbau
|
|
definition: Bauprojekt aus KanBau mit Adresse und Kürzel.
|
|
table: projects
|
|
key: project_key
|
|
attributes:
|
|
id: BIGSERIAL
|
|
project_key: TEXT
|
|
kanbau_project_id: TEXT
|
|
project_number: TEXT
|
|
project_name: TEXT
|
|
short_code: TEXT
|
|
company_context: TEXT
|
|
street: TEXT
|
|
zip: TEXT
|
|
city: TEXT
|
|
full_address: TEXT
|
|
normalized_address: TEXT
|
|
status: TEXT
|
|
raw_kanbau_json: JSONB
|
|
last_synced_at: TIMESTAMPTZ
|
|
created_at: TIMESTAMPTZ
|
|
updated_at: TIMESTAMPTZ
|
|
ProjektAlias:
|
|
label: Projekt-Alias
|
|
module: kanbau
|
|
definition: 'Andere Bezeichnung für ein Projekt: Adresse, Kürzel oder ein aus Mails gelerntes Token.'
|
|
table: project_aliases
|
|
key: alias_key
|
|
attributes:
|
|
id: BIGSERIAL
|
|
alias_key: TEXT
|
|
project_key: TEXT
|
|
kanbau_project_id: TEXT
|
|
alias_type: TEXT
|
|
alias_value: TEXT
|
|
normalized_value: TEXT
|
|
source_workflow: TEXT
|
|
confidence: NUMERIC
|
|
evidence_json: JSONB
|
|
quality_status: TEXT
|
|
verified_at: TIMESTAMPTZ
|
|
created_at: TIMESTAMPTZ
|
|
Kontakt:
|
|
label: Kontakt
|
|
module: kanbau
|
|
definition: Firma oder Person mit Kontaktdaten, Steuernummern und Relevanz-Score.
|
|
table: contacts
|
|
key: contact_key
|
|
sensitive: 'Personenbezogen: E-Mail, Telefon, Steuer-Nr., USt-IdNr. (IBAN nur als Hash)'
|
|
attributes:
|
|
id: BIGSERIAL
|
|
contact_key: TEXT
|
|
contact_type: TEXT
|
|
display_name: TEXT
|
|
legal_name: TEXT
|
|
normalized_name: TEXT
|
|
email: TEXT
|
|
phone: TEXT
|
|
website: TEXT
|
|
tax_id: TEXT
|
|
vat_id: TEXT
|
|
iban_hash: TEXT
|
|
address_json: JSONB
|
|
source: TEXT
|
|
source_confidence: NUMERIC
|
|
kanbau_address_id: TEXT
|
|
raw_evidence_json: JSONB
|
|
quality_status: TEXT
|
|
first_seen_at: TIMESTAMPTZ
|
|
last_seen_at: TIMESTAMPTZ
|
|
verified_at: TIMESTAMPTZ
|
|
created_at: TIMESTAMPTZ
|
|
updated_at: TIMESTAMPTZ
|
|
business_relevance_score: NUMERIC
|
|
KontaktAlias:
|
|
label: Kontakt-Alias
|
|
module: kanbau
|
|
definition: Andere Schreibweise eines Kontakts.
|
|
table: contact_aliases
|
|
key: alias_key
|
|
attributes:
|
|
id: BIGSERIAL
|
|
alias_key: TEXT
|
|
contact_key: TEXT
|
|
alias_type: TEXT
|
|
alias_value: TEXT
|
|
normalized_value: TEXT
|
|
source_workflow: TEXT
|
|
confidence: NUMERIC
|
|
evidence_json: JSONB
|
|
quality_status: TEXT
|
|
created_at: TIMESTAMPTZ
|
|
Projektbeteiligung:
|
|
label: Projektbeteiligung
|
|
module: kanbau
|
|
definition: Rolle eines Kontakts in einem Projekt, mit Gültigkeitszeitraum (reifizierte Beziehung).
|
|
table: contact_project_relations
|
|
key: relation_key
|
|
attributes:
|
|
id: BIGSERIAL
|
|
relation_key: TEXT
|
|
contact_key: TEXT
|
|
project_key: TEXT
|
|
relation_type: TEXT
|
|
confidence: NUMERIC
|
|
source_workflow: TEXT
|
|
evidence_json: JSONB
|
|
valid_from: DATE
|
|
valid_to: DATE
|
|
quality_status: TEXT
|
|
created_at: TIMESTAMPTZ
|
|
Projektereignis:
|
|
label: Projektereignis
|
|
module: kanbau
|
|
definition: Aus einer Mail erkanntes Ereignis zu einem Projekt (Verzögerung, Mangel, Termin, Kosten, Info) mit Dringlichkeit.
|
|
table: project_events
|
|
key: message_id
|
|
attributes:
|
|
id: BIGSERIAL
|
|
message_id: TEXT
|
|
project_key: TEXT
|
|
mailbox: TEXT
|
|
sender: TEXT
|
|
event_date: TIMESTAMPTZ
|
|
category: TEXT
|
|
affected_unit: TEXT
|
|
urgency: TEXT
|
|
summary: TEXT
|
|
sharepoint_path: TEXT
|
|
quality_status: TEXT
|
|
source_workflow: TEXT
|
|
created_at: TIMESTAMPTZ
|
|
updated_at: TIMESTAMPTZ
|
|
Ereignisart:
|
|
label: Ereignisart
|
|
module: kanbau
|
|
definition: Art eines Projektereignisses. Als CHECK-Constraint der Spalte project_events.category festgelegt.
|
|
key: category
|
|
Projektordner:
|
|
label: Projektordner
|
|
module: kanbau
|
|
definition: SharePoint-Ordner eines Projekts.
|
|
table: project_folders
|
|
key: project_key + drive_id
|
|
attributes:
|
|
id: BIGSERIAL
|
|
project_key: TEXT
|
|
drive_id: TEXT
|
|
folder_item_id: TEXT
|
|
folder_path: TEXT
|
|
folder_name: TEXT
|
|
verified_at: TIMESTAMPTZ
|
|
source_workflow: TEXT
|
|
created_at: TIMESTAMPTZ
|
|
updated_at: TIMESTAMPTZ
|
|
Projektkuerzel:
|
|
label: Projektkürzel
|
|
module: kanbau
|
|
definition: Kürzel einer Baustelle mit der zuständigen Gesellschaft.
|
|
table: project_companies
|
|
key: kuerzel
|
|
attributes:
|
|
kuerzel: TEXT
|
|
gesellschaft: TEXT
|
|
quelle: TEXT
|
|
bestaetigt: BOOLEAN
|
|
baustelle: TEXT
|
|
evidence_json: JSONB
|
|
created_at: TIMESTAMPTZ
|
|
updated_at: TIMESTAMPTZ
|
|
Gesellschaft:
|
|
label: Gesellschaft
|
|
module: kanbau
|
|
definition: Rechtsträger, dem Projekte und Rechnungen zugeordnet werden. Als CHECK-Constraint festgelegt.
|
|
key: gesellschaft
|
|
Rechnungsbeobachtung:
|
|
label: Rechnungsbeobachtung
|
|
module: kanbau
|
|
definition: In einer Rechnung (Mail-Anhang) beobachtete Zuordnung Kürzel → Gesellschaft.
|
|
table: invoice_company_observations
|
|
key: message_id + file_name
|
|
attributes:
|
|
message_id: TEXT
|
|
file_name: TEXT
|
|
kuerzel: TEXT
|
|
gesellschaft: TEXT
|
|
mailbox: TEXT
|
|
source_workflow: TEXT
|
|
created_at: TIMESTAMPTZ
|
|
updated_at: TIMESTAMPTZ
|
|
Dokument:
|
|
label: Dokument
|
|
module: docs
|
|
definition: Oberbegriff für alle gespeicherten Dokumente und Extraktionen (abstrakt).
|
|
abstract: true
|
|
AnhangExtraktion:
|
|
label: Anhang-Extraktion
|
|
module: docs
|
|
definition: Text und strukturierte Felder, die aus einem Mail-Anhang gelesen wurden.
|
|
table: document_extractions
|
|
key: id
|
|
sensitive: Extrahierter Volltext von Anhängen
|
|
subclass_of: Dokument
|
|
attributes:
|
|
id: BIGSERIAL
|
|
request_id: TEXT
|
|
message_id: TEXT
|
|
mailbox: TEXT
|
|
attachment_id: TEXT
|
|
file_name: TEXT
|
|
content_type: TEXT
|
|
extraction_source: TEXT
|
|
document_type: TEXT
|
|
sender_contact_key: TEXT
|
|
project_key: TEXT
|
|
extracted_text: TEXT
|
|
structured_json: JSONB
|
|
detected_addresses_json: JSONB
|
|
detected_contacts_json: JSONB
|
|
confidence: NUMERIC
|
|
created_at: TIMESTAMPTZ
|
|
Ankaufsfall:
|
|
label: Ankaufsfall
|
|
module: kaf
|
|
definition: 'Grundstück oder Objekt in der Ankaufsprüfung: Pipeline-Status, Ergebnis, Fristen, Angebote, Unterlagen, Risiko.'
|
|
table: property_development_cases
|
|
key: case_key
|
|
sensitive: Kaufpreise, Provisionen und Besprechungsmitschriften
|
|
attributes:
|
|
id: BIGSERIAL
|
|
case_key: TEXT
|
|
name: TEXT
|
|
normalized_name: TEXT
|
|
status: TEXT
|
|
pipeline_status: TEXT
|
|
outcome_status: TEXT
|
|
case_code: TEXT
|
|
case_opened_at: DATE
|
|
folder_name: TEXT
|
|
folder_path: TEXT
|
|
folder_status_source: TEXT
|
|
source_channel: TEXT
|
|
location_city: TEXT
|
|
location_district: TEXT
|
|
street_address: TEXT
|
|
assigned_to: TEXT
|
|
asset_type: TEXT
|
|
process_type: TEXT
|
|
notes: TEXT
|
|
property_size_sqm: NUMERIC
|
|
original_purchase_price_eur: NUMERIC
|
|
average_price_per_sqm_eur: NUMERIC
|
|
commission_including_vat: TEXT
|
|
apartment_count: INTEGER
|
|
development_plan_available: BOOLEAN
|
|
godel_internal: BOOLEAN
|
|
contact_broker: TEXT
|
|
start_date: DATE
|
|
offer_deadline: DATE
|
|
offer_submitted_at: DATE
|
|
last_offer_at: DATE
|
|
offer_count: INTEGER
|
|
review_status: TEXT
|
|
review_result: TEXT
|
|
meeting_transcripts: TEXT
|
|
just_one_week_more: BOOLEAN
|
|
deadline_is_overdue: BOOLEAN
|
|
godel_offer: TEXT
|
|
project_lead: TEXT
|
|
planning: TEXT
|
|
nda_present: BOOLEAN
|
|
loi_present: BOOLEAN
|
|
bplan_document_present: BOOLEAN
|
|
wirtschaftlichkeit_present: BOOLEAN
|
|
purchase_offer_present: BOOLEAN
|
|
building_permit_present: BOOLEAN
|
|
risk_summary: TEXT
|
|
missing_documents: JSONB
|
|
next_action: TEXT
|
|
next_action_due_at: DATE
|
|
last_document_at: DATE
|
|
document_count: INTEGER
|
|
case_readiness: TEXT
|
|
detected_documents: JSONB
|
|
risk_level: TEXT
|
|
readiness_json: JSONB
|
|
source_system: TEXT
|
|
sharepoint_json: JSONB
|
|
raw_evidence_json: JSONB
|
|
quality_status: TEXT
|
|
confidence: NUMERIC
|
|
first_seen_at: TIMESTAMPTZ
|
|
last_seen_at: TIMESTAMPTZ
|
|
created_at: TIMESTAMPTZ
|
|
updated_at: TIMESTAMPTZ
|
|
confirmation_token_hash: TEXT
|
|
confirmation_status: TEXT
|
|
confirmation_expires_at: TIMESTAMPTZ
|
|
selected_project_id: TEXT
|
|
created_saleagr_id: TEXT
|
|
created_saleagr_url: TEXT
|
|
confirmation_request_id: TEXT
|
|
Falldokument:
|
|
label: Falldokument
|
|
module: kaf
|
|
definition: Unterlage zu einem Ankaufsfall aus SharePoint, mit Dokumenttyp und Versionierung.
|
|
table: property_development_documents
|
|
key: document_key
|
|
subclass_of: Dokument
|
|
attributes:
|
|
id: BIGSERIAL
|
|
case_key: TEXT
|
|
document_key: TEXT
|
|
sharepoint_item_id: TEXT
|
|
file_name: TEXT
|
|
file_path: TEXT
|
|
folder_segment: TEXT
|
|
document_type: TEXT
|
|
document_date: DATE
|
|
received_at: DATE
|
|
author_or_sender: TEXT
|
|
source_party: TEXT
|
|
extracted_summary: TEXT
|
|
extracted_fields_json: JSONB
|
|
confidence: NUMERIC
|
|
is_current_version: BOOLEAN
|
|
supersedes_document_key: TEXT
|
|
processing_status: TEXT
|
|
created_at: TIMESTAMPTZ
|
|
updated_at: TIMESTAMPTZ
|
|
Dokumenttyp:
|
|
label: Dokumenttyp
|
|
module: kaf
|
|
definition: Typ eines Falldokuments, im KNOW-Code als feste Liste hinterlegt.
|
|
key: document_type
|
|
Kaufvertragspruefung:
|
|
label: Kaufvertragsprüfung
|
|
module: kaf
|
|
definition: 'Prüfstand eines Kaufvertrags: extrahierte Felder, Einheiten, Freigabe durch eine Mitarbeiterin oder einen
|
|
Mitarbeiter.'
|
|
table: kaf_review_snapshots
|
|
key: case_key
|
|
sensitive: Kaufvertragsfelder und Prüfer
|
|
attributes:
|
|
id: BIGSERIAL
|
|
case_key: TEXT
|
|
review_schema_version: TEXT
|
|
confirmation_token_hash: TEXT
|
|
confirmation_expires_at: TIMESTAMPTZ
|
|
review_status: TEXT
|
|
request_id: TEXT
|
|
review_to: TEXT
|
|
delivery_mode: TEXT
|
|
original_json: JSONB
|
|
distribution_json: JSONB
|
|
fields_json: JSONB
|
|
units_json: JSONB
|
|
artifacts_json: JSONB
|
|
reviewed_values_json: JSONB
|
|
review_comment: TEXT
|
|
reviewed_by: TEXT
|
|
review_identity_source: TEXT
|
|
review_submission_hash: TEXT
|
|
reviewed_at: TIMESTAMPTZ
|
|
created_at: TIMESTAMPTZ
|
|
updated_at: TIMESTAMPTZ
|
|
Notarkanzlei:
|
|
label: Notarkanzlei
|
|
module: kaf
|
|
definition: Notarkanzlei mit gelernten Feldmustern für das Auslesen von Kaufverträgen.
|
|
table: kanzlei_field_patterns
|
|
key: kanzlei_key
|
|
attributes:
|
|
kanzlei_key: TEXT
|
|
kanzlei_display: TEXT
|
|
patterns: JSONB
|
|
updated_at: TIMESTAMPTZ
|
|
Kanzleimandat:
|
|
label: Kanzleimandat
|
|
module: kaf
|
|
definition: Zuordnung Kanzlei ↔ Projekt mit Notarname (reifizierte Beziehung).
|
|
table: kanzlei_project_relations
|
|
key: relation_key
|
|
attributes:
|
|
relation_key: TEXT
|
|
kanzlei_key: TEXT
|
|
project_key: TEXT
|
|
project_name: TEXT
|
|
notar_name: TEXT
|
|
updated_at: TIMESTAMPTZ
|
|
Ort:
|
|
label: Ort / Flurstück
|
|
module: kaf
|
|
definition: Geokodierte Adresse mit Flurstück und Bundesland.
|
|
table: place_enrichments
|
|
key: place_key
|
|
attributes:
|
|
id: BIGSERIAL
|
|
place_key: TEXT
|
|
input_address: TEXT
|
|
match_address: TEXT
|
|
flurstueck: TEXT
|
|
lat: DOUBLE PRECISION
|
|
lon: DOUBLE PRECISION
|
|
bundesland: TEXT
|
|
enrichment_json: JSONB
|
|
provenance_json: JSONB
|
|
quality_status: TEXT
|
|
confidence: DOUBLE PRECISION
|
|
source_workflow: TEXT
|
|
created_at: TIMESTAMPTZ
|
|
refreshed_at: TIMESTAMPTZ
|
|
KanbauKaufvertrag:
|
|
label: KanBau-Kaufvertrag
|
|
module: kaf
|
|
definition: Kaufvertrag, der nach Bestätigung in KanBau angelegt wird (created_saleagr_id).
|
|
key: created_saleagr_id
|
|
Beleg:
|
|
label: Beleg
|
|
module: finance
|
|
definition: Verarbeiteter SEPA-Beleg mit Betrag, reserviert und dann hochgeladen.
|
|
table: bel_processed_belege
|
|
key: beleg_hash
|
|
sensitive: Bank, Konto-Referenz und Beträge
|
|
attributes:
|
|
id: BIGSERIAL
|
|
beleg_hash: TEXT
|
|
status: TEXT
|
|
bank: TEXT
|
|
account_ref: TEXT
|
|
amount_cents: BIGINT
|
|
sharepoint_path: TEXT
|
|
export_ref: TEXT
|
|
request_id: TEXT
|
|
raw_evidence_json: JSONB
|
|
reserved_at: TIMESTAMPTZ
|
|
uploaded_at: TIMESTAMPTZ
|
|
last_seen_at: TIMESTAMPTZ
|
|
created_at: TIMESTAMPTZ
|
|
updated_at: TIMESTAMPTZ
|
|
Bankkonto:
|
|
label: Bankkonto
|
|
module: finance
|
|
definition: Konto, zu dem ein Beleg gehört (bank + account_ref).
|
|
key: account_ref
|
|
Workflow:
|
|
label: n8n-Workflow
|
|
module: learning
|
|
definition: Ein n8n-Workflow, der entscheidet, lernt oder aufgerufen wird. Steht nur als Name in Spalten.
|
|
key: workflow
|
|
Entscheidung:
|
|
label: Entscheidung
|
|
module: learning
|
|
definition: Vorschlag eines Workflows und die tatsächliche Entscheidung mit Korrekturgrund.
|
|
table: workflow_decisions
|
|
key: id
|
|
attributes:
|
|
id: BIGSERIAL
|
|
request_id: TEXT
|
|
workflow: TEXT
|
|
reference_type: TEXT
|
|
reference_id: TEXT
|
|
proposed_decision: JSONB
|
|
final_decision: JSONB
|
|
confidence: NUMERIC
|
|
correction_reason: TEXT
|
|
quality_status: TEXT
|
|
created_at: TIMESTAMPTZ
|
|
verified_at: TIMESTAMPTZ
|
|
decision_type: TEXT
|
|
decided_by: TEXT
|
|
updated_at: TIMESTAMPTZ
|
|
Referenzobjekt:
|
|
label: Referenzobjekt
|
|
module: learning
|
|
definition: Objekt, auf das sich eine Entscheidung bezieht. Polymorph über reference_type und reference_id, die Typen
|
|
legt das Schema nicht fest.
|
|
key: reference_type + reference_id
|
|
Hinweis:
|
|
label: Hinweis (gelerntes Muster)
|
|
module: learning
|
|
definition: Gelerntes Muster (Schlüssel und Wert → vorgeschlagene Aktion) mit Zähler, Konfidenz und Bestätigung.
|
|
table: workflow_hints
|
|
key: hint_key
|
|
attributes:
|
|
hint_key: TEXT
|
|
workflow: TEXT
|
|
hint_type: TEXT
|
|
pattern_key: TEXT
|
|
pattern_value: TEXT
|
|
suggested_action: JSONB
|
|
observation_count: INTEGER
|
|
confidence: NUMERIC
|
|
quality_status: TEXT
|
|
pending_notification: BOOLEAN
|
|
notified_at: TIMESTAMPTZ
|
|
confirmed_at: TIMESTAMPTZ
|
|
confirmed_by: TEXT
|
|
created_at: TIMESTAMPTZ
|
|
updated_at: TIMESTAMPTZ
|
|
KanbauApiMethode:
|
|
label: KanBau-API-Methode
|
|
module: learning
|
|
definition: Validiertes Request/Response-Beispiel einer KanBau-API-Methode.
|
|
table: kanbau_method_examples
|
|
key: method_key
|
|
attributes:
|
|
method_key: TEXT
|
|
swagger_ref: TEXT
|
|
example_request: JSONB
|
|
example_response: JSONB
|
|
validated_at: TIMESTAMPTZ
|
|
created_at: TIMESTAMPTZ
|
|
updated_at: TIMESTAMPTZ
|
|
Mitarbeiter:
|
|
label: Mitarbeiter:in
|
|
module: learning
|
|
definition: Person im Unternehmen (@mygodel.de), die prüft, bestätigt oder bearbeitet. Steht nur als Name oder Adresse
|
|
in Spalten.
|
|
key: E-Mail
|
|
AgentBereich:
|
|
label: Agent-Bereich
|
|
module: agent
|
|
definition: Einsatzbereich eines Agenten (scope_key).
|
|
key: scope_key
|
|
Faehigkeit:
|
|
label: Fähigkeit
|
|
module: agent
|
|
definition: 'Was ein Agent tun darf: Beispiel-Intents, Workflow, Risiko, Freigabepflicht.'
|
|
table: agent_capabilities
|
|
key: scope_key + capability_key
|
|
attributes:
|
|
id: BIGSERIAL
|
|
scope_key: TEXT
|
|
capability_key: TEXT
|
|
title: TEXT
|
|
description: TEXT
|
|
intent_examples: JSONB
|
|
workflow_name: TEXT
|
|
workflow_operation: TEXT
|
|
read_or_write: TEXT
|
|
risk_level: TEXT
|
|
requires_approval: BOOLEAN
|
|
enabled: BOOLEAN
|
|
created_at: TIMESTAMPTZ
|
|
updated_at: TIMESTAMPTZ
|
|
Kontextdokument:
|
|
label: Kontextdokument
|
|
module: agent
|
|
definition: Eingelesenes Dokument als Wissen für einen Agenten.
|
|
table: agent_context_documents
|
|
key: scope_key + source_path + content_hash
|
|
sensitive: Volltext eingelesener Dokumente
|
|
subclass_of: Dokument
|
|
attributes:
|
|
id: BIGSERIAL
|
|
scope_key: TEXT
|
|
source_path: TEXT
|
|
document_type: TEXT
|
|
title: TEXT
|
|
content: TEXT
|
|
content_hash: TEXT
|
|
last_ingested_at: TIMESTAMPTZ
|
|
AgentAusfuehrung:
|
|
label: Agent-Ausführung
|
|
module: agent
|
|
definition: Protokoll einer Agent-Anfrage mit gewählter Fähigkeit und Ergebnis.
|
|
table: agent_execution_log
|
|
key: id
|
|
attributes:
|
|
id: BIGSERIAL
|
|
request_id: TEXT
|
|
agent_scope: TEXT
|
|
user_request: TEXT
|
|
selected_capability: TEXT
|
|
workflow_called: TEXT
|
|
inputs_json: JSONB
|
|
status: TEXT
|
|
errors_json: JSONB
|
|
created_at: TIMESTAMPTZ
|
|
LoginAnbieter:
|
|
label: Login-Anbieter
|
|
module: bsb
|
|
definition: Webanwendung mit hinterlegtem Login-Ablauf für die Browser-Automation.
|
|
table: session_providers
|
|
key: provider_id
|
|
attributes:
|
|
provider_id: TEXT
|
|
display_name: TEXT
|
|
login_url: TEXT
|
|
auth_type: TEXT
|
|
steps_json: JSONB
|
|
credential_key: TEXT
|
|
max_session_age_minutes: INTEGER
|
|
notes: TEXT
|
|
created_at: TIMESTAMPTZ
|
|
updated_at: TIMESTAMPTZ
|
|
BrowserSession:
|
|
label: Browser-Session
|
|
module: bsb
|
|
definition: Gespeicherte Sitzung bei einem Login-Anbieter mit Ablaufzeit.
|
|
table: browser_sessions
|
|
key: provider_id
|
|
sensitive: Session-Daten als JSON; am Schema nicht erkennbar, ob verschlüsselt
|
|
attributes:
|
|
provider_id: TEXT
|
|
session_data: JSONB
|
|
expires_at: TIMESTAMPTZ
|
|
created_at: TIMESTAMPTZ
|
|
updated_at: TIMESTAMPTZ
|
|
LlmWorker:
|
|
label: LLM-Worker
|
|
module: llm
|
|
definition: Lokaler Rechner mit LLM, der sich per Heartbeat meldet (optional mit OpenAI-Endpoint).
|
|
table: llm_workers
|
|
key: mac
|
|
attributes:
|
|
id: BIGSERIAL
|
|
mac: TEXT
|
|
host: TEXT
|
|
model: TEXT
|
|
tier: TEXT
|
|
tier_rank: SMALLINT
|
|
status: TEXT
|
|
hardware_json: JSONB
|
|
last_seen_at: TIMESTAMPTZ
|
|
registered_at: TIMESTAMPTZ
|
|
updated_at: TIMESTAMPTZ
|
|
endpoint: JSONB
|
|
WorkerSperre:
|
|
label: Worker-Sperre
|
|
module: llm
|
|
definition: Gesperrter Worker (unsupported).
|
|
table: llm_worker_blocklist
|
|
key: mac
|
|
attributes:
|
|
id: BIGSERIAL
|
|
mac: TEXT
|
|
host: TEXT
|
|
reason: TEXT
|
|
hardware_json: JSONB
|
|
blocked_at: TIMESTAMPTZ
|
|
LlmJob:
|
|
label: LLM-Job
|
|
module: llm
|
|
definition: 'Auftrag im Job-Board: Prompt, Mindest-Tier, Ergebnis, Dauer.'
|
|
table: llm_jobs
|
|
key: job_id
|
|
sensitive: Prompt und Ergebnis im Klartext
|
|
attributes:
|
|
id: BIGSERIAL
|
|
job_id: TEXT
|
|
prompt: TEXT
|
|
min_tier: TEXT
|
|
min_tier_rank: SMALLINT
|
|
status: TEXT
|
|
assigned_to: TEXT
|
|
model: TEXT
|
|
tier: TEXT
|
|
result: TEXT
|
|
duration_ms: INTEGER
|
|
error_message: TEXT
|
|
created_at: TIMESTAMPTZ
|
|
assigned_at: TIMESTAMPTZ
|
|
completed_at: TIMESTAMPTZ
|
|
updated_at: TIMESTAMPTZ
|
|
Tier:
|
|
label: Tier
|
|
module: llm
|
|
definition: Leistungsstufe eines Workers bzw. Mindeststufe eines Jobs.
|
|
key: tier
|
|
Modell:
|
|
label: Modell
|
|
module: llm
|
|
definition: LLM-Modell, das ein Worker betreibt. Erlaubte Werte stehen in der Worker Registry.
|
|
key: model
|
|
KanBau:
|
|
label: KanBau
|
|
module: system
|
|
definition: Externes Bau- und Projektverwaltungssystem (Projekte, Adressen, Kaufverträge).
|
|
SharePoint:
|
|
label: SharePoint
|
|
module: system
|
|
definition: Ablage für Projekt-, Fall- und Belegdokumente.
|
|
Microsoft365:
|
|
label: Microsoft 365
|
|
module: system
|
|
definition: Postfächer und delegierter Zugriff (provider microsoft).
|
|
relations:
|
|
- source: Mail
|
|
name: empfangenIn
|
|
target: Postfach
|
|
via: mail_events.mailbox
|
|
- source: Mail
|
|
name: gesendetVon
|
|
target: Absender
|
|
via: mail_events.sender = sender_observations.email
|
|
kind: soft
|
|
- source: Mail
|
|
name: hatKategorie
|
|
target: MailKategorie
|
|
via: mail_events.category = workflow_hint_config.config_key
|
|
kind: soft
|
|
- source: Mail
|
|
name: zugeordnetZu
|
|
target: Projekt
|
|
via: mail_events.assigned_project_key
|
|
- source: Absender
|
|
name: beobachtetIn
|
|
target: Postfach
|
|
via: sender_observations.mailbox
|
|
- source: Absender
|
|
name: gehoertZuDomain
|
|
target: Domain
|
|
via: sender_observations.registered_domain (JOIN)
|
|
- source: Absender
|
|
name: entsprichtKontakt
|
|
target: Kontakt
|
|
via: E-Mail-Adresse (contacts.email)
|
|
kind: soft
|
|
- source: Postfachzugriff
|
|
name: gewaehrtFuer
|
|
target: Postfach
|
|
via: mailbox_grants.grant_key
|
|
kind: soft
|
|
- source: Postfach
|
|
name: liegtIn
|
|
target: Microsoft365
|
|
via: mailbox_grants.provider = 'microsoft'
|
|
kind: external
|
|
- source: AnhangExtraktion
|
|
name: ausMail
|
|
target: Mail
|
|
via: document_extractions.message_id
|
|
- source: AnhangExtraktion
|
|
name: vonKontakt
|
|
target: Kontakt
|
|
via: document_extractions.sender_contact_key
|
|
- source: AnhangExtraktion
|
|
name: betrifftProjekt
|
|
target: Projekt
|
|
via: document_extractions.project_key
|
|
- source: ProjektAlias
|
|
name: bezeichnet
|
|
target: Projekt
|
|
via: project_aliases.project_key (JOIN)
|
|
- source: KontaktAlias
|
|
name: bezeichnet
|
|
target: Kontakt
|
|
via: contact_aliases.contact_key
|
|
- source: Projektbeteiligung
|
|
name: vonKontakt
|
|
target: Kontakt
|
|
via: contact_project_relations.contact_key
|
|
- source: Projektbeteiligung
|
|
name: betrifftProjekt
|
|
target: Projekt
|
|
via: contact_project_relations.project_key
|
|
- source: Projekt
|
|
name: stammtAus
|
|
target: KanBau
|
|
via: projects.kanbau_project_id
|
|
kind: external
|
|
- source: Kontakt
|
|
name: stammtAus
|
|
target: KanBau
|
|
via: contacts.kanbau_address_id
|
|
kind: external
|
|
- source: Projektereignis
|
|
name: ausMail
|
|
target: Mail
|
|
via: project_events.message_id
|
|
- source: Projektereignis
|
|
name: betrifftProjekt
|
|
target: Projekt
|
|
via: project_events.project_key
|
|
- source: Projektereignis
|
|
name: hatArt
|
|
target: Ereignisart
|
|
via: project_events.category
|
|
- source: Projektereignis
|
|
name: abgelegtIn
|
|
target: SharePoint
|
|
via: project_events.sharepoint_path
|
|
kind: external
|
|
- source: Projektordner
|
|
name: betrifftProjekt
|
|
target: Projekt
|
|
via: project_folders.project_key
|
|
- source: Projektordner
|
|
name: liegtIn
|
|
target: SharePoint
|
|
via: project_folders.drive_id, folder_item_id
|
|
kind: external
|
|
- source: Projektkuerzel
|
|
name: gehoertZu
|
|
target: Gesellschaft
|
|
via: project_companies.gesellschaft
|
|
- source: Rechnungsbeobachtung
|
|
name: ausMail
|
|
target: Mail
|
|
via: invoice_company_observations.message_id
|
|
- source: Rechnungsbeobachtung
|
|
name: nenntKuerzel
|
|
target: Projektkuerzel
|
|
via: invoice_company_observations.kuerzel (JOIN)
|
|
- source: Rechnungsbeobachtung
|
|
name: gehoertZu
|
|
target: Gesellschaft
|
|
via: invoice_company_observations.gesellschaft
|
|
- source: Ankaufsfall
|
|
name: hatDokument
|
|
target: Falldokument
|
|
via: property_development_documents.case_key (JOIN)
|
|
- source: Falldokument
|
|
name: ersetzt
|
|
target: Falldokument
|
|
via: supersedes_document_key
|
|
- source: Falldokument
|
|
name: hatTyp
|
|
target: Dokumenttyp
|
|
via: property_development_documents.document_type
|
|
- source: Falldokument
|
|
name: liegtIn
|
|
target: SharePoint
|
|
via: sharepoint_item_id, file_path
|
|
kind: external
|
|
- source: Ankaufsfall
|
|
name: hatPruefung
|
|
target: Kaufvertragspruefung
|
|
via: kaf_review_snapshots.case_key
|
|
- source: Ankaufsfall
|
|
name: wirdZuProjekt
|
|
target: Projekt
|
|
via: selected_project_id (KanBau-Projekt-ID)
|
|
- source: Ankaufsfall
|
|
name: erzeugt
|
|
target: KanbauKaufvertrag
|
|
via: created_saleagr_id, created_saleagr_url
|
|
- source: KanbauKaufvertrag
|
|
name: liegtIn
|
|
target: KanBau
|
|
via: created_saleagr_url
|
|
kind: external
|
|
- source: Ankaufsfall
|
|
name: liegtAn
|
|
target: Ort
|
|
via: street_address, location_city ↔ place_enrichments.input_address
|
|
kind: soft
|
|
- source: Ankaufsfall
|
|
name: liegtIn
|
|
target: SharePoint
|
|
via: folder_path, sharepoint_json
|
|
kind: external
|
|
- source: Ankaufsfall
|
|
name: bearbeitetVon
|
|
target: Mitarbeiter
|
|
via: assigned_to, project_lead
|
|
kind: soft
|
|
- source: Projekt
|
|
name: liegtAn
|
|
target: Ort
|
|
via: full_address ↔ place_enrichments.input_address
|
|
kind: soft
|
|
- source: Kanzleimandat
|
|
name: vonKanzlei
|
|
target: Notarkanzlei
|
|
via: kanzlei_project_relations.kanzlei_key
|
|
- source: Kanzleimandat
|
|
name: betrifftProjekt
|
|
target: Projekt
|
|
via: kanzlei_project_relations.project_key
|
|
- source: Kaufvertragspruefung
|
|
name: geprueftVon
|
|
target: Mitarbeiter
|
|
via: reviewed_by, review_to (@mygodel.de)
|
|
kind: soft
|
|
- source: Beleg
|
|
name: gehoertZuKonto
|
|
target: Bankkonto
|
|
via: bel_processed_belege.bank, account_ref
|
|
- source: Beleg
|
|
name: abgelegtIn
|
|
target: SharePoint
|
|
via: bel_processed_belege.sharepoint_path
|
|
kind: external
|
|
- source: Entscheidung
|
|
name: getroffenVon
|
|
target: Workflow
|
|
via: workflow_decisions.workflow
|
|
- source: Entscheidung
|
|
name: betrifft
|
|
target: Referenzobjekt
|
|
via: reference_type + reference_id
|
|
kind: soft
|
|
- source: Hinweis
|
|
name: gelerntIn
|
|
target: Workflow
|
|
via: workflow_hints.workflow
|
|
- source: Hinweis
|
|
name: hatKategorie
|
|
target: MailKategorie
|
|
via: workflow_hints.hint_type = config_key (JOIN)
|
|
- source: Hinweis
|
|
name: betrifftKontakt
|
|
target: Kontakt
|
|
via: workflow_hints.pattern_key = contact_key (JOIN)
|
|
- source: Hinweis
|
|
name: bestaetigtVon
|
|
target: Mitarbeiter
|
|
via: workflow_hints.confirmed_by
|
|
kind: soft
|
|
- source: KanbauApiMethode
|
|
name: beschreibt
|
|
target: KanBau
|
|
via: method_key, swagger_ref
|
|
kind: external
|
|
- source: Faehigkeit
|
|
name: gehoertZu
|
|
target: AgentBereich
|
|
via: agent_capabilities.scope_key
|
|
- source: Faehigkeit
|
|
name: ruftAuf
|
|
target: Workflow
|
|
via: agent_capabilities.workflow_name
|
|
- source: Kontextdokument
|
|
name: gehoertZu
|
|
target: AgentBereich
|
|
via: agent_context_documents.scope_key
|
|
- source: AgentAusfuehrung
|
|
name: imBereich
|
|
target: AgentBereich
|
|
via: agent_execution_log.agent_scope
|
|
- source: AgentAusfuehrung
|
|
name: waehlt
|
|
target: Faehigkeit
|
|
via: agent_execution_log.selected_capability
|
|
- source: AgentAusfuehrung
|
|
name: ruftAuf
|
|
target: Workflow
|
|
via: agent_execution_log.workflow_called
|
|
- source: BrowserSession
|
|
name: fuerAnbieter
|
|
target: LoginAnbieter
|
|
via: browser_sessions.provider_id
|
|
- source: LoginAnbieter
|
|
name: meldetAnBei
|
|
target: KanBau
|
|
via: über BSB - Get Session für das KanBau-Gateway
|
|
kind: soft
|
|
- source: LlmJob
|
|
name: bearbeitetVon
|
|
target: LlmWorker
|
|
via: llm_jobs.assigned_to = llm_workers.host
|
|
- source: LlmJob
|
|
name: verlangtTier
|
|
target: Tier
|
|
via: llm_jobs.min_tier
|
|
- source: LlmJob
|
|
name: nutzteModell
|
|
target: Modell
|
|
via: llm_jobs.model
|
|
- source: LlmWorker
|
|
name: hatTier
|
|
target: Tier
|
|
via: llm_workers.tier
|
|
- source: LlmWorker
|
|
name: betreibt
|
|
target: Modell
|
|
via: llm_workers.model
|
|
- source: WorkerSperre
|
|
name: sperrt
|
|
target: LlmWorker
|
|
via: llm_worker_blocklist.mac
|
|
vocabularies:
|
|
MailKategorie:
|
|
label: Mail-Kategorie
|
|
class: MailKategorie
|
|
columns:
|
|
- mail_events.category
|
|
- workflow_hints.hint_type
|
|
- workflow_hint_config.config_key
|
|
concepts:
|
|
mahnung:
|
|
label: Mahnung
|
|
zahlungsaufforderung:
|
|
label: Zahlungsaufforderung
|
|
buchhaltung:
|
|
label: Rechnungen
|
|
alt:
|
|
- Buchhaltung
|
|
mangel:
|
|
label: Mangel
|
|
newsletter_werbung:
|
|
label: Newsletter
|
|
alt:
|
|
- Newsletter und Werbung
|
|
plattformen:
|
|
label: Plattformen
|
|
versand_bestellungen:
|
|
label: Versand
|
|
alt:
|
|
- Versand und Bestellungen
|
|
sonstiges:
|
|
label: Sonstige
|
|
alt:
|
|
- Sonstiges
|
|
default:
|
|
label: Standard
|
|
note: technischer Rückfall der Hinweis-Konfiguration, keine fachliche Kategorie
|
|
technical: true
|
|
Ereignisart:
|
|
label: Ereignisart
|
|
class: Ereignisart
|
|
columns:
|
|
- project_events.category
|
|
concepts:
|
|
verzoegerung:
|
|
label: Verzögerung
|
|
mangel:
|
|
label: Mangel
|
|
termin:
|
|
label: Termin
|
|
kosten:
|
|
label: Kosten
|
|
info:
|
|
label: Info
|
|
Dokumenttyp:
|
|
label: Dokumenttyp
|
|
class: Dokumenttyp
|
|
columns:
|
|
- property_development_documents.document_type
|
|
- document_extractions.document_type
|
|
concepts:
|
|
expose: {}
|
|
bplan: {}
|
|
wirtschaftlichkeitsberechnung: {}
|
|
kaufangebot: {}
|
|
loi: {}
|
|
nda: {}
|
|
vertraulichkeitserklaerung: {}
|
|
telefonnotiz: {}
|
|
mail: {}
|
|
lageplan: {}
|
|
kataster: {}
|
|
grundbuch: {}
|
|
baugenehmigung: {}
|
|
gutachten: {}
|
|
pruefplan: {}
|
|
fotos: {}
|
|
wettbewerbsunterlagen: {}
|
|
vertrag_notar: {}
|
|
unknown: {}
|
|
Tier:
|
|
label: Tier
|
|
class: Tier
|
|
columns:
|
|
- llm_workers.tier
|
|
- llm_jobs.min_tier
|
|
- llm_jobs.tier
|
|
concepts:
|
|
basic: {}
|
|
standard: {}
|
|
capable: {}
|
|
expert: {}
|
|
Gesellschaft:
|
|
label: Gesellschaft
|
|
class: Gesellschaft
|
|
columns:
|
|
- project_companies.gesellschaft
|
|
- invoice_company_observations.gesellschaft
|
|
concepts:
|
|
p_gmbh:
|
|
label: P-GmbH
|
|
p_b_kg:
|
|
label: P+B KG
|
|
Pipelinestatus:
|
|
label: Pipeline-Status (Ankauf)
|
|
columns:
|
|
- property_development_cases.pipeline_status
|
|
concepts:
|
|
vorab_check: {}
|
|
vorpruefung: {}
|
|
in_pruefung: {}
|
|
angebot_in_vorbereitung: {}
|
|
angebot_abgegeben: {}
|
|
verhandlung: {}
|
|
wettbewerb_aktuell: {}
|
|
projektierung: {}
|
|
planung: {}
|
|
abgeschlossen: {}
|
|
Ergebnisstatus:
|
|
label: Ergebnis (Ankauf)
|
|
columns:
|
|
- property_development_cases.outcome_status
|
|
concepts:
|
|
offen: {}
|
|
negativ_nicht_weiterverfolgt: {}
|
|
positiv_angeboten_nicht_zustande: {}
|
|
positiv_angeboten_zustande: {}
|
|
wettbewerb_erledigt: {}
|
|
wettbewerb_nicht_teilgenommen: {}
|
|
wettbewerb_nicht_zugelassen: {}
|
|
ohne_abschluss_erledigt: {}
|
|
Dringlichkeit:
|
|
label: Dringlichkeit
|
|
columns:
|
|
- project_events.urgency
|
|
concepts:
|
|
low: {}
|
|
normal: {}
|
|
high: {}
|
|
Pruefstatus:
|
|
label: Prüfstatus (Kaufvertrag)
|
|
columns:
|
|
- kaf_review_snapshots.review_status
|
|
concepts:
|
|
pending: {}
|
|
approved: {}
|
|
manual_review: {}
|
|
Zugriffsstatus:
|
|
label: Status Postfachzugriff
|
|
columns:
|
|
- mailbox_grants.status
|
|
concepts:
|
|
active: {}
|
|
revoked: {}
|
|
needs_reconsent: {}
|
|
Belegstatus:
|
|
label: Belegstatus
|
|
columns:
|
|
- bel_processed_belege.status
|
|
concepts:
|
|
reserved: {}
|
|
uploaded: {}
|
|
Qualitaetsstatus:
|
|
label: Qualitätsstatus
|
|
columns:
|
|
- project_aliases.quality_status
|
|
- contacts.quality_status
|
|
- contact_aliases.quality_status
|
|
- contact_project_relations.quality_status
|
|
- workflow_decisions.quality_status
|
|
- property_development_cases.quality_status
|
|
- workflow_hints.quality_status
|
|
- place_enrichments.quality_status
|
|
- project_events.quality_status
|
|
concepts:
|
|
observed:
|
|
label: beobachtet
|
|
proposed:
|
|
label: vorgeschlagen
|
|
confirmed:
|
|
label: bestätigt
|
|
alt:
|
|
- verified
|
|
note: workflow_decisions schreibt 'verified' statt 'confirmed' (KNOW-Befund B31)
|
|
rejected:
|
|
label: verworfen
|