Skip to content

Quickstart

Install

pip install triadic-engine

Optional extras:

pip install "triadic-engine[dashboard]"
pip install "triadic-engine[api]"
pip install -e ".[dev]"

Basic Workflow

from neurosym import ContinuousEncoder, DiscreteMapper, DiscreteValidator

# 1. Encode text into neural embeddings
encoder = ContinuousEncoder("all-MiniLM-L6-v2")
concepts = ["King", "Queen", "Man", "Woman"]
embeddings = encoder.encode(concepts)

# 2. Project to discrete prime space
mapper = DiscreteMapper(n_bits=8, projection="pca")
prime_map = mapper.fit_transform(concepts, embeddings)

# 3. Perform algebraic operations
validator = DiscreteValidator()

Subsumption

Does concept A contain all features of concept B?

print(validator.subsumes(prime_map["King"], prime_map["Queen"]))
# --> False (King does not contain ALL features of Queen)

Gap Analysis

What features are shared and what is unique to each?

print(validator.explain_gap(prime_map["King"], prime_map["Queen"]))
# --> {"shared": 10, "only_in_a": 3, "only_in_b": 7,
#      "a_contains_b": False, "b_contains_a": False}

Composition

Create a new concept containing all features of both:

print(validator.compose(prime_map["King"], prime_map["Queen"]))
# --> LCM of both -- a new integer containing all features of King AND Queen

Analogy

Solve A:B :: C:? algebraically:

result = validator.analogy_prediction(
    prime_map["King"], prime_map["Man"], prime_map["Queen"]
)
print(result.output_value)
# --> predicted integer for "Woman"

Choosing a Projection Mode

# Deterministic, corpus-adapted (recommended)
mapper = DiscreteMapper(n_bits=8, projection="pca")

# Classic LSH (seed-dependent)
mapper = DiscreteMapper(n_bits=8, projection="random", seed=42)

# Multi-seed noise filtering
mapper = DiscreteMapper(n_bits=8, projection="consensus", consensus_seeds=20)

# Supervised (highest accuracy, requires labeled pairs)
mapper = DiscreteMapper(
    n_bits=8,
    projection="contrastive",
    hypernym_pairs=[("Animal", "Dog"), ("Vehicle", "Car")]
)

See Projection Modes for a detailed comparison.

Next Steps