Skip to main content

venomx - Vector Embedding Named Object Model indeX

VENOMX is an exchange standard for vector embeddings, layered on existing vector storage standards, with the goal of sharing vector embeddings for named entities (books, genes, publications, anything in schema.org, ...).

One of the goals is to support an Embedding Hub, potentially layered on existing dataset repositories (e.g. huggingface, zenodo, figshare, ...).

Why?

Why have a standard for embeddings? We have CSVs and Parquet and arrow, what else do we need?

Let's say Barb has made vector embeddings of all of Wikidata using OpenAI text-embedding-ada-002, and distributes them (e.g. on HuggingFace), and Alice downloads from here.

Two months later, Alice wants to use this for RAG querying. But she has forgotten what model was used, and also what version of Wikidata was used. She also doesn't remember what exactly was indexed. Was it the page titles? The descriptions? Or the full Wikipedia text?

Multiply this by multiple datasets, versions, indexing strategies, subsets, and chaos ensues.

The goal of venomx is to provide:

  • a simple YAML format for metadata about an embeddings set
  • a super-simple parquet schema for the embeddings themselves

It is intended to compose with existing standards for model cards and dataset descriptions, rather than replace.

It is also intended to be flexible, and support the following scenarios:

  1. distribute embedding metadata alongside embeddings, with the latter in an efficient format like Parquet
  2. distribute both together in YAML (convenience at the expense of some access-time/space efficiency)
  3. Use of other serializations than YAML for the metadata (JSON, TSV, RDF, Avro, GraphQL, ...)
  4. Use of alternate storage formats for the embeddings (Arrow, HDF5, ...)
  5. Easy composition with your favorite array library (numpy, xarr, pyarrow, ...)
  6. Easy composition with your favorite vector database (ChromaDB, etc)
  7. Use in combination with objects stored in databases like Solr, PostgreSQL, ...

Note that current functionality is highly minimal, but in future there may be plugins e.g. for import/export from vectordbs.

Things that are out of scope including actually creating the embedding and computing over them. There already existing many existing great frameworks for this. Venomx is focused purely on making indexes of embeddings FAIR and easy to share.

Example

This example is based around the Human Phenotype Ontology (HPO). Vector embeddings of HPO are useful for searching for phenotypes, for RAG-type LLM applications, and for applications such as variant prioritization (cosine similarity of vector embeddings could replace traditional ontological semantic similarity measures).

The default way to distribute using venomx is a YAML file with metadata, and a Parquet file:

$ ls
hp.yaml
hp.parquet

The contents of hp.yaml:

description: HPO label index
prefixes:
  HP: http://purl.obolibrary.org/obo/HP_
model:
  name: "text-embedding-ada-002"
model_input_method:
  description: Simple pass through of labels only
  fields: [ "rdfs:label" ]
dataset:
  name: HPO-Jan-2024
  url: http://purl.obolibrary.org/obo/hp/releases/2024-01-01/hp.owl
objects:
  - id: "HP:0000001"
    label: "All"
  - id: "HP:0000002"
    label: "Abnormality of body height"
  # <snip>

Running parquet schema hp.parquet gives the schema for hp.parquet:

{
  "type" : "record",
  "name" : "schema",
  "fields" : [ {
    "name" : "id",
    "type" : [ "null", "int" ],
    "default" : null
  }, {
    "name" : "name",
    "type" : [ "null", "string" ],
    "default" : null
  }, {
    "name" : "embedding",
    "type" : [ "null", {
      "type" : "array",
      "items" : {
        "type" : "record",
        "name" : "list",
        "fields" : [ {
          "name" : "element",
          "type" : [ "null", "float" ],
          "default" : null
        } ]
      }
    } ],
    "default" : null
  }, {
    "name" : "metadata",
    "type" : [ "null", {
      "type" : "map",
      "values" : [ "null", "string" ]
    } ],
    "default" : null
  } ]
}

Command line tools

Although the main purpose of this repo is as a proposed standard, we include some simple tools for basic conversion and validation

Conversion

Currently only two formats are supported:

  • parquet: two files, a metadata yaml file and a parquet file
  • yaml: a combined all-in-one yaml file (may be less efficient)

(THIS IS PROBABLY A BIT CONFUSING AND MAY CHANGE)

The test folder includes an all-in-one example, we can convert that to a dual yaml/parquet format:

venomx convert -f yaml tests/input/example.combined.yaml -t parquet -o tests/output/example.yaml

Validation

venomx validate tests/output/example.yaml

Roadmap

  • Use linkml-arrays standard
  • other embeddings formats (xarr, arrow, ...)
  • ...

Release files for venomx 0.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for venomx 0.2.3
File Size Uploaded
venomx-0.2.3.tar.gz 129.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for venomx 0.2.3
File Interpreter ABI Platform
venomx-0.2.3-py3-none-any.whl Python 3 none any Details

Total release size: 140.8 kB

Release files / venomx-0.2.3.tar.gz

Download URL venomx-0.2.3.tar.gz
Size 129.3 kB
Tags Source
SHA-256 checksum
How to use checksums
a57297c45297f354fa3f6dd69327aca4ecfa005dedd1c7b9a12c4b1ecb469477
BLAKE2b-256 checksum
How to use checksums
31a651606b45db4e187f77f8e3b99da12eeb33a4bdd5906d2543877dc17d57db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 30, 2026.

Transparency log

Release files / venomx-0.2.3-py3-none-any.whl

Download URL venomx-0.2.3-py3-none-any.whl
Size 11.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
537e37af65f486d468e7662a543f5e28393589d122e4109b7437073d72cc74ca
BLAKE2b-256 checksum
How to use checksums
77ab082b8bf10b988fe4ba58641c4610e4abaf813575ae4d8965202a5f70720a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 30, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.3 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page