SlideShare ist ein Scribd-Unternehmen logo
1 von 87
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
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
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
¿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.
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
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
Estado del arte


 Podemos dividir el estado del arte en dos partes:
       Métricas de similitud
       Técnicas de toma de decisiones
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
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
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]
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]
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
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
Representación semántica de los
recursos
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
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
Demanda del usuario

 Definición:
    Petición por parte del usuario para que se le
 recomienden recursos. Formada por preferencias
              obligatorias y opcionales
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
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
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 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
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:
         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
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
Aproximaciones realizadas
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.
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.
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.
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.
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.
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.
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
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                               }
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                               }
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                               }
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
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
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
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
Funcionamiento
       D = { PR } , { PO1, PO2, PO3 }
                                  Marketplace
Funcionamiento
       D = { PR } , { PO1, PO2, PO3 }
                                  Marketplace




        PR
Funcionamiento
            D = { PR } , { PO1, PO2, PO3 }
                             PO2
                                             Marketplace
      PO1




             PR

                                   PO3   Pesos de las Preferencias
                                                 PO1 = 6
                                                 PO2 = 9
                                                 PO3 = 3
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
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
Función match
(basado en Instance Checking)



 Utilización de un razonador para comprobar qué
 preferencias cumplen los recursos
       Operación Instance Checking
Función match
(basado en SPARQL)



 Transformación de las preferencias en patrones de
 grafo
 Utilización de motor de SPARQL para ejecutarlas
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 cada preferencia opcional
 representando el cumplimiento o no de la preferencia
 asociada
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
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
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
Demo
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
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
Rendimiento
(en función del nº de preferencias opcionales)



                                basado en
                                 SPARQL

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



                             basado en
                              SPARQL

  basado en
     DL
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
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)
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
Operadores soportados
   Operador       DL   Sparql
      Clase
  Enumeraciones
    Existencial
    Universal
   Cardinalidad
   Tipo de dato
   Intersección
      Unión
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
Resultados
Caso de uso: CruZar
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
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
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
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
Gracias por su atención
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
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



                 Coincidencias
Información inferida
                                 Base de conocimiento (KB)




Patrón buscado


                                                       Razonador
                 Coincidencias
Información inferida
                                 Base de conocimiento (KB)




Patrón buscado


                                                       Razonador
                 Coincidencias
Información inferida
                                 Base de conocimiento (KB)




Patrón buscado


                                                           Razonador
                 Coincidencias            Conocimiento inferido
Información inferida
                                 Base de conocimiento (KB)




Patrón buscado


                                                           Razonador
                 Coincidencias            Conocimiento inferido
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
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 vector buscar tener una puntuación normalizada
Se verifica que:
Método AHP
¿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
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

Weitere ähnliche Inhalte

Andere mochten auch

Distans Inom CRS
Distans Inom CRSDistans Inom CRS
Distans Inom CRSlsc
 
Basic Teaching Tools In SL - Workshop (2)
Basic Teaching Tools In SL - Workshop (2)Basic Teaching Tools In SL - Workshop (2)
Basic Teaching Tools In SL - Workshop (2)Mary Pinto
 
Memoria 2009 - Proyectos JCE Barcelona
Memoria 2009 - Proyectos JCE BarcelonaMemoria 2009 - Proyectos JCE Barcelona
Memoria 2009 - Proyectos JCE BarcelonaCIE Barcelona
 
Qawaq 21
Qawaq 21Qawaq 21
Qawaq 21QAWAQ
 
Guia necesidades especificas de apoyo educativo ceapa
Guia necesidades especificas de apoyo educativo ceapaGuia necesidades especificas de apoyo educativo ceapa
Guia necesidades especificas de apoyo educativo ceapavera lisa pereira gonçalves
 
Kartellrechtsrisiko Verbandsarbeit ? Das Beispiel "Stauzuschlag Hamburg"
Kartellrechtsrisiko Verbandsarbeit ? Das Beispiel "Stauzuschlag Hamburg"Kartellrechtsrisiko Verbandsarbeit ? Das Beispiel "Stauzuschlag Hamburg"
Kartellrechtsrisiko Verbandsarbeit ? Das Beispiel "Stauzuschlag Hamburg"Matthias Pahnke
 
Google Cloud for Developers - Devfest Manila
Google Cloud for Developers - Devfest ManilaGoogle Cloud for Developers - Devfest Manila
Google Cloud for Developers - Devfest ManilaPatrick Chanezon
 
Pasos para definir proyecto de vida personal
Pasos para definir proyecto de vida personalPasos para definir proyecto de vida personal
Pasos para definir proyecto de vida personalMargarita Rosa Ayala
 
Yoga Vidya Hauptkatalog 2015
Yoga Vidya Hauptkatalog 2015Yoga Vidya Hauptkatalog 2015
Yoga Vidya Hauptkatalog 2015Yoga Vidya e.V.
 
HR Business Partner: Roles and Responsibilities
HR Business Partner: Roles and ResponsibilitiesHR Business Partner: Roles and Responsibilities
HR Business Partner: Roles and ResponsibilitiesCreativeHRM
 
Les labels 2015 des villes, territoires et villages Internet
Les labels 2015 des villes, territoires et villages InternetLes labels 2015 des villes, territoires et villages Internet
Les labels 2015 des villes, territoires et villages InternetCHARLES Frédéric
 
Social Media Monitoring, CRM, HR und Datenschutz-Recht
Social Media Monitoring, CRM, HR und Datenschutz-RechtSocial Media Monitoring, CRM, HR und Datenschutz-Recht
Social Media Monitoring, CRM, HR und Datenschutz-RechtThomas Schwenke
 
Wie organisiert sich Learning & Development morgen?
Wie organisiert sich Learning & Development morgen?Wie organisiert sich Learning & Development morgen?
Wie organisiert sich Learning & Development morgen?Jochen Robes
 

Andere mochten auch (18)

Social Media Praxistage
Social Media PraxistageSocial Media Praxistage
Social Media Praxistage
 
Distans Inom CRS
Distans Inom CRSDistans Inom CRS
Distans Inom CRS
 
Basic Teaching Tools In SL - Workshop (2)
Basic Teaching Tools In SL - Workshop (2)Basic Teaching Tools In SL - Workshop (2)
Basic Teaching Tools In SL - Workshop (2)
 
Memoria 2009 - Proyectos JCE Barcelona
Memoria 2009 - Proyectos JCE BarcelonaMemoria 2009 - Proyectos JCE Barcelona
Memoria 2009 - Proyectos JCE Barcelona
 
Qawaq 21
Qawaq 21Qawaq 21
Qawaq 21
 
Wobi Ago-Set 2013
Wobi Ago-Set 2013Wobi Ago-Set 2013
Wobi Ago-Set 2013
 
Guia necesidades especificas de apoyo educativo ceapa
Guia necesidades especificas de apoyo educativo ceapaGuia necesidades especificas de apoyo educativo ceapa
Guia necesidades especificas de apoyo educativo ceapa
 
Kartellrechtsrisiko Verbandsarbeit ? Das Beispiel "Stauzuschlag Hamburg"
Kartellrechtsrisiko Verbandsarbeit ? Das Beispiel "Stauzuschlag Hamburg"Kartellrechtsrisiko Verbandsarbeit ? Das Beispiel "Stauzuschlag Hamburg"
Kartellrechtsrisiko Verbandsarbeit ? Das Beispiel "Stauzuschlag Hamburg"
 
Borang data muria apdm terkini
Borang data muria apdm terkiniBorang data muria apdm terkini
Borang data muria apdm terkini
 
Google Cloud for Developers - Devfest Manila
Google Cloud for Developers - Devfest ManilaGoogle Cloud for Developers - Devfest Manila
Google Cloud for Developers - Devfest Manila
 
Pasos para definir proyecto de vida personal
Pasos para definir proyecto de vida personalPasos para definir proyecto de vida personal
Pasos para definir proyecto de vida personal
 
Yoga Vidya Hauptkatalog 2015
Yoga Vidya Hauptkatalog 2015Yoga Vidya Hauptkatalog 2015
Yoga Vidya Hauptkatalog 2015
 
Consultas sparql
Consultas sparqlConsultas sparql
Consultas sparql
 
HR Business Partner: Roles and Responsibilities
HR Business Partner: Roles and ResponsibilitiesHR Business Partner: Roles and Responsibilities
HR Business Partner: Roles and Responsibilities
 
Les labels 2015 des villes, territoires et villages Internet
Les labels 2015 des villes, territoires et villages InternetLes labels 2015 des villes, territoires et villages Internet
Les labels 2015 des villes, territoires et villages Internet
 
Social Media Monitoring, CRM, HR und Datenschutz-Recht
Social Media Monitoring, CRM, HR und Datenschutz-RechtSocial Media Monitoring, CRM, HR und Datenschutz-Recht
Social Media Monitoring, CRM, HR und Datenschutz-Recht
 
Wie organisiert sich Learning & Development morgen?
Wie organisiert sich Learning & Development morgen?Wie organisiert sich Learning & Development morgen?
Wie organisiert sich Learning & Development morgen?
 
Strategy Desk Nov 28
Strategy Desk Nov 28Strategy Desk Nov 28
Strategy Desk Nov 28
 

Kürzlich hochgeladen

TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadEduardoSantiagoSegov
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 

Kürzlich hochgeladen (20)

TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedad
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 

TeRRAS

  • 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. 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. 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. ¿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. 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. 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. Estado del arte Podemos dividir el estado del arte en dos partes: Métricas de similitud Técnicas de toma de decisiones
  • 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. 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. 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. 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. 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. 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
  • 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. 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. Demanda del usuario Definición: Petición por parte del usuario para que se le recomienden recursos. Formada por preferencias obligatorias y opcionales
  • 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. 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
  • 21. Demanda expresada como fórmulas lógicas Preferencias Obligatorias Preferencias Opcionales
  • 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
  • 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. 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
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Funcionamiento D = { PR } , { PO1, PO2, PO3 } Marketplace
  • 43. Funcionamiento D = { PR } , { PO1, PO2, PO3 } Marketplace PR
  • 44. Funcionamiento D = { PR } , { PO1, PO2, PO3 } PO2 Marketplace PO1 PR PO3 Pesos de las Preferencias PO1 = 6 PO2 = 9 PO3 = 3
  • 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. 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. Función match (basado en Instance Checking) Utilización de un razonador para comprobar qué preferencias cumplen los recursos Operación Instance Checking
  • 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. Reglas de transformación de QIL a SPARQL
  • 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. 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. 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. 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. Demo
  • 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. 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. Rendimiento (en función del nº de preferencias opcionales) basado en SPARQL basado en DL
  • 60. Rendimiento (en función del nº de recursos) basado en SPARQL basado en DL
  • 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. 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. 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. Operadores soportados Operador DL Sparql Clase Enumeraciones Existencial Universal Cardinalidad Tipo de dato Intersección Unión
  • 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
  • 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. La biblioteca TeRRAS Ha sido liberada en SourceForge, bajo licencia GPL.
  • 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. 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. Gracias por su atención
  • 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
  • 74. Información inferida Base de conocimiento (KB) Patrón buscado
  • 75. Información inferida Base de conocimiento (KB) Patrón buscado Coincidencias
  • 76. Información inferida Base de conocimiento (KB) Patrón buscado Razonador Coincidencias
  • 77. Información inferida Base de conocimiento (KB) Patrón buscado Razonador Coincidencias
  • 78. Información inferida Base de conocimiento (KB) Patrón buscado Razonador Coincidencias Conocimiento inferido
  • 79. Información inferida Base de conocimiento (KB) Patrón buscado Razonador Coincidencias Conocimiento inferido
  • 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. Método AHP Se basa en la comparación de las diferentes alternativas en función de una tabla.
  • 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:
  • 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
  • 87. Evolución de LOD Marzo de 2009 Número de tripletas: 4.712.896.432

Hinweis der Redaktion

  1. Presentación
  2. Explicar que vamos a ver en esta presentación y como esta estructurado
  3. Por que este proyecto. Este proyecto busca un sistema de recomendación genérico en función de las preferencias del usuario
  4. 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
  5. 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
  6. 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.
  7. 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.
  8. 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.
  9. En nuestro proyecto vamos a proponer una nueva técnica de recomendación se tiene las siguientes características:
  10. 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”
  11. 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.
  12. Tenemos dos tipos de preferencias: - Obligatorias: que filtran - Opcionales: que puntúan
  13. 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
  14. Un ejemplo de demanda seria las siguiente. Podemos ver las dos partes de las demanda (Obligatorias y opcionales)
  15. La misma demanda expresada como formulas lógicas sería la siguiente
  16. 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
  17. 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.
  18. Veamos un resumen que que va a hacer nuestro algoritmo
  19. Veamos un resumen que que va a hacer nuestro algoritmo
  20. Veamos un resumen que que va a hacer nuestro algoritmo
  21. Veamos un resumen que que va a hacer nuestro algoritmo
  22. Veamos un resumen que que va a hacer nuestro algoritmo
  23. Veamos un resumen que que va a hacer nuestro algoritmo
  24. Veamos un resumen que que va a hacer nuestro algoritmo
  25. Veamos un resumen que que va a hacer nuestro algoritmo
  26. Veamos un resumen que que va a hacer nuestro algoritmo
  27. Veamos un resumen que que va a hacer nuestro algoritmo
  28. Veamos un resumen que que va a hacer nuestro algoritmo
  29. Veamos un resumen que que va a hacer nuestro algoritmo
  30. Veamos un resumen que que va a hacer nuestro algoritmo
  31. Veamos un resumen que que va a hacer nuestro algoritmo
  32. Más gráficamente tememos un marketplace (lugar donde se encuentra toda las información disponible)
  33. Más gráficamente tememos un marketplace (lugar donde se encuentra toda las información disponible)
  34. Más gráficamente tememos un marketplace (lugar donde se encuentra toda las información disponible)
  35. 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.
  36. 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.
  37. 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.
  38. Estas son algunas de las reglas de transformación de los operadores lógicos a patrones de grafo.
  39. Misma demanda transformada en consulta SPARQL
  40. Con esta consulta conseguimos una matriz que nos indicará para cada recurso el cumplimiento o no de cada preferencia.
  41. 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.
  42. 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.
  43. Explicar que vamos a ver en esta presentación y como esta estructurado
  44. A modo de recordatorio
  45. 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.
  46. En estas se puede ver el comportamiento del rendimiento en función del número de recursos disponibles.
  47. Que ventajas tienen nuestro método
  48. Que inconvenientes
  49. 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.
  50. 3 fases: - Integración. - Recomendación. - Planificación.
  51. 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
  52. Esto proyecto ha sido implementado como librería Java y publicado con licencia GPL.
  53. Para terminar podemos ver un resumen de lo que hemos obtenido con este proyecto.
  54. Que queda para el futuro...
  55. ¿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.
  56. Evolución del grafo del Linking Open Data
  57. Total de tripletas