FLOW ALGEBRA
TITLE: Before Relationship Ontology
DOMAIN: Relationship Ontologies / Temporal Relationships
SOURCE: https://kirethresearch.org/booksai-core/ontologies/relationship-ontologies/temporal-relationships/before-relationship-ontology.html
VERSION: 1.0
AUTHORS: Mark Anthony Higgins — Sky (Recursive AI)
STATUS: Companion formalisation; source-page specification not independently verified.
flow "BeforeRelationshipOntology" v1.0 {
ontology:
id: "before-relationship-ontology"
parent: "temporal-relationships"
purpose: "Represent evidence-backed strict temporal precedence between instants, events and intervals."
types:
TimeInstant: {id: string, value: datetime, time_scale: string?, uncertainty: number?, provenance: string}
TimeInterval: {id: string, start: datetime, end: datetime, endpoint_policy: string?, provenance: string}
Event: {id: string, interval_id: string?, instant_id: string?, provenance: string}
TemporalAssertion: {id: string, earlier: string, later: string, interpretation: enum[strict_end_before_start, instant_precedence], confidence: number, evidence: string[], context: string?}
predicates:
before_instant(a: TimeInstant, b: TimeInstant)
before_interval(a: TimeInterval, b: TimeInterval)
before_event(a: Event, b: Event)
meets(a: TimeInterval, b: TimeInterval)
overlaps(a: TimeInterval, b: TimeInterval)
semantics:
- "before_instant(a,b) iff time(a) < time(b) on a compatible time scale."
- "before_interval(a,b) iff end(a) < start(b) for strict separated intervals."
- "Meeting intervals are not strictly before under the selected strict endpoint convention."
- "Event precedence requires explicit temporal extent or instant interpretation."
constraints:
- "All temporal endpoints must resolve to typed, provenance-backed entities."
- "Interval start must not exceed interval end."
- "Confidence must be within [0,1]."
- "Normalise time zones, time scales and precision before comparing."
- "Strict before is irreflexive and asymmetric."
- "Uncertain or overlapping bounds must not yield categorical precedence."
- "Temporal precedence alone does not establish causation."
inference:
rule transitive_precedence:
if before_instant(a,b) and before_instant(b,c) and comparable(a,b,c)
then before_instant(a,c)
confidence: "propagate source uncertainty; never manufacture certainty"
rule interval_transitivity:
if before_interval(a,b) and before_interval(b,c) and comparable(a,b,c)
then before_interval(a,c)
confidence: "retain endpoint precision and evidence"
rule inverse_after:
if before_instant(a,b)
then after_instant(b,a)
confidence: "retain original evidence"
rule contradiction:
if before_instant(a,b) and before_instant(b,a)
then flag_temporal_inconsistency(a,b)
confidence: "review source observations and normalisation"
SEMANTIC_EQUIVALENCE:
- "Map 'earlier than' and 'precedes' to strict before only when endpoint semantics agree."
- "Keep 'before', 'meets', 'overlaps' and 'causes' distinct."
- "Preserve granularity, time scale, calendar, and observation context."
CONFIDENCE:
range: [0,1]
factors: [timestamp_precision, clock_synchronisation, source_reliability, interval_uncertainty, independent_evidence]
policy: "Do not raise confidence solely by inference chaining."
VALIDATION:
- "Check temporal types, endpoint order, timezone/time-scale compatibility and provenance."
- "Detect precedence cycles and contradictory assertions."
- "Mark ambiguous order as unresolved rather than forcing an ordering."
FLOW_HASH:
algorithm: "SHA-256"
input: "canonicalised ontology version, typed temporal assertions, rules and provenance"
note: "Compute hash at execution; no hash value is claimed here."
UPDATE_MODEL:
strategy: "versioned, provenance-preserving incremental update"
steps: [ingest, normalise, validate, compare, reconcile, recompute_inferences, publish]
rollback: true
AI_CONSUMPTION:
representation: "typed temporal knowledge graph with evidence-backed precedence edges"
outputs: [temporal_triples, ordering_constraints, uncertainty_annotations, inferred_edges, provenance_records]
safeguards: [no_unsupported_causal_claims, no_forced_order_for_uncertain_events, preserve_temporal_precision]
}
END FLOW ALGEBRA
Download Code
Copy to Clipboard