Web semántica: las ontologías.
Este texto explica muy brevemente una tecnología imprescindible para conseguir la Web semántica: las ontologías. Por razones de brevedad me centro sobre todo en las aplicaciones de las ontologías, dentro y fuera de la Web semántica.
Con las ontologías, los usuarios organizarán la información de manera que los agentes de software podrán interpretar el significado y, por tanto, podrán buscar e integrar datos mucho mejor que ahora. Gracias al conocimiento almacenado en las ontologías, las aplicaciones podrán extraer automáticamente datos de las páginas web, procesarlos y sacar conclusiones de ellos, así como tomar decisiones y negociar con otros agentes o personas.
Si desea más información sobre ontologías o sobre la Web semántica, puede consultar el trabajo La Web del futuro (http://www.javahispano.org/tutorials.item.action?id=55). Puede encontrar una introducción a la Web actual (estructura, protocolos, etc.) en la primera parte de Java y las redes (http://www.javahispano.org/tutorials.item.action?id=45).
Las ontologías proceden del campo de la Inteligencia Artificial; son vocabularios comunes para las personas y aplicaciones que trabajan en un dominio. Según el Grupo de Trabajo en Ontologías del consorcio W3C, una ontología define los términos que se usan para describir y representar un cierto dominio.
Así como la Ontología –nótese la mayúscula inicial– estudia los tipos de objetos que pueblan la realidad (así como sus propiedades y relaciones), las ontologías catalogan y definen los tipos de cosas que existen en un cierto dominio, así como sus relaciones y propiedades. Por ejemplo, una ontología del mundo empresarial usará conceptos como Venta, Compra, Transferencia, Pago, etc.; y relaciones como “Una Transferencia corresponde a una Venta o a una Compra”, “Un Pago corresponde a una o varias Transferencias”, etc.
Existen ontologías específicas (de términos médicos, empresariales, aeronáuticos, etc.) y ontologías de carácter general (proporcionan terminologías útiles para varios campos). En http://www.snomed.org/ se puede encontrar una ontología médica (SNOMED). WordNet (http://wordnet.princeton.edu/perl/webwn) es una ontología lingüística en línea que organiza los nombres, verbos y adjetivos del idioma inglés en grupos de sinónimos.
Cualquier persona tiene en su cabeza ontologías mediante las que representa y entiende el mundo que lo rodea. Estas ontologías no son explícitas, en el sentido de que no se detallan en un documento ni se organizan de forma jerárquica o matemática. Todos usamos ontologías en las que Automóvil representa un medio de transporte y tiene cuatro ruedas.
Las máquinas carecen de las ontologías con las que nosotros contamos para entender el mundo y comunicarse entre ellas; por eso necesitan ontologías explícitas. En cuanto dos sistemas de información (sistemas ERP, bases de datos, bases de conocimiento) intentan comunicarse, aparecen problemas semánticos que dificultan o imposibilitan la comunicación entre ellos (no considero aquí los problemas técnicos de conexión o envío de datos).
Los conflictos de nombre son de dos tipos: sinónimos y homónimos. Los sinónimos ocurren cuando los sistemas usan distintos nombres para referirse al mismo concepto. Por ejemplo, una BD puede usar Trabajador para el mismo concepto que otra usa Empleado.
Las ontologías explícitas se pueden expresar de muchas maneras. Como mínimo, deben incluir un vocabulario de términos, con la definición de cada uno. Por ejemplo, la ontología empresarial Enterprise Ontology (EO) define así Venta: “Una Venta es un acuerdo entre dos Entidades Legales para el intercambio de un Producto por un Precio de Venta. Normalmente, el Producto es un bien o servicio y el Precio de Venta es monetario, aunque se incluyen otras posibilidades”. Las ontologías sencillas suelen representarse como una jerarquía de conceptos relacionados y ordenados.
Dependiendo del grado de formalidad, las ontologías explícitas se clasifican en informales, semi-informales, semi-formales y formales. Las primeras se expresan directamente en cualquier lenguaje natural. Las segundas se expresan en una forma estructurada y restringida de algún lenguaje natural.
Las ontologías se usan para favorecer la comunicación entre personas, organizaciones y aplicaciones, lograr la interoperabilidad entre sistemas informáticos, razonar automáticamente y para la ingeniería de software.
Las ontologías favorecen la comunicación entre personas, organizaciones y aplicaciones porque proporcionan una comprensión común de un dominio, de modo que se eliminan confusiones conceptuales y terminológicas.
En los campos de la Inteligencia Artificial, la Teoría de Decisiones y la Teoría de Sistemas Distribuidos (campos muy relacionados con la Web semántica), sucede algo parecido: los investigadores de un campo no pueden leer fácilmente los resultados de los investigadores de los otros, pues se usan diferentes perspectivas y términos para las mismas ideas y conceptos. Construyendo una ontología común para los tres campos, las investigaciones de un campo serían inmediatamente aplicables a los otros.
El mundo empresarial no es tampoco ajeno a los problemas derivados de la falta de un entendimiento común: algunas empresas usan el término "recursos" para lo que son "máquinas" para otras empresas. Para otras, en cambio, los "recursos" son las "materias primas" que usan. Mediante las ontologías, se favorece la gestión de contenidos, la integración de la cadena de suministro y de la cadena de valor, así como la estandarización de la información de los mercados electrónicos (e-marketplaces).
Las ontologías favorecen también la comunicación entre aplicaciones y la comprensión común de la información entre ellas. Las ontologías serán imprescindibles en la Web semántica y en los futuros sistemas de gestión empresarial porque permitirán que las aplicaciones estén de acuerdo en los términos que usan cuando se comunican. Mediante ellas, será mucho más fácil recuperar información relacionada temáticamente, aun cuando no existan enlaces directos entre las páginas web. Por ejemplo, una ontología puede usarse para especificar que las termitas son un tipo de isóptero. De este modo, un buscador que use esa ontología mostrará páginas web sobre termitas cuando un usuario busque información sobre los isópteros.
Del mismo modo, si en una intranet empresarial se quisiese encontrar información sobre las ferias que ha visitado el director de la compañía, resultaría muy útil disponer de una ontología que incluyera una relación Visita, con relaciones "hijas" como VisitaFeria, VisitaEmpresa, etc. Clasificando los documentos con esa ontología, una búsqueda en la intranet mostraría enseguida los documentos relacionados con las visitas del director a ferias. Sin la ontología, la búsqueda se haría mediante palabras clave como "visita", "feria" y el nombre del director, lo que arrojaría una gran cantidad de resultados (muchos inútiles), que deberían ser evaluados, para determinar su pertinencia, por una o más personas.
Las ontologías también sirven para conseguir que los sistemas interoperen. Dos sistemas son interoperables si pueden trabajar conjuntamente de una forma automática, sin esfuerzo por parte del usuario. Por ejemplo, dos teléfonos móviles de distintos fabricantes y abonados a diferentes compañías telefónicas interoperan para que los usuarios puedan hablar entre sí. En el campo de la informática, las ontologías sirven para traducir los términos usados por una aplicación a otra (las aplicaciones pueden estar escritas en distintos lenguajes de programación). Consideremos una aplicación empresarial que usa el término "materia prima" y otra que emplea "suministro": ambas no podrían trabajar juntas. Para lograr que interoperen, una ontología haría de traductora entre ambas (la ontología podría usar el término "recurso"). La ontología actuaría como puente entre ambas, como una especie de lengua común. Vaya por caso, si se quiere que cuatro aplicaciones (A1, A2, A3 y A4) interoperen se necesitan seis aplicaciones que actúen de "traductores" (A1-A2, A1-A3, A1-A4, A2-A3, A2-A4, A3-A4); con una ontología común (O), sólo se necesitarían cuatro "traductores" (A1-O, A2-O, A3-O, A4-O). Según aumenta el número de aplicaciones que deben interoperar, más necesario se hace emplear ontologías traductoras.
Las ontologías resultan muy útiles para facilitar el razonamiento automático, es decir, sin intervención humana. Partiendo de unas reglas de inferencia, un motor de razonamiento puede usar los datos de las ontologías para inferir conclusiones de ellos. Por ejemplo, si establecemos estas reglas: "Todos los ríos desembocan en un mar, en un océano o en un lago" y "Si el curso de un río termina en una población, esa población está junto al mar, océano o lago donde desemboca", las máquinas pueden hacer deducciones como la mostrada en la siguiente figura.
Una de las aplicaciones más importante del razonamiento automático es la validación de datos. Consideremos, por ejemplo, una base de conocimiento que almacene hechos sobre una consultora: "El proyecto Hospital Universitario comprende las tareas A1, A2 y A3", "Luis trabaja en la tarea A1", etc. Si los hechos se almacenaran mediante una ontología formal, se podrían imponer reglas (axiomas) como "Un empleado no puede trabajar en tareas de proyectos donde no participa" o "La suma semanal de horas trabajadas por un empleado no puede diferir de la suma semanal de horas empleada en cada tarea que tiene asignada"; reglas que servirían para verificar los hechos que se van almacenando y detectar incoherencias. Otro ejemplo: suponga una pizzería que venda, entre otros tipos, pizzas vegetarianas. Si la pizzería usara una ontología que definiera qué ingredientes son vegetarianos –y cuáles no– y estableciera una regla como "Las pizzas vegetarianas no llevan ingredientes cárnicos", la aplicación de contabilidad podría detectar, en el momento del cobro, cualquier venta en la que, por error, se hubiera añadido pollo o jamón a una pizza vegetariana.
El razonamiento automático también se usa para establecer relaciones entre ontologías (por ejemplo, Producto en la ontología O1 es Materia Prima en la ontología O2), para descubrir relaciones ocultas o inesperadas entre los datos y para integrar esquemas de bases de datos. La integración de esquemas de bases de datos resulta imprescindible cuando se trabaja con bases de datos federadas, que son vistas unificadas de bases de datos independientes. Estas bases de datos aparentan ser una sola base de datos, pero se componen de información extraída de bases de datos independientes, que pueden estar alejadas miles de kilómetros. Una BD federada aparenta ser una BD normal y corriente, pero no tiene existencia física: es una vista lógica. Las bases de datos federadas son muy importantes en la Web, pues dan una vista común de los datos procedentes de fuentes muy distintas (agencias de noticias, portales, foros, periódicos y revistas electrónicos, etc.).
En la ingeniería del software, las ontologías ayudan a la especificación de los sistemas de software. Como la falta de un entendimiento común conduce a dificultades en identificar los requisitos y especificaciones del sistema que se busca desarrollar, las ontologías facilitan el acuerdo entre desarrolladores y usuarios
0 Comments:
Publicar un comentario
<< Home