j.jev4pgDocumentation
Introduction
Getting started

Introduction

Natural language. Semantic SQL. One PostgreSQL workflow.

jev4pg connects questions about meaning to the structure of your database. Ask a question in plain language, use typed semantic operators, or turn a reviewed interpretation into a reusable feature. PostgreSQL handles the joins, calculations and transactions.

Meaning you can query#

Define and activate a semantic feature such as needs_action, then use it through the application SQL interface:

sql
SELECT id
FROM documents
WHERE SEMANTIC_FEATURE(body, 'needs_action');

The feature carries a reviewed definition, type and revision. The same interpretation can support a queue, a report and a natural-language question. Learn how to create a semantic feature.

Start with your question#

“For each supplier, show the total quantity delivered, largest total first.”

The runnable tutorial records this generated query:

sql
SELECT
  SUM("r0"."quantity") AS "result_1",
  "r0"."supplier" AS "result_2"
FROM "deliveries" AS "r0"
GROUP BY "r0"."supplier"
ORDER BY SUM("r0"."quantity") DESC NULLS LAST;

Review the proposal and its interpretation before execution. On the tutorial data, the result is Birch: 36, Aster: 30, Cedar: 8. Follow the quick start.

Choose your interface#

Interface Use it for Availability
Web workspace and HTTP API Natural-language queries, reusable features and semantic operators Stable v0.6.0
Asynchronous jev.* SQL jobs Submit work from PostgreSQL and inspect results Stable v0.6.0
Native jev_native.* functions Direct semantic execution, shared plans and probability embeddings Development preview

The native preview targets PostgreSQL 17 on Linux. The default Docker Compose stack uses the Python runtime. Choose an installation or explore the native preview.

Keep evidence and uncertainty#

Independent semantic questions can run in parallel. Compatible evidence can be reused, while exact operations stay in SQL. Decisions retain three distinct states: VALUE, UNKNOWN and NOT_EVALUATED. An unevaluated row never silently becomes false.

Hosted providers receive the context selected for inference. Configure a suitable local provider when inference must remain local. Configure your provider.