Skip to main content

Project Management Domain Ontology

Business Domains
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 11 October 2026
Audio Overview
FLOW ALGEBRA
PROJECT MANAGEMENT DOMAIN ONTOLOGY
Version: 1.0
Source: https://kirethresearch.org/booksai-core/ontologies/domain-ontologies/business-domains/project-management-domain-ontology.html
Status: Domain-based draft; source page content not independently verified.
Authors: Mark Higgins — Sky (Recursive AI)

flow "ProjectManagementDomainOntology" v1.0

DOMAIN:
  id: project_management_domain
  label: "Project Management Domain Ontology"
  parent: business_domain_ontology
  description: "Typed semantic model of projects, planning, execution, governance, monitoring and closure."

ENTITY_TYPES:
  Project: {id: string, name: string, objective: string, status: ProjectStatus, start_date: date?, end_date: date?}
  Programme: {id: string, name: string}
  Portfolio: {id: string, name: string}
  Stakeholder: {id: string, name: string, role: string?}
  ProjectManager: {id: string, stakeholder_id: string}
  Team: {id: string, name: string}
  Task: {id: string, name: string, status: TaskStatus, effort_hours: number?}
  Milestone: {id: string, name: string, due_date: date?, achieved_date: date?}
  Deliverable: {id: string, name: string, acceptance_status: string?}
  Requirement: {id: string, statement: string, priority: string?}
  Dependency: {id: string, predecessor_id: string, successor_id: string, kind: string}
  Resource: {id: string, resource_type: string, capacity: number?}
  Budget: {id: string, currency: string, approved_amount: number}
  Cost: {id: string, amount: number, currency: string, incurred_date: date?}
  Risk: {id: string, description: string, likelihood: number?, impact: number?, status: string}
  Issue: {id: string, description: string, severity: string?, status: string}
  ChangeRequest: {id: string, description: string, decision: string?}
  Schedule: {id: string, baseline_date: date?, revision: integer}
  QualityCriterion: {id: string, measure: string, threshold: string?}
  Communication: {id: string, channel: string, timestamp: datetime?}
  Decision: {id: string, description: string, outcome: string?, decided_at: datetime?}
  Phase: {id: string, name: string, order: integer}
  WorkPackage: {id: string, name: string}
  ProjectStatus: enum[proposed, planned, active, on_hold, completed, cancelled]
  TaskStatus: enum[not_started, in_progress, blocked, completed, cancelled]

RELATIONSHIP_TYPES:
  contains_project: Portfolio -> Project
  groups_project: Programme -> Project
  managed_by: Project -> ProjectManager
  has_stakeholder: Project -> Stakeholder
  has_team: Project -> Team
  has_phase: Project -> Phase
  has_task: Project -> Task
  has_work_package: Project -> WorkPackage
  contains_task: WorkPackage -> Task
  has_milestone: Project -> Milestone
  produces: Task -> Deliverable
  satisfies: Deliverable -> Requirement
  depends_on: Task -> Task
  assigned_to: Task -> Stakeholder
  uses_resource: Task -> Resource
  governed_by_budget: Project -> Budget
  incurs_cost: Project -> Cost
  exposed_to: Project -> Risk
  affected_by: Project -> Issue
  requests_change: Stakeholder -> ChangeRequest
  changes: ChangeRequest -> Requirement
  has_schedule: Project -> Schedule
  evaluated_against: Deliverable -> QualityCriterion
  records_decision: Project -> Decision
  communicates_with: Communication -> Stakeholder

INVARIANTS:
  - "Entity identifiers are unique within each entity type."
  - "Dependency graphs must not contain a cycle for finish-to-start scheduling."
  - "A completed task must meet its recorded completion criteria."
  - "A completed project must have a recorded closure decision."
  - "Cost and budget comparisons require the same currency and reporting basis."
  - "A change request does not modify an approved baseline without authorisation."

INFERENCE_RULES:
  R1_BLOCKED_TASK:
    IF task_a depends_on task_b AND task_b.status != completed
    THEN task_a may_be_blocked_by task_b
    CONFIDENCE: conditional
  R2_MILESTONE_AT_RISK:
    IF required_task.status != completed AND required_task.forecast_finish > milestone.due_date
    THEN milestone.status_candidate = at_risk
    CONFIDENCE: conditional
  R3_BUDGET_VARIANCE:
    IF comparable_actual_cost > approved_budget
    THEN project.budget_variance = comparable_actual_cost - approved_budget
    CONFIDENCE: deterministic_given_valid_inputs
  R4_RESOURCE_CONFLICT:
    IF sum(overlapping_allocations) > resource.capacity
    THEN resource.overallocated = true
    CONFIDENCE: deterministic_given_valid_inputs
  R5_CHANGE_IMPACT:
    IF approved_change alters requirement
    THEN flag_related_tasks_deliverables_schedule_and_budget_for_review
    CONFIDENCE: rule_based
  R6_RISK_ESCALATION:
    IF assessed_risk exceeds approved_tolerance
    THEN recommend_escalation_to_authorised_owner
    CONFIDENCE: conditional

SEMANTIC_EQUIVALENCE:
  project_plan: [delivery_plan, execution_plan]
  work_breakdown_structure: [WBS, hierarchical_work_decomposition]
  milestone: [project_checkpoint]
  change_request: [scope_change_request, formal_change_proposal]
  issue: [current_problem, active_impediment]
  NOTE: "Aliases are contextual; related terms are not necessarily strictly identical."

CONFIDENCE:
  levels: [verified, high, medium, low, unknown]
  policy: "Confidence is evidence-dependent, not an invented numeric probability."
  evidence_fields: [source_id, observation_time, method, uncertainty, reviewer]

PROVENANCE:
  required: [source_uri, source_type, observed_at, revision, attribution]
  distinction: "Separate observed facts, reported claims, plans and inferred outcomes."

FLOW_HASH:
  algorithm: SHA-256
  input: canonical_serialisation_of_versioned_flow
  generation: "Compute after finalising the flow; no hash value is asserted in this draft."

UPDATE_MODEL:
  strategy: versioned_incremental_updates
  triggers: [new_requirement, status_change, risk_change, schedule_revision, budget_revision, approved_change, project_closure]
  preserve: [previous_versions, provenance, change_history]
  conflict_resolution: "Prefer authorised, timestamped evidence; retain unresolved conflicts."

AI_CONSUMPTION:
  machine_readable: true
  typed_graph: true
  allowed_operations: [entity_resolution, dependency_traversal, impact_analysis, status_summary, risk_flagging, evidence_retrieval]
  constraints: [do_not_fabricate_progress, distinguish_forecasts_from_actuals, preserve_units_and_dates, require_human_approval_for_decisions]
  output: [entities, relations, rule_results, evidence, confidence, version]

END FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ