Guía para Desarrollar Ontologías Efectivas
Guía para Desarrollar Ontologías Efectivas
com
Una ontología define un vocabulario común para los investigadores que necesitan compartir información en
un dominio. Incluye definiciones interpretables por máquina de conceptos básicos en el dominio y las
relaciones entre ellos.
¿Por qué alguien querría desarrollar una ontología? Algunas de las razones son:
• Compartir un entendimiento común de la estructura de la información entre personas o agentes de
software.
• Para habilitar la reutilización del conocimiento del dominio
1
ontología, podemos integrar varias ontologías existentes que describen porciones del gran dominio.
También podemos reutilizar una ontología general, como la ontología UNSPSC, y extenderla para
describir nuestro dominio de interés.
Hacer supuestos de dominio explícitossubyacente a una implementación hace posible cambiar estas suposiciones
fácilmente si cambia nuestro conocimiento sobre el dominio. Las suposiciones de codificación estricta sobre el
mundo en el código del lenguaje de programación hacen que estas suposiciones no solo sean difíciles de encontrar
y comprender, sino también difíciles de cambiar, en particular para alguien sin experiencia en programación.
Además, las especificaciones explícitas del conocimiento del dominio son útiles para los nuevos usuarios que deben
aprender qué significan los términos del dominio.
Separar el conocimiento del dominio del conocimiento operativo.es otro uso común de las ontologías.
Podemos describir una tarea de configurar un producto a partir de sus componentes de acuerdo con una
especificación requerida e implementar un programa que realice esta configuración independientemente de
los productos y componentes mismos (McGuinness y Wright 1998). Luego podemos desarrollar una
ontología de componentes y características de PC y aplicar el algoritmo para configurar PC hechas a la
medida. También podemos usar el mismo algoritmo para configurar ascensores si le "alimentamos" con una
ontología de componente de ascensor (Rothenfluh et al. 1996).
Analizando el conocimiento del dominioes posible una vez que se dispone de una especificación declarativa
de los términos. El análisis formal de términos es extremadamente valioso cuando se intenta reutilizar
ontologías existentes y extenderlas (McGuinness et al. 2000).
A menudo, una ontología del dominio no es un objetivo en sí mismo. Desarrollar una ontología es similar a definir
un conjunto de datos y su estructura para que los utilicen otros programas. Los métodos de resolución de
problemas, las aplicaciones independientes del dominio y los agentes de software utilizan ontologías y bases de
conocimientos creadas a partir de ontologías como datos. Por ejemplo, en este artículo desarrollamos una
ontología de vino y comida y combinaciones apropiadas de vino con comidas. Esta ontología se puede utilizar como
base para algunas aplicaciones en un conjunto de herramientas de gestión de restaurantes: una aplicación podría
crear sugerencias de vinos para el menú del día o responder a las consultas de los camareros y clientes. Otra
aplicación podría analizar una lista de inventario de una bodega de vinos y sugerir qué categorías de vinos expandir
y qué vinos en particular comprar para los próximos menús o libros de cocina.
Nos basamos en nuestra experiencia con Protégé-2000 (Protege 2000), Ontolingua (Ontolingua
1997) y Chimaera (Chimaera 2000) como entornos de edición de ontologías. En esta guía, usamos
Protégé-2000 para nuestros ejemplos.
El ejemplo de vino y comida que usamos a lo largo de esta guía se basa libremente en una base de conocimiento de
ejemplo presentada en un documento que describe CLASSIC: una representación de conocimiento
sistema basado en un enfoque de descripción-lógica (Brachman et al. 1991). El tutorial CLÁSICO
(McGuinness et al. 1994) ha desarrollado más este ejemplo. Protégé-2000 y otros sistemas basados
en marcos describen ontologías declarativamente, declarando explícitamente cuál es la jerarquía de
clases ya qué clases pertenecen los individuos.
Algunas ideas de diseño de ontologías en esta guía se originaron en la literatura sobre diseño orientado a
objetos (Rumbaugh et al. 1991; Booch et al. 1997). Sin embargo, el desarrollo de ontologías es diferente del
diseño de clases y relaciones en la programación orientada a objetos. La programación orientada a objetos
se centra principalmente en los métodos de las clases: un programador toma decisiones de diseño basadas
en laOperacionalpropiedades de una clase, mientras que un diseñador de ontologías toma estas decisiones
basándose en lasestructuralpropiedades de una clase. Como resultado, la estructura de clases y las
relaciones entre clases en una ontología son diferentes de la estructura de un dominio similar en un
programa orientado a objetos.
Es imposible cubrir todos los problemas con los que un desarrollador de ontologías puede tener que lidiar y no
estamos tratando de abordarlos todos en esta guía. En su lugar, tratamos de proporcionar un punto de partida;
una guía inicial que ayudaría a un nuevo diseñador de ontologías a desarrollar ontologías. En el
2
Al final, sugerimos lugares para buscar explicaciones de estructuras y mecanismos de diseño más
complicados si el dominio los requiere.
Finalmente, no existe una única metodología de diseño de ontología correcta y no intentamos definir
una. Las ideas que presentamos aquí son las que encontramos útiles en nuestra propia experiencia de
desarrollo de ontologías. Al final de esta guía sugerimos una lista de referencias para metodologías
alternativas.
Luego, podemos crear una base de conocimiento definiendo instancias individuales de estas clases completando
información específica del valor del espacio y restricciones de espacio adicionales.
1Ponemos en mayúsculas los nombres de las clases y comenzamos los nombres de las ranuras con letras minúsculas. También usamosfuente de máquina de escribir
3
Figura 1. Algunas clases, instancias y relaciones entre ellas en el dominio del vino. Usamos el negro para las
clases y el rojo para las instancias. Los enlaces directos representan ranuras y enlaces internos como instancia de
y subclase de.
Es decir, decidir para qué vamos a usar la ontología y cuán detallada o general será la ontología
guiará muchas de las decisiones de modelado en el futuro. Entre varias alternativas viables,
necesitaremos determinar cuál funcionaría mejor para la tarea proyectada, sería más intuitiva,
más extensible y más fácil de mantener. También debemos recordar que una ontología es un
modelo de la realidad del mundo y los conceptos en la ontología deben reflejar esta realidad.
Después de definir una versión inicial de la ontología, podemos evaluarla y depurarla usándola
en aplicaciones o métodos de resolución de problemas o discutiéndola con expertos en el campo,
o ambas cosas. Como resultado, es casi seguro que necesitaremos revisar la ontología inicial. Es
probable que este proceso de diseño iterativo continúe durante todo el ciclo de vida de la
ontología.
4
Paso 1. Determinar el dominio y alcance de la ontología
Sugerimos comenzar el desarrollo de una ontología definiendo su dominio y alcance. Es decir,
responde varias preguntas básicas:
• ¿Cuál es el dominio que cubrirá la ontología?
• ¿Para qué vamos a utilizar la ontología?
• ¿Para qué tipo de preguntas la información de la ontología debería proporcionar respuestas?
• ¿Quién usará y mantendrá la ontología?
Las respuestas a estas preguntas pueden cambiar durante el proceso de diseño de la ontología, pero en cualquier
momento ayudan a limitar el alcance del modelo.
Considere la ontología del vino y la comida que presentamos anteriormente. La representación de alimentos
y vinos es el dominio de la ontología. Planeamos usar esta ontología para las aplicaciones que sugieren
buenas combinaciones de vinos y alimentos.
Naturalmente, los conceptos que describen los diferentes tipos de vinos, los principales tipos de comida, la
noción de una buena combinación de vino y comida y una mala combinación figurarán en nuestra ontología.
Al mismo tiempo, es poco probable que la ontología incluya conceptos para la gestión de inventario en una
bodega o empleados en un restaurante, aunque estos conceptos están algo relacionados con las nociones
de vino y comida.
Si la ontología que estamos diseñando se usará para asistir en el procesamiento de lenguaje natural de
artículos en revistas de vinos, puede ser importante incluir sinónimos e información de parte del discurso
para conceptos en la ontología. Si la ontología se utilizará para ayudar a los clientes del restaurante a decidir
qué vino ordenar, debemos incluir información sobre precios minoristas. Si se utiliza para los compradores
de vino en el almacenamiento de una bodega de vinos, puede ser necesario el precio al por mayor y la
disponibilidad. Si las personas que mantendrán la ontología describen el dominio en un idioma que es
diferente del idioma de los usuarios de la ontología, es posible que debamos proporcionar el mapeo entre
los idiomas.
Preguntas de competencia.
Una de las formas de determinar el alcance de la ontología es esbozar una lista de preguntas que una base
de conocimiento basada en la ontología debería poder responder,preguntas de competencia
(Gruninger y Fox 1995). Estas preguntas servirán como prueba de fuego más adelante: ¿La ontología
contiene suficiente información para responder a este tipo de preguntas? ¿Las respuestas requieren
un nivel particular de detalle o representación de un área en particular? Estas preguntas de
competencia son solo un bosquejo y no necesitan ser exhaustivas.
En el dominio del vino y la comida, las siguientes son las posibles preguntas de competencia:
• ¿Qué características del vino debo tener en cuenta a la hora de elegir un vino?
• ¿Burdeos es un vino tinto o blanco?
• ¿Cabernet Sauvignon va bien con mariscos?
• ¿Cuál es la mejor opción de vino para la carne a la parrilla?
• ¿Qué características de un vino afectan su idoneidad para un plato?
• ¿Cambia un ramo o cuerpo de un vino específico con el año de cosecha?
• ¿Cuáles fueron buenas añadas para Napa Zinfandel?
A juzgar por esta lista de preguntas, la ontología incluirá información sobre diversas
características y tipos de vino, años de añada (buenos y malos), clasificaciones de alimentos
importantes para elegir un vino adecuado, combinaciones recomendadas de vino y comida.
5
Las ontologías pueden ser un requisito si nuestro sistema necesita interactuar con otras aplicaciones que ya
se han comprometido con ontologías particulares o vocabularios controlados. Muchas ontologías ya están
disponibles en formato electrónico y se pueden importar a un entorno de desarrollo de ontologías que esté
utilizando. El formalismo en el que se expresa una ontología a menudo no importa, ya que muchos sistemas
de representación del conocimiento pueden importar y exportar ontologías. Incluso si un sistema de
representación del conocimiento no puede trabajar directamente con un formalismo particular, la tarea de
traducir una ontología de un formalismo a otro no suele ser difícil.
Hay bibliotecas de ontologías reutilizables en la Web y en la literatura. Por ejemplo, podemos usar la
biblioteca de ontología Ontolingua (http://www.ksl.stanford.edu/software/ontolingua/ ) o
la biblioteca de ontologías DAML (http://www.daml.org/ontologías/ ). También hay una serie de
ontologías comerciales disponibles públicamente (p. ej., UNSPSC (www.unspsc.org), RosettaNet
(www.rosettanet.org), DMOZ (www.dmoz.org)).
Por ejemplo, es posible que ya exista una base de conocimientos de vinos franceses. Si podemos importar
esta base de conocimiento y la ontología en la que se basa, tendremos no solo la clasificación de los vinos
franceses, sino también el primer paso en la clasificación de las características del vino utilizadas para
distinguir y describir los vinos. Es posible que las listas de propiedades del vino ya estén disponibles en sitios
web comerciales comowww.vinos.co metroque los clientes consideran utilizar para comprar vinos.
Sin embargo, para esta guía asumiremos que no existen ontologías relevantes y comenzaremos a
desarrollar la ontología desde cero.
6
• UNde abajo hacia arribaEl proceso de desarrollo comienza con la definición de las clases más
específicas, las hojas de la jerarquía, con la posterior agrupación de estas clases en conceptos
más generales. Por ejemplo, comenzamos definiendo clases paraPauillacy
Margauxvinos Luego creamos una superclase común para estas dos clases:
Médoc—que a su vez es una subclase deBurdeos.
• UNcombinaciónEl proceso de desarrollo es una combinación de los enfoques de arriba hacia abajo y de
abajo hacia arriba: primero definimos los conceptos más destacados y luego los generalizamos y
especializamos adecuadamente. Podríamos comenzar con algunos conceptos de alto nivel como Vino,y
algunos conceptos específicos, comoMargaux.Entonces podemos relacionarlos con un
concepto de nivel medio, comoMédoc.Entonces es posible que queramos generar todas las
clases de vinos regionales de Francia, generando así una serie de conceptos de nivel medio.
Figura 2. Los diferentes niveles de laVinotaxonomía:Vinoes el concepto más general.Vino tinto, Vino
blanco,yVino rosadoson conceptos generales de alto nivel.PauillacyMargauxson las clases más
específicas en la jerarquía (o los conceptos de nivel inferior).
Ninguno de estos tres métodos es inherentemente mejor que cualquiera de los otros. El enfoque a tomar
depende en gran medida de la visión personal del dominio. Si un desarrollador tiene una vista sistemática de
arriba hacia abajo del dominio, entonces puede ser más fácil usar el enfoque de arriba hacia abajo. El
enfoque combinado suele ser el más fácil para muchos desarrolladores de ontologías, ya que los conceptos
“en el medio” tienden a ser los conceptos más descriptivos del dominio (Rosch 1978).
Si tiende a pensar en los vinos distinguiendo primero la clasificación más general, entonces el enfoque
de arriba hacia abajo puede funcionar mejor para usted. Si prefiere comenzar con ejemplos
específicos, el enfoque de abajo hacia arriba puede ser más apropiado.
Cualquiera que sea el enfoque que elijamos, generalmente comenzamos definiendo clases. De la lista creada en el
Paso 3, seleccionamos los términos que describen objetos que tienen una existencia independiente en lugar de los
términos que describen estos objetos. Estos términos serán clases en la ontología y se convertirán en
7
anclas en la jerarquía de clases.2Organizamos las clases en una taxonomía jerárquica preguntando si
al ser una instancia de una clase, el objeto será necesariamente (es decir, por definición) una instancia
de alguna otra clase.
Si una clase A es una superclase de la clase B, entonces cada instancia de B es también una
instancia de A
En otras palabras, la clase B representa un concepto que es un “tipo de” A.
Por ejemplo, todo vino Pinot Noir es necesariamente un vino tinto. Por lo tanto, laPinot Noir clase
es una subclase de laVino tintoclase.
La Figura 2 muestra una parte de la jerarquía de clases para la ontología Wine. La Sección 4 contiene una discusión
detallada de las cosas que se deben buscar al definir una jerarquía de clases.
Figura 3. Los espacios para la claseVinoy las facetas para estas ranuras. El ícono “I” al lado delfabricante
slot indica que la ranura tiene un inverso (Sección 5.1)
• relaciones con otros individuos; estas son las relaciones entre los miembros individuales de la
clase y otros elementos (por ejemplo, elfabricantede un vino, representando un
relación entre un vino y una bodega, y lauvael vino está hecho). Por lo tanto, además de
las propiedades que hemos identificado anteriormente, debemos agregar lo siguiente
2También podemos ver las clases como predicados unarios: preguntas que tienen un argumento. Por ejemplo, "¿Este
objeto es un vino?" Los predicados (o clases) unarios contrastan con los predicados (o espacios) binarios: preguntas que
tienen dos argumentos. Por ejemplo, "¿Es fuerte el sabor de este objeto?" "¿Cuál es el sabor de este objeto?"
8
ranuras para elVinoclase:nombre, zona, elaborador, uva.La figura 3 muestra los espacios para la clase. Vino.
Todas las subclases de una clase.heredarla ranura de esa clase. Por ejemplo, todas las ranuras de la
clase Vinoserán heredados a todas las subclases de Wine, incluyendoVino tintoyVino blanco.
Agregaremos una ranura adicional,nivel de taninos (baja, moderada o alta), a laVino
tintoclase. Élnivel de taninola ranura será heredada por todas las clases que
representan vinos tintos (comoBurdeosyBeaujolais).
Se debe adjuntar una ranura en la clase más general que pueda tener esa propiedad. Por
ejemplo, cuerpoycolorde un vino debe adjuntarse en la claseVino,ya que es el mas general
clase cuyas instancias tendrán cuerpo y color.
cardinalidad de ranura
La cardinalidad de ranura define cuántos valores puede tener una ranura. Algunos sistemas distinguen solo entre
cardinalidad única (que permite como máximo un valor) y cardinalidad múltiple (que permite cualquier número de
valores). UNcuerpode un vino será un solo espacio de cardinalidad (un vino solo puede tener
un cuerpo). Los vinos producidos por una bodega en particular llenan un espacio de cardinalidad
múltiple produceparaLagarclase.
Algunos sistemas permiten la especificación de una cardinalidad mínima y máxima para describir el número
de valores de ranura con mayor precisión. La cardinalidad mínima de N significa que una ranura debe tener
al menos N valores. por ejemplo, eluvaslot de un Wine tiene una cardinalidad mínima de 1:
cada vino está hecho de al menos una variedad de uva. La cardinalidad máxima de M significa que una
ranura puede tener como máximo valores M. La cardinalidad máxima para eluvaranura para solo
vinos varietales es 1: estos vinos se elaboran a partir de una sola variedad de uva. A veces puede ser
útil establecer la cardinalidad máxima en 0. Esta configuración indicaría que la ranura no puede tener
ningún valor para una subclase en particular.
Una faceta de tipo de valor describe qué tipos de valores pueden llenar el espacio. Aquí hay una lista de los tipos de
valores más comunes:
• Cuerdaes el tipo de valor más simple que se utiliza para tragamonedas comonombre:el valor es una
cadena simple
• Número(a veces se usan tipos de valor más específicos de Float y Integer) describe las
ranuras con valores numéricos. por ejemplo, unpreciode un vino puede tener un valor
tipo flotante
• booleanolas tragamonedas son simples banderas de sí o no. Por ejemplo, si elegimos no
representar los vinos espumosos como una clase separada, si un vino es espumoso o no
puede representarse como un valor de un espacio booleano: si el valor es "verdadero" ("sí"), el
vino es espumoso y si el valor es “falso” (“no”) el vino no es espumoso.
• enumeradoslots especifica una lista de valores permitidos específicos para el slot. Por
ejemplo, podemos especificar que elsaborslot puede tomar uno de los tres valores posibles:
9
fuerte, moderado,ydelicado.En Protégé-2000 las ranuras enumeradas son del
tipoSímbolo.
• Instancia-Tipo de slots que permiten definir las relaciones entre los individuos. Las ranuras con el
tipo de valor Instancia también deben definir una lista de clases permitidas de las que pueden
provenir las instancias. Por ejemplo, una ranuraproducepara la claseLagarpuede tener instancias
de la claseVinocomo sus valores.3
La figura 4 muestra una definición de la ranura.produceen la claseLagar.
Figura 4. La definición de una ranuraproduceque describe los vinos producidos por una bodega. La ranura tiene
cardinalidad múltiplo, instancia de tipo de valor y la claseVinocomo la clase permitida para sus valores.
Al definir un dominio o un rango para un espacio, encuentre las clases o clases más
generales que pueden ser, respectivamente, el dominio o el rango para los espacios.
Por otro lado, no defina un dominio y rango que sea demasiado general: todas las
clases en el dominio de un espacio deben ser descritas por el espacio y las instancias
de todas las clases en el rango de un espacio deben ser rellenos potenciales para el
ranura. No elija una clase demasiado general para el rango (es decir, uno no querría
hacer que el rango sea una COSA), pero uno querrá elegir una clase que cubra todos
los rellenos.
En lugar de enumerar todas las subclases posibles de laVinoclase para el rango deproduce
3Algunos sistemas simplemente especifican el tipo de valor con una clase en lugar de requerir una declaración especial de ranuras de tipo de
instancia.
10
ranura, solo listaVino.Al mismo tiempo, no queremos especificar el rango de la ranura como
COSA, la clase más general en una ontología.
En términos más específicos:
Si una lista de clases que define un rango o un dominio de un espacio incluye una
clase y su subclase, elimine la subclase.
Si el rango de la ranura contiene tanto elVinoclase y elVino tintoclase, podemos eliminar laVino
tintodel rango porque no agrega ninguna información nueva: El Vino tintoes una subclase deVino
y, por lo tanto, el rango de tragamonedas ya lo incluye implícitamente, así como todas las demás
subclases delVinoclase.
Si una lista de clases que define un rango o un dominio de una ranura contiene
todas las subclases de una clase A, pero no la clase A en sí, el rango debe contener
solo la clase A y no las subclases.
En lugar de definir el rango de la ranura para incluirVino Tinto, Vino Blanco,yVino rosado (
enumerando todas las subclases directas deVino),podemos limitar el rango a la clase Vinosí
mismo.
Si una lista de clases que define un rango o un dominio de una ranura contiene todas
menos unas pocas subclases de una clase A, considere si la clase A haría una definición
de rango más apropiada.
En los sistemas en los que adjuntar un espacio a una clase es lo mismo que agregar la clase al dominio del
espacio, se aplican las mismas reglas para la vinculación de espacios: por un lado, debemos tratar de hacerlo
lo más general posible. Por otro lado, debemos asegurarnos de que cada clase a la que adjuntemos la
ranura pueda tener la propiedad que representa la ranura. Podemos adjuntar eltanino
nivelranura para cada una de las clases que representan vinos tintos (por ejemplo,Burdeos, Merlot,
Beaujolais,etc.). Sin embargo, dado que todos los vinos tintos tienen la propiedad del nivel de taninos,
en su lugar deberíamos adjuntar la ranura a esta clase más general deVinos Tintos.Generalizando el
dominio de lanivel de taninomás ranura (fijándola a laVinoclass en su lugar) no sería correcto ya que
no usamos el nivel de taninos para describir los vinos blancos, por ejemplo.
11
• Azúcar: Seco
Una subclase de una clase representa un concepto que es un "tipo de" el concepto
que representa la superclase.
12
conceptos).
Mantener una jerarquía de clases consistente puede convertirse en un desafío a medida que evolucionan los
dominios. Por ejemplo, durante muchos años todos los vinos de Zinfandel eran tintos. Por lo tanto, definimos una
clase de Zinfandelvinos como una subclase de laVino tintoclase. A veces, sin embargo, los enólogos
comenzó a prensar las uvas y a eliminar inmediatamente los aspectos colorantes de las
uvas, modificando así el color del vino resultante. Así, obtenemos “zinfandel blanco”
cuyo color es rosa. Ahora tenemos que romper elZinfandelclase en dos clases
de zinfandel—Zinfandel blancoyZinfandel rojo—y clasificarlos como subclases deVino
rosadoyVino tintorespectivamente.
13
4.2 Analizando hermanos en una jerarquía de clases
Hermanosen la jerarquía hay clases que son subclases directas de la misma clase (ver Sección
4.1).
Todos los hermanos de la jerarquía (excepto los de la raíz) deben estar en el
mismo nivel de generalidad.
Por ejemplo,vino blancoyChardonnayno deben ser subclases de la misma clase (digamos,Vino). vino
blancoes un concepto más general queChardonnay.Los hermanos deben representar conceptos que
caen "en la misma línea" de la misma manera que las secciones del mismo nivel en un libro están en el
mismo nivel de generalidad. En ese sentido, los requisitos para una jerarquía de clases son similares a
los requisitos para el esquema de un libro.
Sin embargo, los conceptos en la raíz de la jerarquía (que a menudo se representan como subclases
directas de alguna clase muy general, comoCosa)representan las principales divisiones de la
dominio y no tienen por qué ser conceptos similares.
No hay reglas estrictas para la cantidad de subclases directas que debe tener una clase. Sin embargo,
muchas ontologías bien estructuradas tienen entre dos y una docena de subclases directas. Por lo tanto,
tenemos las siguientes dos pautas:
Si una clase tiene solo una subclase directa, puede haber un problema de modelado o la
ontología no está completa.
Si hay más de una docena de subclases para una clase determinada, pueden ser
necesarias categorías intermedias adicionales.
La primera de las dos reglas es similar a la regla de composición tipográfica de que las listas con viñetas
nunca deben tener una sola viñeta. Por ejemplo, la mayoría de los vinos tintos de Borgoña son vinos Côtes
d'Or. Supongamos que quisiéramos representar solo este tipo mayoritario de vinos de Borgoña. Podríamos
crear una claserojo borgoñay luego una sola subclaseCostas de Oro (Figura 6a). Sin embargo, si en
nuestra representación los vinos tintos de Borgoña y Côtes d'Or son esencialmente equivalentes (todos los
vinos tintos de Borgoña son vinos de Côtes d'Or y todos los vinos de Côtes d'Or son vinos tintos de Borgoña),
creando laCostas de OroLa clase no es necesaria y no agrega ninguna información nueva a
la representación. Si tuviéramos que incluir los vinos Côtes Chalonnaise, que son vinos de
Borgoña más baratos de la región justo al sur de Côtes d'Or, entonces crearíamos dos
subclases de laborgoñaclase:Costas de OroyCotes Chalonnaise (Figura 6b).
Figura 6. Subclases de larojo borgoñaclase. Tener una sola subclase de una clase generalmente
apunta a un problema en el modelado.
Supongamos ahora que enumeramos todos los tipos de vinos como subclases directas de laVino
clase. Esta lista incluiría tipos de vino más generales como Beaujolais y Burdeos, así como tipos
más específicos como Paulliac y Margaux (Figura 6a). La claseVinotiene demasiadas subclases
directas y, de hecho, para que la ontología refleje los diferentes tipos de vino de una manera más
organizada,Médocdebe ser una subclase deBurdeosyCostas de Orodebería ser un
14
subclase deBorgoña.Además de tener categorías intermedias comoVino tintoyvino blanco
también reflejaría el modelo conceptual del dominio de los vinos que tiene mucha gente
(Figura 6b).
Sin embargo, si no existen clases naturales para agrupar conceptos en la larga lista de hermanos, no
hay necesidad de crear clases artificiales, simplemente deje las clases como están. Después de todo, la
ontología es un reflejo del mundo real, y si no existe una categorización en el mundo real, entonces la
ontología debería reflejar eso.
Figura 7. Categorización de vinos. Tener todos los vinos y tipos de vino versus tener varios niveles de
categorización.
15
vino.4Por lo tanto, definimos una clasePuertotener dos superclases:Vino tintoy Vino de
postre.Todas las instancias de laPuertoclase serán instancias tanto de laVino tinto clase
y elVino de postreclase. ÉlPuertoclass heredará sus ranuras y sus facetas de ambos
padres. Por lo tanto, heredará el valor DULCE para la ranura.Azúcardesde el Vino de
postreclase y elnivel de taninoranura y el valor de su ranura de color de laVino tinto
clase.
4Elegimos representar solo puertos rojos en nuestra ontología: los puertos blancos existen, pero son extremadamente poco
comunes.
dieciséis
vino, vino moderado, etc. Al definir una jerarquía de clases, nuestro objetivo es lograr un equilibrio
entre la creación de nuevas clases útiles para la organización de clases y la creación de demasiadas
clases.
con ranuras para el orden y la posición lateral (izquierda-derecha)?5Si la información sobre cada una de las costillas
que representamos en la ontología es significativamente diferente, entonces de hecho deberíamos
5Aquí asumimos que cada órgano anatómico es una clase ya que también nos gustaría hablar de “Juan 1S t
costilla izquierda.” Los órganos individuales de las personas existentes se representarían como individuos en nuestra ontología.
17
crea una clase para cada una de las costillas. Es decir, si queremos representar detalles de adyacencia e
información de ubicación (que es diferente para cada costilla), así como funciones específicas que cada
costilla juega y los órganos que protege, queremos las clases. Si estamos modelando la anatomía en un nivel
ligeramente menor de generalidad, y todas las costillas son muy similares en lo que respecta a nuestras
aplicaciones potenciales (solo hablamos de qué costilla está rota en la radiografía sin implicaciones para
otras partes del cuerpo) , podemos querer simplificar nuestra jerarquía y tener solo la claseCostilla,
con dos ranuras:posición lateral, orden.
Las instancias individuales son los conceptos más específicos representados en una base
de conocimiento.
Por ejemplo, si solo vamos a hablar de maridaje de vino con comida no nos interesarán las
botellas físicas concretas de vino. Por lo tanto, términos tales comoLibra esterlina
Merlot de Viñedosprobablemente van a ser los términos más específicos que usamos. En otras
palabras, la clase Wine no es una colección de botellas de vino individuales, sino de vinos
específicos producidos por bodegas específicas. Por lo tanto,Merlot de viñedos esterlinassería
una instancia en la base de conocimientos.
Por otro lado, si deseamos mantener un inventario de vinos en el restaurante además de la base de
conocimiento de buenos maridajes vino-comida, las botellas individuales de cada vino pueden convertirse en
instancias individuales en nuestra base de conocimiento.
Del mismo modo, si quisiéramos registrar diferentes propiedades para cada añada específica del
Merlot de viñedos esterlinas,entonces la añada específica del vino es una instancia en
una base de conocimientos yMerlot de viñedos esterlinases una clase que contiene instancias para todas sus
añadas.
Otra regla puede "mover" algunas instancias individuales al conjunto de clases:
Si los conceptos forman una jerarquía natural, entonces deberíamos representarlos como
clases.
Considere las regiones vinícolas. Inicialmente, podemos definir las principales regiones vitivinícolas, como Francia,
Estados Unidos, Alemania, etc., como clases y regiones vitivinícolas específicas dentro de estas grandes regiones
como instancias. Por ejemplo,Región de Borgoñaes una instancia de laFrancés región
clase. Sin embargo, también nos gustaría decir que elCotes región de oroes un debe
Borgoña región.Por lo tanto,Región de Borgoña tienen ser una clase (para poder
subclases o instancias). Sin embargo, haciendoBorgoña regiónuna clase yCostas
región de orouna instancia deRegión de Borgoñaparece arbitrario: es muy difícil distinguir claramente qué
regiones son clases y cuáles son instancias. Por lo tanto, definimos todas las regiones vitivinícolas como
clases. Protégé-2000 permite a los usuarios especificar algunas clases como abstractas, lo que significa que
la clase no puede tener instancias directas. En nuestro caso, todas las clases de regiones son abstractas
(Figura 8).
18
Figura 8. Jerarquía de regiones vitivinícolas. Los íconos "A" junto a los nombres de las clases indican que las clases son
abstractas y no pueden tener instancias directas.
La misma jerarquía de clases sería incorrecta si omitiéramos la palabra "región" de los nombres de las
clases. No podemos decir que la claseAlsaciaes una subclase de la claseFrancia:Alsacia es
no una especie de Francia. Sin embargo, la región de Alsacia es una especie de región francesa.
Solo las clases pueden organizarse en una jerarquía: los sistemas de representación del conocimiento
no tienen una noción de subinstancia. Por lo tanto, si existe una jerarquía natural entre los términos,
como en las jerarquías terminológicas de la Sección 4.2, deberíamos definir estos términos como
clases aunque no tengan instancias propias.
19
que un experimentador, como persona, también es un organismo biológico. Sin embargo,
probablemente no deberíamos incorporar esta distinción en la ontología: a los efectos de esta
representación, un experimentador no es un organismo biológico y probablemente nunca
realizaremos experimentos con los propios experimentadores. Si estuviéramos representando todo lo
que podemos decir sobre las clases en la ontología, unaExperimentadorse convertiría en una subclase
deOrganismo biológico.Sin embargo, no necesitamos incluir este conocimiento para las aplicaciones
previsibles. De hecho, incluir este tipo de clasificación adicional para las clases existentes en realidad duele:
ahora una instancia de un Experimentador tendrá espacios para el peso, la edad, la especie y otros datos
relacionados con un organismo biológico, pero absolutamente irrelevantes en el contexto de la descripción
de un experimento. . Sin embargo, debemos registrar dicha decisión de diseño en la documentación para el
beneficio de los usuarios que verán esta ontología y que pueden no estar al tanto de la aplicación que
teníamos en mente. De lo contrario, las personas que tengan la intención de reutilizar la ontología para
otras aplicaciones pueden intentar usar el experimentador como una subclase de persona sin saber que el
modelado original no incluía ese hecho.
20
agregar automáticamente Sterling Merlot a la lista de vinos que produce la bodega Sterling
Vineyard. (Figura 9).
Muchos sistemas basados en tramas permiten la especificación de valores predeterminados para las ranuras. Si un valor
de ranura particular es el mismo para la mayoría de las instancias de una clase, podemos definir este valor como unvalor
por defecto para la ranura. Luego, cuando se crea cada nueva instancia de una clase que contiene este espacio, el sistema
completa el valor predeterminado automáticamente. Luego podemos cambiar el valor a cualquier otro valor que permitan
las facetas. Es decir, los valores predeterminados están ahí por conveniencia: no imponen ninguna restricción nueva en el
modelo ni cambian el modelo de ninguna manera.
Por ejemplo, si la mayoría de los vinos que vamos a discutir son vinos con cuerpo, podemos tener "lleno"
como valor predeterminado para el cuerpo del vino. Entonces, a menos que digamos lo contrario, todos los
vinos que definimos serían con cuerpo.
Tenga en cuenta que esto es diferente devalores de tragamonedas. Los valores de las ranuras no se pueden cambiar. Por
ejemplo, podemos decir que la ranuraazúcartiene valor DULCE para elVino de postreclase. Entonces todos los
subclases e instancias de laVino de postrela clase tendrá el valor DULCE para el espacioazúcar.
Este valor no se puede cambiar en ninguna de las subclases o instancias de la clase.
Defina una convención de nomenclatura para las clases y los espacios y adhiérase a ella.
Las siguientes características de un sistema de representación del conocimiento afectan la elección de nombres
21
convenciones:
• ¿Tiene el sistema el mismo espacio de nombres para clases, espacios e instancias? Es
decir, ¿permite el sistema tener una clase y un slot con el mismo nombre (como una clase
lagary una ranuralagar)?
• ¿El sistema distingue entre mayúsculas y minúsculas? Es decir, ¿el sistema trata los nombres que difieren solo en
mayúsculas y minúsculas como nombres diferentes (comoLagarylagar)?
• ¿Qué delimitadores permite el sistema en los nombres? Es decir, ¿los nombres pueden
contener espacios, comas, asteriscos, etc.?
Protégé-2000, por ejemplo, mantiene un espacio de nombre único para todos sus marcos. Es sensible a mayúsculas
y minúsculas. Por lo tanto, no podemos tener una claselagary una ranuralagar.Sin embargo, podemos tener
una clasebodega (tenga en cuenta las mayúsculas) y una ranuralagar.CLASSIC, por otro lado, no distingue entre
mayúsculas y minúsculas y mantiene diferentes espacios de nombres para clases, espacios e individuos. Por lo
tanto, desde la perspectiva del sistema, no hay problema en nombrar tanto una clase como un espacio. Lagar.
22
posee-convención. Las ranuras se conviertenfabricante deybodega-desi elegimos elde- convención. Este enfoque
permite que cualquier persona que mire un término determine inmediatamente si el término es una clase o un
espacio. Sin embargo, los nombres de los términos se vuelven un poco más largos.
7 Otros recursos
Hemos utilizado Protégé-2000 como entorno de desarrollo de ontologías para nuestros
ejemplos. Duineveld y colegas (Duineveld et al. 2000) describen y comparan otros entornos
de desarrollo de ontologías.
Hemos tratado de abordar los conceptos básicos del desarrollo de ontologías y no hemos discutido
muchos de los temas avanzados o metodologías alternativas para el desarrollo de ontologías.
Gómez-Pérez (Gómez-Pérez 1998) y Uschold (Uschold y Gruninger 1996) presentan
metodologías alternativas de desarrollo de ontologías. El tutorial de Ontolingua (Farquhar 1997) analiza
algunos aspectos formales del modelado del conocimiento.
Actualmente, los investigadores enfatizan no solo el desarrollo de ontologías, sino también el análisis de ontologías. A
medida que se generen y reutilicen más ontologías, habrá más herramientas disponibles para analizar
ontologías. Por ejemplo, Chimaera (McGuinness et al. 2000) proporciona herramientas de diagnóstico para analizar
ontologías. El análisis que realiza Chimaera incluye tanto una verificación de la corrección lógica de una ontología
como un diagnóstico de errores comunes de diseño de ontología. Un diseñador de ontologías puede desear
ejecutar el diagnóstico de Chimaera sobre la ontología en evolución para determinar la conformidad con las
prácticas comunes de modelado de ontologías.
8 Conclusiones
En esta guía, hemos descrito una metodología de desarrollo de ontologías para sistemas declarativos
basados en marcos. Enumeramos los pasos en el proceso de desarrollo de ontologías y abordamos los
problemas complejos de definir jerarquías de clases y propiedades de clases e instancias. Sin embargo,
después de seguir todas las reglas y sugerencias, una de las cosas más importantes para recordar es lo
siguiente:no existe una única ontología correcta para ningún dominio. El diseño de ontologías es un proceso
creativo y no hay dos ontologías diseñadas por diferentes personas que sean iguales. Las posibles
aplicaciones de la ontología y la comprensión y la visión del dominio por parte del diseñador
indudablemente afectarán las opciones de diseño de la ontología. “La prueba está en el pudín”: podemos
evaluar la calidad de nuestra ontología solo usándola en las aplicaciones para las que la diseñamos.
23
Expresiones de gratitud
protegido-2000 (http://protege.stanford.edu ) fue desarrollado por el grupo de Mark Musen en
Stanford Medical Informatics. Generamos algunas de las figuras con el complemento OntoViz para
Protégé-2000. Importamos la versión inicial de la ontología del vino de la biblioteca de ontologías de
Ontolingua (http://www.ksl.stanford.edu/software/ontolingua/ ) que a su vez utilizó una versión
publicado por Brachman y colegas (Brachman et al. 1991) y distribuido con el sistema de representación del
conocimiento CLASSIC. Luego modificamos la ontología para presentar principios de modelado conceptual
para ontologías declarativas basadas en marcos. Los extensos comentarios de Ray Fergerson y Mor Peleg
sobre borradores anteriores mejoraron enormemente este documento.
Referencias
Booch, G., Rumbaugh, J. y Jacobson, I. (1997).La guía del usuario del lenguaje de modelado
unificado: Addison-Wesley.
Brachman, RJ, McGuinness, DL, Patel-Schneider, PF, Resnick, LA y Borgida, A. (1991). Viviendo
con CLASSIC: Cuándo y cómo usar un lenguaje similar a KL-ONE.Principios de las redes
semánticas. JF Sowa, editor, Morgan Kaufmann:401-456.
Brickley, D. y Guha, RV (1999). Especificación de esquema del marco de descripción de
recursos (RDF). Recomendación propuesta, World Wide Web Consortium: http://
www.w3.org/TR/PR-rdf-schema.
Quimera (2000). Entorno de Ontología Chimaera. www.ksl.stanford.edu/software/chimaera
Duineveld, AJ, Stoter, R., Weiden, MR, Kenepa, B. y Benjamins, VR (2000). ¿Herramientas maravillosas? Un
estudio comparativo de herramientas de ingeniería ontológica.Revista internacional de estudios humanos-
computadoras52(6): 1111-1133.
24
McGuinness, DL y Wright, J. (1998). Modelado conceptual para la configuración: un enfoque basado
en la lógica de descripción.Inteligencia artificial para diseño, análisis y fabricación de ingeniería:
número especial sobre configuración.
Musen, MA (1992). Dimensiones del intercambio y la reutilización del conocimiento.Informática e
Investigación Biomédica25: 435-467.
Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F. y Lorensen, W. (1991).Modelado y diseño orientado a
objetos. Acantilados de Englewood, Nueva Jersey: Prentice Hall.
Uschold, M. y Grüninger, M. (1996). Ontologías: Principios, Métodos y Aplicaciones. Revisión
de ingeniería del conocimiento11(2).
25