1. Jose Emilio Labra Gayo - Universidad de Oviedo
Tecnologías de Web Semántica
Workshop (laboratorio)
Puno, Perú, 2015
Jose Emilio Labra Gayo
Universidad de Oviedo
2. Jose Emilio Labra Gayo - Universidad de Oviedo
Programa
Fundamentos Web
Web Semántica: Qué es y mapa de tecnologías
Descripción de recursos
Consultando la Web de Datos
Inferencias y Ontologías
Casos prácticos
3. Jose Emilio Labra Gayo - Universidad de Oviedo
Arquitectura de la Web
Fundamentos de la Web (slides)
Protocolo HTTP
Negociación de contenido
Ejercicios con curl
Ejemplos:
http://dbpedia.org/resource/Oviedo
4. Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
Fundamentos de la Web
3 pilares
Interacción: Protocolos HTTP, FTP, SMTP, etc.
Identificación: URIs
Formatos de representación: HTML, JSON, XML, ...
Identificación
URI
Formatos
HTML, JSON,...
Identificación
URI
Interacción
Protocolos
Formatos
HTML, JSON,...
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
Fichero texto
Imagen
Base
datos
Programa
Sistema ficheros
=
Gateway
Gateway
Gateway
Gateway
Otro
servidor
Cámara
Web
Base
datos
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 ?
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>
GET /index.html HTTP/1.1
Host: www.uniovi.es
User-Agent: Mozilla/5.0 …
Accept: text/html
Accept-language: es, en
Respuesta
10. Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
Mensajes de petición
Formato general:
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
<method>= GET,PUT,POST,DELETE,...
Ejemplos:
11. Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
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>
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. 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>
Representación
Recurso
Tiempo en Oviedo
17. Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
¿Qué se puede identificar con una URI?
Cualquier cosa concreta o abstracta
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
Ejemplo: Una página Web
Una página Web
Recurso de información
Formato HTML
18. Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
¿Qué se puede identificar con una URI?
Cualquier cosa concreta o abstracta
http://www.di.uniovi.es/~labra/images/asturias.jpg
identifica
Ejemplo: Una fotografía (recurso multimedia)
Una fotografía
Recurso de información
Formato JPG
19. Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
¿Qué se puede identificar con una URI?
Cualquier cosa concreta o abstracta
http://www.w3.org/People/Berners-Lee/card#i
identifica
Ejemplo: Una persona
Una persona (Tim Berners-Lee)
Recurso de no información
20. Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
¿Qué se puede identificar con una URI?
Cualquier cosa concreta o abstracta
http://xmlns.com/foaf/0.1/Person
identifica
Ejemplo: Conjunto de todas las personas
Conjunto de Personas (concepto abstracto)
Recurso de no información
21. Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
¿Qué se puede identificar con una URI?
Cualquier cosa concreta o abstracta
http://purl.org/dc/terms/creator
identifica
Ejemplo: Propiedad de creación
Propiedad de creación (concepto abstracto)
Recurso de no información
22. Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
¿Qué se puede identificar con una URI?
Cualquier cosa concreta o abstracta
http://purl.org/dc/terms
identifica
Ejemplo: Espacio de nombres
Espacio de nombres (concepto)
Recurso de no información
description
language
publisher
. . .
23. Jose Emilio Labra Gayo – http://www.di.uniovi.es/~labra
Formato de una URI
Más información: Especificación
http://tools.ietf.org/html/rfc3986
esquema : // autoridad camino ?consulta#fragmento
http :// ejemplo.com:8042/libros/castellano?autor=Cervantes #capitulo2
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: los caracteres deben codificarse. Significado especial de espacios, ?, /, etc.
Nota: las URNs identifican nombres únicos solamente. Sin protocolo
24. 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
Nota: las URNs identifican nombres únicos solamente. Sin protocolo
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
Ejemplos
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
RDF
Permite integración de información
Integración automática de los datos
Objetivo: Evitar ambigüedad en cadenas de texto
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix schema: <http://schema.org/> .
@prefix : <http://example.org/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
:pedido1 a schema:Order ;
schema:orderedItem [ :code "R23";
schema:name "Rotulador RX2";
rdfs:comment "Comprobad que escriben";
schema:orderQuantity 20 ] ;
schema:orderedItem [ :code "G56";
schema:name "Grapadora Lin";
rdfs:comment "Envuelta para regalo";
schema:orderQuantity 2
] .
32. 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
33. Jose Emilio Labra Gayo - Universidad de Oviedo
La Web Semántica
Web semántica Web de Datos
Datos se publican y se enlazan con otros datos
Objetivos:
Reutilizar
Automatizar
Integrar
Tim Berners Lee, inventor de la WWW
34. Jose Emilio Labra Gayo - Universidad de Oviedo
Hacia la web semántica
URIUnicode
XML
RDF
Query:
SPARQL
RDF Schema
Ontologies
OWL
Trust
Unifying Logic
Rules
RIF
Proof
Versión Original: Semantic web layer cake, Tim Berners Lee - 2001
Versión actual: 2015
Validation
SHACL
35. Jose Emilio Labra Gayo - Universidad de Oviedo
Descripción de recursos
RDF (slides)
Modelo RDF
Tripletas, literales, nodos anónimos, colecciones
Sintaxis: Turtle, RDF/XML
Herramienta online:
http://www.easyrdf.org/converter
http://rdfshape.herokuapp.com
36. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
RDF
Resource Description Framework (1998)
Descripción de recursos
Recurso = se identifica con URI
Se basa en tripletas
Sujeto Predicado Objeto
37. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Tripletas RDF
http://purl.org/dc/elements/1.1/creator
Sujeto
URI que Identifica Facultad Biología
Predicado
URI que identifica
propiedad de creación
Objeto
URI que identifica Juan
@prefix dc: <http://purl.org/dc/elements/1.1/ >.
@prefix uni: <http://uniovi.es/> .
uni:biologia dc:creator uni:juan .
http://uniovi.es/biology
http://uniovi.es/juan
RDF en notación Turtle
42. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Formatos RDF
Numerosos formatos y sintaxis:
N3
RDF/XML
N-Triples
Turtle
json-ld
RDFa
etc.
43. Jose Emilio Labra Gayo - Universidad de Oviedo
Aplicaciones RDF
Aplicaciones RDF (slides)
Conversión
Almacenamiento
Publicación: Portales de datos
Ejemplos: DBPedia
RDFa, Microdatos
Validación
44. Jose Emilio Labra Gayo - Universidad de Oviedo
DBPedia
Convertir datos de Wikipedia a RDF
Permite consultar Wikipedia como una base de datos
Ejemplo:
Wikipedia: http://es.wikipedia.org/wiki/Puno
DBpedia: http://dbpedia.org/resource/Puno
45. Jose Emilio Labra Gayo - Universidad de Oviedo
Consultando la Web de Datos
SPARQL (slides)
Simple Protocol and RDF Query Language
Lenguaje de consultas para la web semántica
Se basa en encaje de grafos
Extrae información de modelos RDF
Un protocolo
Define un mecanismo para invocar un servicio
También define un vocabulario para resultados
46. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
SPARQL
Ejemplo:
Buscar páginas cuyo autor sea un profesor
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix uni: <http://uniovi.es/> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
SELECT ?p ?c WHERE {
?p dc:creator ?c .
?c rdf:type uni:Profesor.
}
48. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
SPARQL en DBPedia
DBPedia permite realizar consultas SPARQL
Acceso online*:
http://yasgui.org/
Ejemplo: Buscar número de habitantes de Puno
* El terminal SPARQL es: http://dbpedia.org/sparql
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbp: <http://dbpedia.org/property/>
SELECT * WHERE {
dbr:Puno dbp:populationTotal ?poblacion
}
49. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Ejercicios
Personas que nacieron en Puno y fallecieron en España,
junto con su fecha de nacimiento y fallecimiento
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX dbr: <http://dbpedia.org/resource/>
SELECT * WHERE {
?persona dbp:birthPlace dbr:Puno .
?persona dbp:deathPlace dbr:Spain .
?persona dbp:dateOfBirth ?fechaNacimiento .
?persona dbp:dateOfDeath ?fechaFallecimiento
}
50. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Ejercicios
Ciudades que estén a una altura de más de 3000m
ordenadas por cantidad de población
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT * WHERE {
?ciudad dbp:elevationM ?elevacion .
?ciudad dbp:populationTotal ?poblacion .
?ciudad dbo:country ?Pais .
FILTER ( isNumeric(?elevacion) && isNumeric(?poblacion)) .
FILTER ( ?elevacion > 3000 )
} ORDER BY DESC(?poblacion)
51. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Ejercicios
Ciudades con una población similar a Puno que estén a
más de 2500m de altitud
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT * WHERE {
?ciudad dbp:elevationM ?elevacion .
?ciudad dbp:populationTotal ?poblacion .
?ciudad dbo:country ?Pais .
FILTER ( isNumeric(?elevacion) && isNumeric(?poblacion)) .
FILTER ( ?elevacion > 2500 )
FILTER ( ?poblacion > 100000 )
} ORDER BY DESC(?poblacion)
52. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Ejercicios
Futbolistas que hayan nacido en una ciudad que esté a
más de 2500m de altura
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?futbolista ?ciudad ?pais ?elevacion WHERE {
?ciudad dbp:elevationM ?elevacion .
?ciudad dbp:populationTotal ?poblacion .
?ciudad dbo:country ?pais .
?person dbp:birthPlace ?ciudad .
?person a dbo:SoccerPlayer .
?person rdfs:label ?futbolista .
FILTER (isNUmeric(?elevacion) && ?elevacion > 2500)
}
53. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Ejercicio
Devolver lista de países con el área y la población de cada
país
54. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Ontologías e inferencias
Una ontología = Formalización de un dominio (slides)
Utiliza: lenguajes formales
Para: definir vocabulario de un dominio
Compartir el significado entre aplicaciones
Inferir nuevo conocimiento a partir de definiciones
Otros términos relacionados:
Taxonomía: Clasficación jerárquica
Tesauro: Definiciones de términos
55. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Ejemplos de dominios
Biología
Medicina
Aviación
Animales
Comida
…etc
56. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Partes de una ontología
Define conjunto de términos (vocabulario)
Ejemplo:
Profesor, Persona, Asignatura
Propiedades entre dichos términos:
Ejemplo: daClaseDe, tieneEsdiante, ...
Descrito en un lenguaje formal
x(Profesor(x) Persona(x) y (daClaseDe(x,y) Asignatura(y))
Lenguaje natural
OWL (sintaxis funcional)
"un profesor es una persona que da clase de una asignatura"
Lógica de predicados
Profesor ≡ Persona daClaseDe Asignatura
57. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
RDF Schema
Añade una serie de clases y propiedades a RDF
rdfs:Class, rdfs:Property, Resource,…
type, subClassOf, subPropertyOf,…
range, domain,…
Permite realizar inferencias sencillas
rdf:type
uni:Profesor
rdfs:subClassOf
uni:Persona
uni:juan
rdf:type
58. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
OWL
OWL = Web Ontology Language
Desarrollado a partir de iniciativa del W3c
Antecedentes: DAML, OIL
Se basa en lógica descriptiva
2004 - OWL 1.0 recomendación W3c
2009 - OWL 2.0 recomendación W3c
Expresividad vs Complejidad
59. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Editor de ontologías
Protégé: Editor de ontologías OWL
http://protege.stanford.edu/
Tiene 2 versiones:
WebProtégé
Desktop
60. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Mini-tutorial
Creación de clases
Creación de individuos
Creación de propiedades de objetos
Creación de propiedades de tipos de datos
Activación de inferencia
Chequeo de inconsistencias
...
61. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Creación de clases
Declarar una clase Persona y varias
instancias
Persona owl:Thing
Persona(federico)
Persona(juan)
Declarar la clase Asignatura y
varias instancias
Asignatura owl:Thing
Asignatura(logica)
Asignatura(algebra)
Asignatura(programacion)
62. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Declaración de subclases
Declarar las clases Profesor y Alumno como subclases de
Persona
Profesor Persona
Alumno Persona
Profesor(jose)
Profesor(dani)
Alumno(miguel)
Alumno(ruben)
63. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Declaración propiedades de Objetos
Declarar la propiedad “daClaseDe”
daClaseDe owl:ObjectProperty
Domain(deClaseDe, Profesor)
Range(daClaseDe,Asignatura)
daClaseDe(jose,algebra)
daClaseDe(dani,algebra)
Declarar la propiedad “estaMatriculadoEn”
estaMatriculadoEn owl:ObjectProperty
Domain(estaMatriculadoEn,Alumno)
Range(estaMatriculadoEn,Asignatura)
estaMatriculadoEn(miguel,algebra)
estaMatriculadoEn(juan,logica)
64. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Declaración Propiedades de datos
Declarar las propiedades “nombre”, “apellidos”, “edad”
nombre : Persona xsd:string
edad : Persona xsd:integer
edad(jose,38)
edad(dani,30)
nombre(jose,”Jose Luis)
. . .
65. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Cuantificador existencial
Padre Persona tieneHijo Persona
x(Padre(x) (Persona(x) y(tieneHijo(x,y) Persona(y)))
tieneHijo(Jose,Sergio)
Persona(Jose)
ReciénNacido Persona
ReciénNacido(Sergio)
Un Padre es una persona que tiene un hijo que es una persona
66. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Clasificación
"Orgulloso es una persona que tiene un hijo recién nacido"
Definir:
Orgulloso Persona tieneHijo ReciénNacido
Clasificar ontologías:
Orgulloso Padre
Buscar orgulloso:
Orgulloso(jose)
67. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Detección de inconsistencia
Definir ReciénNacidoOrgulloso
Añadir:
Padre ReciénNacido
RecienNacidoOrgulloso Orgulloso
RecienNacidoOrgulloso ReciénNacido
RecienNacidoOrgulloso = Insatisfacible
RecienNacidoOrgulloso(kiko)
Kiko = inconsistente
68. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Otras posibilidades
Propiedades de propiedades: inversa, simétrica, transitiva, etc.
Cuantificador universal
Cadenas de propiedades
Propiedades funcionales y funcionales inversas
Enumeraciones
etc.
Otros tutoriales recomendados:
OWL and SWRL Tutorial:
http://dior.ics.muni.cz/~makub/owl/
69. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
SPARQL + Inferencia
Combinar SPARQL e inferencia
Ejemplo:
Páginas cuyo autor sea una persona
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix uni: <http://uniovi.es/> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
SELECT ?p ?c WHERE {
?p dc:creator ?c .
?p rdf:type uni:Persona.
}
71. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Datos estadísticos
Tecnologías para representar datos estadísticos
Objetivo: Interoperabilidad
SDMX (Statistical Data and Metadata eXchange)
Estándar internacional de intercambio de datos estadísticos
http://sdmx.org/
RDF Data Cube: Vocabulario RDF para representar datos
estadísticos
72. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
RDF Data Cube
Vocabulario RDF
Conceptos
qb:Observation: Una observación concreta
qb:Slice: Un grupo de observaciones
qb:DataSet: Un conjunto de datos (suele contener varios slices)
qb:DataStructureDefinition: Estructura de los datos
73. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Ejercicio
Representar la siguiente tabla de observaciones:
País Población Área
Perú 31 1285000
España 46 505000
México 121 1972000
75. Jose Emilio Labra Gayo, http://www.di.uniovi.es/~labra
Ejercicio
Crear una consulta SPARQL para devolver lista de países
junto con las áreas y las poblaciones de cada país
76. Jose Emilio Labra Gayo - Universidad de Oviedo
Casos Prácticos
DBPedia
IMDB
BCN
WebIndex
77. Jose Emilio Labra Gayo - Universidad de Oviedo
Linked Data Statistics
Eurostats: http://eurostat.linked-statistics.org/
Statistical Linked Dataspaces: http://270a.info/
Linked Statistical Dimensions:
http://lsd-dimensions.org/