Skip to content

JEVDB

DuckDB extension and Python package for semantic SQL that batches row-level filters, joins and classification on Jev.

Pluginresearch

Overview

JEVDB (Just Evaluation and Verification Database) is a semantic database built on DuckDB that runs semantic filters, semantic joins, classification and scoring over text as part of ordinary SQL, accompanied by an arXiv paper, a website and a Colab notebook. SQL functions include jev_holds for a boolean filter on one record or a join condition on a pair, jev_probability for the underlying probability, jev_choose for one label from a list, and jev_score for a position on ordered levels. Ordinary predicates in the same WHERE clause are applied first, semi and anti joins work through EXISTS, and ORDER BY a score with LIMIT gives top-k.

By default it batches decisions on Jev in a single stage, returning probabilities, labels and scores directly with no generated explanation; run this way without key pruning it is called JEVDB-Flash. Optional key conditions remove impossible pairs, an optional cascade sends uncertain decisions to a second-stage model, and an OpenAI-compatible LLM backend is available for users without a Jev account. It does not generate text, so extraction, rewriting and summarisation are out of scope. Keys come from an environment-backed secret and never appear in SQL.

What the decision model decides

TypeQuestionAnswers
Yes / noDoes this condition hold for the row (e.g. the review is clearly positive)?—
ChoiceWhich label classifies this row?—
ScoreWhere does this row fall on the given levels?—
Yes / noDoes the condition hold for this pair of rows (semantic join)?—

How it works

  1. Create a Jev secret from the environment
  2. Write SQL using jev_holds, jev_choose, jev_score
  3. Ordinary predicates run first; semantic decisions batched in one stage
  4. Optional pruning and cascade for uncertain decisions

Strengths

  • Semantic operations inside ordinary DuckDB SQL
  • Single-stage batching
  • LLM fallback backend for users without Jev

Caveats

  • Semantic joins can be costly on large tables
  • No text generation operators

Getting started

pip install jevdb, then `con = jevdb.connect()` and `CREATE SECRET jev (TYPE jev, PROVIDER env)` with JEV_API_KEY set.

At a glance

Type
Plugin
Status
research
Language
C++
Runtime
DuckDB extension / Python package
Has code
yes

Use cases and integrations

How curated lists describe it

  • DuckDB extension for semantic queries that batches row-level decisions on Jev in one stage, with an OpenAI-compatible LLM backend as the alternative and a Colab notebook.

    MrJev/awesome-jev

Frequently asked questions

What SQL functions does it add?

jev_holds, jev_probability, jev_choose and jev_score.

Can it summarise text?

No, it only makes decisions; extraction and summarisation are out of scope.

Do I need a Jev account?

No, an OpenAI-compatible LLM backend is available as an alternative.

Related projects

  • Filament table filter that scores each row with a Jev Noul on a plain-English statement and keeps rows at or above 0.8.

    PluginbetaPHP
  • dbt package and Terraform module adding jev_noul, jev_choice, jev_score and jev_ask SQL functions to Snowflake.

    LibrarybetaSQL
  • Portable SQLite C extension depending only on libcurl that adds jev_noul, jev_choice and jev_score SQL functions.

    PluginbetaC
  • High-throughput native DuckDB extension that batches and streams Jev Noul, Choice and Score judgments directly from SQL.

    PluginbetaC++
  • PostgreSQL extension with jev(), jev_prob, jev_choice and jev_score to filter, rank and classify rows by plain-language conditions.

    PluginbetaC
  • SQLite loadable extension and Python package exposing Jev Noul, Choice and Score as SQL functions and batched virtual-table scans.

    PluginbetaC