actualizado: 17.Mar.2007 | inicio > documentos > gramáticas

only search RHOYOS

PDF logo Bajar la versión PDF de este archivo.

Infancia es Destino

El reto de la gramática precede a la era de la computación; pero sigue siendo su meta.

Por Roberto Hoyos, octubre de 2006

Los imperativos de la modernidad, el orden y la velocidad, son el fundamento mismo de nuestra vida diaria. Nunca como hoy se escucharon las palabras de administración de tiempo, inteligencia emocional y estandarización (en todos los niveles conocidos, empezando por la fiebre de las certificaciones). El orden como fundamento para la agilización y la velocidad como condición sine qua non de ese mismo orden. Y no se puede imaginar aquél sin las computadoras. Entre las descripciones surrealistas, fantasiosas, casi de ciencia-ficción, en las que la comunicación entre los humanos y las computadoras ocurre naturalmente; y aquéllas en las que la computación era solamente un logro un poco más elaborado que desde los tiempos de Babbage, con nada menos que lógica llevada a la electrónica, nos encontramos con un patrón común: las gramáticas. Son el nexo, el hilo negro, la sopa primordial pero también siguen siendo un gran reto, porque a pesar de permear toda aplicación de la computación moderna, siguen siendo largamente poco entendidas.

El estudio lingüista a la teoría de la computación, las gramáticas, tuvo un origen peculiar: fueron el resultado de una petición de los militares [1], o puesto desde una perspectiva más técnica, ¿cómo hacer para que una computadora obedezca órdenes de un humano directamente, en un lenguaje que se asemeje más al que se usa cotidianamente? Debemos entender que en aquellos años, e incluso hoy, para comunicarse con una computadora se debe de hacer a través de un lenguaje tan formal que se asemeja poco al hablado y aquí es donde entra Chomsky: Promete simplificar el lenguaje, reduciéndolo a un dispositivo mecánico cuyo diseño pudiera ser especificado precisamente [2]. Es decir hacer más científico el estudio de la lingüística, de tal forma que se pudiera reducir la cantidad de conocimiento que se requiriera para entender lo relevante de ciertos datos.

La cuestión es que el lenguaje es muy extenso y demasiado ambiguo como para que una máquina pueda entenderlo. Inclusive entre humanos el entendimiento no es universal, y muchas expresiones obedecen a reglas circunscritas a un tiempo y lugar geográfico, por no mencionar la inherente ambigüedad del lenguaje en general. La aportación de Chomsky es describir un lenguaje de manera más rigurosa, no es hacer de nuevo una taxonomía, sino volverla un axioma en sí misma, y buscar las reglas para derivar teoremas y corolarios, es decir, volverla material científico. Convertir un lenguaje ambiguo y amplio a un lenguaje formal. Eso es una gramática, la descripción precisa de un lenguaje formal. Nótese que subrayo precisión y formalidad, como las aportaciones de Chomsky. Aquí es donde nace su famosa jerarquía.

Esta jerarquía propuesta, ordena las clases de gramáticas de acuerdo con su poder descriptivo, es decir, su capacidad para representar lenguajes. La parte más alta de la jerarquía, o el tipo cero de lenguaje, es el lenguaje irrestricto, que puede ser aceptado por una máquina de Turing, siendo a su vez la máquina más poderosa de la escala, porque puede representar más lenguajes. Luego siguen los lenguajes dependientes de contexto (tipo 1); los libres de contexto (tipo 2) y los regulares (tipo 3); cada vez las reglas para cada uno siendo más estrictas, limitando su poder expresivo.

Los más utilizados son los últimos dos, porque pueden ser implementados en parsers más eficientemente. Una limitación para los programas actualmente, es que no es eficiente la utilización de gramáticas más poderosas por limitaciones de memoria, por ejemplo: cuando la gramática no puede recordar la presencia de un construct sobre una entrada arbitrariamente larga, cosa que es necesaria cuando una variable debe ser declarada antes de ser referenciada.

En este ensayo no he querido abundar sobre los tecnicismos de las gramáticas, ni hablar sobre símbolos terminales y no terminales, sino que, como el título sugiere, quiero enfocarme al por qué de las gramáticas y su tendencias futuras, tanto académicas como laborales, y hacer notar la necesidad de estudiarlas más a profundidad, pues el reto sigue siendo el mismo.

Leyendo un paper titulado "Hacia una disciplina ingenieril para grammarware" [3], luego de leer la extensión de la presencia de las gramáticas en toda aplicación computacional hoy en día, coincido en la necesidad de aprender más a detalle los mecanismos íntimos de los lenguajes, su creación y su correcta utilización. Me doy cuenta de que conviene saber cómo funcionan las gramáticas y cómo su correcto aprendizaje permite aprender, a su vez, nuevos lenguajes de programación rápidamente. Después de todo, un eje importantísimo cuando se habla de estos lenguajes, es su parser, o la forma en que generamos un árbol que represente el input obtenido. Creo y me permito reflexionar en voz alta, que fue hasta este momento donde verdaderamente comprendí el fundamento teórico de la computación, no como una colección de datos históricos y trivia, sino como el entendimiento, finalmente, de por qué teóricos que nacieron antes de la creación de la primera computadora, siguen siendo tan actuales y sus aportaciones tan valiosas. Véase el caso de Turing, quien define a una computadora sin haber visto una.

Converge entonces pasado y futuro. Estamos parados sobre los hombros de gigantes, hombres que como Chomsky, han dado el fundamento. Eso inevitablemente nos lleva a la pregunta de dónde aplicar las gramáticas. Tal vez la pregunta resulte curiosa: en estos momentos más bien pienso en cómo se puede aplicar mejor. Sus aplicaciones son extensísimas, como extensa es la computación. Y daré algunos ejemplos.

Desde el punto de vista académico, el mapeo de una notación a otra. Actualmente se pueden reconstruir diagramas libres de contexto a clases abstractas y concretas en una jerarquía de herencia orientada a objetos. Pero si se puede mapear de una notación a otra, cualquiera que ésta sea, entonces se habrá cumplido el controversial sueño de Chomsky de que, al final de cuentas, todos los lenguajes tienen algo en común, un núcleo que es su sustancia, independientemente de la forma en que esté expresado. Otro ejemplo académico es la revisión de la tecnología de parsing, de obtener la mejor forma de parsear, ¿cuál de todos sus tipos es? ¿top-down? ¿LR? ¿LALR? Un punto que me ha llamado la atención desde el punto de vista académico es la pertinencia en todo momento la utilización de lenguajes enteramente precisos. Desde un punto de vista ingenieril, vivimos en un mundo que no funciona perfectamente. Es decir, ¿qué pasa cuando se introduce una entrada incorrecta en un programa que acepte input del usuario? A lo mejor, dice el paper, sea necesario usar un lenguaje menos preciso. Yo pienso inmediatamente en Google, y cómo estadísticamente sugiere un término, aunque gramáticamente el trasfondo es otro muy distinto... es el reconocimiento de palabras en un contexto, algo que a veces entendemos de manera natural... ¿cómo estructurarlo?

En el ámbito laboral sería mucho más rápido el tratamiento de información desde una perspectiva del lenguaje, cuando, por ejemplo, se desarrolle un nuevo lenguaje de programación. Muchas preguntas del ámbito académico vendrán a formar parte de las decisiones de un software que habrá de servir y venderse en la industria de software en general. O incluso siendo más preciso: en el desarrollo de software. Punto. Otra aplicación que me llamó la atención es el problema de la secuenciación y búsqueda de patrones en el DNA -una cuestión de lenguaje propiamente. Creo que la aseveración tenía más tintes de pregunta, pero el problema fundamental está siendo atacado lingüísticamente. Programas que respondan a comandos de voz del usuario, no solamente reconociendo palabras individualmente, sino como una colección de elementos que quieren comunicar una actividad más compleja, que requiera razonamiento por parte de la máquina. Me pregunto también cómo revolucionaría el trabajo de los motores de búsqueda si pudiéramos hacer preguntas en lenguaje natural y que el programa tradujera todo eso a un lenguaje entendible para él y entregara una respuesta coherente. Hay preguntas que son muy complejas como para que un programa las entienda. Van más allá de la búsqueda de proximidad de palabras. Muchas veces, sino es que todas, dependen del contexto en que se digan, de las implicaciones que tengan y el trasfondo que haya en el texto.

Así que... infancia sigue siendo destino. Los problemas propuestos hace 50 años siguen siendo material de investigación. Con el tiempo también podrán ser manufacturados y vendidos. Por el momento, conscientes de su importancia, bástenos con estudiarlos. No siempre velocidad y concierto van de la mano.

Notas:

[1] Newmeyer, 1986, entrevistó al Coronel Edmund P. Gaines, describe los sistemas de command and control, que contienen información acerca del estado de las fuerzas y la planeación para la ejecución de operaciones militares. Dicho proyecto se asignó a la UCLA y se invirtió mucho dinero en su desarrollo. La entrevista se reprodujo en Newmeyer, F. J. 1986. The Politics of Linguistics. Chicago & London: The University of Chicago Press y obtenida de Chris Knight, "Noam Chomsky, politics or science?.

[2] En su famoso libro, Syntactic Structures (1957).

[3] Klint, Lämel y Verhoef, Toward an engineering discipline for GRAMMARWARE, University of Amsterdam, 2003. Artículo publicado en TOSEM.

Top

Autor(es): Roberto Hoyos
En línea desde: 01.06.2007

Valid XHTML 1.1! Valid CSS! [Valid RSS]

Este sitio es Browser-Friendly