Skip to main content

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

Authors: Mark Anthony Higgins — Sky (Recursive AI)

flow "ArticleMetadataOntology" v1.0

# ---------- DOMAIN ----------
domain:
  class: MetadataOntology
  category: DocumentMetadata
  subject: ArticleMetadata
  purpose:
    - represent metadata describing articles and article resources
    - preserve article identity, title, authorship, publication, structure, citations, versions, rights, and provenance
    - support article discovery, citation, validation, retrieval, indexing, and reuse
    - distinguish intellectual article identity from publication and digital representations
    - enable machine-readable reasoning over article lifecycles

# ---------- CORE ENTITY ----------
entity ArticleMetadata:
  type: DocumentMetadata
  describes: Article
  may_include:
    - article_identifier
    - title
    - subtitle
    - author
    - contributor
    - abstract
    - article_type
    - publication
    - publisher
    - publication_date
    - volume
    - issue
    - page_range
    - article_number
    - doi
    - language
    - subject
    - keywords
    - sections
    - references
    - citations
    - version
    - status
    - format
    - rights
    - licence
    - provenance

entity Article:
  type: Document
  may_be:
    - JournalArticle
    - ResearchArticle
    - ReviewArticle
    - NewsArticle
    - MagazineArticle
    - ConferenceArticle
    - WebArticle
    - TechnicalArticle
    - Editorial
    - Commentary

entity ArticleIdentifier:
  type: Identifier
  identifies: Article

entity DOI:
  subtype_of: ArticleIdentifier
  identifies: ScholarlyOrDigitalResource

# ---------- RELATIONSHIPS ----------
relationships:
  ArticleMetadata -> DESCRIBES -> Article
  Article -> IDENTIFIED_BY -> ArticleIdentifier
  Article -> MAY_HAVE_DOI -> DOI
  Article -> HAS_AUTHOR -> Agent
  Article -> MAY_HAVE_CONTRIBUTOR -> Agent
  Article -> HAS_TYPE -> ArticleType
  Article -> MAY_BE_PUBLISHED_IN -> PublicationContainer
  Article -> MAY_HAVE_PUBLISHER -> Publisher
  Article -> HAS_STRUCTURE -> ArticleStructure
  Article -> MAY_CITE -> Document
  Article -> MAY_HAVE_VERSION -> ArticleVersion
  Article -> MAY_HAVE_REPRESENTATION -> ArticleRepresentation
  ArticleMetadata -> MAY_REFERENCE -> ArticleProvenance

# ---------- ARTICLE IDENTITY ----------
rule article_identity:
  Article SHOULD have stable ArticleIdentifier
  where persistent citation or retrieval is required

rule title_not_identity:
  article title MUST NOT be assumed globally unique

rule doi_identity:
  DOI SHOULD be interpreted according_to DOI registration semantics

rule article_version_identity:
  Article != ArticleVersion

# ---------- TITLE ----------
entity ArticleTitle:
  type: DocumentTitle
  may_be:
    - primary_title
    - subtitle
    - translated_title
    - alternative_title

rule title:
  authoritative title SHOULD be preserved

rule title_language:
  translated titles SHOULD preserve language metadata

# ---------- AUTHORSHIP ----------
entity ArticleAgentRole:
  type: RoleMetadata
  roles:
    - author
    - corresponding_author
    - editor
    - contributor
    - reviewer
    - translator

rule authorship:
  Agent role SHOULD be explicit
  where attribution matters

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

rule corresponding_author:
  corresponding author role SHOULD remain distinct
  from general authorship

# ---------- ABSTRACT ----------
entity ArticleAbstract:
  type: DocumentFragment
  may_include:
    - abstract_text
    - language
    - structured_sections

rule abstract:
  ArticleAbstract != full Article

rule abstract_provenance:
  externally generated abstract or summary SHOULD remain distinguishable
  from publisher-authoritative abstract

# ---------- ARTICLE TYPE ----------
entity ArticleType:
  type: Classification

rule type:
  ArticleType SHOULD preserve classification scheme
  where article categories differ across publishers or domains

# ---------- PUBLICATION CONTAINER ----------
entity PublicationContainer:
  type: DocumentCollection
  may_be:
    - Journal
    - Magazine
    - Newspaper
    - ConferenceProceedings
    - Website

entity Journal:
  subtype_of: PublicationContainer
  may_include:
    - journal_identifier
    - journal_title
    - issn
    - publisher

rule container:
  Article SHOULD preserve publication container
  where citation or discovery depends on it

# ---------- VOLUME / ISSUE ----------
entity VolumeMetadata:
  type: PublicationMetadata
  may_include:
    - volume_number
    - volume_title

entity IssueMetadata:
  type: PublicationMetadata
  may_include:
    - issue_number
    - issue_title
    - publication_date

rule volume_issue:
  volume and issue SHOULD preserve publication-container context

# ---------- PAGINATION ----------
entity ArticlePagination:
  type: StructuralMetadata
  may_include:
    - start_page
    - end_page
    - page_range
    - article_number
    - electronic_location

rule page_range:
  IF start_page AND end_page are ordinal-compatible
  THEN start_page SHOULD NOT follow end_page

rule article_number:
  ArticleNumber MAY replace conventional page range
  in electronic publication systems

# ---------- PUBLICATION DATE ----------
rule publication_date:
  publication date SHOULD preserve precision
  where only year, month, or full date is known

rule online_print_dates:
  online_publication_date MAY differ from print_publication_date

# ---------- STRUCTURE ----------
entity ArticleStructure:
  type: DocumentStructure
  may_include:
    - title
    - abstract
    - introduction
    - methods
    - results
    - discussion
    - conclusion
    - acknowledgements
    - references
    - supplementary_material

rule structure:
  section order SHOULD be preserved

rule section_identifier:
  stable section identifiers SHOULD be preserved
  where fragment citation is required

# ---------- SUBJECT / KEYWORDS ----------
entity ArticleSubject:
  type: SemanticMetadata
  may_include:
    - concept_identifier
    - subject_label
    - vocabulary
    - classification

rule subject:
  controlled subject identifiers SHOULD be preferred
  where available

rule keyword:
  Keyword != ConceptIdentifier

# ---------- REFERENCES ----------
entity ArticleReference:
  type: CitationMetadata
  may_include:
    - cited_resource
    - citation_text
    - identifier
    - reference_number

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

rule citation_inverse:
  IF Article A cites Resource B
  THEN B cited_by A

rule citation_not_support:
  citation != endorsement
  citation != agreement

# ---------- VERSION ----------
entity ArticleVersion:
  type: VersionMetadata
  may_include:
    - version_identifier
    - version_type
    - predecessor
    - successor
    - creation_time
    - change_description

article_version_types:
  - submitted_manuscript
  - accepted_manuscript
  - preprint
  - version_of_record
  - corrected_version
  - retracted_version

rule version:
  ArticleVersion SHOULD preserve version type
  where publication state matters

rule preprint:
  Preprint != VersionOfRecord
  unless publication metadata explicitly establishes equivalence

# ---------- STATUS ----------
article_status:
  - draft
  - submitted
  - accepted
  - published
  - corrected
  - retracted
  - withdrawn
  - superseded

rule status:
  Article status SHOULD remain explicit

rule retraction:
  retracted Article SHOULD remain identifiable
  with retraction metadata where available

# ---------- REPRESENTATION ----------
entity ArticleRepresentation:
  type: DocumentRepresentation
  may_be:
    - HTML
    - PDF
    - XML
    - PlainText
    - EPUB

rule representation:
  ArticleRepresentation != Article

rule multiple_representations:
  same ArticleVersion MAY have multiple representations

# ---------- RIGHTS ----------
entity ArticleRights:
  type: RightsMetadata
  may_include:
    - copyright_holder
    - licence
    - open_access_status
    - usage_rights
    - attribution_requirement

rule rights:
  rights SHOULD preserve applicable ArticleVersion or representation scope

# ---------- PROVENANCE ----------
entity ArticleProvenance:
  type: ProvenanceMetadata
  may_include:
    - authors
    - publisher
    - publication_container
    - submission_history
    - review_history
    - revision_history
    - correction_history
    - retraction_history
    - extraction_method

rule provenance:
  ArticleMetadata SHOULD preserve publication and revision history

# ---------- VALIDATION ----------
validation:
  require:
    - identifiable_article

  validate_if_present:
    - article_identifier
    - doi
    - title
    - authors
    - article_type
    - publication_container
    - publication_date
    - volume
    - issue
    - pagination
    - structure
    - references
    - version
    - status
    - rights
    - provenance

  reject:
    - contradictory_article_identity
    - invalid_doi_syntax where DOI validation is required
    - impossible_page_range
    - contradictory_version_relationship
    - preprint_presented_as version_of_record_without evidence
    - retracted_status_hidden_when known
    - representation_presented_as intellectual_article

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE:
  "article metadata" ~= "metadata about an article"
  "article identifier" ~= "article ID"
  "journal article" ~= "scholarly journal article" WHEN publication context matches
  "article version" ~= "manuscript version" WHEN version applies to article lifecycle
  "article references" ~= "bibliographic references"
  "publication container" ~= "host publication"

  PRESERVE distinctions:
    article != article_metadata
    article != article_version
    article != representation
    title != identifier
    DOI != title
    abstract != full_article
    preprint != version_of_record
    citation != endorsement
    publication_date != modification_date
    article_number != page_range
    retracted != deleted

# ---------- CONFIDENCE ----------
CONFIDENCE:
  explicit_article_metadata:
    score: 1.00

  authoritative_article_identifier:
    score: 1.00

  DOI_resolved_identity:
    score: 0.99

  explicit_authorship:
    score: 0.99

  explicit_publication_metadata:
    score: 0.99

  metadata_extracted_from_article:
    score: 0.95

  title_author_match:
    score: <= 0.85

  title_only_match:
    score: <= 0.65

  ambiguous_article_identity:
    score: <= 0.60
    action: preserve candidates

# ---------- UPDATE MODEL ----------
UPDATE_MODEL:
  on_article_creation:
    - assign ArticleIdentifier where available
    - record title and authors
    - classify ArticleType
    - initialise provenance

  on_publication:
    - record PublicationContainer
    - record publisher and publication date
    - attach DOI or publication identifier
    - establish ArticleVersion
    - update status and provenance

  on_revision:
    - preserve previous ArticleVersion
    - create new version
    - record changes
    - update status
    - preserve provenance

  on_retraction:
    - preserve Article and versions
    - set status = retracted
    - attach retraction notice where available
    - preserve historical citation and provenance

# ---------- FLOW HASH ----------
FLOW_HASH:
  inputs:
    - ontology
    - article_entities
    - relationships
    - identity_rules
    - publication_rules
    - structure_rules
    - citation_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
    - article identity and publication model
    - citation and versioning structure
    - scholarly and web article retrieval model

  operations:
    - identify articles
    - resolve identifiers and DOIs
    - resolve authorship
    - classify article types
    - resolve publication containers
    - inspect volume, issue, and pagination
    - traverse article structure
    - resolve references and citations
    - distinguish article versions
    - inspect status including retraction
    - resolve representations
    - trace provenance
    - preserve uncertainty

  constraints:
    - do_not_equate_title_with_identity
    - do_not_equate_article_with_representation
    - do_not_equate_preprint_with version_of_record
    - do_not_treat_citation_as endorsement
    - do_not_hide_known_retraction_status
    - preserve_authorship_publication_version_citation_and_provenance

# ---------- QUERY MODEL ----------
query:
  input:
    - article_identifier
    - doi
    - title
    - author
    - article_type
    - publication_container
    - publication_date
    - subject
    - version
    - status

  resolve:
    1. identify Article candidates
    2. resolve ArticleIdentifier and DOI
    3. compare title and authorship
    4. resolve ArticleType
    5. resolve PublicationContainer
    6. inspect publication date, volume, issue, and pagination
    7. inspect structure and references
    8. resolve ArticleVersion and status
    9. inspect representations, rights, and provenance
    10. rank candidates by confidence

  output:
    - article
    - identifiers
    - title
    - authors
    - article_type
    - publication_container
    - publication_date
    - volume
    - issue
    - pagination
    - version
    - status
    - references
    - provenance
    - confidence

# ---------- INFERENCE ----------
inference:
  IF authoritative ArticleIdentifier resolves uniquely
  THEN identify Article
  WITH confidence = 1.00

  IF DOI resolves to ArticleVersion
  THEN associate DOI with publication entity
  WITH confidence = 0.99

  IF A cites B
  THEN infer B cited_by A

  IF ArticleVersion has status = retracted
  THEN preserve Article identity
  AND expose retraction state

  IF article identity remains ambiguous
  THEN preserve candidate Articles
  AND do_not force resolution

# ---------- OUTPUT CONTRACT ----------
output:
  ontology_entity: ArticleMetadata
  article_identity: machine_interpretable
  identifiers: traceable
  authorship: preserved
  publication_context: explicit
  structure: traversable
  citations: resolvable
  versions: distinguishable
  status: explicit
  representations: format_aware
  rights: preserved
  provenance: preserved
  uncertainty: explicit
  semantic_retrieval: enabled

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