General Expression Language (GEL) and GLIDE are domain-specific languages developed during an internal incubation at the United States Writing Corporation (now 6over3 institute). We've moved on from this space, and are sharing it for research purposes.
A compact expression language for constructing logical and arithmetic filters, conditions, and matching logic.
Capabilities:
- Logical operators:
and
,or
,not
- Comparison operators:
eq
,ne
,lt
,le
,gt
,ge
,in
,has
- Field references with dot notation:
file.name
,process.pid
- Function calls with type-checking:
starts_with(field, "prefix")
- Literal values: numbers, strings, bytes, booleans
- Set literals and range syntax:
{1..10}
,{"exe" "dll"}
- Array/map subscript notation:
arr[0]
,obj[key]
,arr[*]
Example:
not process.name eq "cmd.exe" and file.extension in {"exe" "dll"}
Architecture:
Two-phase processing via optimized lexer (tokenization) and parser (AST construction). The parser enforces syntax correctness, performs type inference, and validates function signatures against a configurable schema.
A declarative workflow definition language with strict type enforcement and event-driven triggers.
Features:
- Linear and fork (parallel branch) execution models
- Event triggers:
file_upload
,manual
, etc. - Typed input/output fields:
string
,integer
,number
,boolean
,date
,duration
,dictionary
,password
,file
- Reference system:
$env.*
(environment),$workflow.*
(event data),$stepId.*
(step outputs) - Conditional execution via
when
expressions (evaluated using GEL) - Strict validation: forward reference prevention, fork depth limits (≤3), max 100 steps, unique identifiers
Architecture:
Multi-phase validation combining valibot schema checks, reference path verification, and GEL engine integration. Enforces step ordering constraints, type safety, and prevents self-referencing or referencing undefined paths.
Technical Documentation:
https://uswriting.co/18f3cad0-8b26-41d8-b398-2d0284bafa0c/