Module domain

Module domain 

Source
Expand description

PMC domain models based on JATS Archiving 1.4 DTD

This module is the single model layer for PMC full-text articles. All parsing produces these types directly; there is no separate intermediate parser model.

The type hierarchy mirrors the JATS <article> content model:

<article>            → PmcArticle
  <front>            → Front
    <journal-meta>   → JournalMeta
    <article-meta>   → ArticleMeta (ids, TitleGroup, contributors,
                        pub info, history, Permissions, Abstract,
                        keywords, funding)
  <body>             → Body (Vec<Section>, recursive)
  <back>             → Back (ack, COI, Vec<Reference>, appendices, glossary)

Design principles:

  • DTD-faithful: every field maps to a JATS element/attribute, structured following the DTD hierarchy and declaration order
  • No extraction concerns: fields like file_path or inferred file_type are excluded
  • Type-safe IDs: uses PmcId / PubMedId instead of raw strings
  • Reuses shared types: Author and HistoryDate from common::models
  • Text mining ready: structured abstracts, table content, formulas, definitions

Documented deviations from strict DTD structure:

  • supplementary_materials and data_availability live on PmcArticle because in real PMC XML they appear in <body> sections, <back>, or <floats-group>; the parser collects them document-wide without tracking their position
  • <contrib-group> is flattened to Vec<Author> (only author contribs are modeled)

Flattened read access is provided through accessor methods on PmcArticle (e.g. PmcArticle::title, PmcArticle::sections).

Structs§

Abstract
Abstract.
AbstractSection
Structured abstract section.
ArticleMeta
Article metadata.
Back
Back matter.
Body
Article body.
Definition
Term definition.
Figure
Figure.
Formula
Display formula.
Front
Front matter.
FundingInfo
Funding information.
JournalMeta
Journal metadata.
KeywordGroup
A keyword group.
License
License information.
Permissions
Copyright and licensing information.
PmcArticle
PMC full-text article.
Reference
Reference citation.
RelatedArticle
A link to a related article.
Section
Article section.
SectionIter
Depth-first, pre-order iterator over a section subtree.
SubjectGroup
A subject (article-category) group.
SupplementaryMaterial
Supplementary material.
Table
Table wrapper.
TableCell
A single table cell.
TableRow
A single table row.
TitleGroup
Title group.

Enums§

SectionKind
Semantic classification of a JATS <sec sec-type="..."> value.