Skip to main content

Public Policy Domain Ontology

Legal & Government Domains
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 11 October 2026
Audio Overview
FLOW ALGEBRA
TITLE: Public Policy Domain Ontology
VERSION: 1.0
DOMAIN: Legal and Government Domains / Public Policy
SOURCE_URL: https://kirethresearch.org/booksai-core/ontologies/domain-ontologies/legal-government-domains/public-policy-domain-ontology.html
AUTHORS: Mark Higgins — Sky (Recursive AI)
STATUS: Domain-based draft; source page not independently verified

FLOW "PublicPolicyDomainOntology" v1.0

# 1. PURPOSE
purpose:
  represent: [public_policy, policy_cycle, stakeholders, institutions, interventions, outcomes, evaluation]
  enable: [semantic_retrieval, traceable_reasoning, policy_comparison, evidence_mapping]
  constraint: "Descriptive analysis; no automatic normative ranking or political endorsement"

# 2. TYPED ENTITIES
entity Policy: {id: str, title: str, objective: str, status: str, jurisdiction_id: str, effective_date: date?, expiry_date: date?}
entity PolicyProposal: {id: str, title: str, proposed_by: str, consultation_status: str}
entity PublicInstitution: {id: str, name: str, authority_type: str, jurisdiction_id: str}
entity Jurisdiction: {id: str, name: str, level: enum[local,regional,national,supranational]}
entity Stakeholder: {id: str, category: str, role: str}
entity PopulationGroup: {id: str, description: str, geography_id: str?}
entity PolicyInstrument: {id: str, kind: enum[regulation,tax,subsidy,service,information,other], description: str}
entity Programme: {id: str, name: str, budget: decimal?, currency: str?}
entity PolicyObjective: {id: str, statement: str, target_date: date?}
entity Indicator: {id: str, name: str, unit: str, measurement_method: str}
entity Observation: {id: str, indicator_id: str, value: decimal, observed_at: date, source_id: str}
entity EvidenceSource: {id: str, title: str, publisher: str, published_at: date?, uri: str?}
entity Evaluation: {id: str, policy_id: str, method: str, period: str, limitations: str}
entity Outcome: {id: str, description: str, observed: bool, population_id: str?}
entity ImpactAssessment: {id: str, policy_id: str, dimensions: list[str], assumptions: list[str]}
entity Consultation: {id: str, proposal_id: str, opens: date?, closes: date?}
entity Decision: {id: str, institution_id: str, decision_date: date, rationale: str?}

# 3. RELATIONSHIP TYPES
relationship PROPOSED_BY: PolicyProposal -> PublicInstitution
relationship APPLIES_IN: Policy -> Jurisdiction
relationship ADOPTED_BY: Policy -> PublicInstitution
relationship ADDRESSES: Policy -> PolicyObjective
relationship IMPLEMENTED_THROUGH: Policy -> PolicyInstrument
relationship FUNDS: Programme -> PolicyInstrument
relationship AFFECTS: Policy -> PopulationGroup
relationship CONSULTS: Consultation -> Stakeholder
relationship MEASURES: Indicator -> PolicyObjective
relationship OBSERVES: Observation -> Indicator
relationship SUPPORTED_BY: Evaluation -> EvidenceSource
relationship EVALUATES: Evaluation -> Policy
relationship REPORTS: Evaluation -> Outcome
relationship ASSESSES: ImpactAssessment -> Policy
relationship AUTHORISES: Decision -> Policy
relationship DEPENDS_ON: Policy -> Policy
relationship CONFLICTS_WITH: Policy -> Policy
relationship SUPERSEDES: Policy -> Policy

# 4. POLICY LIFECYCLE
states: [agenda_setting, formulation, consultation, adoption, implementation, monitoring, evaluation, revision, retirement]
transitions:
  - agenda_setting -> formulation
  - formulation -> consultation
  - consultation -> adoption
  - adoption -> implementation
  - implementation -> monitoring
  - monitoring -> evaluation
  - evaluation -> revision
  - revision -> implementation
  - evaluation -> retirement
note: "Transitions are possible paths, not universally mandatory steps."

# 5. INFERENCE RULES
rule jurisdiction_scope:
  when: "Policy APPLIES_IN Jurisdiction"
  infer: "Policy scope is constrained to that jurisdiction, subject to legal exceptions"
rule measurable_objective:
  when: "Policy ADDRESSES Objective AND Indicator MEASURES Objective"
  infer: "Objective has an associated measurement definition"
rule evidence_traceability:
  when: "Evaluation EVALUATES Policy AND Evaluation SUPPORTED_BY EvidenceSource"
  infer: "Policy evaluation has a traceable evidence source"
rule policy_dependency:
  when: "PolicyA DEPENDS_ON PolicyB AND PolicyB is retired"
  infer: "Review PolicyA for dependency impacts"
rule observation_not_causation:
  when: "Outcome temporally follows Policy"
  infer: "Temporal association only; causal attribution requires a justified design"
rule outdated_evidence:
  when: "EvidenceSource has newer relevant version"
  infer: "Flag older evidence for review, not automatic rejection"

# 6. CONFIDENCE
CONFIDENCE:
  range: [0.0, 1.0]
  applies_to: [assertions, entity_resolution, extracted_relationships, inferences]
  factors: [source_reliability, recency, methodological_quality, corroboration, uncertainty]
  requirement: "Confidence is calibrated evidence strength, not policy desirability."

# 7. SEMANTIC EQUIVALENCE
SEMANTIC_EQUIVALENCE:
  exact: ["public policy", "government policy (where context supports equivalence)"]
  related_not_equivalent: ["law", "regulation", "political manifesto", "public programme", "administrative decision"]
  disambiguation: [jurisdiction, effective_period, instrument_type, institutional_context]
  rule: "Do not merge proposals with enacted policies or outputs with outcomes."

# 8. TEMPORAL AND JURISDICTIONAL VALIDITY
validity:
  record: [effective_date, repeal_date, version, jurisdiction, authority]
  temporal_queries: "Resolve claims against their relevant date and policy version."
  conflicts: "Preserve competing sources and explain differing scope or interpretations."

# 9. PROVENANCE
PROVENANCE:
  required: [source_id, source_uri, retrieved_at, extracted_at, claim_id, method]
  optional: [author, publication_date, licence, review_status]
  constraint: "Keep empirical findings distinct from assumptions, forecasts, and opinions."

# 10. FLOW HASH
FLOW_HASH:
  algorithm: SHA-256
  input: "Canonical UTF-8 serialisation of ontology version, entity schemas, relationship schemas and rules"
  purpose: [integrity, change_detection, reproducibility]
  note: "Compute digest during deployment; no fabricated hash value."

# 11. UPDATE MODEL
UPDATE_MODEL:
  triggers: [new_legislation, amended_policy, new_evidence, changed_indicator, revised_evaluation]
  steps: [ingest, validate, deduplicate, version, compare, re-evaluate_inferences, publish]
  retain: [historical_versions, source_attribution, audit_trail]
  prohibit: "Silent overwriting of historical policy states"

# 12. AI CONSUMPTION
AI_CONSUMPTION:
  formats: [plain_text, JSON-LD, RDF, knowledge_graph]
  retrieval_keys: [policy_id, jurisdiction_id, objective_id, indicator_id, effective_date]
  outputs: [typed_entities, typed_relationships, supporting_sources, uncertainty, temporal_scope]
  guardrails: [avoid_unsupported_causality, distinguish_fact_from_value_judgement, avoid_partisan_endorsement, cite_evidence]

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