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
equalsundsimilarnicht 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