FLOW ALGEBRA
TITLE: Subject Relationship Ontology
DOMAIN: Knowledge Graph Relationships / RDF Subjects
SOURCE: https://kirethresearch.org/booksai-core/ontologies/relationship-ontologies/knowledge-graph-relationships/subject-relationship-ontology.html
VERSION: 1.0
AUTHORS: Mark Anthony Higgins — Sky (Recursive AI)
STATUS: Companion formalisation; source-page specification not independently verified.
flow "SubjectRelationshipOntology" v1.0 {
ontology:
id: "subject-relationship-ontology"
parent: "knowledge-graph-relationships"
purpose: "Type, validate and reason about subjects as the originating terms of RDF assertions, while preserving identity, scope and provenance."
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, name: IRI?, version: string?, provenance: string?}
Triple: {subject: Subject, predicate: Predicate, object: Object, graph_id: string, provenance: string?, confidence: number?}
SubjectDescription: {subject: Subject, graph_id: string, assertions: Triple[], aliases: string[], provenance: string[]}
predicates:
is_subject_of(s: Subject, t: Triple)
describes(g: Graph, s: Subject)
has_assertion(s: Subject, p: Predicate, o: Object, g: Graph)
same_resource_as(a: Subject, b: Subject, evidence: string)
occurs_in(s: Subject, g: Graph)
constraints:
- "RDF triple subjects MUST be IRIs or blank nodes; literals cannot be subjects in standard RDF 1.1."
- "Predicates MUST be IRIs in standard RDF 1.1."
- "Every triple references an existing graph and retains provenance where available."
- "Blank-node identifiers are scoped to their RDF graph or dataset context; equal labels across scopes do not imply identity."
- "The subject position is a syntactic role and does not imply causation, agency, ownership or grammatical subjecthood."
- "Matching labels, names or lexical forms alone cannot establish resource identity."
- "Confidence, when supplied, must be within [0,1] and is annotation metadata, not native RDF truth semantics."
inference:
rule subject_occurrence:
if Triple(s,p,o,g) and valid(Triple(s,p,o,g))
then is_subject_of(s,Triple(s,p,o,g)) and occurs_in(s,g)
confidence: "derived structurally; preserve source provenance"
rule subject_description:
if has_assertion(s,p,o,g)
then describes(g,s)
confidence: "structural assertion only"
rule rdf_type:
if has_assertion(s,rdf:type,c,g)
then candidate_type(s,c,g)
confidence: "subject to RDF/RDFS entailment regime and source evidence"
rule identity_guard:
if lexical_match(a,b) and not identity_evidence(a,b)
then do_not_merge(a,b)
confidence: "identity remains unresolved"
SEMANTIC_EQUIVALENCE:
- "Normalise IRIs without altering their intended resource identity."
- "Keep exact identity, aliases, similarity and ontology class membership distinct."
- "Do not equate blank nodes by local identifier across graph scopes."
- "Apply owl:sameAs only under an explicitly enabled OWL entailment regime and with documented evidence."
CONFIDENCE:
range: [0,1]
factors: [source_reliability, provenance_quality, identity_evidence, graph_consistency, inference_regime]
policy: "Never increase certainty merely because several statements repeat the same unsupported assertion."
VALIDATION:
- "Verify RDF subject, predicate and object term kinds."
- "Verify IRI syntax, graph references, blank-node scope and provenance."
- "Check contradictions under the declared entailment regime; do not assume a closed world."
- "Distinguish asserted from inferred triples and preserve inference traces."
FLOW_HASH:
algorithm: "SHA-256"
input: "canonicalised ontology version, RDF dataset, inference rules and provenance"
note: "Use a specified RDF dataset canonicalisation method before hashing; compute at execution."
UPDATE_MODEL:
strategy: "versioned, provenance-preserving incremental update"
steps: [ingest, parse, normalise, validate, resolve_scope, compare, infer, publish]
rollback: true
AI_CONSUMPTION:
representation: "RDF-compatible typed knowledge graph with subject-centric descriptions"
outputs: [subject_descriptions, rdf_triples, graph_membership, identity_candidates, inference_traces, provenance_records]
safeguards: [no_literal_subjects_in_rdf11, no_unsupported_identity_merges, preserve_blank_node_scope, preserve_assertion_provenance]
}
END FLOW ALGEBRA
Download Code
Copy to Clipboard