Minimal SDK for change algebra, trust graphs, and innovation geometry.
Project description
chronos
Chronos: Innovation Algebra & Trust SDK
A minimal, composable Python SDK for modeling change events, trust graphs, and innovation landscapes. Includes algebraic change sets, trust propagation, Riemannian geometry helpers, and a master equation integrator.
Features
- Change Algebra: Immutable, timestamped change events and sets with union/intersection/difference, composition, inversion, and state evolution.
- Trust Graphs: Weighted directed trust networks with path aggregation and logistic update law (requires
networkx). - Manifold Geometry: Minimal Riemannian metric/geodesic/curvature helpers (requires
numpy). - Navigator: Lightweight forward-Euler integrator for arbitrary vector fields.
- Future Layer: Probabilistic, open-ended futures with
FutureChangeSetand scenario enumeration. - Ontology Layer: Reusable change schemas and goal-driven entities with
Schema,Ontology, andEntity.
Installation
With UV:
uv pip install chronos-innov
Or with pip:
pip install chronos-innov
Usage
Change Algebra
from chronos import ChangeEvent, ChangeSet, change_set
# Create events
c1 = ChangeEvent(timestamp=1.0, state_before=0, state_after=1)
c2 = ChangeEvent(timestamp=2.0, state_before=1, state_after=2)
# Create a set
cs = ChangeSet([c1, c2])
# Algebraic ops
cs2 = cs.inverse()
cs3 = cs.union(cs2)
Trust Graphs
from chronos import TrustGraph
T = TrustGraph()
T.set_trust('alice', 'bob', 0.8)
T.update_trust('alice', 'bob', delta=0.1)
trust = T.get_trust('alice', 'bob')
Manifold Geometry
from chronos import Metric, geodesic, curvature
import numpy as np
metric = Metric(lambda x: np.eye(len(x)))
path = geodesic(metric, np.array([0,0]), np.array([1,1]))
curv = curvature(metric, np.array([0,0]))
Navigator
from chronos import Navigator
import numpy as np
nav = Navigator(lambda x: -x)
traj = nav.integrate(np.array([1.0, 0.0]), steps=10)
Future Layer
from chronos import ChangeEvent, FutureChangeSet, Navigator
# Define probabilistic future events
idea = ChangeEvent("idea-drafted", t0=0, dt=0.1, prob=1.0)
tea_party = ChangeEvent("tea-party-with-Vogon", t0=1, dt=0.5, prob=0.7)
whale = ChangeEvent("spontaneous-whale-appearance", t0=2, dt=0.2, prob=0.3)
petunias = ChangeEvent("petunia-uprising", t0=3, dt=0.1, prob=0.15)
future_timeline = FutureChangeSet([idea, tea_party, whale, petunias], closed=False)
# Enumerate top 3 most probable future scenarios
nav = Navigator(InnovationMetric())
scenarios = nav.enumerate_scenarios(future_timeline, n=3)
for i, path in enumerate(scenarios, 1):
print(f"Scenario {i}: {path.ordered()}")
Ontology Layer
from chronos import Schema, Ontology, Entity, Navigator
# Define a schema
feature_schema = Schema("feature", mean_period=5.0, default_dt=1.0, description="A new feature")
# Create an ontology and add the schema
onto = Ontology()
onto.add_schema(feature_schema)
# Spawn an entity with a goal
def my_generator(entity):
return ChangeSet([ChangeEvent("my-goal", t0=0, dt=0.1, prob=1.0)])
entity = onto.spawn("my_entity", "feature", "my-goal", my_generator)
# Use Navigator to find a path to the entity's goal
nav = Navigator(InnovationMetric())
path, total = nav.entity_goal_path(entity)
print(nav.pretty_report(path))
Requirements
- Python 3.9+
networkx(for trust graphs)numpy(for manifold & navigator)
MIT License. See source for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chronos_innov-0.1.2.tar.gz.
File metadata
- Download URL: chronos_innov-0.1.2.tar.gz
- Upload date:
- Size: 39.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e9063554adc8643e426b3e908fb567959008c39e97afbedb87a8bbbd14f1aa89
|
|
| MD5 |
76d737b38b8dd9b965877513a0966fdb
|
|
| BLAKE2b-256 |
8a028c598833ce9ead92ce7e611cb5c032175a04cf9da49d73e1efcdf5c1a788
|
File details
Details for the file chronos_innov-0.1.2-py3-none-any.whl.
File metadata
- Download URL: chronos_innov-0.1.2-py3-none-any.whl
- Upload date:
- Size: 3.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2008ad15344ff36f34a57063946058023cc7d55ae895d6419dec2b3f09163a73
|
|
| MD5 |
86b472955e90c303f22a2912e2fb6e6b
|
|
| BLAKE2b-256 |
5a297fac0f4a888bf0ffb5b6df689a1ffc1dd809a2acbbf2f16ceb340f3de45a
|