Centro de Investigación en Computación |
El Portal del Conocimiento mail@jesusolivares.com |
MÉ XI CO |
|
|
|
|
|
|
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:
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.
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. 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: 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 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: 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 En la figura siguiente se muestra la ejecución del algoritmo hallar para este caso (use los archivos de ejemplo casoCa y casoCb): 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 En la figura siguiente se muestra la ejecución del algoritmo hallar (usando los archivos de ejemplo casoDa y casoDb): |