Post on 05-Dec-2014
description
Web Semántica con MAYÚSCULAS
Carlos Tejo Alonso
carlos.tejo@gmail.com
Sumario• Presentaciones• Problemas de la Web actual• Introducción a la Web Semántica• Web de datos / objetos
HTML / UNICODE / URI / XML• Web de información / relaciones
Meta / RDF• Web de conocimiento / razonamiento
RDFS/OWL/SPARQL• Ejemplos
¿Quien soy yo?
Carlos Tejo Alonso
carlos.tejo@gmail.com
Actualmente trabajo en Fundación CTIC,
en el departamento de I+D+i,
en la línea de Web Semántica
¿Quienes sois vosotros?
Encuesta Online
http://spreadsheets.google.com/viewform?key=pvyBNqaEQGj8sptli18b3Fw
Sumario• Presentaciones• Problemas de la Web actual• Introducción a la Web Semántica• Web de datos / objetos
HTML / UNICODE / URI / XML• Web de información / relaciones
Meta / RDF• Web de conocimiento / razonamiento
RDFS/OWL/SPARQL• Ejemplos
Empecemos con una historia que ocurrió hace muchos muchos años…
Historia 1: BibliotecaAño 1943: el médico don Horacio José Casal posee una biblioteca personal con cientos de libros, que ocupan dos habitaciones enteras. El orden no es el punto fuerte del doctor. Por lo cual, cada vez que necesita información, debe revisar cada libro hasta encontrar lo que busca.
Problemas:- Utiliza mucho tiempo en cada búsqueda- No siempre encuentra lo que busca
Solución: Catalogar los libros
La Biblioteca - Horacio• ¿Qué alfabeto utiliza?Latino
• ¿Cómo hacer referencia a cada libro de forma única?Cuatro letras del autor + año [GRIJ1854]
• ¿Cómo anotar la información de los libros?En fichas (una por libro) almacenadas en tres cajas de madera de roble (una por materia)
• ¿Qué criterios utilizar para catalogar los libros?Autor, título y tema
La Biblioteca (continuación)
Año 1946: se muda a la casa contigua a la del doctor, un escritor de novela rosa ruso, Olaff Petrenko, quien también posee una amplia biblioteca.
Olaff, como buen ruso, es ordenado y su biblioteca está catalogada
La Biblioteca - Olaff• ¿Qué alfabeto utiliza?Cirílico [Зравствуйте]
• ¿Cómo hacer referencia a cada libro de forma única?Tres letras del titulo + año [вду1812]
• ¿Cómo anotar la información de los libros?En grandes cuadernos (estilo guía telefónica)
• ¿Qué criterios utilizar para catalogar los libros?Palabra clave, editorial y año
La Biblioteca (continuación)
Año 1951: Llega otro vecino, que es un gran aficionado a la tecnología y a los libros: el profesor Tsun Lie Yong, recién venido de Shangai.
No quiero ni pensar como
ordena su biblioteca ...
¿Cómo compartir información?
El Dr. Casal, el Sr. Petrenko y el profesor Tsun Lie Yong gustan de compartir sus libros, pero nunca les fue fácil buscar información en las tres bibliotecas.
Problemas
• Alfabetos diferentes
• Referencias diferentes
• Anotaciones diferentes
• Criterios de catalogación diferentes
Houston: We’ve got a problem
source: http://www.hq.nasa.gov/alsj/a13/a13.s70_35013.jpg
Reminds
¿Es un problema que solo afecta a la biblioteca de
nuestros amigos? A mi me recuerda a un invento…
“Internet will catastrophically collapse in 1996”Robert Metcalfe, internet inventor
Práctica (Texto)
Escribir en texto plano esta información
- Clase. Horario, geoposición
- Profesor.
- Alumnos.
Práctica (Texto)
El día 3 de Julio de 2008, a las 9.00am, en el edificio Valdés Salas de la Universidad de Oviedo, comenzará la clase “Web semántica en MAYÚSCULAS” (que pertenece al curso “Diseño centrado en el usuario en la Web 2.0”), impartido por el profesor “Carlos Tejo Alonso” (página personal www.dayures.net), al alumno José Luis Cabrera, con email jose@example.org
La Web vs Página Web
World Wide Web (o "la Web") es un sistema de documentos de
hipertexto y/o hipermedios enlazados y accesibles a través
de Internet. Una página Web es una fuente de información adaptada para la Web que se presenta generalmente en
formato HTML.
Evolución de la Web
El éxito de la Web actual
• Descentralización
• Información compartida
• Facilidad para acceder
• Facilidad para contribuir con nuevos datos
• Compatibilidad
• Apertura al crecimiento y usos no previstos de antemano
Los problemas de la Web actual
• La web profunda (Deep web)
• Información en otros idiomas
• Ambigüedad de una búsqueda
• … ¿Alguno más?
Deep Web• Hay partes de la web ocultas a los buscadores
Es la deep web (“web profunda”), en oposición a la surface web (“web superficial”) cuya información sí puede recuperarse con los buscadores de Internet
Lee más: http://en.wikipedia.org/wiki/Deep_Web
A todo no hay acceso…
• Contenido dinámico (bases de datos)
• Contenido sin enlazar
• Parte privada de los sitios web
• Navegación contextual (paginas que muestran diferente información según la IP o la secuencia previa de navegación)
• Acceso limitado al contenido (robots.txt)
• Contenido generado por Flash, Javascripts
• Contenido que no es HTML/text
En la realidad: Ejemplos
http://www.whitehouse.gov/robots.txt
http://www.deporteyciencia.com/robots.txt
• ¿Cómo se cual es la licencia de uso de un documento que está en otro idioma?
• ¿Cómo puedo saber el tiempo meteorológico que va a hacer en Changchun, China?
Otros idiomas
Universidad de Haifa [Israel]
Otros idiomas
Ambigüedad en búsquedasCuando quiero buscar información sobre Granada en del.icio.us, obtengo como resultados:
• Fruto del granadoLa Granada. Fruta del Paraiso
• Proyectil hueco que se arroja con la manoMilitaria Granada Armas inutilizadas antiguas y replicas
• Ciudad de AndalucíaUniversidad de Granada - www.ugr.es
Sources (Creative Commons Reconocimiento 2.0 Genérica):
http://www.flickr.com/photos/xzaragoza/228560980/
http://www.flickr.com/photos/arturdebat/443912812/
http://www.flickr.com/photos/lworcel/134945845/
Ambigüedad en búsquedas
Otros problemas que surgen
Mejorar las limitaciones de los buscadores actualesSituación: Voy a una seminario impartido el Sr. García.Problema: Encontrar información acerca del señor García para ir documentado.Dificultad: Muchos resultados de búsqueda inútiles.
Compartir información de una manera sencillaSituación: Quiero añadir a mi agenda, la lista de asistentes a una reuniónProblema: Si hay X asistentes, con Y datos por asistente (nombre, apellido, e-mail, etc..) lo que implica realizar X*Y operaciones de copiar y pegar!Dificultad: Excesivo trabajo manual para añadir los datos
Combinar información automáticamenteSituación: En el sitio web A hay sugerencias de películas y en B hay los precios de películas.Problema: Combinar sugerencias y precios. Dificultad: Excesivo trabajo manual para combinar los datos
¿Por qué hay problemas?
• La web actual representa la información utilizando lenguaje natural con muy poca estructura (html), muchos gráficos, ...
• Válida para ser comprendido por humanos pero complejo para ser procesado automáticamente.
La web sintáctica
¿Dónde estamos entonces?
Podemos decir que estamos en la WEB SINTÁCTICA
Características:• Centrada en consumo de datos por humanos• Crecimiento caótico de recursos [páginas]• Semántica implícita (reconocible por humanos)• Falta orden y organización
¿Es suficiente?
Mejorar la web sintáctica
• Máquinas más inteligentes: Enseñar a los ordenadores a comprender el significado de la información que hay en la web (Procesamiento de lenguaje natural, reconocimiento de imágenes, etc...)
• Información más inteligente: Representar la información de modo que sea comprensible para las máquinas (Expresar contenidos en un formato procesable automáticamente. Ejemplo: uso de metainformación o metadatos).
Historia 2: Espías
Año 2005: James Corigos es un importante agente secreto de la República de Tolivia. A James le es muy costoso buscar información en Internet por le tiempo que le toma. Por ello ha pedido un becario de informática para delegar esa responsabilidadMónica Lewinskysky es el becaria-asistente que se encarga de buscar la información, y lo hace así: utiliza un navegador y en sitios como Google o Yahoo encuentra gran cantidad de enlaces que revisa uno a uno y si tiene suerte, extrae la información solicitada por su jefe. James recibe la información por parte del Mónica al cabo de unas horas.
Espías: El encargoUna llamada a medianoche despierta a James y le comunica su último encargo. Tiene que resolver la cuestión:
¿Santiago: tenía caballo o tenía camello? 1. Mónica entiende lo que le pide su jefe y escribe en los buscadores: “Santiago Camello Caballo”2. Resultado: paginas sobre historia, animales, drogas, sobre el actor Santiago del Caballo ....3. Comprende cada una de las páginas, eliminando las que no le interesan en su búsqueda4. Apunta los datos importantes que encuentra5. Uniendo la información de varias páginas, amplía la búsqueda6. Finalmente descubren que lo que tenia Santiago era ...
Espías: ¿Cómo lo pudo hacer?
Mónica, la asistente de James, es un agente humano que posee las siguientes características:
• Entiende lo que se les pide buscar
• Comprende el contenido de los sitios Web que visitan
• Valida si lo encontrado corresponde a lo que se le pidió buscar
• Deduce nueva información de la ya obtenida
Buscando una solución
¿Qué es necesario para automatizar el proceso de:
- Entender una consultar?
- Comprender sitios web?
- Validar información?
- Deducir nueva información?
Estandarizar alfabeto, referencias, lenguaje, formato, anotaciones sobre significados, conceptos generales, reglas y sistemas de deduccion, etc ...
Volvamos …
Volvamos al ejemplo de la Biblioteca
¿Final feliz?
Año 2005: Ana Casal Petrenko habla con sus abuelos y los insta a subirse al carro de las nueva tecnologías. Les propone usar:
• Alfabeto: Unicode
• Referencias: URI (IRI)
• Anotaciones: XML y RDF
• Criterios de catalogación: Ontologías
Los abuelos se sienten insultados y le responden:
• El Dr. Casal: ¡Para que tanta parafernalia, si las fichas siempre se han usado!
• El escritor Olaff Petrenko, que conoce algo de las nueva tecnologías: ¿Por qué no usamos simplemente HTML?
• El profesor Tsun Lie Yong, que todos los dias lee Slashdot, Barrapunto y Boing Boing: ¿Y por que XML no es suficiente?
Las dudas de los abuelos
¿A dónde queremos ir?
Hacia la
WEB SEMÁNTICA !!!
La web Semántica
Sumario• Presentaciones• Problemas de la Web actual• Introducción a la Web Semántica• Web de datos / objetos
HTML / UNICODE / URI / XML• Web de información / relaciones
Meta / RDF• Web de conocimiento / razonamiento
RDFS/OWL/SPARQL• Ejemplos
Definición en inglés
The Semantic Web is an extension of the current web in which information is given well-defined meaning, better enabling computers and people to work in cooperation."
Tim Berners-Lee, James Hendler, Ora Lassila,
The Semantic Web, Scientific American, Mayo 2001
Definición en español
La Web Semántica no es una web aparte sino una extensión de la actual en la que la información tiene un significado bien definido, posibilitando que los ordenadores y las personas trabajen en cooperación.
Características
• Centrada en la información
• Información procesable por máquinas– Semántica explícita (metadatos)
– Motores de inferencia
• Estandarización – Anotación estandarizada (vocabularios)
• Clasificación – Ontologías consensuadas
Conceptos
La descripción del significado se obtiene con– Metadatos (datos sobre los datos)– Ontologías (relaciones entre conceptos)
<meta name="keywords" content="canoa,sella,turismo"/>
La manipulación automática del conocimiento mediante
– Lógica (base de los motores)– Motores de inferencia (inferir conocimiento)
¿ Ejemplos de uso ?
Si...., vale......, muy bien ...... pero eso de la Web Semántica
¿que aplicaciones puede tener en la vida real ?
Utilidad RealAsí que aquí dejo dos "tareas" para que quien esté interesado las pruebe a resolver:
• ¿Cuanto cuesta un billete de tren desde Viena hasta Liubliana, capital de Eslovenia?
• Elegir cinco listados de los mejores libros de ciencia ficción. Encontrar los libros que están recomendados en los cinco listados.
Con la web semántica serán muy sencillas.
Preparemos un viaje
1. Acceder manualmente a estas páginas– Desplazamientos. Reserva de vuelo– Hotel. Reserva de plaza– Horarios y líneas de transporte local– Tiempo atmosférico– …..
2. Indicamos a un programa nuestras preferencias y este lleva a cabo todo el proceso, sin que el usuario pase horas navegando
Creación de software
1. Buscar los componentes de forma manual– Buscar los componentes adecuados en cientos
de páginas de internet– Estudiar aquellas que parecen interesantes– Comprobar la legalidad (licencias)– Buscar manuales de especificación de cómo
enlazar unos con otros
2. Agente apropiado (no humano) podrá llevar a cabo esta operación
Ventajas al buscar
• Búsquedas más eficientes combinando resultados de varias páginas que antes no tenían ninguna conexión
• Buscadores podrían responder preguntas directas, como "busca todos los documentos relacionados con la investigación sobre ADN mediante el elemento calcio"
• http://labs.google.com/sets
Lee más: http://blog.semantic-web.at/2008/07/07/an-overview-of-semantic-search-engines/
Sumario• Presentaciones• Problemas de la Web actual• Introducción a la Web Semántica• Web de datos / objetos
HTML / UNICODE / URI / XML• Web de información / relaciones
Meta / RDF• Web de conocimiento / razonamiento
RDFS/OWL/SPARQL• Ejemplos
Dato, información y conocimiento
• Dato: conjunto discreto de elementos sobre un hecho real que por sí solos son irrelevantes, que debe ser procesados para darle sentido.• Información: Conjunto organizado de datos procesados, que constituyen un mensaje sobre un determinado ente o fenómeno y que puede ser interpretado por cualquier persona.• Conocimiento: es una mezcla de experiencia, relaciones, información y know-how que sirve como marco para la obtener nuevo conocimiento, y es útil para tomar acciones.
HTML
Web de datos: HTML
Lenguaje de horror, aunque con alguna virtud
<h1>Filmografía</h1><p><i>Todo sobre mi padre</i>
Al Modovar, Al Patxino<br>Fifty Century Foxy, 2008</p>
<p><i>Tacones cercanos</i>Al Modovar, Jose Luis
Ganchi<br>Paratous Comedy, 2005</p>
Virtudes del HTML
HTML es fácil de usar, fácil de usar, fácil de usar,... y robusto.
HTML es limitado
• Orientado a la presentación de datos
• No es extensible: tiene un numero finito de etiquetas.
• No describe el “contenido”
• No se describen las relaciones entre los documentos
Práctica <HTML>
Escribir en la información sobre el curso desde el formato en texto plano a HTML
Práctica <HTML>El día <strong>3 de Julio de 2008</strong>, a las <strong>9.00am</strong>, en el edificio <em>Valdés Salas de la Universidad de Oviedo</em>, comenzará la clase <span class="clase">“Web semántica en MAYÚSCULAS”</span>(impartido dentro del curso <span class="curso">Diseño centrado en el usuario en la Web 2.0</span>), impartido por el profesor <span class=“profe">Carlos Tejo Alonso (<a href="http://www.dayures.net/"> www.dayures.net</a>)</span>,al alumno <span class=“alumno">José Luis Cabrera</span>, con email <a href="mailto:jose@example.org"> jose@example.org</a>
Práctica <HTML>
Seamos serios
Nos merecemos algo más !!!
Que tal … la web semántica?
Los dos tipos de WEB
W3C
El World Wide Web Consortium (W3C) es un consorcio
internacional que produce estándares para la Web.
Dirigido por Tim Berners-Lee
Semantic web cake layer
Tim Bernes Lee, 2000
Semantic web cake layer
Tim Bernes Lee, 2005
Semantic web cake layer
Tim Berners Lee, 2006
Let’s go!
Semantic web cake layer
UNICODE
Unicode
Unicode es estándar industrial cuyo objetivo es proporcionar el medio por el cual un texto en cualquier forma e idioma pueda ser codificado para el uso informático.
Unicode proporciona un número único para cada carácter:
sin importar la plataforma,
sin importar el programa,
sin importar el idioma.
Caracteres variados
Unicode - Objetivos
• Crear un repertorio de todos los caracteres en todos los lenguajes del mundo (y más)
• Asignar un código numérico único a cada carácter (abandonando la idea de usar 8 bits)
• Mantener en lo posible la compatibilidad con ASCII e ISO
Unicode - Organización
• Se organizan en planos
• Cada plano tiene espacio para 216 caracteres
• Se limita el número de planos a 17
Unicode - Planos
De los 17 planos previstos:
• El plano 0 está completamente definido.– Se denomina “Basic Multilingual Plane” (BMP)– Contiene todos los alfabetos “vivos”
• El plano 1 está en proceso de ser definido.– Contiene alfabetos “muertos” o exóticos.– Más símbolos matemáticos y musicales
• Los restantes planos aún no han sido definidos
Unicode - Notación
• Un código Unicode suele escribirse como “U-” más 8 cifras hexadecimales (realmente, bastaría con 6)
• Las cuatro primeras cifras dan el número de plano.
• Las cuatro inferiores la localización dentro del plano
• Si el plano es 0, suele omitirse y escribirse “U+” más 4 cifras hexadecimales.
Unicode - Ejemplos
Letra Fenicia HET
U-00010907
Letra China (Significa Excelente)
U-0000329D (U+329D)
Unicode - Importante
Unicode sólo especifica qué valor numérico tiene cada carácter, pero no cómo almacenarlo (codificarlo) en un computador.
Codificaciones:
• UCS-4
• UCS-2
• UTF-8 (muy extendida en XML)
• UTF-16
Semantic web cake layer
URI
URI: Uniform Resource Identifier
(Identificador Uniforme de Recurso)
Cadena caracteres que identifica inequívocamente un recurso (servicio, página, documento, dirección de correo electrónico, enciclopedia, etc) físico o abstracto
URL: Uniform Resource Locator
(Localizador Uniforme de Recurso)
URI que describe el método de acceso a un recurso (en cierta manera, nos indica su localización)
Ejemplos de URLIdentifica una localización Webhttp://www.dayures.net
Especifica un fichero descargableftp://uniovi.es/fichero.tmp
Fichero del sistema localfile://tmp/lista-lulea.txt
Correo electrónicomailto://carlos.tejo@gmail.com
Lee más: http://esw.w3.org/topic/UriSchemes
URN: Uniform Resource Name(Nombre Uniforme de Recurso)
URI que identifica un recurso por el nombre, en un espacio determinado. Una URN puede servir para tratar sobre un recurso sin expresar su ubicación o como acceder a él. Está más basado en el recurso en sí (contenido, características) que en el lugar en el que se halla el recurso.
Ejemplos de URN
urn:isbn:0451450523 - el URN para el libro “El ultimo unicornio”, identificado por ese numero de ISBN
urn:ietf:rfc:3187 – el URN para el IETF's RFC 3187
urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C - el URN representivo del fichero MP3 concreto que contiene el discurso “I have a dream” de Martin Luther King.
IRI: Internationalized Resource Identifier
IRI es la versión internacionalizada de una URI, que permite utilizar caracteres Unicode ya que la sintaxis de las URIs sólo permite usar el subconjunto del US-ASCII y obliga a recodificar los caracteres no permitidos.
http://ab.cd/ / خد. ij/kl.html جح
Semantic web cake layer
XML
XML: Extensible Markup Language
• XML es un meta-lenguaje (lenguaje para hacer lenguajes) extensible de etiquetas• XML tiene un conjunto infinito de etiquetas permitidas• Estándar emergente para el intercambio de datos en la web apoyado por el W3C
<par>Párrafo</par>
XML – Características
• El marcado permitido para una aplicación se suele documentar en un DTD o XML schema.
• Un documento bien formado (well formed) es aquel que cumple con todas las definiciones básicas de formato y puede, por lo tanto, analizarse correctamente usando un analizador sintáctico (parser).
• Un documento válido (valid) es aquél que responde a un DTD o Schema.
• XML no añade semántica (desde un punto de vista computacional)
Web de datos: XML
<?xml version="1.0" encoding="UTF-8"?><address type="home">
<street>123 Smith St. S.E.</street><city>AmyWineTown</city><state>CA</state><postalCode>33015</postalCode><country>US</country>
</address>
Web de datos: XML Schema
<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="address"> <xs:complexType"> <xs:sequence> <xs:element name="street" type="xs:string"/> <xs:element name="city" type="xs:string"/> <xs:element name="state" type="xs:string"/> <xs:element name="postalCode" type="xs:integer"/> <xs:element name="country" type="xs:string"/> </xs:sequence>
<xs:attribute name=“type“ type="xs:string”/> </xs:complexType> </xs:element></xs:schema>
XML – Características• Posibilidad de crear nuevos vocabularios• Modularidad vía espacios de nombres y tipos de datos• Versatilidad vía datos semi-estructurados• Amplio soporte y distribución• Estándar de interoperabilidad documental
XML – Usos
• Formato común para el intercambio de documentos (certificados, facturas, referencias de libros...)
• Integración de información de diferentes fuentes en documentos uniformes.
Práctica <XML>
Escribir en la información sobre el curso desde el formato en HTML a XML
Práctica <XML>
El edificio histórico tiene como coordenadas
lat 43.354903
long -5.851306
La hora se representa como 2008-07-03T09:00:00+02:00
Lee más: http://www.w3.org/TR/NOTE-datetime
Práctica <XML><curso titulo="Diseño centrado en el usuario en la Web 2.0"> <clase> <titulo>Web semántica en MAYÚCULAS</titulo> <tiempo-inicio>2008-07-03T09:00:00+02:00</tiempo-inicio> <lat>43.354903</lat> <long>-5.851306</long> <lugar>Edificio Valdés Salas, Universidad de Oviedo</lugar> <profesor> <nombre-apellidos>Carlos Tejo Alonso</nombre-apellidos> <homepage>http://dayures.net</homepage> </profesor> <estudiante> <nombre-apellidos>José Luis Cabrera</nombre-apellidos> <email>jose@example.org</email> </estudiante> </clase></curso>
¿Por qué nosotros no entendemos?
¿Por qué máquinas no entienden?
<nombre>Luis</nombre>
<name>Luis</name>
<namn>Luis</namn>
<Имя>Luis</Имя>
Necesitamos descripción de datos
• El significado del documento es intuitivamente claro a un humano debido a:
– Las etiquetas son términos de un dominio– El contexto del documento es manejado por el
lector
• Pero los computadores no tienen intuición (por ahora)
– El nombre de las etiquetas por si mismo no provee de semántica
¿XML es suficiente? NO
• Modelo de datos asociado a XML es un árbol (no un grafo)
• Hijos están ordenados
• XML modela la estructura de documentos, y el mundo real no es un documento estructurado, sino una red de relaciones
(aunque no olvidemos que hay muchos documentos)
XML estandariza formato, no significado
La vida real - Relaciones
Otro modelo de datos
• Todo es un recurso: páginas web, bases de datos, dirección de la empresa, etc…
• Identificadores únicos: cada recurso tiene un identificador único
• Vocabularios compartidos: términos comunes en un dominio.
• Estructura extensible y distribuida: todos pueden agregar su información y nadie debe ser dueño de toda la información
Sumario• Presentaciones• Problemas de la Web actual• Introducción a la Web Semántica• Web de datos / objetos
HTML / UNICODE / URI / XML• Web de información / relaciones
Meta / RDF• Web de conocimiento / razonamiento
RDFS/OWL/SPARQL• Ejemplos
Dato, información y conocimiento• Dato: conjunto discreto de elementos sobre un hecho real que por sí solos son irrelevantes, que debe ser procesados para darle sentido.
• Información: Conjunto organizado de datos procesados, que constituyen un mensaje sobre un determinado ente o fenómeno y que puede ser interpretado por cualquier persona.• Conocimiento: es una mezcla de experiencia, relaciones, información y know-how que sirve como marco para la obtener nuevo conocimiento, y es útil para tomar acciones.
<meta>
Metadatos
Metadatos
datos sobre los datos
HTML y el elemento <meta>
El elemento <meta> identifica propiedades de un documento (por ejemplo, el autor-a, copyright, una lista de palabras clave, posición geográfica...) y asigna valores a esas propiedades. Cada elemento <meta> especifica una pareja propiedad/valor
HTML y el elemento META
Políticamente in-correcto
Unos no usan.....
http://www.psdeg-psoe.org/
Otros si usan....
http://www.ppoviedo.com/
Lee más: http://www.seotalk.es/google-muestra-descripcion-dmoz/ (dar consejos a Google de tu página)
Lee más: http://www.mqaccesibilidad.com/2008/06/posicionar-nuestro-sitio-web-iv-usa-los-meta-tags.html
Dublin Core
Estándar de metadatos que define un conjunto de propiedades para descripciones bibliográficas electrónicas.
• Algunas propiedades son: título, autor, descripción, fecha de publicación, idioma, documentos relacionados, copyright...
• Las propiedades se indican con los caracteres DC seguidos de un punto y el nombre de la propiedad.
DC.title “example”
<meta name="DC.creator" content="Carlos Tejo">
<meta name="DC.title" lang="en" content="DC META Tags Example">
<meta name="DC.date" scheme="W3CDTF" content="2008-07-03">
Plugin Dublin Core para Firefox
Se activa cuando una pagina pages está con metadatos Dublin Core
https://addons.mozilla.org/firefox/addon/528
Ejemplo
http://vezosastures.com/
http://www.dayures.net
Lee más: Expressing Dublin Core in HTML/XHTML meta and link elementhttp://dublincore.org/documents/2003/11/30/dcq-html/
GeoLocalizar una web
ICBM(InterContinental Ballistic Missile)
<meta name="ICBM"
content="42.1895,-5.0435">
http://geourl.org/add.html
GeoLocalizar una web
Geo Tag format<meta name="geo.position" content="42.1895,-5.0435">
<meta name="geo.placename" content="Villacarralón">
<meta name="geo.region"
content="ES-VA">
http://geotags.com/geobot/add-tags.html
Plugin Geo para Firefox
Se activa cuando una pagina está geolocalizada mediante las META etiquetas ICBM o
geo.position
https://addons.mozilla.org/firefox/addon/530
Ejemplo
http://www.flickr.com/photos/nextors/map/
Hands-on
¿y si añadimos unos metadatos de dublin-core?
http://dublincore.org/documents/2003/11/30/dcq-html/
¿y si geo-etiquetamos una página?
http://maps.google.com/
Semantic web cake layer
RDF
RDF: Resource Description Framework
RDF es una standard W3C para describir recursos (cualquier cosa que tenga una URI) en la web.
Esta diseñado para ofrecer una formato común para describir información y, por lo tanto, para que pueda ser leída y entendida por una aplicación informática.
Lee más: http://www.slideshare.net/yuhana/jena-193716 (Umi Laili Yuhana)
Titulo Artista País Año Precio
Botten Anna Basshunter Suecia 2006 15
Macarena Los del río España 1993 10
<?xml version="1.0" encoding="UTF-8"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cd="http://ejemplo.org/cd#"><rdf:Description rdf:about="http://ejemplo.org/cd#Botten Anna"> <cd:titulo>Botten Anna</cd:titulo> <cd:artista>Basshunter</cd:artista> <cd:pais>Suecia</cd:pais> <cd:anyo>2006</cd:anyo> <cd:precio>15</cd:precio></rdf:Description><rdf:Description rdf:about="http://ejemplo.org/cd#Macarena"> <cd:titulo>Macarena</cd:titulo> <cd:artista>Los del río</cd:artista> <cd:pais>España</cd:pais> <cd:anyo>1993</cd:anyo> <cd:precio>10</cd:precio></rdf:Description></rdf:RDF>
RDF: Resource Description Framework
RDF: Resource Description Framework
El modelo RDF es un conjunto de tripletas.
Una tripleta (que sirve para describir un recurso que está identificado de manera unívoca por una URI) es una combinación:
• Un recurso, una propiedad, y un valor para la propiedad
• Conocidos como sujeto, predicado y objeto
Recurso Propiedad Valor-de-la-propiedad
predicadosujeto objeto
El recurso http://dayures.net/podcast
tiene la propiedad título
con valor ¿Qué es el Podcasting?
Ejemplos de tripleta
(<http://dayures.net/podcast>, <http://purl.org/dc/elements/1.1/title>, "¿Qué es el Podcasting?")
Ejemplos de tripleta en RDF/XML<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<rdf:Description rdf:about="http://en.wikipedia.org/GRDDL">
<dc:title>GRDDL</dc:title>
<dc:publisher rdf:resource="http://www.wikipedia.org"/>
</rdf:Description>
</rdf:RDF>
¿Cómo lo hace?La información es un grafo dirigido y etiquetado que modela las relaciones entre objetos.
• Sujeto: Es el Recurso sobre el cual nos estamos refiriendo. • Predicado: Es una Propiedad que indica que es lo que estamos definiendo. • Objeto: Puede ser un Recurso o un Literal que podría considerarse el valor de lo que acabamos de definir.
Definiciones
• Recurso
• Propiedad
• Literal
• Sentencia (tripleta, triple)
• Grafo: conjunto de sentencias
Definiciones - Recurso
• Tiene una URI asociada.
• Puede representar un documento, parte de él (p.e. un XPointer de un documento XML), colección de documentos (p.e. un sitio web), objetos externos a la web (p.e. una persona)
• También denominado nodo
• Comparable a un objeto en POO o un registro en BBDD
Definiciones - Propiedad
• Es siempre una URI
• Aspecto específico, característica, atributo, o relación utilizado para describir un recurso (p.e. título, autor, etc…)
• Comparable a atributo en POO o campo en BD
• También denominado predicado o relación binaria
Definiciones - Literal• Valor atómico. No tiene una URI asociada• Pueden ser:
– RDF plain literal (String combinado opcionalmente con un tag idiomático)<dc:creator>Carlos Tejo</dc:creator>
– RDF typed literal (String combinado con una URI que indica el tipo de dato)
<age rdf:datatype="http://www.w3.org/2001/XMLSchema#int">27</age>
– XML Literal (método de incluir XML sin intentar de interpretarlo)<dc:address parseType="Literal">
<b>Mr. Carlos Tejo</b><center>Fundación CTIC</center>
</dc:address>
Definiciones - Literal
Source image: http://www.w3.org/TR/2005/WD-swbp-skos-core-guide-20051102/
Definiciones – Sentencia
Asignación de valores a propiedades de un recurso
Sujeto (recurso, URI) +
Predicado (propiedad, URI) +
Objeto (recurso o literal, URI ó literal)
Definiciones – Grafo
Conjunto de sentencias interconectadas por las relaciones
Serialización de RDF
RDF/XML es el formato de intercambio estándar para RDF en la Web Semántica, aunque no es el único formato:
• N-Triples
• N3 es una notación independiente de RDF
• Turtle
Lee más: Syntax Comparison of N3 and Turtle
Notation 3 = N3
An readable language for data on the Web, by Tim Berners-Lee
This is a language which is a compact and readable alternative to RDF's XML syntax, but also is extended to allow greater expressiveness.
Lee más: Notation 3
Serialización de RDF
RDF/XML - Ejemplo<rdf:RDF
xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#
xmlns:dc=http://purl.org/dc/elements/1.1/
xmlns:geo=http://www.w3.org/2003/01/geo/wgs84_pos#>
<rdf:Description rdf:about="http://www.euitio.uniovi.es">
<geo:lat>43.35</geo:lat>
<geo:long>-5.85</geo:long>
</rdf:Description>
</rdf:RDF>
RDF N3 - Ejemplo@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix geo: <http://www. w3.org/2003/01/geo/wgs84_pos#> .
<http://www.uniovi.es> geo:lat "43.35".
<http://www.uniovi.es> geo:long "-5.85".
Herramientas
Validador de RDF del W3C
http://www.w3.org/RDF/Validator/
Práctica <RDF>
Escribir en la información sobre el curso desde el formato en XML a RDF
Práctica <RDF>
La URL del curso es:https://directo.uniovi.es/postgrado/3893
Carlos Tejo tiene como URIhttp://dayures.net/foaf.rdf#me
Práctica <RDF><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://dayures.net/practica/2008-99-CV-371#" xml:base="http://dayures.net/practica/2008-99-CV-371">
<rdf:Description rdf:about="https://directo.uniovi.es/postgrado/3893"> <rdf:type rdf:resource="#curso"/> <titulo>
Diseño centrado en el usuario en la Web 2.0 </titulo> <tiene-clase rdf:resource="#WebSemantica"/></rdf:Description>
Práctica <RDF><rdf:Description rdf:ID="WebSemantica"> <rdf:type rdf:resource="#clase"/> <titulo>Web semantica en MAYÚSCULAS</titulo> <tiempo-inicio>2008-07-03T09:00:00+02:00</tiempo-inicio> <lat>43.354903</lat> <long>-5.851306</long> <lugar>Edificio Valdés Salas, Universidad de Oviedo</lugar> <profesor> <persona rdf:about="http://dayures.net/foaf.rdf#me"> <nombre-apellidos>Carlos Tejo Alonso</nombre-apellidos> <homepage>http://dayures.net</homepage> </persona> </profesor> <estudiante> <persona> <nombre-apellidos>José Luis Cabrera</nombre-apellidos> <email rdf:resource="mailto:jose@example.org" /> </persona> </estudiante></rdf:Description></rdf:RDF>
Sumario• Presentaciones• Problemas de la Web actual• Introducción a la Web Semántica• Web de datos / objetos
HTML / UNICODE / URI / XML• Web de información / relaciones
Meta / RDF• Web de conocimiento / razonamiento
RDFS/OWL/SPARQL• Ejemplos
Dato, información y conocimiento• Dato: conjunto discreto de elementos sobre un hecho real que por sí solos son irrelevantes, que debe ser procesados para darle sentido.• Información: Conjunto organizado de datos procesados, que constituyen un mensaje sobre un determinado ente o fenómeno y que puede ser interpretado por cualquier persona.• Conocimiento: es una mezcla de experiencia, relaciones, información y know-how que sirve como marco para la obtener nuevo conocimiento, y es útil para tomar acciones.
Web del ConocimientoHay varias formas de representar el conocimiento
• Basadas en herencias
• Basadas en lógica
• Ontología [reusabilidad]
Y a partir del conocimiento se puede inferir (obtener) nuevo conocimiento mediante razonadores que usan técnicas como:
• Redes RETE
• Fordward chaining
• Backward chaining
Ontologías
Intento de formular un exhaustivo y riguroso esquema conceptual dentro de un dominio dado, con la finalidad de facilitar la comunicación y la compartición de la información entre diferentes sistemas
Ontologías
Conjunto de términos y relaciones entre ellos que describen un dominio de aplicación concreto
Lessons for Ontology Writers
http://blogs.talis.com/nodalities/2008/05/lessons-for-ontology-writers.php
Ontología SIOC
Permite describir formalmente comunidades on-line: listas de correo, wikis, weblogs…
Semantic web cake layer
RDFS
RDF Schema (RDFS)
Es un lenguaje primitivo que proporciona unos elementos básicos para para crear ontologías (vocabularios RDF).
Elemento RDFS - Básicos
rdfs:Class permite declarar recursos como clases para otros recursos.
rdfs:subClassOf permite definir jerarquías. Relaciona una clase con sus superclases.
rdf:property permite definir el subconjunto de recursos RDF que son propiedades.
rdfs:subPropertyOf permite definir jerarquías de propiedades.
Elemento RDFS - Básicos
rdfs:domain especifica el dominio de una propiedad P. Esto es, la clase de los recursos que aparecen como sujetos en las tripletas donde P es predicado.
rdfs:range especifica el rango de una propiedad P. Esto es, la clase de los recursos que aparecen como objetos en las tripletas donde P es predicado
objetopredicado
sujeto
dominio rango
RDFS - Ejemplo<rdf:Description rdf:ID="Person"> <rdf:type rdf:resource=http://www.w3.org/2000/01/rdf-schema#Class
<rdfs:label>Person</rdfs:label> <rdfs:comment>A person</rdfs:comment></rdf:Description>
<rdfs:Class rdf:ID="Person" rdfs:label="Person" rdfs:comment="A person"></rdfs:Class>
Lee más: http://xmlns.com/foaf/spec/
RDFS - Ejemplo
<rdf:Property rdf:about="http://xmlns.com/foaf/0.1/knows" rdfs:label="knows" rdfs:comment="A person known by this person."> <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/> <rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Person"/> </rdf:Property>
Lee más: http://xmlns.com/foaf/spec/
RDFS - Ejemplo<rdfs:Class
rdf:about="http://xmlns.com/foaf/0.1/OnlineGamingAccount"
rdfs:label="Online Gaming Account"
rdfs:comment="An online gaming account.">
<rdfs:subClassOf
rdf:resource="http://xmlns.com/foaf/0.1/OnlineAccount"/>
</rdfs:Class>
<rdf:Property
rdf:about="http://xmlns.com/foaf/0.1/msnChatID"
rdfs:label="MSN chat ID">
<rdfs:subPropertyOf
rdf:resource="http://xmlns.com/foaf/0.1/nick"/>
</rdf:Property>
Lee más: http://xmlns.com/foaf/spec/
Semantic web cake layer
OWL
OWL: Web Ontology Language
• Extiende RDFS para permitir la expresión de relaciones complejas entre diferentes clases RDFS, y mayor precisión en las restricciones de clases y de propiedades.
Es decir, permite:– expresar relaciones entre clases.
– expresar y restringir clases (rango, dominio).– expresar y restringir propiedades
(cardinalidad).
OWL Full, OWL DL y OWL Lite
Image source: http://dayures-it.blogspot.com/2008/03/rdfs-owl.html
OWL• Definición de Clases:
– intersectionOf, unionOf, complementOf.
• Características de Propiedades– inverseOf, FunctionalProperty, InverseFunctionalProperty,
TransitiveProperty, SymmetricProperty.
• Igualdad/desigualdad:– equivalentClass, equivalentProperty, sameIndividualAs,
differentFrom, allDifferent.
• Restricciones de Cardinalidad:– minCardinality, maxCardinality, cardinality
• Otros...
OWL - Properties<owl:Class rdf:about="#Country">
<rdfs:comment xml:lang="en">A country as defined at
http://www.geonames.org/countries</rdfs:comment>
<rdfs:label xml:lang="en">Country</rdfs:label> </owl:Class>
<owl:DatatypeProperty rdf:about="#postalCode">
<rdfs:domain rdf:resource="#Feature"/>
<rdfs:label xml:lang="en">postal code</rdfs:label>
<rdfs:range rdf:resource="&xsd;int"/>
</owl:DatatypeProperty>
<owl:ObjectProperty rdf:about="#wikipediaArticle">
<rdfs:domain rdf:resource="#Feature"/>
<rdfs:label xml:lang="en">wikipedia article</rdfs:label>
<rdfs:range rdf:resource="#WikipediaArticle"/> </owl:ObjectProperty>
Lee más: http://www.geonames.org/ontology/ontology_v2.0_Lite.rdf
OWL – FP, Cardinalidad<owl:ObjectProperty rdf:about="#hasMother"><rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> <rdfs:subPropertyOf rdf:resource="#hasParent"/> <rdfs:range rdf:resource="#Female"/> </owl:ObjectProperty>
<owl:Restriction> <owl:onProperty rdf:resource="#hasFather"/>
<owl:cardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int">1 </owl:cardinality></owl:Restriction>
<owl:Restriction> <owl:onProperty rdf:resource="#hasParent"/> <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#int">2 </owl:maxCardinality></owl:Restriction>
Lee más: http://www.owldl.com/ontologies/family.owl
OWL – Instancias RDF<family:Person rdf:ID="#Felipe“/>
<family:Person rdf:ID="#Sofia“/>
<family:Person rdf:ID="#JuanCarlos">
<family:hasAge
rdf:datatype="http://www.w3.org/2001/XMLSchema#int">70
</family:hasAge>
<family:hasSon rdf:resource="#Felipe"/>
<family:isMarriedTo rdf:resource="#Sofia"/>
</family:Person>
Como vemos, en un mismo archivo puede haber tanto la declaración de las clases mediante RDFS y OWL, como las diferentes instancias creadas mediante RDF.
Leer más: http://www.owldl.com/ontologies/family.owl
FOAFSource: http://xmlns.com/foaf/spec/images/foafspec.jpg
Práctica <RDFS, OWL>
Obtener las clases y propiedades que existen en la información sobre el curso que se puedan expresar en RDFS y en OWL
Práctica <RDFS, OWL>RDF Calendar
http://www.w3.org/2002/12/cal/ical#
RDF Geo Vocabulary
http://www.w3.org/2003/01/geo/wgs84_pos#
FOAF (Friend of a Friend) ontología para describir personas y sus relaciones
http://xmlns.com/foaf/0.1/
SWRC (Semantic Web for Research Communities) ontología para modelar comunidades académicas
http://swrc.ontoware.org/ontology#
Práctica <RDFS, OWL><owl:Class rdf:about="http://xmlns.com/foaf/0.1/Person"> <owl:equivalentClass rdf:resource="http://swrc.ontoware.org/ontology#Person"/></owl:Class> <owl:ObjectProperty rdf:ID="participant-as-lecturer"> <rdfs:label>Participant on an event as lecturer</rdfs:label> <rdfs:subPropertyOf rdf:resource="http://swrc.ontoware.org/ontology#givenBy"/> <rdfs:subPropertyOf rdf:resource="http://swrc.ontoware.org/ontology#participant"/></owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="participant-as-student"> <rdfs:label>Participant on an event as student</rdfs:label> <rdfs:subPropertyOf rdf:resource="http://swrc.ontoware.org/ontology#participant"/></owl:ObjectProperty>
Práctica <RDFS, OWL><swrc:Event rdf:about="https://directo.uniovi.es/postgrado/3893"> <swrc:hasPartEvent> <swrc:Event rdf:ID="WebSemantica"> <swrc:eventTitle>Web semántica en MAYÚCULAS</swrc:eventTitle> <cal:dtstart>2008-07-03T09:00:00+02:00</cal:dtstart> <geo:lat>43.354903</geo:lat> <geo:long>-5.851306</geo:long> <cal:location>Edificio Valdés Salas, Universidad de Oviedo</cal:location> <participant-as-teacher> <foaf:Person rdf:about="http://dayures.net/foaf.rdf#me"> <foaf:name>Carlos Tejo Alonso</foaf:name> <foaf:homepage>http://dayures.net</foaf:homepage> </foaf:Person> </participant-as-teacher> <participant-as-student> <foaf:Person> <foaf:name>José Luis Cabrera</foaf:name> <foaf:mbox rdf:resource="mailto:jose@example.org"/> </foaf:Person> </participant-as-student> </swrc:Event> </swrc:hasPartEvent></swrc:Event>
JenaFramework open-source para la construcción de aplicaciones Java relacionadas con la Web Semántica. Incluye:• API para RDF • API para OWL• Motor de consultas SPARQL• Almacenamiento en memoria y almacenamiento persistente. • Lectura y escritura RDF en RDF/XML, N3 y N-Triples• Proporciona varios razonadores internos y se pueden añadir otros mediante una interfaz DIG
Razonadores
Es una parte más cercana a la lógica o a la Inteligencia Artificial
Se suelen “pasar” al modelo para inferir más conocimiento
• Pellet
• Racer
• Fact++
• Kaon2
Razonadores – Inferir
Razonadores – Servicios
Chequear la consistencia de una ontología
Chequear la consistencia de las instancias con la ontología
Clasificación de la ontología (jerarquía de clases)
Obtener las instancias de una clase
Lee más: http://forge.morfeo-project.org/wiki/index.php/D_2.4_Experimento_sem%C3%A1ntico_para_definir_contextos_y_recursos
Inferencia
• Hechos: – Pablo Sebastian tiene el titulo del conservatorio
en piano– Definición de pianista. Una persona es pianista si
tiene el titulo del conservatorio de piano
• Razonamiento
Como Pablo Sebastian tiene el título y quienes tienen el título son pianistas entonces…
• Nuevo conocimiento inferido
Pablo Sebastian es pianista
Inferencia“Todos los ríos desembocan en un mar, en un océano o en un lago”“Si el curso de un río termina en una población, esa población está junto al mar, océano o lago donde desemboca”“Duero es un río”“Oporto es una población”“Atlántico es un océano”“Duero desemboca en el Atlántico”“El curso del Duero termina en Oporto”
Oporto está junto al Océano Atlántico
Ejemplo de inferencia<owl:SymmetricProperty rdf:ID="friendOf">
<rdfs:domain rdf:resource="#Human"/>
<rdfs:range rdf:resource="#Human"/>
</owl:SymmetricProperty>
Hechos:
Luis rdf:type Human
Marta rdf:type Human
Luis friendOf Marta
Un razonador puede inferir que:
Marta friendOf Luis
Práctica <Jena>
Cargar en Jena el modelo e inferir nuevo conocimiento. Mostrar por pantalla el modelo con el nuevo conocimiento inferido.
Práctica <Jena>public class MainPractica {public static void main(String[] args) throws IOException{OntModel model = ModelFactory.createOntologyModel(ProfileRegistry.OWL_DL_LANG);
model.read("file:///c:/curso/practica.owl");
model.write(System.out);}}
Semantic web cake layer
SPARQL
Diagrama
RDF Store
También denominado “Triple store”, “Base de datos semántica”…
Base de datos que contiene tripletas RDF
• Sesame http://www.openrdf.org/
• Virtuoso http://virtuoso.openlinksw.com/
• Jena http://jena.sourceforge.net/
Jena
ARQ: motor de consultas SPARQL de Jena
Lenguajes de recuperación
Conjunto de órdenes, operadores y estructuras que permite la consulta de fuentes y recursos de información electrónica.
Recuperar información de almacenes de datos
SQL (Structured Query Language)
Lenguaje de acceso (consulta/modificación) a bases de datos relacionales
Tabla Pedidos
Empresa Cantidad
Google 3
Microsoft 5
Yahoo 7
SELECT Empresa
FROM PedidosResultado
Microsoft
Yahoo
SPARQL
Lenguaje de consulta* dentro de la Web semántica [W3C]
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?nombre
FROM <http://example.org/foaf/aliceFoaf.rdf>
WHERE { ?x foaf:name ?nombre }
nombre
alice
# Default graph (stored at http://example.org/foaf/aliceFoaf)
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
<http://ali.org/foaf#me> foaf:name "Alice" .
<http://ali.org/foaf#me> foaf:mbox <mailto:alice@ali.org> .
* No solo consulta, CONSTRUCT
SPARQL - Dbpedia
Extraer información estructurada de la Wikipedia, para ponerla a disposición de la Web Semántica (p.e. uso de Infobox)
http://dbpedia.org/
Consultas
http://wiki.dbpedia.org/OnlineAccess
http://wikipedia.3ba.se/
http://dbpedia.org/sparql
Práctica <SPARQL>
Buscar el nombre de las personas que han participado en el curso
Práctica <SPARQL>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>PREFIX swrc: <http://swrc.ontoware.org/ontology#>PREFIX : <http://dayures.net/practica/2008-99-CV-371#>SELECT ?event ?person ?foafnameWHERE { ?event swrc:participant ?person. ?person foaf:name ?foafname}
Práctica <SPARQL+Jena>public class MainPractica {public static void main(String[] args) throws IOException{
OntModel model = ModelFactory.createOntologyModel(ProfileRegistry.OWL_DL_LANG);model.read("file:///c:/temp/practica.owl");
String qstr = "PREFIX foaf: <http://xmlns.com/foaf/0.1/>" +"PREFIX swrc: <http://swrc.ontoware.org/ontology#>" +"PREFIX : <http://dayures.net/practica/2008-99-CV-371#>“ +"SELECT ?event ?person ?foafname " +"WHERE { ?event swrc:participant ?person ." + " ?person foaf:name ?foafname}";
Query query = QueryFactory.create(qstr);QueryExecution qe = QueryExecutionFactory.create(query, model);ResultSet results = qe.execSelect();ResultSetFormatter.out(System.out, results);
}}
SPARUL (SPARQL/Update)Lenguaje para actualizar contenido en RDF. La especificación has sido desarrollada por HP y actualmente no es un standard reconocido.
PREFIX dc: <http://purl.org/dc/elements/1.1/>
DELETE DATA FROM <http://ex.org/libreria>
{ <http://ex.org/libro453> dc:title “El fontanero y su mujer" }
Lee más: Documento de especificación de SPARQL/Update
Protege
Herramienta para el desarrollo de ontologías
Gran extensibilidad por medio de plugins que la hacen compatible con muchas otras herramientas y lenguajes (DIG, Pellet, RDF… )
La herramienta se distribuye mediante licencia de código abierto.
API que permite generar código propio para ampliar o utilizar la herramienta original (creación de plugins).
Práctica <Protege>
Instalar Protegé
Cargar el modelo que se ha utilizado en la práctica
Sumario• Presentaciones• Problemas de la Web actual• Introducción a la Web Semántica• Web de datos / objetos
HTML / UNICODE / URI / XML• Web de información / relaciones
Meta / RDF• Web de conocimiento / razonamiento
RDFS/OWL/SPARQL• Ejemplos
Ejemplos
Autodiscovery
El autodescubrimiento (autodiscovery) es un medio para encontrar, de manera automática, recursos procesables por máquinas y que esten asociados a una página web concreta. El autodescubrimiento puede automatizarse porque el recurso deb de estar enlazado mediante un sistema bien definido (por ejemplo el tag <link> en xhtml)
<link rel="meta" type="application/rdf+xml" title="FOAF" href="foaf.rdf">
Autodiscovery
Un ejemplo de autodescubrimiento se produce en Firefox, ya que cuando entras a un blog que tiene una RSS asociada, aparece en la barra de navegación un icono naranja que muestra los canales disponibles.
Autodiscovery
Semantic Radar es un plugin para Firefox que detecta si la página que estás visitando tiene metadatos semánticos, segmentos de código que señalan información semánticamente significativa o relevante.
Hands-on - Semantic Radar
Instalar:https://addons.mozilla.org/es-ES/firefox/addon/3886
Comprobar:
http://captsolo.net/
FOAF (Friend Of A Friend)
• FOAF Vocabulary Specification
http://xmlns.com/foaf/spec/ [xhtml] OpenID
http://xmlns.com/foaf/spec/index.rdf [rdf]
FOAF (Friend Of A Friend)
FOAF (Friend Of A Friend)Describe relaciones para que puedan ser procesadas fácilmente por máquinas.
Hands-on
FOAF-o-maticCrea fácilmente tu propio foaf!
http://www.ldodds.com/foaf/foaf-a-matic
FOAF (Friend Of A Friend)
Describe relaciones para que puedan ser procesadas fácilmente por máquinas.
FoaF Explorer
http://xml.mfd-consult.dk/foaf/explorer/
Relaciones entre directivos de grandes empresas en EEUU (AFAIK, no FOAF) http://www.theyrule.net/
DOAP (Extensión de FOAF)Vocabulario XML/RDF para describir proyectos de software libre, usando la URL del proyecto como clave primaria [Utilizado por Apache]• Internacionalizar todas las descripciones relativas a un proyecto.• Enlazar con las descripción FOAF de participantes del proyecto• Enlace con:
– zona de descarga (con doap:download-page)– repositorio del proyecto (doap:Repository), indicando que tipo de
repositorio es (CVS, SVN, BitKeeper o Arch) y el usuario anónimo para acceder a él.
• Describe las distintas listas de correo que componen el proyecto (mailing-list), asi como el sistema de seguimiento de bugs (bug-database) del proyecto.
Lee más: http://usefulinc.com/doap/
DOAP (DOAP A Matic)
http://crschmidt.net/semweb/doapamatic/
Crear un fichero RDF con los datos introducidos usando el formato DOAP.
DOAP
Obtener información de:
http://sparql-wrapper.sourceforge.net/
DOAC (Extensión de FOAF)
Información sobre nuestra vida profesional [En estudio, desde Galicia]
Especificación:
http://ramonantonio.net/doac/0.1/
• Compatible con el
“Europass Curriculum”
• Se puede generar a
partir del archivo
FOAF+DOAC
Semantic Bible
Estudio de las sagradas escrituras usando tecnologías semánticas. Por ejemplo, tiene una base de conocimiento semántica en OWL sobre más de 600 nombres del Nueco Testamento, clasificando y describiendo sus propiedades.
Penthouse
Usa un vocabulario del ICRA, parte del “Instituto para la seguridad de la familia online”, organización para el desarrollo de una internet más segura
http://galleries.penthouse.com/labels.rdf
Buscar ontologías
What is SchemaWeb?
SchemaWeb is a directory of RDF schemas expressed in the RDFS, OWL and DAML+OIL schema languages.
http://www.schemaweb.info/
That's all folks!
Carlos Tejo AlonsoJulio 2008