Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Ontologías: qué son y para qué sirven
1. Copyright (c) 2005-2013, Miguel Ángel Abián
Página 1 de 10
ONTOLOGÍAS: QUÉ SON Y
PARA QUÉ SIRVEN
Miguel Ángel Abián
2. Copyright (c) 2005-2013, Miguel Ángel Abián
Página 2 de 10
ONTOLOGÍAS: QUÉ SON Y PARA QUÉ SIRVEN
Palabras clave: ontologías, web semántica, búsqueda semántica, buscadores
semánticos, web semántica, minería de datos, interoperabilidad, razonamiento
automático
Keywords: Ontologies, Semantic Web, Semantic Search, Semantic Search Engines,
Semantic Web, Data Mining, Interoperability, Automated reasoning
1. Introducción
Este texto explica muy brevemente una tecnología imprescindible para
conseguir la Web semántica: las ontologías. Por razones de concisión me
centro sobre todo en las aplicaciones de las ontologías, dentro y fuera de la
Web semántica. En el fondo, la Web semántica busca catalogar la información
de los recursos web –páginas HTML, documentos PDF, vídeos, archivos de
sonido– mediante ontologías (esto es, mediante el significado de las palabras),
no mediante palabras clave.
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.
Por ejemplo, un agente inteligente que busque un vino que satisfaga las
preferencias de un usuario, usará las ontologías vinícolas para elegir el vino
(color, sabor, olor, embotellado) y empleará las ontologías empresariales para
encargarlo a alguna tienda y regatear en el precio (siempre que se pueda). Otro
ejemplo: mediante las ontologías, un agente encargado de comprar viviendas
se podrá comunicar con agentes hipotecarios (de entidades bancarias) y con
agentes inmobiliarios (de empresas constructoras e inmobiliarias).
2. Ontologías
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. Uso la palabra "dominio" para denotar un área específica de interés
(el río Duero, por ejemplo) o un área de conocimiento (física, aeronáutica,
medicina, contabilidad, fabricación de productos, etc.)
Toda ontología representa cierta visión del mundo con respecto a un
dominio. Por ejemplo, una ontología que defina "ser humano" como "espécimen
vivo o muerto correspondiente a la especie Homo sapiens; primate bípedo que
pertenece a la familia de los homínidos, como los chimpancés, gorilas y
orangutanes" expresa una visión del mundo totalmente distinta a la de una
ontología que lo defina como "sujeto consciente y libre, centro y vértice de todo
lo que existe; todos tienen la misma dignidad, pues han sido creados a imagen
y semejanza de Dios".
3. Copyright (c) 2005-2013, Miguel Ángel Abián
Página 3 de 10
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.
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.
¿Formalizamos este tipo de ontologías? No, sería innecesario: los automóviles
son tan habituales que todos compartimos la información de lo que son. Lo
mismo sucede cuando pensamos en el dominio familiar: sabemos que una
familia se compone de varios miembros, que un hijo no puede tener más de un
padre y una madre biológicos, que los padres tienen o han tenido padres... No
necesitamos explicitar este conocimiento, pues forma parte de lo que todo el
mundo sabe. Sin embargo, cuando se tratan términos poco comunes o cuando
se quiere que estos términos sean procesados por máquinas, se precisa
explicitar las ontologías; esto es, desarrollarlas en un documento o darles una
forma que sea inteligible para las máquinas.
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
problemas semánticos son de dos tipos: de dominio y de nombre. Los
conflictos de dominio aparecen cuando conceptos similares en cuanto a
significado, pero no idénticos, se representan en distintos dominios. Por
ejemplo, el concepto representado por Trabajador en una base de datos (BD)
puede corresponder a un trabajador cualificado, mientras que otra BD puede
usar Trabajador para cualquier trabajador, sea o no cualificado. Ambos
conceptos están muy vinculados, pero no son equivalentes ni deberían
mezclarse. Usando ontologías, podría especificarse que el primer concepto
corresponde a una especialización del segundo; y un sistema de razonamiento
automático basado en ontologías impediría, por ejemplo, que se contratara
para tareas cualificadas a trabajadores no cualificados.
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. En ese caso, se podría usar una ontología
que definiera como idénticos los dos términos. Así, las aplicaciones que
manejaran esas bases de datos sabrían como llevar datos de una a otra.
4. Copyright (c) 2005-2013, Miguel Ángel Abián
Página 4 de 10
Figura 1. El problema de los sinónimos: el mismo concepto del mundo
real se traduce en varios términos en distintos sistemas.
Los homónimos surgen cuando los sistemas usan el mismo nombre para
representar cosas distintas. Por ejemplo, en una aplicación de una compañía
de seguros, Conductor representa a una persona que tiene contratada una
póliza particular con la compañía; mientras que, en una aplicación de una
compañía de taxis, Conductor representa a un trabajador que conduce un taxi
de la compañía. Como es de suponer, si se intentara integrar automáticamente
ambas aplicaciones basándose en que ambas usan el mismo término
(Conductor) para significar lo mismo, se produciría el desastre más absoluto: al
dar de baja a un conductor de taxi se le quitaría su póliza de seguros, con lo
que no podría conducir ni su propio coche (al menos, no legalmente); y, al dar
de alta a un asegurado, se le daría de alta como taxista, aunque no tuviera la
licencia de taxista. Sólo una ontología explícita le puede comunicar a una
aplicación que su Conductor no guarda ninguna relación con el de otra.
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
5. Copyright (c) 2005-2013, Miguel Ángel Abián
Página 5 de 10
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 terceras se expresan en lenguajes estructurados, como
RDF. Por último, las ontologías formales definen los términos mediante
lenguajes lógico-matemáticos cuyos símbolos se definen exactamente y sin
ambigüedades; en consecuencia, estas ontologías permiten emplear teoremas
y demostraciones. Los dos últimos tipos de ontologías permiten que las
aplicaciones puedan usar las definiciones de los conceptos del dominio y sus
relaciones. Así como los tres primeros tipos de ontologías pueden contener
términos ambiguos o inconsistentes, las ontologías formales no los permiten.
Preguntas tan capciosas como "El único barbero de una ciudad afeita a todos
los hombres que no se afeitan a sí mismos. ¿Quién lo afeita a él?"o "¿A qué
conjunto pertenece el conjunto de los conjuntos que no se incluyen a sí
mismos?" no pueden representarse en una ontología formal.
3. Usos de las ontologías
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. Los problemas derivados de la falta de comprensión común
entre personas revisten una gran importancia en la ciencia y en la tecnología.
Por ejemplo, hasta hace pocos años (2005) no existía un consenso general
sobre la nomenclatura y clasificación de las neuronas corticales. Por lo tanto, al
estudiar enfermedades como la esquizofrenia, la depresión, el trastorno bipolar
y el Alzheimer, los médicos no se ponían de acuerdo sobre qué tipos de
neuronas estaban afectadas. Pese a todas las investigaciones relacionadas
con el cerebro, no había unanimidad a la hora de clasificar las neuronas
corticales. La situación era sorprendente, tanto más cuanto que las
investigaciones sobre la corteza cerebral comenzaron hace unos cien años,
con el premio Nobel español Santiago Ramón y Cajal. El resultado final de
dicha falta de entendimiento común durante cien años ha sido un gran retraso
en las investigaciones sobre el cerebro, así como una bibliografía científica
confusa y a veces contradictoria.
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.
6. Copyright (c) 2005-2013, Miguel Ángel Abián
Página 6 de 10
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). Esta
estandarización resulta imperiosa para el comercio electrónico automático: si
cada vendedor llama o clasifica de una manera a sus productos, resulta muy
difícil automatizar las operaciones electrónicas. Por ejemplo, si un agente
inteligente quiere comprar una memoria USB para un usuario o una empresa,
deberá tener en cuenta que "memoria USB", "pen drive", "memoria flash USB"
y "lápiz USB" designan un mismo dispositivo. En caso contrario, la aplicación
no verá a muchos fabricantes y vendedores del dispositivo y, por ende, perderá
muchas oportunidades de negocio.
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":
7. Copyright (c) 2005-2013, Miguel Ángel Abián
Página 7 de 10
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.
Figura 2. Ejemplo de falta de interoperabilidad empresarial. Las órdenes de compra de la
empresa 1 y las órdenes de venta de la empresa 2 estructuran la información de distintas
maneras, como puede verse en los campos Dirección y Lugar. Esto ocasiona que los
sistemas de información de ambas empresas no puedan trabajar directamente, salvo que
haya una ontología traductora o una aplicación “puente”.
8. Copyright (c) 2005-2013, Miguel Ángel Abián
Página 8 de 10
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.
Figura 3. Ejemplo de razonamiento automático.
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.
9. Copyright (c) 2005-2013, Miguel Ángel Abián
Página 9 de 10
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.).
Figura 4. Descripción de una base de datos federada.
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.
10. Copyright (c) 2005-2013, Miguel Ángel Abián
Página 10 de 10
Sobre el autor:
Miguel Ángel Abián nació en Soria. Obtuvo la suficiencia investigadora en el Dpto. de
Física Aplicada de la Universidad de Valencia con una tesina sobre electromagnetismo.
Realizó varios cursos de doctorado relacionados con electromagnetismo, electrónica,
semiconductores y cristales fotónicos. Ha recibido becas del IMPIVA (Instituto de la Mediana
y Pequeña Industria Valenciana) y de la Universidad Politécnica de Valencia. Cursó un
Máster estadounidense en UML y Java y otro sobre tecnologías de Internet/Intranet.
Se incorporó en 1998 a AIDIMA, donde ha participado como investigador en 24
proyectos de investigación nacionales e internacionales relacionados con la Web semántica,
tecnologías de la información, madera en construcción, biosensórica, bioelectrónica,
telecomunicaciones, visión artificial; así como en la Red de Excelencia de la Comisión
Europea INTEROP 2003-2007. Algunos de los proyectos europeos relacionados con las
tecnologías semánticas en los que ha participado son ATHENA y STASIS (http://www.stasis-
project.net/).
El año 2006 estuvo cuatro meses como investigador invitado en el departamento
Lehrstuhl für Messsystem und Sensortechnik de la Universidad Politécnica de Munich (TUM),
donde colaboró en el desarrollo de nuevos métodos para la detección de defectos en
superficies acabadas y en el diseño e implementación de sistemas distribuidos de sensores
para el sector del automóvil y de energías renovables. En 2007 recibió un premio BANCAJA-
UPV por un proyecto relacionado con la calidad interna de la madera. En 2009 recibió el
premio internacional Schweighofer Innovation Prize -el premio más prestigioso en el sector
forestal y de la madera- por su aportación al desarrollo de nuevas tecnologías de evaluación
no destructiva de la madera en construcción.
Actualmente es Responsable del Departamento de Tecnología y Biotecnología de la
Madera y del Área de Construcción de Madera.
Es coautor de 7 libros y guías técnicas relacionadas con el uso de la madera en la
construcción y la visión artificial. También ha publicado varios artículos científicos en revistas
como IEEE Transactions on Microwave Theory and Techniques y Wood Science and
Technology. Ha participado como ponente en congresos y conferencias como European
Congress on Computational Methods in Applied Sciences and Engineering, IEEE
International Conference on Multisensor Fusion and Integration for Intelligent Systems,
International Conference on Space Structures (IABSE-IASS) y en reuniones COST
(European Cooperation in Science and Technology). Ha publicado más de 22 artículos
técnicos en revistas sectoriales y técnicas.
Es autor o coautor de 8 patentes, algunas de ellas en trámite. Tres de ellas
corresponden a dispositivos y métodos para detectar la biodegradación de la madera en
construcción.
Actualmente, entre otros proyectos como WOODRUB o CELLUWOOD, trabaja en
SEMCONCEPT, un proyecto de I+D+i para aplicar tecnologías semánticas (ontologías,
buscadores semánticos) en el diseño conceptual de productos industriales.
Sus intereses actuales son la evolución de la programación orientada a objetos, Java,
la Web semántica y sus tecnologías, la arquitectura orgánica, el surrealismo y París, siempre
París.