Centro de Investigación en Computación
www.jesusolivares.com
El Portal del Conocimiento

mail@jesusolivares.com

XI CO
idioma
English
 
 
 
Portal

Introducción

Modelo MIA

Lenguaje LIA

Ontologías Mixtas

Sistema SEA

Manual de Usuario

Publicaciones

Contactos

Interacción entre Agentes
Ontologías Mixtas

La comunicación entre dos personas, dos máquinas o una máquina y una persona involucra el intercambio de mensajes en un idioma común, hasta ahora esto se ha resuelto mediante traductores automáticos, el problema que aún continua es el relativo al entendimiento entre los involucrados en este proceso.

Recientemente se han empleado ontologías (estructuraciones de conocimiento) para establecer el significado de los conceptos que utilizan dos entidades que se comunican. Los trabajos sobre ontologías los agrupamos como sigue:

a) Especificación de ontologías, se hacen procesos de ingeniería de conocimiento para encontrar los conceptos y la forma de estructurarlos. Algunos trabajos sobre esto son los de CyC [Lenat 1990] y las especificaciones de FIPA.

b) Integración de ontologías, en donde se pretende integrar ontologías mediante la unión de dos o más ontologías. Sobre esto existe el trabajo de Ontolingua [Farquar 1997] y Observer [Kashyap 1998].

c) Mapeo de ontologías, se refiere a encontrar equivalencias entre ontologías utilizando información que puede resultar ambigua y que se propone en este trabajo como alternativa de solución al tratamiento de ontologías.

d) Aplicaciones de ontologías, se tienen en diversos lugares, por ejemplo en la estructuración de conceptos en una biblioteca digital como el caso de la Biblioteca Digital de la Universidad de Michigan [Weinstein 1997] o el aprovechamiento de intercambio entre bases de datos realizadas por diferentes grupos de personas [Huhns 1997].

Nuestro trabajo está relacionado con el mapeo entre ontologías diferentes (mixtas). Sobre este punto en particular hemos desarrollado un módulo llamado Comparador de Ontologías Mixtas (COM) el cual permite encontrar los conceptos más similares entre dos ontologías mediante el uso de palabras que pueden ser ambiguas.

Código del COM en lenguaje C
Ejemplos de COM

El algoritmo hallar se utiliza en el COM para encontrar el concepto en una ontología más parecido en otra ontología. Consta de cuatro casos que ilustramos con las salidad que produce el programa escrito en lenguaje C del COM.

El algoritmo hallar consta de los pasos siguientes:

a) En B se buscan dos nodos (conceptos) pb y cb, de manera que las palabras de pb coinciden con la mayoría de las palabras (recibidas) de pa y las palabras de cb coinciden con la mayoría de las palabras (recibidas) de ca; pb es el padre, abuelo o bisabuelo de cb. Con esto se considera el concepto cb encontrado como el más cercano a ca y por lo tanto la respuesta es cb y termina el algoritmo:

En la figura siguiente se presenta un árbol que representa este caso

COM caso a


En la figura siguiente se muestra la ejecución del algoritmo hallar (use los archivos de ejemplo casoAa y casoAb) donde se obtiene el resultado de este caso:

ejecución caso a


b) Si se encuentra pb pero no cb. En este caso, se llama recursivamente al proceso hallar de la forma pb' = hallar(pa) para confirmar que pb es ancestro del concepto de interés (ca). Si el pb' hallado es cosa, es decir, el concepto de más alto nivel, el algoritmo concluye sin éxito; si no, se busca en B para cada hijo de pb, aquél, cuya mayoría de propiedades y valores, coincidan (recursivamente vía hallar) con las correspondientes de ca. Es decir, se busca en B al hijo de pb que tenga la mayor cantidad de las propiedades (y valores correspondientes) del concepto ca. Se rechazan hijos de pb que coinciden sólo en unas cuantas propiedades y en unos cuantos valores con las de ca. Si el candidato cb' analizado tiene además hijos, se ve si éstos coinciden (usando recursivamente hallar) razonablemente con los hijos de ca. Si se encuentra un cb' con las propiedades deseadas, el algoritmo concluye con éxito indicando el concepto buscado. En otro caso, se intenta hallar el cb' entre los hijos del padre (en B) de pb, es decir, entre los hermanos de pb; en caso necesario, entre los hijos de los hijos de pb, o sea, entre los nietos de pb. Sino se encontró un cb', entonces el más cercano a ca es pb, por lo que hallar devuelve la anotación hijo_de_pb y el algoritmo concluye. Por ejemplo, A puede enviar a B el par (kiwi, fruta), B puede tener el concepto fruta pero no el concepto kiwi ni alguna fruta que se le parezca, en este caso, kiwi (la palabra kiwi, enviada por A y recibida por B) se traduce por B a hijo_de_fruta, o "alguna fruta que no conozco, que no tengo en mi ontología", lo más cercano en B a kiwi en A. En la figura siguiente se presenta un árbol que representa este caso

COM caso b


En la figura siguiente se muestra la ejecución del algoritmo hallar para este caso (use los archivos de ejemplo casoBa y casoBb) donde se obtiene el resultado de este caso:

ejecución caso b


c) Si se halla cb pero no pb, se busca si el abuelo en B de cb es similar a pa, o si el bisabuelo de cb en B es similar a pa (esto ya fue comentado en el caso b). Si se halla, entonces el concepto en B más similar a pa es el abuelo o el bisabuelo de cb y concluye el algoritmo. Si no se halla, se verifica si la mayoría de las propiedades (y sus valores correspondientes) de ca coinciden con las de cb y si la mayoría de los hijos de ca coinciden (usando hallar) con la mayoría de los hijos de cb; si las propiedades y los hijos coinciden, entonces la respuesta es cb y concluye el algoritmo aunque no se haya hallado en B al pb que corresponda al concepto pa en A. Si solamente una parte de propiedades e hijos son similares entonces la respuesta es probably_cb y concluye el algoritmo. Si ninguna propiedad ni hijos son similares la respuesta es no_hay y concluye el algoritmo. En la figura siguiente se presenta un árbol que representa este caso

COM caso c


En la figura siguiente se muestra la ejecución del algoritmo hallar para este caso (use los archivos de ejemplo casoCa y casoCb):

ejecución caso c


d) Si no se encuentra cb ni pb, entonces la respuesta es no_hay o similar y concluye el algoritmo. En la figura siguiente se presenta un árbol que representa este caso

COM caso d


En la figura siguiente se muestra la ejecución del algoritmo hallar (usando los archivos de ejemplo casoDa y casoDb):

ejecución caso d



<< Lenguaje LIA >> Sistema SEA


© Adolfo Guzmán, Jesús Olivares, Carmen Domínguez Última actualización junio 2003 mail@jesusolivares.com México