FLOW ALGEBRA
TITLE: Object Relationship Ontology
DOMAIN: Knowledge Graph Relationships / RDF Object
SOURCE: https://kirethresearch.org/booksai-core/ontologies/relationship-ontologies/knowledge-graph-relationships/object-relationship-ontology.html
VERSION: 1.0
AUTHORS: Mark Anthony Higgins — Sky (Recursive AI)
STATUS: Companion formalisation; source-page specification not independently verified.
flow "ObjectRelationshipOntology" v1.0 {
ontology:
id: "object-relationship-ontology"
parent: "knowledge-graph-relationships"
purpose: "Represent, validate and reason over RDF object positions in knowledge graph assertions."
types:
IRI: {value: string}
BlankNode: {local_id: string, graph_scope: string}
Literal: {lexical_form: string, datatype: IRI?, language: string?}
Subject: union[IRI, BlankNode]
Predicate: IRI
Object: union[IRI, BlankNode, Literal]
Graph: {id: string, version: string?, provenance: string?}
Triple: {subject: Subject, predicate: Predicate, object: Object, graph: string?, evidence: string[], confidence: number?}
Assertion: {id: string, triple: Triple, asserted_at: datetime?, source: string, status: enum[asserted, inferred, disputed, retracted]}
predicates:
object_of(o: Object, t: Triple)
has_object(t: Triple, o: Object)
refers_to(o: IRI, entity_id: string)
typed_literal(o: Literal, datatype: IRI)
language_tagged(o: Literal, language: string)
in_graph(t: Triple, g: Graph)
supported_by(t: Triple, evidence_id: string)
constraints:
- "Every RDF triple has exactly one object term, which is an IRI, blank node or literal."
- "Subjects are IRIs or blank nodes; predicates are IRIs in standard RDF 1.1."
- "Blank-node identifiers are scoped to their graph or dataset context and are not global identities."
- "Literal datatype and language tag must conform to the chosen RDF profile."
- "Language-tagged literals use rdf:langString; avoid conflicting datatype and language declarations."
- "Literal equality, value equality, entity identity and lexical similarity are distinct."
- "An RDF object term is not necessarily a physical object or an ontology class instance."
- "Confidence annotations are assertion metadata, not native RDF truth values."
inference:
rule object_projection:
if triple(s,p,o) and valid_rdf_term(o)
then object_of(o, triple(s,p,o))
confidence: "preserve assertion provenance"
rule rdfs_range:
if triple(s,p,o) and rdfs_range(p,c) and resource_term(o)
then rdf_type(o,c)
confidence: "only under an explicitly selected RDFS entailment regime"
rule inverse_property:
if triple(s,p,o) and inverse_of(p,q) and resource_term(o)
then triple(o,q,s)
confidence: "only under a declared ontology entailment regime"
rule no_literal_subject_inversion:
if literal(o)
then prohibit_inferred_subject(o)
confidence: "standard RDF 1.1 restriction"
SEMANTIC_EQUIVALENCE:
- "Normalise IRIs conservatively; do not merge distinct identifiers by spelling alone."
- "Preserve literal lexical forms, datatypes and language tags."
- "Do not equate owl:sameAs with skos:exactMatch or textual similarity."
- "Apply identity entailments only where evidence and the reasoning profile justify them."
CONFIDENCE:
range: [0,1]
factors: [source_reliability, evidence_quality, entailment_regime, identity_resolution, temporal_validity]
policy: "Propagate uncertainty without treating inferred assertions as independently verified facts."
VALIDATION:
- "Validate RDF term positions and IRI syntax."
- "Check literal datatype lexical validity and language-tag consistency."
- "Use SHACL or equivalent shapes for application-specific object constraints."
- "Record provenance for asserted and inferred triples."
- "Distinguish RDF graph consistency from closed-world application validation."
FLOW_HASH:
algorithm: "SHA-256"
input: "canonicalised ontology version, RDF assertions, reasoning rules and provenance"
note: "Use a specified RDF dataset canonicalisation method for blank nodes; compute at execution."
UPDATE_MODEL:
strategy: "versioned, provenance-preserving incremental graph updates"
steps: [ingest, parse, normalise, validate, reconcile, recompute_inferences, publish]
rollback: true
AI_CONSUMPTION:
representation: "typed RDF knowledge graph with evidence-backed object links"
outputs: [object_terms, rdf_triples, typed_literals, entity_links, inference_records, provenance_records]
safeguards: [no_unsupported_identity_merges, preserve_literal_datatypes, respect_blank_node_scope, retain_uncertainty]
}
END FLOW ALGEBRA
Download Code
Copy to Clipboard