docling-project / docling-project/docling
Improve parsing of JATS documents
- Dominant language
- Python
- Stars
- 66.4k
- Forks
- 4.8k
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 95
Description
### Background
[JATS](https://jats.nlm.nih.gov/) (Journal Article Tag Suite) is a standardized XML format used to encode, publish, and archive academic and scientific literature. It provides a common set of tags to structure article text, metadata (like authors and affiliations), figures, and citations, allowing research to be shared seamlessly across platforms like PubMed, CrossRef, and SciELO.
Docling supports the parsing of JATS through the declarative backend [JatsDocumentBackend](https://github.com/docling-project/docling/blob/main/docling/backend/xml/jats_backend.py#L89).
The first version was released with version [2.23.0](https://github.com/docling-project/docling/releases/tag/v2.23.0) on Feb 17, 2025. Since then, the `DoclingDocument` data model has evolved and it now supports features that rich JATS document contain but had to be ignored in the first version.
### Goal
The goal of this issue is to review the JATS backend and implement the parsing of features in JATS documents that can currently be support with `DoclingDocument`.
Some of these features were marked as `TODO` in the code and thus they should be easy to locate and implement. They include:
- [x] Footnotes @aaarif796 #3636
- [ ] Styling (bold, italic, superscript,...)
- [x] List type (ordered vs unordered and its marker) @aaarif796 #3619
- [x] Nested lists and nested objects in lists @aaarif796 #3619
- [x] Inline formulas @taru-garg-2000 #3656
- [x] Abstract with multiple sections #3584 #4172
- [x] Hyperlinks @CreoEnMi-p #4029
- [x] Embedded images @teachershuang #4041
The new implementation should include extended tests and updated groundtruth files.
Contributor guide
Assessment
This issue has not been assessed yet.