4.1 Data Collection Stages
4.1.4 Stage 4: Deriving conceptual model
Las herramientas para el desarrollo de ontologías permiten la creación, modificación y gestión de modelos ontológicos, y en general, facilitan el trabajo del desarrollador.
Desde mediados de los 90 el crecimiento del número de plataformas relacionadas con ontologías ha crecido en gran medida. Podemos separar las herramientas en dos grupos: por una parte las que ya no sufren grandes evoluciones: Ontosaurus (Swartout et al.,1996), Ontolingua (Ontolingua,2005) y WebOnto (Dominigue et al.,1999); y las más modernas que están en constante evolución: OntoEdit (OTK,2002), OilED (Bechhofer et al.,2001), WebOde (Arpírez et al.,2003), Protégé (Knublauch,2004) y Cimera (McGuinness et al.,2000). Las del primer grupo fueron desarrolladas para trabajar con ontologías en un lenguaje determinado, sin embargo, las más modernas, son mucho más ambiciosas y ofrecen la posibilidad de añadir extensiones (a través de plug‐ins), diversos lenguajes, etc. De todas las herramientas mencionadas, la de uso más extendido y en constante mantenimiento y evolución es Protégé 2000, desarrollada por el Standford Center for BioMedical Informatics Research (BMIR) de la Universidad de Standford. Su diseño ha perseguido dos objetivos: facilidad de envío y configuración; y compatibilidad con otros sistemas de representación del conocimiento. El núcleo de este sistema es su editor de ontologías. Tiene gran soporte para extensiones que ofrecen diversas funcionalidades como: diferentes formas de visualización, gestión de múltiples ontologías, soporte para inferencia, y exportación / importación desde diversos lenguajes. Tiene una funcionalidad importante, a diferencia de otras herramientas donde el almacenamiento de ontologías sólo se puede realizar en fichero, Protégé permite hacerlo en bases de datos.
El principal inconveniente de estas herramientas reside en su aislamiento respecto a los entornos de desarrollo actualmente empleados en las empresas. Es decir, no incorporan la posibilidad de integrar las herramientas de gestión de ontologías en los entornos de desarrollo, lo que resultaría de gran utilidad para los casos en los que las ontologías pueden estar estrechamente relacionadas con los modelos de negocio sobre los que se desarrollan las aplicaciones, como podría ser el caso de desarrollo de los SGRN.
Por otro lado, la construcción de ontologías de calidad pasa por la intervención de expertos en el proceso de identificación y especificación de conceptos y de las relaciones existentes entre ellos. Con ayuda de alguna de las herramientas descritas, y empleando técnicas adicionales, como la realización de entrevistas a expertos de dominio, personal especializado, con conocimientos técnicos y también en el ámbito de la gestión del conocimiento, escribe la ontología en alguno de los lenguajes de representación existentes. Como puede deducirse, este es un trabajo tedioso, que demanda una gran cantidad de recursos. Es por ello que la investigación en procesos, técnicas y herramientas que
Introduciendo Semántica en un Proceso de Desarrollo Software a través de Reglas de Negocio
faciliten la construcción automática de ontologías ha recibido mucha atención en los últimos años. Las fuentes disponibles para recopilar la información necesaria para la definición de las ontologías son básicamente dos: cualquier documento, en cualquier formato, disponible en la organización y la experiencia de las personas que trabajan en la misma. Los próximos apartados se van a dedicar a describir algunas técnicas para la construcción semiautomática de ontologías a partir de texto libre y a la modelización de ontologías, de manera que se facilite recoger el conocimiento de los expertos.
II.3.3. Del lenguaje natural a las ontologías
Como se mencionaba en el apartado anterior, los documentos escritos, sean páginas web, manuales, informes, normativas, etc., constituyen la fuente de información primordial para definir el modelo de conocimiento en el que se desenvuelve el negocio de la organización. Existen distintas alternativas tecnológicas para la extracción de ontologías a partir de textos escritos, entre las que destacan: • Reconocimiento basado en patrones. En esta aproximación, las relaciones entre conceptos se reconocen a partir de secuencias de palabras que siguen un determinado patrón. Por ejemplo, un patrón en inglés puede ser que si se encuentra una secuencia de n nombres, entonces los n‐1 primeros nombres son hipónimos del que se encuentra en la posición n. De acuerdo con este patrón, el término Spain location podría utilizarse para obtener la interrelación de hiponimia entre el término Spain location y el término location. Esta relación a nivel lingüístico se proyecta a nivel conceptual con la relación de subclase entre el concepto asociado al término Spain location y el concepto asociado al término location. La propuesta de (Kietz et al.,2000) se enmarca en esta línea. En ella, se asume que los documentos de un determinado dominio describen la mayor parte de los conceptos y relaciones a incluir en una ontología así como la terminología de dicho dominio. Este método propone aprender la ontología utilizando como base un núcleo, como SENSUS8, WordNet9 u otras, que se va enriqueciendo con los conceptos aprendidos. En esta línea se encuentra también la herramienta Text‐To‐Onto, empleada en el proyecto On‐To‐ Knowledge (Gómez‐Pérez et al.,2004). Por otra parte, en el trabajo de (Aussenac‐Gilles et al.,2002) el método empleado se basa en la elicitación de conocimiento a partir de documentos técnicos. Utilizan herramientas como SYNTEX (Moigno et al.,2002) para obtener términos del dominio mediante análisis lingüístico, que pasan después a otra herramienta, denominada TERMINAE, que facilita a los ingenieros de conocimiento, encargados de construir la ontología, el proceso de identificación de conceptos y relaciones mediante el cómputo de ocurrencias de determinados patrones lingüísticos.• Reglas de Asociación. El algoritmo de reglas de asociación es muy conocido en el campo de la minería de datos para la detección de asociaciones entre eventos, como por ejemplo, productos vendidos en una misma operación en un supermercado, visitas que se producen a un sitio web, etc. El algoritmo se basa en el análisis de transacciones que involucran a varios elementos, tratando de identificar cuáles de ellos aparecen en la misma transacción con un nivel de confianza determinado. En el campo de las ontologías las reglas de asociación se han utilizado para descubrir relaciones no taxonómicas entre conceptos, empleando para ello una jerarquía de conceptos como conocimiento a priori y estadísticas de coocurrencias de los términos en los textos. Así, por ejemplo, si la palabra train ocurre frecuentemente con la palabra travel en los textos a analizar, entonces podría añadirse a la ontología una
8 http://www.isi.edu/natural-language/resources/sensus.html 9 http://wordnet.princeton.edu/
Introduciendo Semántica en un Proceso de Desarrollo Software a través de Reglas de Negocio
relación entre el concepto asociado a train y el concepto asociado a travel. Esta aproximación a la construcción de ontologías se describe en (Maedche&Staab,2000)
• Agrupamiento de conceptos. En este método, los conceptos de entrada se agrupan de acuerdo a la distancia semántica entre ellos, de forma que dos conceptos pertenecen al mismo grupo si su distancia semántica es más pequeña que un umbral predefinido. Una forma de calcular la distancia entre conceptos se basa en el uso de funciones sintácticas que los términos asociados a tales conceptos realizan en el texto. Por ejemplo, si las palabras train y car aparecen con la misma función sintáctica (por ejemplo, sujeto) en las oraciones con el mismo verbo (por ejemplo, Peter travels by train, John travels by car, etc.) entonces los conceptos asociados a train y car se consideran semánticamente como conceptos cercanos y deberían agruparse. Este enfoque y otros similares se describen en (Faure&Poibeau,2000)
• Aprendizaje de conceptos. En este caso, una taxonomía dada se actualiza incrementalmente según se adquieren nuevos conceptos desde textos reales. Podríamos ver estos métodos como una extensión de los anteriores, de hecho, se aplican las mismas técnicas que allí, pero en este caso con el objetivo de asociar a cada concepto con alguno de los niveles de la taxonomía de partida. En este campo se pueden encontrar trabajos como (Hahn&Schulz,2000)
A la línea de investigación dedicada a estudiar la construcción automática de ontologías se le denomina aprendizaje de ontologías, en inglés ontology learning. Conviene diferenciar esta línea de trabajo de la dedicada a localizar, también de forma automática, instancias para los conceptos y relaciones de la ontología. A este proceso de inclusión de ejemplares en la ontología se le denomina poblado de ontologías, en inglés ontology population.
En la propuesta desarrollada en esta tesis, la ontología se empleará para representar el conocimiento del dominio de negocio, facilitando el enlace con el lenguaje natural, por un lado, y con los elementos que implementan los conceptos de negocio en los SI de la organización. Así, la ontología es un elemento imprescindible para permitir a los expertos de negocio expresar reglas de negocio empleando lenguaje natural, una interfaz cómoda para ellos con requisitos formativos mínimos.
II.3.4. Modelo para la definición de ontologías
Un paso necesario en la automatización de la generación de ontologías consiste en su representación a través de un modelo. La definición de este modelo facilitaría el empleo de herramientas existentes para trabajar con modelos al ámbito de las ontologías, además de simplificar la integración de las ontologías como elementos de los modelos que definen un sistema de información más complejo. Con este fin, el grupo de estandarización OMG dispone de un estándar denominado Ontology Definition Metamodel (ODM) (OMG,2009). Esta especificación pretende servir de base para la representación, gestión, interoperabilidad y aplicación de la semántica de negocio. Esta especificación, según sus autores, ofrece una serie de beneficios potenciales a sus usuarios, como son:
• La posibilidad de adecuar a sus necesidades el nivel de expresividad, complejidad y formalidad a la hora de diseñar e implementar modelos conceptuales.
Introduciendo Semántica en un Proceso de Desarrollo Software a través de Reglas de Negocio
• Facilitar la incorporación de procesos de inferencia en los sistemas que permitan comprender, validar y aplicar las ontologías desarrolladas siguiendo la especificación. Esto es así debido a que toma como base la lógica formal, a través de estándares y modelos semánticos para los lenguajes de representación de conocimiento soportados.
• Define perfiles y transformaciones suficientes para apoyar el intercambio de modelos desarrollados en formalismos diferentes, incorporando mecanismos para facilitar comprobaciones de consistencia y validación.
• Proporciona la base para una familia de especificaciones que enlazan la metodología MDA y las tecnologías de Web Semántica, permitiendo la integración de servicios web, ontologías y aplicaciones.
Según (OMG,2009) la ontología es una disciplina con raíces en la filosofía y en la lógica formal, introducida por la comunidad de la Inteligencia Artificial a mediados de los 80 para describir conceptos del mundo real que son independientes de las aplicaciones específicas. En las últimas dos décadas, se han utilizado metodologías y tecnologías de representación del conocimiento en diversas ramas de la computación allí donde existía la necesidad de representar y compartir conocimiento del contexto independientemente de las aplicaciones. La especificación fija también la definición de ontología considerada:
"Una ontología define los términos y conceptos (significado) empleados para describir y representar un área de conocimiento. Una ontología, atendiendo a su expresividad, podría ir desde una Taxonomía (conocimiento con una jerarquía mínima o una estructura padre‐hijo), a un Diccionario (palabras y sinónimos), a un Modelo Conceptual (con conocimiento más complejo) hasta una Teoría Lógica (con conocimiento muy rico, complejo, consistente y con significado)."
Teniendo en cuenta esta definición y los objetivos perseguidos en (OMG,2009), ODM se compone de 6 metamodelos (4 de ellos normativos y 2 informativos). Estos metamodelos se agrupan lógicamente atendiendo a la naturaleza del formalismo de representación asociado a cada uno de ellos: lógica descriptiva y formal de primer orden, representaciones estructurales y descriptivas y modelos software conceptuales u orientados a objetos.
El núcleo de ODM lo componen dos metamodelos que se corresponden con lenguajes de lógica formal: Lógica Descriptiva, en inglés Description Logics (DL) y Lógica Común, en inglés Common Logics (CL). Estos lenguajes permiten cubrir un amplio espectro de sistemas de representación, desde probabilísticos hasta taxonómicos, más sencillos. El resto de metamodelos se dedican a lenguajes como RDF Schema, OWL, Topic Maps (TM) y UML. Aunque los modelos Entidad‐Interrelación (ER), muy conocidos en el ámbito de las bases de datos, son ampliamente utilizados, la definición del metamodelo correspondiente se deja para otra especificación, la de Modelado y Gestión de la Información, en inglés Information Modeling and Management (IMM) que, una vez disponible, se ligará con ODM. Los metamodelos identificados se muestran en la Figura II‐ 7, tomada de (OMG,2009).
Esta especificación viene a soportar la metodología dirigida por modelos MDA, definida por el grupo OMG y dirigida a automatizar el proceso de desarrollo software mediante la utilización de modelos para representar las características de los sistemas de información.
Introduciendo Semántica en un Proceso de Desarrollo Software a través de Reglas de Negocio
Figura II‐ 7. Estructura de paquetes para los metamodelos de ODM
En este trabajo de tesis se aplicarán las pautas definidas en esta especificación en cuanto a la transformación de modelos UML a ontologías expresadas en el lenguaje OWL. Esta transformación automática permitirá emplear los objetos de negocio de una organización como conceptos aptos para la definición de reglas de negocio. Cabe destacar aquí que se ha implementado esta transformación por motivos prácticos. Es decir, tiene mucho más sentido partir de un modelo de conocimiento válido para toda la organización que de las vistas parciales representadas en los modelos UML. En la medida en que se estandaricen las ontologías para distintos campos de aplicación, desaparecerá la necesidad de transformar los modelos UML en representaciones OWL.