pfc: xabier aramendi amenabar -...

113
Desarrollo de aplicación Web para la desambiguación de sentidos de palabras por evocación TITULACIÓN: Ingeniería técnica en informática de sistemas FACULTAD: Facultad de Informática FECHA: Abril de 2010 ALUMNO: Xabier Aramendi Amenabar DIRECTOR: German Rigau Claramunt

Upload: vokhue

Post on 31-Jan-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de aplicación Web para la desambiguación de sentidos de palabras por

evocación

TITULACIÓN: Ingeniería técnica en informática de sistemasFACULTAD: Facultad de InformáticaFECHA: Abril de 2010

ALUMNO: Xabier Aramendi AmenabarDIRECTOR: German Rigau Claramunt

Page 2: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

Índice

ÍNDICE_______________________________________________________________________________2

INTRODUCCIÓN_______________________________________________________________________4

MARCO DE TRABAJO___________________________________________________________________8

REDES SEMÁNTICAS_____________________________________________________________________8WordNet_________________________________________________________________________9EuroWordNet____________________________________________________________________11

PROYECTO MEANING___________________________________________________________________12Multilingual Central Repository (MCR)________________________________________________13Wei____________________________________________________________________________14

KYOTO____________________________________________________________________________14INFOMAP___________________________________________________________________________16

Latent Semantic Analysis (LSA)______________________________________________________17British National Corpus____________________________________________________________17Infomap: El comando associate______________________________________________________18Ejemplos de uso__________________________________________________________________19

SSI-DIJKSTRA________________________________________________________________________20SERVICIOS WEB______________________________________________________________________22APLICACIÓN WEB_____________________________________________________________________25

ARQUITECTURA DEL SISTEMA___________________________________________________________26

APLICACIÓN WEB_____________________________________________________________________26SERVICIO WEB_______________________________________________________________________27

ELECCIÓN TECNOLÓGICA_______________________________________________________________28

EL SISTEMA_________________________________________________________________________28Fedora_________________________________________________________________________28Apache_________________________________________________________________________28PHP____________________________________________________________________________29MySQL_________________________________________________________________________29

DESARROLLO________________________________________________________________________30Dreamweaver____________________________________________________________________31Photoshop______________________________________________________________________31Word__________________________________________________________________________31Visio___________________________________________________________________________31Excel___________________________________________________________________________32PowerPoint______________________________________________________________________32Firebug_________________________________________________________________________32

DESARROLLO DE LA APLICACIÓN WEB____________________________________________________34

CAPTURA DE REQUISITOS________________________________________________________________34Modelo de Casos de Uso (MCU)______________________________________________________34Modelo de Dominio (MD)___________________________________________________________39

Page 3: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

ANÁLISIS___________________________________________________________________________40Registrar usuario_________________________________________________________________40Consulta________________________________________________________________________41Identificar_______________________________________________________________________42Gestionar usuario_________________________________________________________________43Ver resultados___________________________________________________________________45Consulta registrada_______________________________________________________________47

DISEÑO____________________________________________________________________________48Pseudocódigos___________________________________________________________________49Tablas de la BD___________________________________________________________________53

IMPLEMENTACIÓN_____________________________________________________________________55Detalles técnicos_________________________________________________________________56

PRUEBAS___________________________________________________________________________57IMPLANTACIÓN_______________________________________________________________________58

DESARROLLO DEL SERVICIO WEB________________________________________________________59

DISEÑO____________________________________________________________________________59IMPLEMENTACIÓN_____________________________________________________________________61PRUEBAS___________________________________________________________________________61IMPLANTACIÓN_______________________________________________________________________62

GESTIÓN____________________________________________________________________________63

COMPARATIVA POR TAREAS______________________________________________________________64COMPARATIVA ENTRE PROCESOS___________________________________________________________65COMPARATIVA POR PROCESOS_____________________________________________________________65

Procesos tácticos_________________________________________________________________66Procesos formativos_______________________________________________________________67Procesos operativos_______________________________________________________________68

CONCLUSIONES DE LA GESTIÓN____________________________________________________________70

CONCLUSIONES______________________________________________________________________71

MEJORAS___________________________________________________________________________71VALORACIÓN PERSONAL_________________________________________________________________72

APÉNDICE___________________________________________________________________________73

DOP______________________________________________________________________________73Objetivo________________________________________________________________________73Método de trabajo________________________________________________________________73Alcance_________________________________________________________________________74Planificación temporal_____________________________________________________________83Plan de contingencia______________________________________________________________85Análisis de factibilidad_____________________________________________________________87

MANUAL DE USUARIO__________________________________________________________________87Información general_______________________________________________________________87Identificar usuario________________________________________________________________88Cambiar datos___________________________________________________________________89Consulta registrada_______________________________________________________________90Buscar palabra___________________________________________________________________91

Page 4: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

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 Natural (PLN).

La desambiguación de sentidos de las palabras (WSD: Word Sense Disambiguation) es tradicionalmente considerado uno de los problemas complejos de la IA. 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 un mismo software.

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 Corpus (BNC), estos términos que se producen están estrechamente relacionados con las palabras consultadas por el usuario.

Latent Semantic Analysis (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, produciendo una serie de conceptos relacionados con los términos y los documentos.

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.

El software SSI-Dijkstra es una versión del algoritmo SSI (Structural Semantic Interconnections), que basándose en el conocimiento iterativo está orientado a la desambiguación de la las palabras (WSD: Word Sense Disambiguation).

Page 5: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

Para ver el funcionamiento de la aplicación Web, vamos a proponer un ejemplo. En el ejemplo, el usuario quiere descubrir de qué se trata un término. En concreto el usuario quiere averiguar esté término, “structural semantic interconnection”, por lo que el usuario introduce las palabras especificando cada palabra de qué tipo de palabra se trata, y especificando cuantas palabras relacionadas quiere obtener.

Structural (Adjetivo) Semantic (Adjetivo) Interconnection (Nombre)

Mediante Infomap, la aplicación Web obtendrá una serie de palabras relacionadas con las palabras introducidas. En nuestro ejemplo queremos obtener las 15 palabras más relacionadas a esas tres palabras. El resultado sería este:

1. variant (Nombre)2. structural (Adjetivo)3. formalism (Nombre)4. spatial (Adjetivo)5. structure (Nombre)6. signification (Nombre)7. discrete (Adjetivo)8. elaborate (Verbo)9. associative (Adjetivo)10. schematic (Adjetivo)11. semantic (Adjetivo)12. generative (Adjetivo)13. complex (Adjetivo)14. kinship (Nombre)15. probabilistic (Adjetivo)

Como vemos, en este ejemplo no aparece el nombre “Interconnection”. Eso se debe a que Infomap busca las palabras que más tienen que ver con el término que se busca, y los devuelve ordenados. Por eso “Interconnection” no aparece, ya que hay otras palabras que están más relacionados. Si en este ejemplo pusiéramos que nos devolviera más resultados, no aparecería la palabra “Interconnection” en el puesto 42.

Una vez obtenidos los resultados de Infomap podremos deseleccionar alguna palabra 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 seleccionadas, la aplicación Web analizara este conjunto de palabras mediante SSI-Dijkstra.

Page 6: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

Una palabra puede tener varios sentidos posibles, depende en qué contexto hablemos, por lo que la función de SSI-Dijkstra es la de obtener los significados correctos que corresponden al contexto en que se dan las palabras. Los significados se identifican con un numero y el tipo del que se trata (n: nombre, a: adjetivo, v: verbo, r: adverbio) que corresponden a un sentido en concreto, que se llama “Synset”. En el caso del ejemplo obtendríamos este resultado:

Palabra Synset Significadovariant 05971621-n (philosophy) the philosophical theory that formal (logical or

mathematical) statements have no meaning but that its symbols (regarded as physical entities) exhibit a form that has useful applications

structural 05840650-n something a little different from others of the same typeformalism 02842042-a of or relating to meaning or the study of meaningspatial 00955601-v add details, as to an account or idea; clarify the meaning of

and discourse in a learned way, usually in writingstructure 06601327-n the message that is intended or expressed or signifiedsignification 02841066-a pertaining to or involving or having the nature of spacediscrete 04931965-n the manner of construction of something and the

arrangement of its partselaborate 01867295-a having the ability to produce or originateassociative 02897158-a relating to or having or characterized by structureschematic 03103058-a of or relating to the Roman Catholic philosophy of probabilismsemantic 02110778-a constituting a separate entity or partgenerative 02176178-a complicated in structure; consisting of interconnected partscomplex 00157389-a characterized by or causing or resulting from the process of

bringing ideas or events together in memory or imaginationkinship 13812607-n (anthropology) relatedness or connection by blood or

marriage or adoptionprobabilistic 01980796-a represented in simplified or symbolic form

El usuario al tener una serie de palabras con sus significados correspondientes, se podrá hacer una idea de qué se trata el término que ha introducido inicialmente. Puede haber alguna palabra que su significado no corresponda al contexto, por lo que el usuario tiene la posibilidad de registrar esa consulta e indicar que el significado que da SSI-Dijkstra en el contexto actual no es correcto.

Con las consultas que se hayan registrado, habrá la posibilidad de ver las palabras que en la consulta realizada no se ha obtenido un significado satisfactorio, para una posible corrección en el software SSI-Dijkstra o donde haya podido fallar, siempre sabiendo que el usuario haya podido catalogar como incorrecto y poder ser correcto.

Page 7: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

El objetivo de este proyecto será la de elaborar una aplicación web. La principal funcionalidad de este servicio web es la de proporcionar un interfaz para la utilización de la aplicación Infomap, que se basa en LSA, y la de obtención de las interpretaciones de las palabras basado en el conocimiento, mediante la aplicación SSI-Dijkstra.

Esta aplicación Web, también tendrá información necesaria para entender la funcionalidad de la aplicación Web, del software que utiliza, y también se hará una gestión de los usuarios. El ejemplo puesto anteriormente, se trata de una consulta registrada que solo lo podrá realizar un usuario que se haya registrado e identificado, pero también hay otra consulta que introduciendo las palabras que se quieran buscar, directamente da la solución final.

Al crear una aplicación web que utilice estas dos aplicaciones conjuntamente, se evita la necesidad de instalar estas dos aplicaciones, y la de facilitar un estudio sobre estas aplicaciones.

Page 8: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

Marco de Trabajo

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.

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.

Figura 1: Ejemplo de red semántica

Page 9: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

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 nodo (mamífero, animal, oso, pez,…), las relaciones (es un, tiene, vive en) y las distancias.

Existen diversos tipos d 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 WordNet.

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 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 (PartofSpeech); que puede ser (n) para nombres, (v) para verbos, (a) para adjetivos y (r) para adverbios:

02152053#n fish#101926311#v run#102545023#a funny#400005567#r automatically#1

El número que aparece después de cada palabra indica el número de sentido que representa el synset. 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.

Page 10: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

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;

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, tenemos que tener en cuenta los arcos de la red semántica, estos 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 hyperónimia 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#2inactive#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#2milk#n#1 HAS_SUBSTANCE protein#n#1family#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#1protein#n#1 SUBSTANCE_OF milk#n#1

Page 11: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

child#n#2 MEMBER_OF family#n#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 EuroWordNet (Vossen, 1998). EuroWordNet (EWN) consiste en una extensión multilingüe de WN, compuesta por bases de datos léxicas para 8 idiomas (inglés, holandés, español, italiano, francés, alemán, checo y estonio).

Tras la finalización del proyecto EWN, empezaron a desarrollarse wordnets para idiomas como el catalán, euskera, portugués, griego, búlgaro, ruso y sueco. Actualmente, la creación de estos wordnets está coordinada por “Global Wordnet Organization”.

El Í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 difrentes, 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 Intellingü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

En la siguiente figura 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.

Page 12: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

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, español), 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 español, 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 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.

Proyecto Meaning

Meaning (Rigau et al., 2002) representa uno de los proyectos más ambiciosos relacionados con EWN y WN. Su objetivo principal consiste en la adquisición automática del conocimiento lingüístico (en especial, del conocimiento semántico o conceptual) a partir de la Web y

Page 13: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

construcción de recursos léxicos más eficiente, 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.

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:

Conjunto de herramientas para adquisición automática de conocimiento semántico a partir de grandes colecciones de textos disponibles en la web.

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.

El Repositorio Central Multilingüe (MCR), fue desarrollado como parte de este proyecto. Su principal objetivo fue el de mantener la compatibilidad entre los diferentes wordnets y poder exportar, de forma consistente, el conocimiento adquirido para un idioma en particular al resto de idiomas. Actualmente constituye probablemente la base de conocimiento léxico multilingüe más extenso y más rico jamás construido.

Multilingual Central Repository (MCR)

El MCR (Multilingual Central Repository) (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.

Su versión final 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.

Page 14: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

Wei

Para poder interactuar con el MCR se desarrolló WEI (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.

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.

Kyoto

El proyecto KYOTO (Knowledge Yielding Ontologies for Transition-based Organization) (ICT-211423) empezó en Marzo de 2008 y tiene previsto terminar en Marzo de 2011.

Page 15: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

KYOTO tiene como objetivo construir un sistema de información independiente del lenguaje para un dominio específico (medio ambiente, ecología y biodiversidad). Este sistema será una ontología compartida independiente del lenguaje que estará vinculada a WordNets de 7 idiomas diferentes. Para cada idioma, la identificación y la extracción léxica de conceptos se llevará a cabo por los Kybots, 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.

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. En la figura 4 podemos ver cómo funciona este proceso.

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 lugares de diferentes y variadas fuentes de información de múltiples idiomas.

Page 16: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

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.

4. El wiki de medio ambiente (Wikyoto) permite a las personas del dominio a mantener los términos y conceptos y a ponerse de acuerdo en su significado, sin depender del idioma. 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 detectar datos en 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 Tybots 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.

Infomap

Una de las aplicaciones que necesitaremos para desarrollar el servicio web será Infomap, este programa 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 Corpus (BNC), estos términos que se producen están estrechamente relacionados con las palabras consultadas por el usuario.

Page 17: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

Latent Semantic Analysis (LSA)

Latent Semantic Analysis (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, produciendo una serie de conceptos relacionados con los términos y los documentos.

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 palabras de los pasajes más significativos de un gran corpus de texto, tales como párrafos u oraciones.

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.

British National Corpus

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 completo 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).

Page 18: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

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.

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.

Ejemplo: Para las fuentes escritas, se toman muestras de 45.000 palabras de diferentes textos de un solo autor. Los textos más breves se incluyen al completo (45.000 palabras como máximo), como artículos de revistas o periódicos. La toma de muestras permite una cobertura más amplia de los textos, y evita la sobre-representación de la idiosincrasia de textos.

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 liberados de corpus usando parámetros de aprendizaje dados por el usuario, y la búsqueda de un modelo existente para encontrar palabras o documentos que mejor coincidan con la consulta realizada a ese modelo. Después de construir el modelo, también puede ser instalado para hacer la búsqueda más conveniente, y para permitir que otros usuarios puedan realizar sus búsquedas.

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.

Page 19: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

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

La parte tropicalpa speciespn es la consulta en sí, tropical y species son las dos palabras que queremos buscar en nuestro corpus, pero como podemos observar, estas palabras tienen unos caracteres al final de cada una de ellas, estos caracteres se utilizan para dar un formato correcto a las palabras a buscar. 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 20 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 el siguiente ejemplo podemos ver como 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 20: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

INFOMAP_MODEL_PATH=/home/cuadros/corpus/modelsINFOMAP_WORKING_DTR=/homei/cuadros/corpus/modelsexport INFOMAP_MODEL_PATHexport INFOMAP_WORKING_DIR[rigau@adimen infomap]$ associate -n 20 -c BNCpos3prova tropicalpa specíespn tropicalpa:O.953014speciespn:0.953014birdspn:0.926641mammalspn:0.908901 invertebratespn:0.889433 breedingpn:0.881263 temperatepa:O.876306 preypn:0.873921 birdpn:O.869077whalespn:0.865983 insectspn:0.861247 habitatpn:O.854986 predatorspn:O.853619 butterfliespn: 0.845556 frogspn:O.827578 genuspn:O.827000faunapn:O.822362arcticpa:O.821317 habitatspn:O.820968sealspn:O.818886

Figura 5: Ejemplo de uso del comando associate

SSI-Dijkstra

El software SSI-Dijkstra es una versión del algoritmo SSI (Structural Semantic Interconnections), que basándose en el conocimiento iterativo está orientado a la desambiguación de la las palabras (WSD: Word Sense Disambiguation). El algoritmo SSI es muy simple y consiste en un paso de inicialización y en ciertos pasos iterativos (ver figura 6).

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 1. Una vez seleccionado el sentido, esa palabra la quitamos de la lista P y la incluimos en la lista 1. El algoritmo termina cuando ya no quedan más palabras pendientes de desambiguar en la lista P.

SSI (T: list ofterms)

Page 21: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

for each {t ϵ T} dol[t] = 0if t is monosemous then

l[t] := the only sense of teIse

P:= P U {t}end if

end forrepeatP' := Pfor each {t ϵ P} do

BestSense := ØMaxValue := 0for each {sense s of t} do

W[s] := ON[s] := Ofor 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 ifend for if N[s] > 0 then

NewValue := W[s]/N[s]If NewValue > MaxValue then

MaxValue := NewValueBestSense := s

end ifend if

end for if MaxValue > 0 then

l[t] := BestSenseP := P \ {t}

end ifend foruntil P≠P'return (I,P);

Figura 6: Algoritmo SSI-Dijkstra

Inicialmente, la lista de palabras interpretadas 1 debería incluir los sentidos de las palabras monosemicas de W, o un conjunto parcial de estos sentidos.

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. Este grafo incluye una serie de relaciones directas sacadas WordNet y eXtended

Page 22: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

WordNet. Dijkstra es un algoritmo muy eficiente para calcular cual 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 cual 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 1.

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.

Servicios 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), ...

A continuación se muestra un gráfico en el que se muestra cómo interactúa un conjunto de servicios web, este nos ayudará a entender mejor qué son y cómo funcionan:

Page 23: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

Figura 7: Ejemplo de un servicio Web

La figura 7 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.

En el proceso de intercambio de información intervienen diferentes tecnologías. Por un lado estaría SOAP (Simple Object Access Protocol), esta tecnología se basa en el formato XML, y es capaz de transferir mensajes con información compleja (ver figura 8). 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).

Page 24: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

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.

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:

Page 25: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

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).

Recientemente, los servicios web basados en RESTful (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.

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.

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.

Arquitectura del Sistema

Page 26: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

Esté proyecto tendrá dos resultados diferentes, por lo cual, habrá dos tipos de arquitecturas. Estos resultados son la aplicación Web y un servicio 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.

Aplicación Web

La aplicación Web necesitará un servidor Web y un servidor de base de datos. El servidor Web alojara la aplicación Web y hará accesible a todos los usuarios que haya en Internet. 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.

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.

Un servidor de base de datos es un sistema de gestión de bases de datos que es un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan.

Una base de datos (BD) es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso.

Como se puede observar en la figura 9, el usuario que tiene 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 27: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

Figura 9: La arquitectura para la aplicación Web

Servicio Web

El servicio Web no utiliza ningún tipo de base de datos, por lo que la arquitectura será idéntico a la arquitectura de la aplicación Web, restando el servidor BD y la base de datos, como se puede apreciar en la figura 10.

Figura 10: La arquitectura para el servicio Web

Elección Tecnológica

Se han utilizado varios software en el desarrollo de este proyecto y para generar los resultados obtenidos en este proyecto. 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.

Page 28: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

El sistema

El sistema estará sobre un sistema operativo basada en Linux, en concreto Fedora. Se utilizará Apache como servidor Web. El lenguaje de programación que se usará en el servidor Web será PHP. Como servidor de base de datos se utilizara MySQL-Server y como sistema de gestión de base de datos usaremos MySQL.

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.

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 librearía como pudiera dar en algún otro distribución Linux.

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").

Page 29: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

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.

PHP

PHP es un lenguaje de programación interpretado, diseñado originalmente para la creación de páginas web dinámicas. Es usado principalmente en interpretación del 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.

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.

Es una base de datos es una colección estructurada de tablas que contienen datos. Esta puede ser desde una simple lista de compras a una galería de pinturas o el vasto volumen de información en una red corporativa. Para agregar, acceder a y procesar datos guardados en un computador, usted necesita un administrador como MySQL Server. Dado que los computadores son muy buenos manejando grandes cantidades de información, los

Page 30: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

administradores de bases de datos juegan un papel central en computación, como aplicaciones independientes o como parte de otras aplicaciones.

Una base de datos relacional archiva datos en tablas separadas en vez de colocar todos los datos en un gran archivo. Esto permite velocidad y flexibilidad. Las tablas están conectadas por relaciones definidas que hacen posible combinar datos de diferentes tablas sobre pedido.

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 diferentes tareas del proyecto. También se han utilizado el software del sistema, 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.

Dreamweaver

Adobe Dreamweaver es una aplicación 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 principal competidor es Microsoft Expression Web y tiene

Page 31: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

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

Photoshop

Adobe Photoshop (Tienda de Fotos) es una aplicación informática 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.

Word

Microsoft Word 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.

Visio

Microsoft Visio es un software 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.

Page 32: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

Excel

Microsoft Excel 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 Lotus 1-2-3, 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.

PowerPoint

Microsoft PowerPoint es un muy popular programa para desarrollar y desplegar presentaciones visuales en entornos Windows 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.

Firebug

Firebug es una extensión 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. Se puede ver una muestra en la figura 11.

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. Su atractiva e intuitiva interfaz, con solapas específicas para el análisis de cada tipo de elemento (consola, HTML, CSS, Script, DOM y red), 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.

Page 33: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

Figura 11: Ejemplo de la extensión Firebug.

Desarrollo de la aplicación Web

Page 34: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

La aplicación Web que obtendremos en este proyecto es un sistema que se usará principalmente para la desambiguación de significados de palabras por evocación. Está tarea se realizará mediante Infomap y SSI-Dijsktra, tal como se ha explicado anteriormente.

Los resultados que se obtienen en la desambiguación, el sistema los registrara en una base de datos, con toda la información de esa consulta. Al tener esas consultas registradas en la base de datos, el sistema también visualizara algunos resultados relacionados con esas consultas.

El sistema, también realizara una gestión de los usuarios para poder realizar las consultas registradas, y para poder ver sus resultados concretos sobre las consultas registradas que ha realizado con anterioridad.

Captura de Requisitos

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.

Figura 12: Diagrama de casos de uso

Page 35: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

Registrar usuario

Un usuario que se quiera registrar, rellena el formulario que el sistema le ofrece para guardar sus datos. Una vez que ha rellenado todos los datos, el sistema verifica que los datos son correctos 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.

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 elige de qué tipo de letras se trata. Una vez escritas, y después de elegir el numero de resultados que quiera obtener, el sistema evalúa esas palabras con Infomap y SSI-Dijkstra para obtener el numero de resultados que tengan relación con las palabras introducidas por el usuario, y sus correspondientes significados y los visualizara.

Escenario principal (o curso normal de los eventos):

1. Usuario: Introduce las palabras, los tipos correspondientes a esas palabras y el numero de resultados que desea obtener.

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

Page 36: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

Identificar

El usuario se identifica ante el sistema. Para eso el usuario introduce su correo y la contraseña con el 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 es correcto la verificación, el usuario se queda registrado, en caso contrario, se deniega el acceso.

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

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.

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 sus datos que introdujo al registrarse, de cambiarlos, dar 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 tendrán que realizar 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.

Page 37: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

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 la cuenta 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.

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 algunos resultados que ha obtenido, y las que han obtenido al realizar las consultas registradas. 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.

Page 38: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

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.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, con la diferencia de 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 que se desean buscar, el sistema obtendra 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 39: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

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 son cada palabra que ha escrito y el numero de

resultados que desea obtener.4. Sistema: Visualiza el resultado obtenido mediante Infomap.5. Usuario: Selecciona las palabras, que están en el resultado, con las que desea continuar.6. Sistema: Visualiza el resultado obtenido mediante SSI-Dijkstra de las palabras que ha

seleccionado el usuario.7. Usuario: Selecciona, o no, alguna palabra que vea que su significado no sea el apropiado

para ese contexto.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 y el usuario tiene la opción de modificar las palabras introducidas.

Paso 6: No se han obtenido los significados de las palabras mediante SSI-Dijkstra.

1. Sistema: 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.

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á no tener consultas o varias consultas. Cada consulta solo será de un único usuario. Cada consulta tendrá más de una palabra, y cada palabra solo pertenecerá a una única consulta. Podrá haber palabras distintas con la misma palabra y del mismo tipo, pero se diferencian porque la información de si ha sido seleccionado, orden,… en esas dos palabras será totalmente diferente.

Figura 13: Modelo de dominio de la base de datos utilizado en la aplicación Web

Page 40: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

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 columna y el modo en que están relacionadas las tablas se explicarán más adelante, concretamente en el apartado de las tablas de la base de datos.

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.

Registrar usuario

Figura 14: Diagrama de Secuencia del Sistema de caso de uso “Registrar usuario”

Contrato : guardarDatos(correo, contraseña, nombre, apellidos, …)

Page 41: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

Responsabilidad: Registra el nuevo usuario con los datos recibidos por parámetro.

Excepciones: Si Usuario.correo = correo entonces ERROR.

Postcondición: Se ha creado una entrada en la base de datos con los datos recibidos.

Usuario.correo=correoUsuario.contraseña = contraseñaUsuario.nombre = nombre…

Salida: Confirmación de que los datos se hayan guardado correctamente.

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.

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: Se mostraran las palabras resultantes con sus datos correspondientes.

NumeroDeResultados = numResultados

Page 42: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

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: Confirmación de que se ha identificado correctamente.

Gestionar usuario

Page 43: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

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.

Contrato: darDeBaja(idUsuario)

Responsabilidad: Dara 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, …)

Page 44: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

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=correoUsuario.contraseña = contraseñaUsuario.nombre = nombre…

Salida: La confirmación de que los datos han sido modificados satisfactoriamente.

Contrato: salir()

Responsabilidad: El usuario que está identificado dejará de estar identificado.

Precondición: El usuario está identificado.

Postcondición: El usuario no estará identificado.

Salida: Confirmación de que ya no está identificado.

Ver resultados

Page 45: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

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.

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.

Page 46: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

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 enviado por parámetro.

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.

Precondición: El usuario está identificado.

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.

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)”.

Page 47: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

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.

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 48: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

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.

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.

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.

Pseudocódigos

Función: guardarDatos(correo, contraseña, nombre, apellidos, …)

Conectar a BDBD : Usuario.correo=correo, Usuario.contraseña= contraseña, Usuario.nombre= nombre, Usuario.apellidos=apellidos, … en Usuario

Page 49: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

error = BD: Codigo de salidaSi error = error_copia_correo entonces

Resultado = mensaje error de correo existenteFinSiSi error = cualquier_error entonces

Resultado = ERRORFinSiResultado = OKDesconectar de BDDevolver Resultado

Función: consultarPalabras(ListaPalabras, numResultados)

Repetir por cada palabra de ListaPalabras hacerparamInfomap+= Información de palabra en adecuado formato

finRepetirparamInfomap+= añadir numResultadosResInfomap = Consultar Infomap (paramInfomap)Repetir por cada palabra de ResInfomap hacer

paramSSI+= Información de palabra en adecuado formatofinRepetirResultado = Consultar SSI-Dijkstra (paramSSI)Devolver Resultado

Función: identificar(correo, contraseña)

Conectar a BDBusqueda = BD: Seleccionar en Usuario donde Usuario.correo=correo y Usuario.contraseña=contraseña y Usuario.activo=1Si Busqueda hay una fila entonces

Resultado OKSESSION usuario = BD: Busqueda.idUsuario

SinoResultado INCORRECTO

FinSiDesconectar de BDDevolver Resultado

Función: verDatos(idUsuario)

Conectar a BDResultado = BD: Seleccionar en Usuario donde Usuario.idUsuario=idUsuarioDesconectar BDDevolver Resultado

Page 50: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

Función: darDeBaja(idUsuario)

Conectar a BDBD: Cambiar Usuario.activo -> 0 donde Usuario.idUsuario=idUsuarioSi BD: Numero de filas afectadas = 1 entonces

Resultado OKSino

Resultado INCORRECTOFinSiDesconectar BDDevolver Resultado

Función: cambiarDatos(idUsuario, correo, contraseña, nombre, …)

Conectar a BDBD: Cambiar Usuario.correo->correo y Usuario.contraseña->contraseña y … donde Usuario.idUsuario=idUsuarioSi BD: Numero de filas afectadas = 1 entonces

Resultado OKSino

Resultado INCORRECTOFinSiDesconectar BDDevolver Resultado

Función: salir()

SESSION usuario = vacioDevolver OK

Función: palabrasIncorrectas()

Conectar a BDBusqueda = BD: Seleccionar en Palabra donde Palabra.correcto=0Repetir por cada fila de Busqueda hacer

Resultado += Palabra de BusquedafinRepetirSi Resultado = vacio entonces

Resultado = NINGUNA PALABRAFinSiDevolver ResultadoDesconectar BD

Page 51: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

Función: palabrasIncorrectas(idUsuario)

Conectar a BDBusqueda = 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 BusquedafinRepetirSi Resultado = vacio entonces

Resultado = NINGUNA PALABRAFinSiDevolver ResultadoDesconectar BD

Función: buscarPalabra(palabra, tipo)

Conectar a BDBusqueda = BD: Seleccionar en Palabra donde Palabra.palabra=palabra y Palabra.tipo=tipo Repetir por cada fila de Busqueda hacer

Resultado += Información de BusquedafinRepetirSi Resultado = vacio entonces

Resultado = PALABRA NO ENCONTRADAFinSiDevolver ResultadoDesconectar BD

Función: verHistorialConsultas()

Conectar a BDBusqueda = BD: Seleccionar en ConsultaRepetir por cada fila de Busqueda hacer

Resultado += Consulta de BusquedafinRepetirSi Resultado = vacio entonces

Resultado = NO HAY NINGUNA CONSULTAFinSiDevolver ResultadoDesconectar BD

Función: verHistorialConsultas(idUsuario)

Conectar a BD

Page 52: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

Busqueda = BD: Seleccionar en Consulta donde Consulta.idUsuario=idUsuarioRepetir por cada fila de Busqueda hacer

Resultado += Consulta de BusquedafinRepetirSi Resultado = vacio entonces

Resultado = NO HAY NINGUNA CONSULTAFinSiDevolver ResultadoDesconectar BD

Función: cargarConsulta(listaPalabras)

Repetir por cada palabra de listaPalabras hacerAñadir palabra en formulario de consulta registrada

finRepetir

Función: aplicarInfomap(listaPalabras, numRes)

Repetir por cada palabra de ListaPalabras hacerparamInfomap+= Información de palabra en adecuado formato

finRepetirparamInfomap+= añadir numResultadosDevolver Consultar Infomap (paramInfomap)

Función: aplicarSSI(listaPalabras)

Repetir por cada palabra de listaPalabras hacerparamSSI+= Información de palabra en adecuado formato

finRepetirDevolver Consultar SSI-Dijkstra (paramSSI)

Función: guardarConsulta(listaPalabras, idUsuario)

Conectar a BDBD: Insertar idUsuario en ConsultaCorrecto = SISi BD: filas afectadas ≠ 1 entonces

Correcto = NOfinSiidConsulta = BD: Seleccionar Consulta.idConsulta en Consulta donde Consulta.idUsuario=idUsuario ordenado descendentemente por Consulta.fecha con limite 1Repetir por cada palabra de listaPalabras y Correcto = SI hacer

BD: Insertar datosPalabra, idConsulta en Palabra

Page 53: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

Si BD: filas afectadas ≠ 1 entoncesCorrecto = NO

finSiFinRepetirSi Correcto = NO entonces

BD: Borrar en Consulta donde Consulta.idConsulta=idConsultaResultado NO REGISTRADO

SinoResultado OK

finSiDesconectar BDDevolver Resultado

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 se ve en la figura 20.

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

Page 54: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

(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.

Las tablas 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. A continuación se informará de que tipo son todos los atributos de las tablas:

La tabla consult

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

La tabla user

Campo Tipo Nulo

Predeterminado Comentarios

idUser int(11) No El identificador del usuarioemail varchar(100

)No El email del usuario que no se

podrá repetir (UNIQUE)password varchar(50) No La contraseña del usuario, que

estará codificadoname varchar(20) No El nombre del usuariosurnames varchar(40) No Los apellidos del usuarioprovince varchar(20) No La provincia del usuariocity varchar(20) No La ciudad del usuariodate_create

timestamp No CURRENT_TIMESTAMP

La fecha de creación de este usuario

active tinyint(1) No 1 Si está activo o no

La tabla words

Page 55: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

Campo Tipo Nulo

Predeterminado

Comentarios

idWords int(11) No Identificador de palabraidConsult int(11) No Identificador de consulta al que

corresponde está palabraword varchar(30

)No Palabra

pos varchar(1) No Tipoorder int(11) No Ordennew? tinyint(1) No 0 Si es una palabra que ha

introducido el usuario o noderived? tinyint(1) No 0 Si ha sido derivado por Infomap o

noselected? tinyint(1) No 0 Si ha sido seleccionado por el

usuario o noweight double No 0 El peso que tiene en la derivaciónoffset_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

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

Page 56: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

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.

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 hacer posibles 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.

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. A estas páginas les pasamos lo que deseamos hacer, mediante GET, y estos nos darán el resultado de lo que deseamos hacer. 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 información que le hayamos pedido, y menu.php da el menú que tiene la aplicación Web.

Estas páginas, lo primero miran en qué idioma quieren que se dé el resultado. Esto lo miran en GET, que es un parámetro que se le manda a estas páginas. 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. 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 valen para codificar. 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.

Page 57: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

Todos los ficheros necesarios para la barra de menú que tienen la aplicación Web están en la carpeta 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.

Pruebas

Las primeras pruebas fueron en instalar en el ordenador local el sistema operativo de Fedora con el software que se utilizan, infomap y SSI-Dijkstra, y también el servidor de Web Apache y PHP. Una vez instalado todo, hacer una primera iteración básica, que eran unas páginas PHP que utilizaban Infomap y SSI-Dijkstra y comprobar que se obtenía correctamente los resultados.

Una vez comprobado eso, se hizo una segunda iteración más compleja en Windows, sin utilizar Infomap y SSI-Dijsktra, y una vez terminado, pasarlo a Fedora, y utilizando Infomap y SSI-Dijsktra, verrificar que el funcionamiento es el esperado.

Teniendo la aplicación Web final en el ordenador local, de la forma de que irá en el servidor final, hacer la prueba con todos los casos de uso comprobando que su funcionamiento y la utilización de la base de datos son correctos. Ya que esta aplicación Web está pensada para los navegadores Web de Internet Explorer y Mozilla Firefox, estas pruebas se realizaran en estos dos navegadores.

Una vez hecho las pruebas en el servidor local, se implantará en el servidor final, y se tendrá un periodo de prueba de dos semanas, para que en el funcionamiento habitual, detectar los posibles fallos que se puedan recoger, y realizar una nueva versión de la aplicación Web evitando estos posibles fallos.

Page 58: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

Implantación

Al implantar la aplicación Web, de tener en funcionamiento en Windows a Fedora, se han tenido que hacer algunas modificaciones como:

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 iterpretan 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.

Page 59: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

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 de cómo resultado una serie de palabras, evocadas mediante Infomap, y con sus respectivos significados, desambiguados mediante SSI-Dijsktra.

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 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 hacerparamInfomap+= Información de palabra en formato adecuado

finRepetirparamInfomap+= añadir numResultadosresultado_infomap = Consultar Infomap (paramInfomap)

Repetir por cada palabra de resultado_infomap hacerparamSSI+= Información de palabra en adecuado formato

finRepetirresultado_ssi = Consultar SSI-Dijkstra (paramSSI)

Repetir por cada palabra resuleto hacerresultado += poner en formato XML

finRepetirDevolver resultado

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.

Page 60: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

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 10 resultados de las palabras teach(verbo) y teacher(nombre):

Infomap+ssi.html?n=10&w=teach-v&w=teacher-n

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>

Page 61: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

<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><polysemy_degree>11</polysemy_degree><gloss>the activities of educating or instructing; activities that impart knowledge or skill</gloss><correct>true</correct>

</token></result>

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.

Pruebas

Ya qué utiliza líneas de código utilizado en la aplicación Web, las pruebas realizadas en él han servido para verificar que parte del código funciona correctamente y qué ese código funciona

Page 62: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

correctamente en el servidor final ya que se ha probado, en parte, en el servidor final. Después de las modificaciones se han hecho pruebas en el servidor local.

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 63: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

Gestión

Vamos a ver las comparativas 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.

Page 64: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

Comparativa por tareas

Tarea Duración estimado (h) Duración real (h)Procesos tácticos 47 54

Análisis de entorno 5 4Gestión de herramientas 2 3Planificación 30 34Reuniones 10 13

Procesos formativos 103 106Herramientas 3 6Lenguajes de programación 10 6Tecnologías 2 1Memoria 80 83Presentación 8 10

Procesos operativos 176 175Primera iteración 13 8

Análisis de entorno 2 2Captura de requisitos 3 3Modificar SSI-Dijkstra 8 3

Segunda iteración 19,5 16Captura de requisitos 2 1Análisis 2 2Diseño 3 2Implementación 10 7,5Pruebas 2 3Implantación 0,5 0,5

Tercera iteración 136 147Captura de requisitos 12 8Análisis 10 7Diseño 7 8Implementación 90 105Pruebas 15 18Implantación 2 1

Cuarta iteración 7,5 4Diseño 1,5 0,5Implementación 4 2,5Pruebas 1 0,5Implantación 1 0,5

TOTAL 326 335

Page 65: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

Comparativa entre procesos

En la figura 21, se ve la diferencia que ha habido entre el tiempo planificado y el tiempo durado en cada proceso.

Proces

os tácti

cos

Proces

os form

ativo

s

Proces

os opera

tivos

47 10317654 106

175

Comparativa entre procesos

Duración estimado (h) Duración real (h)

Figura 21: Gráfico que refleja la comparativa entre procesos.

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.

Page 66: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

Procesos tácticos

Los gráficos que indican la diferencia entre el esfuerzo planificado y el esfuerzo real en procesos tácticos.

11% 4%

64%

21%

Esfuerzo planificado en procesos tácticos

Análisis de entornoGestión de herramientasPlanificaciónReuniones

Figura 22: Gráfico que refleja el esfuerzo planificado en procesos tácticos.

7% 6%

63%

24%

Esfuerzo real en procesos tácticos

Análisis de entornoGestión de herramientasPlanificaciónReuniones

Figura 23: Gráfico que refleja el esfuerzo real en procesos tácticos.

Procesos formativos

Page 67: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

Los gráficos que indican la diferencia entre el esfuerzo planificado y el esfuerzo real en procesos formativos.

3%10% 2

%

78%

8%

Esfuerzo planificado en procesos formativos

HerramientasLenguajes de programaciónTecnologíasMemoriaPresentación

Figura 24: Gráfico que refleja el esfuerzo planificado en procesos formativos.

6%6%

1%

78%

9%

Esfuerzo real en procesos formativos

HerramientasLenguajes de programaciónTecnologíasMemoriaPresentación

Figura 25: Gráfico que refleja el esfuerzo real en procesos formativos.

Procesos operativos

Los gráficos que indican la diferencia entre el esfuerzo planificado y el esfuerzo real en procesos operativos.

Page 68: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

7% 11%

77%

4%

Esfuerzo planificado en procesos operativos

Primera iteraciónSegunda iteraciónTercera iteraciónCuarta iteración

Figura 26: Gráfico que refleja el esfuerzo planificado en procesos operativos.

5% 9%

84%

2%

Esfuerzo real en procesos operativos

Primera iteraciónSegunda iteraciónTercera iteraciónCuarta iteración

Figura 27: Gráfico que refleja el esfuerzo real en procesos operativos.

Ya que los procesos operativos tienen subtareas, se ilustra otro grafico que indica entre las tareas repetidas en las diferentes iteraciones, los cambios que hay entre el tiempo planificado y el tiempo real.

Page 69: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

Análisis d

e entorno

Modificar SS

I-Dijks

tra

Captura

de req

uisitos

Análisis

Diseño

Implem

entac

ión

Prueb

as

Implan

tación

2 3

8

2

2 310 2 0.5

1210 7 90 15

2

1.5 4 11

Esfuerzo planificado de las tareas en el procesos operativos

Primera iteración Segunda iteración Tercera iteración Cuarta iteración

Figura 28: Gráfico que refleja el esfuerzo planificado de las tareas en los procesos operativos.

Análisis d

e entorno

Modificar SS

I-Dijks

tra

Captura

de req

uisitos

Análisis

Diseño

Implem

entac

ión

Prueb

as

Implan

tación

2 3

3

1

2 27.5 3 0.5

8 7 8 105 18 1

0.5 2.5 0.50.5

Esfuerzo real de las tareas en el procesos operativos

Primera iteración Segunda iteración Tercera iteración Cuarta iteración

Figura 29: Gráfico que refleja el esfuerzo planificado de las tareas en los procesos operativos.

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.

Page 70: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

La duración real de la tarea que más se distancia del tiempo real es la tercera iteración, que ha conllevado más tiempo del planificado, pero al haber utilizado menos tiempo en otras tareas, entre la planificación realizada y el tiempo real que se ha utilizado no ha habido tanta diferencia, por lo que podemos decir que la planificación inicial se ajusta bastante al tiempo real utilizado en el proyecto.

Conclusiones

Este proyecto se ha desarrollado satisfactoriamente, dentro de los plazos establecidos y sin haber habido ningún contratiempo reseñable.

Page 71: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

Este proyecto ha servido para crear una aplicación Web que acomoda bastante la utilización de programas que se utilizan en la evocación y desambiguación de las palabras.

Está aplicación Web puede ayudar a detectar posibles fallos de significados en la base de datos WordNet, o posibles fallos de los programas de Infomap y SSI-Dijkstra. También sirve, mediante este software, cualquier usuario que tenga dudas de que se trata un término de palabras, poder analizarlo en esta aplicación Web y entender más de que se trata.

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 con las relaciones que existen entre cada palabra que aparece en el resultado.

2. Ofrecer más tipos de resultados mirando la base de datos de las consultas registradas.

3. La utilización de la base de datos, realizarlo con procedimientos almacenados, y en caso registrar consulta registrada hacerlo con transacciones para que se registren todas las palabras o ninguno.

4. Para estos resultados que se obtienen mirando la base de datos del proyecto, enlazarlos con la base de datos que utiliza WordNet para obtener información más compleja.

5. Ya que los usuarios se identifican mediante email, estaría bien que se pidiera confirmación una vez que se registra, para verificar que el usuario es dueño de esa dirección, y de que no se ha equivocado.

6. En las consultas registradas que el usuario tenga mucho interés, tener la posibilidad de que se le mande a su correo electrónico.

7. 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.

Page 72: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

8. Utilización de cookies para recordar el idioma que utiliza y cargar ese idioma desde el principio.

Valoración personal

Creó que la aplicación Web que se ha creado se le puede dar mucho uso, y en la parte funcional, es bastante cómodo de utilizar.

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.

Apéndice

DOP

Objetivo

Page 73: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

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 se basa en el Análisis Semántico Latente (Latent Semantic Analisis), y la de obtención de las interpretaciones de las palabras basado en el conocimiento, 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 metiendo unas palabras y definiendo de que tipo son, obtener las palabras resultantes al aplicar la aplicación Infomap, y la de mostrar sus respectivos significados, 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, y en el resultado pudiendo señalar las palabras que consideras 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, y la de facilitar un estudio sobre estas aplicaciones.

Método de trabajo

Durante el transcurso del proyecto, el método de trabajos será la de ir definiendo unos objetivos parciales del proyecto, que se definirán entre el alumno y el profesor. También se define un tiempo estimado en el que ese objetivo tendría que estar realizado.

Una vez realizado ese objetivo, mediante un correo electrónico o mediante una reunión, el alumno le mandará el objetivo, y el profesor estimará si ese objetivo cumple con los requisitos necesarios para avanzar a un nuevo objetivo. Si se estimará que no cumple los requerimientos necesarios, el profesor le intentara guiar al alumno, y este en otro tiempo de plazo lo tendría que volverlo a realizar.

Cada vez que se realiza satisfactoriamente un objetivo, se estimara un nuevo objetivo mediante una reunión entre profesor y alumno. Así se hará hasta la finalización del proyecto.

En el transcurso de un objetivo, si el alumno no consiguiera avanzar en el objetivo, le podría mandar un correo electrónico explicando la duda y el profesor le contestaría cuando pudiera. Si con eso no bastaría, concertarían una reunión para la aclaración de la duda.

Page 74: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

Se definirá la fechar y la hora de la reunión mediante un correo electrónico, una vez que el alumno tenga finalizado el objetivo, y estas reuniones se realizaran en el despacho del profesor, que se sitúa en la facultad de informática de san Sebastián.

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.

El alumno se tendrá que encargar de realizar copias de seguridad, en cada entrega de objetivos. Si la duración de un objetivo es mayor que 10 días, el alumno tendrá que realizar una copia de seguridad de los ficheros que está utilizando para dicho objetivo.

El alumno trabajará en Windows con programas útiles en las diferentes tareas del proyecto que ayudaran en el desarrollo del proyecto. También tendrá que trabajar con Fedora, que es el sistema operativo que estará en el servidor final para poder realizar las pruebas necesarias para verificar un correcto funcionamiento en el servidor final.

Alcance

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.

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 75: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

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...

Estructura de descomposición del trabajo (EDT)

En la figura de abajo podemos ver un diagrama que expone todas las tareas que se van a realizar en este proyecto.

Page 76: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

Figura: Diagrama EDT

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 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.

2. Procesos formativos

Page 77: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

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 78: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

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.

Page 79: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

Duración estimada: 2 horas.

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 80: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

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

Page 81: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

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.

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.

Page 82: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

3.4.4.Implantación

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

Duración estimada: 1 hora.

Planificación temporal

Para realizar el proyecto se utilizará el proceso unificado de desarrollo de software (PDU) con un ciclo de vida iterativo e incremental. A continuación se verá el diagrama de Gantt que indicará en que periodo de tiempo se espera realizar cada tarea antes mencionados.

Diagrama de Gantt

En la siguiente figura 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 83: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

Page 84: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

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 los clasificaremos en tres grandes grupos que son formativos, tácticos y operativos.

Riesgos formativos

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.

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.

Riesgos tácticos

Riesgo: El alumno o el profesor encargado no pueden acudir a una reunión concertada por causas tales como enfermedad, causas personales, trabajo...

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.

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

Page 85: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

la reunión se hablaría de si se tendría que suprimir alguna funcionalidad del proyecto para poder finalizar el proyecto.

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.

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.

Riegos operativos

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.

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.

Tabla de riesgos

A continuación mostraremos una tabla con los riesgos antes mencionados y la probabilidad de que surjan junto a la consecuencia que estimamos tomando en cuenta las soluciones antes mencionadas:

Page 86: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

Riesgo Probabilidad ConsecuenciaDificultad en entender Medio BajoPerdida de documentación Bajo BajoIndisponibilidad para reunir Medio Muy bajoRetraso en la tarea Medio BajoOrdenador estropeado Muy bajo MedioPerdida de datos Bajo MedioProblemas en manejar software Medio Bajo

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.

Manual de usuario

En este manual de usuario se pretende guiar para que el usuario sepa utilizar las principales funcionalidades de la aplicación Web.

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 87: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

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.

Identificar usuario

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.

Page 88: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

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 89: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

Consulta registrada

Page 90: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación Web PFC: XABIER ARAMENDI AMENABAR

54

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.

Buscar palabra

Page 91: PFC: XABIER ARAMENDI AMENABAR - adimen.si.ehu.esadimen.si.ehu.es/~rigau/teaching/EHU/PFCs/XabierArame…  · Web viewEl número que aparece después de cada palabra ... que describe

Desarrollo de la aplicación WebPFC: XABIER ARAMENDI AMENABAR

53

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.