docling-project / docling-project/docling

Improve parsing of JATS documents

Open
#3,583 12 comments 0 reactions 3 assignees Claimed by @CreoEnMi-p View on GitHub
enhancement good first issue triage/close-fixed xml
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.