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.

Input: Eloquent Model
- 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
Output: Auto-Generated SQL
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.