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_pathor inferredfile_typeare excluded - Type-safe IDs: uses
PmcId/PubMedIdinstead of raw strings - Reuses shared types:
AuthorandHistoryDatefromcommon::models - Text mining ready: structured abstracts, table content, formulas, definitions
Documented deviations from strict DTD structure:
supplementary_materialsanddata_availabilitylive onPmcArticlebecause 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 toVec<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.
- Abstract
Section - Structured abstract section.
- Article
Meta - Article metadata.
- Back
- Back matter.
- Body
- Article body.
- Definition
- Term definition.
- Figure
- Figure.
- Formula
- Display formula.
- Front
- Front matter.
- Funding
Info - Funding information.
- Journal
Meta - Journal metadata.
- Keyword
Group - A keyword group.
- License
- License information.
- Permissions
- Copyright and licensing information.
- PmcArticle
- PMC full-text article.
- Reference
- Reference citation.
- Related
Article - A link to a related article.
- Section
- Article section.
- Section
Iter - Depth-first, pre-order iterator over a section subtree.
- Subject
Group - A subject (article-category) group.
- Supplementary
Material - Supplementary material.
- Table
- Table wrapper.
- Table
Cell - A single table cell.
- Table
Row - A single table row.
- Title
Group - Title group.
Enums§
- Section
Kind - Semantic classification of a JATS
<sec sec-type="...">value.