Your SlideShare is downloading. ×
Técnicas de Recomendación de
    Recursos Anotados Semánticamente


                            24 Junio 2009

           ...
Tabla de contenidos

Objetivos del proyecto
Estado del arte
Definiciones y características
Aproximaciones realizadas
Estudi...
Motivación


Ofrecer a las aplicaciones un sistema de
recomendación de recursos que permita la
personalización de los serv...
¿Qué es un sistema de
recomendación?
Definición:
Un sistema de recomendación busca encontrar los
mejores recursos para el u...
Objetivos del proyecto
 Estudio de diferentes técnicas de recomendación de
 recursos
 Definición de una propuesta de funció...
Tecnologías semánticas
Resumen
RDF: Lenguaje para la representación de grafos




OWL: Lenguaje para la representación de ...
Estado del arte


 Podemos dividir el estado del arte en dos partes:
       Métricas de similitud
       Técnicas de toma ...
Estado del arte
Métricas de similitud
 Basadas en:
      la información contenida
      la estructura
      en sistemas co...
Estado del arte
Métricas de similitud
 Basadas en:
      la información contenida
      la estructura
      en sistemas co...
Estado del arte
Métricas de similitud
Basadas en lógica descriptiva


 Utilizan lenguajes de lógica descriptiva
 Represent...
Estado del arte
Métricas de similitud
Basadas en lenguajes de consulta

 Uso de lenguajes de consulta como SQL o SPARQL
 p...
Estado del arte
Técnicas de toma de decisiones

 Técnica de toma de decisiones multicriterio
 Comparación de aspectos repr...
Nuestra propuesta
 Sistema de recomendación de recursos en función
 de las preferencias del usuario
 Independiente del dom...
Representación semántica de los
recursos
Preferencias
  Definición:
  Cada una de las características que los usuarios
         desean que tengan los recursos


 Re...
Preferencias
Tipos de preferencias

 Preferencias obligatorias:
        Nos sirven para filtrar los resultados de la
      ...
Demanda del usuario

 Definición:
    Petición por parte del usuario para que se le
 recomienden recursos. Formada por pref...
Ejemplo de demanda

Quiero películas interpretadas por un actor con algún
premio. Además...
      Prefiero las películas de...
Ejemplo de demanda
Preferencias Obligatorias
   Quiero películas interpretadas por un actor con algún
   premio. Además......
Demanda expresada como
fórmulas lógicas
Demanda expresada como
  fórmulas lógicas

Preferencias Obligatorias




Preferencias Opcionales
Lenguaje QIL
Lenguaje definido en este proyecto para facilitar la
escritura de las demandas del usuario
Elimina la necesida...
Demanda usando el
lenguaje QIL
Demanda usando el
lenguaje QIL
Función de Matchmaking
 Definición:
 Calcular la utilidad de los recursos para el usuario

Está dividida en 2 partes:
     ...
Aproximaciones realizadas

Función match:
       Método basado en lógica descriptiva
       Método basado en lenguaje de c...
Aproximaciones realizadas
Aproximaciones realizadas

              Demand (QIL)

PREFIX
  (...)
OBLIGATORY
  dbowl:Film.
  skos:subject some {dbpedi...
Aproximaciones realizadas
        Transformación
         en conceptos




              Demand (QIL)

PREFIX
  (...)
OBLI...
Aproximaciones realizadas
        Transformación
         en conceptos
                                                   ...
Aproximaciones realizadas
        Transformación
         en conceptos
                                                   ...
Aproximaciones realizadas
        Transformación
         en conceptos
                                                   ...
Aproximaciones realizadas
        Transformación
         en conceptos
                                                   ...
Aproximaciones realizadas
        Transformación
         en conceptos
                                                   ...
Aproximaciones realizadas
        Transformación
         en conceptos
                                                   ...
Aproximaciones realizadas
        Transformación
         en conceptos
                                                   ...
Aproximaciones realizadas
        Transformación
         en conceptos
                                                   ...
Aproximaciones realizadas
        Transformación
         en conceptos
                                                   ...
Aproximaciones realizadas
        Transformación
         en conceptos
                                                   ...
Aproximaciones realizadas
        Transformación
         en conceptos
                                                   ...
Aproximaciones realizadas
        Transformación
         en conceptos
                                                   ...
Funcionamiento
       D = { PR } , { PO1, PO2, PO3 }
                                  Marketplace
Funcionamiento
       D = { PR } , { PO1, PO2, PO3 }
                                  Marketplace




        PR
Funcionamiento
            D = { PR } , { PO1, PO2, PO3 }
                             PO2
                               ...
Funcionamiento
            D = { PR } , { PO1, PO2, PO3 }
                                        PO2
                    ...
Función match
(basado en Instance Checking)



 Utilización de preferencias representadas por fórmulas
 lógicas para const...
Función match
(basado en Instance Checking)



 Utilización de un razonador para comprobar qué
 preferencias cumplen los r...
Función match
(basado en SPARQL)



 Transformación de las preferencias en patrones de
 grafo
 Utilización de motor de SPA...
Reglas de transformación de
QIL a SPARQL
SPARQL generada
SPARQL generada
Interpretación de los
resultados de la consulta
 Una variable para los recursos (?result)
 Y una variable extra (?pi) por ...
Función utility
 Utilización de la puntuación base del recurso y de las
 preferencias que cumple (función match) para calc...
Función utility
 Utilización de la puntuación base del recurso y de las
 preferencias que cumple (función match) para calc...
Función utility
Puntuación de los recursos y preferencias


 Puntuación base para los recursos
 Puntuación de la importanc...
Demo
Tabla de contenidos

Objetivos del proyecto
Estado del arte
Definiciones y características
Aproximaciones realizadas
Estudi...
Recordemos
        Transformación
         en conceptos
                                                          DL Conce...
Rendimiento
(en función del nº de preferencias opcionales)



                                basado en
                  ...
Rendimiento
(en función del nº de recursos)



                             basado en
                              SPARQL...
Rendimiento

El tiempo de respuesta se comporta bien en función
del número de preferencias
Pero, el comportamiento del alg...
Ventajas
Independiente del dominio
Nivel de expresividad de las preferencias
Valoración númerica tanto de las preferencias...
Inconvenientes

Comunes a las 2 implementaciones
      Rendimiento insatisfactorio

Especificas de la implementación usando...
Operadores soportados
   Operador       DL   Sparql
      Clase
  Enumeraciones
    Existencial
    Universal
   Cardinali...
Resultados
Caso de uso: CruZar


 Aplicación realizada por la Fundación CTIC para el
 Ayuntamiento de Zaragoza para la EXP...
Resultados
Caso de uso: CruZar
Resultados
Publicaciones

Capítulo del libro “Case on Semantic
Interoperability for information system
integration” editad...
La biblioteca TeRRAS
Ha sido liberada en SourceForge, bajo licencia
GPL.
Conclusiones
Estudio de técnicas de recomendación de recursos
Estudio de la aplicación de las tecnologías semánticas
Defini...
Trabajo futuro

 Estudio de nuevas técnicas de comprobación de
 preferencias utilizando otro tipo de lógicas (ej: lógica
 ...
Gracias por su atención
Técnicas de Recomendación de
    Recursos Anotados Semánticamente


                            24 Junio 2009

           ...
Información inferida




Patrón buscado
Información inferida
                 Base de conocimiento (KB)




Patrón buscado
Información inferida
                                 Base de conocimiento (KB)




Patrón buscado



                 Coi...
Información inferida
                                 Base de conocimiento (KB)




Patrón buscado


                     ...
Información inferida
                                 Base de conocimiento (KB)




Patrón buscado


                     ...
Información inferida
                                 Base de conocimiento (KB)




Patrón buscado


                     ...
Información inferida
                                 Base de conocimiento (KB)




Patrón buscado


                     ...
Lógica descriptiva
  Definición:
   Las lógicas descriptivas (DL) son una familia de
   formalismos lógicos bien conocidos ...
Método AHP
Se basa en la comparación de las diferentes
alternativas en función de una tabla.
Método AHP


Se realizan una serie de de cálculos para obtener un
vector de pesos para las diferentes alternativas
Este ve...
Método AHP
¿Dónde podemos encontrar
información en este formato?


 Transformando las bases de datos existente en grafos
 RDF
       ...
Evolución de LOD
Mayo de 2007
Evolución de LOD
Septiembre de 2008
Evolución de LOD
Marzo de 2009



            Número de tripletas:
              4.712.896.432
Upcoming SlideShare
Loading in...5
×

TeRRAS

540

Published on

TERRAS is a Java library that allows to filter and rank a list of objects by measuring their matching against a set of demands. If the demands are some user's preferences, then TERRAS can be useful for service personalization.

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
540
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Presentación
  • Explicar que vamos a ver en esta presentación y como esta estructurado
  • Por que este proyecto.
    Este proyecto busca un sistema de recomendación genérico en función de las preferencias del usuario

  • En este proyecto se realizaran:
    - Estudio de técnicas disponibles
    - Definición de una nueva técnica basada en tecnologías semánticas e independiente del dominio


  • Dentro de la literatura encontrados aproximaciones:
    - basadas en la información contenida (Strings)
    - basadas en la estructura que forma el árbol de conceptos
    - basadas en sistemas colaborativos en los que se te recomienda por lo que hacen los demás
    Basada en lógica y basada en lenguajes de consulta que veremos en más profundidad
  • Estos trabajos se basan en la utilización de lenguajes de lógica descriptiva. Representan las consultas y los recursos como elementos de estos lenguaje (normalmente conceptos e instancias). Utilizan la inferencias lógica para calcular cuanto bueno es un recurso. Este tipo de trabajos son muy utilizados en el descubrimiento de servicios web semánticos.
  • Utilizan diferentes aspectos relacionados con el usuario para generar los elementos disponibles dentro de los lenguajes para generar una consulta que incluya todos los aspectos de los que se dispone.
  • Otro de los aspectos estudiados en este proyecto es el uso de las técnicas de toma de decisiones para la valoración de la preferencias del usuario. Como método destacado tenemos el AHP (Analitic Hierarchy Process) este método se basa en la organización de las diferentes alternativas en un árbol de decisiones que posteriormente nos servirá para poder elegir la mejor alternativa.
  • En nuestro proyecto vamos a proponer una nueva técnica de recomendación se tiene las siguientes características:
  • Hemos comentado que necesitamos una descripción semántica de los recursos. ¿Pero que es? Es una representación en forma de grafo de las relaciones entre todos los elementos que describen un recurso. De este modo tenemos el siguiente grafo que nos definiría parte de la película “Reservoir Dogs”
  • Como hemos comentado hemos descrito un método basado en las preferencias del usuario.
    ¿Pero que es una preferencias?
    - Cada una de las características buscadas.
    Representaremos las preferencias del usuario como formulas lógicas que representan las características buscadas de los recursos.
    Utilizaremos los operadores disponibles en la lógica descriptiva SHOIN.
  • Tenemos dos tipos de preferencias:
    - Obligatorias: que filtran
    - Opcionales: que puntúan
  • Cada una de las consultas que hace el usuario al sistema de recomendación la llamaremos demanda. Incluirá un conjunto de preferencias obligatorias y otro de opcionales
  • Un ejemplo de demanda seria las siguiente.
    Podemos ver las dos partes de las demanda (Obligatorias y opcionales)
  • La misma demanda expresada como formulas lógicas sería la siguiente

  • Para la representación de estas formulas, en este proyecto se ha creado un lenguaje de demandas basado en la sintaxis de Manchester de OWL. Este lenguaje nos permite escribir mas fácilmente las formulas lógicas sin tener la necesidad de usar símbolos lógicos. Este lenguaje se llama QIL
  • En nuestro proyecto definimos la función de matchmaking o de recomendación como la función que nos permite calcular la utilidad de un recurso en base a las preferencias del usuario.
    Vamos a dividir el calculo de esta función en dos partes:
    - función match: nos permite saber las preferencias que cumple un recurso
    - función utility: que nos permite obtener una puntuación numérica en basa a las preferencias
    La función matchmaking seria la composición de estas funciones.

  • Veamos un resumen que que va a hacer nuestro algoritmo
  • Veamos un resumen que que va a hacer nuestro algoritmo
  • Veamos un resumen que que va a hacer nuestro algoritmo
  • Veamos un resumen que que va a hacer nuestro algoritmo
  • Veamos un resumen que que va a hacer nuestro algoritmo
  • Veamos un resumen que que va a hacer nuestro algoritmo
  • Veamos un resumen que que va a hacer nuestro algoritmo
  • Veamos un resumen que que va a hacer nuestro algoritmo
  • Veamos un resumen que que va a hacer nuestro algoritmo
  • Veamos un resumen que que va a hacer nuestro algoritmo
  • Veamos un resumen que que va a hacer nuestro algoritmo
  • Veamos un resumen que que va a hacer nuestro algoritmo
  • Veamos un resumen que que va a hacer nuestro algoritmo
  • Veamos un resumen que que va a hacer nuestro algoritmo
  • Más gráficamente tememos un marketplace (lugar donde se encuentra toda las información disponible)
  • Más gráficamente tememos un marketplace (lugar donde se encuentra toda las información disponible)
  • Más gráficamente tememos un marketplace (lugar donde se encuentra toda las información disponible)
  • Como hemos visto tenemos dos implementaciones de la función match. La basada en lógica descriptiva utiliza las preferencias representadas como formulas lógicas para definir nuevos conceptos utilizando la operación de equivalencia lógica definida en estos lenguajes.
  • Para comprobar el cumplimiento o no de una preferencias se utilizará un razonador de lógica descriptiva que por medio de la operación Instance Checking nos diga si cada recurso pertenece al concepto creada a partir de la preferencia.
  • El otro de los métodos esta basado en el lenguaje de consulta para grafos RDF SPARQL. Este método transformará cada una de las preferencias en un patrón de grafo que se incluirá en la consuta SPARQL.
  • Estas son algunas de las reglas de transformación de los operadores lógicos a patrones de grafo.
  • Misma demanda transformada en consulta SPARQL
  • Con esta consulta conseguimos una matriz que nos indicará para cada recurso el cumplimiento o no de cada preferencia.
  • Por otro lado, una vez que sabemos las preferencias que cumple cada recurso podemos calcular su utilidad. Para ello utilizaremos 2 aspectos: la puntuación base del recurso, la puntuación de cada preferencia.
  • La puntuación base de cada recurso nos permite asignar una valor preliminar a cada recurso.
    La puntuación de cada preferencia utilizara el método AHP para conseguir un puntuación objetiva da las preferencias del usuario.

  • Explicar que vamos a ver en esta presentación y como esta estructurado
  • A modo de recordatorio
  • Se ha realizado diferentes pruebas de rendimiento de nuestro algoritmo.
    En estas gráficas se puede ver como se comportan las dos implementaciones en función del numero de preferencias.
  • En estas se puede ver el comportamiento del rendimiento en función del número de recursos disponibles.

  • Que ventajas tienen nuestro método
  • Que inconvenientes

  • Los resultados de este proyecto se han utilizado en el aplicacion CruZar desplegada en el portal web del ayuntamiento de Zaragoza. Esta aplicación realiza rutas personalizadas para los turista en función de sus preferencias.
  • 3 fases:
    - Integración.
    - Recomendación.
    - Planificación.
  • Se publicado un capitulo de libro con el caso de uso de Cruzar
    Se ha enviado un articulo con el nucleo de este proyecto a Journal of Web Semantics
  • Esto proyecto ha sido implementado como librería Java y publicado con licencia GPL.
  • Para terminar podemos ver un resumen de lo que hemos obtenido con este proyecto.
  • Que queda para el futuro...












  • ¿Dónde encontramos estas descripciones?
    - Transformando los datos desde base de datos, por ejemplo con D2R
    - Dentro de las iniciativas del W3C encontramos la de Linking Open Data, esta iniciativa busca el poner a disposición del publico descripciones semánticas de distintos dominios.
  • Evolución del grafo del Linking Open Data

  • Total de tripletas
  • Transcript of "TeRRAS"

    1. 1. Técnicas de Recomendación de Recursos Anotados Semánticamente 24 Junio 2009 Director: José Emilio Labra Gayo Autor: Iván Mínguez Pérez Codirector: Diego Berrueta Muñoz
    2. 2. Tabla de contenidos Objetivos del proyecto Estado del arte Definiciones y características Aproximaciones realizadas Estudio del rendimiento Resultados: Caso de uso y publicaciones Conclusiones y trabajo futuro
    3. 3. Motivación Ofrecer a las aplicaciones un sistema de recomendación de recursos que permita la personalización de los servicios ofrecidos en función de las preferencias del usuario
    4. 4. ¿Qué es un sistema de recomendación? Definición: Un sistema de recomendación busca encontrar los mejores recursos para el usuario. Para ello, puede utilizar diferentes aspectos, como, por ejemplo, las preferencias del usuario Puede ser utilizado en diferentes dominios: alquiler de coches y alojamientos, sugerencia de recursos turísticos, búsqueda de artículos de compra, etc.
    5. 5. Objetivos del proyecto Estudio de diferentes técnicas de recomendación de recursos Definición de una propuesta de función de recomendación Independiente del dominio, es decir, puede ser utilizado para realizar recomendaciones sobre cualquier tema Basada en tecnologías semánticas, como RDF, OWL o SPARQL
    6. 6. Tecnologías semánticas Resumen RDF: Lenguaje para la representación de grafos OWL: Lenguaje para la representación de ontologías basado en lógica descriptiva SPARQL: Lenguaje de consulta sobre grafos en RDF
    7. 7. Estado del arte Podemos dividir el estado del arte en dos partes: Métricas de similitud Técnicas de toma de decisiones
    8. 8. Estado del arte Métricas de similitud Basadas en: la información contenida la estructura en sistemas colaborativos en lógica descriptiva en lenguajes de consulta
    9. 9. Estado del arte Métricas de similitud Basadas en: la información contenida la estructura en sistemas colaborativos en lógica descriptiva en lenguajes de consulta
    10. 10. Estado del arte Métricas de similitud Basadas en lógica descriptiva Utilizan lenguajes de lógica descriptiva Representación de los recursos y demandas como conceptos lógicos Uso de los razonadores para comprobar la inclusión de los conceptos en las demandas [Borg 05], [Paol 02], [Colu 03], [Rago 07]
    11. 11. Estado del arte Métricas de similitud Basadas en lenguajes de consulta Uso de lenguajes de consulta como SQL o SPARQL para la comprobación de las preferencias Enriquecer las consultas según el contexto Por ejemplo, en función de los gustos del usuario [Chu 96], [Pahl 07], [Kief 07], [Seab 08]
    12. 12. Estado del arte Técnicas de toma de decisiones Técnica de toma de decisiones multicriterio Comparación de aspectos representados en diferentes escalas Ayuda para la valoración de las preferencias por parte del usuario Uso de la técnica de AHP (Analytic Hierarchy Process) para ayudar al usuario a valorar las preferencias
    13. 13. Nuestra propuesta Sistema de recomendación de recursos en función de las preferencias del usuario Independiente del dominio Basada en tecnologías semánticas Requisitos: Disponer de descripciones semánticas de los recursos a recomendar Resultados: Conjunto de recursos más útiles para el usuario en función de sus preferencias
    14. 14. Representación semántica de los recursos
    15. 15. Preferencias Definición: Cada una de las características que los usuarios desean que tengan los recursos Representación como fórmulas lógicas utilizando operadores lógicos disponibles en lógica descriptiva
    16. 16. Preferencias Tipos de preferencias Preferencias obligatorias: Nos sirven para filtrar los resultados de la consulta Preferencias opcionales: Nos sirven para puntuar la utilidad del recurso
    17. 17. Demanda del usuario Definición: Petición por parte del usuario para que se le recomienden recursos. Formada por preferencias obligatorias y opcionales
    18. 18. Ejemplo de demanda Quiero películas interpretadas por un actor con algún premio. Además... Prefiero las películas de Tim Roth Me gustan mucho las películas de crimen También me gustan las comedias Mejor si tiene una puntuación > 8 sobre 10 Prefiero que sea corta, no más de 120 minutos
    19. 19. Ejemplo de demanda Preferencias Obligatorias Quiero películas interpretadas por un actor con algún premio. Además... Prefiero las películas de Tim Roth Me gustan mucho las películas de crimen También me gustan las comedias Mejor si tiene una puntuación > 8 sobre 10 Prefiero que sea corta, no más de 120 minutos Preferencias Opcionales
    20. 20. Demanda expresada como fórmulas lógicas
    21. 21. Demanda expresada como fórmulas lógicas Preferencias Obligatorias Preferencias Opcionales
    22. 22. Lenguaje QIL Lenguaje definido en este proyecto para facilitar la escritura de las demandas del usuario Elimina la necesidad de agregar símbolos lógicos, sustituyéndolos por palabras clave que ayudan a su lectura Uso de este lenguaje como lenguaje intermedio entre posibles representaciones de las preferencias y nuestros métodos
    23. 23. Demanda usando el lenguaje QIL
    24. 24. Demanda usando el lenguaje QIL
    25. 25. Función de Matchmaking Definición: Calcular la utilidad de los recursos para el usuario Está dividida en 2 partes: Función match: Comprobación de las preferencias del usuario que cumple un recurso Función utility: Utilidad del recurso en función de las preferencias que cumple
    26. 26. Aproximaciones realizadas Función match: Método basado en lógica descriptiva Método basado en lenguaje de consulta Función utility: Utilización de la técnica de toma de decisiones AHP
    27. 27. Aproximaciones realizadas
    28. 28. Aproximaciones realizadas Demand (QIL) PREFIX (...) OBLIGATORY dbowl:Film. skos:subject some {dbpedia:Gangter_films} . OPTIONAL dbowl:starring some {dbpedia:Tim_Roth}, 8. dbowl:directed some {dbpedia:Tarantino}, 4.
    29. 29. Aproximaciones realizadas Transformación en conceptos Demand (QIL) PREFIX (...) OBLIGATORY dbowl:Film. skos:subject some {dbpedia:Gangter_films} . OPTIONAL dbowl:starring some {dbpedia:Tim_Roth}, 8. dbowl:directed some {dbpedia:Tarantino}, 4.
    30. 30. Aproximaciones realizadas Transformación en conceptos DL Concepts R = Film ! "subject.{Gangster_films} P1 = "starring.{Tim_Roth} P2 = "directed.{Tarantino} Demand (QIL) PREFIX (...) OBLIGATORY dbowl:Film. skos:subject some {dbpedia:Gangter_films} . OPTIONAL dbowl:starring some {dbpedia:Tim_Roth}, 8. dbowl:directed some {dbpedia:Tarantino}, 4.
    31. 31. Aproximaciones realizadas Transformación en conceptos DL Concepts R = Film ! "subject.{Gangster_films} P1 = "starring.{Tim_Roth} Instance P2 = "directed.{Tarantino} Checking Demand (QIL) PREFIX (...) OBLIGATORY dbowl:Film. skos:subject some {dbpedia:Gangter_films} . OPTIONAL dbowl:starring some {dbpedia:Tim_Roth}, 8. dbowl:directed some {dbpedia:Tarantino}, 4.
    32. 32. Aproximaciones realizadas Transformación en conceptos DL Concepts R = Film ! "subject.{Gangster_films} P1 = "starring.{Tim_Roth} Instance P2 = "directed.{Tarantino} Checking Demand (QIL) Razonador PREFIX (...) OBLIGATORY dbowl:Film. skos:subject some {dbpedia:Gangter_films} . OPTIONAL dbowl:starring some {dbpedia:Tim_Roth}, 8. dbowl:directed some {dbpedia:Tarantino}, 4.
    33. 33. Aproximaciones realizadas Transformación en conceptos DL Concepts R = Film ! "subject.{Gangster_films} P1 = "starring.{Tim_Roth} Instance P2 = "directed.{Tarantino} Checking Demand (QIL) Razonador Matriz de instancias y PREFIX Condiciones que cumple (...) OBLIGATORY dbowl:Film. skos:subject some {dbpedia:Gangter_films} . OPTIONAL dbowl:starring some {dbpedia:Tim_Roth}, 8. dbowl:directed some {dbpedia:Tarantino}, 4.
    34. 34. Aproximaciones realizadas Transformación en conceptos DL Concepts R = Film ! "subject.{Gangster_films} P1 = "starring.{Tim_Roth} Instance P2 = "directed.{Tarantino} Checking Demand (QIL) Razonador Matriz de instancias y PREFIX Condiciones que cumple (...) OBLIGATORY dbowl:Film. skos:subject some {dbpedia:Gangter_films} . OPTIONAL dbowl:starring some {dbpedia:Tim_Roth}, 8. dbowl:directed some {dbpedia:Tarantino}, 4. Transformación en SPARQL
    35. 35. Aproximaciones realizadas Transformación en conceptos DL Concepts R = Film ! "subject.{Gangster_films} P1 = "starring.{Tim_Roth} Instance P2 = "directed.{Tarantino} Checking Demand (QIL) Razonador Matriz de instancias y PREFIX Condiciones que cumple (...) OBLIGATORY dbowl:Film. skos:subject some {dbpedia:Gangter_films} . OPTIONAL dbowl:starring some {dbpedia:Tim_Roth}, 8. dbowl:directed some {dbpedia:Tarantino}, 4. SPARQL Query SELECT ?x ?x1 ?x2 WHERE{ ?x rdf:type Film . ?x subject Gadget_films . OPTIONAL{ ?x1 starring Tim_Roth . FILTER (?x=?x1) }. Transformación OPTIONAL{ ?x2 directed Tarantino . FILTER (?x=?x2) en SPARQL }
    36. 36. Aproximaciones realizadas Transformación en conceptos DL Concepts R = Film ! "subject.{Gangster_films} P1 = "starring.{Tim_Roth} Instance P2 = "directed.{Tarantino} Checking Demand (QIL) Razonador Matriz de instancias y PREFIX Condiciones que cumple (...) OBLIGATORY dbowl:Film. skos:subject some {dbpedia:Gangter_films} . OPTIONAL dbowl:starring some {dbpedia:Tim_Roth}, 8. dbowl:directed some {dbpedia:Tarantino}, 4. SPARQL Query Ejecutar SELECT ?x ?x1 ?x2 WHERE{ consulta ?x rdf:type Film . ?x subject Gadget_films . OPTIONAL{ ?x1 starring Tim_Roth . FILTER (?x=?x1) }. Transformación OPTIONAL{ ?x2 directed Tarantino . FILTER (?x=?x2) en SPARQL }
    37. 37. Aproximaciones realizadas Transformación en conceptos DL Concepts R = Film ! "subject.{Gangster_films} P1 = "starring.{Tim_Roth} Instance P2 = "directed.{Tarantino} Checking Demand (QIL) Razonador Matriz de instancias y PREFIX Condiciones que cumple (...) OBLIGATORY dbowl:Film. skos:subject some {dbpedia:Gangter_films} . OPTIONAL dbowl:starring some {dbpedia:Tim_Roth}, 8. dbowl:directed some {dbpedia:Tarantino}, 4. SPARQL Query Ejecutar SELECT ?x ?x1 ?x2 WHERE{ consulta ?x rdf:type Film . ?x subject Gadget_films . OPTIONAL{ ?x1 starring Tim_Roth . FILTER (?x=?x1) }. Transformación OPTIONAL{ ?x2 directed Tarantino . FILTER (?x=?x2) en SPARQL }
    38. 38. Aproximaciones realizadas Transformación en conceptos DL Concepts R = Film ! "subject.{Gangster_films} P1 = "starring.{Tim_Roth} Instance P2 = "directed.{Tarantino} Checking Demand (QIL) Razonador Matriz de instancias y PREFIX Condiciones que cumple (...) OBLIGATORY dbowl:Film. skos:subject some {dbpedia:Gangter_films} . OPTIONAL dbowl:starring some {dbpedia:Tim_Roth}, 8. dbowl:directed some {dbpedia:Tarantino}, 4. SPARQL Query Ejecutar SELECT ?x ?x1 ?x2 WHERE{ consulta ?x rdf:type Film . ?x subject Gadget_films . OPTIONAL{ ?x1 starring Tim_Roth . FILTER (?x=?x1) }. Transformación OPTIONAL{ ?x2 directed Tarantino . FILTER (?x=?x2) en SPARQL } Base de conocimiento
    39. 39. Aproximaciones realizadas Transformación en conceptos DL Concepts R = Film ! "subject.{Gangster_films} P1 = "starring.{Tim_Roth} Instance P2 = "directed.{Tarantino} Checking Demand (QIL) Razonador Matriz de instancias y PREFIX Condiciones que cumple (...) OBLIGATORY dbowl:Film. skos:subject some {dbpedia:Gangter_films} . OPTIONAL Calcular dbowl:starring some {dbpedia:Tim_Roth}, 8. dbowl:directed some {dbpedia:Tarantino}, 4. utilidad SPARQL Query Ejecutar SELECT ?x ?x1 ?x2 WHERE{ consulta ?x rdf:type Film . ?x subject Gadget_films . OPTIONAL{ ?x1 starring Tim_Roth . FILTER (?x=?x1) }. Transformación OPTIONAL{ ?x2 directed Tarantino . FILTER (?x=?x2) en SPARQL } Base de conocimiento
    40. 40. Aproximaciones realizadas Transformación en conceptos DL Concepts R = Film ! "subject.{Gangster_films} P1 = "starring.{Tim_Roth} Instance P2 = "directed.{Tarantino} Checking Vector de pesos µ(Pi) Demand (QIL) Razonador Matriz de instancias y PREFIX Condiciones que cumple (...) OBLIGATORY dbowl:Film. skos:subject some {dbpedia:Gangter_films} . OPTIONAL Calcular dbowl:starring some {dbpedia:Tim_Roth}, 8. dbowl:directed some {dbpedia:Tarantino}, 4. utilidad SPARQL Query Ejecutar SELECT ?x ?x1 ?x2 WHERE{ consulta ?x rdf:type Film . ?x subject Gadget_films . OPTIONAL{ ?x1 starring Tim_Roth . FILTER (?x=?x1) }. Transformación OPTIONAL{ ?x2 directed Tarantino . FILTER (?x=?x2) en SPARQL } Base de conocimiento
    41. 41. Aproximaciones realizadas Transformación en conceptos DL Concepts R = Film ! "subject.{Gangster_films} P1 = "starring.{Tim_Roth} Instance P2 = "directed.{Tarantino} Checking Vector de pesos µ(Pi) Demand (QIL) Razonador Lista de sugerencias Matriz de instancias y PREFIX Condiciones que cumple (...) score(!1) 1 OBLIGATORY dbowl:Film. score(!2) 0.7 skos:subject some {dbpedia:Gangter_films} . score(!3) 0.5 OPTIONAL ... Calcular dbowl:starring some {dbpedia:Tim_Roth}, 8. dbowl:directed some {dbpedia:Tarantino}, 4. utilidad SPARQL Query Ejecutar SELECT ?x ?x1 ?x2 WHERE{ consulta ?x rdf:type Film . ?x subject Gadget_films . OPTIONAL{ ?x1 starring Tim_Roth . FILTER (?x=?x1) }. Transformación OPTIONAL{ ?x2 directed Tarantino . FILTER (?x=?x2) en SPARQL } Base de conocimiento
    42. 42. Funcionamiento D = { PR } , { PO1, PO2, PO3 } Marketplace
    43. 43. Funcionamiento D = { PR } , { PO1, PO2, PO3 } Marketplace PR
    44. 44. Funcionamiento D = { PR } , { PO1, PO2, PO3 } PO2 Marketplace PO1 PR PO3 Pesos de las Preferencias PO1 = 6 PO2 = 9 PO3 = 3
    45. 45. Funcionamiento D = { PR } , { PO1, PO2, PO3 } PO2 Marketplace PO1 0,91 0,68 1 0,23 0,75 0,3 0,07 0 PR PO3 Pesos de las Preferencias PO1 = 6 PO2 = 9 PO3 = 3
    46. 46. Función match (basado en Instance Checking) Utilización de preferencias representadas por fórmulas lógicas para construir conceptos en lógica descriptiva Utilización de la equivalencia lógica No es necesaria ninguna transformación
    47. 47. Función match (basado en Instance Checking) Utilización de un razonador para comprobar qué preferencias cumplen los recursos Operación Instance Checking
    48. 48. Función match (basado en SPARQL) Transformación de las preferencias en patrones de grafo Utilización de motor de SPARQL para ejecutarlas
    49. 49. Reglas de transformación de QIL a SPARQL
    50. 50. SPARQL generada
    51. 51. SPARQL generada
    52. 52. Interpretación de los resultados de la consulta Una variable para los recursos (?result) Y una variable extra (?pi) por cada preferencia opcional representando el cumplimiento o no de la preferencia asociada
    53. 53. Función utility Utilización de la puntuación base del recurso y de las preferencias que cumple (función match) para calcular la utilidad del recurso para el usuario
    54. 54. Función utility Utilización de la puntuación base del recurso y de las preferencias que cumple (función match) para calcular la utilidad del recurso para el usuario Puntuación base Puntuación de del recurso cada preferencia
    55. 55. Función utility Puntuación de los recursos y preferencias Puntuación base para los recursos Puntuación de la importancia de cada preferencia. Uso de los métodos de toma de decisiones: Método AHP
    56. 56. Demo
    57. 57. Tabla de contenidos Objetivos del proyecto Estado del arte Definiciones y características Aproximaciones realizadas Estudio del rendimiento Resultados: Caso de uso y publicaciones Conclusiones y trabajo futuro
    58. 58. Recordemos Transformación en conceptos DL Concepts R = Film ! "subject.{Gangster_films} P1 = "starring.{Tim_Roth} Instance P2 = "directed.{Tarantino} Checking Vector de pesos µ(Pi) Demand (QIL) Razonador Lista de sugerencias Matriz de instancias y PREFIX Condiciones que cumple (...) score(!1) 1 OBLIGATORY dbowl:Film. score(!2) 0.7 skos:subject some {dbpedia:Gangter_films} . score(!3) 0.5 OPTIONAL ... Calcular dbowl:starring some {dbpedia:Tim_Roth}, 8. dbowl:directed some {dbpedia:Tarantino}, 4. utilidad SPARQL Query Ejecutar SELECT ?x ?x1 ?x2 WHERE{ consulta ?x rdf:type Film . ?x subject Gadget_films . OPTIONAL{ ?x1 starring Tim_Roth . FILTER (?x=?x1) }. Transformación OPTIONAL{ ?x2 directed Tarantino . FILTER (?x=?x2) en SPARQL } Base de conocimiento
    59. 59. Rendimiento (en función del nº de preferencias opcionales) basado en SPARQL basado en DL
    60. 60. Rendimiento (en función del nº de recursos) basado en SPARQL basado en DL
    61. 61. Rendimiento El tiempo de respuesta se comporta bien en función del número de preferencias Pero, el comportamiento del algoritmo en función del número de instancias no es satisfactorio Existen posibles mejoras haciendo uso de repositorios RDF profesionales, pero esto queda fuera del alcance del proyecto
    62. 62. Ventajas Independiente del dominio Nivel de expresividad de las preferencias Valoración númerica tanto de las preferencias y como de los recursos Puntuación numérica para la utilidad final del recurso Compromiso entre rendimiento y expresividad (dependiendo de la implementación elegida)
    63. 63. Inconvenientes Comunes a las 2 implementaciones Rendimiento insatisfactorio Especificas de la implementación usando DL No soporta restricciones sobre tipos de datos Especificas de la implementación usando SPARQL No todos los operadores lógicos tienen transformación Pérdida de la inferencia
    64. 64. Operadores soportados Operador DL Sparql Clase Enumeraciones Existencial Universal Cardinalidad Tipo de dato Intersección Unión
    65. 65. Resultados Caso de uso: CruZar Aplicación realizada por la Fundación CTIC para el Ayuntamiento de Zaragoza para la EXPO2008 Generación de rutas turísticas personalizadas Uso del modulo TeRRAS para la selección de recursos turísticos en función de los gustos del usuario
    66. 66. Resultados Caso de uso: CruZar
    67. 67. Resultados Publicaciones Capítulo del libro “Case on Semantic Interoperability for information system integration” editado por Yannis Kalfoglou en la editorial IGI Global (Publicación prevista para Octubre) Enviado el articulo “TeRRAS: SPARQL- based matchmaking system” a la revista Journal of Web Semantics
    68. 68. La biblioteca TeRRAS Ha sido liberada en SourceForge, bajo licencia GPL.
    69. 69. Conclusiones Estudio de técnicas de recomendación de recursos Estudio de la aplicación de las tecnologías semánticas Definición de una función de recomendación, utilizando el concepto de preferencias Implementación de las aproximaciones definidas en este proyecto: Intérprete para el lenguaje QIL Transformaciones a OWL y a SPARQL Uso del método AHP para la valoración de las preferencias
    70. 70. Trabajo futuro Estudio de nuevas técnicas de comprobación de preferencias utilizando otro tipo de lógicas (ej: lógica difusa) Uso de las nuevas características de estándares todavía en desarrollo como OWL 2 y la nueva versión de SPARQL
    71. 71. Gracias por su atención
    72. 72. Técnicas de Recomendación de Recursos Anotados Semánticamente 24 Junio 2009 Director: José Emilio Labra Gayo Autor: Iván Mínguez Pérez Codirector: Diego Berrueta Muñoz
    73. 73. Información inferida Patrón buscado
    74. 74. Información inferida Base de conocimiento (KB) Patrón buscado
    75. 75. Información inferida Base de conocimiento (KB) Patrón buscado Coincidencias
    76. 76. Información inferida Base de conocimiento (KB) Patrón buscado Razonador Coincidencias
    77. 77. Información inferida Base de conocimiento (KB) Patrón buscado Razonador Coincidencias
    78. 78. Información inferida Base de conocimiento (KB) Patrón buscado Razonador Coincidencias Conocimiento inferido
    79. 79. Información inferida Base de conocimiento (KB) Patrón buscado Razonador Coincidencias Conocimiento inferido
    80. 80. Lógica descriptiva Definición: Las lógicas descriptivas (DL) son una familia de formalismos lógicos bien conocidos para la representación e inferencia sobre el conocimiento de un dominio de aplicación Esta formada por varios elementos: El TBox: incluye todos los axiomas de la base de conocimiento El ABox: incluye todos los hechos de la base de conocimiento
    81. 81. Método AHP Se basa en la comparación de las diferentes alternativas en función de una tabla.
    82. 82. Método AHP Se realizan una serie de de cálculos para obtener un vector de pesos para las diferentes alternativas Este vector buscar tener una puntuación normalizada Se verifica que:
    83. 83. Método AHP
    84. 84. ¿Dónde podemos encontrar información en este formato? Transformando las bases de datos existente en grafos RDF Utilizando por ejemplo software como D2R Datos compartidos en la iniciativa Linking Open Data
    85. 85. Evolución de LOD Mayo de 2007
    86. 86. Evolución de LOD Septiembre de 2008
    87. 87. Evolución de LOD Marzo de 2009 Número de tripletas: 4.712.896.432

    ×