Tamil All Character Encoding ( TACE16 ) es un esquema para codificar la escritura tamil en el Área de uso privado de Unicode , que implementa un modelo de caracteres basado en silabarios que difiere del modelo ISCII modificado utilizado por la implementación tamil existente de Unicode . [1] [2]
El controlador de teclado para este esquema de codificación está disponible en el sitio web de Tamil Virtual Academy de forma gratuita. [3] [4] Utiliza diseños de teclado Tamil 99 y Tamil Typewriter , que están aprobados por el Gobierno de Tamil Nadu , y asigna las pulsaciones de teclas de entrada a sus caracteres correspondientes del esquema TACE16. [2] Para leer archivos creados con TACE16, las fuentes Unicode Tamil correspondientes también están disponibles en el mismo sitio web. [3] [4] Estas fuentes asignan glifos para caracteres del formato TACE16, pero también para el bloque Unicode para caracteres ASCII y Tamil , de modo que pueden proporcionar compatibilidad con versiones anteriores para leer archivos existentes que se crean utilizando el bloque Unicode Tamil .
Todos los caracteres de este esquema de codificación se encuentran en el área de uso privado del Plano Multilingüe Básico del Conjunto de Caracteres Codificados Universales de Unicode .
El modelo de caracteres Unicode existente para el tamil es, como la mayoría de los Unicode índicos , [b] un modelo basado en abugida derivado de ISCII . Ha sido criticado por varias razones. [1]
Unicode representa solo 31 caracteres base tamil como puntos de código individuales , de 247 grupos de grafemas . Estos incluyen vocales independientes y 23 glifos consonánticos básicos (que, debido a que no tienen un virama , denotan una sílaba con una consonante y una vocal cuando se usan solos). Los demás se representan como secuencias de puntos de código, lo que requiere soporte de software para funciones tipográficas avanzadas (como Apple Advanced Typography , Graphite o OpenType advanced typography ) para representarlos correctamente. Esto también requiere el uso de caracteres de unión de ancho cero invisibles y caracteres de no unión de ancho cero en lugares donde el grupo de grafemas deseado de otra manera sería ambiguo. Esta complejidad puede resultar en vulnerabilidades de seguridad y combinaciones ambiguas, puede requerir el uso de una tabla de excepciones para prohibir combinaciones no válidas de puntos de código y puede requerir el uso de normalización de cadenas para comparar dos cadenas para determinar su igualdad.
Además, dado que las sílabas con una consonante y una vocal forman entre el 64 y el 70% del texto tamil, un modelo basado en abugida que codifica las partes consonántica y vocálica como puntos de código separados es ineficiente, en términos de la longitud que debe tener una cadena para contener un fragmento de texto determinado, en comparación con un modelo basado en silabarios.
Además, ISCII es principalmente una codificación de Devanagari , y las codificaciones ISCII de otras escrituras brahmicas (incluido el tamil) codifican caracteres sobre los puntos de código de los caracteres correspondientes en ISCII devanagari. Aunque Unicode codifica las escrituras brahmicas por separado, el bloque tamil refleja el diseño ISCII (con ordenación de caracteres al estilo devanagari y espacio reservado en posiciones correspondientes a caracteres devanagari sin equivalente tamil); en consecuencia, los caracteres no están en el orden de secuencia natural, y las cadenas cotejadas por punto de código (análoga a la ordenación " ASCIIbética " del texto en inglés) no producirán el orden de clasificación esperado. Requiere un algoritmo de cotejo complejo para organizarlas en el orden natural.
Los siguientes datos ofrecen una comparación entre el Unicode Tamil actual y el TACE16 sobre gobernanza electrónica y navegación: [1] [ se necesita una mejor fuente ]
TACE16 ofrece mejoras de rendimiento en el tiempo y el espacio de procesamiento. Abarca todo el texto tamil general; es secuencial; y no presenta ambigüedades, ya que cada punto corresponde a un solo carácter. [1] [ se necesita una mejor fuente ] El sistema TACE16 requiere menos ciclos de instrucción que Unicode Tamil, y también permite la programación basada en la gramática tamil [ se necesita una aclaración ] , que necesita un desarrollo de marco adicional en Unicode Tamil.
El Consorcio Unicode publica una página de preguntas frecuentes dedicada al alfabeto tamil que responde a algunas de las críticas. En defensa del modelo ISCII, el Consorcio señala que en su desarrollo participaron expertos lingüistas , tipógrafos y programadores, pero reconoce que se hicieron concesiones debido a que ISCII se limitaba a ASCII extendido de un solo byte . El Consorcio señala que ahora todos los principales sistemas operativos y navegadores web implementan Unicode Tamil , y sostiene que debería usarse en contextos de intercambio abierto, como Internet, ya que herramientas como los motores de búsqueda no necesariamente podrían identificar o interpretar una secuencia de puntos de código de uso privado de Unicode como texto tamil. Sin embargo, el Consorcio no se opone al uso de esquemas de Área de Uso Privado, incluido TACE16, internamente en procesos particulares para los que son útiles. En particular, destaca que los investigadores pueden usar tanto esquemas de marcado como esquemas de codificación alternativos para fines especializados, como el procesamiento del lenguaje natural . [6]
Unicode define secuencias normativas con nombre para todas las consonantes y sílabas puras del tamil que se representan con secuencias de más de un punto de código, y se publica una tabla dedicada como parte del Estándar Unicode que enumera todas estas secuencias, en su orden tradicional, junto con sus glifos correctos. El Consorcio señala que ha estado abierto a aceptar propuestas para caracteres para los que no existe una representación Unicode existente: por ejemplo, agregar varias fracciones históricas y otros símbolos como el bloque de Suplemento Tamil en la versión 12.0 en 2019. [6]
En cuanto a la intercalación, el Consorcio sostiene que obtener el resultado correcto de la clasificación por punto de código es la excepción y no la regla, destacando que, en el ordenamiento ASCIIbético sin modificar, la letra latina mayúscula Z se ordena antes que la letra minúscula a , y también destacando que las reglas de intercalación a menudo difieren según el idioma (ver p. ej. ö ). En cuanto a la eficiencia del espacio, el Consorcio sostiene que el espacio de almacenamiento y el ancho de banda que ocupa el texto generalmente se ve eclipsado por otros medios que lo acompañan, como imágenes y videos, y que el contenido de texto funciona bien con métodos de compresión de propósito general como Deflate (originalmente del formato de archivo ZIP , estandarizado en RFC 1951 e integrado en el protocolo HTTP como un esquema de codificación genérico). [6]
Cuando se publicó por primera vez (versión 1.0.0), Unicode solo ofrecía garantías de estabilidad limitadas. Por ello, el bloque tibetano original se eliminó en la versión 1.0.1 (y su espacio ha sido ocupado desde entonces por el bloque birmano ), y el bloque original para sílabas coreanas se eliminó en la versión 2.0 (y ahora está ocupado por CJK Unified Ideographs Extension A ). Tanto el bloque actual de sílabas Hangul para sílabas coreanas como el bloque tibetano actual se remontan a Unicode 2.0. Esto se hizo asumiendo que existía poco o ningún contenido existente que usara Unicode para esos sistemas de escritura, [7] ya que rompería la compatibilidad con todo el contenido Unicode existente en esos sistemas de escritura y los métodos de entrada para ellos. Después de este llamado "lío coreano", los comités responsables se comprometieron a no realizar nunca más un cambio que rompiera la compatibilidad, [7] que ahora forma parte de la Política de estabilidad de Unicode. [8]
Esta política de estabilidad se ha mantenido desde entonces, a pesar de las demandas de volver a codificar o cambiar el modelo de caracteres tanto para el tibetano como para el coreano por segunda vez, realizadas por China y Corea del Norte respectivamente. [9] [10] [11] [12] Asimismo, en relación con el tamil, el Consorcio enfatiza la "cuestión crucial de mantener la estabilidad del estándar para las implementaciones existentes", y argumenta que "los costos y el impacto resultantes de desestabilizar el estándar" superarían sustancialmente cualquier beneficio de eficiencia en la velocidad de procesamiento o el espacio de almacenamiento. [6]
Hubo una propuesta para recodificar el tamil [13] que fue rechazada por Unicode, que dijo que la recodificación sería perjudicial y que no había evidencia convincente de que la codificación Unicode del tamil fuera deficiente. [14]
El proyecto Open-Tamil [15] proporciona muchas de las operaciones más comunes. Afirma que cumple con el nivel 1 del procesamiento de texto en tamil sin utilizar TACE16, pero está escrito sobre una lógica de programación adicional que es necesaria para el tamil Unicode.