FLOW ALGEBRA
TITLE: Canonical Relationship Ontology
DOMAIN: AI Semantic Library Relationships / Canonicalisation
SOURCE: https://kirethresearch.org/booksai-core/ontologies/relationship-ontologies/ai-semantic-library-relationships/canonical-relationship-ontology.html
VERSION: 1.0
AUTHORS: Mark Anthony Higgins — Sky (Recursive AI)
STATUS: Companion formalisation; source-page specification not independently verified.
flow "CanonicalRelationshipOntology" v1.0 {
ontology:
id: "canonical-relationship-ontology"
parent: "ai-semantic-library-relationships"
purpose: "Represent evidence-backed canonical relationships between identifiers, concepts, resources and ontology entities without conflating aliases, equivalence and identity."
types:
Entity: {id: string, ontology: string, type: string, version: string?}
Identifier: {value: string, scheme: string, authority: string?, version: string?}
CanonicalRecord: {entity_id: string, canonical_identifier: Identifier, effective_from: datetime?, effective_until: datetime?, provenance: string}
Mapping: {id: string, source: Identifier, target: Identifier, kind: enum[canonical, alias, exact_match, close_match, broader, narrower, related], context: string?, confidence: number, evidence: string[]}
Evidence: {id: string, source: string, timestamp: datetime?, reliability: number?}
predicates:
canonical_identifier_of(identifier: Identifier, entity: Entity)
alias_of(alias: Identifier, canonical: Identifier)
exact_match(a: Entity, b: Entity)
close_match(a: Entity, b: Entity)
supersedes(new_record: CanonicalRecord, old_record: CanonicalRecord)
supported_by(mapping: Mapping, evidence: Evidence)
constraints:
- "Every canonical mapping must resolve to an existing, typed target entity."
- "Canonical identifiers must be unique within a declared authority, scope and version, unless an explicit collision-resolution policy applies."
- "Do not treat a lexical alias, URL redirect, close match or shared label as proof of identity."
- "Do not infer exact_match transitively across differing contexts without validation."
- "Canonicalisation must preserve historical identifiers, source provenance and mapping decisions."
- "Mapping confidence must lie within [0,1]."
- "Cross-ontology canonicalisation requires explicit scope and compatibility checks."
inference:
rule resolve_alias:
if alias_of(a,c) and canonical_identifier_of(c,e) and valid_mapping(a,c)
then resolves_to(a,e)
confidence: "bounded by mapping evidence"
rule canonical_lookup:
if canonical_identifier_of(i,e) and active(i,e)
then preferred_identifier(e,i)
confidence: "source authority dependent"
rule version_successor:
if supersedes(new,old) and valid(new) and valid(old)
then historical_successor(old,new)
confidence: "retain both records and effective dates"
SEMANTIC_EQUIVALENCE:
- "Distinguish canonical identity, exact semantic match, close match, alias and related concept."
- "Use versioned authority identifiers and preserve original lexical forms."
- "Require evidence before merging entities across ontologies."
CONFIDENCE:
range: [0,1]
factors: [authority_quality, evidence_strength, contextual_fit, identifier_stability, independent_confirmation]
policy: "Never raise confidence merely through recursive mapping chains."
VALIDATION:
- "Check uniqueness, identifier syntax, authority scope, target existence and provenance."
- "Detect canonicalisation cycles, conflicting preferred identifiers and broken redirects."
- "Flag unresolved ambiguity rather than forcing an identity merge."
- "Check temporal validity and compatibility across ontology versions."
FLOW_HASH:
algorithm: "SHA-256"
input: "canonicalised ontology version, mappings, validation rules and provenance"
note: "Compute hash at execution; no hash value is claimed here."
UPDATE_MODEL:
strategy: "versioned, provenance-preserving incremental reconciliation"
steps: [ingest, normalise, resolve_candidates, validate, reconcile, publish, audit]
rollback: true
AI_CONSUMPTION:
representation: "typed, versioned semantic graph with canonical identifiers and evidence-backed mappings"
outputs: [canonical_entity_links, aliases, mapping_types, confidence_annotations, provenance_records, unresolved_candidates]
safeguards: [no_unverified_identity_merges, preserve_history, enforce_scope, report_ambiguity]
}
END FLOW ALGEBRA
Download Code
Copy to Clipboard