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
Download Code
Copy to Clipboard