1. Tecnologías de Web Semántica
Tutorial (laboratorio)
Trujillo, Perú, 2014
Jose Emilio Labra Gayo - Universidad de Oviedo
Jose Emilio Labra Gayo
Universidad de Oviedo
2. Jose Emilio Labra Gayo - Universidad de Oviedo
Programa
Web Semántica: Qué es y mapa de tecnologías
Fundamentos Web
Descripción de recursos
Consultando la Web de Datos
Inferencias y Ontologías
Casos prácticos
3. Arquitectura de la Web
Jose Emilio Labra Gayo - Universidad de Oviedo
Fundamentos de la Web (slides)
Protocolo HTTP
Negociación de contenido
Ejercicios con curl
Ejemplos:
http://dbpedia.org/resource/Oviedo
4. Fundamentos de la Web
3 pilares
Interacción: Protocolos HTTP, FTP, SMTP, etc.
Identificación: URIs
Formatos de representación: HTML, JSON, XML, ...
Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
Identificación
URI
Formatos
HTML, JSON,...
Interacción
Protocolos
WWW
5. Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
Esquema conceptual de HTTP
Usuario Navegador
Cliente
Servidor
URI
Representación
WWW
HTTP
Petición
Respuesta
6. Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
Recursos
La Web está formada por recursos
Recurso = cualquier fuente de contenido Web
Se identifican mediante URIs
Diversas Posibilidades:
Estáticos: almacenados en Sistema de Ficheros
Páginas HTML
Otros formatos multimedia: Imágenes, vídeos, sonidos, ...
Dinámicos: bajo demanda
Generado a partir de bases de datos
Integrando información de otros servicios Web
Información online
NOTA: La mayoría de la información disponible en la Web se
genera dinámicamente
7. Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
Recursos
Navegador
Cliente
Servidor
URI
WWW
HTTP
Sistema ficheros
=
Fichero texto
Imagen
Base
datos
Programa
Gateway
Gateway
Gateway
Gateway
Base
datos
Otro
servidor
Cámara
Web
Informac.
Bursátil
Control
Robot
8. Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
Tipos de recursos
Los servidores asocian un tipo a cada recurso
Tipos MIME (Multipurpose Internet Mail Extensions)
Ejemplos:
text/plain, text/html, application/xml, image/jpg,...
El cliente decide qué hacer con dichos tipos
Usuario
Navegador
Cliente
Servidor
Petición
Respuesta
WWW
HTTP
Content-type: image/jpeg
Content-length: 8854
9. Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
HTTP: Formato de mensajes
Modo texto:
línea inicial
cabecera del mensaje*
cuerpo del mensaje ?
GET /index.html HTTP/1.1
Host: www.uniovi.es
User-Agent: Mozilla/5.0 …
Accept: text/html
Accept-language: es, en
Navegador
Cliente
Servidor
Petición
WWW
HTTP
HTTP/1.1 200 OK
Date: Thu, 12 Oct 2013 09:36:05 GMT
Server: Apache
Content-length: 80554
Content-type: text/html; charset=utf-8
<html>
<head>
<title>Curso XML</title>
<head>
...
</html>
Respuesta
10. Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
Mensajes de petición
Formato general:
<method>= GET,PUT,POST,DELETE,...
POST /admin HTTP/1.1
Host: www.uniovi.es
User-Agent: Mozilla/5.0 …
Accept: text/html
Accept-language: es, en
...datos POST...
<method> <url> <version>
<headers> *
<entity-body>
GET /index.html HTTP/1.1
Host: www.uniovi.es
User-Agent: Mozilla/5.0 …
Accept: text/html
Accept-language: es, en
<headers> = parejas de la forma:
nombre1: valor1
nombre2: valor2
Ejemplos:
11. HTTP/1.1 200 OK
Date: Thu, 12 Oct 2013 09:36:05 GMT
Server: Apache
Content-length: 80554
Content-type: text/html; charset=utf-8
<html>
<head>
<title>Curso XML</title>
<head>
...
</html>
Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
Mensajes de respuesta
Formato general:
HTTP/1.1 404 Not found
Content-length: 0
<version> <status> <reason-phrase>
<headers> *
<entity-body>
<Status>
Códigos estándar:
2**: Variaciones de OK
3**: redirecciones
4**: Problemas del cliente
5**: problemas del servidor
Ejemplos:
12. Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
Utilidades
Diversas utilidades
curl http://curl.haxx.se/
Hurl http://hurl.it
Redbot http://redbot.org
Web-sniffer: http://web-sniffer.net/
RestClient http://code.google.com/p/rest-client/
curl http://cursoxml.herokuapp.com
Algunas opciones:
-v (verbose)
-H (cabeceras)
-X (verbos POST, PUT, DELETE,...)
14. Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
Métodos HTTP
GET: Solicita una representación de un recurso
PUT: Crear un recurso
POST: Envía datos para que un recurso los procese
Puede implicar la creación/actualización de recursos
DELETE: Elimina un recurso
Otros
HEAD: Similar a GET, pero obtiene únicamente la cabecera
TRACE: Pide la solicitud que se envió al servidor
OPTIONS: Solicita los métodos que soporta el servidor
CONNECT: Convierte la petición en un túnel TCP/IP
Facilita la comunicación a través de SSL
16. Representación
Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
Recursos
Recurso = Unidad básica de la Web
Cualquier cosa que se identifique con una URI
URI ≠ Recurso ≠ Representación
URI
http://tiempo.com/Asturias/Oviedo
Metadatos:
Content-type: text/html
Datos:
<html>
<head><title>Tiempo</title></head>
<body>
<h1>Tiempo en Oviedo</h1>
<p>Nubes y claros</p>
</body>
</html>
Tiempo en Oviedo
Recurso
17. ¿Qué se puede identificar con una URI?
Cualquier cosa concreta o abstracta
Ejemplo: Una página Web
Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
http://www.uniovi.es
<!DOCTYPE html>
<html>
<head>
<title>Universidad de Oviedo</title>
</head>
<body>
<h1>Universidad de Oviedo</h1>
<p>Fundada en el año 1608 en
<a href="http://www.wikipedia.org/Oviedo">
Oviedo</a></p>
. . .
</body>
</html>
identifica
Una página Web
Recurso de información
Formato HTML
18. ¿Qué se puede identificar con una URI?
Cualquier cosa concreta o abstracta
Ejemplo: Una fotografía (recurso multimedia)
http://www.di.uniovi.es/~labra/images/asturias.jpg
Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
identifica
Una fotografía
Recurso de información
Formato JPG
19. ¿Qué se puede identificar con una URI?
Cualquier cosa concreta o abstracta
Ejemplo: Una persona
http://www.w3.org/People/Berners-Lee/card#i
Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
identifica
Una persona (Tim Berners-Lee)
Recurso de no información
20. ¿Qué se puede identificar con una URI?
Cualquier cosa concreta o abstracta
Ejemplo: Conjunto de todas las personas
Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
http://xmlns.com/foaf/0.1/Person
identifica
Conjunto de Personas (concepto abstracto)
Recurso de no información
21. ¿Qué se puede identificar con una URI?
Cualquier cosa concreta o abstracta
Ejemplo: Propiedad de creación
Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
http://purl.org/dc/terms/creator
identifica
Propiedad de creación (concepto abstracto)
Recurso de no información
22. ¿Qué se puede identificar con una URI?
Cualquier cosa concreta o abstracta
Ejemplo: Espacio de nombres
Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
http://purl.org/dc/terms
identifica
description
publisher
language
. . .
Espacio de nombres (concepto)
Recurso de no información
23. http :// ejemplo.com:8042 /libros/castellano ?autor=Cervantes #capitulo2
Nota: los caracteres deben codificarse. Significado especial de espacios, ?, /, etc.
Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
Formato de una URI
esquema : // autoridad camino ?consulta #fragmento
Más información: Especificación
http://tools.ietf.org/html/rfc3986
Otros ejemplos de URIs:
ftp://ftp.is.co.za/rfc/rfc1808.txt
mailto:pepe@ejemplo.com
telnet://192.0.2.16:80/
urn:oasis:names:specification:docbook:dtd:xml:4.1.2
Nota: las URNs identifican nombres únicos solamente. Sin protocolo
24. Ejemplos
Nota: las URNs identifican nombres únicos solamente. Sin protocolo
Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
Partes de una URI
Más información: Especificación
http://tools.ietf.org/html/rfc3986
esquema autoridad
//usuario@host:port
path querystring fragment
http:
http:
http:
ftp:
mailto:
urn:
//localhost:3000
//google.com
//uniovi.es/
//ftp.is.co.za
pepe@uni.es
isbn:045125021
/about
/
/course/view.php
/rdf/rfc1808.txt
?a=1&b=2
?q=pepe
?id=4590
?subject=Curso
#historia
http://localhost:3000/about?a=1&b=2#historia
http://google.com/?q=pepe
http://uniovi.es/course/view.php?id=4590
ftp://ftp.is.co.za/rdf/rfc1808.txt
mailto:pepe@uni.es?subject=curso
urn:isbn:045125021
25. Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
Dereferenciación
Dereferenciar una URI = Acceder al contenido de una URI
Obtener una representación del recurso identificado por la URI
Habitualmente se utiliza protocolo HTTP
Pueden existir diferentes representaciones
La representación puede incluir enlaces a otras URIs con
información relacionada
Principio: Follow your nose (“Sigue tu instinto”)
A partir de una URI, se puede ir encontrando más
información y más recursos relacionados fácilmente y de
casualidad (serendipia)
26. Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
Estabilidad de las URIs
URIs = pilar fundamental de cualquier aplicación Web
Objetivo: Esquema de URIs estable
Lema: Cool URIs don’t change
Modificar una URI puede romper aplicaciones existentes
Evitar URIs que dependen de detalles de implementación
Ejemplo: http://156.35.41.34:8080/pagina.php
Importancia de nombres adecuados para URIs
http://www.w3.org/Provider/Style/URI
27. Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
Formatos de Representación
28. Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
Formatos de representación
En la Web, el formato más habitual es HTML
Existen muchos más formatos: XML, JSON, RDF, PNG, …
Un recurso puede tener diferentes tipos de representación
Cada tipo de representación sirve para un propósito
29. Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
HTML
Tipo de representación más popular en la Web
Objetivo: representar hipertexto
Ejemplo:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ejemplo</title>
</head>
<body>
<h1>Lista de enlaces</h1>
<p>Mis enlaces preferidos</p>
<ul>
<li><a href="http://www.wikipedia.org">Wikipedia</a>
<li><a href="http://www.w3c.org">Consorcio W3c</a>
</ul>
</body>
</html>
30. Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
XML
Facilita intercambio de información
Objetivo: procesamiento automático
Comercio electrónico
<?xml version="1.0">
<pedido>
<producto codigo="R23">
<nombre>Rotulador RX2</nombre>
<cantidad>20</cantidad>
<comentarios>Comprobad que escriben</comentarios>
</producto>
<producto codigo="G56">
<nombre>Grapadora Lin</nombre>
<cantidad>2</cantidad>
<comentarios>Envuelta para regalo</comentarios>
</producto>
</pedido>
31. Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
Tipos de representación
Los tipos de representación se identifican con MIME
MIME (Multipurpose Internet Mail Extensions)
Identificar el tipo de contenido (Cabecera Content-type)
Formato tipo/subtipo
Ejemplos:
text/html: Página Web en formato HTML
text/xml, application/xml : Documento XML
application/json: Documento JSON
application/pdf: Fichero PDF
image/jpeg: Imagen JPEG
application/xhtml+xml: Documento XHTML
application/rdf+xml: Documento RDF
text/turtle: Documento Turtle
. . .
Lista oficial: http://www.iana.org/assignments/media-types
32. Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
Funcionamiento de la Web
2 computadores conceptuales: Cliente y Servidor
La representación puede calcularse dinámicamente
Computación en Cliente
Computación en servidor
Usuario Navegador
Cliente
Servidor
URI
Representación
WWW
HTTP
33. La Web Semántica
Web semántica Web de Datos
Visión donde los datos se publican y se enlazan
con otros datos
Objetivos:
Jose Emilio Labra Gayo - Universidad de Oviedo
Reutilizar
Automatizar
Integrar
Tim Berners Lee, inventor de la WWW
34. Hacia la web semántica
Proof
Jose Emilio Labra Gayo - Universidad de Oviedo
Ontologies
OWL
RDF
XML
Query:
SPARQL
RDF Schema
Unicode URI
Trust
Unifying Logic
Rules
RIF
Semantic web layer cake, by Tim Berners Lee
35. Descripción de recursos
Jose Emilio Labra Gayo - Universidad de Oviedo
RDF (slides)
Modelo RDF
Tripletas, literales, nodos anónimos, colecciones
Sintaxis: Turtle, RDF/XML
http://www.easyrdf.org/converter
Aplicaciones RDF (slides)
Almacenamiento RDF
Publicación:
RDFa, Microdatos
Validación
36. Consultando la Web de Datos
Jose Emilio Labra Gayo - Universidad de Oviedo
SPARQL (slides)
37. Inferencias y Ontologías
Jose Emilio Labra Gayo - Universidad de Oviedo
Inferencias y ontologías (slides)
RDF Schema
OWL
Razonadores
Pellet
Editores de ontologías
Protégé
38. Casos Prácticos
Jose Emilio Labra Gayo - Universidad de Oviedo
DBPedia
IMDB
BCN
WebIndex