FLOW ALGEBRA
TITLE: Organisational Relationship Ontology
DOMAIN: Human Relationships / Organisational Relationships
SOURCE: https://kirethresearch.org/booksai-core/ontologies/relationship-ontologies/human-relationships/organisational-relationship-ontology.html
VERSION: 1.0
AUTHORS: Mark Anthony Higgins — Sky (Recursive AI)
STATUS: Companion formalisation; source-page specification not independently verified.
flow "OrganisationalRelationshipOntology" v1.0 {
ontology:
id: "organisational-relationship-ontology"
parent: "human-relationships"
purpose: "Represent evidence-backed roles, membership, authority, reporting, collaboration and governance within organisations."
types:
Person: {id: string, name: string?, privacy_class: string?}
Organisation: {id: string, name: string, kind: string?, jurisdiction: string?}
OrganisationalUnit: {id: string, organisation_id: string, name: string}
Role: {id: string, title: string, scope: string?, responsibilities: string[]}
Appointment: {id: string, person_id: string, role_id: string, unit_id: string?, start: datetime?, end: datetime?, evidence: string[]}
Authority: {id: string, scope: string, granted_by: string?, valid_from: datetime?, valid_until: datetime?}
Evidence: {id: string, source: string, observed_at: datetime?, reliability: number?}
Relationship: {id: string, subject: string, predicate: string, object: string, valid_from: datetime?, valid_until: datetime?, confidence: number, evidence: string[]}
predicates:
member_of(person: Person, organisation: Organisation)
belongs_to(unit: OrganisationalUnit, organisation: Organisation)
holds_role(person: Person, role: Role)
assigned_to(person: Person, unit: OrganisationalUnit)
reports_to(person: Person, manager: Person)
manages(person: Person, unit: OrganisationalUnit)
collaborates_with(a: Person, b: Person)
delegates(authority: Authority, from_person: Person, to_person: Person)
accountable_for(person: Person, responsibility: string)
affiliated_with(a: Organisation, b: Organisation)
constraints:
- "All relationship endpoints must resolve to declared compatible entity types."
- "Confidence and evidence reliability must lie within [0, 1]."
- "Roles, reporting lines, and membership are time-bounded where dates are known."
- "A reporting relationship must not be inferred solely from job titles or seniority."
- "Membership does not imply employment, management authority, or legal ownership."
- "Collaboration and affiliation are not automatically transitive."
- "Delegated authority must specify scope and validity; delegation does not imply unlimited powers."
- "Sensitive personal data must be minimised and access controlled."
inference:
rule inverse_reporting:
if reports_to(a,b) and valid_at(relation, time)
then supervises(b,a)
confidence: "retain originating evidence and temporal scope"
rule unit_organisation:
if assigned_to(p,u) and belongs_to(u,o) and current(u,o)
then associated_with(p,o)
confidence: "association only; do not infer employment"
rule bounded_delegation:
if delegates(auth,a,b) and active(auth,time)
then authorised_for(b,auth.scope,time)
confidence: "require evidence of valid delegation"
SEMANTIC_EQUIVALENCE:
- "Normalise role titles and organisation identifiers against versioned vocabularies."
- "Distinguish organisational identity from name similarity and shared addresses."
- "Preserve role scope, jurisdiction, dates, and employment status distinctions."
CONFIDENCE:
range: [0,1]
factors: [source_reliability, evidence_recency, identity_resolution, temporal_validity, independent_confirmation]
policy: "Never raise certainty merely by chaining organisational relationships."
VALIDATION:
- "Validate entity types, organisational membership, role scopes and effective dates."
- "Flag conflicting reporting lines without assuming they are invalid; matrix reporting may be legitimate."
- "Check delegated authority against its grant, scope, expiry and revocation."
- "Preserve conflicting evidence and protect personal information."
FLOW_HASH:
algorithm: "SHA-256"
input: "canonicalised ontology version, typed assertions, inference rules and provenance"
note: "Compute at execution; no hash value is claimed here."
UPDATE_MODEL:
strategy: "versioned, provenance-preserving incremental update"
steps: [ingest, normalise, validate, reconcile, expire_outdated_roles, recompute_inferences, publish]
rollback: true
AI_CONSUMPTION:
representation: "typed organisational knowledge graph with evidence-backed and time-scoped edges"
outputs: [organisational_entities, reporting_edges, role_assignments, authority_scopes, confidence_annotations, provenance_records]
safeguards: [privacy_by_design, no_unverified_employment_claims, no_unbounded_authority_inference, preserve_temporal_context]
}
END FLOW ALGEBRA
Download Code
Copy to Clipboard