Skip to main content

Report Metadata Ontology

Document Metadata
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 08 October 2026
Audio Overview
FLOW ALGEBRA

Ontology: Report Metadata Ontology
Domain: Metadata Ontologies > Document Metadata
Canonical URL: https://kirethresearch.org/booksai-core/ontologies/metadata-ontologies/document-metadata/report-metadata-ontology.html

Authors: Mark Anthony Higgins — Sky (Recursive AI)

flow "ReportMetadataOntology" v1.0

# ---------- DOMAIN ----------
domain:
  class: MetadataOntology
  category: DocumentMetadata
  subject: ReportMetadata
  purpose:
    - represent metadata describing reports and report resources
    - preserve report identity, authorship, organisation, purpose, scope, findings, recommendations, versions, and provenance
    - support report discovery, validation, citation, retrieval, governance, and reuse
    - distinguish report content, report versions, supporting evidence, and document representations
    - enable machine-readable reasoning over report lifecycles

# ---------- CORE ENTITY ----------
entity ReportMetadata:
  type: DocumentMetadata
  describes: Report
  may_include:
    - report_identifier
    - title
    - subtitle
    - report_type
    - author
    - contributor
    - organisation
    - commissioning_body
    - publication_date
    - reporting_period
    - purpose
    - scope
    - executive_summary
    - methodology
    - evidence
    - findings
    - conclusions
    - recommendations
    - appendices
    - references
    - language
    - subject
    - keywords
    - version
    - status
    - format
    - rights
    - access_metadata
    - provenance

entity Report:
  type: Document
  may_be:
    - TechnicalReport
    - ResearchReport
    - ScientificReport
    - BusinessReport
    - FinancialReport
    - AuditReport
    - EvaluationReport
    - GovernmentReport
    - PolicyReport
    - IncidentReport
    - ProgressReport
    - AnnualReport

entity ReportIdentifier:
  type: Identifier
  identifies: Report

entity ReportType:
  type: Classification
  classifies: Report

# ---------- RELATIONSHIPS ----------
relationships:
  ReportMetadata -> DESCRIBES -> Report
  Report -> IDENTIFIED_BY -> ReportIdentifier
  Report -> HAS_TYPE -> ReportType
  Report -> HAS_AUTHOR -> Agent
  Report -> MAY_HAVE_CONTRIBUTOR -> Agent
  Report -> MAY_BE_PRODUCED_BY -> Organisation
  Report -> MAY_BE_COMMISSIONED_BY -> Agent
  Report -> HAS_PURPOSE -> ReportPurpose
  Report -> HAS_SCOPE -> ReportScope
  Report -> MAY_USE_METHOD -> ReportMethodology
  Report -> MAY_REFERENCE -> Evidence
  Report -> REPORTS -> Finding
  Report -> MAY_STATE -> Conclusion
  Report -> MAY_MAKE -> Recommendation
  Report -> MAY_HAVE_VERSION -> ReportVersion
  Report -> MAY_HAVE_REPRESENTATION -> ReportRepresentation
  ReportMetadata -> MAY_REFERENCE -> ReportProvenance

# ---------- REPORT IDENTITY ----------
rule report_identity:
  Report SHOULD have stable ReportIdentifier
  where persistent citation, retrieval, or governance is required

rule title_not_identity:
  report title MUST NOT be assumed globally unique

rule organisation_context:
  organisation SHOULD be preserved
  where report identity or authority depends on issuing body

rule report_version_identity:
  Report != ReportVersion

# ---------- REPORT TYPES ----------
report_types:
  - technical
  - research
  - scientific
  - business
  - financial
  - audit
  - evaluation
  - government
  - policy
  - incident
  - progress
  - annual

rule report_type:
  ReportType SHOULD preserve classification scheme
  where categories differ across organisations or domains

# ---------- AUTHORSHIP ----------
entity ReportAgentRole:
  type: RoleMetadata
  roles:
    - author
    - editor
    - contributor
    - reviewer
    - approver
    - commissioning_agent
    - issuing_organisation

rule authorship:
  Agent role SHOULD be explicit
  where accountability or attribution matters

rule organisation_author:
  Organisation MAY act as report author or issuing body

# ---------- DATES / REPORTING PERIOD ----------
entity ReportingPeriod:
  type: TemporalMetadata
  may_include:
    - start_date
    - end_date

rule reporting_period:
  IF start_date AND end_date exist
  THEN REQUIRE start_date <= end_date

rule publication_reporting_distinction:
  publication_date != reporting_period

# ---------- PURPOSE ----------
entity ReportPurpose:
  type: ContextMetadata
  may_include:
    - objective
    - intended_audience
    - decision_context
    - reporting_requirement

rule purpose:
  ReportPurpose SHOULD describe why report was produced
  where interpretation depends on intended use

# ---------- SCOPE ----------
entity ReportScope:
  type: ContextMetadata
  may_include:
    - subject_scope
    - temporal_scope
    - geographic_scope
    - organisational_scope
    - exclusions

rule scope:
  findings and recommendations MUST NOT automatically be generalised
  beyond declared ReportScope

# ---------- EXECUTIVE SUMMARY ----------
entity ExecutiveSummary:
  type: DocumentFragment
  summarises: Report

rule executive_summary:
  ExecutiveSummary != full Report

rule generated_summary:
  machine-generated summary MUST remain distinguishable
  from authoritative ExecutiveSummary

# ---------- METHODOLOGY ----------
entity ReportMethodology:
  type: MethodMetadata
  may_include:
    - data_sources
    - collection_method
    - sampling
    - analytical_method
    - assumptions
    - limitations

rule methodology:
  ReportMethodology SHOULD preserve sufficient context
  to interpret findings where available

# ---------- EVIDENCE ----------
entity ReportEvidence:
  type: Evidence
  may_be:
    - Dataset
    - Observation
    - Measurement
    - Document
    - Interview
    - Survey
    - AuditRecord
    - ExternalSource

rule evidence:
  evidence SHOULD preserve source and provenance

rule evidence_not_finding:
  Evidence != Finding

# ---------- FINDINGS ----------
entity Finding:
  type: ReportAssertion
  may_include:
    - finding_identifier
    - statement
    - evidence
    - scope
    - confidence
    - significance

rule finding:
  Finding SHOULD preserve relationship to supporting evidence
  where available

rule finding_not_conclusion:
  Finding != Conclusion

# ---------- CONCLUSIONS ----------
entity ReportConclusion:
  type: DerivedAssertion
  may_include:
    - conclusion_identifier
    - statement
    - supporting_findings
    - scope
    - confidence

rule conclusion:
  Conclusion SHOULD preserve links to supporting Findings

rule conclusion_not_recommendation:
  Conclusion != Recommendation

# ---------- RECOMMENDATIONS ----------
entity Recommendation:
  type: ProposedAction
  may_include:
    - recommendation_identifier
    - action
    - rationale
    - priority
    - responsible_party
    - target_date
    - status

rule recommendation:
  Recommendation SHOULD remain distinguishable
  from Finding and Conclusion

rule recommendation_not_action:
  proposed Recommendation != completed Action

# ---------- LIMITATIONS ----------
entity ReportLimitation:
  type: QualityMetadata
  may_include:
    - limitation_type
    - affected_scope
    - explanation
    - severity

rule limitation:
  known limitations SHOULD be explicit
  where they affect interpretation

# ---------- STRUCTURE ----------
entity ReportStructure:
  type: DocumentStructure
  may_include:
    - title_page
    - executive_summary
    - contents
    - introduction
    - methodology
    - findings
    - discussion
    - conclusions
    - recommendations
    - references
    - appendices

rule structure:
  ordered report sections SHOULD preserve sequence

# ---------- REFERENCES ----------
entity ReportReference:
  type: CitationMetadata
  may_include:
    - cited_resource
    - identifier
    - citation_location
    - reference_number

rule reference:
  cited resource SHOULD resolve to stable identifier
  where available

rule citation_not_endorsement:
  citation != endorsement

# ---------- VERSION ----------
entity ReportVersion:
  type: VersionMetadata
  may_include:
    - version_identifier
    - predecessor
    - successor
    - creation_time
    - revision_description
    - status

rule version:
  material report revision SHOULD create distinguishable ReportVersion
  where auditability or citation requires

rule draft_final:
  DraftVersion != FinalVersion

rule historical_version:
  superseded ReportVersion SHOULD remain traceable

# ---------- STATUS ----------
report_status:
  - draft
  - review
  - approved
  - final
  - published
  - superseded
  - withdrawn
  - archived

rule status:
  Report status SHOULD remain explicit

# ---------- REPRESENTATION ----------
entity ReportRepresentation:
  type: DocumentRepresentation
  may_be:
    - PDF
    - HTML
    - DOCX
    - ODT
    - Markdown
    - PlainText

rule representation:
  ReportRepresentation != Report

rule multiple_representations:
  same ReportVersion MAY have multiple representations

# ---------- RIGHTS / ACCESS ----------
entity ReportRights:
  type: RightsMetadata
  may_include:
    - copyright_holder
    - licence
    - usage_rights
    - attribution_requirement
    - restrictions

entity ReportAccess:
  type: AccessMetadata
  may_include:
    - access_level
    - access_method
    - embargo
    - authentication_requirement

rule rights_access:
  ReportRights != ReportAccess

# ---------- PROVENANCE ----------
entity ReportProvenance:
  type: ProvenanceMetadata
  may_include:
    - authors
    - organisation
    - commissioning_body
    - data_sources
    - creation_process
    - review_history
    - approval_history
    - revision_history
    - publication_history
    - extraction_method

rule provenance:
  ReportMetadata SHOULD preserve report lifecycle and source history

# ---------- VALIDATION ----------
validation:
  require:
    - identifiable_report

  validate_if_present:
    - report_identifier
    - title
    - report_type
    - authors
    - organisation
    - reporting_period
    - purpose
    - scope
    - methodology
    - evidence
    - findings
    - conclusions
    - recommendations
    - version
    - status
    - rights
    - provenance

  reject:
    - contradictory_report_identity
    - invalid_reporting_period
    - finding_presented_as evidence_without context
    - recommendation_presented_as completed_action
    - draft_presented_as final_without status evidence
    - representation_presented_as intellectual_report
    - contradictory_version_relationship

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE:
  "report metadata" ~= "metadata about a report"
  "report identifier" ~= "report ID"
  "report findings" ~= "reported findings"
  "executive summary" ~= "report summary" WHEN authoritative summary is intended
  "report recommendation" ~= "recommended action"
  "report version" ~= "report revision" WHEN revision represents version

  PRESERVE distinctions:
    report != report_metadata
    report != report_version
    report != representation
    evidence != finding
    finding != conclusion
    conclusion != recommendation
    recommendation != completed_action
    executive_summary != full_report
    publication_date != reporting_period
    rights != access
    draft != final

# ---------- CONFIDENCE ----------
CONFIDENCE:
  explicit_report_metadata:
    score: 1.00

  authoritative_report_identifier:
    score: 1.00

  explicit_authorship_and_organisation:
    score: 0.99

  explicit_version_and_status:
    score: 0.99

  evidence_linked_finding:
    score: 0.95

  metadata_extracted_from_report:
    score: 0.95

  inferred_report_type:
    score: 0.85

  title_only_identity_match:
    score: <= 0.65

  ambiguous_report_identity:
    score: <= 0.60
    action: preserve candidates

# ---------- UPDATE MODEL ----------
UPDATE_MODEL:
  on_report_creation:
    - assign ReportIdentifier
    - record title and ReportType
    - record authors and organisation
    - record purpose and scope
    - initialise version and provenance

  on_report_revision:
    - preserve previous ReportVersion
    - create new version
    - record revision description
    - update findings or recommendations as applicable
    - preserve provenance

  on_approval:
    - preserve previous status
    - record approving agent
    - set applicable status
    - record approval time
    - update provenance

  on_publication:
    - record publication date
    - create publication representation where applicable
    - preserve final ReportVersion
    - update provenance

# ---------- FLOW HASH ----------
FLOW_HASH:
  inputs:
    - ontology
    - report_entities
    - relationships
    - identity_rules
    - scope_rules
    - evidence_rules
    - finding_rules
    - recommendation_rules
    - version_rules
    - validation
    - semantic_equivalence
    - confidence
    - update_model

  canonicalisation:
    - normalise_whitespace
    - preserve_case_sensitive_identifiers
    - sort_unordered_property_sets
    - preserve_rule_order

  output:
    deterministic_semantic_hash

# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION:
  interpret_as:
    - document metadata ontology
    - report identity and lifecycle model
    - evidence, findings, and recommendation structure
    - report governance and provenance model

  operations:
    - identify reports
    - resolve report identifiers
    - classify report types
    - resolve authors and organisations
    - interpret reporting periods
    - apply purpose and scope
    - inspect methodology and evidence
    - distinguish findings, conclusions, and recommendations
    - traverse report structure
    - resolve versions and status
    - inspect rights and access
    - trace provenance
    - preserve uncertainty

  constraints:
    - do_not_equate_title_with_identity
    - do_not_equate_evidence_with_finding
    - do_not_equate_finding_with_conclusion
    - do_not_equate_conclusion_with_recommendation
    - do_not_present_recommendation_as completed_action
    - do_not_present_draft_as final
    - preserve_scope_evidence_versions_status_and_provenance

# ---------- QUERY MODEL ----------
query:
  input:
    - report_identifier
    - title
    - report_type
    - author
    - organisation
    - reporting_period
    - subject
    - finding
    - recommendation
    - version
    - status

  resolve:
    1. identify Report
    2. resolve ReportIdentifier
    3. retrieve title and type
    4. resolve authors, organisation, and commissioning body
    5. apply reporting period, purpose, and scope
    6. inspect methodology and evidence
    7. retrieve findings, conclusions, and recommendations
    8. traverse structure and references
    9. resolve version, status, rights, and provenance
    10. return confidence

  output:
    - report
    - identifier
    - title
    - report_type
    - authors
    - organisation
    - reporting_period
    - purpose
    - scope
    - findings
    - conclusions
    - recommendations
    - version
    - status
    - provenance
    - confidence

# ---------- INFERENCE ----------
inference:
  IF authoritative ReportIdentifier resolves uniquely
  THEN identify Report
  WITH confidence = 1.00

  IF Finding explicitly references Evidence
  THEN construct evidence-to-finding relationship

  IF Conclusion references Findings
  THEN construct finding-to-conclusion derivation

  IF Recommendation references Conclusion or Finding
  THEN preserve recommendation rationale chain

  IF report identity or version remains ambiguous
  THEN preserve candidate Reports
  AND do_not force resolution

# ---------- OUTPUT CONTRACT ----------
output:
  ontology_entity: ReportMetadata
  report_identity: machine_interpretable
  authorship_and_organisation: traceable
  purpose_and_scope: explicit
  methodology_and_evidence: preserved
  findings: evidence_linked
  conclusions: distinguishable
  recommendations: traceable
  structure: traversable
  versions_and_status: explicit
  rights_and_access: distinguishable
  provenance: preserved
  uncertainty: explicit
  semantic_retrieval: enabled

end flow
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ