Post on 18-Aug-2021
MISC-03-1-8
ANALIZADOR LÉXICO-SINTÁCTICO PARA EL LENGUAJE DE ANIMACUENTO
TESIS DE MAESTRÍA EN INGENIERÍA DE SISTEMAS Y COMPUTACIÓN
JUAN CARLOS MUÑOZ RUIZ
PROFESOR ASESOR FERNANDO DE LA ROSA
UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIERÍA
DEPARTAMENTO DE SISTEMAS Y COMPUTACIÓN BOGOTÁ D.C.
2003
MISC-03-1-8
1
AGRADECIMIENTOS
A Dahlan Leguízamo Arango, Filólogo y Licenciado en Español y Lenguas Clásicas,
de la Universidad Nacional, Bogotá. Consultor para Instituciones Educativas sobre
Bilingüismo.
A Betulia Pantoja de Cardona, Licenciada en Pedagogía, con estudios Superiores en
Español y Mayores en Administración, de la Universidad Javeriana, Bogotá.
Investigadora y Docente de español en primaria y bachillerato.
Al Politécnico Grancolombiano, Institución Universitaria, por el apoyo económico y
en tiempo, y a mis jefes y compañeros que estuvieron siempre dispuestos a colaborar.
A Germán y Amanda, mis padres, quienes siempre me apoyaron e impulsaron a tener
fe en mí.
A mi esposa Adriana y mi hija Ana Cristina, por su apoyo, experiencia, paciencia y
haber sacrificado tanto tiempo familiar en pro de mi progreso académico y
profesional, y el desarrollo de la pedagogía a través de la informática.
A los profesores, asesores y jurados de este trabajo por su dedicación y aportes para
lograr un resultado excelente.
A Dios, por comandar mi vida y darme esta gran oportunidad.
Sinceramente,
Juan Carlos Muñoz Ruiz
MISC-03-1-8
2
INDICE
AGRADECIMIENTOS................................................................................................ 1
INTRODUCCION........................................................................................................ 5
1. ESTRUCTURA......................................................................................................... 9
1.1. PLANTEAMIENTO DEL PROBLEMA.............................................................. 9
1.1.1. Marco General................................................................................................... 9
1.1.2. Marco General................................................................................................. 10
1.2. OBJETIVO GENERAL...................................................................................... 10
1.3. RESULTADOS ESPERADOS ........................................................................... 11
2. PROPUESTA PEDAGÓGICA .............................................................................. 13
2.1. Análisis Educativo.............................................................................................. 14
2.2. Fundamento Teórico de la Propuesta Educativa................................................ 15
3. ANTECEDENTES DEL PROCESAMIENTO DE LENGUAJES...................... 22
3.1. Procesamiento del lenguaje natural.................................................................... 22
3.2. Definición de categorías Gramaticales................................................................ 24
3.3. Gramática .......................................................................................................... 29
3.4. Métodos de Parseo (Análisis Gramatical) ........................................................... 31
4. ESTADO DEL ARTE DE ANALIZADORES ...................................................... 33
4.1. Analizadores Léxicos .......................................................................................... 33 4.1.1. FLEX .....................................................................................................................................................33 4.1.2. LEX .......................................................................................................................................................34
4.2. Analizadores Sintácticos..................................................................................... 36 4.2.2. Lekta .....................................................................................................................................................37 4.2.3. O2RTED ..............................................................................................................................................39 4.2.4. LOAD-AND-GO................................................................................................................................40 4.2.5. Analizador sintáctico en Pascal........................................................................................................41
4.3. Analizadores Semánticos .................................................................................... 43 4.3.1. Analizador semántico en Pascal.......................................................................................................44
4.4. Editores.............................................................................................................. 45 4.4.1. ICEedito ...............................................................................................................................................45 4.4.2. Editores de líneas, objetos de tipo {lineedit} ................................................................................45 4.4.3. Editores de texto con formato ..........................................................................................................46 4.4.4. Editores de texto simple ....................................................................................................................46 4.4.5. Editores de texto mejorados .............................................................................................................46
MISC-03-1-8
3
4.5. Compiladores ..................................................................................................... 46 4.5.1. ALE.......................................................................................................................................................46 4.5.2. La Maquina De Pila ...........................................................................................................................47 4.5.3. Funcionamiento del compilador en Pascal.....................................................................................48
4.6. Generadores de Analizadores............................................................................. 49 4.6.1. Yacc ......................................................................................................................................................49 4.6.2. PleNa ....................................................................................................................................................50 4.6.3. Analizador de lenguaje para Animacuento....................................................................................51 4.6.4. Edición Interactiva de entornos incrementales..............................................................................52 4.6.5. Bison.....................................................................................................................................................53 4.6.6. Departamento de Lenguajes y Sistemas Informáticos de la Universidad de Alicante ..........54
4.7. Diccionario de algunos términos de la investigación sobre el estado del Arte...... 55
5. DESARROLLO DEL MEC: ANALIZADOR LEXICO-SINTACTICO PARA EL LENGUAJE DE ANIMACUENTO .......................................................................... 57
5.1. Identificación de necesidades Educativas ............................................................ 57
5.2. Entorno para el diseño del MEC........................................................................ 58 5.2.1. Educación ............................................................................................................................................58 5.2.2. Calidad de la composición y escritura ............................................................................................59 5.2.3. Preparación de los maestros.............................................................................................................59 5.2.4. Pedagogía: ...........................................................................................................................................60 5.2.5. Experiencia personal..........................................................................................................................60 5.2.6. Herramientas tecnológicas al alcance de todos.............................................................................61 5.2.7. Ausencia del espacio para la imaginación......................................................................................61
5.3. Establecimiento del Papel del Computador en este MEC ................................... 62
5.4. Soluciones Existentes.......................................................................................... 62
5.5. Diseño del MEC.................................................................................................. 62 5.5.1. El entorno.............................................................................................................................................63 5.5.2. Diseño Educativo ...............................................................................................................................63 5.5.3. Diseño de Comunicación ..................................................................................................................64 5.5.4. Diseño Computacional ......................................................................................................................65 5.5.5. Preparación..........................................................................................................................................67
5.6. Evaluación.......................................................................................................... 70
5.7. Pruebas Realizadas............................................................................................. 71 5.7.1. Ejemplo de estructuras gramaticales ...............................................................................................71
6. CONCLUSIONES Y TRABAJOS FUTUROS...................................................... 73
6.1. Trabajos Futuros................................................................................................ 74
BIBLIOGRAFIA........................................................................................................ 75
ANEXO 1. COMPONENTES Y RELACIONES...................................................... 79
ANEXO 2. MANUAL DEL USUARIO ..................................................................... 80
ANEXO 3. DOCUMENTO DE ARQUITECTURA.................................................. 87
Control de Revisiones................................................................................................. 87
MISC-03-1-8
4
Estructura de Uso de Módulos................................................................................... 88
Descripción Global de la estructura de uso de módulos ............................................ 88 Presentación....................................................................................................................................................89 Lógica de aplicación .....................................................................................................................................90 Almacenamiento............................................................................................................................................91
Descripción de Componentes.................................................................................... 91
Descripción de Dependencias .................................................................................... 91
Estructura Física........................................................................................................ 92
Descripción Global de la estructura Física................................................................ 92
Descripción de Dependencias .................................................................................... 94
Estructura de Procesos............................................................................................... 94
Descripción de Componentes.................................................................................... 94
ÍNDICE DE FIGURAS
Figura 1: Analizador Sintáctico en Pascal - Expresión y su ………………………………42
representación en un árbol de expansión. Figura 2: Analizador Sintáctico en Pascal - Expresión y su ………………………………43
representación en un árbol de expansión. Figura 3: Compilador en Pascal – Proceso de compilación ………………………………47
de un fragmento del programa
Figura 4: Compilador en Pascal – Funcionamiento de un linker ………………………….48
Figura 5: Ejemplo estructura gramatical …………………………………………………..71
MISC-03-1-8
5
INTRODUCCION
El proyecto completo de AnimaCuento incluye, por un lado, el diseño e
implementación de una herramienta pedagógica, y por otro, la animación gráfica que
corresponde a dicha implementación. El objetivo principal de este trabajo es
completar la primera parte, es decir, el diseño e implementación de la herramienta
pedagógica, dejando por fuera la mayor parte del trabajo de animación
correspondiente, ya que éste es un proyecto de grado del Magíster en Ingeniería de
Sistemas y Computación con énfasis en Informática Educativa, y no en Computación
Gráfica. Esta segunda parte del proyecto completo de AnimaCuento, podría constituir
en sí mismo, otro proyecto de grado en Animación.
El diseño e implementación de la Herramienta comprende a su vez, dos aspectos
principales: El diseño educativo de AnimaCuento como Ejercitador de Gramática
Normativa, y el análisis del problema de interpretar el lenguaje natural en lengua
española.
El Material Educativo Computarizado, MEC, que aquí se presenta busca aportar una
herramienta pedagógica para facilitar el refuerzo en la asimilación de distintos
aspectos de la Gramática Normativa como herramienta para la cátedra de español a
nivel de primaria y secundaria principalmente, a través de un ambiente de
composición escrita.
Es muy importante que los profesores y planteles educativos jueguen un papel activo
en la utilización de MECs, pues no sólo les sirve a ellos para facilitar la enseñanza,
sino que les puede apoyar en la medición o diagnóstico de los resultados de
aprendizaje. En este contexto, el MEC se convierte en un gran indicador de sus
facultades pedagógicas o métodos de enseñanza y así es posible hacer los cambios
necesarios a tiempo. Las herramientas tecnológicas que hoy facilitan y complementan
MISC-03-1-8
6
los métodos de enseñanza, son también valiosas herramientas para orientar al maestro
y facilitar su evaluación, condición que debe ser aprovechada por las instituciones
que quieren mantener y mejorar la calidad de su personal docente.
Con el presente trabajo se hará una investigación sobre el Constructivismo, como
base teórica que orienta el tipo de conocimiento que se intenta desarrollar a través de
Animacuento, pues desde esta perspectiva, lo que se logra con esta herramienta
pedagógica es, entre otros objetivos, la construcción por parte del alumno de un
conocimiento que sea realmente significativo para su vida, y que por lo tanto, posea
la perdurabilidad necesaria en su memoria para que luego sea capaz de utilizarlo en
forma práctica. Tal tipo de conocimiento se construye a través de la experiencia
personal del niño, al explorar y descubrir las múltiples posibilidades que le brinda
AnimaCuento, apropiándose del proceso cognitivo y no como “víctima” del mismo.
El niño es el personaje principal, el protagonista del aprendizaje, quien toma la
iniciativa y construye a partir de su propia personalidad, ya no lo es el maestro. Por
estas razones, es claro que el marco teórico que orienta y desde el cual se genera esta
propuesta pedagógica es sin duda, el Constructivismo.
Resulta en cierta forma paradójico en el presente proyecto, que pretenda reforzar
aspectos de la Gramática Normativa desde una perspectiva Constructivista,
supuestamente más abierta y libre de esquemas. La razón de esto es que los enfoques
descriptivos de la Gramática, como el Generativismo contemporáneo, aunque son
muy exitosos en cuanto al alcance de los análisis sintáctico y semántico, todavía no
satisface la necesidad que tiene la escuela de proporcionar una comprensión estándar
del uso de la lengua. Carecen de herramientas didácticas enfocadas al estudiante
común que posee poca erudición. Por eso, aún después de estar supuestamente
revaluada hace décadas, la gramática normativa se sigue hoy en día enseñando en la
escuela.
Adicionalmente, la Real Academia de la Lengua Española está trabajando en un
proyecto que combina ambos enfoques gramaticales -normativo y descriptivo- con el
MISC-03-1-8
7
fin de facilitar su aprendizaje, proyecto que puede ser implementado fácilmente por
AnimaCuento gracias a su naturaleza flexible que permite establecer las normas
gramaticales a ser practicadas. El pasado mes de Junio de 2003, se reunió la comisión
interacadémica de la Asociación de Academias de la Lengua española con el objeto
de elaborar una nueva gramática general, de carácter normativo y descriptivo, la cual
se dará a conocer en el 2005.
El secretario de la Real Academia Española, Guillermo Rojo, afirmó que este
progreso en el español está condicionado al avance de los cursos del idioma como
lengua extranjera y, «lo más importante de todo, por el manejo de la lengua en los
medios de comunicación pública, como es el caso de Estados Unidos, donde ya hay
casi 40 millones de hispanohablantes y donde 2 cadenas de televisión emiten en
español las 24 horas del día», afirmó.
El director de la Real Academia de la Lengua Española y presidente de las 22
instituciones afiliadas que existen en el mundo, Víctor García de la Concha, agregó
que todas las academias "trabajan en plano de la igualdad y al servicio de la unidad de
la lengua, que es el gran objetivo".
Por otro lado, la interpretación del lenguaje natural por parte del sistema
computarizado viene siendo un gran reto desde los inicios de la informática, pues el
hombre ha tenido que simplificar y restringirse a pequeños “lenguajes especia lizados”
que limitan sus posibilidades de comunicación con la máquina. Es así como los
programadores han tenido que aprender lenguaje de máquina, adaptándose a ellas, en
lugar de adaptar las máquinas al lenguaje natural. Esto es obvio después de entender
la alta complejidad que nuestro lenguaje implica para el procesamiento de
información, pues tenemos gramáticas muy complejas, diccionarios extensos y ni
hablar de sinónimos y palabras derivadas. Este problema ha sido evidente desde que
se inició la comunicación hombre-máquina a través del lenguaje humano y existe ya
una larga serie de intentos (algunos exitosos y otros no) por lograr que la máquina sea
capaz de recibir mensajes de usuarios en lenguaje natural y los interprete. Entre estos
MISC-03-1-8
8
intentos se encuent ran analizadores léxicos, sintácticos, semánticos, traductores y
decodificadores de voz entre otros.
El presente analizador de lenguaje será formulado con el objetivo principal de
alimentar las entradas para AnimaCuento, una herramienta didáctica que fomenta la
creatividad en los niños, mientras refuerza sus conocimientos en gramática. A pesar
de la existencia de muchos analizadores de lenguaje de uso libre, se encontró una alta
complejidad en los mismos, que deriva en desperdicios de memoria para el caso en
estudio, pues AnimaCuento dispone de un diccionario limitado para animación
debido a que la salida consiste en animaciones preprogramadas. Sin embargo, el
diccionario para construcción de oraciones es tan amplio como se quiera, sin afectar
la memoria utilizada en la parte gráfica.
Cabe anotar que es muy importante aprovechar los adelantos tecnológicos para
facilitar la labor pedagógica y de aprendizaje de los niños, pues cada vez es más
difícil captar su concentración por la inmensa cantidad de estímulos externos,
diferentes a la educación, de que son objeto. La tecnología, así como un muy buen
profesor, puede motivar a los niños a tener gusto por el estudio y el aprendizaje, es
pues la hora de romper de una vez por todas con los paradigmas de la educación, la
resistencia al cambio, y abrir las aulas escolares hacia las mil posibilidades de la
informática.
Juan Carlos Muñoz Ruiz
MISC-03-1-8
9
1. ESTRUCTURA
1.1. PLANTEAMIENTO DEL PROBLEMA
1.1.1. Marco General
Para estudiar la problemática aquí presentada, se hace necesario conocer algunas de
las características principales que determinan el estado de la educación en Colombia
en el aspecto que aquí interesa. Estas son:
• La deserción escolar1 a temprana edad por falta de motivación hacia el
aprendizaje por parte de los niños, y la baja calidad en las habilidades de
composición creativa y correctaa escritura, en la población infantil
colombiana.
• El computador como medio de enseñanza-aprendizaje, permite crear
situaciones que el usuario puede vivir, analizar, modificar, y someter a prueba
sus propios patrones de pensamiento2
• Según Censo 19933, el 41% de la población Colombiana son menores de 18
años – mercado potencial de la educación básica.
• Los planteles de educación básica manifiestan que es cada vez más palpable
la necesidad del acceso al refuerzo escolar y muchos han implementado ya sus
propios programas de refuerzo en horario adicional.
1 Secretaría de Educación de Risaralda, Anuario Estadístico1995 a Hoy en día existe un dilema entre la gramática normativa (tradicional que hoy por hoy se enseña en los colegios) y la gramática descriptiva o generativa. Esta última es considerada ideal por cuanto no excluye ciertas construcciones gramaticales que difieren de la gramática tradicional. Aunque esta es una alternativa muy adecuada, la gramática generativa no ha logrado reemplazar a la gramática normativa en cuanto a la necesidad de transmitirle al estudiante una comprensión estándar de la lengua. 2 GALVIS, Alvaro H., Ingeniería de Software Educativo, Universidad de los Andes, Bogotá, 1997 3 La dirección http://www.dane.gov.co.
MISC-03-1-8
10
• Plan Nacional Agenda de Conectividad con sus programas Internet Social y
Computadores para Educar4.
1.1.2. Problema Particular
Si se quiere desarrollar una herramienta informática que favorezca la motivación
hacia la creatividad, el aprendizaje y estudio, y refuerce las habilidades de lecto-
escritura, la inquietud principal es: ¿Es posible analizar e interpretar gráficamente
textos de lenguaje natural durante la interacción con el programa?
El problema informático a resolver es la posibilidad de analizar gramaticalmente
textos en lenguaje natural del idioma español, generando un código intermedio
para su posterior análisis y animación.
El problema pedagógico a resolver es la ejercitación de conocimientos
gramaticales previamente adquiridos para reforzarlos y la motivación hacia la
creatividad en composición de historias.
1.2. OBJETIVO GENERAL
- Diseñar y desarrollar, a partir de una propuesta pedagógica, una herramienta de
refuerzo de conocimientos sobre la gramática normativa del lenguaje natural en
idioma español que a su vez, sea de ayuda para la labor del profesor.
Diseñar y Desarrollar el sistema computarizado “ANALIZADOR LÉXICO-
SINTACTICO PARA EL LENGUAJE DE ANIMACUENTO”, el cual consiste en la
clasificación sintáctica de los componentes de una oración, a partir de la selección,
por parte del usuario, de un conjunto de elementos disponibles. El análisis ratifica el
4 http://www.agenda.gov.co
MISC-03-1-8
11
correcto uso de estructuras gramaticales que el profesor desea ejercitar en sus
alumnos, y el archivo de resultados le permite conocer los desempeños individuales.
Nota: Los usuarios de este sistema comprenden niños desde la edad de los 8 años en
adelante, con conocimientos básicos de gramática y ortografía. El mantenimiento está
a cargo del profesor
1.3. RESULTADOS ESPERADOS
AnimaCuento es un Material Educativo Computarizado para ejercitar el uso de la
Gramática Normativa en el lenguaje natural del id ioma español, que permite al
profesor controlar los elementos gramaticales a ejercitar y el desempeño en la
práctica de sus alumnos.
Se contará con la implementación de un editor que recibe texto, lo analiza e interpreta
su sintaxis de acuerdo con los requerimientos del profesor. Concretamente, el
resultado final será un Material Educativo Computarizado que facilita el refuerzo de
conocimientos en gramática española mediante la ejercitación.
Se espera que el módulo gráfico sea totalmente desarrollado en un posterior trabajo
para lograr la animación de las historias relatadas.
El profesor o tutor puede preparar las estructuras gramaticales que van a ser
practicadas por cada alumno, así mismo, hace el seguimiento de la evolución del
proceso de aprendizaje mediante los registros internos del ejercitador.
El profesor puede definir el vocabulario fuente con el cual los usuarios pueden dejar
volar su imaginación y ejercitar su creatividad en la composición de textos escritos
que luego serán animados.
AnimaCuento está definido para ser usado con Gramática Normativa, pues esa es la
que se enseña en los colegios y es la que la mayoría de los niños necesita ejercitar;
MISC-03-1-8
12
pero como las estructuras gramaticales se pueden definir en este sistema, es posible
adaptarlo a otra gramática que tenga definiciones claras y no dependa de la
comprensión subjetiva del lector. El diseño del programa es tan amplio que permite
inclusive adaptarlo fácilmente a otro idioma.
MISC-03-1-8
13
2. PROPUESTA PEDAGÓGICA
Animacuento es un MEC, Material Educativo Computarizado, cuya interfase aparece
ante el usuario como un ejercitador que le permite hacer una simulación de su
fantasía a partir de la teoría Constructivista. Se espera que un niño con los
conocimientos gramaticales y ortográficos básicos, y con las operaciones elementales
que es capaz de manejar a esa edad, asimile ciertas normas y palabras a través de la
práctica, y la motivación de ver su historia animada cuando el proyecto esté
completo. Esa misma motivación es necesaria para fomentar la creatividad, pues
para escribir un AnimaCuento es necesario que el niño sea creativo, construya su
propia historia a partir de unas condiciones léxicas que se le establecen; pero siempre
poniendo a trabajar su imaginación. Es necesario que el niño haya recibido los
conocimientos anteriormente, puesto que AnimaCuento es una herramienta para
lograr refuerzo escolar, de otra forma resultaría un proceso de aprendizaje a través
de ensayo y error que para este tema tan claramente definido por normas, no se
justifica.
Cabe anotar una aclaración para evitar confusiones entre las teorías educativas, pues
el refuerzo escolar aquí referido se refiere a la consolidación de conocimientos
mediante la práctica y total entendimiento de la materia a través de una metodología
Constructivista. En el conductismo se habla del refuerzo o reforzamiento como
elemento de reconocimiento a un resultado positivo o negativo que genera el alumno
durante el aprendizaje, así se motiva o desmotiva para seguir generando dicho
resultado. Por lo anterior, se solicita no confundir el refuerzo conductista
(herramienta de enseñanza) con el refuerzo escolar, (resultado esperado en el alumno
después de aplicar una metodología Constructivista en este caso).
MISC-03-1-8
14
En su diseño, este Sistema se construye como un MEC de tipo heurístico5b donde
predomina el aprendizaje experiencial, pues el diseño proporciona muchas opciones
para crear ambientes, personajes y situaciones que descritas con el lenguaje natural,
llevan a experimentar diferentes maneras de expresarse, de escribir las palabras y
éstas pueden ser probadas con el MEC. Esta metodología es lo que refuerza el
carácter Constructivista de la presente herramienta pedagógica.
2.1. Análisis Educativo
Según Osorio6, “Con el MEC (Material Educativo Computarizado) se pretende
apoyar el fortalecimiento de las habilidades y capacidades básicas para el desarrollo
de los niños. En particular, se apoya el desarrollo de la autoestima, la creatividad, la
capacidad de razonamiento, y en especial la colaboración. No pretende enseñar
contenidos curriculares”.
Esa es la clave, AnimaCuento no es un texto de estudio, es una herramienta
motivadora para el refuerzo del aprendizaje básico de la escritura, gramática y
ortografía. Es muy importante que los niños a partir de la vivencia de alguno de sus
héroes o personajes creados, pudiendo seguirle los pasos como si estuvieran
compartiendo con él, tengan la posibilidad de desarrollar su autoestima, de fomentar
el trabajo individual, de poder cumplir unas metas específicas, mientras en el
transcurso del juego, va reforzando sus conocimientos con el fin de poder avanzar en
el juego mismo. La clave de este juego es que le permite al niño la posibilidad de
entretenerse, lo que lo motiva fuertemente mientras se educa.
5 DWYER, T. (1974) ‘Heuristic Strategies for using computers to enrich Education. International Journal of Man-Machine Studies’, 6, 137-195 b heurístico: del griego “heurisco” que significa encontrar, es decir que se podría llamar un método “encontrativo”. Esta es la misma raíz de la palabra “Eureka”: lo encontré. 6 OSORIO G., Luz Adriana, “MINGA: Herramienta Colaborativa, Lúdica y Distribuida en el Contexto de Ludomática”. Universidad de los Andes, Facultad de Ingeniería – Departamento de Sistemas y Computación. Santafé de Bogotá, Marzo 30 de 1.998
MISC-03-1-8
15
El AnimaCuento es una herramienta motivadora que además, al trabajar con
oraciones escritas, hará el proceso de refuerzo ortográfico, de redacción y el usuario
se tendrá que esforzar para mejorar e incrementar su vocabulario.
2.2. Fundamento Teórico de la Propuesta Educativa
El aprendizaje humano es un proceso complejo que ha sido descrito parcialmente por
las teorías psicológicas que oscilan entre el Conductismo y el Cognoscitivismo.
El enfoque conductista ha sido tradicionalmente usado en la educación en América
Latina, pero durante las últimas dos décadas se han comenzado a implementar
versiones prácticas de enfoques llamados “más humanos” y orientados por el
Cognoscitivismo.
2.2.1. Enfoque Cognoscitivo
Las teorías cognoscitivas se basan en dejar de ver al niño como un adulto pequeño y
se comienza a valorar la infancia como una etapa única y valiosísima en el desarrollo
del ser humano. En esta época el hombre construye la mayor parte de sus procesos
mentales y su ejercitación le permite desarrollarse y ajustarse a las exigencias de la
vida. Por esto, es necesaria una educación basada en las actividades propias del
niño, como son los juegos y la ejercitación de la imaginación.
Se tienen en cuenta las diferentes etapas de desarrollo por las que pasa el niño y que
regulan su proceso de aprendizaje. Se distinguen en estos estudios pedagogos como
Decroly, Dewey, Claparede, Montessori, Piaget y Freinet. 7
7 NOT, Louis, “Las Pedagogías del Conocimiento”, Fondo de Cultura Económica, Santafé de Bogotá, 1.994
MISC-03-1-8
16
La nueva pedagogía se basa en la estructuración cognoscitiva, pasando de una
educación intelectual guiada desde el exterior, a un proyecto en el cual el alumno se
convierte en el elemento activo de un conjunto de procesos de los que él mismo tiene
que asegurar la dirección. (Montessori). De al misma forma, Claparede considera que
los métodos que no llegan al alumno sino desde fuera, son inadaptados a una buena
educación, pues ésta no puede ser eficaz sino en y por la acción, vinculada a las
necesidades del alumno.
Decroly fundamenta la adquisición de los conocimientos en la exploración, por parte
del alumno, de los intereses adquiridos en el contacto con su medio: observar,
asociar, expresar son las claves del método, así se pueden proponer actividades
acordes a las necesidades que los alumnos manifiestan. Así mismo, Dewey adopta el
principio de “Aprender haciendo” y sustituye la construcción de las nociones con la
acción propia suscitada por las necesidades y los intereses, abandonando la recepción
pasiva de los conocimientos al término de una acción externa.
El maestro está llamado a hacer que los alumnos descubran por sí mismos los
conocimientos a través de ejercicios que para ellos sean juegos.
Otros principios de la auto estructuración del conocimiento predican que:
• Para que el alumno sea el autor de su propio desarrollo, se invita a centrar el
estudio en el niño mismo y no en el adulto.
• El problema se enfoca en las diferencias entre los individuos
• Una predicción de la auto estructuración es el rechazo a los modelos adultos
tradicionalmente propuestos
• Liberar al niño es también volver a concederle la palabra
• Todos los sistemas estudiados en esta corriente repudian la obligación y
restricción como instrumentos metodológicos.
MISC-03-1-8
17
Las pedagogías aquí propuestas caracterizan un método de enseñanza basado en
la libertad, la experiencia y la creatividad. AnimaCuento, como herramienta de
aprendizaje y refuerzo tiene un enfoque cognoscitivo, en cuanto a la asimilación
dinámica de los conocimientos, así como el desarrollo de la motivación y la
creatividad. Lo que hace definitivamente al AnimaCuento una herramienta
Constructivista es que la iniciativa que genera el proceso de aprendizaje surge del
estudiante y que el conocimiento no está completamente predeterminado, sino que en
gran medida se construye desde la exploración y creatividad del niño; el niño deja de
ser Objeto de la enseñanza y se convierte en el Sujeto que aprende, en el
protagonista. La teoría cognoscitiva de Piaget aporta las razones por las cuales es
adecuado enseñar la Gramática después de los 7 años de edad, pues es cuando se
desarrolla la habilidad de comprender las relaciones entre objetos (palabras) y las
operaciones posibles que pueden construirse a partir de ellas.
2.2.1.1. Psicología Evolutiva de Jean Piaget8
Se basa en que el conocimiento no es una copia de la realidad sino una percepción
transformadora de la misma, llegando a lo que se concibe como operación. Pero una
operación nunca se encuentra aislada sino que siempre está vinculada con otras y
hace parte de una estructura total llamada estructura de operaciones. Esta es la base
del conocimiento y el problema central consiste en entender la formación,
elaboración, organización y funcionamiento de tales estructuras.
Piaget habla de estadios o etapas del desarrollo de las estructuras cognoscitivas
relacionadas con las edades de las personas:
• Sensoriomotor: 0 a 2 años, solo hay conciencia de los objetos permanentes.
• Pensamiento simbólico: 2 a 4 años, donde se dan los comienzos del lenguaje,
de la función simbólica y por ende, del pensamiento o representación.
8 GALVIS, Alvaro H. Ingeniería de Software Educativo, Universidad de los Andes, Bogotá. 1.997
MISC-03-1-8
18
• Pensamiento intuitivo: 4 a 7 años. Aunque hay comprensión de ideas y
razonamiento transductivo; en este pensamiento todavía no hay conversiones
que son el criterio psicológico para la presencia de operaciones reversibles.
• Operaciones concretas: 7 a 12 años. Se realizan operaciones sobre objetos:
clasificación y ordenamiento, y las demás operaciones de la lógica de clases y
de relaciones, de la geometría y de la física elemental. Se desarrolla la idea de
número, se realizan operaciones espaciales y temporales. Hay manifestaciones
de reversibilidad y uso de razonamiento inductivo.
• Operaciones formales: 12 años o más. Hay uso de pensamiento hipotético
deductivo y de pensamiento formal abstracto. Se controlan variables, se
verifican enunciados, se tiene sentido de proporcionalidad y se pueden
efectuar operaciones o transformaciones.
Los factores que inciden o intervienen en el aprendizaje o modificación de estructuras
cognoscitivas son la maduración, la experiencia, el equilibrio y la transmisión
social. La maduración depende del desarrollo biológico de la persona, en el caso de
AnimaCuento, se está estableciendo un grupo de edad objetivo que determina el
estado de maduración del usuario al cual va dirigido el producto. El principio de la
experiencia es determinante, pues por eso AnimaCuento busca que el usuario tenga
contacto directo con el producto, juegue muchas veces, y entre más juegue, más
experimentación tendrá y más conocimientos reforzará. El nivel de maduración
determinará las nuevas posibilidades de experimentación y así el usuario será el
determinante de la velocidad de su desarrollo y perfeccionamiento en el tema de
aprendizaje. En la medida en que el usuario cometa errores, buscará el equilibrio
para solucionarlos, y este equilibrio no es más que la corrección y aprendizaje de las
palabras correctamente usadas, sólo así logrará su meta final. La transmisión social
se da en la medida en que el usuario asimila los conocimientos correctos para poder
seguir jugando, ya no se equivoca al escribir las palabras y es un hecho que ha
reforzado sus conocimientos en gramática y ortografía, mientras ha estado jugando a
animar historias.
MISC-03-1-8
19
Es así como la génesis del comportamiento del aprendizaje se explica enfatizando los
mecanismos fundamentalmente intelectuales y endógenos, según Piaget, aunque otros
cognoscitivistas la explican enfatizando los mecanismos de influencia sociocultural
(Vigotski) o socio afectivos (Wallon) 9. Sin discrepar en gran medida, diversas
corrientes de la psicología cognitiva dan origen a la postura Constructivista; que
para el caso de AnimaCuento, parece tener los elementos perfectos que permiten
desarrollar una herramienta motivadora que ejercite y refuerce los conocimientos en
cuestión.
2.2.1.2. Constructivismo
El Constructivismo postula la existencia y prevalencia de procesos activos en la
construcción del conocimiento. Habla de un sujeto cognitivo que rebasa claramente,
en su labor constructiva, lo que le ofrece su entorno.
El individuo, en lo cognitivo y en lo social, no es sólo un producto del ambiente, ni
un simple resultado de su disposición interna, sino una construcción propia que se va
produciendo día a día, como resultado de la interacción entre esos dos factores. De
esta forma, el conocimiento no es una copia fiel de la realidad, sino una construcción
que el ser humano hace con los esquemas que posee y han sido construidos en su
relación con el medio que lo rodea.
Los principios del aprendizaje Constructivista determinan que:
• El aprendizaje es un proceso constructivo interno, autoestructurante.
• El grado de aprendizaje depende del nivel de desarrollo congnitivo.
• Punto de partida de todo aprendizaje son los conocimientos previos.
• El aprendizaje es un proceso de re-construcción de saberes culturales.
9 RIGO, Lemini (1992), AGUILAR 1982, CASTORINA (1993-1994), COLL (1990), HERNANDEZ (1991), RIVIERE 1987
MISC-03-1-8
20
• El aprendizaje implica un proceso de reorganización interna de esquemas.
• El aprendizaje se produce cuando entra en conflicto lo que el alumno ya sabe
con lo que debería saber.
Y definitivamente, el proceso de construcción depende de dos aspectos
fundamentales10:
• De los conocimientos previos o preconceptos sobre la nueva información o
de la actividad o tarea a resolver.
• De la actividad externa o interna que el aprendiz realice al respecto.
La postura Constructivista se alimenta de aportes de diversas corrientes psicológicas
asociadas genéricamente a la psicología cognitiva: el enfoque psicogenético
Piagetiano, la teoría de los esquemas cognitivos, la teoría Ausbeliana de la
asimilación y el aprendizaje significativo, la psicología sociocultural Vigotskiana, así
como algunas teorías instruccionales entre otras.
Todas comparten el principio de la importancia de la actividad constructiva del
alumno en la realización de los aprendizajes escolares.
La convergencia de las teorías cognoscitivas en el constructivismo responde a
problemas como:
El desarrollo psicológico del individuo, la identificación y atención a la diversidad de
intereses, necesidades y motivaciones de los alumnos respecto al proceso de
enseñanza-aprendizaje, el replanteamiento de los contenidos curriculares, el
reconocimiento de la existencia de diversos tipos de aprendizaje escolar, la búsqueda
de alternativas novedosas para la selección, organización y distribución del
conocimiento escolar; la importancia de promover la interacción entre el profesor y
los alumnos, la revalorización del papel del docente como mediador del
conocimiento.
MISC-03-1-8
21
Según Coll11, la concepción Constructivista se organiza en torno a tres ideas
fundamentales12:
• El alumno es el responsable último de su propio proceso de aprendizaje.
• La actividad mental constructiva del alumno se aplica a contenidos con algún
grado de elaboración, así el alumno no tiene que construir todo.
• La función del docente es conectar los procesos de construcción del alumno
con el saber colectivo culturalmente organizado. Debe orientar y guiar la
actividad constructiva.
En el caso de AnimaCuento, el reconocimiento es claramente la construcción de una
historia completa que el usuario ha creado y la puede ver animada. Esto es
específicamente el componente motivador, pues si el usuario es capaz de escribir su
historia de manera adecuada, con correcta ortografía y gramática, tendrá como
recompensa la animación de su imaginación.
10 DIAZ Barriga (2002) 11 COLL 1990 12 DIAZ Barriga, 2002
MISC-03-1-8
22
3. ANTECEDENTES DEL PROCESAMIENTO DE LENGUAJES
3.1. Procesamiento del lenguaje natural
El procesamiento del lenguaje natural, trata de hacer al computador capaz de entender
órdenes escritas en lenguaje humano, abriendo una puerta a los diálogos directos
entre el hombre y la computadora, lo que facilitaría labores como la de escribir en un
procesador de texto, trabajar en las hojas de cálculo, jugar y hasta programar en
lenguaje de computador. La idea es que una vez el computador entienda el lenguaje,
responda iniciando la interacción con el quehacer diario. La tarea de que el
computador entienda el lenguaje natural humano escrito es una tarea posible; pero no
en toda su extensión y magnitud debido a la complejidad que ésta encierra, aunque se
puede hacer un prototipo inicial fácil de aplicar en experiencias como la que se va a
desarrollar en este caso.
Una de las principales dificultades que aparecen en el desarrollo de este tipo de
tareas, es la misma que se presenta en un traductor de un lenguaje natural humano a
otro; los existentes son una aproximación a lo que puede llegar a ser un traductor
humano, pero no lo pueden reemplazar.
De manera general, un procesador del lenguaje natural no se preocupa por la forma en
que una oración es introducida al computador, su trabajo está en extraer la
información a partir de esas oraciones. En este momento, la concentración está
orientada a que se entienda el lenguaje que se le va a introducir al programa a través
de una terminal de computador en forma escrita.
Para este caso, la idea es desarrollar un sistema clasificador del lenguaje natural del
idioma español que analizará las palabras de una oración con el fin de asignar su
MISC-03-1-8
23
correspondiente clasificación sintáctica, y establecerá si está escrita en forma
correcta.
3.2. Definición de categorías Gramaticales13
Algunas definiciones de la gramática normativa de la clasificación de palabras son:
• Artículo: Es una parte invariable de la oración que se antepone al sustantivo o
nombre, o al que haga las veces de éste, con el fin de limitar la extensión de su
significado.
El artículo puede ser determinado o indeterminado. El primero precede a
sustantivos tomados en sentido concreto o determinado (el, la, lo, los, las).
El artículo indeterminado es el que se junta a sustantivos tomados en sentido
vago o indeterminado (un, una, unos, unas).
• Contracción: Es una modificación al artículo determinado “el”, cuando va
precedido de “a” o “de”, en cuyos casos la contracción resulta en “al” y “del”.
• Sustantivo o Nombre : Es toda palabra que sirve para designar personas,
animales, cosas y lugares. Por su extensión se divide en común y propio,
entendiendo por extens ión el número el número de individuos que abraza.
• Sustantivo común: Es el que se le da a un ser determinado para identificarlo
y diferenciarlo de los mismos de su especie.
También por su extensión el sustantivo común se subdivide en colectivo,
individual, partitivo y proporcional.
13 EDELVIVES, F.T.D.; “Gramática Española”, Librería Voluntad. Santafé de Bogotá, 1.958
MISC-03-1-8
24
• Sustantivo común: Conviene a todos los seres de una misma especie o clase.
Por su composición, los sustantivos se dividen en simple o compuesto.
Por su origen los sustantivos son primitivos o derivados (nominales,
adjetivales, verbales) y los nominales pueden ser aumentativos, diminutivos,
despectivos, gentilicios y patronímicos.
• Adjetivo: Es la parte variable de la oración que modifica al sustantivo
calificándolo o determinándolo.
El adjetivo calificativo es el que designa alguna cualidad del sustantivo y se
divide según el origen, composición, terminación y apreciación.
Para este análisis sólo se clasificarán los adjetivos calificativos como tales.
El adjetivo determinativo es el que precisa la extensión de los sustantivos,
limitando o concretando su significación general (Eje: este, algún, segundo,
etc.) Estos pueden ser posesivos, demostrativos, numerales e indefinidos.
• Adjetivos posesivos: Determinan la significación del nombre, denotando a la
vez posesión o pertenencia. (mío, tuyo, su, etc.).
• Adjetivos demostrativos: Determinan la significación del sustantivo
mediante una relación de lugar (este, ese, aquel, etc.)
• Adjetivos numerales: Determinan la significación del sustantivo añadiéndole
la idea de número u orden. (cien, segundo, etc.) Estos se clasifican en
cardinales, ordinales, proporcionales y partitivos.
• Adjetivos indefinidos : Limitan la significación del sustantivo de un modo
vago o general (Algunos, pocos, cierto, mucho, etc.)
MISC-03-1-8
25
• Pronombres: Es la parte variable de la oración que designa una persona o
cosa sin nombrarla, y denota a la vez las personas gramaticales. Los
pronombres se dividen en personales, posesivos, correlativos e indefinidos.
Los pronombres personales son los que designan las personas gramaticales,
poniéndose en lugar de nombres de personas o cosas personificadas. Las
personas gramaticales son las que intervienen en la oración y no pueden ser
más de tres: la que habla, llamada primera, aquella a quien se habla, llamada
segunda; y aquella de quien se habla, llamada tercera.
Todos los sustantivos comunes no propios denotan tercera persona.
Pronombres indefinidos designan de un modo vago o general las personas o
cosas a que se refieren. (alguien, nadie, algo, nada, cualquiera, etc.).
• Verbo : Es la parte variable de la oración que expresa esencia, estado, acción o
pasión, casi siempre con expresión de tiempo y de personas. Los verbos, por
su significancia, se dividen en copulativos y predicativos.
Los verbos copulativos reducen la significación al lazo de unión entre el
predicado nominal y su sujeto (Verbo ser)
Los verbos predicativos envuelven la idea de un predicado, es decir, de
cualidad y atributo, y expresa siempre un estado, acción o pasión (dormir,
escribir, amar, etc.)
• Sujeto: Es la palabra u oración que expresa la idea o pensamiento de quien se
afirma o niega lo que el verbo expresa.
• Predicado : Es aquello que se dice del sujeto en la oración e incluye
necesariamente un verbo.
MISC-03-1-8
26
• Modos del verbo
• Conjugación: Es la serie ordenada de las distintas formas que puede
tomar el verbo cambiando las terminaciones.
Los accidentes gramaticales del verbo expresados en la conjugación son:
voces, modos, tiempos, números y personas.
Voz es el accidente que denota si el sujeto acciona sobre el verbo o es el
verbo el que acciona sobre el sujeto. Voz pasiva (Yo soy amado) y voz
activa (yo amo).
• Modos: Son las distintas maneras generales de expresar la significación
del verbo. En castellano hay cinco modos: infinitivo, indicativo, potencial,
subjuntivo e imperativo.
El modo indicativo expresa de una manera absoluta e independiente un
hecho real y objetivo.
El modo potencial indica el hecho no como real, sino como posible.
El modo imperativo enuncia el hecho como un mandato o ruego.
El modo infinitivo comprende los nombres verbales que son el infinitivo
(acción independiente de quién la realice), el participio (Como un
adjetivo) y el gerundio (como un adverbio).
El modo subjuntivo expresa el hecho como subordinado a otro verbo que
expresa deseo, temor, voluntad.
• Tiempos : Son las distintas formas del verbo que denotan la época o
momento en que sucede o se realiza. Se dividen en simples (Cuando usan
una sola palabra: yo quiero) y compuestos (Cuando usan dos o más
palabras: he jugado). Tanto los tiempos simples como los compuestos
MISC-03-1-8
27
denotan lo expresado por el verbo, como presente, pasado o futuro con
relación al momento en que se habla.
Persona, en el verbo es el accidente que especifica el sujeto de la acción o
estado del verbo que expresa. Las personas en el verbo son las mismas de
que se trata en el pronombre personal, denominadas primera, segunda y
tercera.
Número en el verbo, es el accidente que sirve para indicar la unidad o
pluralidad del sujeto (singular o plural).
Por su conjugación, los verbos se dividen en regulares, irregulares,
defectivos, pronominales y unipersonales.
Los verbos regulares son los que en todos los tiempos y personas
conservan sus raíces y toman las terminaciones de la conjugación a la que
pertenecen. (Ejemplo: amar, temer, partir).
Verbos irregulares son los que se conjugan alterando sus raíces, las
terminaciones propias de la terminación regular a que pertenecen, o
ambas. (Ejemplo: jugar, traer, tañer, conducir).
Verbos defectivos, carecen de algún tiempo o persona (soler, abolir,
concernir).
Los verbos pronominales se conjugan con dos pronombres personales,
empleados uno como sujeto y el otro como complemento, o también con
un sustantivo y su correspondiente pronombre de tercera persona como: yo
me arrepiento, tu te quejas, Pedro se duele.
Verbos unipersonales son los que sólo se usan en el infinitivo y en la
tercera persona del singular de todos los tiempos: alborear, nevar, llover.
MISC-03-1-8
28
Existen otros verbos que son impersonales y se usan sin sujeto
determinado: cuentan, se dice, importa, conviene, haber, etc.
Los verbos auxiliares son HABER y SER por ayudar a la conjugación de
los demás verbos.
Hay 24 verbos de irregularidad propia o especial que son: dar, andar, estar,
caber, caer, haber hacer, poder, poner, querer, saber, ser, tener, traer, valer,
ver, yacer, asir, decir, ir, oír, salir, venir y erguir.
• El Adverbio: Es una parte invariable de la oración que sirve para calificar o
determinar la significación del verbo o la del adjetivo, y a veces la de otro
adverbio. Así, los adverbios son como los adjetivos del verbo y de toda otra
palabra que tenga sentido calificativo o atributivo.
Los adverbios son de lugar, tiempo, modo, orden, cantidad, afirmación,
negación y duda.
• Preposición: Son partículas llamadas impropiamente parte de la oración, y no
tienen valor de por sí en el habla; sirven para enlazar dos palabras e indicar la
relación que hay entre ellas. Las propias son: a, ante, bajo, cabe, con, contra,
de, desde, en, entre, hacia, hasta, para, por, según, sin, so, sobre, tras.
Las preposiciones impropias son: ad, des, ex, in, inter, infra, per, sub, super,
trans.
• La Conjunción: Es la parte invariable de la oración que sirve para unir dos
oraciones entre sí, o dos palabras de la misma naturaleza, expresando, a la
vez, la relación que entre ellas existe. Eje: No pude salir porque estaba
enfermo, Antonio y Pedro van a estudiar o a jugar.
Una expresión conjuntiva es la locución que tiene el valor o significado de
conjunción. Eje: Con objeto de, a fin de que, no obstante.
MISC-03-1-8
29
• Interjección: Es toda voz que expresa repentina e impremeditadamente algún
efecto vehemente del alma. Generalmente forma por sí sola una oración
completa. Eje: ¡Hola!
3.3. Gramática
La gramática de un lenguaje se construye con el interés de establecer el rango de
secuencias correctas, seleccionando las oraciones que se identifican como
problemáticas o entendibles.
3.3.1. Gramáticas libres de Contexto
Una oración se puede descomponer en sujeto y predicado, y allí encontrar si el sujeto
está compuesto por sustantivos, adjetivos o artículos. Finalmente, no importa cuántas
clasificaciones hay dentro del sujeto, simplemente lo es y el resto es predicado.
Chomsky, en 1956 comenzó con el trabajo formal en lenguajes. Las gramáticas libres
del contexto son muy importantes por dos razones: El formalismo es lo
suficientemente poderoso para poder construir bastantes formas de los lenguajes
naturales, y lo suficientemente restringidos para construir parsers (Analizadores
gramaticales) eficientes para hacer su análisis. La Gramática Normativa es totalmente
libre de contexto y esto facilita la programación de su análisis. Adicionalmente, la
Gramática Normativa es la que se enseña en los colegios por no requerir
conocimientos adicionales por parte del aprendiz.
3.3.2. Gramáticas dependientes de Contexto
Son gramáticas que definen sus clasificaciones de acuerdo con el sentido o
significado que se le quiera dar a la oración. Dependen de la intención, de la cultura,
MISC-03-1-8
30
inclusive de los dialectos, respetando la intencionalidad, ortografía y pronunciación
de quien habla o escribe.
3.3.3. Gramática Estructurada por Frases 14
Dentro de las gramáticas Regulares o Gramáticas de Lenguaje Natural, encontramos
las gramáticas estructuradas por frases, teniendo cada una de estas gramáticas entre
sus principales componentes:
• Un Símbolo Inicial, siendo el identificador de la gramática.
• Un Conjunto Finito de Elementos No Terminales. Cada uno de estos
Elementos No Terminales tiene un elemento que lo define y que es mas
específico en su definición.
• Un Conjunto Finito de Elementos Terminales, siendo los elemento finales de
la estructura gramatical y son los mas específicos de la misma.
• Un conjunto Finito de Reglas de Escritura, las que determinarán las
condiciones de una gramática.
Como ejemplo podremos tener:
<frase 3ª persona singular> => <sujeto><verbo><complemento><punto>, donde
<frase 3ª persona singular> es un Elemento Inicial, <sujeto>, <verbo>,
<complemento> y <punto> son Elementos No Terminales.
A su vez, <sujeto> => <artículo definido><sustantivo>
<artículo definido> => la, siendo este un Elemento Terminal.
Una regla que utilizaremos en este ejemplo es que los nombres de los Elementos
Iniciales y los Elementos No Terminales estarán dentro de signos de mayor y menor,
mientras que los Elementos Terminales no estarán dentro de ningún signo.
Construyendo la definición completa de esta gramática tenemos:
14 BROOKSHEAR, J. Glenn. Teoría de la Computación: Lenguajes formales, autómatas y complejidad. ADDISON-WESLEY IBERO AMERICANA, 1993
MISC-03-1-8
31
<frase 3ª persona singular> => <sujeto><verbo><complemento><punto>
<sujeto> => <artículo definido><sustantivo>
<artículo definido> => la
<sustantivo> => casa
<sustantivo> => bola
<verbo> => <verbo tercera persona del singular>
<verbo tercera persona del singular> => es
<complemento> => <adjetivo>
<adjetivo> => roja
<punto> => .
Si escribimos cualquiera de estas dos frases: “La casa es roja.” y “la bola es roja.”,
según su composición estará bien escrita.
3.4. Métodos de Parseo (Análisis Gramatical)
3.4.1.Top-down
Comienza por las categorías sintácticas, y poco a poco va llegando a lo particular
hasta que convierte la definición en la palabra misma.
3.4.2. Bottom-up
Se comienza por las palabras individuales y se reemplazan por sus categorías
sintácticas, con las reglas de escritura se reemplaza el análisis actual por uno del
mismo tamaño o uno más pequeño.
MISC-03-1-8
32
3.4.3. Mezcla
La ventaja de los top-down es que nunca consideran categorías inexistentes en
oraciones aceptables. Su desventaja está en que el Analizador Gramatical trabaja
desde la categoría y busca si la palabra pertenece a la categoría. Así mismo, el uso de
las reglas de reescritura puede tomar bastante tiempo descomponiendo los
constituyentes sin fijarse en las categorías que representan las palabras en análisis.
Los métodos bottom-up deben considerar todos los sentidos de cada palabra y
construir estructuras que nunca llegarán a ser legales dentro de una gramática
establecida.
De cualquier modo, usar una de las técnicas por separado llevaría a no usar la
información en el momento adecuado. Los métodos de mezcla tratan de tomar las
ventajas de los bottom-up y los Top-down y descartar las desventajas para hacer un
proceso más eficiente. Ejemplo de esto es el método de Earley15, dado por la
necesidad de sintetizar y coordinar el conocimiento proveniente de las áreas de la
lingüística, las matemáticas y la informática16.
En este trabajo se ha optado por separar, en diferentes herramientas, el análisis
morfológico del análisis sintáctico, integrando posteriormente ambas, de modo que
los resultados obtenidos por una primera fase de análisis, puedan ser usados en la
siguiente.
15 HERNANDEZ, Carlos J. GACC. Un generador de parsers para gramáticas atribuidas basado en el algoritmo de Earley, Universidad de los Andes, Bogotá, 1.995 16 http://coleweb.dc.fi.udc.es/cole/library/abstracts/Cab98a.html. Integración de herramientas para el análisis automático de los lenguajes naturales
MISC-03-1-8
33
4. ESTADO DEL ARTE DE ANALIZADORES
4.1. Analizadores Léxicos
Un analizador léxico es un Autómata finito que reconoce los componentes léxicos de
una cadena de símbolos del alfabeto. Analiza los símbolos que se pueden usar en el
lenguaje.
4.1.1. FLEX17
Realiza todos los posibles análisis morfológicos de cada palabra de un texto en
español, partiendo de su lexema y estudiando sus morfemas. Esto hace que tenga un
reducido tamaño y alta eficiencia. Como los analizadores generados por Flex son
deterministas, ha sido necesario definir un mecanismo para que los reconocedores
generados tengan un comportamiento no determinista. FLEX trabaja con ICE
integrando un entorno de analizadores no deterministas incrementales que utilizan
elementos gráficos de interacción con menú desplegable, apoyándose en la
herramienta AIDA de Ilog para desarrollar la aplicación ICEeditor.
Para implementar el editor de componentes léxicos es preciso utilizar editores de tipo
textedit ya que es el único tipo que permite la utilización de diferentes combinaciones
de fuentes y colores dentro del mismo texto. Esta es una característica muy deseable
en ICEeditor, puesto que permite al usuario identificar fácilmente los cambios
introducidos en los componentes léxicos desde el último análisis realizado.
17 Dirección http://coleweb.dc.fi.udc.es/cole/library/html/Alo94/node8.html
MISC-03-1-8
34
La restricción a la que llevan los analizadores de FLEX por ser deterministas pueden
pasar por alto alguna posible solución, requiriéndose otra herramienta como
complemento, convirtiendo el ahorro de memoria y eficiencia en otros gastos.
4.1.2. LEX
Es una herramienta particular que ha sido ampliamente usada para especificar
analizadores léxicos para una variedad de lenguajes. Se hace referencia a la
herramienta como el compilador Lex, y a su especificación de entrada como el
lenguaje Lex. La discusión de una herramienta existente permite mostrar cómo la
especificación de patrones usando expresiones regulares puede estar combinada con
acciones, como por ejemplo, crear entradas en una tabla de símbolos, expandir
macros, o incluso generar documentación automáticamente.
El programa Lex está diseñado para ser utilizado junto con el programa Yacc para el
análisis sintáctico.
Primero, se prepara una especificación de un analizador léxico creando un programa
contenido, por ejemplo en el fichero prog.l, en lenguaje Lex. Entonces, prog.l se pasa
a través del compilador Lex para producir un programa en C, que por defecto se
denomina lex.yy.c en el sistema operativo UNIX. Éste consiste en una representación
tabular de un diagrama de transición construido a partir de las expresiones regulares
de prog.l, junto con una rutina estándar que usa la tabla de reconocimiento de
lexemas. Las acciones asociadas con expresiones regulares en prog.l son trozos de
código C, y son transcritas directamente a lex.yy.c. Finalmente, lex.yy.c se pasa a
través del compilador C para producir un programa objeto, que por defecto se llama
a.out, el cual es el analizador léxico que transforma una entrada en una secuencia de
tokens.
MISC-03-1-8
35
4.1.3. Analizador léxico del compilador de Pascal18
Su misión es comprobar que se han usado sólo tokens (símbolos) correctos. La
entrada es un programa fuente. Sobre este programa fuente realiza las siguientes
operaciones:
• Aísla los tokens que componen el programa fuente.
• Identifica qué tipo de tokens son (identificadores, constante, instrucciones,
etc).
• Almacena los tokens necesarios (identificadores, constantes) en la tabla de
símbolos. Esta tabla se usará en el resto de fases de análisis y traducción.
Dado el siguiente programa fuente, se obtendría el siguiente análisis:
Programa fuente: A := b + c * 3.74;
Análisis léxico: id[1], asignación, id[2], suma, id[3], producto, cte[1],
delimitador.
a la vez que se generaba la siguiente tabla de símbolos:
Variables:
Referencia Símbolo
1 a
2 b
3 c
Constantes
Referencia Símbolo
1 3.74
18 - A. Prieto; A. Lloris, J.C. Torres, "Introducción a la Informática", McGraw-Hill, Madrid, 1.995
MISC-03-1-8
36
Cuando el analizador léxico encuentra algún carácter que no es un token, produce un
error léxico. Suelen ser similares a: invalid character, o unexpected character.
4.2. Analizadores Sintácticos
Un analizador sintáctico es un Autómata de pila que reconoce la estructura de una
cadena de componentes léxicos. Revisa las construcciones válidas de símbolos.
4.2.1. ICE19 (Incremental Context-Free Environment): Ambiente incremental libre
de contexto. LE-LISP
A partir de una gramática con reglas expresadas en el mismo formalismo que el
utilizado por Yacc se genera un analizador sintáctico no determinista e incremental
para dicha gramática. La utilización de un analizador sintáctico escrito en LE-LISP
proporciona una serie de ventajas, como son:
Disponibilidad de un entorno interactivo para que el usuario pueda entablar una mejor
comunicación con el analizador. Esto hace necesaria la existencia de la parte
interpretativa de ICE
19 http://coleweb.dc.fi.udc.es/cole/library/html/Alo94/node8.html
MISC-03-1-8
37
4.2.2. Lekta: Traducción automática basada en el formalismo LFG con entrada y
salida por voz20 21.
Este sistema fue iImplementado en C.
Empleará una gramática estocástica en lugar de la de estados finitos, que tiene la
ventaja de poderse generar de forma automática.
Lekta es una herramienta de celdas para el desarrollo de prototipos de una máquina
traductora (MT) entre dos idiomas. Lekta sigue un acercamiento de transferencia al
MT, y está inspirado en la teoría clásica de LFG . La herramienta ha sido
implementada en C y actualmente corre bajo Sun Solaris 2.x.
El modelo lingüístico que se ha adoptado está inspirado en JULIETTA22, un prototipo
de Traducción Automática basado en la Gramática Léxico-Funcional (LFG)23. En
primer lugar, se obtiene la estructura de constituyentes (denominada estructura-c en
LFG), por medio de un analizador para gramáticas libres de contexto. El segundo
nivel de representación consiste en una matriz de pares atributo-valor (denominada
estructura-f en LFG), obtenida por medio de la resolución de ecuaciones funcionales
asociadas con cada nodo de la gramática. Dicha operación consiste en la unificación
de rasgos, común a todas las gramáticas basadas en unificación 24.
El sistema que están desarrollando actualmente se distingue a su vez de JULIETTA
en varios aspectos: está implementado en C y no en Prolog,
20 J. G. de Amores Carredano UNIVERSIDAD DE SEVILLA J. F. Quesada Moreno CENTRO INFORMÁTICO CIENTÍFICO DE ANDALUCÍA D. Tapias Merino TELEFÓNICA INVESTIGACIÓN Y DESARROLLO. 21 La dirección http://www.fing.us.es/lekta/lekta_manual.html 22 J. G. Amores: A Lexical-Functional Grammar-Based Machine Translation System for Medical Abstracts. Tesis Doctoral. Universidad de Sevilla (1992). 23 J. Bresnan: The Mental Representation of Grammatical Relations. Cambridge, Massachussets: MIT Press (ed. 1982). 24 S. Shieber: An Introduction to Unification-Based Approaches to Grammar. Stanford, California: Center for the Study of Language and Information, CSLI Lecture Notes Series 4 (1986).
MISC-03-1-8
38
Cuestiones de eficiencia han demostrado la conveniencia de abordar cada parte del
análisis mediante técnicas diferentes, y así el análisis sintáctico se suele implementar
con alguno de los modelos de análisis sintáctico (parsing) desarrollados para
gramáticas libres de contexto,25 mientras que para el análisis semántico se recurre a la
unificación (aunque en general la unificación permite el tratamiento de cualquier
información, no sólo semántica, sino sintáctica, pragmática, o de cualquier otro tipo).
En lo que respecta a parsing el principal problema que aparece es la explosión
combinatoria. Es decir, la necesaria ambigüedad que debe permitir la especificación
gramatical de un lenguaje natural que suele generar problemas de complejidad
exponencial 26.
Se puede hablar de algoritmos que se han desarrollado específicamente para el
análisis de lenguajes naturales, entre los que se encuentran los siguientes:
El trabajo de Earley27 Propone la mezcla de parseos Top-Down y Bottom-Up para el
análisis de gramáticas libres de contexto.
El formalismo DCG (Definite Clause Grammar) para Prolog 28, bajo el cual subyace
la idea consistente en expresar una gramática como un conjunto de cláusulas de la
lógica de primer orden. En concreto, como cláusulas de Horn, de forma que el
analizador se modela como un demostrador de teoremas, cuyos axiomas son la
gramática y donde el teorema que se debe demostrar es la expresión lógica de la
entrada que el parser debe analizar. Esta es la técnica usada en el sistema JULIETTA
.
25 A. V. AHO y J. D. Ullmann: The Theory of Parsing, Translation, and Compiling. V. I: Parsing. Englewood Cliffs, NJ: Prentice-Hall (1972). 26 G. E. BARTON, R. C. Berwick y E. S. Ristad: Computational Complexity and Natural Language. Cambridge, Massachussets: MIT Press (1987). 27 EARLEY: ‘An efficient context -free parsing algorithm’. Communications of the ACM, 14, pp. 453-460. (También en Grosz, Sparck Jones y Webber, 1986:25-33) (1970). 28 F. C. N. PEREIRA y D. H. D. Warren: Definite Clause Grammars for language analysis a survey of the formalism and a comparison with augmented transition networks. Artificial Intelligence, 13:321-278. (También en Grosz, Sparck Jones y Webber 1986, pp. 101-124) (1980).
MISC-03-1-8
39
La idea de "tabla de subcadenas bien formadas" o charts29, que pretende,
fundamentalmente, resolver los problemas de redundancia en el análisis de
subestructuras, que provocan los algoritmos descendentes como DCG.
El estudio de estas técnicas los ha convencido de la utilidad que supone un análisis
mixto (ascendente y descendente de forma simultánea, en la línea que persigue el
algoritmo basado en charts).
4.2.3. O2RTED: El Analizador de Lekta
O2RTED puede definirse como un modelo de análisis sintáctico para gramáticas
libres de contexto. Los objetivos fundamentales que persigue son los siguientes:
1. Definir un lenguaje para la especificación de gramáticas, con una gran
potencia expresiva, que permita al lingüista modelizar fenómenos complejos
de una forma natural.
2. Lograr una gran eficiencia, de forma que se permita su utilización en tiempo
real.
3. Permitir la implementación de múltiples estrategias de análisis, para lo cual es
necesario contar con un modelo flexible donde las estrategias sean
independientes del módulo de control del análisis.
Para lograr estos objetivos O2RTED hace uso de las siguientes técnicas: La
orientación a objetos,
La dirección por eventos, una modelización heurística de la gramática, un modelo
especial de organización de la memoria diseñado específicamente para mejorar los
procesos de computación simbólica que aparecen en este ámbito.
29 M. KAY: Algorithm Schemata and Data Structures in Syntactic Processing. En Grosz, Sparck Jones y Webber, 1986. pp. 35-70 (1980).
MISC-03-1-8
40
O2RTED no es un algoritmo, o una implementación, sino un conjunto de ideas que
intentan modelizar el problema del análisis sintáctico en lenguajes naturales,
asumiendo como objetivo fundamental una gran eficiencia en lo que se refiere a
tiempo invertido en el análisis.
El uso de C, debido a su gran versatilidad, permite la definición de prácticamente
cualquier modelo formal, aumentando tanto como se quiera la potencia expresiva del
modelo mediante la incorporación de nuevos operadores y estructuras, permitiendo
una gran flexibilidad de forma que el usuario pueda, incluso, reconfigurar el modelo
de especificación.
Este es un sistema muy completo con una gran restricción: parece que los derechos
del programa son privados; pues está siendo desarrollado para la banca europea.
4.2.4. LOAD-AND-GO en la Máquina de Pila
La gramática básica es muy sencilla:
Programa --> Instruccion eoln Programa | fin
Instruccion --> insertar Literal
| valord Variable
| valori Variable
| desapilar
| copiar
| :=
| + | - | * | / | %
| = | <> | < | >
| <= | >=
| visualizar
| ir-a Etiqueta
| si-cierto-ir-a Etiqueta
MISC-03-1-8
41
| si-falso-ir-a Etiqueta
| etiqueta Etiqueta
| l
Este esquema sintáctico tan sencillo hace la parte del análisis sintáctico trivial: se
reduce a examinar las instrucciones, comprobar los posibles errores existentes en el
archivo (ver Manejo de errores sintácticos), e introducirlas en memoria. Después la
parte de go (el programa que ejecutará el código intermedio) será ya muy sencilla.
4.2.5. Analizador sintáctico en Pascal30
El analizador sintáctico es el que actúa en segundo lugar en la fase de análisis. Su
misión es comprobar que las construcciones (combinaciones) de tokens son correctas.
La entrada es la salida del analizador léxico. Para comprobar que las construcciones
son correctas, el analizador se apoya en una serie de reglas de reescritura.
Las reglas de reescritura se pueden especificar usando diferentes notaciones. Se
describirá una de las más usadas: la notación BNF (Backus-Naur-Form). En esta se
distinguen dos tipos de elementos o símbolos:
• Terminales: corresponden a tokens o pruebas del analizador léxico.
• No terminales: corresponden a nombres de construcciones válidas.
Estos símbolos se pueden combinar usando una serie de operadores:
• reescritura (::=): para definir una regla.
• selección (|): para poder optar entre dos o más símbolos.
• concatenación ( ): para unir dos o más símbolos.
• repetición ({,}): puede aparecer el símbolo cero o más veces.
30 - L. Goldschlager, A. Lister, "Introducción Moderna a la Ciencia de la Computación", Prentice-Hall, México, 1.986
MISC-03-1-8
42
Además de esto hace falta poder distinguir entre los símbolos terminales y los no
terminales. Hay varias notaciones. Usaremos la siguiente: se escriben en minúsculas
los no terminales y en mayúsculas los terminales. Si se necesitase utilizar algún
carácter especial o dígito, estos se encerrarán entre comillas simples. Así, podemos
definir las siguientes reglas para especificar como puede ser una asignación válida en
PASCAL:
asignación ::= IDENTIFICADOR ë:=ë expresión DELIMITADOR
suma ::= expresión ë+í expresión
resta ::= expresión ë-í expresión
producto ::= expresión ë*í expresión
división ::= expresión ë/í expresión
expresión ::= (suma | resta | multip. | división | IDENTIFICADOR |
CONSTANTE )
Para comprobar si una determinada entrada es correcta, se genera su análisis
sintáctico usando un árbol de expansión, donde se van colocando los símbolos
terminales y no terminales que vayamos encontrando. Si podemos construir el árbol,
usando expansiones de reglas correctas, es que la entrada es sintácticamente correcta.
Por ejemplo, la siguiente entrada produciría el siguiente árbol de expansión:
a := b + c * 3.74;
id[1], asignación, id[2], suma, id[3],
producto, cte[1], delimitador
Figura 1: Analizador Sintáctico en Pascal - Expresión y su representación en un árbol de
expansión.
MISC-03-1-8
43
Como se puede observar, todas las expansiones utilizadas son reglas correctas de la
gramática de nuestro lenguaje, y por tanto la entrada es sintácticamente correcta.
Como ejemplo contrario, se tiene la siguiente entrada con su correspondiente árbol de
expansión:
a + b := c * 3.74;
id[1], suma, id[2], asignación, id[3],
producto, cte[1], delimitador
Figura 2: Analizador Sintáctico en Pascal - Expresión y su representación en un árbol de
expansión.
Como se puede observar no hay ninguna regla que corresponda a la primera
expansión, y por tanto la entrada no es sintácticamente correcta. Cuando el analizador
sintáctico encuentra alguna estructura que no es correcta, produce un error sintáctico.
Suelen ser similares a: syntax error, o illegal expresion.
4.3. Analizadores Semánticos
Hace el estudio del significado de los signos linguísticos y de sus combinaciones,
desde un punto de vista sincrónico o diacrónico en las construcciones textuales.
Con la Máquina de Pila, el único control de semántico que se realiza es,
considerando que los <etiqueta> y los <variable> son indistinguibles en el análisis
léxico, se devuelve un único terminal, <Ident> y se hará que la primera ocurrencia de
MISC-03-1-8
44
cada identificador inserte su clase apropiada en la tabla de símbolos: un acceso
posterior a él deberá respetar esa clase.
Además, la parte semántica es la que determina la posición de memoria que se asigne
a cada variable y la dirección representada por cada etiqueta (gestionado todo a través
de la tabla de símbolos).
4.3.1. Analizador semántico en Pascal31
Básicamente, lo que este analizador hace es comprobar que las expresiones están bien
formadas, es decir, que las variables y constantes sean de tipos compatibles. De esta
forma, habrá operaciones que no se puedan realizar con distintos tipos de datos,
puesto que la representación interna de los mismos puede ser muy diferente. Por
ejemplo, desde este punto de vista no se pueden sumar caracteres y reales.
Desde el punto de vista semántico, una de las siguientes expresiones es correcta y la
otra incorrecta:
• Correcta
a := 3.47 / 7.54
• Incorrecta
a := 3.47 / ëcí;
Los lenguajes suelen poseer medios para poder convertir, a la hora de hacer
operaciones, algunos tipos en otros. Es lo que se conoce como conversión de tipos.
Esta puede ser implícita (por ejemplo en algunas operaciones aritméticas) o bien
explícita. Cuando el analizador semántico encuentra alguna estructura que no tiene
significado, produce un error semántico. Suelen ser similares a: type mismatch, o
incompatible types for operation.
31 - A. Prieto; A. Lloris, J.C. Torres, "Introducción a la Informática", McGraw-Hill, Madrid, 1.995
MISC-03-1-8
45
El análisis semántico no se hará en esta fase del proyecto ANIMACUENTO, sino en
la implementación gráfica del mismo. De todas formas los analizadores semánticos
encontrados no concuerdan con las necesidades de ANIMACUENTO, al igual que
sucede con el Análisis Contextual o Función Pragmática, el cual utiliza la forma
lógica o estruc tura semántica de la fase anterior para desarrollar la interpretación
final de la oración, en función de las circunstancias de contexto.
4.4. Editores
4.4.1. ICEeditor32
Tiene un editor de componentes léxicos que permite editar interactivamente la
representación textual de los componentes léxicos.
En el análisis incremental, los cambios introducidos en los componentes léxicos son
pasados al analizador y la estructura generada por éste es tenida en cuenta por el
ICEeditor para restablecer el enlace entre el texto y los componentes léxicos.
Dentro de la librería de objetos que AÍDA proporciona, se encuentran varias clases
diferentes de editores.
4.4.1.1. Editores de líneas, objetos de tipo {lineedit}, que tan sólo operan sobre
textos de una sóla línea. No trabajan bien con fuentes proporcionales.
Editores de cadenas de caracteres, cuyo tipo es {stringedit}. Se caracterizan por
ocupar poco espacio en memoria y por permitir el filtrado de caracteres. Son
adecuados para introducir nombres de ficheros y tareas similares, contando con la
ventaja sobre los editores de líneas de funcionar correctamente con fuentes
proporcionales.
32 http://coleweb.dc.fi.udc.es/cole/library/html/Alo94/node8.html
MISC-03-1-8
46
4.4.1.2. Editores de texto con formato. El tipo de estos objetos es {tokenedit},
aunque la función de creación se denomina formatedit. Son un subtipo de {stringedit}
que permite controlar que los caracteres introducidos cumplen ciertas características,
como el que sean alfabéticos o numéricos, que el carácter que ocupa una determinada
posición pertenece a un determinado conjunto de caracteres, etc.
4.4.1.3. Editores de texto simple, pertenecientes a la clase {medite}. Mediante ellos
se puede obtener un editor de texto básico con operaciones de edición al estilo del
conocido editor Emacs. Como aclaración, señalar que la clase {lineedit} es una
subclase de {medite}, por lo cual un editor de líneas tiene la misma potencia que un
medite pero restringida a la edición de una única línea.
4.4.1.4. Editores de texto mejorados, del tipo textedit. Este tipo de editores se
incluyen en lo que se denomina extensiones de AIDA. Los editores textedit permiten
editar texto adornado, esto es, texto en diferentes colores y fuentes entre el cual se
puede insertar cualquier tipo de aplicación AIDA.
4.5. Compiladores
4.5.1. ALE33
Se trata de un compilador de gramáticas, no un intérprete. ALE (Attribute Logic
Engine) (Carpenter 1993; Carpenter & Penn 1997) constituye la implementación más
importante del formalismo basado en restricciones más extendido: las estructuras de
rasgos tipificadas. ALE es un sistema de representación y análisis léxico que retoma
la herencia de PATR-II, con el que guarda muchas similitudes y lo mejora en muchos
aspectos.
33 ISSN: 1139-8736 Depósito Legal: B-35510-2000
MISC-03-1-8
47
Las CFGs tienen el problema de la sobregeneración, además de la arbitrariedad. Este
problema sí es abordado por ALE y en general por el formalismo gramatical para el
que fue diseñado, HPSG.34 Otra ventaja de ALE respecto a otros es que combina las
ventajas para el proceso de PATR y la facilidad de representación de DATR. En
contra, ALE presenta una orientación clara hacia un formalismo gramatical
determinado, mientras que tanto PATR como DATR no son tan específicos.
4.5.2. La Maquina De Pila34
Limitemos la máquina de pila a lo siguiente:
• El código a ejecutar se encuentra en un fichero.
• Las minúsculas o mayúsculas no son significativas.
• Los espacios y tabuladores son separadores.
• En cada línea del fichero hay una única instrucción para la máquina de pila.
• En cada línea puede haber un punto y coma que hace del resto de la línea un
comentario.
• Se pueden manipular valores enteros entre -32768 y 32767. Como literales, se
pueden indicar únicamente en base decimal. (<num> = -32768 a 32767)
• Hay 100 variables enteras disponibles, para las que se puede utilizar cualquier
identificador, empezado siempre por letra y formado por cua lquier
combinación de letras, números, guiones (-) y subrayados (_) -excepto
palabras clave-. Son representativos sólo los 16 primeros caracteres.
• Las etiquetas son cualquier identificador válido, igual que los de las variables.
Se sabe si un identificador es una variable o una etiqueta de acuerdo a su
primera aparición.
• Como máximo pueden utilizarse 1.000 etiquetas.
• Hay una pila disponible para su uso de hasta 1.000 enteros
34 Universidad de Deusto - ESIDE - JosuKa Díaz y Andoni Eguíluz. Colaboración para edición Web: Juan Arraiza y J. Angel Gutiérrez. Ultima modificación: 24 / 03 / 97
MISC-03-1-8
48
4.5.3. Funcionamiento del compilador en Pascal
En el siguiente esquema se muestra un ejemplo del proceso de compilación de un
fragmento de programa en PASCAL:
Figura 3: Compilador en Pascal – Proceso de compilación de un fragmento del programa
Los compiladores permiten particionar el programa fuente en varios subprogramas.
De esta forma, se usa el linker, que es una herramienta que toma como entrada varios
subprogramas objeto, y devuelve un único programa objeto, llamado programa
ejecutable. Generalmente, la mayor parte de estos subprogramas objetos serán de
librerías e irán incluidos con el compilador. El siguiente esquema muestra como
funciona un linker:
Figura 4: Compilador en Pascal – Funcionamiento de un linker
MISC-03-1-8
49
4.6. Generadores de Analizadores
4.6.1. Yacc35
Programa de generación de analizadores sintácticos. Unix, genera en C
Es un programa que permite construir analizadores gramaticales en C a partir de una
gramática libre al contexto. Junto con Lex permite construir rápidamente las primeras
etapas de un traductor. Tanto Lex como Yacc son herramientas que fueron
desarrolladas junto con el sistema UNIX y es posible encontrar implementaciones de
ellas en otras platformas como PC y Macintosh, a la vez que existen versiones de
dominio público bajo los nombres de Flex y Bison., las cuales están presentadas en
esta investigación.
Un analizador gramatical construido en Yacc genera una func ión que realizará el
análisis gramatical con el nombre de yyparse(); esta función solicita un token al
analizador de léxico por medio de la función yylex().
Un programa en Yacc tiene tres secciones. Estas secciones están delimitadas por %%
como en Lex. La estructura del programa en Yacc es:
Definición del ambiente del analizador gramatical
%%
Gramática libre al contexto
%%
Procedimientos auxiliares
La sección de definición del ambiente del analizador gramatical posee una sección
donde se hacen definiciones sobre las variables que el analizador empleará. Esta
MISC-03-1-8
50
sección esta delimitada por %{ y %} ; en ella se hacen definiciones en C y se toma
literalmente (Yacc no la revisa).
La segunda sección está constituida por la gramática libre al contexto que guiará al
analizador gramatical
La tercera sección de un programa en Yacc tiene los procedimientos auxiliares que
hacen operativo al analizador de léxico. En lo más simple, posee las funciones main y
error. Esta última sirve para especificar la reacción del analizador gramatical al
encontrar un error. main simplemente invoca al analizador gramatical.
4.6.2. PleNa36. Java en plataforma Linux
Es una herramienta construida para facilitar el entendimiento del lenguaje natural por
parte de la máquina con una base de datos de palabras restringida y se puede aplicar
al español, inglés y francés.
Provee la herramienta para definir unas clases sintácticas y unas características
morfológicas para cada palabra. La herramienta también provee la posibilidad de
llenar un diccionario extendido y opciones para manipularlo con operaciones básicas
como adición de palabras, ampliación del diccionario e importación de grafemas.
La construcción del compilador se conforma con un lexer (lector) y un parser
(analizador gramatical), donde el lexer toma una oración de un archivo o algún
dispositivo de entrada y la convierte en un flujo de tokens, posteriormente el parser
toma dichos tokens y arma con ellos el árbol de sintaxis. Este lexer, básicamente,
toma una sucesión de palabras y reconoce la categoría gramatical de cada una de
ellas, para lo cual utiliza un diccionario. En la definición de las clases prescinde de
conjunciones, contracciones y tiempos de conjugación diferentes al presente simple,
35 http://campus.gda.itesm.mx/~csainz/compi1/lexyacc.html 36 TAMARA Patiño, José Igor; “Una aproximación al procesamiento de lenguaje natural”, Universidad de los Andes, enero 2.000
MISC-03-1-8
51
así como verbos reflexivos, transitivos y pasivos. El analizador gramatical solo
reconoce si una oración dada pertenece o no a las conjugaciones permitidas.
El diccionario está implementado como un TRIE, dando la posibilidad de ahorrar
memoria y hacer búsquedas eficientemente.
Este sistema, aunque utiliza algunas herramientas muy útiles para los propósitos de
ANIMACUENTO, trabaja con grandes necesidades de memoria para almacenar un
extenso vocabulario, además, la versión disponible en la red no funciona.
4.6.3. Analizador de lenguaje para Animacuento37 – Inteligencia Artificial – Fox
Pro
Tiene como objetivo principal determinar si una oración está bien escrita gramatical ,
ortográfica y sintácticamente. En un comienzo, el programa desarrollado en Fox Pro
solicita y queda esperando la oración que se desea analizar a partir del menú de
palabras ofrecidas, la cual tendrá que finalizar con un punto.
Al escoger la opción ANALIZAR el programa, haciendo un análisis bottom-up,
separa todas las palabras y elimina casi todos los signos de puntuación, luego procede
a clasificar cada una de las palabras gramaticalmente por el tipo de palabra al que
pertenece (Analogía)38, ya sea un artículo, un sustantivo, un verbo, etc.
Además de algunos procesos de clasificación por comparación, en el caso de los
plurales, algunos adverbios y las conjugaciones verbales, se utilizan procesos de
búsqueda y reemplazo de letras equivalentes y otros procesos complejos.
37 MUÑOZ Ruiz, Juan Carlos; “Un analizador de lenguaje para Animacuento”, Inteligencia Artificial, Universidad de los Andes, Bogotá, 1.999 38 EDELVIVES, F.T.D.; “Gramática Española”, Librería Voluntad. Santafé de Bogotá, 1.958.
MISC-03-1-8
52
Posteriormente la interfaz muestra una tabla de palabra por palabra con su analogía.
En caso de encontrar una palabra desconocida, muestra un mensaje de error frente a
ella.
Luego el programa revisará si esta estructura gramatical (sintaxis) está correcta, con
base en la composición de sujeto y predicado, emitiendo un mensaje de error si está
incompleta, no es presente, ó por el contrario, afirmando su perfecto estado. En la
pantalla aparece un botón de aceptar que permite ver los resultados del análisis.
Este programa está restringido en cuanto a algunos sustantivos, adjetivos y
adverbios, pero funciona con todos los verbos regulares e irregulares y podría ser
extendido a los sustantivos derivados, pues extrae raíces para analizar género y
número.
Actualmente funciona con verbos en presente simple, todas las preposiciones,
conjunciones e interjecciones, además de la mayoría de adverbios y contracciones.
En su ejecución ocupa baja memoria y es suficientemente efectivo para los propósitos
de análisis planteados en este trabajo; pero vale la pena hacer un desarrollo más
sofisticado de la herramienta para refinar su estructura.
4.6.4. Edición Interactiva de entornos incrementales.39 Genera en LE-LISP
La combinación de ICE, FLEX y ICEeditor se hace viable cuando se hace una
asociación indirecta para no sobrecargar los procesos computacionales.. Se hace
necesario construir un TTLT para reducir el consumo de memoria. Sin embargo, en
un texto de muchas líneas, la reorganización de la TTLT penaliza demasiado el
rendimiento, pues se dispara el número de operaciones a realizar. De todas formas, el
consumo de memoria es mucho menor en el caso de la estrategia de asociación
indirecta por posición.
39 http://coleweb.dc.fi.udc.es/cole/library/html/Alo94/node8.html
MISC-03-1-8
53
Los tres tipos de asociación son: Por posición, por desplazamiento y multinivel.
Desde el punto de vista del usuario se produce un cambio importante: el analizador
generado a partir de la gramática de entrada no tiene ya la forma de un programa C,
sino la de un programa LE-LISP.
4.6.5. Bison El Generador de Analizadores Sintácticos compatible con YACC. 40
BSD Unix 4.3
Convierte una descripción gramatical para una gramática independiente del contexto
LALR en un programa en C que analice esa gramática. Bison es un generador de
analizadores sintácticos de contexto libre, desarrollada por Robert Corbett y Richard
Stallman , que convierte una descripción gramatical para una gramática independiente
del contexto LALR(1) en un programa en C que analice esa gramática.
Una diferencia muy importante con respecto a Yacc es que el copyright pertenece a
la Free Software Foundation y el producto se encuentra sometido a la ``GNU General
Public License''
Las reglas para construir los grupos sintácticos son a menudo recursivas, pero debe
haber al menos una regla que lleve fuera la recursión.
El sistema formal más común de presentar tales reglas para ser leídas por los
humanos es la Forma de Backus-Naur o "BNF", que fue desarrollada para especificar
el lenguaje Algol 60. Cualquier gramática expresada en BNF es una gramática
independiente del contexto. La entrada de Bison es en esencia una BNF legible por la
máquina.
No todos los lenguajes independientes del contexto pueden ser manejados por Bison,
únicamente aquellos que sean LALR(1). Brevemente, esto quiere decir que debe ser
40 12 Febrero 1999, Bison Versión 1.27, por Charles Donnelly y Richard Stallman http://lucas.hispalinux.es/Manuales-LuCAS/BISON/bison-es-1.27.html
MISC-03-1-8
54
posible decir cómo analizar cualquier porción de una cadena de entrada con un solo
token de preanálisis. Hablando estrictamente, esto es una descripción de una
gramática LR(1), y la LALR(1) implica restricciones adicionales que son difíciles de
explicar de manera sencilla; pero es raro en la práctica real que se encuentre una
gramática LR(1) que no sea LALR(1).
4.6.6. Departamento de Lenguajes y Sistemas Informáticos de la Universidad de
Alicante41.
Sistema desarrollado en Prolog.
Es necesario el estudio de los formalismos lógicos que permitan los análisis. Por ello
se estudian las siguientes gramáticas: Gramáticas de contexto libre, Gramáticas de
Cláusulas Definidas (DCG), Gramáticas Lógico Modulares (MLG), Gramáticas
Funcionales (FG), Gramáticas de Metamorfosis, Gramáticas de Atributos,
Gramáticas de Huecos (SG), Gramáticas Discontinuas (Estáticas y Restringidas).
Actualmente se dispone de un prototipo, sistema de consultas a una base de datos
geográfica en Lenguaje Natural (SISCO), desarrollado según la Gramática Lógico
Modular, que trata las oraciones simples a nivel gramatical y las oraciones
coordinadas a nivel metagramatical.
Ante la dificultad de tratar las oraciones coordinadas a nivel gramatical con las
MLG´s, están desarrollando y experimentando con dos sistemas que siguen los
formalismos de las Gramáticas de Huecos y de las Gramáticas Discontinuas
Estáticas y Restringidas, para el tratamiento de problemas relacionados con la elipsis
de elementos de la oración y de problemas de Anáfora o referente pronominal. A su
vez están analizando y desarrollando un corpus textual de 5000 frases para el
tratamiento de estos fenómenos lingüísticos. Los sistemas se están desarrollando e
implantando en el lenguaje PROLOG
41 http://www.dlsi.ua.es/index_c.html
MISC-03-1-8
55
4.7. Diccionario de algunos términos de la investigación sobre el
estado del Arte
Determinista: Para una entrada dada, sólo se obtendrá un árbol de análisis
Análisis incremental: Cada vez que se invoca el compilador, no es necesario que todo
el texto sea reanalizado.
Lexema: El valor actual de un conjunto de caracteres que satisfacen un Patrón.
Ejemplo:
Este_es_1_ejemplo
Este es el lexema que satisface el patrón de un identificador
Token, prueba o Ficha: El valor asociado a una categoría o unidad de léxico. Se
presenta como un número entero o una constante de un byte. Ejemplo: El token de un
identificador puede ser 1 ó id (Si id fue definida como 1)
Unidades de léxico: Categorías en que se clasifican las cadenas de caracteres válidos
en un lenguaje. Los caracteres válidos reciben el nombre de alfabeto
LALR(1) : La clase de gramáticas independientes del contexto que Bison (como la
mayoría de los otros generadores de analizadores sintácticos) pueden manejar; un
subconjunto de las gramáticas LR(1).
MISC-03-1-8
56
LR(1) : La clase de gramáticas independientes del contexto en la que al menos se
necesita un token de preanálisis para eliminar la ambigüedad del análisis de cualquier
parte de la entrada.
MISC-03-1-8
57
5. DESARROLLO DEL MEC: ANALIZADOR LEXICO-
SINTACTICO PARA EL LENGUAJE DE ANIMACUENTO
5.1. Identificación de necesidades Educativas
De acuerdo con la metodología para el desarrollo de MECs según Alvaro Galvis42, es
necesario iniciar con un Análisis de las Necesidades Educativas, con el fin de
identificar las debilidades o deficiencias del sistema educativo existente y sus
posibles causas y soluciones. La determinación de la necesidad educativa responde a
tres interrogantes:
Qué es lo ideal? Alumnos con conocimientos sólidos en gramática y ortografía que
escriben y redactan textos correctamentec y con un alto nivel de creatividad y
motivación.
Qué de esto se puede satisfacer con lo que existe? Con mucha práctica se pueden
consolidar los conocimientos.
Qué falta por alcanzar? Es necesario lograr la motivación y creatividad para que se
incremente la práctica y se puedan reforzar los conocimientos.
El bajo nivel de aptitud para la escritura en los jóvenes bachilleres es una necesidad
sentida, por lo cual es importante reforzar estos conocimientos desde temprana edad.
42 GALVIS, Alvaro, Ingeniería de Software Educativo, (1997) Cap 5 c Según la Gramática Normativa
MISC-03-1-8
58
5.2. Entorno para el diseño del MEC
Según la metodología propuesta por Alvaro Galvis para el desarrollo de MECs, es
importante estudiar el entorno en el cual se va a desarrollar y utilizar la nueva
herramienta y para este caso los aspectos a analizar son:
5.2.1. Educación
Según el censo de 1.993 (DANE) cerca del 41% por ciento de la población
colombiana está compuesto por menores de dieciocho años, considerados niños desde
el punto de vista legal. Esto representa un gran potencial de usuarios de la educación,
y por ende, de las nuevas herramientas informáticas que se están desarrollando para
facilitar el aprendizaje.
Sin embargo, aunque los índices de escolaridad y oferta de cupos han aumentado
vertiginosamente desde la segunda mitad del siglo XX en nuestro país, y la
educación primaria es considerada como un Derecho para todo niño colombiano, la
explosión demográfica y la brecha creciente entre los ingresos de la s diversas clases
sociales, han fomentado una alta deserción escolar que usualmente deriva en
contratación laboral de menores o en vagancia. Esto lleva a que el aprendizaje en
grupo, motivado por las aulas, se vea frenado.
Adicionalmente, la multiplicidad de estímulos que reciben los niños por parte de su
entorno y que los inducen a estar “ocupados” como la televisión, juegos de
computador, pandillas y muchos otros; conlleva a la necesidad de que la educación se
materialice en ambientes también lúdicos y llamativos que motiven la práctica y el
gusto por aprender. Esto, sin contar con que los profesores sacarán mucho provecho
de estas nuevas herramientas pedagógicas que complementan los conocimientos y
habilidades de los alumnos, al tiempo que los motivan y los animan a practicar lo
aprendido.
MISC-03-1-8
59
5.2.2. Calidad de la composición y escritura del pueblo colombiano
Es triste ver como hoy en día, en que el 18% de los planteles educativos básicos son
de bachillerato (DANE 1.993) y que una alta proporción de la población alcanza el
título de bachiller, aunque se supone que la persona cuenta con una formación
integral básica aceptable, es común43 encontrar una ignorancia descarada en algunos
“bachilleres” tanto en cuanto a cultura general como en los procesos de lecto-
escritura. Esto dice mucho de la calidad de educación que están recibiendo nuestros
jóvenes.
Los métodos tradicionales de enseñanza de las materias relacionadas con la gramática
y la ortografía se han basado en el uso de la memoria y la práctica constante de
lectura y composición. Dado que hoy en día existen tantos distractores y el
aprendizaje de memoria ha demostrado no afinarse sin la práctica constante, muchos
alumnos no alcanzan a consolidar su conocimiento de las normas gramaticales y
ortográficas antes de dejar de practicarlas con las “tareas del colegio”. Es por esto que
se hace necesaria la búsqueda de nuevos métodos que fomenten este aprendizaje a
través de la experiencia y la memoria visual, como es el caso de AnimaCuento. Es un
hecho que los cupos de los colegios no alcanzan a cubrir la demanda; pero la falta de
compromiso de padres casi analfabetas con la educación de sus hijos y la rigidez de
los sistemas educativos tradicionales, ayuda a que muchos estudiantes desmotivados
o con problemas de aprendizaje, terminen expulsados o abandonen por gusto propio
sus centros educativos.
5.2.3. Preparación de los maestros
No es desconocido para los colombianos que la preparación de muchos maestros de
primaria de los planteles educativos, sobre todo a nivel rural, no está basada en
conocimientos pedagógicos que favorezcan la efectividad del aprendizaje según el
43 LEGUIZAMO A, Dahlan, Entrevista personal, junio 13 de 2003
MISC-03-1-8
60
curso o la edad de los estudiantes, este conocimiento generalmente se da más
empíricamente por las experiencias propias o ajenas de los compañeros de trabajo.
Esta es una gran motivación desde la informática educativa para echar una mano con
una herramienta pedagógica que genere más gusto por el estudio.
5.2.4. Pedagogía
La mayoría de los maestros actuales fueron educados con el sistema tradicional de
“dictadores de clase”44 y es natural que inicialmente pretendan transmitir sus
conocimientos de la misma forma. Por eso es tan importante motivar a los maestros
hacia el aprovechamiento de nuevas pedagogías y tecnologías que apoyen y faciliten
su labor educativa, motivando el aprendizaje por parte de los alumnos.
5.2.5. Experiencia personal
Como padre y maestro, y antiguamente como estudiante de colegio, he vivido las
dificultades y carencias de la pedagogía. A pesar de que cada día se ofrecen los
conocimientos a los alumnos de manera más agradable y pedagógica, no deja de
existir aquella materia más complicada de entender, de estudiar, de interiorizar, y esto
muchas veces depende del profesor, del libro de texto del alumno o de la
metodología de enseñanza. Pero siempre existe aquella materia “preferida”, a la cual
es un gusto asistir, una dicha de repasar y una alegría inmensa al recibir buenas
calificaciones. Generalmente esas materias preferidas han tenido en su contenido
pedagógico algo de lúdica o un “algo”que ha hecho que su estudio y repaso sean
motivantes. Por qué no hacer que todas las materias sean “deliciosas?”.
44 GALVIS, Alvaro H., Ingeniería de Software Educativo, Universidad de los Andes, 1.997
MISC-03-1-8
61
5.2.6. Herramientas tecnológicas al alcance de todos
Ante el desarrollo del Plan Nacional conocido como la “Agenda de Conectividad” y
su programa “Internet Social” (Oficina del Comisionado para la Paz), entre otros, la
oportunidad de contar con al menos dos puntos de red en todas las cabeceras
municipales del país no puede desaprovecharse. Toda esta red debe ser utilizada para
difundir entre los maestros de apartadas poblaciones una herramienta que procure la
motivación de los alumnos hacia el aprendizaje y ayude a los profesores en el
refuerzo escolar. Así mismo, el programa “Computadores para Educar” facilita la
adaptación de los computadores desechados de oficinas y hogares, para el uso escolar
en los planteles educativos que los soliciten.
Estas políticas favorecen que la tecnología informática esté al alcance de más
personas y abre las puertas para el desarrollo de más herramientas informáticas de uso
general para mejorar la calidad de vida en aspectos como son la educación y el
refuerzo escolar.
5.2.7. Ausencia del espacio para la imaginación
Existe en el mercado una multitud de opciones en juegos de video que llevan a los
niños a familiarizarse con temas didácticos que incluyen desde simples actividades de
memoria, habilidades para pintar, simuladores, agilidad para responder a estímulos,
hasta las más sofisticadas formas de pelear, participar en guerras intergalácticas y
diseñar la mejor manera de acabar con el enemigo. Pero difícilmente se encuentran
animaciones que salgan de la imaginación del usuario, pues normalmente éste sólo
interactúa para elegir opciones ejecutables o duplicar animaciones ya existentes.
MISC-03-1-8
62
5.3. Establecimiento del Papel del Computador en este MEC
El sistema hará uso del computador a través de un editor de texto inicialmente, que
permite el procesamiento y análisis gramatical y ortográfico de las oraciones escritas
por el usuario, para luego hacer la asociación semántica que algún día podrá ser
animada en un mundo gráfico, completando así el ciclo de este sistema educativo.
5.4. Soluciones Existentes
Según el estudio presentado al comienzo de este trabajo, el estado del arte actual
demuestra que no se ha encontrado un software específico para tratar esta necesidad
de refuerzo escolar para el idioma español y por lo tanto, es necesario desarrollar uno
nuevo.
5.5. Diseño del MEC
Para desarrollar el diseño de un MEC (Material Educativo Computarizado), es muy
importante poder reconocer sus componentes, puesto que no todo software utilizado
en el proceso de aprendizaje se clasifica como tal. Por lo anterior, se estudiarán las
variables que lo caracterizan y se encontrarán las analogías correspondientes en
AnimaCuento: Entorno, Componente Educativo, Componente de Comunicación y
Componente de Computación.
MISC-03-1-8
63
5.5.1. El entorno
El entorno de AnimaCuento abarca, además del ambiente descrito en el punto
anterior, una población objetivo de niños mayores de 8 años con los estudios básicos
primarios esperados a esta edad, con desarrollo biológico y mental normal y de
lengua castellana, con un proceso de lecto-escritura en maduración. AnimaCuento
espera proveer la ejercitación necesaria en gramática y ortografía para mejorar la
composición y escritura del grupo en cuestión, a través de la animación de sus
procesos creativos, lo cual es la principal motivación. Se espera que la herramienta
sea usada de manera individual, promovida por los maestros cuyas escuelas cuentan,
o se les facilita el uso de computadores por parte de los alumnos.
5.5.2. Diseño Educativo
5.5.2.1. Alcance
El refuerzo del aprendizaje de la gramática y la ortografía en el lenguaje natural
castellano, se da a través del ingreso de un texto que inicialmente es analizado
ortográficamente de acuerdo con el diccionario preestablecido. Una vez éste es
finalmente aceptado se realiza el análisis sintáctico de acuerdo con las estructuras
gramaticales predefinidas, dando como resultado la aprobación o rechazo de la
oración.
Se refuerzan las estructuras gramaticales que el profesor defina y active, y de allí
depende el alcance y complejidad del conocimiento reforzado.
5.5.2.2. Contenido
Durante el desarrollo del proceso de Análisis de texto, el editor de texto recibe los
datos, el analizador ortográfico identifica las palabras y el analizador gramatical
verifica la correcta ubicación de las palabras en la oración (Con las restricciones
MISC-03-1-8
64
establecidas). Inicialmente se trabaja el refuerzo ortográfico, pues una palabra no es
aceptada hasta que esté bien escrita; posteriormente, se trabaja el refuerzo gramatical
hasta que la oración esté bien escrita, independientemente del contenido semántico.
5.5.2.3. Tratamiento
En la fase de análisis de texto la relación con el usuario es sencilla. Se solicitan las
oraciones y se le da respuesta positiva o negativa según la escritura de la misma.
Adicionalmente, cuando hay errores en la gramática o en la ortografía, la interfase
muestra al usuario la estructura equivocada ingresada para guiar sus próximos pasos o
correcciones. El usuario siempre tiene la opción de consultar la ayuda, donde accede
a las estructuras gramaticales permitidas, el diccionario y la definición de los tipos de
palabra. Se conduce así al usuario a construir un cuento, a partir de una serie de
oraciones correctamente escritas.
Igualmente, la evaluación del aprendizaje se medirá a través de un registro interno de
correcciones para cada usuario, que le permitirá al profesor conocer el desempeño de
cada estudiante.
5.5.3. Diseño de Comunicación
En la fase del profesor se tiene el control de todas las partes variables de la
herramienta. Es así como define o cambia usuarios, claves, las construcciones
gramaticales, autorización e inhabilitación de gramáticas por usuario, actualización de
información de usuario y otros. En esta fase la comunicación es abierta, pues el
profesor define sus propias variables y el sistema le muestra las opciones creadas para
tener control sobre ellas.
En la fase del analizador del lenguaje, el sistema recibirá un texto en forma de
oración, el cual analizará ortográfica y gramaticalmente de acuerdo con el diccionario
y las estructuras gramaticales preestablecidas, y el resultado será: un mensaje de error
MISC-03-1-8
65
o una secuencia de acciones internas a ser animadas por el sistema en la fase de
animación.
A lo largo de la ejecución el usuario encontrará opciones de ayuda para el manejo de
las diferentes etapas, así como el funcionamiento general de la herramienta.
Si por reciente definición de palabras éstas no se encuentran dentro de las acciones
predefinidas en animación, la oración no podrá ser animada. Pero esto no quiere decir
que el resto del cuento no se vaya a poder animar.
Cuando la animación no es posible por no estar preestablecida según el verbo o la
composición, se le avisa al usuario esta imposibilidad.
5.5.4. Diseño Computacional
El analizador de texto funciona de acuerdo con las estructuras gramaticales
establecidas para cada usuario.
Para el correcto funcionamiento del analizador, es necesario contar con una base de
datos con las reglas gramaticales para composición y el diccionario.
Los requerimientos tecnológicos para el funcionamiento del analizador de
AnimaCuento son:
5.5.4.1. Hardware
• Procesador Pentium 200Mhz
• Memoria 48 Mb
• Monitor a color con resolución de 640 x 480
MISC-03-1-8
66
5.5.4.2. Software
• JDK Versión 1.4 de Sun Microsystems
• Base de datos MySQL
Nota: Para la versión inicial se utilizó en las animaciones, imágenes desarrolladas en
Flash versión 6. Este requiere una máquina Pentium III con procesador de 500 Mhz y
memoria de 256 Mb. El propósito final del proyecto completo es desarrollar el
sistema gráfico que permita animar las oraciones generadas en AnimaCuento, de
cuyo desarrollo dependerían los requerimientos técnicos finales.
Los componentes macro del sistema son:
• Mantenimiento de la información para el funcionamiento del sistema, que será
responsabilidad del profesor.
• Ejercitador: Es un editor de texto que interactúa con el niño
• Analizador Léxico-sintáctico
• Animador
Las relaciones entre los componentes se pueden observar en la documentación
generada por la herramienta Together en formato html, la cual acompaña este
documento en un CD como Anexo 1. En esta documentación gráfica se aprecia
claramente la estructura de todos y cada uno de los módulos, sus entradas, salidas y
relaciones.
MISC-03-1-8
67
5.5.5. Preparación
Con el fin de establecer los parámetros que regirán el funcionamiento de este MEC,
es necesario delimitar y seleccionar las entradas al sistema y sus relaciones dentro del
contexto, para este caso se hará la restricción del lenguaje y de la gramática.
5.5.5.1. Restricción del Lenguaje
Debido a la complejidad que significa poder entender todo el lenguaje, es necesario
delimitar el alcance de este sistema para hacerlo lo más eficiente posible. Por
ejemplo, no se analizará si una oración es interrogativa o admirativa y seguirán una
estructura que podrá estar conformada por sujeto, artículo, adjetivo, verbo, etc.
Para el ANALIZADOR DEL ANIMACUENTO, es necesario delimitar el uso del
lenguaje español, debido a que es muy complejo poder analizar todas las reglas
gramaticales y ortográficas. Es por esto que se debe considerar lo siguiente:
• Debe ser una oración no interrogativa, ni admirativa.
• Para este proyecto el análisis se centra en la lexicografía de las palabras,
confirmando ortografía y sintaxis de las oraciones. La semántica de las
mismas se da en la medida en que el texto pueda ser animado.
• El vocabulario a ser usado se restringe para algunos casos a un diccionario
ofrecido (sustantivos, adverbios y adjetivos seleccionados), que están
almacenados en la Base de Datos.
• No se le prestará gran valor a los signos de puntuación en el significado de la
oración.
• Se parte del supuesto de que no hay errores de ortografía en la escritura, y si
los hay la palabra no será aceptada, pues se informará que no está en el
diccionario escrita de esa forma.
MISC-03-1-8
68
Para esta demostración se trabajó con una gramática de las siguientes características:
• Sólo se reciben palabras en español para el trabajo específico del presente
sistema.
• La estructura básica del “lenguaje español” es la de una oración: Mínimo
conjunto de palabras con un significado completo.
• Las palabras utilizadas tienen un solo significado libre del contexto.
5.5.5.2. Definición de la gramática
Una gramática se define como45 un medio de relacionar sonidos y significados por
medio de un sistema autónomo de reglas no deductible a ninguno de ellos. La
definición de la gramática a utilizar en este MEC es la Gramática Normativa
independiente del contexto, pues permite su análisis objetivo con una herramienta
como AnimaCuento y es la comúnmente enseñada en los colegios por pénsum
establecido por el Ministerio de Educación Colombiano. Esta Gramática tiene la
singularidad de que sus clasificaciones son independientes para cada una de las
palabras, no dependen de la idea, circunstancia o cultura en la que se utilice, sino que
cada palabra tiene una clasificación exacta y libre del resto de palabras. Por esto es
muy fácilmente enseñable a niños de primaria y la programación en informática se
hace menos compleja, pues no incluye la semántica para su clasificación.
Para la parte práctica la definición de las construcciones gramaticales depende única
y exclusivamente del profesor, pues es éste quien determina cuáles estructuras
gramaticales serán aceptadas por el ejercitador a través de la interfase. Aunque la
herramienta está diseñada para la práctica de la Gramática Normativa, se podría
aplicar con otra gramática que tenga claridad objetiva en sus definiciones para
clasificación gramatical.
45 DICK, Simon, Gramática Funcional, Cap 1
MISC-03-1-8
69
5.5.5.3. Procedimiento
El siguiente es el procedimiento que sigue el programa para hacer el trabajo.
5.5.5.3.1. Mantenimiento de la información para funcionamiento: Inicialmente el
profesor define las estructuras gramaticales que van a ser ejercitadas y las asigna a los
alumnos correspondientes. Define también el diccionario.
5.5.5.3.2. Ejercitador: El usuario alimenta el programa con el texto a analizar, a partir
del menú de palabras ofrecidas, el cual tendrá que finalizar con un punto; éste es
almacenado en una variable que posteriormente será analizada.
5.5.5.3.3. Analizador: Al escoger la opción A PRACTICAR el programa separa todas
las palabras y elimina casi todos los signos de puntuación, a excepción de los signos
de admiración.
Luego procede a asignar las pruebas para cada una de las palabras con el método
bottom-up, clasificando gramaticalmente por el tipo de palabra al que pertenece
(Analogía)46, ya sea un artículo, un sustantivo, un verbo, etc.
Además de algunos procesos de clasificación por comparación, en el caso de los
plurales, algunos adverbios y las conjugaciones verbales, se utilizan procesos de
búsqueda y reemplazo de letras equivalentes y otros procesos complejos.
Posteriormente la interfase hace el análisis léxico al mostrar una tabla de palabra por
palabra con su analogía. En caso de encontrar una palabra desconocida, mostrará un
mensaje de error.
Luego el programa revisa si esta estructura gramatical (sintaxis) está correcta, de
acuerdo a la composición de las estructuras gramaticales programadas, ejemplo:
46 EDELVIVES, F.T.D.; “Gramática Española”, Librería Voluntad.
MISC-03-1-8
70
sujeto, verbo y complemento, emitiendo un mensaje de error si está incompleta, ó
por el contrario, afirmando su perfecto estado. En caso de existir un error en la
alimentación del sistema, se ofrecerá al usuario la opción de ver la clasificación
sintáctica de cada una de las palabras que escribió para encontrar su falla y poder
corregirla.
5.5.5.3.4. Animador: Después de haber hecho el análisis Léxico-sintáctico, el sistema
contará con una clasificación de estructura permitida, procede entonces a buscar si en
la base de datos del diccionario existe una correspondencia entre cada palabra y su
posible representación gráfica. Si esto se da, hay un nuevo análisis de
correspondencia entre las posibles animaciones y la estructura gramatical actual de la
oración. Si se da la correspondencia, será posible animar el texto ingresado una vez
que esta parte del proyecto esté desarrollada.
5.5.5.4. Herramientas a utilizar para el Analizador de Texto
Debido a que la intención principal es permitir el uso de ANIMACUENTO sobre
diferentes plataformas, se escogió la herramienta de programación JAVA, como la
más flexible para este tipo de implementación. Esta podrá ser utilizada con diferentes
motores de bases de datos y en el caso de esta presentación, se trabajó con una base
de datos MySQL para el Diccionario y para las reglas gramaticales.
5.6. Evaluación
Para el módulo del profesor se establecen unas variables a medir con el fin de evaluar
las prácticas de los usuarios y las posibles carencias en la enseñanza por parte de los
profesores. Inicialmente se ha establecido que se lleve un registro de fecha, oraciones
y el resultado del análisis Léxico-sintáctico por usuario.
Santafé de Bogotá, 1.958.
MISC-03-1-8
71
A partir de los registros del analizador, se espera que el profesor defina sus
necesidades de medición y control para posteriormente desarrollar un módulo
adicional de estadísticas en cuanto a rendimiento de la práctica, progreso y volumen
de ejercitación necesario para conseguir resultados satisfactorios.
5.7. Pruebas Realizadas
El analizador léxico-sintáctico se ha venido probando internamente desde su diseño y
construcción. Se han probado más de 200 estructuras gramaticales diferentes,
teniendo en cuenta tiempos, género y número en las posibilidades de construcción.
Hasta el momento el análisis ha sido completo, siempre se ha podido realizar
adecuadamente cuando la oración ingresada está ortográficamente bien escrita, en
cuyo caso contrario sería rechazada para el análisis.
Ejemplo de estructuras gramaticales definidas en el módulo del profesor, que también
son vistas por el estudiante:
• Pronombre personal tercera femenino singular – verbo indicativo presente
tercera singular – adverbio modo = Ella canta alegremente
• Artículo determinado masculino plural – sustantivo común masculino plural –
verbo indicativo pretérito imperfecto tercera plural – adverbio de lugar –
preposición – artículo determinado femenino singular – sustantivo común
singular femenino = Los perros corrían detrás de la casa
MISC-03-1-8
72
Figura 5: Ejemplo estructura gramatical
En cuanto a la animación como tal, no se han realizado pruebas de campo porque no
ha sido desarrollada en su totalidad la parte de animación, tal como se especificó al
inicio de este trabajo, por no ser el objetivo principal del Proyecto de Grado, sin
embargo se han desarrollado unas pruebas piloto de animación con un diccionario
limitado con el fin de poder ver todo el proceso de ejercitación, refuerzo y motivación
del proyecto completo AnimaCuento.
MISC-03-1-8
73
6. CONCLUSIONES Y TRABAJOS FUTUROS
AnimaCuento no es un texto de estudio, es una herramienta motivadora para el
refuerzo del aprendizaje básico de la escritura, gramática y ortografía, que permite
al profesor controlar los temas de práctica.
En cuanto a la transmisión de conocimiento, se espera que éstos hayan sido
previamente estudiados por el usuario, pues éste es conducido por un proceso creativo
de ingreso de información en forma de texto que puede ser correcta o no y ésta es
aceptada o corregida por el sistema. Pero lo que hace este proceso Constructivista es
la experimentación personalizada que depende en gran medida de la creatividad
del usuario y siempre encuentra respuesta, teniendo un alto contenido de
motivación: la animación.
Por lo anterior, se rescata que las teorías cognoscitivas se basan en dejar de ver al
niño como un adulto pequeño y se comienza a valorar la infancia como una etapa
única y valiosísima en el desarrollo del ser humano. Por esto, es necesaria una
educación basada en las actividades propias del niño, como es el estímulo de la
imaginación para lograr el refuerzo.
De acuerdo con Piaget, los factores como la maduración, la experiencia, el
equilibrio y la transmisión social, caracterizan la efectividad del aprendizaje y por
eso, en AnimaCuento se han identificado para su correcta formulación.
En cuanto a la formulación del MEC, se presenta un programa heurístico donde
predomina el aprendizaje experiencial a través de variadas opciones para crear
ambientes, personajes y situaciones que son generadores de motivación.
El análisis del lenguaje natural en español puede llegar a ser bastante complejo, pues
la gramática presenta un inmenso número de posibilidades.
MISC-03-1-8
74
Una gran barrera para el desarrollo de esta herramienta fue el no poder contar con un
programa ya desarrollado, con el cual se pudiera construir un analizador de lenguaje
escrito y al mismo tiempo, encadenarlo con un analizador de lenguaje de animación
de una manera fácil y eficiente. Sin embargo, la tecnología ha sido una gran aliada
para el desarrollo de una herramienta flexible, que ofrezca al usuario un sistema
multiplataforma, expandible y cuya gramática pueda ser reprogramada.
El objetivo principal, resumido en la facilitación de una herramienta para el análisis
del lenguaje de ANIMACUENTO, se ve plasmado en la implementación aquí
presentada, y abre las puertas para continuar trabajando en el diseño e
implementación de la fase de animación que permita cumplir complementar los
propósitos pedagógicos del proyecto completo: ANIMACUENTO.
6.1. Trabajos Futuros
En trabajo futuro, como continuación del proyecto de AnimaCuento, se plantean los
siguientes temas a desarrollar.
• Analizador de Lenguaje Natural, buscando posibles soluciones a una oración
mal escrita cuando analice esta.
• Como continuación en el tema gráfico, se plantea un módulo que esté en
capacidad de animar una oración escrita
• Complementando la propuesta pedagógica de AnimaCuento se proponen
– Animación de oraciones
– Creación de cuentos que se puedan animar!
MISC-03-1-8
75
BIBLIOGRAFIA
AGUILAR, J; “El Enfoque Cognoscitivo contemporáneo: Alcances y perspectivas.”
Enseñanza e Investigación en Psicología, 8(2), 171-187, Julio-diciembre, 1982
ARRAIZA, Juan; GUTIERREZ, J. Angel, “Colaboración para edición Web”, 1987
http://coleweb.dc.fi.udc.es/cole/library/abstracts/Cab98a.html, “Integración de
herramientas para el análisis automático de los lenguajes naturales”
BROOKSHEAR, J. Glenn. Teoría de la Computación: Lenguajes formales,
autómatas y complejidad. ADDISON-WESLEY IBERO AMERICANA, 1993
CASTORINA, J.A.; “Los problemas de una teoría del aprendizaje: una discusión
crítica de la tradición psicogenética.”, Revista Latina de Pensamiento y Lenguaje,
2(1), 1-16, invierno 1993-94
COLL, C; “Significado y sentido en el aprendizaje. Reflexiones EN torno al concepto
de aprendizaje significativo”. En C. Coll Aprendizaje escolar y construcción del
conocimiento, Paid’os Educador, Barcelona, 1990 PP 441-442
CORRIPIO, Fernando; “Diccionario de DUDAS E INCORRECCIONES DEL
IDIOMA”; Larousse, México, 1988.
D. TAPIAS, Merino, Telefónica Investigación Y Desarrollo
DE AMORES, Carredano, J. G. , Universidad De Sevilla
MISC-03-1-8
76
DIAZ BARRIGA, F; HERNANDEZ ROJAS, G; “Estrategias Docentes para un
aprendizaje significativo: Una interpretación Constructivista”, México, McGraw-
Hill Interamericana Editores, S.A., Cap 1 -2, 2002
DIAZ, Osuka; EGUILUZ, Adoni; ESIDE, Universidad de Deusto
EDELVIVES, F.T.D.; “Gramática Española”, Librería Voluntad.
Santafé de Bogotá, 1.958.
FUENTES, Juan Luis; “ORTOGRAFÍA reglas y ejercicios”; Larousse; Bogotá,
Colombia, 1994
GALVIS, Alvaro H., Ingeniería de Software Educativo, Universidad de los Andes,
Bogotá, 1997
HERNANDEZ, Carlos J. GACC. “Un generador de parsers para gramáticas
atribuidas basado en el algoritmo de Earley”, Universidad de los Andes, Bogotá,
1.995
HERNANDEZ, G; “Paradigmas de la Psicología Educativa”, México: ILCE/OEA/
PROMESUP, 1991
ISSN: 1139-8736 Depósito Legal: B-35510-2000
J. G. Amores: “ Lexical-Functional Grammar-Based Machine Translation System for
Medical Abstracts”. Tesis Doctoral. Universidad de Sevilla, 1992.
J. Bresnan: “The Mental Representation of Grammatical Relations”. Cambridge,
Massachussets: MIT Press (ed. 1982).
MISC-03-1-8
77
LEGUIZAMO A, Dahlan, Entrevista personal, junio 13 de 2003
LILES, Bruce L; “A basic grammar of Modern English”, Prentice Hall Inc.
Englewood Cliffs, New Jersey, 1.987.
MUÑOZ Ruiz, Juan Carlos; “Un analizador de lenguaje para Animacuento”,
Inteligencia Artificial, Universidad de los Andes, Bogotá, 1.999
NOT, Louis, “Las Pedagogías del Conocimiento”, Fondo de Cultura Económica,
Santafé de Bogotá, 1.994
QUESADA Moreno, J. F., Centro Informático Científico De Andalucía
M. Kay: “Algorithm Schemata and Data Structures in Syntactic Processing”. En
Grosz, Sparck Jones y Webber, 1986. pp. 35-70 (1980).
PRIETO, A.; lLORIS, A., TORRES, J.C., "Introducción a la Informática", McGraw-
Hill, Madrid, 1.995
L. Goldschlager, A. Lister, "Introducción Moderna a la Ciencia de la Computación",
Prentice-Hall, México, 1.986
Secretaría de Educación de Risaralda, Anuario Estadístico 1995
RIGO LEMINI 1992
RIVIERE, A;” El sujeto de la psicología cognitiva”, Alianza, Madrid, 1987
RUSSEL, Stuart; NORVIG, Peter; “Inteligencia Artificial, un enfoque moderno”;
Prentice Hall Hispanoamericana, México, 1.996.
MISC-03-1-8
78
TAMARA Patiño, José Igor; “Una aproximación al procesamiento de lenguaje
natural”, Universidad de los Andes, enero 2.000
Direcciones Electrónicas
La dirección http://campus.gda.itesm.mx/~csainz/compi1/lexyacc.html “Yacc y Lex”
La dirección http://coleweb.dc.fi.udc.es/cole/library/html/Alo94/node8.html
La dirección http://elies.rediris.es/elies9/1.htm
La dirección http://www.dlsi.ua.es/index_c.html
La dirección http://www.fing.us.es/lekta/lekta_manual.html#Introduction
MISC-03-1-8
79
ANEXO 1. COMPONENTES Y RELACIONES
Es un CD llamado AnimaCuento_html
MISC-03-1-8
80
ANEXO 2. MANUAL DEL USUARIO
La pantalla inicial de AnimaCuento pregunta lo siguiente:
1. Nombre. Debes seleccionar el nombre que te ha sido asignado por el profesor.
2. Clave. Escribe la clave personal que te ha sido asignada.
3. A practicar. Te llevará a iniciar la composición de tu cuento
4. Practico después. Elige esta opción si quieres salir del sistema
5. Necesitas ayuda? Te mostrará la información relacionada con las opciones de esta pantalla
Existen dos tipos de usuarios:
- El usuario “profesor”, quien está encargado de darle mantenimiento a las diferentes opciones
del sistema: Mantenimiento de Usuario, Mantenimiento de las diferentes construcciones
gramaticales en el sistema.
- El usuario “estudiante”, quien tendrá acceso a la parte de análisis de oraciones y animación de
las mismas, para su refuerzo.
1. Menú del Profesor. A través del ingreso del usuario profesor con su clave correcta, y
seleccionando loa opción A practicar, se tiene acceso a este menú. En este aparecerán las
siguientes opciones:
a. Gramática: Accede al menú, donde están las diferentes opciones de mantenimiento
de la gramática. Las opciones son:
MISC-03-1-8
81
i. Tipos de palabras, donde se actualizaran los diferentes tipos de palabras
que son utilizados en el sistema. Está compuesto por:
1. Lista de Tipos de Palabra, donde está la lista de los Tipos de
Palabras que hay en el sistema.
2. Nuevo Tipo de Palabra, donde se escribirá el nuevo Tipo de
Palabra que se desea incluir en el sistema.
3. Adicionar Tipo de Palabra, donde se adicionará un nuevo Tipo de
Palabra, según lo que se haya escrito en el campo de Nuevo Tipo
de Palabra, aunque toca que sea diferente de todas las que están
almacenadas actualmente en la Base de Datos.
4. Ayuda, Brinda una breve información sobre cuál es la
funcionalidad de esta pantalla.
5. Regresar , Termina la ejecución de la pantalla Tipo de Palabra.
ii. Mantenimiento del Diccionario. Se pueden agregar nuevas palabras a la
Base de Datos, enriqueciendo el diccionario de palabras, con cuál tipo de
palabra está relacionado y si tiene alguna palabra asociada a la animación o
no.
iii. Palabra – Animación: Se tendrá acceso a la lista de palabras que se podrán
animar.
MISC-03-1-8
82
1. Palabras relacionadas con Animación: Está la lista de las
palabras que se pueden animar.
2. Nueva Palabra – Animación: Permite adicionar una nueva
palabra a la lista, la cual no debe estar repetida.
3. Ayuda: Brinda una breve información sobre cuál es la
funcionalidad de esta pantalla
4. Regresar , permite regresar a la pantalla anterior.
iv. Gramática, aquí se elaboran todas las construcciones gramáticas que
estarán disponibles en el sistema.
1. Nombre de la gramática está la lista de todas las construcciones
gramaticales que hay disponibles en el sistema.
2. Seleccionar , permitirá armar o modificar la gramática que esté
seleccionada, llegando a la pantalla de Elementos que Componen
la Gramática, especificando las posibilidades en cada nivel de
análisis. Por ejemplo: Un primer nivel de análisis puede ser sujeto,
verbo y complemento. Un segundo nivel de análisis entra a
clasificar las posibilidades que componen un sujeto, los diferentes
tiempos del verbo y las posibilidades que componen un
complemento. El tercer nivel de análisis puede referirse a los
diferentes tipos de sustantivos o adjetivos, tal vez al género o
número de un sustantivo, etc.
MISC-03-1-8
83
Se cuenta con las opciones Seleccionar Nivel 1 y Seleccionar
Nivel 2. Para aplicar los tipos de palabra a seleccionar, se elige uno
de los tipos propuestos y se asigna a un nivel presionando la casilla
Seleccionar Nivel 1. Inmediatamente quedará asignado el tipo de
palabra al nivel 1. Para abrir un nuevo nivel de clasif icación, se
selecciona un tipo de palabra en la ventana de “Clases de palabras”
y luego se selecciona el tipo correspondiente a desplegar en la
ventana “Nivel Anterior”. Igualmente están las opciones Eliminar
Nivel 1 o Eliminar Nivel 2. Las casillas Nivel Anterior y Nivel
Siguiente desplazan verticalmente el árbol de clasificación de las
palabras.
3. Nueva Gramática, se utiliza para escribir la nueva construcción
gramatical a ser incluida en el sistema. Esta construcción
gramatical no debe existir previamente en el sistema.
4. Ayuda: Brinda una breve información sobre cuál es la
funcionalidad de esta pantalla
5. Regresar , permite salir de esta pantalla y regresar a la del menú
del profesor.
b. Mantenimiento de Usuarios: Están las diferentes opciones de mantenimiento. Los
campos y las opciones que lo componen son:
Nombre del Usuario: Donde está el nombre del Usuario y es su identificación
dentro del sistema.
i. Clave: Palabra que sirve para que un usuario ajeno a él, no entre a su
trabajo personal.
ii. Estado: Un usuario puede estar Activo, si tiene permiso para entrar en el
momento al sistema, o Inactivo, si se quiere que el usuario no tenga acceso
al sistema.
iii. Tipo Usuario: Caracterizará al usuario, si tiene acceso al módulo de
profesor o al módulo de composición y animación para el estudiante.
MISC-03-1-8
84
iv. Nuevo Usuario: Permitirá adicionar un nuevo usuario. En esta pantalla, se
escribe el nombre del nuevo usuario y se podrá:
1. Aceptar, si se desea guardar el nombre del nuevo usuario, el cual
no puede ser igual al nombre de otro usuario adicionado
anteriormente.
2. Cancelar, lo que permitirá cancelar la inclusión del nuevo usuario.
v. Nueva Clave : Permitirá adicionar una nueva clave. En esta pantalla, se
escribe el nombre de la nueva clave y se podrá:
1. Aceptar, si se desea guardar el nombre de la nueva clave, la cual
no puede ser igual a otra clave escrita anteriormente.
2. Cancelar, lo que permitirá cancelar la inclusión de la nueva clave.
vi. Actualizar Datos : Almacenará la información del usuario que actualmente
se encuentre en pantalla.
vii. Resultados del análisis .: Los resultados que arroja el sistema actualmente
son fecha, oraciones escritas y respuestas del analizador. A partir de allí se
espera que el profesor defina sus necesidades de medición y control.
viii. Gramática Disponible: Esta opción permite autorizar y desautorizar las
diferentes construcciones gramaticales por cada uno de los usuarios de
composición y animación.
1. En la columna de Autorizadas , están las gramáticas que un
usuario tiene disponibles en el momento.
2. En la columna de Sin Autorizar , están las gramáticas que un
usuario no tiene disponibles en el momento.
3. Autorizar , permite Autorizar la gramática que está seleccionada
en la columna de las Sin Autorizar.
4. Quitar, permite retirar una gramática Autorizada y colocarla en la
lista de gra máticas Sin Autorizar.
5. Regresar, permite salir de esta pantalla y regresar a la anterior.
MISC-03-1-8
85
6. Ayuda: Brinda una breve información sobre cuál es la
funcionalidad de esta pantalla
ix. Regresar , permite salir de esta pantalla y regresar a la anterior.
c. Ayuda: Muestra la información relacionada con las opciones de esta pantalla de
mantenimiento.
d. Terminar: Se elige esta opción si se desea salir del sistema
2. Si el usuario es un estudiante y escribe correctamente su nombre y clave asignados, iniciará
su sesión de práctica
A Practicar – Animar, Es el momento de empezar a escribir nuestro cuento! Si no sabes cómo
hacerlo, elige la opción de Ayuda.
a. Escribe una oración a partir del diccionario disponible y de acuerdo con las
construcciones gramaticales autorizadas por el profesor.
b. Elige la opción Analiza tu oración . Se te mostrará el resultado del análisis de tu oración,
si hay palabras diferentes a las del diccionario o mal escritas, se te informará; si la
oración está correctamente escrita, también lo sabrás.
c. Como resultado del análisis Léxico-sintáctico se presentarán los diferentes mensajes que
son:
i. La(s) palabra(s) xxxx, yyyyy no se encuentra en el diccionario de
posibilidades.
ii. La gramática escrita no corresponde a ninguna válida, mostrando la
estructura gramatical escrita.
iii. La oración está gramaticalmente bien escrita ó La oración está
gramaticalmente bien escrita pero no puede ser animada.
iv. Y finalmente, si se cumplen todos los requisitos, se animará tu oración.
d. Quieres ayuda? Te proporciona una breve información sobre cómo funciona esta
pantalla y sus opciones. Adicionalmente te da tres opciones de consulta; Diccionario,
Tipos de palabras y Estructuras Gramaticales. Así podrás actualizarte en los tipos de
estructuras que puedes construir, las palabras del diccionario que puedes utilizar y las
definiciones de los tipos de palabra que existen.
MISC-03-1-8
86
e. Quieres terminar? Sale de la pantalla de escritura y muestra la lista de las oraciones que
fueron escritas en la presente sesión con el sistema. .
Termina la sesión
MISC-03-1-8
87
ANEXO 3. DOCUMENTO DE ARQUITECTURA
Nombre Sistema
Autor Juan Carlos Muñoz Ruiz
CONTROL DE REVISIONES
Versión Autor(es) Ordenados alfabéticamente
Descripción de la versión Fecha de Terminación
1.0 Juan Carlos Muñoz Ruiz Versión final de tesis Agosto 07 – 2003
MISC-03-1-8
88
Estructura de Uso de Módulos
Descripción Global de la estructura de uso de módulos
Presentación
Paquete de la arquitectura que contiene las clases de la interfaz de la aplicación. Estas clases permiten
ofrecer al usuario una forma de interacción amigable y sencilla con la aplicación, representando para el
sistema, la única forma de interactuar directamente con el mundo exterior.
Lógica de aplicación
Dominio, Corresponde al paquete que contiene las clases del mundo del problema, necesarias para
resolver los requerimientos.
Almacenamiento
Corresponde al paquete conformado por las clases que hacen persistentes los objetos dentro de la base de datos.
Interfaz del
Usuario
Dominio Persis-
tencia
Presentación Lógica de la Aplicación
Almacenamiento
MISC-03-1-8
89
Descripción de Componentes
Módulo: Presentación
Propósito: Ofrecer al usuario una forma de interacción amigable y sencilla con la aplicación,
representando para el sistema, la única forma de interactuar directamente con el mundo exterior.
Servicios:
Nombre Descripción
Inicio Autenticar el usuario mediante login y password A Practicar Servicio que le permite al usuario ingresar a
cualquiera de las dos funcionalidades que provee el sistema: - Mantenimiento de las estructuras gramaticales del sistema y usuarios del mismo. – Interacción con el analizador Léxico-Sintáctico
Practico Después Si el usuario no desea entrar a interactuar con el sistema, tiene la posibilidad de terminar la ejecución del programa.
Necesitas Ayuda? Ayuda que presta el sistema en las principales pantallas.
Analiza tu Oración Servicio que le permite al niño hacer un análisis de la oración escrita por el.
Quieres Terminar? Si un niño desea terminar la ejecución del programa, debe presionar este comando.
Estructuras Gramaticales Opción que agrupa las diferentes opciones para darle mantenimiento a todas las estructuras gramaticales.
Elementos que componen las Estructuras Gramaticales
Opción que permite adicionar todos los componentes de cada una de las estructuras gramaticales.
Tipo de Palabra Permite adicionar y revisar todos los tipos de palabra de las que el sistema dispone.
Diccionario Permite adicionar y revisar todas las palabras que han sido adicionadas al diccionario del AnimaCuento.
Mantenimiento Usuarios Opción que agrupa todas las opciones diferentes para la administración de la información de todos los usuarios.
MISC-03-1-8
90
Módulo: Lógica de aplicación
Propósito: Corresponde al paquete que contiene las clases del mundo del problema, necesarias
para resolver los requerimientos. Incluye el manejo de excepciones y la prestación de servicios que son
comunes para los objetos del dominio.
Nombre Descripción
AnimaCuento Clase donde está el método principal de arranque del sistema: main().
VentanaPrincipal Clase donde se cargan todas las condiciones iniciales del sistema.
AnalizarLenguaje Clase que recibe la oración, la analiza retorna el resultado.
ManejoArchivosGuardar Clase donde están los métodos que hacen persistir la información
ManejoArchivosBorrar Clase donde están los métodos que borran la información de la Base de Datos
VariosGramEle mNoTerm Clase donde hay métodos que realizan operaciones sobre los elementos no terminales
MantenimientoGramElemIni Clase con métodos de mantenimiento de la gramática de elementos iniciales
MantenimientoDiccionario Clase con métodos que activan los elementos del diccionario
MantenimientoGramElemNoTerm Clase con métodos que manejan la información de los elementos no terminales
VariosUsuarios Clase con métodos que manejan las diferentes opciones de Usuarios
VariosAutorizarGramaticas Clase con métodos encargados de la autorización de las gramáticas por cada uno de los usuarios
MantenimientoTipoPalabra Clase con métodos encargados del mantenimientos de los diferentes tipos de palabra
VariosGramaticaElemTerm Clase con un método que recorre el árbol de los elementos no terminales como un árbol b
MantenimientoUsuarios Clase que activa la pantalla con la información de los usuarios.
AyudaVentanaCentral Clase que maneja la ayuda de la ventana principal de interacción del niño con el sistema
MISC-03-1-8
91
Módulo: Almacenamiento
Propósito: Corresponde al paquete que contiene las clases del mundo del problema, necesarias
para hacer persistente los objetos dentro de la base de datos.
Descripción de Dependencias
Módulo: Interfaz de usuario
Depende del
Servicio Servicios que utiliza del módulo
Dominio Ventana Análisis de Oraciones Analizador léxico, analizador sintáctico Dominio Ventana Mantenimiento Usuarios Crear usuarios, actualizar información, autorizar
gramáticas por usuario Dominio Ventana Mantenimiento Estructuras
Gramaticales Adición, actualización de los components de las estructuras gramaticales
Dominio Ventana Mantenimiento Tipo de Palabras
Adición de Tipos de Palabras
Dominio Ventana Mantenimiento diccionario Adición Palabras
Módulo: Dominio
Depende del módulo
Servicio Servicios que utiliza del módulo
Almacenamiento
Guardar Información Guardar Diccionario, guardar tipos de palabras, guardar usuarios, guardar estructuras gramaticales
Almacenamiento
Recuperar Información Recuperar información de tipo de palabra, diccionario, estructuras gramaticales, usuarios
Interfaz de usuario
Oración a analizar Oración a analizar
Interfaz de usuario
Información a ser almacenada o actualizada
Guardar tipo de palabra, palabra del diccionario, estructuras gramaticales, usuarios
Nombre Descripción
LeerTablas Clase donde se concentran los métodos que leen la información de la base de datos
GuardarTablas Clase que hace persistir la información en la base de datos
EliminarEnTablas Clase que elimina información de la base de datos Variables Clase donde está la información compartida por todas
las clases AcutalizarTablas Clase que hace persistente las actualizaciones a las
diferentes opciones que así lo ofrecen.
MISC-03-1-8
92
Estructura Física
Descripción Global de la estructura Física
Nombre Máquina Usuario
Ubicación Geográfica
Local
Características Procesador: Pentium II 200 Mhz o Superior Memoria RAM : 48 o Superior Disco Duro : 50 MB espacio libre (1 MB aplicación – 9 Documentación – 30 MySql)
Módulos instalados
Sistema Operativo Maquina Virtual de Java v1.3 MySQL
Analizador Morfo-
Sintáctico Base de Datos
JDBC
MySQL Together 6.0 Java V. 1.3
Animación
Flash
Anima-Cuento
Archiv
o Texto
MISC-03-1-8
93
Descripción de Dependencias
Esta aplicación se desarrolló en su primera etapa como monousuario, aunque está planeada para un
trabajo posterior, como una aplicación para ser trabajada en Web.
Máquina:
Se comunica con Protocolo (s) Módulos con los que se comunica
Usuario JDBC - ODBC MySQL
MISC-03-1-8
94
Estructura de Procesos
Descripción de Componentes
Nombre Proceso
MySQL
Propósito
Presta los servicios necesario para acceder y almacenar los datos en la base de datos
Ubicación
Máquina del Usuario
Temporalidad
El proceso se ejecuta al iniciar el sistema
Módulos
Almacenamiento