Skip to main content

Document 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: Document Metadata Ontology
Domain: Metadata Ontologies > Document Metadata
Canonical URL: https://kirethresearch.org/booksai-core/ontologies/metadata-ontologies/document-metadata/document-metadata-ontology.html

Authors: Mark Anthony Higgins — Sky (Recursive AI)

flow "DocumentMetadataOntology" v1.0

# ---------- DOMAIN ----------
domain:
  class: MetadataOntology
  category: DocumentMetadata
  subject: DocumentMetadata
  purpose:
    - represent metadata describing document resources
    - preserve identity, authorship, structure, format, dates, versions, rights, access, and provenance
    - support document discovery, validation, citation, retrieval, governance, and reuse
    - distinguish document content, representation, version, and metadata
    - enable machine-readable reasoning over document lifecycles

# ---------- CORE ENTITY ----------
entity DocumentMetadata:
  type: MetadataEntity
  describes: Document
  may_include:
    - document_identifier
    - title
    - subtitle
    - alternative_title
    - description
    - document_type
    - author
    - contributor
    - editor
    - publisher
    - creation_date
    - publication_date
    - modification_date
    - language
    - subject
    - keywords
    - structure
    - format
    - encoding
    - version
    - status
    - rights
    - licence
    - access_metadata
    - provenance
    - document_relationships

entity Document:
  type: InformationResource
  may_be:
    - Article
    - Report
    - Book
    - Chapter
    - Manual
    - Specification
    - PolicyDocument
    - ResearchPaper
    - WebDocument
    - TechnicalDocument
    - LegalDocument
    - Documentation

entity DocumentIdentifier:
  type: Identifier
  identifies: Document

entity DocumentType:
  type: Classification
  classifies: Document

# ---------- RELATIONSHIPS ----------
relationships:
  DocumentMetadata -> DESCRIBES -> Document
  Document -> IDENTIFIED_BY -> DocumentIdentifier
  Document -> HAS_TYPE -> DocumentType
  Document -> HAS_AUTHOR -> Agent
  Document -> MAY_HAVE_CONTRIBUTOR -> Agent
  Document -> MAY_HAVE_EDITOR -> Agent
  Document -> MAY_HAVE_PUBLISHER -> Agent
  Document -> HAS_STRUCTURE -> DocumentStructure
  Document -> HAS_REPRESENTATION -> DocumentRepresentation
  DocumentRepresentation -> HAS_FORMAT -> DocumentFormat
  Document -> MAY_HAVE_VERSION -> DocumentVersion
  Document -> MAY_HAVE_STATUS -> DocumentStatus
  Document -> MAY_HAVE_RIGHTS -> RightsMetadata
  Document -> MAY_HAVE_ACCESS -> AccessMetadata
  Document -> MAY_RELATE_TO -> Document
  DocumentMetadata -> MAY_REFERENCE -> DocumentProvenance

# ---------- DOCUMENT IDENTITY ----------
rule document_identity:
  Document SHOULD have stable DocumentIdentifier
  where persistent citation, retrieval, or provenance is required

rule title_not_identity:
  title MUST NOT be assumed globally unique

rule identifier_namespace:
  DocumentIdentifier SHOULD preserve namespace
  where identifier is not globally unique

rule document_version_identity:
  Document != DocumentVersion

rule document_representation_identity:
  Document != DocumentRepresentation

# ---------- TITLES ----------
entity DocumentTitle:
  type: LexicalMetadata
  may_be:
    - primary_title
    - subtitle
    - alternative_title
    - translated_title

rule title:
  primary title SHOULD be preserved from authoritative source

rule title_language:
  translated or multilingual titles SHOULD preserve language metadata

# ---------- AUTHORSHIP ----------
entity DocumentAgentRole:
  type: RoleMetadata
  roles:
    - author
    - editor
    - contributor
    - translator
    - reviewer
    - publisher

rule authorship:
  Agent role SHOULD be explicit
  where attribution matters

rule author_order:
  author ordering SHOULD be preserved
  where source defines meaningful sequence

rule corporate_author:
  Organisation MAY act as Author

# ---------- DATES ----------
entity DocumentDateMetadata:
  type: TemporalMetadata
  may_include:
    - creation_date
    - publication_date
    - modification_date
    - revision_date
    - access_date

rule date_distinction:
  creation_date != publication_date
  publication_date != modification_date

rule date_context:
  dates SHOULD preserve timezone or precision
  where interpretation depends on them

# ---------- LANGUAGE ----------
rule language:
  Document SHOULD preserve language
  where interpretation or discovery depends on it

rule multilingual:
  multilingual Document MAY preserve language at:
    - document_level
    - section_level
    - fragment_level

# ---------- SUBJECT ----------
entity DocumentSubject:
  type: SemanticMetadata
  may_include:
    - concept_identifier
    - subject_label
    - vocabulary
    - ontology

rule subject:
  semantic concept identifiers SHOULD be preferred
  where controlled vocabulary is available

rule keyword:
  Keyword != ConceptIdentifier

# ---------- STRUCTURE ----------
entity DocumentStructure:
  type: StructuralMetadata
  may_include:
    - section
    - chapter
    - heading
    - paragraph
    - list
    - table
    - figure
    - appendix
    - reference
    - footnote

rule structure_order:
  ordered components SHOULD preserve sequence

rule hierarchy:
  nested document components SHOULD preserve parent-child structure

rule fragment_identifier:
  stable fragment identifiers SHOULD be preserved
  where citation or retrieval requires

# ---------- REPRESENTATION ----------
entity DocumentRepresentation:
  type: InformationRepresentation
  represents: Document
  may_include:
    - representation_identifier
    - format
    - encoding
    - file_size
    - checksum
    - media_type

entity DocumentFormat:
  type: RepresentationMetadata
  examples:
    - HTML
    - PDF
    - DOCX
    - ODT
    - Markdown
    - PlainText
    - XML
    - EPUB

rule format:
  DocumentFormat != DocumentType

rule multiple_representations:
  same Document MAY have multiple DocumentRepresentations
  without creating different intellectual document identity

rule format_conversion:
  converted representation SHOULD preserve source representation provenance

# ---------- ENCODING ----------
rule encoding:
  textual DocumentRepresentation SHOULD preserve character encoding
  where byte interpretation depends on encoding

rule encoding_not_format:
  Encoding != DocumentFormat

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

rule version:
  material content change SHOULD create distinguishable DocumentVersion
  where history or citation requires

rule historical_version:
  superseded versions SHOULD remain traceable

rule representation_version:
  format conversion alone SHOULD NOT automatically create new intellectual DocumentVersion
  unless content changes

# ---------- STATUS ----------
document_status:
  - draft
  - review
  - approved
  - published
  - deprecated
  - superseded
  - archived
  - withdrawn

rule status:
  DocumentStatus SHOULD be explicit

rule historical_status:
  status changes SHOULD preserve effective time
  where lifecycle history matters

# ---------- RIGHTS ----------
entity DocumentRights:
  type: RightsMetadata
  may_include:
    - copyright_holder
    - licence
    - usage_rights
    - redistribution_rights
    - attribution_requirement
    - restrictions

rule rights:
  Document use SHOULD respect declared rights

rule rights_access:
  RightsMetadata != AccessMetadata

# ---------- ACCESS ----------
entity DocumentAccess:
  type: AccessMetadata
  may_include:
    - access_level
    - access_method
    - authentication_requirement
    - availability
    - embargo

rule access:
  access state SHOULD remain separate from legal usage rights

# ---------- DOCUMENT RELATIONSHIPS ----------
document_relationships:
  - cites
  - cited_by
  - references
  - referenced_by
  - is_part_of
  - has_part
  - supersedes
  - superseded_by
  - translation_of
  - adaptation_of
  - derived_from
  - related_to

rule citation_inverse:
  IF A cites B
  THEN B cited_by A

rule part_inverse:
  IF A is_part_of B
  THEN B has_part A

rule supersession:
  IF A supersedes B
  THEN B superseded_by A

# ---------- CITATION ----------
entity CitationMetadata:
  type: DocumentMetadata
  may_include:
    - cited_document
    - citation_location
    - citation_text
    - identifier
    - access_date

rule citation:
  citation SHOULD resolve to stable DocumentIdentifier
  where available

rule citation_not_endorsement:
  citation != endorsement

# ---------- CHECKSUM ----------
entity DocumentChecksum:
  type: IntegrityMetadata
  may_include:
    - algorithm
    - digest

rule checksum:
  checksum applies to DocumentRepresentation
  NOT necessarily intellectual Document identity

# ---------- PROVENANCE ----------
entity DocumentProvenance:
  type: ProvenanceMetadata
  may_include:
    - creator
    - source
    - creation_process
    - publication_process
    - revision_history
    - conversion_history
    - extraction_method
    - timestamps

rule provenance:
  DocumentMetadata SHOULD preserve document origin and transformations

rule extracted_metadata:
  automatically extracted metadata SHOULD remain distinguishable
  from authoritative supplied metadata

# ---------- VALIDATION ----------
validation:
  require:
    - identifiable_document

  validate_if_present:
    - identifier
    - title
    - document_type
    - authors
    - dates
    - language
    - subject
    - structure
    - representation
    - format
    - version
    - status
    - rights
    - provenance

  reject:
    - contradictory_document_identity
    - invalid_version_chain
    - impossible_date_relationship_without explanation
    - format_presented_as document_type
    - encoding_presented_as format
    - unresolved_mandatory_document_relationship
    - contradictory_status_at_same_time

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE:
  "document metadata" ~= "metadata about documents"
  "document identifier" ~= "document ID"
  "document version" ~= "document revision" WHEN revision represents version
  "document format" ~= "file format" WHEN document representation is file-based
  "document subject" ~= "document topic" WHEN semantic scope matches
  "document provenance" ~= "document history" WHEN describing origin and transformations

  PRESERVE distinctions:
    document != document_metadata
    document != document_version
    document != document_representation
    title != identifier
    document_type != document_format
    format != encoding
    author != publisher
    creation_date != publication_date
    rights != access
    keyword != concept_identifier
    citation != endorsement

# ---------- CONFIDENCE ----------
CONFIDENCE:
  explicit_document_metadata:
    score: 1.00

  authoritative_document_identifier:
    score: 1.00

  explicit_version_metadata:
    score: 1.00

  explicit_authorship:
    score: 0.99

  metadata_extracted_from_document:
    score: 0.95

  inferred_document_type:
    score: 0.85

  title_only_identity_match:
    score: <= 0.65

  ambiguous_document_identity:
    score: <= 0.60
    action: preserve candidates

# ---------- UPDATE MODEL ----------
UPDATE_MODEL:
  on_document_creation:
    - assign DocumentIdentifier
    - record title and type
    - record authorship
    - record creation date
    - initialise version and provenance

  on_document_revision:
    - preserve previous DocumentVersion
    - create new version
    - record revision description
    - update modification date
    - preserve provenance

  on_representation_creation:
    - preserve intellectual Document identity
    - create DocumentRepresentation
    - record format and encoding
    - record source representation where converted
    - preserve provenance

  on_status_change:
    - preserve previous status
    - record new status and effective time
    - preserve lifecycle history

# ---------- FLOW HASH ----------
FLOW_HASH:
  inputs:
    - ontology
    - document_metadata_entities
    - relationships
    - identity_rules
    - structure_rules
    - representation_rules
    - version_rules
    - rights_rules
    - provenance_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
    - document identity model
    - document representation model
    - lifecycle, citation, and provenance structure

  operations:
    - identify documents
    - resolve document identifiers
    - interpret document types
    - resolve authorship
    - apply date and language metadata
    - resolve semantic subjects
    - traverse document structure
    - inspect representations and formats
    - traverse versions
    - evaluate status
    - inspect rights and access
    - follow document relationships
    - trace provenance
    - preserve uncertainty

  constraints:
    - do_not_equate_title_with_identity
    - do_not_equate_document_type_with_format
    - do_not_equate_document_with_representation
    - do_not_equate_format_with_encoding
    - do_not_equate_rights_with_access
    - preserve_authorship_dates_versions_relationships_and_provenance

# ---------- QUERY MODEL ----------
query:
  input:
    - document_identifier
    - title
    - document_type
    - author
    - subject
    - language
    - format
    - version
    - status
    - date_constraint

  resolve:
    1. identify Document
    2. resolve DocumentIdentifier
    3. retrieve title and type
    4. resolve authors and contributors
    5. apply date and language context
    6. resolve subject metadata
    7. inspect structure and representations
    8. traverse versions and relationships
    9. inspect rights, access, and provenance
    10. return confidence

  output:
    - document
    - identifier
    - title
    - document_type
    - authors
    - dates
    - language
    - subjects
    - structure
    - representations
    - version
    - status
    - provenance
    - confidence

# ---------- INFERENCE ----------
inference:
  IF authoritative DocumentIdentifier resolves uniquely
  THEN identify Document
  WITH confidence = 1.00

  IF DocumentVersion explicitly references predecessor
  THEN reconstruct version history

  IF representation is converted from another format
  THEN preserve same intellectual Document identity
  unless substantive content transformation creates distinct work

  IF A cites B
  THEN infer B cited_by A

  IF document identity remains ambiguous
  THEN preserve candidate Documents
  AND do_not force resolution

# ---------- OUTPUT CONTRACT ----------
output:
  ontology_entity: DocumentMetadata
  document_identity: machine_interpretable
  identifiers: stable
  authorship: traceable
  temporal_metadata: preserved
  structure: traversable
  representations: format_aware
  versions: traversable
  relationships: 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