FLOW ALGEBRA
TITLE: Relationship Validation Ontology
DOMAIN: AI Semantic Library Relationships / Relationship Validation
SOURCE: https://kirethresearch.org/booksai-core/ontologies/relationship-ontologies/ai-semantic-library-relationships/relationship-validation-ontology.html
VERSION: 1.0
AUTHORS: Mark Anthony Higgins — Sky (Recursive AI)
STATUS: Companion formalisation; source-page specification not independently verified.
flow "RelationshipValidationOntology" v1.0 {
ontology:
id: "relationship-validation-ontology"
parent: "ai-semantic-library-relationships"
purpose: "Validate typed semantic relationships against ontology constraints, evidence, provenance and versioned reasoning rules."
types:
Entity: {id: string, ontology: string, class: string, version: string?}
Relationship: {id: string, subject: string, predicate: string, object: string, context: string?, confidence: number, evidence: string[]}
Constraint: {id: string, kind: enum[domain, range, cardinality, disjointness, temporal, logical, provenance, custom], expression: string, severity: enum[error, warning, information]}
Evidence: {id: string, source: string, timestamp: datetime?, provenance: string, reliability: number?}
ValidationResult: {relationship_id: string, status: enum[valid, invalid, indeterminate], violations: string[], warnings: string[], checked_at: datetime, rule_version: string}
predicates:
subject_of(entity: Entity, relation: Relationship)
object_of(entity: Entity, relation: Relationship)
governed_by(relation: Relationship, constraint: Constraint)
supported_by(relation: Relationship, evidence: Evidence)
validated_as(relation: Relationship, result: ValidationResult)
maps_to(entity_a: Entity, entity_b: Entity)
constraints:
- "Every relationship subject and object must resolve to an identifiable entity or explicitly permitted literal."
- "Predicates must resolve to declared properties with compatible domain and range."
- "Confidence values must lie within [0,1]; absence of evidence is not evidence of validity."
- "Enforce cardinality, disjointness, temporal and logical constraints under the selected ontology version."
- "Do not treat an open-world absence of a triple as a contradiction."
- "Differentiate structural validity from factual truth and evidential support."
- "Do not infer identity from aliases, lexical similarity or a mapping alone."
- "Retain validation provenance and all conflicting evidence."
inference:
rule type_check:
if declared_domain(p,c) and relation(s,p,o) and type_of(s,t) and incompatible(t,c)
then flag_violation(s,p,o,"domain_mismatch")
confidence: "deterministic only under explicitly selected closed validation profile"
rule evidence_gap:
if relationship(r) and requires_evidence(r) and no_qualifying_evidence(r)
then flag_warning(r,"insufficient_evidence")
confidence: "do not assert falsehood"
rule validation_aggregation:
if all_required_checks_pass(r) and no_blocking_violation(r)
then validated_as(r,"valid")
confidence: "validity is relative to rules, data snapshot and ontology version"
SEMANTIC_EQUIVALENCE:
- "Use versioned canonical identifiers and explicitly scoped equivalence mappings."
- "Keep equivalentClass, equivalentProperty, sameAs and approximateMatch semantically distinct."
- "Revalidate when a mapping, schema or ontology version changes."
CONFIDENCE:
range: [0,1]
factors: [source_reliability, evidence_quality, mapping_certainty, temporal_relevance, inference_assumptions]
policy: "Report evidence confidence separately from binary or three-valued validation status; never manufacture certainty by chaining."
VALIDATION:
stages: [resolve_identifiers, check_types, check_domain_range, check_cardinality, check_logical_consistency, check_temporal_scope, inspect_evidence, record_results]
outputs: [valid_relations, invalid_relations, indeterminate_relations, violations, warnings, audit_trail]
policy: "Use explicit closed-world constraints where completeness is required; otherwise preserve unknown status."
FLOW_HASH:
algorithm: "SHA-256"
input: "canonicalised ontology version, relationship assertions, validation rules, mapping versions and provenance"
note: "Compute at execution; no hash value is claimed here."
UPDATE_MODEL:
strategy: "versioned incremental revalidation with provenance preservation"
steps: [ingest, normalise, detect_changes, identify_affected_relationships, validate, reconcile, publish]
rollback: true
AI_CONSUMPTION:
representation: "typed knowledge graph with machine-readable validation reports"
outputs: [validated_triples, constraint_violations, confidence_annotations, provenance_records, change_logs]
safeguards: [no_unsupported_identity_merges, no_closed_world_assumptions_without_declaration, no_confidence_inflation, preserve_conflicting_evidence]
}
END FLOW ALGEBRA
Download Code
Copy to Clipboard