Loading TACITUS
Loading TACITUS
GRAMMAR · KERNEL + DYNAMIC EXTENSIONS
Eight kernel primitives that compose every dispute, every options memo, every consultation, every regulatory file. Per-case extensions specialize them. MIT-licensed. Forkable. Versioned.
The grammar is the contract between extraction and reasoning. Our two open Rust vision layers — AGON for conflict structure and KAIROS for temporal structure — write into this grammar. DIALECTICA reads it. The kernel is what every case shares. Per-case extensions specialize it without breaking it — HR mediation, regulatory consultation, peace process, vendor agreement. The Agentic Conflict Ontology (ACO) is the historical name; the object is broader than its name.
THE KERNEL
Every policy file, every dispute, every regulatory consultation, every mediation decomposes into these eight types. The kernel is the part that does not change. It is versioned, forkable, and the thing every TACITUS product reads and writes.
Who participates
Individuals, teams, institutions, states, coalitions: any agent with goals and agency in the dispute.
What is asserted
Factual, evaluative, or normative statements a party makes. The surface of the disagreement.
What lies beneath
Underlying needs and motivations. Fisher-Ury: what the party actually needs, versus the position they state.
What limits outcomes
Rules, regulations, norms, hard facts. The structural bounds on possible resolution.
What holds the power
Resources and dependencies that give a party the ability to act, withhold, or influence.
What was agreed
Promises, contracts, pledges, ceasefires. The graph-layer distinction between asserted and agreed.
What happened when
Time-stamped, provenance-carrying occurrences. The temporal DAG underneath every case.
How it is framed
The story each party tells about the dispute. Captures framing, re-framing, and narrative drift over time.
TYPED SIGNATURES
Each kernel primitive is specified by a tuple of required fields, an admitted set of relation types, and a kernel invariant any extension subclass must preserve. The cards below summarise the v2 specification; the full machine-readable schema is in the kernel repo.
Actor
Required
id, label, type, source_spans*
Kernel invariant
At least one source span establishes presence in the corpus.
Claim
Required
asserter, content, type, source_span, valid_time
Kernel invariant
Character-level span; contestation status updates atomically with any CONTRADICTS edge.
Interest
Required
holder, content, derivation, confidence
Kernel invariant
Derivation chain mandatory; pure assertion without evidentiary chain is rejected.
Constraint
Required
type, content, source, binding_strength
Kernel invariant
Source must be cited; binding_strength ∈ {Hard, Soft, Aspirational}.
Leverage
Required
holder, target, mechanism, magnitude
Kernel invariant
Holder ≠ target; mechanism substantiated by source evidence.
Commitment
Required
undertaker, content, status, revision_chain
Kernel invariant
Status transitions require evidence; Active → Fulfilled requires intervening evidence.
Event
Required
type, participants, valid_time
Kernel invariant
PRECEDES vs CAUSES distinction enforced; CAUSES requires mechanism + conditions.
Narrative
Required
framer, frame, target, drift_chain
Kernel invariant
Drift chain ordered, framer-scoped; reframing is data, not noise.
EDGE TYPES (18)
Assertion / denial
Structural
Commitment
Temporal
Framing
PARTIAL-CREDIT MATRIX
When a predicted edge type is close to but not identical to the gold type, the TCGC harness awards partial credit per this matrix. Diagonal entries are 1.0. Every nonzero off-diagonal carries a rationale: ASSERTED/ACKNOWLEDGED at 0.5 (same kind, different speaker role); ACKNOWLEDGED/ACKNOWLEDGED_AMBIGUOUSLY at 0.75 (same kind with hedge); BLOCKS/CONSTRAINED_BY at 0.4 (reverse direction, near-synonym, direction matters downstream); ENABLES/CAUSES at 0.5 (CAUSES is strictly stronger); COMMITS_TO/ASSERTED at 0.5 (the boundary this benchmark specifically tests).
| ASSERTED | DENIED | ACKNOWLEDGED | ACKNOWLEDGED_AMBIGUOUSLY | DENIES_SCOPE | COMMITS_TO | REVOKES | BLOCKS | ENABLES | CAUSES | PRECEDES | CONTRADICTS | SUPPORTS | CITES | HOLDS_INTEREST | FRAMES | LEVERAGES | CONSTRAINED_BY | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ASSERTED | 1 | .50 | .50 | |||||||||||||||
| DENIED | 1 | .50 | ||||||||||||||||
| ACKNOWLEDGED | .50 | 1 | .75 | |||||||||||||||
| ACKNOWLEDGED_AMBIGUOUSLY | .75 | 1 | ||||||||||||||||
| DENIES_SCOPE | .50 | 1 | ||||||||||||||||
| COMMITS_TO | .50 | 1 | ||||||||||||||||
| REVOKES | 1 | |||||||||||||||||
| BLOCKS | 1 | .40 | ||||||||||||||||
| ENABLES | 1 | .50 | ||||||||||||||||
| CAUSES | .50 | 1 | ||||||||||||||||
| PRECEDES | 1 | |||||||||||||||||
| CONTRADICTS | 1 | |||||||||||||||||
| SUPPORTS | 1 | |||||||||||||||||
| CITES | 1 | |||||||||||||||||
| HOLDS_INTEREST | 1 | |||||||||||||||||
| FRAMES | 1 | |||||||||||||||||
| LEVERAGES | 1 | |||||||||||||||||
| CONSTRAINED_BY | .40 | 1 |
KERNEL INVARIANTS
THE PRINCIPLE
The eight primitives do not change. They are the universal kernel — every file, in every domain, decomposes into them. What changes are the extensions — the per-case subclasses that give a Commitment its shape in HR mediation, in a regulatory consultation, in a ceasefire negotiation, or in a vendor agreement. The system learns extensions from the case. The kernel validates them. The provenance log records them. You can fork them.
The kernel constrains. The extensions specialize. Together they give a typed, queryable, contestable, temporally honest representation of an institutional file that no single fixed ontology — and no schema-free graph — can produce alone. The graph survives the analyst. The next desk inherits it.
WORKED EXAMPLE · COMMITMENT, FOUR DOMAINS
Each card extends the same kernel Commitment primitive with the fields the domain actually needs. A fixed ontology cannot produce all four; a schema-free graph cannot validate any of them.
Commitment
└── extends WorkAllocationCommitment(
scope,
deadline,
ownership_type,
)EXAMPLE
Sam asserts Alex owns Q4 deck content by Thursday. Alex acknowledges ambiguously, then partially denies scope on Day 4.
Commitment
└── extends RegulatoryCommitment(
rule_reference,
redraft_window,
consultation_status,
)EXAMPLE
Agency commits to redraft Rule 17(b) before Q3 in response to consultation; revises scope on Thursday.
Commitment
└── extends CeasefireCommitment(
geographic_scope,
verification_mechanism,
withdrawal_distance,
)EXAMPLE
Party A commits to halt offensive operations within 5 km of the contact line for 72 hours, verified by an international observer team.
Commitment
└── extends ServiceLevelCommitment(
metric,
threshold,
remedy,
)EXAMPLE
Vendor commits to 99.9% uptime measured monthly, with a 10% credit on breach.
KAIROS · Allen-13 interactive
What it says
A begins first, ends inside B.
Drag the bars to move them; drag the edges to resize. Allen-13 is the kernel of time-aware reasoning — KAIROS computes these between every pair of episodes in a case file.
One commitment · six states
A single Commitment primitive moves through six states across four days. The kernel records each transition with provenance. The graph reasons over the trajectory, not just the latest state.
Nordalia delegate proposes a 5-km halt on offensive operations for 72 hours.
DRM delegate acknowledges proposal in plenary session; transcript p. 14.
Joint communiqué codifies the 5-km halt with verification by international observers.
Nordalia files breach complaint citing observed movement near 4.2-km line.
DRM denies breach; characterizes movement as administrative reposition.
Both parties reaffirm dialogue commitment; halt extended 48h pending verification.
THE FORKABLE CONTRACT
The kernel is versioned
Breaking changes go through a versioned release; minor changes are additive. The kernel is the part the whole institution can rely on.
Extensions are local
A team can fork an extension subclass without forking the kernel. Domain knowledge stays where it lives; the kernel travels.
Validation is automated
Every proposed extension must (a) name its parent primitive, (b) declare its constraints, (c) pass kernel-invariant checks before it is admitted.
Provenance is mandatory
Every extension carries the case, the timestamp, and the practitioner who introduced it. The audit trail is the contract; inheritance depends on it.
REFERENCE
GitHub repository
Kernel primitives, edge types, validation harness, examples. MIT-licensed.
Pydantic / JSON schema
Machine-readable kernel schema. Validate extensions against the invariants before you admit them.
Python SDK
pip install tacitus-ontology · build a typed graph from your file in a dozen lines.
The repo, schema, and SDK are under active development. Send issues, forks, and pull requests at the open-source pipeline.