sábado, 13 de octubre de 2012

Redes semánticas

Representación del conocimiento

[1]

Redes semánticas

Proporcionan ayuda gráfica para poder visualizar el conocimiento, así como algoritmos eficientes con los que se puede saber las propiedades de un objeto basándose en su pertenencia a una categoría.

En 1909 Charles Peirce propuso los grafos existenciales que es una notación gráfica de nodos y arcos. Existen variantes de Redes Semánticas pero todas pueden representar objetos, categorías de objetos y relaciones entre ellos. La notación común gráfica de las redes semánticas es ver los objetos o nombres de categorías en óvalos o cajas conectados con flechas etiquetados. Un ejemplo es:




En donde se puede ver que "Mary" es "MiembroDe" "PersonaFemenina", lo cual se formaliza con Mary ∈ PersonaFemenina.  De la misma manera tenemos la relación "Mary" "HermanoDe" "John" y se formaliza con HermanaDe(Mary, John).
En el dibujo también podemos ver que todas las "Personas" "tieneMadre" del sexo femenino, no es posible dibujar una relación desde "Personas" hasta "PersonasFemeninas" entonces se usa una notación especial como "- -" y se expresa:

∀x x∈Personas ⇒ [∀y TieneMadre(x,y)  ⇒ y ∈ PersonaFemenina]

Otra afirmación que podemos obtener es que las personas tienen dos piernas, por lo que:

∀x x∈Personas ⇒ Piernas(x, 2)

Hay que tener cuidado con no expresar que una categoría tiene piernas , la caja con linea simple se usa para expresar que los miembros pertenecientes a esa categoría tienen esa propiedad.

Este lenguaje se puede utilizar para el razonamiento de la herencia, por ejemplo "Mary" por el hecho de ser Persona sabemos que tiene dos piernas. Y para poder saber cuantas piernas tiene "Mary" en el grafo, se puede seguir el algoritmo de herencia que sigue el enlace "MiembroDe" desde "Mary" hasta la categoría a la cual pertenece, después continuar por el enlace "SubconjuntoDe" hasta que se encuentra la categoría en la que existe un enlace etiquetado con el recuadro Piernas, que sería Personas.
Es aquí donde se aplica la lógica predicativa ya que combinados la "lógica predicativa" con la red semántica se obtiene simplicidad y eficiencia para manejar el conocimiento de la información.

Gracias a la lógica predicativa es posible saber formalizar que si "Mary" es hermana de John entonces, entonces Jhon tiene una hermana que se llama "Mary". Así podemos obtener relaciones inversas "Tiene hermana" es lo inverso a "HermanaDe":

∀p, s TieneHermana(p, s) ⇔ HermanaDe(s, p)

Entonces ahora el chiste es pasar eso a la red semántica  para hacerlo hay que agregar una nueva relación entre John y Mary que sea un flecha que sale de John hacia Mary, y se llame TieneHermana.


Ahora teniendo la pregunta ¿Como se llama la hermana de John? podremos ir directamente a buscar en la relación "TieneHermana" desde John hasta Mary en vez de buscar en todas las personas de sexo femenino y buscar si esa persona tiene un enlace "HermanaDe" hacia "John".

Otra cosa que podemos agregar a la red son excepciones como por ejemplo John tiene una pierna, para esto primero formalizamos la expresión:


∀x, x∈Personas ^ x  ≠ John ⇒ Piernas(x,2)




Y así es como se sobrescribe la propiedad TienePiernas para John.

Este manera de manejar la información con red semántica, es realmente utilizada, actualmente existen Frameworks que partiendo de la lógica predicativa son capaces de crear un sistema de semántica para manejar el conocimiento, es ideal usarlo en sistemas como Bibliotecas o Sistemas internos para empresas que necesitan organizar la información de proyectos, empleados entre otras cosas.
Y son capaces de mostrarnos gráficos(grafos) de manera automática para representarnos la información.

[2]

Estos sistemas crean también las bases de datos con todo lo necesario para poder obtener las relaciones deseadas, la red semántica en la web es la Web Semántica que aunque son diferentes los conceptos parten de los mismos fundamentos, el lenguaje de Consulta RQL tiene una manera muy particular de mostrar las relaciones de Web Semántica con la lógica predicativa, por ejemplo el último ejemplo de John podríamos mostrarlo así, "Alguna persona masculina que tenga solo una pierna"

"Any N WHERE N name X, X MiembroDe Y, Y is PersonaMasculina, X tienePiernas 1"

El resultado de esta consulta seria el atributo Nombre de la Persona que solo tiene una pierna.


Fuentes

Russel, S., & Norving, P. (2004). Inteligencia artificial. (Pearson ed.). Madrid:

[1]  http://www.idatix.com/idatix-and-kmworld-unravel-the-mystery-of-knowledge-management/knowledge-management/

[2] http://www.cubicweb.org/blog/1238?__fromnavigation=1&__stop=19&__start=10&vid=primary

1 comentario: