This glossary defines the core technical terms, domain concepts, and architectural components of the Docling codebase. It is intended for onboarding engineers to bridge the gap between high-level document processing concepts and their specific implementations in the code.
The primary orchestrator of the Docling SDK. It manages the conversion lifecycle, including format routing, backend selection, and pipeline execution.
DocumentConverter in docling/document_converter.py133convert() handles single or batch sources, returning a ConversionResult docling/document_converter.py343-348FormatOption subclasses like PdfFormatOption, WordFormatOption, or ExcelFormatOption docling/document_converter.py95-248The unified, hierarchical data model representing a document. It is format-agnostic and stores structural elements like headers, tables, and paragraphs.
docling-core and re-exposed in docling/datamodel/document.py27-35TextItem, TableItem, SectionHeaderItem, and PictureItem docling/datamodel/document.py28-35The output object of a conversion process. It encapsulates the resulting DoclingDocument, execution metadata, and any errors encountered.
ConversionResult in docling/datamodel/document.py280ConversionStatus (e.g., SUCCESS, PARTIAL_SUCCESS, FAILURE) docling/datamodel/base_models.py85-91An abstraction layer for interacting with raw document files. Backends provide methods to extract text, images, and metadata from specific formats.
AbstractDocumentBackend docling/backend/abstract_backend.py39PaginatedDocumentBackend docling/datamodel/document.py52DeclarativeDocumentBackend docling/backend/abstract_backend.py175A sequence of operations that transforms backend data into a DoclingDocument.
The following diagram bridges the gap between natural language concepts and the specific code entities involved in a conversion.
Natural Language to Code Entity Mapping
Sources: docling/document_converter.py133-348 docling/datamodel/document.py125-280 docling/pipeline/base_pipeline.py34
| Term | Definition | Code Pointer |
|---|---|---|
| OCR Options | Configuration for OCR engines like Tesseract, EasyOCR, or RapidOCR. | docling/datamodel/pipeline_options.py164-198 |
| TableFormer | ML model for table structure recognition and cell extraction. | docling/datamodel/pipeline_options.py122-157 |
| Furniture | Non-body document elements like headers, footers, and page numbers. | docling/datamodel/document.py84-103 |
| InputFormat | Enum defining supported input types (PDF, DOCX, AUDIO, etc.). | docling/datamodel/base_models.py94-126 |
| Accelerator | Hardware acceleration settings (CPU, CUDA, MPS, XPU). | docling/datamodel/accelerator_options.py52 |
AsrPipeline docling/pipeline/asr_pipeline.py84InlineVlmOptions and ApiVlmOptions docling/datamodel/pipeline_options.py47-52JatsDocumentBackend docling/backend/xml/jats_backend.py33XBRLDocumentBackend docling/backend/xml/xbrl_backend.py40PatentUsptoDocumentBackend docling/backend/xml/uspto_backend.py39Docling uses a factory and plugin architecture to manage model selection and extensibility.
Model Factory and Plugin Architecture
Sources: docling/cli/main.py147-152 docling/document_converter.py133 docling/models/factories/base_factory.py1-20
pluggy to discover and load OCR and layout engines pyproject.toml56InputFormat docling/datamodel/base_models.py142-228python-docx docling/backend/msword_backend.py167-180Sources: