Desarrollo de aplicación Web para la desambiguación de...

120
TITULACIÓN: Ingeniería técnica en informática de sistemas Desarrollo de aplicación Web para la desambiguación de sentidos de palabras por evocación Alumno/a: D./Dña. Xabier Aramendi Amenabar Director/a: D./Dña. German Rigau Claramunt Proyecto Fin de Carrera, junio de 2010

Transcript of Desarrollo de aplicación Web para la desambiguación de...

Page 1: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

TITULACIÓN: Ingeniería técnica en informática de sistemas

Desarrollo de aplicación Web para la desambiguación

de sentidos de palabras por evocación

Alumno/a: D./Dña. Xabier Aramendi Amenabar Director/a: D./Dña. German Rigau Claramunt

Proyecto Fin de Carrera, junio de 2010

Page 2: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

1

<Índice PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Índice

Índice ________________________________________________________________ 1

1- Introducción ________________________________________________________ 5

2- Antecedentes _______________________________________________________ 11

2.1- Redes semánticas _____________________________________________________ 112.1.1- WordNet __________________________________________________________________ 122.1.2- EuroWordNet ______________________________________________________________ 152.1.3- Multilingual Central Repository (MCR) __________________________________________ 18

2.2- Latent Semantic Analysis (LSA) ___________________________________________ 212.2.1- Infomap ___________________________________________________________________ 222.2.2- British National Corpus (BNC) _________________________________________________ 23

2.3- Word Sense Disambiguation (WSD) _______________________________________ 242.3.1- SSI-Dijkstra ________________________________________________________________ 24

2.4- Kyoto _______________________________________________________________ 24

3- DOP ______________________________________________________________ 29

3.1- Objetivo _____________________________________________________________ 29

3.2- Método de trabajo ____________________________________________________ 29

3.3- Alcance _____________________________________________________________ 313.3.1- Recursos humanos __________________________________________________________ 313.3.2- Recursos materiales _________________________________________________________ 313.3.3- Estructura de descomposición del trabajo (EDT) ___________________________________ 323.3.4- PFC (Proyecto fin de carrera) __________________________________________________ 34

3.4- Planificación temporal _________________________________________________ 403.4.1- Diagrama de Gantt __________________________________________________________ 40

3.5- Plan de contingencia ___________________________________________________ 423.5.1- Tabla de riesgos ____________________________________________________________ 423.5.2- Riesgos formativos __________________________________________________________ 433.5.3- Riesgos tácticos _____________________________________________________________ 433.5.4- Riegos operativos ___________________________________________________________ 45

3.6- Análisis de factibilidad _________________________________________________ 45

4- Arquitectura del Sistema _____________________________________________ 47

4.1- Servicio Web _________________________________________________________ 47

Page 3: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

2

<Índice PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

4.2- Aplicación Web _______________________________________________________ 52

5- Elección Tecnológica _________________________________________________ 55

5.1- El sistema ____________________________________________________________ 555.1.1- Fedora ____________________________________________________________________ 555.1.2- Apache ___________________________________________________________________ 565.1.3- PHP ______________________________________________________________________ 565.1.4- MySQL ____________________________________________________________________ 57

5.2- Desarrollo ___________________________________________________________ 585.2.1- Dreamweaver ______________________________________________________________ 585.2.2- Photoshop ________________________________________________________________ 595.2.3- Word _____________________________________________________________________ 595.2.4- Visio _____________________________________________________________________ 605.2.5- Excel _____________________________________________________________________ 605.2.6- PowerPoint ________________________________________________________________ 615.2.7- Firebug ___________________________________________________________________ 61

6- Desarrollo de la aplicación Web _______________________________________ 63

6.1- Captura de Requisitos __________________________________________________ 636.1.1- Modelo de Casos de Uso (MCU) _______________________________________________ 636.1.2- Modelo de Dominio (MD) ____________________________________________________ 69

6.2- Análisis ______________________________________________________________ 706.2.1- Registrar usuario ___________________________________________________________ 716.2.2- Consulta __________________________________________________________________ 726.2.3- Identificar _________________________________________________________________ 736.2.4- Gestionar usuario ___________________________________________________________ 746.2.5- Ver resultados _____________________________________________________________ 766.2.6- Consulta registrada _________________________________________________________ 79

6.3- Diseño ______________________________________________________________ 816.3.1- Pseudocódigos _____________________________________________________________ 816.3.2- Tablas de la BD _____________________________________________________________ 85

6.4- Implementación _______________________________________________________ 886.4.1- Infomap __________________________________________________________________ 896.4.2- SSI-Dijkstra ________________________________________________________________ 916.4.3- Detalles técnicos ____________________________________________________________ 93

6.5- Pruebas _____________________________________________________________ 95

6.6- Implantación _________________________________________________________ 96

7- Desarrollo del servicio Web ___________________________________________ 97

7.1- Diseño ______________________________________________________________ 97

7.2- Implementación ______________________________________________________ 100

Page 4: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

3

<Índice PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

7.3- Pruebas ____________________________________________________________ 100

7.4- Implantación ________________________________________________________ 100

8- Gestión ___________________________________________________________ 101

8.1- Comparativa por tareas _______________________________________________ 101

8.2- Comparativa entre procesos ____________________________________________ 102

8.3- Comparativa por procesos _____________________________________________ 1028.3.1- Procesos tácticos __________________________________________________________ 1038.3.2- Procesos formativos ________________________________________________________ 1048.3.3- Procesos operativos ________________________________________________________ 105

8.4- Conclusiones de la gestión _____________________________________________ 107

9- Conclusiones ______________________________________________________ 109

9.1- Mejoras ____________________________________________________________ 109

9.2- Valoración personal __________________________________________________ 110

10- Manual de usuario ________________________________________________ 111

10.1- Aplicación Web _____________________________________________________ 11110.1.1- Información general _______________________________________________________ 11110.1.2- Identificar usuario _________________________________________________________ 11210.1.3- Cambiar datos ____________________________________________________________ 11310.1.4- Consulta registrada ________________________________________________________ 11410.1.5- Buscar palabra ___________________________________________________________ 116

10.2- Servicio Web _______________________________________________________ 117

11- Referencias ______________________________________________________ 119

Page 5: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

4

<Índice PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Page 6: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

5

1- Introducción PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

1- Introducción

Este proyecto se enmarca dentro del área de investigación de la Inteligencia

Artificial (IA), y más concretamente en el del Procesamiento del Lenguaje Natural1

La desambiguación de sentidos de las palabras (WSD: Word Sense

Disambiguation

(PLN).

2

Hasta el momento, todos los métodos de WSD usan el contexto de la palabra a

desambiguar (Aguirre & Edwars 2007, 2007).En este proyecto de final de carrera,

proponemos un método de WSD sin contexto. La obtención del contexto se realiza por

evocación de las propias palabras a desambiguar.

) es tradicionalmente considerado uno de los problemas complejos de

la PLN. Un avance en este campo tendría un significante impacto en muchas

aplicaciones basadas en la web, como por ejemplo la recuperación de información de la

web, un mejor acceso a los servicios web, extracción de información, etc.

Existen diferentes aplicaciones que tratan de dar una solución al problema de la

desambiguación de palabras, en este proyecto nos centraremos en dos de estas

aplicaciones: Infomap y SSI-Dijkstra, y desarrollaremos una aplicación web que las

integre en una misma plataforma.

Infomap es un programa que se basa en el Análisis Semántico Latente (Latent

Semantic Analysis). Usando esta técnica es capaz de extraer términos de un gran

corpus, en este caso del British National Corpus3

1 http://es.wikipedia.org/wiki/Procesamiento_de_lenguajes_naturales

(BNC), estos términos que se

producen están semánticamente relacionados con las palabras consultadas por el

usuario.

2 http://en.wikipedia.org/wiki/Word_sense_disambiguation 3 http://www.natcorp.ox.ac.uk/corpus/index.xml

Page 7: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

6

1- Introducción PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Latent Semantic Analysis4

BNC es una colección de textos tanto escritas como habladas de 100 millones de

palabras provenientes de diferentes fuentes, diseñada para representar una amplia

sección de Inglés Británico de la última parte del siglo XX, tanto hablada como escrita.

(LSA) es un método matemático usado en el

procesamiento del lenguaje natural, que sirve para extraer y deducir relaciones entre los

diferentes términos de un conjunto de documentos, produciendo una serie de conceptos

relacionados con los términos y los documentos.

El software SSI-Dijkstra es un método iterativo que usa una base de

conocimiento para la desambiguación de la las palabras (WSD: Word Sense

Disambiguation).

Para ver el funcionamiento de la aplicación Web, vamos a proponer un ejemplo.

En el ejemplo, el usuario quiere descubrir los conceptos evocados por un término. En

concreto el usuario quiere averiguar los conceptos relacionados con el término, “bird

migration”. Para ello, nuestra aplicación procederá en dos pasos. En el primer paso,

Infomap indexado sobre el BNC, obtendrá las palabras semánticamente más

relacionados con el término propuesto. En el segundo paso, el sistema SSI-Dijkstra

tratará de encontrar los conceptos que subyacen a los términos propuestos por Infomap.

El usuario introduce las palabras especificando para cada una de ellas, su

categoría morfosintáctica, y especificando cuantas palabras relacionadas quiere obtener.

Bird (Nombre) Migration (Nombre)

Mediante Infomap, la aplicación Web obtendrá una serie de palabras

semánticamente relacionadas con las palabras introducidas. En nuestro ejemplo

queremos obtener las 10 palabras más relacionadas a las dos palabras iniciales. El

resultado se muestra en la tabla 1. 4 http://en.wikipedia.org/wiki/Latent_semantic_analysis

Page 8: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

7

1- Introducción PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Orden Palabra Tipo Peso 1 temperate Adjetivo 0.856035 2 bird Nombre 0.801014 3 migration Nombre 0.801014 4 grassland Nombre 0.800469 5 starling Nombre 0.795823 6 wild Adjetivo 0.795005 7 breeding Adjetivo 0.792956 8 fauna Nombre 0.790708 9 tropic Nombre 0.789682

10 mammal Nombre 0.785469

Tabla 1: Resultado de la evocación mediante Infomap.

Infomap obtiene una lista de palabras semánticamente relacionados con el

término buscado. Estas palabras están ordenadas dependiendo de un peso que indica el

grado de relación. Este peso es un número que expresa la fiabilidad de esa palabra

respecto al contexto de las palabras buscadas.

En el resultado de Infomap normalmente aparecen las palabras introducidas,

aunque pueden no aparecer. Puede haber palabras que estén semánticamente más

relacionados con el término, que las propias palabras del término buscado. En este

ejemplo, vemos que la palabra “temperate” tiene mayor peso que las propias palabras

introducidas.

Una vez obtenidos los resultados de Infomap podremos deseleccionar alguna

palabra evocada si vemos que no tiene mucha relación con el contexto en el que

tratemos. Una vez que el usuario está de acuerdo con las palabras evocadas, la

aplicación Web analizara este conjunto de palabras mediante SSI-Dijkstra

proporcionando los conceptos más apropiados según el contexto evocado.

Como una palabra puede tener varios sentidos posibles, dependiendo del

contexto en el que hablemos vamos a obtener unos conceptos u otros. El método de

desambiguación escogido es el SSI-Dijkstra. El método trata de obtener los significados

correctos que corresponden al contexto evocado. Los significados se identifican con un

Page 9: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

8

1- Introducción PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

número (identificador de concepto) y el tipo morfosintáctico del que se trata (n: nombre,

a: adjetivo, v: verbo, r: adverbio) que corresponden a un sentido en concreto (o Synset)

de WordNet. Tras la desambiguación del ejemplo que vemos, obtendríamos el resultado

que se muestra en la tabla 2.

Palabra Tipo Synset Significado temperate Adjetivo 02402559-a (of weather or climate) free from extremes; mild; or

characteristic of such weather or climate bird Nombre 01503061-n warm-blooded egg-laying vertebrates characterized

by feathers and forelimbs modified as wings migration Nombre 07312616-n the periodic passage of groups of animals

(especially birds or fishes) from one region to another for feeding or breeding

grassland Nombre 08598301-n land where grass or grasslike vegetation grows and is the dominant form of plant life

starling Nombre 01576695-n gregarious birds native to the Old World wild Adjetivo 02389220-a in a natural state; not tamed or domesticated or

cultivated breeding Adjetivo 01081068-a producing offspring or set aside especially for

producing offspring fauna Nombre 00015388-n a living organism characterized by voluntary

movement tropic Nombre 08675145-n either of two parallels of latitude about 23.5

degrees to the north and south of the equator representing the points farthest north and south at which the sun can shine directly overhead and constituting the boundaries of the Torrid Zone or tropics

mammal Nombre 01861778-n any warm-blooded vertebrate having the skin more or less covered with hair; young are born alive except for the small subclass of monotremes and nourished with milk

Tabla 2: Resultado de la desambiguación mediante SSI-Dijkstra.

El usuario al tener una serie de palabras con sus significados correspondientes,

se podrá hacer una idea de los conceptos que pueden estar relacionados con los términos

iniciales. Puede haber alguna palabra que su significado no corresponda al contexto, por

lo que el usuario tendrá la posibilidad de registrar esa consulta e indicar el significado

incorrecto.

Page 10: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

9

1- Introducción PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Al tener registrado las consultas realizadas, posteriormente de podrán analizar

los resultados obtenidos. Estos resultados se podrán utilizar para analizar el

funcionamiento de las aplicaciones utilizadas en la evocación y en la desambiguación

de las palabras. Hay que tener en cuenta, que no se asegura que el usuario haga una

selección apropiada de las palabras incorrectas.

El objetivo de este proyecto es elaborar una aplicación web que proporcione un

interfaz para la utilización de la aplicación Infomap, y para la obtención de las

interpretaciones de las palabras evocadas, mediante la aplicación SSI-Dijkstra.

La aplicación Web gestionará a los usuarios para poder ofrecer información

personalizada. Está información contiene los resultados obtenidos en las consultas

anteriores y el historial de las consultas que hayan realizado.

En esta aplicación Web abra la posibilidad de poder realizar consultas sin que el

usuario esté registrado. También se ofrece información sobre las técnicas de evocación

y desambiguación utilizadas en está aplicación Web.

Además de la aplicación Web, se realizará un servicio Web que ofrecerá usar

conjuntamente la evocación y la desambiguación de las palabras.

Page 11: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

10

1- Introducción PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Page 12: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

11

2- Antecedentes PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

2- Antecedentes

Sabemos que la desambiguación de palabras (WSD: Word Sense

Desambiguation) es uno de los problemas complejos de la IA, y que actualmente

existen aplicaciones que tratan de dar solución a este problema, como pueden ser

Infomap o SSI-Dijkstra. Estos programas se apoyan en las redes semánticas para la

extracción del conocimiento.

Para entender bien el marco en el que se desarrolla el proyecto, es necesario

introducir algunos conceptos.

2.1- Redes semánticas

Una red semántica es una forma de representación de conocimiento lingüístico

en la que los conceptos y sus interrelaciones se representan mediante un grafo. Los

conceptos o unidades léxicas se representan mediante los nodos del grafo, y las

interrelaciones que existen entre conceptos serán representadas por las aristas dirigidas

del grafo. En el caso de que no existan ciclos entre conceptos, los grafos también

pueden ser dibujados en forma de árbol.

En las redes semánticas, un concepto importante es la distancia semántica que se

expresa en relación al número y tipo de enlaces que separan un nodo de otro.

Page 13: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

12

2- Antecedentes PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Figura 1: Ejemplo de red semántica

En la figura 1 podemos ver representada cierto conocimiento acerca de los

mamíferos. En ella identificamos los elementos característicos de las redes semánticas

como los nodos (mamífero, animal, oso, pez,…), las relaciones (es un, tiene, vive en) y

las distancias.

Existen diversos tipos de relaciones semánticas como la sinonimia/antonimia

(relación entre sinónimos), hiponimia/hiperonimia (relación entre subordinados y

superordinados), la meronimia/holonimia (relación entre subconjuntos y conjuntos

globales), entre otras.

Una de las redes semánticas más conocidas es WordNet5

.

2.1.1- WordNet

Desarrollada en la universidad de Princeton, WordNet (Miller et al., 1990) es

una base de datos léxica de dominio general para el inglés que actualmente constituye

uno de los recursos léxicos más utilizados en el área de PLN. WordNet (WN) fue creada

para intentar organizar la información léxica por significados, a diferencia de los

5 http://wordnet.princeton.edu

Page 14: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

13

2- Antecedentes PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

diccionarios convencionales, donde esta información está organizada por la forma de las

unidades léxicas.

WN está estructurada como una red semántica cuyos nodos, denominados

synsets (synonym sets, o conjuntos de sinónimos) constituyen su unidad básica de

significado. Cada uno de ellos se compone de un conjunto de las lexicalizaciones que

representan un sentido y se identifica mediante un “offset” (byte) y su correspondiente

PoS (Part-of-Speech); que puede ser (n) para nombres, (v) para verbos, (a) para

adjetivos y (r) para adverbios:

02152053#n fish#1 01926311#v run#1 02545023#a funny#4 00005567#r automatically#1

El número que aparece después de cada palabra indica su número de sentido.

Una palabra puede ser polisémica, esto es, tener varios significados, por ejemplo:

02152053#n fish#1; representa la palabra fish con el sentido de pez como animal vertebrado acuático. 07775375#n fish#2; representa la palabra fish con el sentido de pescado como alimento.

También puede ser que varias palabras tengan el mismo significado, esto es, que

sean sinónimas. En Wordnet están representados en el mismo synset:

02383458#n car#1, autor#1, automobile#1, machine#4, motorcar#1; representa el vehículo de cuatro ruedas.

Todos los synsets incluyen una glosa a modo de definición similar a la del

diccionario tradicional, que describe el significado del concepto de forma explícita. Por

ejemplo:

02383458#n car#1; 4-wheeled motor vehicle; usually propelled by an internal combustion engine: he needs a car to get to work;

Page 15: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

14

2- Antecedentes PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Como ya se expuso anteriormente, WordNet está estructurada como una red

semántica. Además de la información que pueden proporcionar los sinónimos

(componentes del synset ) y la glosa, se establecen diferentes relaciones entre los

synsets, por ejemplo:

Hiperonimia: Es el término genérico usado para designar a una clase de

instancias específicas. Y es un hiperonimia de X, si X es una clase de Y.

tree#n#1 HYPERONYM oak#n#2

Hiponimia: Es el término específico usado para designar el miembro de una

clase, X es un hipónimo de Y, si X es una clase de Y. En el caso de los verbos se

denomina Troponimia.

oak#n#2 HYPONYM tree#n#1

Antonimia: Es la relación que enlaza dos sentidos con significados opuestos.

active#a#1 ANTONYM_OF inactive#a#2 inactive#a#2 ANTONYM_OF active#a#1

Meronimia: Es la relación que se define como componente de, substancia de, o

miembro de algo, X es merónimo de Y si X es parte de Y.

car#n#1 HAS_PART window#n#2 milk#n#1 HAS_SUBSTANCE protein#n#1 family#n#1 HAS_MEMBER child#n#2

Holonimia: Es la relación contraria a la meronimia, Y es holónimo de X si X es

una parte de Y.

window#n#2 PART_OF car#n#1 protein#n#1 SUBSTANCE_OF milk#n#1 child#n#2 MEMBER_OF family#n#2

Page 16: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

15

2- Antecedentes PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

En la tabla 3, se puede ver las estadísticas de la base de datos WordNet, de la

versión 3.0. Estos datos indican la cantidad de palabras, synsets, sentidos… que tiene

WordNet. Estos datos son del Junio del 2010.

Nombre Verbo Adjetivo Adverbio Total Palabras diferentes 117798 11529 21479 4481 155287 Synsets 82115 13767 18156 3621 117659 Pares de palabra-significado 146312 25047 30002 5580 206941 Palabras y sentidos monosémicas 101863 6277 16503 3748 128391

Palabras polisémicas 15935 5252 4976 733 26896 Sentidos polisémicos 44449 18770 14399 1832 79450 Promedio de polisemia incluyendo palabras monosémicas

1.24 2.17 1.40 1.25 -

Promedio de polisemia excluyendo palabras monosémicas

2.79 3.57 2.71 2.50 -

Tabla 3: Información sobre WordNet.

2.1.2- EuroWordNet

El éxito de Wordnet impulsó la creación de nuevos proyectos similares para

otros idiomas. De éstos el más destacado ha sido EuroWordNet6

Tras la finalización del proyecto EWN, empezaron a desarrollarse wordnets para

idiomas como el catalán, euskera, portugués, griego, búlgaro, ruso, sueco, francés,

(Vossen, 1998).

EuroWordNet (EWN) consiste en una extensión multilingüe de WN, compuesta por

bases de datos léxicas en 8 idiomas europeos. En principio se desarrollo para inglés,

holandés, castellano e italiano.

6 http://www.illc.uva.nl/EuroWordNet

Page 17: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

16

2- Antecedentes PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

alemán, etc. Actualmente, la creación de estos wordnets está coordinada por “Global

Wordnet Asociation7

En la figura 2 podemos ver cuál es la arquitectura que usa EuroWordNet, y

como se conectan los WordNets locales de diferentes idiomas a través del Índice

InterLingüa.

”.

InterLingual Index (ILI, del inglés Índice InterLingüa) es un índice general de

conceptos que permite conectar entre sí las unidades consideradas equivalentes en su

significado en bases de datos de lenguas diferentes, permitiendo así pasar de términos

de un idioma a términos de otro.

Cada wordnet local de EWN fue construido de forma independiente con los

recursos disponibles en cada lengua, formando así un conjunto de módulos

independientes. La conexión entre todos estos sistemas autónomos se hizo a través del

Índice Interlingüa.

Cada índice en el ILI es un synset con una etiqueta de categoría sintáctica, una

glosa y la referencia a su origen. Los synsets de cada wordnet particular están enlazados

a algún índice del ILI. De esta forma, EWN proporciona la posibilidad de ir de una

lexicalización de un concepto en una lengua determinada a otra lexicalización de ese

mismo concepto en otra lengua diferente. Por ejemplo, partiendo del verbo español

convertirse a través de su equivalente en el ILI, “to become”, se puede llegar a su

correspondiente en italiano, “diventare”:

convertirse (esp) Eq_Near_Synonym to become (ILI) Eq_Near_Synonym (it) diventare

7 http://www.globalwordnet.org/

Page 18: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

17

2- Antecedentes PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Figura 2: Arquitectura de EuroWordNet

En la figura 2 se emplea el sentido drive para mostrar cómo se utilizan los

diferentes tipos de enlaces de EWN. En este caso tenemos cuatro de los wordnets

locales (ingles, holandés, italiano, castellano), para cada uno de ellos existe su

correspondiente synset para el sentido que se está utilizando de ejemplo, en español

sería conducir, en italiano “guidare”, en holandés “rijden” y en inglés “drive”. Estos

synsets se relacionan con otros dentro de sus wordnets mediante enlaces dependientes

del lenguaje (en la figura se identifican con el número romano III), por ejemplo, en el

caso del castellano, conducir estaría conectado mediante este tipo de enlaces con

“transitar”, “cabalgar”,… Por otra parte cada uno de ellos tiene un enlace desde su

lenguaje específico a su correspondiente registro del Índice Interlingüa (número II). De

este modo, al estar los cuatro synsets conectados al mismo registro ILI, podemos saber

que todos representan el mismo sentido. Además, existe otro tipo de enlace

independiente del lenguaje (número I) desde este registro ILI a la información adicional

que ofrecen las distintas ontologías sobre este sentido. Así, cada uno de los synsets de

Page 19: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

18

2- Antecedentes PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

los cuatro wordnets del ejemplo, adquieren esas características representadas en

Domain-Ontology y Top-Ontology, sin la necesidad de tener un enlace a las mismas.

2.1.3- Multilingual Central Repository (MCR)

El MCR (Multilingual Central Repository8

Meaning

) (Atserias et al., 2004) es el resultado

de la fusión de distintos recursos (diversas versiones de WordNet, ontologías y bases

del conocimiento) que se llevó a cabo dentro del proyecto MEANING. Además

mantiene el modelo utilizado en EWN, cuya arquitectura incluye InterLingual Index

(ILI), WordNet Domains y Top Concept Ontology.

9

En concreto, el proyecto se centró en los wordnets para 5 idiomas europeos:

inglés, italiano, español, catalán y euskera. Se pretendía enriquecer su estructura con

nueva información léxico-semántica extraída automáticamente de la web. Como

resultado de este trabajo se generaron varios resultados:

(Rigau et al., 2002) representa uno de los proyectos más ambiciosos

relacionados con WN y EWN. Su objetivo principal consistió en la adquisición

automática del conocimiento lingüístico (en especial, del conocimiento semántico o

conceptual) a partir de la Web y construcción de recursos léxicos más eficientes, ya que

los recursos léxicos existentes no proporcionan toda la información necesaria para poder

desambiguar con éxito la semántica de los textos.

Conjunto de herramientas para adquisición automática de conocimiento

semántico a partir de grandes colecciones de textos disponibles en la

web.

8 http://www.fi.muni.cz/gwc2004/proc/106.pdf 9 http://rua.ua.es/dspace/bitstream/10045/1565/1/PLN_31_41.pdf

Page 20: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

19

2- Antecedentes PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Herramientas para el enriquecimiento automático de EWN con el

conocimiento que una el nivel sintáctico con el semántico: aplicaciones

para la adquisición de la terminología perteneciente a un dominio

específico, la identificación y la extracción de sentidos nuevos y de

agrupaciones de sentidos relacionados, la adquisición de etiquetas de

dominio, de alternancias de diátesis, marcos de subcategorización,

restricciones selectivas y de algunas relaciones léxico-semánticas

específicas.

Un sistema de desambiguación semántica automática para las lenguas

incluidas en el proyecto basado en algoritmos de aprendizaje automático

capaces de modelar el comportamiento de cada sentido a partir de textos

semánticamente anotados y textos no anotados.

La versión final de MCR está integrada por wordnets para cinco idiomas

diferentes (inglés, italiano, español, catalán y euskera) y contiene 162384 relaciones

semánticas únicas entre conceptos. También está enriquecido con 466972 propiedades

semánticas extraídas de otras fuentes, como WordNet Domains, Top Concept Ontology

o SUMO.

Para poder interactuar con el MCR se desarrolló WEI 10

(Web EuroWordNet

Interface) que es una interfaz web que permite hacer consultas en el sistema. Se puede

ver un ejemplo de esta interfaz en la figura 3.

10 http://adimen.si.ehu.es/cgi-bin/wei/public/wei.consult.perl

Page 21: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

20

2- Antecedentes PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Figura 3: Ejemplo de una consulta en WEI.

Esta imagen representa una consulta sobre el wordnet English_1.6 de la palabra

“study”. Los resultados corresponden a los sentidos de esa palabra en los wordnets

English_1.6 (en azul) y Spanish_1.6 (en verde). A la izquierda de los sentidos aparece el

conocimiento ontológico (WnDomains, TCO,…) asignado a cada sentido. En este caso,

como se han seleccionado las opciones Gloss y Rels, el sistema también ha devuelto una

glosa (aparece a ala derecha) y el número y tipo de relaciones que tiene cada sentido.

Page 22: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

21

2- Antecedentes PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

2.2- Latent Semantic Analysis (LSA)

Latent Semantic Analysis 11

LSA no es una técnica tradicional en el procesamiento de lenguaje natural, no

usa diccionarios escritos por los humanos, ni bases de conocimiento, ni redes

semánticas, ni gramaticales, ni morfológicas ni similares. Toma como única entrada los

documentos de un gran corpus de texto.

(LSA) es una teoría y método

matemático/estadístico usado en el procesamiento del lenguaje natural, que sirve para

extraer y deducir relaciones entre los diferentes términos de un conjunto de documentos.

La idea subyacente es que la suma de todas las palabras de los contextos en los

que aparece y en los que no aparece la palabra dada, proporciona un conjunto de interés

que determina la similitud de los significados entre las palabras y entre los conjuntos de

palabras.

LSA puede utilizar un término-documento matriz que describe las ocurrencias

de los términos en los documentos donde las filas corresponden a los términos y las

columnas corresponden a los documentos. Un ejemplo típico de la ponderación de los

elementos de la matriz es tf-idf (term frequency–inverse document frequency). El

elemento de la matriz es proporcional a la cantidad de veces que los términos aparecen

en cada documento, en términos poco usuales se ponderarán hasta reflejar su

importancia relativa.

Esta matriz también es común en los modelos estándar de semántica, aunque no

es necesario expresarlo como una matriz de manera explícita, ya que las propiedades

matemáticas de las matrices no se utilizan siempre.

11 http://en.wikipedia.org/wiki/Latent_semantic_analysis

Page 23: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

22

2- Antecedentes PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Después de la construcción de la matriz de las ocurrencias, LSA encuentra una

aproximación de bajo rango a la expresión-documento matriz. Podría haber varias

razones para estas aproximaciones:

o El plazo original de documento matriz se presume demasiado grande

para los recursos informáticos, en este caso, el rango aproximado de baja

de la matriz se interpreta como una aproximación.

o El plazo original de documento matriz se presume ruido: por ejemplo, los

casos anecdóticos de los términos tienen que ser eliminadas. Desde este

punto de vista, la aproximación de la matriz se interpreta como una

matriz mejor que el original.

o El plazo original de documento matriz se presume demasiado escasa en

relación con el "verdadero" plazo-documento matriz. Es decir, están las

listas matriz original de las palabras que están actualmente en el

documento, mientras que podrían estar interesados en todas las palabras

relacionadas con cada documento En general un conjunto mucho más

amplio debido a la sinonimia.

2.2.1- Infomap

Una de las aplicaciones que necesitaremos para desarrollar el servicio web será

Infomap. Es una herramienta que se basa en el LSA.

Dado una serie de palabras, Infomap evoca otra serie de palabras estrechamente

relacionados con la primera serie. Las nuevas palabras que obtiene Infomap, se obtienen

de un gran corpus, en este caso, British National Corpus (BNC). El funcionamiento de

Infomap se analizará más adelante.

Page 24: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

23

2- Antecedentes PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

2.2.2- British National Corpus (BNC)

El British National Corpus (BNC) es una colección de muestras tanto escritas

como habladas de 100 millones de palabras provenientes de diferentes fuentes, diseñada

para representar una amplia sección de Inglés Británico de la última parte del siglo XX,

tanto hablada como escrita.

La parte escrita del BNC (90%) incluye, por ejemplo, extractos de periódicos

regionales o nacionales, revistas especializadas y revistas para todas las edades e

intereses, libros académicos, cartas y memorandos publicados y no publicados, ensayos

de la escuela y la universidad, entre otros muchos textos. La parte hablada (10%)

consiste en la transcripción por voluntarios de diferentes edades, regiones y clases

sociales y el lenguaje hablado recogido de distintos contextos, que van desde reuniones

de negocios o reuniones gubernamentales hasta emisiones radiofónicas.

El corpus se inicio a construir en 1991, y fue terminado en 1994. No se han

añadido nuevos textos desde que se finalizará el proyecto, pero el corpus fue

ligeramente revisado antes del lanzamiento de la segunda edición BNC World (2001) y

de la tercera edición BNC XML Edition (2007). Desde que se completó el proyecto dos

sub-corpus con material procedente del BNC han sido liberados por separado: el BNC

Sampler (una colección general de un millón de palabras escritas, y un millón de

palabras de habla) y el BNC Baby (cuatro muestras de un millón de palabras de cuatro

géneros diferentes).

El BNC tiene las siguientes características:

Monolingüe: El BNC está escrito en Inglés Británico moderno, y no en

ninguna otra lengua hablada en el Reino Unido. Sin embargo, palabras de

inglés, no Británico y de diferentes idiomas, aparecen en el corpus.

Page 25: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

24

2- Antecedentes PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Sincrónico: Cubre el Inglés Británico de finales del siglo XX, más que el

desarrollo histórico que produjo.

General: Incluye muchos y variados estilos, no se limita a ningún tema

en concreto, género o registro. En particular, contiene ejemplos tanto de

lengua hablada como escrita.

2.3- Word Sense Disambiguation (WSD)

WSD es la desambiguación de los sentidos de las palabras. En nuestro caso

hemos utilizado la técnica SSI-Dijkstra.

2.3.1- SSI-Dijkstra

El software SSI-Dijkstra (Cuadros & Rigau 2008) es una versión del algoritmo

SSI (Structural Semantic Interconnections). El algoritmo SSI-Dijkstra nos va a permitir

encontrar los sentidos apropiados a cada una de las palabras obtenidas por Infomap. El

algoritmo SSI es muy simple y consiste en un paso de inicialización y en ciertos pasos

iterativos. Este algoritmo lo analizaremos más adelante.

2.4- Kyoto

El proyecto KYOTO12

12 http://www.kyoto-project.eu

(Knowledge Yielding Ontologies for Transition-based

Organization) (ICT-211423) empezó en Marzo de 2008 y tiene previsto terminar en

Marzo de 2011.

Page 26: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

25

2- Antecedentes PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

KYOTO tiene como objetivo construir un sistema de información independiente

del lenguaje para un dominio específico (medio ambiente, ecología y biodiversidad).

KYOTO está desarrollando una infraestructura wiki para a largo plazo permitir

compartir conocimiento (no necesariamente del dominio relacionado con el proyecto)

entre diferentes idiomas, culturas, ordenadores, … El wiki de medio ambiente ayudará a

los usuarios a ponerse de acuerdo sobre los conceptos y términos de interés, y servirá

para compartir conocimiento. Este proceso se basa en la extracción automática de

términos y significados sacados de documentos facilitados por los usuarios.

El resultado será una ontología compartida independiente del lenguaje que estará

vinculada a WordNets de inglés, castellano, euskera, italiano, holandés, chino y japonés.

Para cada idioma, la identificación y la extracción léxica de conceptos se llevará a cabo

por los Tybots, que también serán los encargados de introducir nuevas entradas a la

ontología. A través de las entradas de la ontología será posible relacionar términos de

diferentes idiomas.

En la figura 4 podemos ver cómo funciona este proceso.

Page 27: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

26

2- Antecedentes PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Figura 4: Ciclo de KYOTO

En la figura 4 podemos ver el funcionamiento del sistema de información

KYOTO, que básicamente se basa en 6 pasos:

1. Personas de un dominio concreto especifican los documentos o páginas

web del dominio en múltiples idiomas.

2. El modulo de captura obtiene el texto procedente de las fuentes de

información, por ejemplo el texto “repentino aumento de las emisiones

de CO2 en 2008 en Europa”. Los procesadores lingüísticos analizan el

texto y generan una representación de la estructura lingüística.

3. Los robots terminológicos (TyBots) extraen automáticamente todos los

términos importantes y las posibles relaciones semánticas, por ejemplo,

“emisión de CO2”, y relacionaría este término con un WordNet ya

existente. Los TyBots pueden hacer este trabajo para cualquier idioma.

Page 28: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

27

2- Antecedentes PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

4. El wiki de medio ambiente (Wikyoto) permite a las personas del dominio

ponerse de acuerdo en el significado de los términos del dominio. Los

significados son formalizados en una ontología del dominio que puede

ser usada por programas de ordenador. Términos parecidos de diferentes

idiomas pueden relacionarse con un mismo concepto de la ontología. Por

ejemplo, el término Alemán “CO2-uitstoot” puede relacionarse con el

término CO2Emission de la ontología.

5. Los llamados Kybots utilizan los términos y el conocimiento para extraer

información de los textos escritos en varios idiomas. En el caso de un

hecho, tenemos una instancia específica o un caso de las emisiones de

CO2 que tuvo lugar en un determinado momento y en una región

determinada. Dada la ontología y WordNets de diferentes idiomas, los

Kybots pueden recolectar estos hechos una y otra vez, para grandes

volúmenes de datos de diferentes estados y de diferentes idiomas.

6. Los datos son indexados y pueden ser accedidos por cualquiera a través

de una búsqueda semántica, otra vez más independientemente del

idioma. Por ejemplo, datos sobre las emisiones de CO2 en Europa del

2000 al 2009.

Page 29: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

28

2- Antecedentes PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Page 30: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

29

3- DOP PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

3- DOP

3.1- Objetivo

El objetivo de este proyecto será la de elaborar un servicio web. La principal

funcionalidad de este servicio web es la de proporcionar un interfaz para la utilización

de la aplicación Infomap, que aplica el Análisis Semántico Latente (Latent Semantic

Analisis), y la de obtención de las interpretaciones de las palabra, mediante la aplicación

SSI-Dijkstra.

Este servicio web, aparte de tener información sobre las aplicaciones que utiliza,

tendrá dos operaciones principales. La primera operación será la de ofreciendo unas

palabras y definiendo de que tipo son (n, v, a, r), obtener las palabras semánticamente

más similares al aplicar la aplicación Infomap, y la de mostrar los significados más

apropiados, mediante la aplicación SSI-Dijkstra. Para la segunda operación, de la que

sería necesario registrarse, se da la oportunidad de ir paso a paso, e ir deseleccionando

las palabras no deseadas. Además, en el resultado deberíamos poder señalar las palabras

que consideramos erróneas, guardando estos datos en la base de datos.

Al crear un servicio web que utilice estas dos aplicaciones conjuntamente, se

evita la necesidad de instalar estas dos aplicaciones, creando una aplicación nueva:

evocación de conceptos.

3.2- Método de trabajo

Se utilizará el Proceso Unificado de Desarrollo (PUD) que se caracteriza por

estar dirigido por casos de uso, centrado en la arquitectura y por ser iterativo e

incremental.

Page 31: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

30

3- DOP PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Se realizarán 4 iteraciones:

o En la primera iteración se harán modificaciones a la versión de SSI-

Dijkstra, para que la entrada de los parámetros que recibe y el resultado

que devuelva se ajusten a las necesidades del proyecto.

o En la segunda iteración se realizará el primer prototipo de la aplicación

Web.

o En la tercera iteración se realizará la aplicación Web partiendo del

primer prototipo de la aplicación Web.

o En la cuarta iteración se realizará el servicio web que recibiendo unos

parámetros predefinidos devuelva la evocación y desambiguación de

esas palabras como resultado.

Los procesos tácticos, tales como el análisis del entorno, la gestión de las

herramientas que se utilizarán,… se harán durante el transcurso de todo el proyecto. Los

documentos que se les mandara al profesor, serán de la extensión .pdf si se trata de un

documento de texto, y de tar.gz si se trata de varios ficheros de una extensión diferente.

Los procesos formativos necesarios para la realización del proyecto, se

realizarán sobre todo al principio del proyecto. Durante el transcurso del proyecto el

alumno consultará en Internet o en la información ofrecida por el director. Aun así, si el

alumno tuviera dudas, podría consultar con el director.

Los procesos operativos, que se tomarán las decisiones sobre el proyecto, se

realizarán por objetivos. En cada iteración, se definirán una serie de objetivos que se

irán cumpliendo en los plazos, y en el modo que se ha predefinido entre el director y el

alumno. Las decisiones que se tomen entre el director y el alumno, serán tomados en las

reuniones o mediante comunicación por correo electrónico. Durante el transcurso de un

Page 32: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

31

3- DOP PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

objetivo, si se necesita cambios o se quiere realizar cambios en el proyecto, se le

informará al director para redefinir los objetivos.

Las reuniones se realizarán tantas veces como haga falta. Para planificar las

reuniones se utilizará el correo electrónico, y las reuniones se realizarán en el despacho

del director.

También se realizarán copias de seguridad de los documentos del proyecto cada

10 días. Estas copias de seguridad se copiarán en un USB o en un CD.

3.3- Alcance

3.3.1- Recursos humanos

El personal que se dispone en este proyecto es del alumno y el profesor asignado

como director del proyecto. El alumno tendrá que ir haciendo los objetivos del proyecto

y la memoria.

3.3.2- Recursos materiales

El alumno cuenta con un ordenador personal para el desarrollo del proyecto. El

ordenador dispone de un sistema operativo Linux instalado, ya que para la ejecución de

las aplicaciones que se van a utilizar es necesario este sistema operativo. En concreto se

utilizará Fedora, ya que con algún otro sistema operativo, como en el caso de Ubuntu,

da algún fallo con las librerías.

El alumno dispone de Cds, y dispositivos de almacenamiento extraíble, para las

copias de seguridad que debe de realizar.

Page 33: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

32

3- DOP PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

El profesor encargado del proyecto, tendrá un ordenador de sobremesa, con

acceso a internet, que hará de servidor, y este será el que contendrá el resultado final del

proyecto, es decir, será este servidor donde se estará instalado el servicio web. También

dispondrá de un despacho en la Facultad de Informática de san Sebastián donde se

harán las reuniones.

El alumno también dispondrá del material de oficina que necesite, como hojas,

bolígrafos...

3.3.3- Estructura de descomposición del trabajo (EDT)

En la figura 5 podemos ver un diagrama que expone todas las tareas que se van a

realizar en este proyecto.

Page 34: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

33

3- DOP PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Figura 5: Diagrama EDT.

Page 35: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

34

3- DOP PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

3.3.4- PFC (Proyecto fin de carrera)

1. Procesos tácticos 1.1. Análisis de entorno

Descripción: El análisis general del proyecto, que se seleccionara las herramientas y el entorno en que se hará el proyecto.

Duración estimada: 5 horas.

1.2. Gestión de herramientas

Descripción: La instalación, copias de seguridad y mantenimiento de las herramientas que se utilizarán.

Duración estimada: 2 horas.

1.3. Planificación

Descripción: La planificación general y la gestión del proyecto, que incluye el DOP.

Duración estimada: 30 horas.

1.4. Reuniones

Descripción: Las reuniones que se realizan entre el alumno y el director del proyecto para tomar decisiones tácticas del proyecto.

Duración estimada: 10 horas.

Page 36: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

35

3- DOP PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

2. Procesos formativos 2.1. Herramientas

Descripción: La formación y el tiempo que se tarda en que el alumno aprenda las funciones que necesita utilizar en esas herramientas que ha instalado.

Duración estimada: 3 horas.

2.2. Lenguaje de programación

Descripción: La formación y la consulta de dudas sobre los lenguajes de programación Perl, PHP y Javascript. También se incluye el lenguaje HTML.

Duración estimada: 10 horas.

2.3. Tecnologías

Descripción: El conocimiento que debe de saber sobre el entorno en que debe de trabajar, que será Fedora, Inofomap, SSI-Dijkstra, WEI, …

Duración estimada: 2 horas.

2.4. Memoria

Descripción: La redacción y correcciones de la memoria.

Duración estimada: 80 horas.

2.5. Presentación

Descripción: La creación de la presentación y la preparación de la defensa.

Duración estimada: 8 horas.

Page 37: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

36

3- DOP PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

3. Procesos operativos 3.1. Primera iteración

3.1.1. Análisis de entorno

Descripción: Se analizará el entorno en que se realizará los prototipos de la aplicación Web, el servicio Web, y las necesidades que se prevé que haya.

Duración estimada: 2 horas.

3.1.2. Captura de requisitos

Descripción: Se hará una captura de requisitos general de las necesidades de la aplicación Web y el servicio Web.

Duración estimada: 3 horas.

3.1.3. Modificar SSI-Dijkstra

Descripción: Se modificara el programa de SSI-Dijkstra para que permita coger los parámetros por url y de cómo resultado un documento XML que luego se podrá utilizar tanto por la aplicación Web y por el servicio Web.

Duración estimada: 8 horas.

3.2. Segunda iteración (aplicación Web: prototipo 1)

3.2.1. Captura de requisitos

Descripción: La captura de requisitos del primer prototipo que será una aplicación Web sencilla.

Duración estimada: 2 horas.

Page 38: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

37

3- DOP PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

3.2.2. Análisis

Descripción: El análisis del primer prototipo.

Duración estimada: 2 horas.

3.2.3. Diseño

Descripción: El diseño del primer prototipo.

Duración estimada: 3 horas.

3.2.4. Implementación

Descripción: La implementación en PHP y HTML del primer prototipo.

Duración estimada: 10 horas.

3.2.5. Pruebas

Descripción: Las pruebas, tanto en el servidor local como en el servidor final, para verificar el funcionamiento de la aplicación Web, y encontrar fallos para no repetirlas en el segundo prototipo.

Duración estimada: 2 horas.

3.2.6. Implantación

Descripción: Los cambios que se han tenido que hacer en el primer prototipo para implantarlo en el servidor final.

Duración estimada: 30 minutos.

Page 39: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

38

3- DOP PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

3.3. Tercera iteración (aplicación Web: prototipo 2)

3.3.1. Captura de requisitos

Descripción: La captura de requisitos del segundo prototipo de la aplicación Web que incluirá la base de datos que utilizará este prototipo.

Duración estimada: 12 horas.

3.3.2. Análisis

Descripción: El análisis del segundo prototipo.

Duración estimada: 10 horas.

3.3.3. Diseño

Descripción: El diseño del segundo prototipo.

Duración estimada: 7 horas.

3.3.4. Implementación

Descripción: La implementación del segundo prototipo que se realizara con AJAX y PHP.

Duración estimada: 90 horas.

3.3.5. Pruebas

Descripción: Las pruebas en el servidor local para obtener una versión estable para implantarlo en el servidor final. Y las pruebas en el servidor final para hacer los cambios necesarios para verificar su correcto funcionamiento.

Duración estimada: 15 horas.

Page 40: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

39

3- DOP PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

3.3.6. Implantación

Descripción: Los cambios necesarios que se tienen que realizar para que este segundo prototipo funcione en el servidor final.

Duración estimada: 2 horas.

3.4. Cuarta iteración (servicio Web)

3.4.1. Diseño

Descripción: El diseño del servicio Web.

Duración estimada: 1 hora y 30 minutos.

3.4.2. Implementación

Descripción: La implementación del servicio web que se hará con AJAX, que será código que se ha utilizado en el segundo prototipo de la aplicación Web.

Duración estimada: 4 horas.

3.4.3. Pruebas

Descripción: Las pruebas básicas que se hagan de su correcto funcionamiento, sabiendo que parte del código utilizado ha sido probado en las pruebas realizadas al segundo prototipo de la aplicación Web.

Duración estimada: 1 hora.

3.4.4. Implantación

Descripción: La implantación del servicio Web en el servidor final.

Duración estimada: 1 hora.

Page 41: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

40

3- DOP PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

3.4- Planificación temporal

Se utilizará el diagrama de Gantt para ver el periodo de tiempo que ha requerido

cada tarea del proyecto. Estás tareas se han explicado en la sección anterior.

3.4.1- Diagrama de Gantt

En la figura 6 se ve el periodo de tiempo en que se va a realizar cada tarea. Se ha

hecho hasta finales de Marzo, que es la fecha en que se espera terminar el proyecto. Al

no saber la fecha de la defensa del proyecto, se supone que el tiempo entre el final del

proyecto y la fecha en que se va a realizar la defensa del proyecto, la única tarea que el

alumno realizara en este proyecto será la tarea “Presentación”.

Page 42: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

41

3- DOP PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Figura 6: Diagrama de Gantt.

Page 43: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

42

3- DOP PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

3.5- Plan de contingencia

Sabiendo que siempre existen riesgos e imprevistos que pueden causar un gran

impacto para la finalización del proyecto, es conveniente definir unas soluciones

posibles para los riesgos que se puedan dar, para minimizar estos daños.

Estos riesgos aparecen en la tabla de riesgos, y los analizaremos uno por uno

clasificados en tres grandes grupos, que son formativos, tácticos y operativos.

3.5.1- Tabla de riesgos

En la tabla 4 se muestran los riesgos y la probabilidad de que surjan junto a la

consecuencia que estimamos, tomando en cuenta las soluciones que mencionaremos a

continuación.

Riesgo Probabilidad Consecuencia Dificultad en entender Medio Bajo Pérdida de documentación Bajo Bajo Indisponibilidad para reunir Medio Muy bajo Retraso en la tarea Medio Bajo Ordenador estropeado Muy bajo Medio Perdida de datos Bajo Medio Problemas en manejar software Medio Bajo

Tabla 4: Riesgos

Page 44: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

43

3- DOP PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

3.5.2- Riesgos formativos

Dificultad en entender

Riesgo: Dificultad del alumno para entender algo relacionado con el proyecto

que le haga perder excesivo tiempo, con lo que llevaría al riesgo de no poder realizar la

tarea a tiempo.

Solución: El alumno le informará al profesor encargado del proyecto del

problema, y acordarán realizar alguna reunión para aclarar las dudas o le informara

donde puede encontrar información añadida para solucionarlo o ampliaran el plazo de la

tarea para que tenga más tiempo para hacerlo.

Pérdida de documentación

Riesgo: El alumno pierde documentación o acceso a la documentación que

dispone para la formación que dispone.

Solución: El alumno buscará por internet en busca de información necesaria

para la realización de la tarea. En caso de no encontrarlo, le informaría al profesor

encargado si le podría facilitar o conseguir información referente al problema.

3.5.3- Riesgos tácticos

Indisponibilidad para reunir

Riesgo: El alumno o el profesor encargado no pueden acudir a una reunión

concertada por causas tales como enfermedad, causas personales, trabajo...

Page 45: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

44

3- DOP PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Solución: La persona que no pueda acudir a la reunión le informará a la otra

parte de que no puede acudir a la reunión, y concertarán otra reunión en el que las dos

partes puedan acudir.

Retraso en la tarea

Riesgo: El alumno no ha conseguido realizar la tarea la tarea a tiempo.

Solución: Se ampliará el plazo de entrega de esa tarea, y se reajustarán las

restantes tareas. En el reajuste de los plazos de las tareas si se viera que no se pudiera

realizar todas las tareas, en la reunión se hablaría de si se tendría que suprimir alguna

funcionalidad del proyecto para poder finalizar el proyecto.

Ordenador estropeado

Riesgo: El ordenador del alumno sufre daños parciales o totales.

Solución: El alumno trabajaría en ordenadores de la facultad, que estén

habilitados para ello. Si el consiguiera reparar o conseguir otro ordenador personal

volvería a trabajar con su ordenador.

Pérdida de datos

Riesgo: Se pierden los datos guardados en el ordenador.

Solución: Se recuperan los datos de las copias de seguridad que se realizaron en

dispositivos externos.

Page 46: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

45

3- DOP PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

3.5.4- Riegos operativos

Pérdida de datos

Riesgo: Se pierden los datos referentes al proyecto.

Solución: el alumno irá haciendo copias de seguridad en cada entrega de una

tarea, o cada un tiempo determinado, y en caso de pérdida de datos, re recuperaría de

esta copia por lo que la perdida solo sería desde la fecha de la copia de seguridad hasta

la fecha de la perdida de datos.

Problemas en manejar software

Riesgo: Problemas en el manejo del software que está utilizando el alumno,

debido al desconocimiento del mismo.

Solución: Intentar buscar toda la documentación posible por Internet, por los

libros de la biblioteca, manuales... El profesor encargado le podrá orientar al alumno

sobre que material le convendría.

3.6- Análisis de factibilidad

Se han definido las tareas que se deben de realizar para la realización del

proyecto. Los plazos parecen razonables y los riesgos asumibles. Por lo que creemos

que este proyecto se puede realizar dentro del plazo establecido.

Page 47: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

46

3- DOP PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Page 48: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

47

4- Arquitectura del Sistema PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

4- Arquitectura del Sistema

Esté proyecto tendrá dos resultados diferentes, por lo cual, habrá dos tipos de

arquitecturas: un servicio Web y la aplicación Web. El objetivo principal es la de

conseguir una aplicación Web, pero también se creara un servicio Web para que alguna

aplicación pudiera utilizar las dos aplicaciones, Infomap y SSI-Dijkstra, conjuntamente.

La elección de una aplicación Web está motivada por la facilidad de uso de la

aplicación de Infomap y SSI-Dijkstra para el usuario. Además, se utilizará una base de

datos para gestionar a los usuarios, y los resultados obtenidos por cada usuario, para

poder ofrecer resultados personales.

4.1- Servicio Web

Existen diferentes definiciones para explicar lo que son los servicios web. Una

de ellas sería hablar de los servicios web como un conjunto de aplicaciones o

tecnologías que intercambian información entre sí con el objetivo de ofrecer un servicio.

Distintas aplicaciones de software desarrolladas en lenguajes de programación

diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios web

para intercambiar datos en redes de ordenadores como Internet. La interoperabilidad

(condición necesaria para que los usuarios tengan acceso a toda la información

disponible) se consigue mediante la adopción de estándares abiertos, estos son

gestionados por la organización W3C. El estándar de comunicación más utilizado es

HTTP (Hypertext Transfer Protocol), pero también pueden usarse SMTP (Simple Mail

Transfer Protocol), FTP (File Transfer Protocol), ... Otros estándares utilizados son

XML (Extensible Markup Language), WSDL (Web Services Description Language), ...

Page 49: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

48

4- Arquitectura del Sistema PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

La figura 7 muestra cómo interactúa un conjunto de servicios web, que nos

ayudará a entender mejor qué son y cómo funcionan. Es el ejemplo de un modelo de

servicios web para una agencia de viajes.

Figura 7: Ejemplo de un servicio Web

El modelo refleja el proceso que ocurre cuando un usuario (que juega el papel de

cliente dentro del servicio web) a través de un aplicación solicita información sobre un

viaje que desea realizar a una agencia de viajes que ofrece sus servicios a través de

Internet. La agencia de viajes a su vez, para poder devolver la información necesaria a

su cliente (usuario), obtendrá información referente al vuelo y al hotel de otros recursos

(otros servicios web), en este caso la agencia de viajes jugará el papel de cliente. Una

vez recabada toda la información necesaria, la agencia de viajes le devolverá al usuario

la información solicitada. Por último, el usuario realizará el pago a través de la agencia

de viajes, esta hará de intermediaria entre el usuario y el servicio web que se encarga de

gestionar el pago.

Page 50: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

49

4- Arquitectura del Sistema PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

En el proceso de intercambio de información intervienen diferentes tecnologías.

Por un lado estaría SOAP 13(Simple Object Access Protocol), esta tecnología se basa en

el formato XML 14

(Extensible Markup Language), y es capaz de transferir mensajes con

información compleja (ver figura 8). SOAP puede usar los protocolos de comunicación

HTTP, SMTP, etc. SOAP tiene un formato especifico para el envío de los mensajes,

cada mensaje estará compuesto por un envelope (sobre), cuya estructura estará formada

por un header (cabezara) y un body (cuerpo).

Figura 8: Estructura de los mensajes SOAP.

Por otro lado, tenemos WDSL (Web Service Description Languaje). WSDL es

una descripción basada en XML que hace posible la comunicación entre el usuario y el

servicio web, estableciendo los detalles necesarios para el transporte de los mensajes y

su contenido.

13 http://es.wikipedia.org/wiki/Simple_Object_Access_Protocol 14 http://es.wikipedia.org/wiki/Extensible_Markup_Language

Page 51: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

50

4- Arquitectura del Sistema PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Son varias las ventajas que ofrecen los servicios web, entre otras:

Permiten la comunicación entre diferentes aplicaciones

independientemente de sus propiedades o sobre las que se instalen.

Los servicios web fomentan el uso de estándares basados en texto, esto

hace que sea más fácil entenderlos y acceder a su contenido.

Al usar HTTP como protocolo de comunicación, pueden usarse los

sistemas de seguridad firewall sin necesidad de cambiar las reglas de

filtrado.

Permiten la interoperabilidad entre plataformas de diferentes fabricantes

usando protocolos estándares y abiertos.

Los proveedores ofrecen sus servicios como procedimientos remotos y

los usuarios solicitan un servicio llamando a estos procedimientos a

travñes de la Web.

Hemos hablado de las ventajas, pero también existen ciertos inconvenientes:

Su rendimiento es bajo si se compara con otros métodos de computación

distribuida como RMI (Remate Method Invocatíon).

Al apoyarse en HTTP, pueden esquivar medidas de seguridad basadas en

firewall, pudiendo verse en peligro ante un ataque maligno.

Para realizar transacciones no son comparables con otros estándares

abiertos de computación distribuida como CORBA (Common Object

Request Broker Architecture).

Page 52: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

51

4- Arquitectura del Sistema PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Recientemente, los servicios web basados en RESTful 15

El servicio Web que crearemos necesitará un servidor Web que alojara la

aplicación Web y hará accesible a todos los usuarios que disponga de Internet.

(REpresentational State

Transfer) estan obteniendo cada vez más popularidad, sobre todo entre las compañías de

Intenet. Los servicios web basados en RESTful cumplen con la definición de la W3C, y

están mejor integrados en el protocolo HTTP que lo servicios basados en SOAP.

Además no necesitan mensajes XML ni definiciones WSDL.

Un servidor web es un programa que está diseñado para transferir hipertextos,

páginas web o páginas HTML (HyperText Markup Language): textos complejos con

enlaces, figuras, formularios, botones y objetos incrustados como animaciones o

reproductores de música. El programa implementa el protocolo HTTP (HyperText

Transfer Protocol) que pertenece a la capa de aplicación del modelo OSI.

El servicio Web que realizaremos tendrá la arquitectura que se muestra en la

figura 9. El usuario que tenga acceso a Internet podrá utilizar el servicio Web mediante

el servidor Web.

Figura 9: La arquitectura para el servicio Web

15 http://es.wikipedia.org/wiki/Representational_State_Transfer

Page 53: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

52

4- Arquitectura del Sistema PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

4.2- Aplicación Web

En la ingeniería de software se denomina aplicación web a aquellas aplicaciones

que los usuarios pueden utilizar accediendo a un servidor web a través de Internet o de

una intranet mediante un navegador. En otras palabras, es una aplicación software que

se codifica en un lenguaje soportado por los navegadores web (HTML, JavaScript, Java,

asp.net,php, etc.) en la que se confía la ejecución al navegador.

Las aplicaciones web son populares debido a lo práctico del navegador web

como cliente ligero, así como a la facilidad para actualizar y mantener aplicaciones web

sin distribuir e instalar software a miles de usuarios potenciales. Véase aplicaciones

como Gmail, etc.

Es importante mencionar que una página Web puede contener elementos que

permiten una comunicación activa entre el usuario y la información. Esto permite que el

usuario acceda a los datos de modo interactivo, gracias a que la página responderá a

cada una de sus acciones, como por ejemplo rellenar y enviar formularios, participar en

juegos diversos y acceder a gestores de base de datos de todo tipo.

La aplicación Web que crearemos necesitará un servidor Web y un servidor de

base de datos. Un servidor de base de datos será necesario para guardar la base de datos

que utiliza la aplicación Web. En la elección tecnológica se definirán que tipo de

servidor se espera que tenga la arquitectura final.

En la figura 10 se puede ver la arquitectura de la aplicación Web que crearemos.

El usuario que tenga acceso a Internet podrá cargar la aplicación Web mediante el

servidor Web. Este servidor BD, según la tarea que realice el usuario, tendrá que

acceder al servidor Web para obtener o modificar datos de la base de datos. Estos dos

servidores podrán estar en una única maquina que contenga los dos servidores.

Page 54: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

53

4- Arquitectura del Sistema PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Figura 10: La arquitectura para la aplicación Web.

Page 55: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

54

4- Arquitectura del Sistema PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Page 56: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

55

5- Elección Tecnológica PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

5- Elección Tecnológica

A continuación determinaremos el software específico que tendrá el sistema

final y el software que se ha utilizado en el desarrollo del proyecto.

5.1- El sistema

El sistema estará sobre un sistema operativo basada en Linux16, en concreto

Fedora17. Se utilizará Apache 18

como servidor Web. El lenguaje de programación que

se usará en el servidor Web será PHP. Como servidor de base de datos se utilizará

MySQL-Server y como sistema de gestión de base de datos usaremos MySQL.

5.1.1- Fedora

Fedora es una distribución Linux para propósitos generales basada en RPM, que

se mantiene gracias a una comunidad internacional de ingenieros, diseñadores gráficos

y usuarios que informan de fallos y prueban nuevas tecnologías. Cuenta con el respaldo

y la promoción de Red Hat.

El proyecto no busca sólo incluir software libre y de código abierto, sino ser el

líder en ese ámbito tecnológico. Algo que hay que destacar es que los desarrolladores de

Fedora prefieren hacer cambios en las fuentes originales en lugar de aplicar los parches

específicos en su distribución, de esta forma se asegura que las actualizaciones estén

disponibles para todas las variantes de GNU/Linux.

16 http://www.linux-es.org/ 17 http://fedoraproject.org/es/ 18 http://httpd.apache.org/

Page 57: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

56

5- Elección Tecnológica PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

La elección de Fedora está basada en que Infomap y SSI-Dijsktra, software que

utiliza la aplicación Web y el servicio Web, están preparados para este sistema

operativo y no da ningún problema de librería como pudiera dar en alguna otra

distribución Linux.

5.1.2- Apache

El servidor HTTP Apache es un servidor web HTTP de código abierto para

plataformas Unix (BSD, GNU/Linux, etc.), Microsoft Windows, Macintosh y otras, que

implementa el protocolo HTTP/1.1 y la noción de sitio virtual. Cuando comenzó su

desarrollo en 1995 se basó inicialmente en código del popular NCSA HTTPd 1.3, pero

más tarde fue reescrito por completo. Su nombre se debe a que Behelendorf quería que

tuviese la connotación de algo que es firme y enérgico pero no agresivo, y la tribu

Apache fue la última en rendirse al que pronto se convertiría en gobierno de EEUU, y

en esos momentos la preocupación de su grupo era que llegasen las empresas y

"civilizasen" el paisaje que habían creado los primeros ingenieros de internet. Además

Apache consistía solamente en un conjunto de parches a aplicar al servidor de NCSA.

Era, en inglés, a patchy server (un servidor "parcheado").

El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la

Apache Software Foundation. Apache presenta entre otras características altamente

configurables, bases de datos de autenticación y negociado de contenido.

5.1.3- PHP

PHP 19 lenguaje de programaciónes un interpretado, diseñado originalmente para

la creación de páginas web dinámicas. Es usado principalmente en interpretación del

19 http://php.net/index.php

Page 58: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

57

5- Elección Tecnológica PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

lado del servidor (server-side scripting) pero actualmente puede ser utilizado desde una

interfaz de línea de comandos o en la creación de otros tipos de programas incluyendo

aplicaciones con interfaz gráfica usando las bibliotecas Qt o GTK+.

PHP es un acrónimo recursivo que significa PHP Hypertext Pre-processor

(inicialmente PHP Tools, o, Personal Home Page Tools). Fue creado originalmente por

Rasmus Lerdorf en 1994; sin embargo la implementación principal de PHP es

producida ahora por The PHP Group y sirve como el estándar de facto para PHP al no

haber una especificación formal. Publicado bajo la PHP License, la Free Software

Foundation considera esta licencia como software libre.

5.1.4- MySQL

MySQL es un sistema de gestión de base de datos relacional, multihilo y

multiusuario con más de seis millones de instalaciones. MySQL AB —desde enero de

2008 una subsidiaria de Sun Microsystems y ésta a su vez de Oracle Corporation desde

abril de 2009— desarrolla MySQL como software libre en un esquema de

licenciamiento dual.

Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con esta

licencia, pero para aquellas empresas que quieran incorporarlo en productos privativos

deben comprar a la empresa una licencia específica que les permita este uso. Está

desarrollado en su mayor parte en ANSI C.

Utilizaremos MySQL para la gestión de los usuarios y guardar los resultados de

las consultas.

Page 59: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

58

5- Elección Tecnológica PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

5.2- Desarrollo

La mayor parte del desarrollo del proyecto se ha realizado en el sistema

operativo Windows 7, ya que Windows ofrece aplicaciones que ayudan en el desarrollo

de las diferentes tareas del proyecto. También se ha utilizado Fedora para

implantaciones y realizar pruebas en el ámbito del sistema final.

Para el desarrollo de la aplicación Web se ha utilizado el programa Adobe

Dreamweaver CS4. La creación de la documentación y la memoria ha sido mediante

Microsoft Office Word 2007. Los dibujos han sido realizados mediante los programas

Adobe Photoshop CS4 y Microsoft Office Visio 2007. La contabilidad de las horas y los

gráficos mediante Microsoft Office Excel 2007. Las diapositivas de la presentación del

proyecto se han hecho con Microsoft Office PowerPoint 2007.

Para hacer las pruebas, sobre todo se ha utilizado el navegador Mozilla Firefox

ya que ofrece una extensión que se llama Firebug que es muy útil para encontrar los

fallos que ocurren en Javascript y en el envio de peticiones XmlHttpRequest. También

se ha verificado que la aplicación Web y el servicio Web funcionan correctamente en el

navegador Internet Explorer.

5.2.1- Dreamweaver

Adobe Dreamweaver 20 aplicaciónes una en forma de estudio enfocada a la

construcción y edición de sitios y aplicaciones Web basadas en estándares. Creado

inicialmente por Macromedia (actualmente producido por Adobe Systems). Es el

programa de este tipo más utilizado en el sector del diseño y la programación web, por

sus funcionalidades, su integración con otras herramientas como Adobe Flash y,

recientemente, por su soporte de los estándares del World Wide Web Consortium. Su

20 http://es.wikipedia.org/wiki/Adobe_Dreamweaver

Page 60: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

59

5- Elección Tecnológica PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

principal competidor es Microsoft Expression Web y tiene soporte tanto para edición de

imágenes como para animación a través de su integración con otras.

5.2.2- Photoshop

Adobe Photoshop 21 aplicación informática(Tienda de Fotos) es una en forma de

taller de pintura y fotografía que trabaja sobre un "lienzo" y que está destinado para la

edición, retoque fotográfico y pintura a base de imágenes de mapa de bits (o gráficos

rasterizados).

Es un producto elaborado por la compañía de software Adobe Systems,

inicialmente para computadores Apple pero posteriormente también para plataformas

PC con sistema operativo Windows.

5.2.3- Word

Microsoft Word22 es el procesador de textos de la suite. Word posee una

posición dominante en el mercado de los procesadores de texto. Su formato propietario

DOC es considerado un estándar de facto, aunque en su más reciente versión, Word

2007 utiliza un nuevo formato basado en XML llamado .DOCX, pero también tiene la

capacidad de guardar y abrir documentos en el formato DOC. Word está también

incluido en algunas versiones de Microsoft Works. Está disponible para las plataformas

Microsoft Windows y Mac OS.

21 http://es.wikipedia.org/wiki/Photoshop 22 http://es.wikipedia.org/wiki/Microsoft_Word

Page 61: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

60

5- Elección Tecnológica PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

5.2.4- Visio

Microsoft Visio23 software es un de dibujo vectorial para Microsoft Windows.

Las herramientas que lo componen permiten realizar diagramas de oficinas, diagramas

de bases de datos, diagramas de flujo de programas, UML, y más, que permiten iniciar

al usuario en los lenguajes de programación.

Aunque originalmente apuntaba a ser una aplicación para dibujo técnico para el

campo de Ingeniería y Arquitectura; con añadidos para desarrollar diagramas de

negocios, su adquisición por Microsoft implicó drásticos cambios de directrices de tal

forma que a partir de la versión de Visio para Microsoft Office 2003 el desarrollo de

diagramas para negocios pasó de añadido a ser el núcleo central de negocio,

minimizando las funciones para desarrollo de planos de Ingeniería y Arquitectura que se

habían mantenido como principales hasta antes de la compra.

5.2.5- Excel

Microsoft Excel24

Lotus 1-2-3

es un programa de hoja o plantilla de cálculo. Al igual que

Microsoft Word, posee actualmente un mercado dominante. Fue originalmente el más

fuerte competidor del entonces popular , y en tercera posición estuvo

Quattro Pro; pero eventualmente Excel se vendió más, se popularizó y se convirtió en el

estándar de facto. Está disponible para plataformas Windows y Mac.

23 http://es.wikipedia.org/wiki/Visio 24 http://es.wikipedia.org/wiki/Excel

Page 62: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

61

5- Elección Tecnológica PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

5.2.6- PowerPoint

Microsoft PowerPoint25

Windows

es un muy popular programa para desarrollar y

desplegar presentaciones visuales en entornos y Mac. Es usado para crear

diapositivas multimedia, es decir, compuesta por texto, imágenes, sonido y vídeos.

Office Mobile para Windows Mobile 5.0 y versiones posteriores poseen una versión de

PowerPoint llamada PowerPoint Mobile. Esta versión reducida permite incluso agregar

vídeos y sonido a las diapositivas.

5.2.7- Firebug

Firebug26 extensión es una de Firefox creada y diseñada especialmente para

desarrolladores y programadores web. Es un paquete de utilidades con el que se puede

analizar (revisar velocidad de carga, estructura DOM), editar, monitorizar y depurar el

código fuente, CSS, HTML y JavaScript de una página web de manera instantánea e

inline. Figura 11 muestra una pantalla del entorno.

Firebug no es un simple inspector como DOM Inspector, además edita y permite

guardar los cambios, un paso por delante del conocido Web Developer. Tiene una

intuitiva interfaz, con solapas específicas para el análisis de cada tipo de elemento

(consola, HTML, CSS, Script, DOM y red), que permite al usuario un manejo fácil y

rápido. Firebug está encapsulado en forma de plug-in o complemento de Mozilla. Es

Open Source (aunque no Free Software) y de distribución gratuita.

25 http://es.wikipedia.org/wiki/Microsoft_PowerPoint 26 http://es.wikipedia.org/wiki/Firebug

Page 63: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

62

5- Elección Tecnológica PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Figura 11: Ejemplo de la extensión Firebug.

Page 64: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

63

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

6- Desarrollo de la aplicación Web

El objetivo de este proyecto es desarrollar una aplicación Web que permita

obtener conceptos evocados para un conjunto de palabras. Para ello, el sistema debe

integrar dos sistemas de PLN. El primero es un sistema que obtiene palabras

semánticamente relacionadas a un conjunto de palabras. Estas palabras relacionadas son

posteriormente procesadas por un segundo sistema que obtiene de un diccionario

electrónico los conceptos más apropiados.

El primer sistema es Infomap, que mediante la técnica de LSA o LSI obtiene

palabras semánticamente relacionadas a un conjunto de palabras. Dado este conjunto de

palabras, el segundo sistema que se aplica es SSI-Dijkstra. Este es un sistema de

resolución de la ambigüedad semántica de las palabras (WSD, en inglés Word Sense

Disambiguation) basado en el conocimiento.

Los resultados que se obtienen en la evocación son registradas en una base de

datos. En esta base de datos, también se guardará la información necesaria para

gestionar a los usuarios.

6.1- Captura de Requisitos

6.1.1- Modelo de Casos de Uso (MCU)

Está aplicación Web tendrá cinco casos de uso, que se ven en la figura 12. Solo

habrá un único actor que será el usuario que utilice esta aplicación Web. A continuación

se explicarán cada caso de uso uno por uno, explicando lo que hace y en qué

condiciones.

Page 65: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

64

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Figura 12: Diagrama de casos de uso

Registrar usuario

Un usuario que se quiera registrar, rellena el formulario que el sistema le ofrece

para registrar sus datos. Una vez que ha rellenado todos los datos, el sistema verifica

que el formato de los datos es correcto y los guarda en la base de datos.

Postcondición: se guardarán sus datos en la base de datos, y a partir de ese

momento se podrá identificar.

Escenario principal (o curso normal de los eventos):

1. Usuario: El usuario rellena el formulario para registrarse. 2. Sistema: Verifica los datos introducidos por el usuario y guarda los datos en la base

de datos.

Extensiones (o cursos alternativos):

Paso 2: No se verifica que todos los datos introducidos por el usuario son correctos.

Page 66: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

65

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

1. Usuario: Cambia los datos del formulario. 2. Vuelve al Paso 2.

Consulta

En esta consulta el usuario introduce las palabras que quiere consultar y las

categorías (N, V, A, R) de esas palabras. Una vez escritas, y después de elegir el

numero de resultados que quiera obtener, el sistema obtiene las palabras evocadas por

Infomap y SSI-Dijkstra obtiene los conceptos subyacentes. Finalmente, este caso de uso

devuelve los conceptos evocados.

Escenario principal (o curso normal de los eventos):

1. Usuario: Introduce las palabras, los tipos correspondientes a esas palabras (N, V, R, A) y el numero de conceptos que desea evocadas.

2. Sistema: Mediante Infomap y SSI-Dijkstra obtiene el resultado y los visualiza.

Identificar

El usuario se identifica ante el sistema. Para eso el usuario introduce su correo y

la contraseña con la que se ha registrado anteriormente. El sistema, con los datos que ha

introducido el usuario, verifica que corresponden a los datos que tiene en la base de

datos. Si no es correcta la verificación se le deniega el acceso.

Postcondición: El usuario queda identificado y podrá acceder a los casos de uso

que requieren su identificación.

Escenario principal (o curso normal de los eventos):

1. Usuario: Introduce su correo y la contraseña con el que se ha registrado. 2. Sistema: Verifica que los datos introducidos son correctos e identifica al usuario.

Page 67: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

66

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Extensiones (o cursos alternativos):

Paso 2: El sistema verifica que los datos introducidos no son correctos y deniega el acceso al usuario.

1. Usuario: Cambia los datos introducidos anteriormente. 2. Vuelve al paso 2.

Gestionar usuario

El usuario podrá gestionar su cuenta. Tendrá la posibilidad de ver los datos que

introdujo al registrarse, cambiarlos, darse de baja o la de salir y dejar de estar

identificado.

Precondición: El usuario tendrá que estar identificado.

Postcondición: Según la opción que elija el usuario, se realizarán los cambios

que se han requerido en la base de datos o el usuario dejara de estar identificado.

Escenario principal (o curso normal de los eventos):

1. Usuario: Se identifica ante el sistema y elige cambiar sus datos personales de la cuenta.

2. Sistema: Le visualiza los datos del usuario que introdujo en el registro y le da la opción de cambiarlos.

3. Usuario: Cambia los datos que desea cambiar. 4. Sistema: Verifica que los datos sean correctos y cambia los datos del usuario en la

base de datos con los nuevos datos que ha introducid.

Extensiones (o cursos alternativos):

Paso 1: Utiliza “Identificar Usuario” (USES).

Paso 1: El usuario elige ver datos.

Page 68: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

67

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

1. Sistema: Le visualiza los datos personales que introdujo el usuario al registrarse.

Paso 1: El usuario elige salir.

1. Sistema: El usuario deja de estar identificado y le quita las opciones que tendría estando identificado.

Paso 1: El usuario elige dar de baja.

1. Sistema: Modifica la cuenta del usuario en la base de datos e indica que esa cuenta esta inactiva. El usuario deja de estar identificado y no se podrá identificar más con esa cuenta.

Ver resultados

El usuario podrá consultar los resultados que ha obtenido, en sesiones anteriores.

Podrá ver las palabras incorrectas que ha encontrado el usuario y los que se han

encontrado entre todos los usuarios registrados, buscar información sobre una palabra

que introduzca el usuario, y ver el historial de consultas que ha realizado el usuario y los

que se hayan realizado entre todos.

En las opciones que puedan dar los resultados propios del usuario y los

resultados de todos los usuarios, lo único que varia es que el resultado sea general o que

sea propio. Por eso, en las aclaraciones siguientes, no se distinguirán esos dos casos,

suponiendo que los resultados son solo los del usuario, aunque haya otra opción que de

un resultado general.

Precondición: El usuario tendrá que estar identificado.

Escenario principal (o curso normal de los eventos):

1. Usuario: Se identifica ante el sistema y elige la opción de ver el historial de consultas.

2. Sistema: Visualiza el historial de consultas que ha realizado el usuario anteriormente.

3. Usuario: Elige una consulta que quiera volver a realizar.

Page 69: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

68

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

4. Sistema: Ofrece un formulario con las palabras de la consulta elegida con posibilidad de modificarlas, para que vuelva a realizar una consulta registrada. Eso se haría en el caso de uso de “Consulta registrada”.

Extensiones (o cursos alternativos):

Paso 1: Utiliza “Identificar Usuario” (USES).

Paso 1: Elige la opción de ver las palabras incorrectas.

1. Sistema: Visualiza las palabras incorrectas que ha encontrado el usuario en las consultas registradas realizadas con anterioridad.

Paso 1: Elige la opción de buscar información sobre una palabra.

1. Sistema: Le pide al usuario que introduzca la palabra que quiere buscar. 2. Usuario: Introduce la palabra que desea buscar y su tipo. 3. Sistema: Visualiza información referente a esa palabra.

Consulta registrada

Está consulta es parecida a la consulta anterior, la diferencia de es que esta

consulta se registra. En vez de solo dar el resultado final, dará opciones entre la

ejecución de Infomap y SSI-Dijkstra. Una vez que se introduzcan las palabras de las que

se desea obtener conceptos evocados, el sistema obtendrá el resultado de Infomap y

dará opción a seleccionar las palabras con las que desea seguir. Con esas palabras se le

aplica SSI-Dijkstra para obtener su significado correcto y se visualiza. Una vez obtenido

el resultado, el usuario tiene la opción de elegir si le parece que algún significado no es

correcto en ese contexto y guardar esa consulta. Con estas consultas se obtienen los

resultados del caso de uso “Ver resultados”.

Precondición: El usuario tendrá que estar identificado.

Postcondición: El sistema habrá guardado en la base de datos la consulta

realizada por el usuario.

Page 70: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

69

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Escenario principal (o curso normal de los eventos):

1. Usuario: Se identifica ante el sistema y elige hacer una consulta registrada. 2. Sistema: Ofrece un formulario para que el usuario introduzca las palabras que desea

buscar. 3. Usuario: Escribe las palabras, de qué tipo es (N, V, R, A) cada palabra que ha

escrito y el número de resultados que desea obtener. 4. Sistema: Visualiza el resultado obtenido mediante Infomap. 5. Usuario: Selecciona las palabras con las que desea continuar. 6. Sistema: Visualiza el resultado de la desambiguación mediante SSI-Dijkstra de las

palabras que ha seleccionado el usuario. 7. Usuario: Puede seleccionar los conceptos incorrectos para consultar directamente el

concepto en el MCR. 8. Sistema: Guarda en la base de datos la consulta realizada por el usuario.

Extensiones (o cursos alternativos):

Paso 1: Utiliza “Identificar Usuario” (USES).

Paso 4: No se ha obtenido ningún resultado mediante Infomap.

1. Sistema: No visualiza ninguna información (Infomap no produce ningún resultado) y el usuario tiene la opción de modificar las palabras introducidas en el paso 3.

Paso 6: No se han obtenido los significados de las palabras mediante SSI-Dijkstra.

1. Sistema: No ha sido posible la desambiguación y visualiza las palabras sin su significados y el usuario tiene la opción de cambiar las palabras introducidas o la de seleccionar otras palabras del anterior resultado.

6.1.2- Modelo de Dominio (MD)

El modelo de dominio que se ha utilizado en la aplicación Web es la que se ve

en la figura 13. El usuario podrá tener un número indeterminado de consultas. Cada

consulta sólo será de un único usuario. Cada consulta tendrá múltiples palabras, y cada

palabra solo pertenecerá a una única consulta.

Page 71: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

70

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Figura 13: Modelo de dominio de la base de datos utilizado en la aplicación Web

La tabla “Usuario” contendrá toda la información referente al usuario, tal como

su dirección, correo, nombre, contraseña,… etc. La tabla “Consulta” tendrá el

identificador del usuario al que corresponde esa consulta, y la fecha en el que se realizo

esa consulta. La tabla “Palabra” tendrá un identificador que indica a que consulta

corresponde, y toda la información que se haya obtenido de la consulta registrada, tal

como, su significado elegido, si ha sido seleccionado, si es correcto,… etc.

Los atributos que contienen cada tipo de objetos del modelo de dominio y el

modo en que están relacionadas las tablas se explicarán más adelante, concretamente en

el diseño.

6.2- Análisis

Se definen diferentes operaciones en cada caso de uso. Para mostrar esas

funciones, por cada caso de uso se hará un Diagrama de Secuencia del Sistema (DSS) y

las especificaciones concretas (contratos) correspondiente a cada función que aparece en

el diagrama.

Page 72: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

71

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

6.2.1- Registrar usuario

Figura 14: Diagrama de Secuencia del Sistema de caso de uso “Registrar usuario”

Contrato : guardarDatos(correo, contraseña, nombre, apellidos, …)

Responsabilidad: Registra el nuevo usuario con los datos recibidos por parámetro.

Excepciones: Si Usuario.correo = correo_registrado entonces ERROR. (correo existente)

Postcondición: Se ha creado una entrada en la base de datos con los datos recibidos.

Usuario.correo=correo Usuario.contraseña = contraseña Usuario.nombre = nombre …

Salida: Confirmación de que los datos se hayan guardado correctamente.

Page 73: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

72

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

6.2.2- Consulta

Figura 15: Diagrama de Secuencia del Sistema de caso de uso “Consulta”

Contrato: consultarPalabras(ListaPalabras, numResultados)

Responsabilidad: Mostrar el resultado obtenido por Infomap y SSI-Dijsktra con las palabras introducidas por parámetro. ListaPalabras será una lista con las palabras que se quieran buscar con su tipo (n, r, v, a) correspondiente. NumResultados será un número entero que indique el número de resultados que se espera obtener.

Excepciones: Si no se ha obtenido ningún resultado con las palabras enviadas por parámetro, se mostrará un mensaje informando que intente con otras palabras.

Salida: ListaPalabras, será una lista de las nuevas palabras evocadas con sus correspondientes datos obtenidos en la desambiguación (peso, grado polisémico, significado, synset…). El número de palabras obtenidas en esta lista, será la misma que el parámetro numResultados.

NumeroDeResultados = numResultados

Page 74: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

73

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

6.2.3- Identificar

Figura 16: Diagrama de Secuencia del Sistema de caso de uso “Identificar”.

Contrato: identificar(correo, contraseña)

Responsabilidad: Identificar al usuario observando en la base de datos si existe una cuenta con ese correo y con esa contraseña.

Excepciones: Si Usuario.correo ≠ correo, Usuario.contraseña ≠ contraseña o Usuario.activo=0, se da un mensaje de error al identificarse.

Postcondición: Se guarda el identificador del usuario y se anota que ese usuario ya está identificado.

Salida: OK: Un booleano que confirma si se ha identificado correctamente.

Page 75: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

74

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

6.2.4- Gestionar usuario

Figura 17: Diagrama de Secuencia del Sistema de caso de uso “Gestionar usuario”.

Contrato: verDatos(idUsuario)

Responsabilidad: Visualiza los datos del usuario que tiene como identificador el numero enviado por parámetro.

Precondición: Existe Usuario.idUsuario = idUsaurio y el usuario está identificado.

Salida: Muestra la información del usuario que tenga Usuario.idUsuario = idUsuario.

Page 76: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

75

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Contrato: darDeBaja(idUsuario)

Responsabilidad: Dará de baja al usuario que tenga el identificador enviado por parámetro.

Excepciones: Si no existe Usuario.idUsuario = idUsaurio, se muestra ERROR.

Precondición: El usuario está identificado.

Postcondición: El usuario dejará de estar identificado y Usuario.activo=0.

Salida: Muestra la confirmación de que si se ha dado de baja.

Contrato: cambiarDatos(idUsuario, correo, contraseña, nombre, …)

Responsabilidad: Cambiar los datos del usuario por los nuevos datos que se envian por parámetro.

Precondición: El usuario está identificado.

Postcondición: El usuario, cambiara sus datos por los nuevos valores.

Usuario.correo=correo Usuario.contraseña = contraseña Usuario.nombre = nombre …

Salida: La confirmación de que los datos han sido modificados satisfactoriamente.

Page 77: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

76

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

6.2.5- Ver resultados

Figura 18: Diagrama de Secuencia del Sistema de caso de uso “Ver resultados”.

Contrato: palabrasIncorrectas()

Responsabilidad: Mostrar las palabras incorrectas que aparecen en las consultas registradas realizadas por todos los usuarios.

Excepciones: Si no existe ninguna palabra incorrecta, se indicará que no hay ninguna palabra incorrecta registrada.

Precondición: El usuario está identificado.

Salida: Mostrará una lista de las palabras incorrectas e información sobre estas.

Page 78: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

77

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Contrato: palabrasIncorrectas(idUsuario)

Responsabilidad: Mostrar las palabras incorrectas que aparecen en las consultas registradas del usuario que su identificador coincida con el valor enviado por parámetro.

Excepciones: Si no existe ninguna palabra incorrecta en la consultas del usuario, Consulta.idUsuario = idUsuario, se indicará que no hay ninguna palabra incorrecta registrada por ese usuario.

Precondición: El usuario está identificado.

Salida: Mostrará una lista de las palabras incorrectas e información sobre estas palabras, en las consultas que tienen Consulta.idUsuario = idUsuario.

Contrato: buscarPalabra(palabra, tipo)

Responsabilidad: Mostrar información encontrada sobre la palabra y el tipo (n, v, r, a) que se envian por parámetro.

Precondición: El usuario está identificado.

Excepciones: Si no existe ningún registro que tenga Palabra.palabra = palabra y Palabra.tipo = tipo, se indicará que no hay datos sobre esa palabra.

Salida: Mostrará la información recopilada de todas las apariciones de la palabra que Palabra.palabra = palabra y Palabra.tipo = tipo.

Contrato: verHistorialConsultas()

Responsabilidad: Mostrará todas las consultas que estén registradas en la base de datos.

Excepciones: Si no existe ninguna consulta, se indicará la inexistencia de ninguna consulta registrada.

Precondición: El usuario está identificado.

Page 79: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

78

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Salida: Mostrará una lista de consultas realizadas por todos los usuarios con posibilidad de utilizar la función de “cargarConsulta(listaPalabras)”.

Contrato: verHistorialConsultas(idUsuario)

Responsabilidad: Mostrará las consultas registradas que ha realizado el usuario que está identificado con el valor enviado por parámetro.

Excepciones: Si no existe ninguna consulta de ese usuario, Consulta.idUsuario = idUsuario, se indicará que no existe ninguna consulta registrada.

Precondición: El usuario está identificado.

Salida: Mostrará una lista de las consultas realizadas por el usuario, Consulta.idUsuario = idUsuario, con posibilidad de utilizar la función de “cargarConsulta(listaPalabras)”.

Contrato: cargarConsulta(listaPalabras)

Responsabilidad: Se irá al caso de uso de “consulta registrada”, con los valores de la lista de palabras, que se han enviado por parámetro, que han sido escritas anteriormente.

Precondición: El usuario está identificado.

Page 80: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

79

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

6.2.6- Consulta registrada

Figura 19: Diagrama de Secuencia del Sistema de caso de uso “Consulta registrada”

Contrato: aplicarInfomap(listaPalabras, numRes)

Responsabilidad: Mostrar el resultado obtenido por Infomap con las palabras enviadas por parámetro.

Excepciones: Si no se ha obtenido ningún resultado con las palabras enviadas por parámetro, se mostrará un mensaje informando que puede intentarlo con otras palabras.

Precondición: El usuario está identificado.

Salida: Se mostraran las palabras resultantes con sus datos correspondientes.

NumeroDeResultados = numResultados

Page 81: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

80

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Contrato: aplicarSSI(listaPalabras)

Responsabilidad: Mostrar el resultado obtenido por SSI-Dijsktra con las palabras enviadas por parámetro.

Excepciones: Si no se ha obtenido los significados de las palabras, se mostrará un mensaje informando que lo vuelva a intentar seleccionando otras palabras.

Precondición: El usuario está identificado.

Salida: Se mostraran los significados de las palabras obtenidas con sus datos correspondientes.

Contrato: guardarConsulta(listaPalabras, idUsuario)

Responsabilidad: Guardará en la base de datos todas las palabras con su información correspondiente que corresponden a la consulta generada por el usuario. listaPalabras, será una lista de las palabras con su correspondiente información obtenida en la consulta.

Precondición: El usuario está identificado.

Postcondición: Se habrá guardado en la base de datos la nueva consulta registrada.

Salida: Confirmación de que la consulta se ha registrado correctamente.

Page 82: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

81

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

6.3- Diseño

Para explicar el diseño utilizado en la aplicación Web, se explicarán lo que

realizan todas las operaciones mencionadas en la parte del análisis con pseudocódigo y

se hablará del diseño utilizado en la base de datos, y la forma en que las tablas de las

base de datos están relacionadas.

6.3.1- Pseudocódigos

Función: guardarDatos(correo, contraseña, nombre, apellidos, …) Conectar a BD BD : Usuario.correo=correo, Usuario.contraseña= contraseña, Usuario.nombre= nombre, Usuario.apellidos=apellidos, … en Usuario error = BD: Codigo de salida Si error = error_copia_correo entonces Resultado = mensaje error de correo existente FinSi Si error = cualquier_error entonces Resultado = ERROR FinSi Resultado = OK Desconectar de BD Devolver Resultado

Función: consultarPalabras(ListaPalabras, numResultados) Repetir por cada palabra de ListaPalabras hacer paramInfomap+= Información de palabra en un formato adecuado finRepetir paramInfomap+= añadir numResultados ResInfomap = Consultar Infomap (paramInfomap) Repetir por cada palabra de ResInfomap hacer paramSSI+= Información de palabra en adecuado formato finRepetir Resultado = Consultar SSI-Dijkstra (paramSSI) Devolver Resultado

Page 83: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

82

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Función: identificar(correo, contraseña) Conectar a BD Busqueda = BD: Seleccionar en Usuario donde Usuario.correo=correo y Usuario.contraseña=contraseña y Usuario.activo=1 Si Busqueda hay una fila entonces Resultado OK SESSION usuario = BD: Busqueda.idUsuario Sino Resultado INCORRECTO FinSi Desconectar de BD Devolver Resultado

Función: verDatos(idUsuario) Conectar a BD Resultado = BD: Seleccionar en Usuario donde Usuario.idUsuario=idUsuario Desconectar BD Devolver Resultado

Función: darDeBaja(idUsuario) Conectar a BD BD: Cambiar Usuario.activo -> 0 donde Usuario.idUsuario=idUsuario Si BD: Numero de filas afectadas = 1 entonces Resultado OK Sino Resultado INCORRECTO FinSi Desconectar BD Devolver Resultado

Función: cambiarDatos(idUsuario, correo, contraseña, nombre, …) Conectar a BD BD: Cambiar Usuario.correo->correo y Usuario.contraseña->contraseña y … donde Usuario.idUsuario=idUsuario Si BD: Numero de filas afectadas = 1 entonces Resultado OK Sino Resultado INCORRECTO FinSi Desconectar BD Devolver Resultado

Page 84: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

83

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Función: palabrasIncorrectas() Conectar a BD Busqueda = BD: Seleccionar en Palabra donde Palabra.correcto=0 Repetir por cada fila de Busqueda hacer Resultado += Palabra de Busqueda finRepetir Si Resultado = vacio entonces Resultado = NINGUNA PALABRA FinSi Devolver Resultado Desconectar BD

Función: palabrasIncorrectas(idUsuario) Conectar a BD Busqueda = BD: Seleccionar en Palabra unida con Consulta por Palabra.idConsulta=Consulta.idConsulta donde Palabra.correcto=0 y Consulta.idUsuario=idUsuario Repetir por cada fila de Busqueda hacer Resultado += Palabra de Busqueda finRepetir Si Resultado = vacio entonces Resultado = NINGUNA PALABRA FinSi Devolver Resultado Desconectar BD

Función: buscarPalabra(palabra, tipo) Conectar a BD Busqueda = BD: Seleccionar en Palabra donde Palabra.palabra=palabra y Palabra.tipo=tipo Repetir por cada fila de Busqueda hacer Resultado += Información de Busqueda finRepetir Si Resultado = vacio entonces Resultado = PALABRA NO ENCONTRADA FinSi Devolver Resultado Desconectar BD

Función: verHistorialConsultas() Conectar a BD Busqueda = BD: Seleccionar en Consulta Repetir por cada fila de Busqueda hacer Resultado += Consulta de Busqueda

Page 85: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

84

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

finRepetir Si Resultado = vacio entonces Resultado = NO HAY NINGUNA CONSULTA FinSi Devolver Resultado Desconectar BD

Función: verHistorialConsultas(idUsuario) Conectar a BD Busqueda = BD: Seleccionar en Consulta donde Consulta.idUsuario=idUsuario Repetir por cada fila de Busqueda hacer Resultado += Consulta de Busqueda finRepetir Si Resultado = vacio entonces Resultado = NO HAY NINGUNA CONSULTA FinSi Devolver Resultado Desconectar BD

Función: cargarConsulta(listaPalabras) Repetir por cada palabra de listaPalabras hacer Añadir palabra en formulario de consulta registrada finRepetir

Función: aplicarInfomap(listaPalabras, numRes) Repetir por cada palabra de ListaPalabras hacer paramInfomap+= Información de palabra en adecuado formato finRepetir paramInfomap+= añadir numResultados Devolver Consultar Infomap (paramInfomap)

Función: aplicarSSI(listaPalabras) Repetir por cada palabra de listaPalabras hacer paramSSI+= Información de palabra en adecuado formato finRepetir Devolver Consultar SSI-Dijkstra (paramSSI)

Función: guardarConsulta(listaPalabras, idUsuario) Conectar a BD BD: Insertar idUsuario en Consulta Correcto = SI

Page 86: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

85

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Si BD: filas afectadas ≠ 1 entonces Correcto = NO finSi idConsulta = BD: Seleccionar Consulta.idConsulta en Consulta donde Consulta.idUsuario=idUsuario ordenado descendentemente por Consulta.fecha con limite 1 Repetir por cada palabra de listaPalabras y Correcto = SI hacer BD: Insertar datosPalabra, idConsulta en Palabra Si BD: filas afectadas ≠ 1 entonces Correcto = NO finSi FinRepetir Si Correcto = NO entonces BD: Borrar en Consulta donde Consulta.idConsulta=idConsulta Resultado NO REGISTRADO Sino Resultado OK finSi Desconectar BD Devolver Resultado

6.3.2- Tablas de la BD

La base de datos que utiliza la aplicación Web se llama “pfc”, y la esquema de

las base de datos es la que aparece en la figura 19.

Page 87: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

86

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Figura 20: Esquema de la base de datos “pfc”.

Las consultas guardan un identificador, “idUser”, que le identifica al usuario que

ha generado esa consulta. Todas las consultas pertenecerán a un único usuario. Las

palabras tienen un identificador de consulta, “idConsult”, que indicara a que consulta

corresponde esa palabra. Todas las palabras pertenecerán a una única consulta.

Los índices que tienen las tablas, consult para identificar user, y words para

identificar consult, tienen una restricción de integridad de actualización y de borrado en

forma de cascada (CASCADE). Con esto, se evita que haya palabras o consultas

incoherentes. Así, por ejemplo, al registrar una consulta, y una vez que se registra la

consulta y la mitad de las palabras, si se surge un problema y se interrumpe el registro,

solo con borrar esa consulta en la tabla “consult”, borraría también todas las palabras de

esa consulta.

En las tablas 5,6 y 7 se ven todos los atributos con una breve descripción de las

tablas Consult, User y Words de la base de datos.

Page 88: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

87

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Campo Tipo Nulo Predeterminado Comentarios idConsult int(11) No El identificador de la consulta idUser int(11) No Es la identificación del usuario al que le

corresponde está consulta date timestamp No CURRENT_TIMESTAMP La fecha de la consulta Tabla 5: La tabla Consult de la base de datos.

Campo Tipo Nulo Predeterminado Comentarios idUser int(11) No El identificador del usuario email varchar(100) No El email del usuario que no se

podrá repetir (UNIQUE) password varchar(50) No La contraseña del usuario, que

estará codificado name varchar(20) No El nombre del usuario surnames varchar(40) No Los apellidos del usuario country varchar(20) No El país donde reside el usuario date_create timestamp No CURRENT_TIMESTAMP La fecha de creación de este

usuario active tinyint(1) No 1 Si está activo o no Tabla 6: La tabla User de la base de datos.

Campo Tipo Nulo Predeterminado Comentarios idWords int(11) No Identificador de palabra idConsult int(11) No Identificador de consulta al que

corresponde está palabra word varchar(30) No Palabra pos varchar(1) No Tipo order int(11) No Orden new? tinyint(1) No 0 Si es una palabra que ha introducido el

usuario o no derived? tinyint(1) No 0 Si ha sido derivado por Infomap o no selected? tinyint(1) No 0 Si ha sido seleccionado por el usuario o

no weight double No 0 El peso que tiene en la derivación offset_synset varchar(20) No Identificador de significado reliability double No El peso que tiene en la desambiguación polysemy_degree int(11) No El grado polisémico gloss varchar(20) No Significado del "offset_synset" correct? tinyint(1) No 0 Si la desambiguación es correcta en el

contexto o no

Tabla 7: La tabla Words de la base de datos.

Page 89: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

88

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

6.4- Implementación

La implementación de la aplicación Web se ha hecho con AJAX. En el lado del

servidor, como se ha comentado antes, se ha hecho con el lenguaje de programación

PHP y en el lado del cliente con JavaScript.

Ajax es una combinación de cuatro tecnologías ya existentes:

XHTML (o HTML) y hojas de estilos en cascada (CSS) para el diseño

que acompaña a la información.

Document Object Model (DOM) accedido con un lenguaje de scripting

por parte del usuario, especialmente implementaciones ECMAScript

como JavaScript y JScript, para mostrar e interactuar dinámicamente con

la información presentada.

El objeto XMLHttpRequest para intercambiar datos de forma asíncrona

con el servidor web. En algunos frameworks y en algunas situaciones

concretas, se usa un objeto iframe en lugar del XMLHttpRequest para

realizar dichos intercambios.

XML es el formato usado generalmente para la transferencia de datos

solicitados al servidor, aunque cualquier formato puede funcionar,

incluyendo HTML preformateado, texto plano, JSON y hasta EBML.

Respecto a las aplicaciones Infomap y SSI-Dijkstra, que se utilizan como

aplicaciones externas, se darán algunos detalles para ver su funcionamiento.

Page 90: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

89

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

6.4.1- Infomap

El comando associate

El software Infomap se basa en el concepto de modelo; cada modelo consta de

archivos en un directorio conocido como "directorio del modelo" o "directorio de datos

del modelo". El software Infomap realiza dos funciones básicas: la construcción de

modelos basándose en textos de corpus usando parámetros dados por el usuario, y la

búsqueda de un modelo existente para encontrar palabras o documentos más

relacionados con la consulta realizada a ese modelo.

La construcción del modelo y la búsqueda se realiza utilizando un algoritmo

similar a Latent Semantic Analysis (LSA). Una vez construido el modelo, la búsqueda

se realiza usando el comando “associate”.

Para poder usar el comando “associate”, es necesario establecer ciertos valores

en algunas variables de entorno, por ejemplo, la variable de entorno INFOMAP

MODEL PATH contiene una lista de directorios separados por dos puntos, en los que

los directorios de datos de Infomap puedes ser encontrados.

Otra de las variables de entorno que hay establecer es INFOMAP_

WORKJNG_DIR, esta variable de entorno es usada por el programa de construcción de

Infomap para determinar donde se crearan los directorios de datos cuando los modelos

se creen. Se llama directorio de trabajo porque es el lugar donde están almacenados los

modelos que se están construyendo.

Una vez ajustados los valores en las variables de entorno, podemos hacer la

consulta, que se hará de la siguiente manera:

associate -n 20 -c BNCpos3prova tropicalpa speciespn

Page 91: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

90

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

La parte tropicalpa speciespn es la consulta en sí, “tropical” y “species” son las

dos palabras que queremos buscar en nuestro corpus. Como podemos observar, estas

palabras tienen unos caracteres al final de cada una de ellas. Estos caracteres se utilizan

para indicar el POS de las palabras (n, v ,a, r). La opción -c nos sirve para determinar

cuál va a ser el corpus sobre el que vamos a realizar la búsqueda, en este caso será

BNCpos3prova.

El comando associate devuelve como salida una lista de palabras o documentos

que mejor se ajustan a la consulta realizada, en orden descendente de relevancia. Cada

línea de la salida consiste en una palabra o el identificador de un documento, seguido

por dos puntos, y seguido por un número que indica la proximidad de esa palabra

respecto a las palabras utilizadas en la consulta. En el caso de recuperación de

documentos, el identificador del documento puede utilizarse para obtener el documento

en sí.

Por defecto, el comando associate devuelve una lista de 10 palabras o

documentos que mejor coinciden con la consulta realizada. La opción -n de la línea de

comando puede utilizarse para cambiar este valor y especificar el número de líneas de

salida que se desean.

Ejemplos de uso

En la figura 21 podemos ver un ejemplo de cómo se puede realizar una consulta.

Esta consulta se realiza desde la consola de comandos de Unix. Lo primero que

debemos hacer es ajustar los valores de las variables de entorno, después introduciremos

la consulta que deseamos realizar y el programa nos dará su respuesta.

Page 92: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

91

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

INFOMAP_MODEL_PATH=/home/cuadros/corpus/models INFOMAP_WORKING_DTR=/home/cuadros/corpus/models export INFOMAP_MODEL_PATH export INFOMAP_WORKING_DIR [rigau@adimen infomap]$ associate -n 20 -c BNCpos3prova tropicalpa specíespn tropicalpa:O.953014 speciespn:0.953014 birdspn:0.926641 mammalspn:0.908901 invertebratespn:0.889433 breedingpn:0.881263 temperatepa:O.876306 preypn:0.873921 birdpn:O.869077 whalespn:0.865983 insectspn:0.861247 habitatpn:O.854986 predatorspn:O.853619 butterfliespn: 0.845556 frogspn:O.827578 genuspn:O.827000 faunapn:O.822362 arcticpa:O.821317 habitatspn:O.820968 sealspn:O.818886

Figura 21: Ejemplo de uso del comando associate.

6.4.2- SSI-Dijkstra

En la figura 22 se puede ver el algoritmo SSI. Dada W, una lista ordenada de

palabras que deben ser desambiguadas, el algoritmo SSI funciona de la siguiente

manera: En el paso de inicialización, todas las palabras monosemicas son incluidas en

una lista I que contiene las palabras que ya están interpretadas, mientras que las palabras

polisémicas son incluidas en la lista P, donde estarán todas las palabras pendientes de

desambiguar. En cada paso, la lista I se usa para desambiguar una palabra de la lista P,

seleccionando el sentido de la palabra que más se aproxima entre las palabras ya

desambiguadas de la lista I. Una vez seleccionado el sentido, esa palabra la quitamos de

Page 93: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

92

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

la lista P y la incluimos en la lista I. El algoritmo termina cuando ya no quedan más

palabras pendientes de desambiguar en la lista P.

SSI (T: list ofterms)

for each {t ϵ T} do l[t] = 0 if t is monosemous then

l[t] := the only sense of t eIse

P:= P U {t} end if

end for repeat P' := P for each {t ϵ P} do

BestSense := Ø MaxValue := 0 for each {sense s of t} do

W[s] := O N[s] := O for each {sense s' ϵ I} do

w := DijkstraShortestPath(s,s') if w>0 then

W[s] := W[s] + (l/w) N[s] := N[s] + 1

end if end for if N[s] > 0 then

NewValue := W[s]/N[s] If NewValue > MaxValue then

MaxValue := NewValue BestSense := s

end if end if

end for if MaxValue > 0 then

l[t] := BestSense P := P \ {t}

end if end for until P≠P' return (I,P);

Figura 22: Algoritmo SSI-Dijkstra

Page 94: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

93

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Inicialmente, la lista de palabras interpretadas en I debería incluir los sentidos de

las palabras monosemicas de W.

En relación a la proximidad de un synset con el resto de synset de 1, se usa el

conocimiento que ya tenemos disponible para construir un grafo que contiene 99,635

nodos (synset) y 636,077 arcos obtenido del MCR. Este grafo incluye una serie de

relaciones directas sacadas WordNet y eXtended WordNet. Dijkstra es un algoritmo

muy eficiente para calcular cuál es la distancia más corta entre dos nodos del grafo.

SSI-Dijkstra tiene unas propiedades muy interesantes, por ejemplo, es capaz de

calcular de forma eficiente cuál es la distancia más corta entre dos nodos del grafo. Esto

es, el algoritmo nos proporciona una respuesta sobre si la distancia mínima entre dos

nodos es corta o larga. De hecho, el algoritmo compara las distancias entre los synsets

de una palabra con los synsets de las palabras ya interpretadas en I.

Además, esta aproximación es independiente del lenguaje. El mismo grafo se

puede usar para diferentes idiomas si existen palabras conectadas a WordNet para ese

lenguaje.

6.4.3- Detalles técnicos

Se explicará un poco algunos detalles de la implementación para que se pueda

saber cómo están hechos, y en qué lugar se pueden encontrar para futuras

modificaciones.

Para que la aplicación Web pueda funcionar en Fedora, se han dividido las

paginas entre los que son para interpretar (perl, php) y las que sin interpretar (jpg, gif,

css, js). Los que se pueden interpretar estarán en /var/www/cgi-bin/ y los que no en

/var/www/html/. Para que las páginas interpretadas puedan enlazar con los otros

archivos se han utilizado rutas relativas.

Page 95: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

94

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

En el lado del servidor, vamos a tener cuatro páginas principales, que serán

BD.php, formulario.php, información.php y menú.php. BD.php gestiona las operaciones

que utilizan la base de datos, formulario.php nos devuelve los formularios que

queramos cargar, información.php nos devuelve la parte de la información que nos

interesa, y menu.php da el menú que tiene la aplicación Web.

Estas páginas, primero miran en qué idioma quieren que se dé el resultado.

Depende que idioma sea carga una u otra página de definiciones, que contienen todas

las variables que se utilizan con su correspondiente traducción. Estos ficheros están en

la carpeta constantes, teniendo como nombre, el idioma que representan ( euskera.php,

castellano.php, ingles.php o catalán.php). En esta carpeta también hay un fichero de

variables que tiene algunos parámetros que se pueden modificar.

En el lado del usuario, se utilizan los archivos de JavaScript (.js). La mayoría de

las funciones los contiene funciones.js. Aquí hay funciones generales que se utilizan

muchas veces para cargar los contenidos, o para que mande datos por xmlHttpRequest,

y otros más concretos. También hay el fichero encript.js que contiene dos funciones,

que son sha1 y md5 que se usan para codificar las contraseñas de los usuarios. Antes de

mandar las contraseñas a la parte del servidor se le aplica primero la función de md5, y

después sha1, y se manda la contraseña codificada.

Todos los ficheros necesarios para la barra de menú que tienen la aplicación

Web están en la carpeta de nombre “ddlevelsfiles”. Todas las imágenes están en la

carpeta de imágenes y el diseño de las páginas se hace mediante pagina.css, que es una

hoja de estilo que le da formato a los diferentes etiquetas de las páginas.

En definitiva, los cambios básicos que serian la de cambiar las traducciones de

los diferentes idiomas y la de cambiar parámetros como son datos de acceso a la base de

datos, o la ruta donde se localiza el software de infomap y SSI-Dijsktra, están en la

carpeta de constantes que antes hemos mencionado. Estos son ficheros PHP, que se

pueden cambiar las definiciones sin afectar en el funcionamiento de la aplicación Web.

Page 96: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

95

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Las tablas de la base de datos son de tipo InnoDB que su característica principal

es que soporta transacciones de tipo ACID y bloqueo de registros e integridad

referencial. Y utilizan cotejamiento de utf8_spanish.

6.5- Pruebas

Las primeras pruebas se realizaron en el ordenador local con el sistema

operativo de Fedora, Infomap y SSI-Dijkstra, y también el servidor de Web Apache y

PHP. Una vez instalado todo, se realizó una primera iteración básica, consistió en unas

páginas PHP que utilizaban Infomap y SSI-Dijkstra y comprobar que se obtenía

correctamente los resultados.

Una vez comprobado esta primera versión, se hizo una segunda iteración más

compleja en Windows, sin utilizar Infomap y SSI-Dijsktra. Una vez terminada, se pasó

a Fedora, y se integró con Infomap y SSI-Dijsktra para verificar que el funcionamiento

era el esperado.

Las pruebas de la aplicación Web final, se realizarón en el ordenador local. Estás

pruebas se hicieron simulando la situación del servidor final, en el ordenador local.

Estas pruebas consistían en realizar todos los casos de uso, incluyendo situaciones

excepcionales. Estas pruebas se realizarón con dos navegadores, Internet Explorer y

Mozilla Firefox.

Una vez hecho las pruebas en el servidor local, se implantaron en el servidor

final, y se tendrá un periodo de prueba de dos semanas, para que, con el funcionamiento

habitual, se detectaran los posibles fallos que puedan existir, y realizar una nueva

versión de la aplicación Web evitando estos posibles fallos.

Page 97: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

96

6- Desarrollo de la aplicación Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

6.6- Implantación

Se han realizado 3 implantaciones básicas en el servidor final: primer prototipo

de la aplicación web27, el segundo prototipo28 y el servicio Web29

Cambios principales que se han tenido que hacer en la implantación de la

aplicación Web (prototipo 2) en el servidor final son estas:

. El segundo prototipo

de la aplicación Web, al ser la versión final que debe de corregir posibles fallos de

funcionamiento, ha tenido actualizaciones que han ocasionado que se tenga que

implantar en más de una ocasión.

1. Cambiar los permisos de los ficheros para que todos los usuarios tengan derecho de leer y ejecutar estos ficheros.

2. Cambiar los ficheros que se interpretan (archivos PHP) al directorio

/var/www/cgi-bin/, y los ficheros que no se interpretan cambiarlos a /var/www/html, teniendo que cambiar las rutas que se hayan utilizado en los enlaces entre ficheros.

Las implantaciones de primer prototipo de la aplicación Web y el servicio Web,

al ser más simples, no se tuvo realizar ningún cambio importante en la implantación.

27 http://adimen.si.ehu.es/cgi-bin/WSDbyEvocation.v1/index.php 28 http://adimen.si.ehu.es/cgi-bin/WSDbyEvocation/index.php 29 http://adimen.si.ehu.es/WSDbyEvocation/infomap+ssi.html

Page 98: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

97

7- Desarrollo del servicio Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

7- Desarrollo del servicio Web

Este servicio Web, combina Infomap y SSI-Dijsktra en uno. Así, al llamar a este

servicio Web introduciendo una serie de palabras y el numero de resultados que se

quieran obtener, se obtendrá un documento XML que da como resultado una serie de

palabras, evocadas mediante Infomap, y con sus respectivos significados,

desambiguados mediante SSI-Dijsktra.

7.1- Diseño

Esté servicio Web solo tendrá una función, que pasadas una serie de palabras

con su correspondiente tipo, y el numero de resultados que se quiera obtener, devolverá

el resultado de aplicar Infomap y posteriormente SSI-Dijkstra. A continuación se

pondrá la función en pseudocódigo para que se vea lo que hace:

Función: infomap+SSI(listaPalabras, numResultados) Repetir por cada palabra pasado por url hacer paramInfomap+= Información de palabra en formato adecuado finRepetir paramInfomap+= añadir numResultados resultado_infomap = Consultar Infomap (paramInfomap) Repetir por cada palabra de resultado_infomap hacer paramSSI+= Información de palabra en adecuado formato finRepetir resultado_ssi = Consultar SSI-Dijkstra (paramSSI) Repetir por cada palabra resuleto hacer resultado += poner en formato XML finRepetir Devolver resultado

Page 99: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

98

7- Desarrollo del servicio Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Para introducir los parámetros y sus valores, se hará mediante URL del servicio

Web. Tendrá dos tipos de parámetros:

n=numero: El numero de resultados que se quiere obtener.

w=palabra-tipo: Este parámetro contendrá la palabra que se quiere buscar.

“palabra” será la palabra que se quiere buscar y “tipo”, que es la letra que identifica el

tipo de la palabra (n:nombre, a:adjetivo, r:adverbio, v:verbo). Este parámetro se repite

por cada palabra que se quiera buscar.

El resultado de este servicio Web, será un documento XML que tendrá la

información obtenida de Infomap y SSI-Dijkstra. Tendrá este formato:

<result>

<token> <word>palabra</word> <pos>tipo</pos> <new>Si ha sido introducido</new> <derived>Si ha sido derivado</derived> <weight>Fiabilidad en evocación</weight> <order>Orden</order> <selected>Si ha sido seleccionado</selected> <offset_synset>Significado elegido por el contexto</offset_synset> <reliability>Fiabilidad en desambiguación</reliability> <polysemy_degree>Grado polisémico</polysemy_degree> <gloss>Significado</gloss> <correct>Si su significado es correcto en el contexto</correct>

</token> …

</result>

Por ejemplo, al querer 3 resultados de las palabras teach(verbo) y

student(nombre):

Infomap+ssi.html?n=3&w=teach-v&w=teacher-n

Page 100: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

99

7- Desarrollo del servicio Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Parte del resultado de eso sería este:

<result> <token>

<word>teach</word> <pos>v</pos> <new>true</new> <derived>true</derived> <weight>0.947589</weight> <order>2</order> <selected>true</selected> <offset_synset>00829107-v</offset_synset> <reliability>0.483333333333333</reliability> <polysemy_degree>10</polysemy_degree> <gloss>impart skills or knowledge to</gloss> <correct>true</correct>

</token> <token>

<word>teacher</word> <pos>n</pos> <new>true</new> <derived>true</derived> <weight>0.947589</weight> <order>1</order> <selected>true</selected> <offset_synset>10694258-n</offset_synset> <reliability>0.398148148148148</reliability> <polysemy_degree>9</polysemy_degree> <gloss>a person whose occupation is teaching </gloss> <correct>true</correct>

</token> <token>

<word>teaching</word> <pos>n</pos> <new>false</new> <derived>true</derived> <weight>0.906887</weight> <order>3</order> <selected>true</selected> <offset_synset>00883297-n</offset_synset> <reliability>0.5</reliability>

Page 101: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

100

7- Desarrollo del servicio Web PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

<polysemy_degree>11</polysemy_degree> <gloss>the activities of educating or instructing; activities that impart knowledge or skill</gloss> <correct>true</correct>

</token> </result>

7.2- Implementación

Solo es un fichero html que coge por parámetros del url las palabras introducidas

y devuelve el resultado en XML. No está vinculado a ninguna página.

Se ha implementado en Javascript, usando xmlhttprequest para mandar

peticiones al software de Infomap y SSI-Dijkstra, y luego tratando el resultado obtenido

con este lenguaje de programación.

7.3- Pruebas

Ya qué utiliza líneas de código utilizado en la aplicación Web, las pruebas

realizadas en él han servido para verificar qué parte del código funciona correctamente

en el servidor final. Después de las modificaciones se han hecho pruebas en el servidor

local.

7.4- Implantación

En la implantación, se ha tenido que modificar dos variables del servicio Web,

en el que estos variables definen donde está localizado el software de Infomap y SSI-

Dijkstra.

Page 102: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

101

8- Gestión PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

8- Gestión

En la tabla 8 se ve la comparativa entre la duración de las tareas que se ha

estimado en el DOP y el tiempo real que se ha durado en realizarse. También veremos

una pequeña conclusión que sacamos viendo las comparativas en las conclusiones.

8.1- Comparativa por tareas

Tabla 8: Comparativa por tareas.

Tarea Duración estimado (h) Duración real (h) Diferencia (%) Procesos tácticos 47 57 121%

Análisis de entorno 5 4 80% Gestión de herramientas 2 3 150% Planificación 30 36 120% Reuniones 10 14 140%

Procesos formativos 103 107 104% Herramientas 3 6 200% Lenguajes de programación 10 6 60% Tecnologías 2 3 150% Memoria 80 92 115% Presentación 8 0%

Procesos operativos 176 213 121% Primera iteración 13 8 62%

Análisis de entorno 2 2 100% Captura de requisitos 3 3 100% Modificar SSI-Dijkstra 8 3 38%

Segunda iteración 19,5 22 113% Captura de requisitos 2 1 50% Análisis 2 2 100% Diseño 3 2 67% Implementación 10 15 150% Pruebas 2 1,5 75% Implantación 0,5 0,5 100%

Tercera iteración 136 179 132% Captura de requisitos 12 8 67% Análisis 10 7 70% Diseño 7 8 114% Implementación 90 135 150% Pruebas 15 20 133% Implantación 2 1 50%

Cuarta iteración 7,5 4 53% Diseño 1,5 0,5 33% Implementación 4 2,5 63% Pruebas 1 0,5 50% Implantación 1 0,5 50%

TOTAL 326 377 116%

Page 103: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

102

8- Gestión PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

En la tabla 8 vemos la duración estimada, duración real y la diferencia que hay

entre ambas duraciones. La diferencia indica que porcentaje de la duración estimado se

ha utilizado realmente.

8.2- Comparativa entre procesos

En la figura 23, se ve la diferencia que ha habido entre el tiempo planificado y el

tiempo durado en cada proceso.

Figura 23: Gráfico que refleja la comparativa entre procesos.

El mayor esfuerzo ha sido en los procesos operativos, siendo más esfuerzo del

que esperábamos.

8.3- Comparativa por procesos

Para ver la comparativa entre las tareas de cada proceso, se ilustrara mediante

gráficos que indicas los porcentajes de tiempo utilizado en el esfuerzo planificado y el

esfuerzo real.

Procesos tácticosProcesos formativos

Procesos operativos

47 103176

57 107213

Duración estimado (h) Duración real (h)

Page 104: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

103

8- Gestión PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

8.3.1- Procesos tácticos

Los gráficos 24 y 25 muestran el esfuerzo planificado y el esfuerzo real en

procesos tácticos.

Figura 24: Gráfico que refleja el esfuerzo planificado en procesos tácticos.

Figura 25: Gráfico que refleja el esfuerzo real en procesos tácticos.

El mayor esfuerzo en los procesos tácticos ha sido la de planificación, seguido

de las reuniones.

11%4%

64%

21%

Esfuerzo planificado en procesos tácticos

Análisis de entorno

Gestión de herramientas

Planificación

Reuniones

7%5%

63%

25%

Esfuerzo real en procesos tácticos

Análisis de entorno

Gestión de herramientas

Planificación

Reuniones

Page 105: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

104

8- Gestión PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

8.3.2- Procesos formativos

Los gráficos 26 y 27 muestran el esfuerzo planificado y el esfuerzo real en

procesos formativos.

Figura 26: Gráfico que refleja el esfuerzo planificado en procesos formativos.

Figura 27: Gráfico que refleja el esfuerzo real en procesos formativos.

Como estaba previsto, la tarea que requiere bastante más esfuerzo es la memoria.

3%

10%2%

77%

8%

Esfuerzo planificado en procesos formativos

Herramientas

Lenguajes de programación

Tecnologías

Memoria

Presentación

5%6% 3%

86%

Esfuerzo real en procesos formativos

Herramientas

Lenguajes de programación

Tecnologías

Memoria

Presentación

Page 106: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

105

8- Gestión PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

8.3.3- Procesos operativos

Los gráficos 28 y 29 muestran la diferencia entre el esfuerzo planificado y el

esfuerzo real en procesos operativos.

Figura 28: Gráfico que refleja el esfuerzo planificado en procesos operativos.

Figura 29: Gráfico que refleja el esfuerzo real en procesos operativos.

La tercera iteración, es decir, el segundo prototipo de la aplicación Web es el

que más tiempo ha supuesto.

8% 11%

77%

4%

Esfuerzo planificado en procesos operativos

Primera iteración

Segunda iteración

Tercera iteración

Cuarta iteración

4%

10%

84%

2%

Esfuerzo real en procesos operativos

Primera iteración

Segunda iteración

Tercera iteración

Cuarta iteración

Page 107: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

106

8- Gestión PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Ya que los procesos operativos tienen subtareas, se muestran los gráficos 30 y

31 que indican entre las tareas repetidas en las diferentes iteraciones, los cambios que

hay entre el tiempo planificado y el tiempo real.

Figura 30: Gráfico que refleja el esfuerzo planificado de las tareas en los procesos

operativos.

Figura 31: Gráfico que refleja el esfuerzo planificado de las tareas en los procesos

operativos.

2 3

82

2 3 10 2 0,5

1210 7 90 15

2

1,5 4 11

Esfuerzo planificado de las tareas en los procesos operativos

Primera iteración Segunda iteración Tercera iteración Cuarta iteración

2 3

31

2 2 15 1,5 0,5

8 7 8 135 20 1

0,5 2,5 0,50,5

Esfuerzo real de las tareas en los procesos operativos

Primera iteración Segunda iteración Tercera iteración Cuarta iteración

Page 108: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

107

8- Gestión PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

En los gráficos 30 y 31 se pueden observar dos cosas. La primera es que la

tercera iteración es el que ha conllevado más tiempo, que también se veía en los

gráficos 28 y 29. Y el segundo la implementación ha sido el que más tiempo ha

requerido.

8.4- Conclusiones de la gestión

Viendo estos gráficos, se ve que las tareas que más tiempo han requerido son la

planificación, la memoria y la tercera iteración.

La mayor diferencia entre el esfuerzo planificado y el real es en la tercera

iteración. La tercera iteración ha conllevado más tiempo del planificado con lo que ha

supuesto que se haya incrementado la diferencia entre el planificado y el real. Aun así,

tampoco hay una diferencia abismal, y se puede decir que la planificación inicial se

ajusta al tiempo real utilizado en el proyecto.

Page 109: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

108

8- Gestión PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Page 110: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

109

9- Conclusiones PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

9- Conclusiones

Este proyecto se ha desarrollado satisfactoriamente, dentro de los plazos

establecidos y sin haber habido ningún contratiempo reseñable.

Este proyecto ha servido para crear una aplicación Web que proporciona una

capa de presentación, y gestión de consultas y usuarios a las aplicaciones de evocación

y desambiguación de palabras.

Está aplicación Web puede ayudar a detectar potenciales mejoras en todo el

procesos incluyendo posibles fallos de los programas de Infomap y SSI-Dijkstra.

9.1- Mejoras

Como en todas las cosas, siempre existen infinidad de mejoras que se pueden

realizar. En este caso, algunas mejoras posibles que se podrían hacer son estás:

1. Al obtener el resultado final, crear un grafo que presente las relaciones que existen entre cada palabra que aparece en el resultado.

2. La utilización de procedimientos almacenados en la base de datos. Así, en el caso de registrar las consultas registradas, utilizando transacciones, se registraran todas las palabras o ninguno.

3. Posibilidad de que los usuarios dejen comentarios personales en las

consultas, de manera que los otros usuarios lo puedan leer, y así, poder entender mejor su selección y elección de significados incorrectos.

4. Utilización de cookies para recordar el idioma que utiliza y cargar ese

idioma desde el principio.

Page 111: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

110

9- Conclusiones PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

9.2- Valoración personal

Creó que la aplicación Web que se ha creado es muy robusta e intuitiva.

Al utilizar mucho código en la parte del cliente, no creo que sea una aplicación

muy pesada para el servidor, ya que se ha intentado que moleste lo menos posible al

servidor que contenga está aplicación Web.

Personalmente me ha servido, para realizar todas las tareas que se tienen que

realizar para gestionar un proyecto desde el principio hasta el final y para adquirir

conocimiento sobre las aplicaciones existentes de evocación y desambiguación de

palabras. También me ha servido para la realización de una página Web completo en

AJAX, y así poder conocer que tipos de problemas suelen surgir y qué tipo de

soluciones se pueden aplicar en estos casos.

Page 112: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

111

10- Manual de usuario PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

10- Manual de usuario

10.1- Aplicación Web

En este manual de usuario se pretende guiar para que el usuario sepa utilizar las

principales funcionalidades de la aplicación Web.

10.1.1- Información general

Todas las opciones están localizadas en la parte de arriba. Desde este menú se

accede a todas las funcionalidades de la página Web.

1. Menú: Donde están todas las opciones. 2. Ir atrás: Para ir a la página anterior donde hayas estado. 3. Inicio: Para volver a la página inicial.

Page 113: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

112

10- Manual de usuario PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

4. Información: Aparecerá un submenú donde tendrás información relacionada a las aplicaciones que se han utilizado en la aplicación Web.

5. Evocación: Tiene un submenú que permite realizar una consulta. Si el usuario se registra, este submenú se amplia y permite hacer consultas registradas, ver palabras incorrectas, buscar una palabra, y ver historial de consultas.

6. Usuarios: Tiene un submenú que permite al usuario entrar o registrar un nuevo usuario. Si es usuario esta registrado, se cambian las opciones y da posibilidad de ver datos, cambiar datos, dar de baja o salir.

7. Enlaces: Muestra unos enlaces que se han utilizado para obtener información que hay en la aplicación Web o porque tiene relación con el proyecto.

8. Contacto: Muestra información referente a la creación de la pagina Web. 9. Manual Web: Tendrá un manual en el que explica el funcionamiento de la

Web. 10. Idioma: Tendrá un submenú que posibilita cambiar de idioma. 11. Ir adelante: Si se ha utilizado “ir atrás”, el usuario podrá volver a la página

que antes ha estado yendo una página adelante.

10.1.2- Identificar usuario

Page 114: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

113

10- Manual de usuario PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

El usuario rellena este formulario para identificarse.

1. Email (1): El usuario introduce su email. 2. Contraseña (2): Introduce su contraseña. 3. Entrar (3): Pulsa este boton para que se verifique sus datos y poder entrar.

10.1.3- Cambiar datos

En este formulario el usuario modifica los datos o introduce los datos que desee

cambiar.

1. Email: El email del usuario. 2. Contraseña: La contraseña del usuario. 3. Repetir contraseña: La repetición de la contraseña. 4. Nombre: Nombre del usuario. 5. Apellidos: Apellidos del usuario. 6. Provincia: Provincia del usuario. 7. Ciudad: Ciudad del usuario. 8. Cambiar: Envia la petición de modificar los datos.

Page 115: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

114

10- Manual de usuario PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

10.1.4- Consulta registrada

Page 116: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

115

10- Manual de usuario PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Si el usuario quiere hacer una consulta, sea consulta normal o registrada, deberá

de rellenar el primer formulario que aparece en la figura (1 rojo). Las partes que tiene

este formulario son los siguientes:

1. Palabra: En estos campos se introducirán las palabras que se quieren buscar. 2. Tipos: Se elige el tipo al que corresponde la palabra de esa fila. 3. Borrar: Borra el contenido de la fila. 4. Insertar: Inserta una nueva fila para que se pueda meter una nueva palabra. 5. Quitar: Eliminar una fila del formulario. 6. Numero: Se escribe el número de resultados que se quiere obtener. 7. Mandar: Para obtener el resultado de esa consulta mediante Infomap.

Una vez enviado la petición, aparecerá su resultado (2 rojo) y tendrá otro

formulario con:

8. Selección: Se pulsa en las casillas donde se quiere elegir esa palabra. 9. Continuar: Para obtener el resultado de aplicar SSI-Dijkstra.

El siguiente resultado (3 rojo) tendrá un último formulario para rellenar, muy

parecida al anterior:

10. No correcto: Selecciona esta casilla en las palabras que veas que su significado no se corresponde en el contexto de la consulta realizada.

11. Guardar: Pulsa para que se registre esa consulta.

Page 117: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

116

10- Manual de usuario PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

10.1.5- Buscar palabra

En este formulario se introduce la palabra y el tipo de la palabra que se quiera

buscar.

1. Palabra: Se introduce la palabra. 2. Tipo: Se selecciona el tipo de la palabra. 3. Buscar: Se pulsa para obtener el resultado.

Page 118: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

117

10- Manual de usuario PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

10.2- Servicio Web

Este servicio Web, funciona con los parámetros que se le pasan por URL. Estos

parámetros son de dos tipos:

n: número de resultados que se quiera obtener.

w: Las palabras que se quieran utilizar (palabra-{n,v,r,a}). Se puede repetir hasta

introducir todas las palabras deseadas.

Page 119: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

118

10- Manual de usuario PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

Page 120: Desarrollo de aplicación Web para la desambiguación de ...adimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierA...Estos programas se apoyan en las redes semánticas para la extracción

119

<11- Referencias PPFFCC:: XXAABBIIEERR AARRAAMMEENNDDII AAMMEENNAABBAARR

11- Referencias

Agirre, E., & Edmonds, P. -E. (2007). Word Sense Disambiguation: Algorithms and applications. Softcover ISBN: 978-1-4020-6870-6.

Cuadros M. and Rigau G. Bases de Conocimiento Multilíngües para el Procesamiento Semántico a Gran Escala. Procesamiento del Lenguaje Natural. (SEPLN). Vol. 40, 3.-4. I.-5. ( 2008).