Automation
Datatypes
Einleitung
Mercury bietet verschiedene Datentypen, die für die Verarbeitung und Speicherung von Daten in Chatbot-Konversationen verwendet werden. Jeder Datentyp verfügt über spezifische Funktionen und Operationen, die für die Datenmanipulation und -vergleichung zur Verfügung stehen.
Verfügbare Datentypen
Datentyp | Standardwert | Beschreibung |
---|---|---|
String | "" | Zeichenketten für Textverarbeitung |
Boolean | false | Wahrheitswerte (true/false) |
Number | 0 | Numerische Werte (Integer und Float) |
Date | now() | Datum und Uhrzeit |
Collection | [] | Listen und Sets von Werten |
Entity | [] | Entitätsreferenzen mit Oberflächenform |
KnowledgeSource | UUID | Wissensquellen-Referenzen |
Allgemeine Operationen
Alle Datentypen unterstützen folgende grundlegende Operationen:
Clear
Setzt den Wert auf den Standardwert des Datentyps zurück.
Set
Setzt den Wert auf einen neuen Wert.
String
Der String-Datentyp wird für die Verarbeitung von Text verwendet. Er unterstützt verschiedene Operationen zur Textmanipulation und -vergleichung.
Verfügbare Operationen
Add
Funktion: Verbindet zwei Texte hintereinander.
Beispiel:
'Hallo' add ' Welt' → 'Hallo Welt'
'Rechnung ' add '2025' → 'Rechnung 2025'
Anwendung:
- Texte zusammenbauen (z.B. Rechnungsnummern, Begrüßungen)
Invert
Funktion: Dreht den Text um (spiegelt ihn rückwärts).
Beispiel:
'Hallo' invert → 'ollaH'
Equals
Funktion: Vergleicht zwei Texte und prüft, ob sie gleich sind (Groß- und Kleinschreibung wird ignoriert).
Beispiel:
'Hallo' equals 'hallo' → wahr
'Test' equals 'TEST' → wahr
'Apfel' equals 'Birne' → falsch
Anwendung:
- Prüfen, ob Benutzereingaben korrekt sind
- Werte vergleichen
Contains
Funktion: Prüft, ob der erste Text den zweiten Text enthält.
Beispiel:
'Hallo Welt' contains 'Welt' → wahr
'Rechnung 2025' contains '2025' → wahr
'Banane' contains 'Apfel' → falsch
Anwendung:
- Textsuche
- Filter
- Bedingte Regeln
Similar
Funktion: Prüft, ob zwei Texte ähnlich sind (intelligenter Vergleich mit Levenshtein-Distanz).
Beispiel:
'Hallo' similar 'Helo' → wahr
'Müller' similar 'Mueller' → wahr
'Apfel' similar 'Banane' → falsch
Anwendung:
- Fehler-tolerante Vergleiche
- Ähnlichkeitssuche
Clear
Funktion: Setzt den Text auf einen leeren Wert zurück.
Beispiel:
'Hallo' clear → ''
Set
Funktion: Setzt den Text auf einen neuen Wert.
Beispiel:
'Hallo' set 'Guten Tag' → 'Guten Tag'
Anwendung:
- Neuen Wert speichern
- Benutzer-Eingaben übernehmen
Besonderheiten
- Leerzeichen und unsichtbare Zeichen werden automatisch bereinigt
- Groß- und Kleinschreibung ist bei
equals
undsimilar
nicht relevant
Boolean
Der Boolean-Datentyp repräsentiert Wahrheitswerte und unterstützt logische Operationen.
Verfügbare Operationen
Equals
Funktion: Vergleicht zwei Boolean-Werte. Beispiel: true
equals true
→ wahr
Invert
Funktion: Negiert den Boolean-Wert. Beispiel: true
invert → false
Add
Funktion: Logisches UND zwischen zwei Boolean-Werten. Beispiel: true
add false
→ false
Subtract
Funktion: Logisches ODER zwischen zwei Boolean-Werten. Beispiel: true
subtract false
→ true
Clear
Funktion: Setzt den Boolean-Wert auf false
zurück. Beispiel: true
clear → false
Set
Funktion: Setzt den Boolean-Wert auf einen neuen Wert. Beispiel: false
set true
→ true
Besonderheiten
- Akzeptiert nur 'true' und 'false' als String-Eingaben
- Automatische Bereinigung von Leerzeichen und unsichtbaren Zeichen
Number
Der Number-Datentyp verarbeitet numerische Werte (Integer und Float) mit mathematischen Operationen.
Verfügbare Operationen
Equals
Funktion: Vergleicht zwei Zahlen mit Toleranz für Fließkommafehler. Beispiel: 3.14
equals 3.140000
→ wahr
Greater/GreaterOrEquals
Funktion: Vergleicht ob eine Zahl größer oder größer gleich einer anderen ist. Beispiel: 5
greater 3
→ wahr
Less/LessOrEquals
Funktion: Vergleicht ob eine Zahl kleiner oder kleiner gleich einer anderen ist. Beispiel: 3
less 5
→ wahr
Add
Funktion: Addiert zwei Zahlen. Beispiel: 5
add 3
→ 8
Invert
Funktion: Ändert das Vorzeichen der Zahl. Beispiel: 5
invert → -5
Clear
Funktion: Setzt die Zahl auf 0
zurück. Beispiel: 42
clear → 0
Set
Funktion: Setzt die Zahl auf einen neuen Wert. Beispiel: 10
set 25
→ 25
Besonderheiten
- Unterstützt deutsche und englische Zahlenformate
- Automatische Formatierung mit zwei Nachkommastellen
- Toleranz für Fließkommafehler bei Vergleichen
Date
Der Date-Datentyp verarbeitet Datum und Uhrzeit mit verschiedenen Formaten und Zeitzonen.
Verfügbare Operationen
Equals
Funktion: Vergleicht zwei Datumswerte. Beispiel: 2025-01-15T10:30:00Z
equals 2025-01-15T10:30:00Z
→ wahr
Greater/GreaterOrEquals
Funktion: Vergleicht ob ein Datum später oder gleich einem anderen ist. Beispiel: 2025-01-15
greater 2025-01-10
→ wahr
Less/LessOrEquals
Funktion: Vergleicht ob ein Datum früher oder gleich einem anderen ist. Beispiel: 2025-01-10
less 2025-01-15
→ wahr
Clear
Funktion: Setzt das Datum auf das aktuelle Datum zurück. Beispiel: 2025-01-15
clear → now()
Set
Funktion: Setzt das Datum auf einen neuen Wert. Beispiel: 2025-01-15
set 2025-02-01
→ 2025-02-01
Unterstützte Formate
- ISO 8601:
2025-01-15T10:30:00Z
- Deutsche Formate:
15.01.2025T10:30:00
,15-01-2025T10:30:00
- Englische Formate:
2025/01/15T10:30:00
,2025.01.15T10:30:00
Besonderheiten
- Automatische Zeitzonenkonvertierung (UTC und Europe/Berlin)
- Lokalisierte Ausgabe (Deutsch/Englisch)
- Standardwert ist das aktuelle Datum
Collection
Der Collection-Datentyp verwaltet Listen und Sets von Werten des gleichen Typs.
Verfügbare Operationen
Equals
Funktion: Vergleicht zwei Collections (Reihenfolge wird bei Listen berücksichtigt). Beispiel: [1,2,3]
equals [1,2,3]
→ wahr
Contains
Funktion: Prüft, ob eine Collection einen bestimmten Wert enthält. Beispiel: [1,2,3]
contains 2
→ wahr
Greater/GreaterOrEquals
Funktion: Vergleicht die Größe der Collections. Beispiel: [1,2,3,4]
greater [1,2]
→ wahr
Less/LessOrEquals
Funktion: Vergleicht die Größe der Collections. Beispiel: [1,2]
less [1,2,3,4]
→ wahr
Add
Funktion: Fügt einen Wert zur Collection hinzu. Beispiel: [1,2]
add 3
→ [1,2,3]
Subtract
Funktion: Entfernt einen Wert aus der Collection. Beispiel: [1,2,3]
subtract 2
→ [1,3]
Invert
Funktion: Kehrt die Reihenfolge der Collection um. Beispiel: [1,2,3]
invert → [3,2,1]
Clear
Funktion* Leert die Collection. Beispiel: [1,2,3]
clear → []
Set
Funktion: Ersetzt die Collection durch eine neue. Beispiel: [1,2]
set [3,4,5]
→ [3,4,5]
Besonderheiten
- Unterstützt Listen (mit Reihenfolge) und Sets (ohne Duplikate)
- Automatische Validierung des Datentyps aller Elemente
- Keine verschachtelten Collections erlaubt
Entity
Der Entity-Datentyp repräsentiert Entitätsreferenzen mit einer Oberflächenform.
Verfügbare Operationen
Equals
Funktion: Vergleicht Entitätsreferenzen. Beispiel: entity:ref1|ref2:Apfel
equals entity:ref1:Apfel
→ wahr
Similar
Funktion: Prüft Ähnlichkeit zwischen Entitätsreferenzen. Beispiel: entity:ref1:Apfel
similar entity:ref1:Apfel
→ wahr
Set
Funktion: Setzt die Entity auf einen neuen Wert. Beispiel: entity:ref1:Apfel
set entity:ref2:Birne
→ entity:ref2:Birne
Besonderheiten
- Unterstützt disjunktive Referenzen (mit
|
getrennt) - Automatische Bereinigung von Leerzeichen
- Vergleich basiert auf Referenzen, nicht auf Oberflächenform
KnowledgeSource
Der KnowledgeSource-Datentyp repräsentiert Referenzen auf Wissensquellen.
Verfügbare Operationen
Equals
Funktion: Vergleicht KnowledgeSource-Referenzen anhand ihrer UUID. Beispiel: uuid:label
equals uuid:label
→ wahr
Clear
Funktion: Setzt die KnowledgeSource auf einen Standardwert zurück. Beispiel: uuid:label
clear → new-uuid:default
Set
Funktion: Setzt die KnowledgeSource auf einen neuen Wert. Beispiel: uuid1:label1
set uuid2:label2
→ uuid2:label2
Besonderheiten
- Vergleich basiert auf UUID, nicht auf Label
- Automatische Generierung neuer UUIDs bei Clear-Operation
- Unterstützt optionale Labels