Taller de Producción de Software 2007 Introducción a la Web Semántica Taller de Producción de Software 2º Semestre 2008
Indice Visión de la Web Semántica Arquitectura de la Web Semántica RDF Ontologías RDF Schema OWL Lenguaje de consulta SPARQL Nuevas tendencias
Visión de la Web Semántica La Web Actual La Web actual nos es útil porque podemos comprenderla Principalmente compuesta de documentos HTML en lenguaje natural (entendibles por humanos) y multimedia Cómo hago si quiero encontrar o integrar información?
Visión de la Web Semántica La Web Actual Escenario 1: Quiero viajar a Beijing y necesito un hotel que esté cerca de un restaurant de comida italiana que sirva platos vegetarianos Escenario 2: Quiero encontrar un médico especialista en problemas hepáticos, que atienda por mi Isapre y que tenga buena reputación
Visión de la Web Semántica La Web Actual Posible solución: Usar Google Problemas: Buscadores sintácticos no consideran el contexto de una petición, sólo keywords La Web actual no entrega metadata acerca de la información que provee para entregar respuestas precisas, se necesitaría un ejército de humanos comprendiendo e indexando páginas
Visión de la Web Semántica La Web Actual En general, la Web actual es un grafo index.html href asignaturas.php href personas.html
Visión de la Web Semántica La Web Actual La Web actual es una Web sintáctica Desarrollada como un medio de intercambio de información entre personas Computadores despliegan la información, dejando la interpretación a los humanos Aprox.8 millones de millones de páginas
Visión de la Web Semántica Algunas de las características de la Web Universalidad: cualquiera puede decir y linkear a/desde cualquier cosa (Web no discrimina) Descentralización Un sistema de estas características no permite consistencia global Parecer permitir crecimiento exponencial
Visión de la Web Semántica Definición Web Semántica: una extensión de la Web actual en la cual la información posee significado bien definido, permitiendo que personas y computadores cooperen para trabajar Sir Tim Berners-Lee, creador de la Web
Arquitectura de la Web Semántica Para lograr la visión de la Web Semántica, es decir, distribuir conocimiento mediante la Web, es necesario acordar una infraestructura tecnológica para ello La idea nueva (vs representaciones anteriores del conocimiento) es usar como base estándares Web ya definidos
Arquitectura de la Web Semántica Idea: pila o torta ( stack ) de tecnologías veremos algunas de las capas principales
Arquitectura de la Web Semántica En la base de la pila se encuentran: UNICODE: un conjunto estándar de caracteres) URIs: permiten darle identificación única a cada recurso en la Web XML y XML Schema: específicamente, namespaces y tipos de datos (XSD)
Arquitectura de la Web Semántica No basta XML para semántica? La esencia de XML es jerárquica Cómo combinar jerarquías XML de una manera transparente y distribuida? Conocimiento se puede modelar como una red de conceptos interrelacionados: estructura de grafo Imponer una estructura de árbol a un lenguaje de redes limita su expresividad
Arquitectura de la Web Semántica: RDF RDF: Resource Description Framework RDF es la tecnología central sobre la que se ha construido la Web Semántica Importante: si bien XML aparece como una tecnología base de esta pila, XML es sólo una de las posibles serializaciones de RDF
RDF (Resource Description Framework) Propuesto en 1999 para describir metadata Mecanismo para describir recursos y sus propiedades Lenguaje basado en frases con 3 componentes: sujeto, predicado y objeto
RDF Constructos Básicos Recursos: Cualquier cosa que pueda tener una URI OBS: URI no es lo mismo que URL Propiedades: Características o atributos de un recurso Tienen URIs (por lo tanto también son recursos) Relacionan recursos Literales: Datos no identificables por URIs, que representan datos concretos (strings, números, fechas) Triplas: Asocian recursos mediante propiedades, de la forma <sujeto, predicado, objeto>
RDF Afirmaciones mediante triplas Relación etiquetada entre recursos, p. ej: recurso propiedad literal <inf:pinostro> <foaf:name> Hernán Astudillo tripla <inf:pinostro> <foaf:personalwebpage> <http://www.inf.utfsm.cl/~hernan> <inf:pinostro> <rdf:type> <foaf:person> xmlns:foaf="http://xmlns.com/foaf/0.1/ xmlns:inf= http://www.inf.utfsm.cl/personas/ Serialización utilizada: Notation3 Se genera un grafo dirigido
RDF foaf:person rdf:type inf:hernan foaf:name foaf:personalwebpage Hernán Astudillo http://www.inf.utfsm.cl/~hernan
RDF Serialización XML (del mismo ejemplo anterior) <rdf:rdf xmlns:inf:"http://www.inf.utfsm.cl/conceptos/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:foaf="http://xmlns.com/foaf/0.1/" > <rdf:description rdf:about= inf:hernan > <rdf:type rdf:resource= foaf:person /> <foaf:name>hernán Astudillo</foaf:name> <foaf:haswebpage rdf:resource= http://www.inf.utfsm.cl/~hernan /> </rdf:description> Problema de RDF/XML: verboso y difícil de leer (Aunque en teoría nadie hace este tipo de archivos a mano)
RDF La idea es que cualquiera pueda crear data sobre cualquier recurso en la Web URIs permiten que el modelo de datos RDF sea realizable en la Web XML como lenguaje de serialización Aunque existen otros como N3, Turtle, etc. RDF hace que sea fácil integrar ( merge ) recursos
RDF RDF es una buena forma de describir recursos Pero, cómo establecer relaciones más sofisticadas? Cómo lograr acuerdos entre términos? En el ejemplo previo La propiedad foaf:name asocia un recurso de tipo Persona con un literal que corresponde a su nombre Esta propiedad debiera estar definida sólo una vez y ser reusada para cualquier recurso de tipo Persona al que se quiera asociar un nombre
Representación del conocimiento La comunidad de Inteligencia Artificial (Information Extraction) ha propuesto varias formas de representar conocimiento: Vocabularios controlados Taxonomías Tesauros Ontologías (otras)
Ontologías Ontologías: Representaciones explícitas de conceptualizaciones compartidas (Tom Gruber) Proveen una serie de conceptos y relaciones para describir un dominio Con RDF, podemos describir dominios publicando ontologías pero RDF no basta Principales lenguajes para ontologías sobre RDF: RDF Schema y OWL
RDF Schema Lenguaje para ontologías livianas Considera clases y recursos. Todo en RDF es un recurso, incluidas las clases Las clases además, representan conjuntos de recursos Existen relaciones de suma importancia: Tipado Herencia (múltiple) RDF Schema formaliza estas relaciones en RDF
RDF Schema RDF Schema define rdfs:resource, rdfs:class como nodos; rdf:type, rdfs:subclassof como propiedades (URIs especiales, usando la abreviación de namespaces)
RDF Schema Inferencia Sobre la base de las reglas establecidas utilizando RDF Schema, es posible realizar inferencias simples La figura muestra una inferencia de tipo (en línea punteada), basada en la declaración de subclases
RDF Schema Inferencia El documento RDF Semantics tiene una lista de 44 reglas. Reglas del tipo si se encuentra tal y cual tripleta en un grafo, entonces añadir esta otra tripleta Hacer recursivamente hasta que el grafo no cambie Se puede hacer en tiempo polinomial En nuestro ejemplo If: uuu rdfs:subclassof xxx. vvv rdf:type uuu. Then add: vvv rdf:type xxx. Estas tripletas extra pueden ser añadidas físicamente, o deducidas a medida que la aplicación lo requiera.
RDF Schema Tipado de literales Se utiliza los tipos básicos de XML Schema (recordar que la Web Semántica está estructurada en capas). Ejemplo: <rdf:description rdf:about="#flipper"> <animal:is_tv_star rdf:datatype="http://www.w3.org/2001/xmlschema#boolean"> true</animal:is_tv_star> </rdf:description/>
RDF Schema Problemas RDF Schema es útil, pero no resuelve todos los problemas Aplicaciones más complejas requieren mayores posibilidades Puede un programa razonar sobre ciertos términos? Ejemplo: si «A» está a la izquierda de «B» y «B» está a la izquierda de «C», está «A» a la izquierda de «C»? Programas deben ser capaces de deducir este tipo de cosas Construir clases, no sólo nombrarlas Restringir propiedades Equivalencia y clases disjuntas
OWL OPL: una capa sobre RDF Schema con posibilidades adicionales Creado a partir de diversos proyectos SHOE: proyecto temprano para aportar semántica a páginas HTML DAML-ONT (DARPA) y OIL (Unión europea) Un intento de mezclar estos últimos: DAML+OIL Mucha coordinación con elaboradores de RDF Recomendación de la W3C desde 2004
OWL En RDF Schema, sólo se puede crear clases a partir de clases anteriores (mediante herencia) En OWL, se puede construir clases desde clases preexistentes Enumerando su contenido Mediante intersección, unión, complemento Mediante restricciones de propiedades Para ello, OWL introduce su propia owl:class
OWL Un ejemplo complejo, modelado en OWL Un delfín es un mamífero que vive en el río Amazonas
OWL: Otras características Ontologías pueden ser muy grandes Se requiere especial cuidado para su administración Pueden consistir de diversos módulos Deben ser integradas Ontologías están en la Web, lo que implica: Aplicaciones pueden usar ontologías diversas o las mismas ontologías pero en varios idiomas Debe haber relaciones de equivalencia OWL permite equivalencia de propiedades y clases, versiones y control de deprecación, etc.
OWL Ontologías con mayor expresividad son difíciles en términos computacionales.
SPARQL: Lenguaje de consulta Una vez que se posee una base de conocimientos en RDF, es muy importante poder hacer consultas valiosas Se ha definido un lenguaje de consultas similar a SQL, pero basado en calce de patrones de grafos
SPARQL: Lenguaje de consulta Por ejemplo, consultar todos los nombres de los recursos de tipo Persona PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns# > PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT?name WHERE {?resource rdf:type foaf:person.?resource foaf:name?name } El resultado es un resultset, cuya única columna está asociada a la variable name
SPARQL: Lenguaje de consulta Si se ha realizado inferencias previas, las preguntas SPARQL pueden responder preguntas sobre conocimiento no explícito en la base RDF
Nuevas tendencias RIF (Rules Interchange Format): Añadir nuevos tipos de reglas (estilo PROLOG) SWS: Servicios Web Semánticos Vocabularios para tesauros: SKOS Integración con Web 2.0 mediante SPARQL
Aplicaciones Empresas clave están usando Web Semántica ORACLE HP IBM Boeing Algunos vocabularios ampliamente usados: FOAF Dublin core DOAP SKOS SIOC
Aplicaciones Algunos snapshots:
FIN Preguntas?