> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# DocLang

DocLang es un formato de documento abierto diseñado para sistemas de IA, no para personas ni impresoras. Es el formato de salida que recomendamos para FineParser.

<h2 id="what-doclang-is">
  Qué es DocLang
</h2>

La mayoría de los formatos de documento se diseñaron para la representación visual. PDF describe dónde dibujar los píxeles y HTML indica al navegador cómo maquetar una página, pero ninguno le dice a un modelo de lenguaje qué contiene un documento. Los analizadores que los convierten para su uso con IA acaban adivinando el orden de lectura, reduciendo las tablas a cadenas de texto y descartando figuras y metadatos.

DocLang es un formato XML restringido creado para los tokenizadores de los LLM, de modo que cada elemento se corresponde con un único token del modelo. Todos los elementos incluyen un rol semántico, las coordenadas de su rectángulo delimitador y una posición dentro del orden de lectura, y las tablas conservan íntegra su estructura de cuadrícula. Se trata de una especificación, no de un producto, por lo que cualquier analizador puede generarla y cualquier herramienta puede consumirla. El grupo de trabajo fue fundado por IBM, NVIDIA, Red Hat, ABBYY, HumanSignal y Forgis, y la especificación se desarrolla en el marco de Joint Development Foundation Projects como proyecto de LF AI & Data.

<h2 id="why-fineparser-outputs-it">
  Por qué FineParser lo genera
</h2>

El texto sin formato resulta económico para alimentar un modelo porque descarta la estructura, mientras que HTML y Markdown la conservan, pero gastan muchos tokens en describirla. DocLang conserva la estructura a una fracción del costo. Una tabla codificada con el scheme OTSL de DocLang necesita cinco tokens estructurales, mientras que el HTML equivalente necesita veintiocho.

DocLang también define una representación canónica única para cada tipo de contenido, de modo que toda herramienta compatible produce el mismo resultado para un mismo documento. El código escrito para el resultado de FineParser funcionará con cualquier otro producer de DocLang, y sus documentos seguirán siendo portables si más adelante cambia de analizador.

<h2 id="example">
  Ejemplo
</h2>

El siguiente fragmento de DocLang describe un encabezado y una tabla pequeña, cada uno con su rectángulo delimitador en la página.

```xml theme={null}
<doclang>
  <heading level="1">
    <location value="48"/><location value="40"/>
    <location value="420"/><location value="72"/>
    Q3 Financial Summary
  </heading>
  <table>
    <location value="48"/><location value="88"/>
    <location value="420"/><location value="168"/>
    <ched/>Quarter<ched/>Revenue<ched/>YoY<nl/>
    <fcel/>Q3 2024<fcel/>$42M<fcel/>+18%<nl/>
  </table>
</doclang>
```

Los cuatro elementos `<location>` indican las esquinas del rectángulo delimitador. Dentro de la tabla, `<ched/>` introduce una celda de encabezado de columna, `<fcel/>` introduce una celda de datos y `<nl/>` finaliza la fila.

<h2 id="files">
  Archivos
</h2>

FineParser escribe DocLang como un único archivo `.doclang` que contiene el markup. La especificación de DocLang también define un archivo `.dclx`, un paquete ZIP que agrupa el markup junto con las imágenes extraídas y otros activos, pero FineParser no genera ese formato.

<h2 id="learn-more">
  Más información
</h2>

El sitio [doclang.ai](https://doclang.ai/) incluye una descripción general del proyecto y un visor interactivo. La especificación completa y el kit de herramientas de referencia están disponibles en el [repositorio doclang-project](https://github.com/doclang-project/doclang) de GitHub, que además ofrece el paquete de Python `doclang` para validar y empaquetar archivos DocLang.
