Compactación
Análisis de la información de STxT
Un documento es sólo un conjunto de nodos con una cierta identación, con lo que realmente la información es de orden y de nivel.
Vamos a verlo en un ejemplo:
Nodo_0 (com.example.docs): Node_1: Node_2: Texto Node2 Node_3: Texto Node3 Node_4: Node_5: Texto Node5 Node_6: Texto Node6 Continuación texto Otra linea de texto Node_7: Node_8: Node_9: Última linea
Vemos que hay 10 Nodos en este documento. El primer nodo es Node_0, y es el que contiene a los demás. Podríamos decir que es el primero en aparecer (orden) y tiene nivel 0 (no está identado y contiene a los demás). El segundo nodo es Node_1. Es el segundo en aparecer y tiene nivel 1. De esta forma podríamos cualificar todas las líneas, y extraer la información. No es difícil de hacer una tabla con esta información:
Orden | Nodo | Nivel |
---|---|---|
1 | Node_0 | 0 |
2 | Node_1 | 1 |
3 | Node_2 | 2 |
4 | Node_3 | 2 |
5 | Node_4 | 1 |
6 | Node_5 | 2 |
7 | Node_6 | 2 |
8 | Texto | 3 |
9 | Texto | 3 |
10 | Node_7 | 2 |
11 | Node_8 | 3 |
12 | Node_9 | 4 |
Ahora sólo se trata de incluir esta información. De esto trata la siguiente sección.
Una forma de compactación
A partir de la tabla anterior, vamos a proponer una forma de compactar la información. Será algo tan fácil como insertar el número de nivel en vez de utilizar tabuladores, y separarlo con el carácter habitual ':'.
Así, el ejemplo anterior quedaría como:
0:Node_0 (com.example.docs): 1:Node_1: 2:Node_2: Texto Nodo2 3:Node_3: Texto Nodo3 1:Node_4: 2:Node_5: Texto Nodo5 2:Node_6: Texto Nodo6 3:Continuación texto 3:Otra linea de texto 2:Node_7: 3:Node_8: 4:Node_9: Última linea
Realmente, la regla para compactar es así de simple:
Substituir los tabuladores de inicio por:
número de tabuladores + ':'
La utilidad de la compactación es crear un formato un poco más eficiente, que igualmente sea fácil de leer y escribir por humanos. Con los números de nivel también es muy sencillo de leer, y para las máquinas tiene algunas ventajas:
- El tamaño del fichero acostumbra a ser inferior.
- El parseo del fichero es más rápido, ya que no hay que calcular el nivel a través de tabuladores (o espacios).