analizador lÉxico-sintÁctico para el lenguaje de

95
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

Upload: others

Post on 25-Nov-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

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