Recuperacion y Organizacion de la Informacion

Lenguajes de recuperación para la Web: Tolog

Qué es Tolog

Tolog es un lenguaje de recuperación para Topic Maps, inspirado por Datalog (un subconjunto de Prolog) y SQL. El uso de Tolog permite la recuperación de información en Topic Maps similar al de una base de datos relacional con SQL.

Las consultas realizadas en Tolog se hacen contra una base de hechos que no son mas que un conjunto de información representada en forma de predicados. Estos predicados contendrán la representación de la información que se encuentra en los Topic Maps. Así por ejemplo en un Topic Map se podría encontrar la siguiente expresión "El Padrino es un libro que fue escrito por Mario Puzo que es un escritor" que representada en Tolog sería la siguiente: escrito-por(El Padrino, Mario Puzo), escritor(Mario Puzo).

Tolog es un lenguaje de recuperación que permite realizar consultas sencillas a una base de hechos determinada. El modo de realizar las consultas es muy similar a la declaración de los predicados en la base de hechos, estas consultas llevarán asociadas unas variables en las que se recogen los resultados de las consultas. Así, para preguntar por ejemplo cual es el escritor del Padrino, la consulta en el motor de Tolog se realizaría de la siguiente manera: escrito-por(El Padrino,$A). Esta consulta nos devolvería Mario Puzo. Si la consulta se realizara de la siguiente manera escrito-por ($A, Mario Puzo), se devolverían todos los libros escritos por el autor Mario Puzo. Las consultas en Tolog se podrían hacer más complejas concatenando consultas.

Base de Hechos

En los Topics Maps cada una de las sentencias que componen la base de datos podría expresarse como asociaciones. Suponiendo que tenemos una base de datos de películas de cine, podríamos encontrar información del tipo "Bravehearth fue dirigida por Mel Gibson" y "Mel Gibson nació en Australia". En un Topic map las expresiones que nos podríamos encontrar serían del tipo "Bravehearth es una película que fue dirigida-por Mel Gibson que es un director de cine". De este modo, la representación de la información en Tolog podría representarse de la siguiente manera dirigida-por(BraveHerth, Mel Gibson) o nacido-en(Mel Gibson, Australia).

En Tolog el orden en el que se encuentra cada uno de los argumentos de cada predicado es importante. En función de él se le asignará un rol u otro a cada argumento.

Las consultas que se llevan a cabo se realizan sobre la base de hechos. En Tolog la base de hechos no es más que un conjunto de información representada en forma de predicados.

Predicados y Variables

Tolog es un lenguaje de interrogación, es decir, el usuario pide en qué casos es verdad cierta aserción y Tolog responde con todos los sistemas de los valores que hacen la aserción verdad. Las aserciones en Tolog consisten en predicados, que son relaciones entre los sistemas de valores.

Consultas Sencillas

Como todo lenguaje de recuperacion Tolog permite realizar consultas para recuperar la información que más nos interese. Las consultas son muy parecidas a los hechos ya que son básicamente cláusulas con el mismo formato que muchos de los hechos almacenados. De este modo, si introducimos una consulta del tipo dirigida-por($A,$B), el motor de Tolog lo interpreta como una busqueda para encontrar todos los valores que A y B que hacen la consulta verdadera al contrastarla en la base de datos. El resultado por tanto será una lista con las diferentes asignaciones de A y B que hacen el predicado dirigida-por verdadero.

Una consulta más restrictiva sería la siguiente, dirigida-por($A, Mel Gibson). En esta consulta los resultados serían todos los posibles valores de A que hacen verdadera la sentencia, es decir, todas las películas que hay en la base de hechos que han sido dirigidas por Mel Gibson.

Algunas consultas algo más avanzadas son las que combinan varias cláusulas con comas. Ej: dirigida-por($A,$B),nacido-en($C,Australia).

Reglas Tolog

A parte de las consultas, la principal característica de Tolog es la habilidad de crear reglas basadas en los hechos del Topic Map. Estas reglas podrán ser consultadas como si de hechos se tratara ya que crean asociaciones virtuales en el Topic Map. Un ejemplo de regla sería el siguiente:

ha-trabajado-para($A, $B) :- dirigida-por($pelicula, $A), ha-actuado-en($pelicula,$B)

Con esta regla podremos obtener que actor ha trabajado para que director sin necesidad de tener en la base de hechos un predicado que nos lo diga explícitamente. Simplemente con conocer que un actor a trabajado para una determinada película y que un director ha dirigido dicha película podemos sacar la relación.

Características Avanzadas de Tolog

El alcance de Tolog va mucho más allá. A continuación enumeramos algunas características más avanzadas de este lenguaje:

ha-trabajado-para($A, $B) :- dirigida-por($pelicula, $A), ha-actuado-en($pelicula,$B)

Con esta regla podremos obtener que actor ha trabajado para que director sin necesidad de tener en la base de hechos un predicado que nos lo diga explícitamente. Simplemente con conocer que un actor a trabajado para una determinada película y que un director ha dirigido dicha película podemos sacar la relación.

  • Predicados dinámicos de la ocurrencia: además de las asociaciones las ocurrencias también contienen información útil. Tolog nos permite recuperar y preguntar por esa información de una forma muy similar a cómo se preguntan por las asociaciones: el tipo de la ocurrencia se utiliza como predicado.
  • Uso de la negación
  • Reglas de inferencia: en muchas ocasiones hay relaciones implícitas que no se indican como asociaciones pero que se pueden deducir de relaciones más básicas que se expresen explícitamente como asociaciones. Las reglas de inferencia proporcionan una manera de capturar estas relaciones implícitas con la declaración de reglas simples.
  • Paginación: en ocasiones no deseamos todos los resultados de una pregunta sino solamente un sistema limitado de resultados. Tolog, a través de la palabra clave "LIMITE", permite optimizar el funcionamiento en caso de que una gran cantidad de resultados puedan ser devueltos ante una pregunta. Otro uso de esta palabra es cuando se desea mostrar una lista paginada.

Ventajas y Desventajas de Tolog

Cabe destacar las siguientes ventajas y convenientes de este lenguaje de recuperación:

  • Ventajas
    • Es un lenguaje fácilmente comprensible y fácil de implementar.
    • A pesar de su sencillez tiene una gran potencia de consulta, pudiéndose realizar consultas muy sofisticadas.
  • Desventajas
    • Las consultas que se pueden realizar únicamente pueden basarse en predicados o reglas ya escritas.
    • El lenguaje sólo permite consultar el Tópic Map pero no permite su modificación.

Página creada por Vanesa Gil Sánchez

Última Actualización: 10-04-2007

validado XHTML Validación CSS Nivel WAI - AA TAW. Nivel doble A. WCAG 1.0 WAI Cynthia Tested

Recuperacion y organizacion de la informacion Recuperacion y organizacion de la informacion Recuperacion y organizacion de la informacion Recuperacion y organizacion de la informacion

Equipo 1  - Lenguajes de Recuperación para la Web I - Recuperación y Organización de la Información