Skip to content

Compose API

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

Architecture

flowchart TB
    subgraph compounds [COMPOUNDS — Domain Templates]
        c["KnowledgeGraph · Catalog · RelationalTable<br/>TimeSeries · Hierarchy · Document · Network"]
    end

    subgraph molecules [MOLECULES — Core Building Blocks]
        m["Pair · Triple · Bundle · Sequence<br/>Tree · OrderedTree · Graph · Row"]
    end

    subgraph atoms [ATOMS — HDC Primitives, advanced]
        a["bind · unbind · bundle · similarity"]
    end

    compounds --> molecules -.-> atoms

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")