Skip to main content

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 FutureChangeSet and scenario enumeration.
  • Ontology Layer: Reusable change schemas and goal-driven entities with Schema, Ontology, and Entity.

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

chronos_innov-0.1.2.tar.gz (39.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chronos_innov-0.1.2-py3-none-any.whl (3.3 kB view details)

Uploaded Python 3

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

Hashes for chronos_innov-0.1.2.tar.gz
Algorithm Hash digest
SHA256 e9063554adc8643e426b3e908fb567959008c39e97afbedb87a8bbbd14f1aa89
MD5 76d737b38b8dd9b965877513a0966fdb
BLAKE2b-256 8a028c598833ce9ead92ce7e611cb5c032175a04cf9da49d73e1efcdf5c1a788

See more details on using hashes here.

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

Hashes for chronos_innov-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2008ad15344ff36f34a57063946058023cc7d55ae895d6419dec2b3f09163a73
MD5 86b472955e90c303f22a2912e2fb6e6b
BLAKE2b-256 5a297fac0f4a888bf0ffb5b6df689a1ffc1dd809a2acbbf2f16ceb340f3de45a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page