Skip to content

Compose API

The Compose system provides schema-aware data encoding and querying using Hyperdimensional Computing.

Architecture

┌─────────────────────────────────────────────────────────────┐
│                      COMPOUNDS                               │
│       Domain-specific structures (convenience wrappers)      │
│   KnowledgeGraph, TimeSeries, Hierarchy, Document, Network   │
├─────────────────────────────────────────────────────────────┤
│                      MOLECULES                               │
│            Core compositional building blocks                │
│       Pair, Triple, Bundle, Sequence, Tree, Graph           │
├ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┤
│                  ATOMS (Advanced Only)                       │
│              Low-level HDC primitives                        │
│            bind, unbind, bundle, similarity                  │
└─────────────────────────────────────────────────────────────┘

Quick Reference

Component Description Link
Molecules Core structures (Pair, Triple, etc.) Reference
Compounds Domain templates (KnowledgeGraph, etc.) Reference
Fields Field configuration and encoding Reference
Query Builder Schema-aware query interface Reference
Intersections Cross-collection joins Reference

Common Imports

# Molecules
from hybi.compose import Pair, Triple, Bundle, Sequence, Tree, Graph

# Compounds
from hybi.compose import KnowledgeGraph, Catalog, TimeSeries, Hierarchy

# Configuration
from hybi.compose import Field, Encoding, NumericScale

# Intersections (cross-collection queries)
from hybi.compose.intersections import (
    Intersection, IntersectionMode, JoinConfig,
    JoinedResult, JoinedResultSet,
    Link, LinkSet,  # For flexible (cross-encoding) intersections
)

# Query results
from hybi.compose import ComposeResult, ComposeResultSet

Basic Usage

from hybi import HyperBinder
from hybi.compose import Triple, Field, Encoding

hb = HyperBinder()

# Define schema
schema = Triple(
    subject=Field("entity"),
    predicate=Field("relation", encoding=Encoding.EXACT),
    object=Field("target"),
)

# Ingest with schema
hb.ingest(df, collection="facts", schema=schema)

# Query with schema
q = hb.query("facts", schema=schema)
results = q.find(subject="Einstein")