Open Source Language
Eloquent
Semantic Data Modeling Language
Describe your data in a markdown-like format and run your entire data strategy on it. One model. Twelve+ outputs. From physical schemas to LLM-ready context.
Every company has its own language. Your data should speak it.
Even within the same industry, every company features a distinct language that has evolved from its unique history, leadership, and diverse business mix.
One recruiting company says "candidates." Another says "talent." But both use the same applicant tracking system with its own, different, language. Data teams are forced to translate, building ad-hoc semantic layers that slow development and require constant rework.
Eloquent replaces months or years of this translation work with a single, human-readable data dictionary that generates everything downstream automatically.
How It Works
Write relationships in natural language. Get a complete data architecture.
- Customer has a Customer Name
- Customer Name is a String
- Order has a Customer
- Order has a Price
- Price is a Number
- Order has an Order Date
- Order Date is a Date CREATE TABLE t_customers (
customer_id TEXT,
customer_name TEXT
);
CREATE TABLE t_orders (
order_id TEXT,
customer_id TEXT,
price NUMERIC,
order_date TIMESTAMP
);
CREATE VIEW orders AS
SELECT
t_orders.order_id,
customers.customer_name,
t_orders.price,
t_orders.order_date
FROM t_orders
JOIN customers
ON customers.customer_id = t_orders.customer_id; Eloquent also derives aggregations, temporal views, identifiers, data catalog documentation, ERD diagrams, SQL tests, and RAG context, all from the same model.
One Model, Twelve+ Outputs
Everything your data strategy needs.
Knowledge Graph
Conceptual entity-relationship graph as source of truth
Physical Schema
CREATE TABLE statements for your target database
Logical Views
Denormalized SQL views with joins and calculations
NL-to-SQL
Natural language question to SQL query translation
SQL Tests
Validation scripts for PKs, FKs, and business rules
Data Catalog
Documentation in PDF/HTML with full lineage
ERD Diagrams
SVG class diagrams mapping attributes to sources
Observability
Monitoring and profiling scripts for data quality
Metrics Matrix
Aggregation definitions for standardized reporting
RAG Context
Vector-database-ready model representations for LLMs
Training Pairs
Question/answer pairs for NL-to-SQL fine-tuning
dbt Integration
Compatible transformations for dbt workflows
Key Concepts
Three relationships. Infinite architectures.
has_a (Composition)
Order has a Customer means the Order is composed of a Customer. Any attribute of the Customer is also an attribute of the Order, transitively to any depth. Attributes accumulate names: Order Customer Name.
is_a (Inheritance)
Shipped Order is an Order means Shipped Order inherits all attributes from Order without name accumulation. It's a specialization: Shipped Order Customer Name, not Shipped Order Order Customer Name.
is a [Type] (Physical Typing)
Price is a Number grounds the logical model in a physical database. Three types: String, Number, Timestamp. Any entity with physical attributes automatically generates tables, views, and identifiers.
Why Eloquent
Not another YAML-based semantic layer.
- Models read like English, not like infrastructure code or configuration syntax
- Generates the complete architecture from tables to RAG, not just metrics definitions
- Relationships derive automatically to any depth through graph-based traversal, unlike flat metric definitions
- RAG context, golden tests, and NL-to-SQL training pairs are first-class outputs from day one
- The model IS the documentation. No drift between code and docs
- Works across PostgreSQL, MySQL, Databricks, MS Fabric, Snowflake, and others
Ready to try Eloquent?
Eloquent is open source. We offer enterprise implementation, custom semantic starter kits, training, and ongoing consulting for organizations adopting Eloquent.