OWL

Anuncio
II. Razonamiento con conocimiento preciso
Tema 4
Web Semántica y Web de Datos (Linked Data)
Sistemas Basados en el Conocimiento
Grado en Ingeniería Informática
–1–
Razonamiento con conocimiento preciso
Tema 2. Sistemas Basados en Reglas
Tema 3. Repaso de Lógica
Tema 4. Web Semántica y Web de Datos
–2–
Referencias
• W3C Semantic Web Activity
(http://www.w3.org/2001/sw/)
• Foundations of Semantic Web Technologies.
P. Hitzler, M. Krötzsch, S. Rudolph. CRC Press.
2009.
• A Semantic Web Primer.
Grigoris Antoniou y Frank van Harmelen. The MIT
Press
• Semantic Web: Concepts, Technologies and
Applications.
K. Breitman, M. A. Casanova, W. Truszkowski.
Springer. 2007
–3–
Índice
•
•
•
•
•
Introducción a la Web Semántica
Lenguajes de Ontologías
Consulta de información en la Web Semántica
Herramientas y Aplicaciones
La Web de Datos (Linked Data)
–4–
Índice
• La Web Semántica
• Lenguajes de Ontologías
– RDF
– RDF Schema
– OWL
• Consulta de información en la Web Semántica
– SPARQL
• Herramientas y Aplicaciones
• La Web de Datos (Linked Data)
–5–
La Web Semántica
• Visión:
“the idea of having data on the Web defined and linked in a
way that it can be used by machines not just for display
purposes, but for automation, integration and reuse of data
across various applications”
[W3C Semantic Web Activity (http://www.w3.org/2001/sw/)]
• Para ello
– Lenguajes para representar conocimiento (ontologías)
• RDF, RDF(S), OWL
– Lenguajes de consulta
• SPARQL
– Herramientas
–6–
Índice
• La Web Semántica
• Lenguajes de Ontologías
– RDF
– RDF Schema
– OWL
• Consulta de información en la Web Semántica
– SPARQL
• Herramientas y Aplicaciones
• La Web de Datos (Linked Data)
–7–
RDF
• Resource Description Framework
• Recomendación del W3C
– http://www.w3.org/RDF/
– http://www.w3.org/TR/rdf-primer/
• Modelo de datos equivalente a una red semántica
– Multi-grafo dirigido etiquetado
• Sentencia = tripla (Sujeto, Predicado, Objeto)
– Sujeto: recurso (URI) o “blank node”
– Predicado/Propiedad: relación binaria (URI)
– Objeto: URI, literal o “blank node”
–8–
RDF: Ejemplo
–9–
RDF: Serialización. Turtle
<http://www.example.org/index.html> <http://purl.org/dc/elements/1.1/creator> <http://www.example.org/staffid/85740> .
<http://www.example.org/index.html> <http://www.example.org/terms/creation-date> "August 16, 1999" .
<http://www.example.org/index.html> <http://purl.org/dc/elements/1.1/language> "en" .
O más compacto:
@prefix ex: <http://www.example.org/>.
@prefix exstaff: <http://www.example.org/staffid/>.
@prefix exterms: <http://www.example.org/terms/>.
@prefix dc: <http://purl.org/dc/elements/1.1/>.
ex:index.html dc:creator exstaff:85740 .
ex:index.html exterms:creation-date "August 16, 1999" .
ex:index.html dc:language "en" .
O
ex:index.html dc:creator exstaff:85740 ;
exterms:creation-date "August 16, 1999" ;
dc:language "en" .
Abreviaciones
–
–
–
–
–
–
@prefix
; (compartir sujeto)
, (compartir sujeto-pred)
a (rdf:type)
[] (blank nodes)
() (listas)
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
– 10 –
RDF: Sintaxis XML. Ejemplo
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:exterms="http://www.example.org/terms/">
<rdf:Description rdf:about="http://www.example.org/index.html">
<exterms:creation-date>August 16, 1999</exterms:creation-date>
</rdf:Description>
<rdf:Description rdf:about="http://www.example.org/index.html">
<dc:language>en</dc:language>
</rdf:Description>
<rdf:Description rdf:about="http://www.example.org/index.html">
<dc:creator rdf:resource="http://www.example.org/staffid/85740"/>
</rdf:Description>
</rdf:RDF>
<rdf:Description rdf:about="http://www.example.org/index.html">
<exterms:creation-date>August 16, 1999</exterms:creation-date>
<dc:language>en</dc:language>
<dc:creator rdf:resource="http://www.example.org/staffid/85740"/>
</rdf:Description>
– 11 –
RDF: Nodos Anónimos (Blank Nodes)
•
•
Nodos sin URI (no es necesaria)
Son independientes entre sí
exstaff:85740
_:johnaddress
_:johnaddress
_:johnaddress
_:johnaddress
Otra forma:
exterms:address
exterms:street
exterms:city
exterms:state
exterms:postalCode
_:johnaddress .
"1501 Grant Avenue" .
"Bedford" .
"Massachusetts" .
"01730" .
exstaff:85740
exterms:address [
exterms:street
"1501 Grant Avenue" ;
exterms:city
"Bedford";
exterms:state
"Massachusetts";
exterms:postalCode "01730" ].
– 12 –
RDF: Literales
• Tipos de datos
– Único predefinido es rdf:XMLLiteral
– Se recomienda usar XML Schema datatypes
(xsd=http://www.w3.org/2001/XMLSchema#):
• xsd:string, xsd:integer, xsd:date,…
• Ejemplo
ex:index.html exterms:creation-date "1999-08-16"^^xsd:date .
<creation-date rdf:datatype="http://www.w3.org/2001/XMLSchema#date">
1999-08-16
</creation-date>
– 13 –
RDF: Contenedores y Colecciones
• Contenedores
–
–
–
–
–
rdf:Bag: el orden no importa. Puede contener duplicados.
rdf:Seq: el orden es importante
rdf:Alt: alternativas
propiedades rdf:_1, rdf:_2, rdf:_3, …
Observación: los contenedores son “abiertos”
• Colecciones
– Permiten representar colecciones “cerradas”
– rdf:List, rdf:first ,rdf:rest, rdf:nil
– 14 –
RDF: Reificación
• Mecanismo para convertir una sentencia en un
recurso
• Vocabulario
– Sentencia: rdf:Statement
– rdf:subject, rdf:predicate, rdf:object
• Ejemplo: (ex:index.html dc:creator exstaff:85740 .)
ex:triple1
ex:triple1
ex:triple1
ex:triple1
rdf:type
rdf:subject
rdf:predicate
rdf:object
rdf:Statement .
ex:index.html .
dc:creator .
exstaff:85740 .
ex:triple1
rdf:type
rdf:subject
rdf:predicate
rdf:object
rdf:Statement ;
ex:index.html ;
dc:creator ;
exstaff:85740 .
– 15 –
Índice
• Introducción a la Web Semántica
• Lenguajes de Ontologías
– RDF
– RDF Schema
– OWL
• Consulta de información en la Web Semántica
– SPARQL
• Herramientas y Aplicaciones
• La Web de Datos (Linked Data)
– 16 –
RDF Schema (RDFS)
• En RDF hablamos de objetos individuales (recursos)
• Nos gustaría razonar sobre clases que definen tipos
de objetos
– Por ejemplo, para evitar sentencias como (válidas en RDF):
• SBC es impartida por SBC (restricción de rango)
ex:SBC ex:impartida_por ex:SBC.
• Casa es impartida por Juan (restricción de domino)
ex:Casa ex:impartida_por ex:Juan.
• Solución
– Clases, relaciones, restricciones de dominio y rango, …
– Ejemplo:
• Las asignaturas deben ser impartidas por miembros del
personal académico
– 17 –
RDF Schema (RDFS)
• Recomendación del W3C
– http://www.w3.org/TR/rdf-schema/
• RDFS extiende RDF con nuevas primitivas
• Define a un lenguaje básico para describir ontologías
–
–
–
–
Fija la semántica de “subclase de”
Jerarquías de clases y propiedades
Herencia
Restricciones de dominio y rango
– 18 –
RDF Schema (RDFS)
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
• Clases (rdfs:Class) e Instancias (rdf:type)
Definición de Clases
ex:Asignatura rdf:type <http://www.w3.org/2000/01/rdfschema#Class>
O
ex:Asignatura rdf:type rdfs:Class .
Instancias
ex:IC rdf:type ex:Asignatura.
• Jerarquías de clases (rdfs:subClassOf)
ex:Catedratico rdfs:subClassOf ex:PersonalDocente.
– 19 –
RDF Schema (RDFS)
• Propiedades (rdf:Property)
ex:impartida_por rdf:type rdf:Property .
• Restricciones propiedades (rdfs:domain, rdfs:range)
ex:impartida_por rdfs:domain ex:Asignatura;
rdfs:range ex:PersonalDocente.
• Jerarquías de propiedades (rdfs:subPropertyOf)
ex:impartida_por rdfs:domain ex:Asignatura;
rdfs:range ex:PersonalDocente;
rdfs:subPropertyOf ex:involucra.
– 20 –
RDF Schema (RDFS)
Clase
involucra
domain
propiedad
Asignatura
domain
range
Personal
subPropertyOf
range
impartida_por
subClassOf
Contratado
Doctor
type
RDF Schema
type
RDF
IC
impartida_por
Alberto
Fdez
– 21 –
subClassOf
Personal
Docente
subClassOf
Funcionario
subClassOf
subClassOf
Profesor
Titular
Catedrático
RDF Schema (RDFS)
• Primitivas
– Clases
• rdfs:Resource, rdfs:Literal, rdf:XMLLiteral, rdfs:Class, rdf:Property,
rdfs:Datatype
– Propiedades
• rdf:type, rdfs:subClassOf, rdf:subPropertyOf, rdfs:domain,
rdfs:range, rdfs:label, rdfs:comment
– Contenedores
• rdfs:Container, rdf:Bag, rdf:Seq, rdf:Alt,
rdfs:ContainerMembershipProperty, rdfs:member
– Colecciones
• rdf:List, rdf:first, rdf:rest, rdf:nil
– Reificación
• rdf:Statement, rdf:predicate, rdf:subject, rdf:object
– Otros
• rdfs:seeAlso, rdfs:isDefinedBy, rdf:value
– 22 –
RDF Schema (RDFS)
posee
domain
range
Persona
Pez
type
type
type
Wendy
posee
Wanda
Violación de la restricción: El rango de posee es Pez.
O No hay inconsistencia: Wanda es un pez!
– 23 –
Sirena?
RDFS
• Limitaciones de RDFS
– Básicamente permite la organización de vocabularios en
jerarquías
– Ámbito local de las propiedades
• Las restricciones de rango no se pueden aplicar a algunas
clases solamente
– No permite expresar:
• Clases disjuntas
– Ejemplo: masculino y femenino
• Combinación booleana de clases
– Ejemplo: Persona = Hombre ∪ Mujer
• Restricciones de cardinalidad
• Características especiales de las propiedades
– Transitiva, simétrica, inversa de, …
– 24 –
Índice
• Introducción a la Web Semántica
• Lenguajes de Ontologías
– RDF
– RDF Schema
– OWL
• Consulta de información en la Web Semántica
– SPARQL
• Herramientas y Aplicaciones
• La Web de Datos (Linked Data)
– 25 –
OWL
• Web Ontology Language
• Recomendación del W3C
– http://www.w3.org/2004/OWL/
– http://www.w3.org/TR/owl-guide/
• Es un lenguaje para describir ontologías
• Se construye sobre RDFS, añadiendo constructores
para aumentar la expresividad
@prefix owl: <http://www.w3.org/2002/07/owl#>
– 26 –
OWL
• Cabecera
–
–
–
–
–
–
–
–
owl:Ontology
owl:imports: URI ontología
owl:versionInfo
owl:priorVersion: URI ontología
owl:backwardCompatibleWith
owl:incompatibleWith: no es compatible hacia atrás
owl:DeprecatedClass
owl:DeprecatedProperty
<owl:Ontology rdf:about="">
<owl:versionInfo>v 1.1</owl:versionInfo>
<rdfs:comment>An example ontology</rdfs:comment>
<owl:imports rdf:resource="http://www.example.org/foo"/>
<owl:backwardCompatibleWith
rdf:resource="http://www.example.org/vehicle-1.0"/>
<owl:priorVersion rdf:resource="http://www.example.org/veh-1.0"/>
</owl:Ontology>
– 27 –
OWL
• Clases
– owl:Class
• owl:Class es subclase de rdfs:Class
ex:Asignatura rdf:type owl:Class .
– rdfs:subClassOf (⊑)
– owl:Thing: ⊤ (superclase de todas las clases)
– owl:Nothing: ⊥ (subclase de todas las clases)
– 28 –
OWL
• Propiedades
– owl:ObjectProperty: relaciona instancias de dos clases
– owl:DatatypeProperty: relaciona instancias con Literales y
tipos de datos XML Schema
– rdfs:subPropertyOf (r1 ⊑ r2 en H)
– rdfs:domain (∃r.⊤ ⊑ C o ⊤ ⊑ ∀r –.C)
– rdfs:range (⊤ ⊑ ∀r .C)
– 29 –
OWL
• Características de propiedades
– owl:TransitiveProperty: (r+)
• p(x,y) ∧ p(y,z) → p(x,z)
(ej: “antepasado de”)
– owl:SymmetricProperty: (r ≡ r –)
• p(x,y) ↔ p(y,x)
(ej: “familiar de”)
– owl:FunctionalProperty: (⊤ ⊑ ≤ 1 r)
• p(x,y) ∧ p(x,z) → y = z (ej: “año nacimiento”)
– owl:inverseOf: (r –)
• p1(x,y) ↔ p2(y,x)
(ej: p1=“profesor de”, p2=“alumno de”)
– owl:InverseFunctionalProperty: (⊤ ⊑ ≤ 1 r -)
• p(y,x) ∧ p(z,x) → y = z (ej: “nº móvil”)
– 30 –
OWL
• Restricciones de propiedades
– owl:Restriction
– owl:onProperty
– owl:allValuesFrom: (∀r.C)
ex:Vaca rdf:type owl:Class;
rdfs:subClassOf ex:Animal;
rdfs:subClassOf [rdf:type owl:Restriction;
owl:onProperty ex:come;
owl:allValuesFrom ex:Hierba].
–
–
–
–
–
owl:someValuesFrom: (∃r.C)
owl:cardinality
owl:maxCardinality (≤ n r)
owl:minCardinality (≥ n r)
owl:hasValue (∃r.{a})
– 31 –
OWL
• Clases complejas
–
–
–
–
–
owl:intersectionOf: (C ⊓ D)
owl:unionOf: (C ⊔ D)
owl:complementOf: (¬C)
owl:disjointWith: (C ⊑ ¬D) clases disjuntas
owl:oneOf: ({a,b,c} en O) enumera los individuos que pertenecen a
una clase. Ej: {Rojo, Ambar, Verde}.
ex:ColorSemaforo rdf:type owl:Class;
owl:oneOf (ex:Rojo ex:Ambar ex:Verde).
– 32 –
OWL
• Ontology mapping
–
–
–
–
owl:equivalentClass (≡)
owl:equivalentProperty (≡ en H)
owl:sameAs: ({x} ≡ {x}) dos URIs representan el mismo individuo
owl:differentFrom: ({x} ≡ ¬{x}) dos URIs no representan el mismo
individuo
– owl:AllDifferent
– owl:distinctMembers
[rdf:type owl:AllDifferent;
owl:distinctMembers (ex:Rojo ex:Ambar ex:Verde)].
– 33 –
OWL
• Anotaciones
–
–
–
–
–
–
rdfs:label
rdfs:comment
rdfs:seeAlso
rdfs:isDefinedBy
owl:AnnotationProperty
owl:OntologyProperty
– 34 –
OWL: ejemplos de inferencias
• Ejemplo disjointWith
Profesor owl:subClassOf PersonalDocente .
Libro owl:subClassOf Publicación .
PersonalDocente owl:disjointWith Publicación .
Se infiere: Profesor y Libro son disjuntos
• Ejemplo owl:equivalentClass
Hombre owl:subClassOf Persona
Persona owl:equivalentClass Humano
Se infiere: Hombre es subclase de Humano
• Ejemplo instancias
“A Semantic Web Primer” rdf:type Libro
Libro owl:subClassOf Publicación
Se infiere: “A Semantic Web Primer” es una Publicación
– 35 –
OWL y LD: Resumen
LD
⊤
⊥
C⊓D
C⊔D
¬C
∀r.C
∃r.C
C⊑D
C≡D
r-
≥nr
≤nr
OWL
LD
C ⊑ ¬D
{a} ≡ {b}
{a} ⊑ ¬{b}
r1 ⊑ r2
{a,b,c}
∃r.{a}
r+
Thing
Nothing
intersectionOf
unionOf
complementOf
allValuesFrom
someValuesFrom
subclassOf
equivalentClass
inverseOf
minCardinality
maxCardinality
r≡s
⊤⊑≤1r
⊤ ⊑ ≤ 1 rr ≡ r-
– 36 –
OWL
disjointWith
sameAs
differentFrom
subpropertyOf
oneOf
hasValue
TransitiveProperty
equivalentProperty
FunctionalProperty
InverseFunctionalProperty
SymmetricProperty
Índice
• La Web Semántica
• Lenguajes de Ontologías
– RDF
– RDF Schema
– OWL
• Consulta de información en la Web Semántica
– SPARQL
• Herramientas y Aplicaciones
• La Web de Datos (Linked Data)
– 37 –
SPARQL
• Query Language for RDF
• Recomendación del W3C
– http://www.w3.org/TR/rdf-sparql-query/
• Lenguaje de consulta de contenidos RDF
• Sintaxis estilo SQL
– 38 –
SPARQL
Estructura de una consulta:
[
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
...
]
SELECT ...
[FROM ...]
WHERE
{
...
}
[Modificadores]
– 39 –
SPARQL
• Patrones básicos
PREFIX rdf: <http://www.w3.org/1999/02/22-rdfsyntax-ns#>
SELECT ?nom ?ape
WHERE {
?x :nombre
?nom.
?x :apellido ?ape.
?x rdf:type :Empleado.
}
• Observaciones
– SELECT * selecciona todas las variables
• En el ejemplo: SELECT * = SELECT ?nom ?ape ?x
– También:
{ ?x :nombre
?nom ;
:apellido ?ape ;
a :Empleado.
}
– 40 –
SPARQL
• Grupos de patrones
SELECT ?nom ?ape
WHERE
{
{ ?x :nombre
?nom.
?x :apellido ?ape.
?x :nacido_en ?pais.
?pais :poblacion ?hab.
}
{ ?x rdf:type :Empleado.}
}
– 41 –
SPARQL
• Literales
– Etiquetas de idioma
• “Madrid”, “Madrid”@es y “Madrid”@en son valores distintos
– Tipos numéricos
• “123"^^<http://www.w3.org/2001/XMLSchema#integer> es lo
mismo que 123 (y que "123"^^xsd:integer) con:
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
– Tipos arbitrarios
• "abc"^^ex:TipoT
SELECT ?s
WHERE
{
?s ?p "abc"^^ex:TipoT.
}
– 42 –
SPARQL
• Restricciones (FILTER)
– Numéricas
Algunos Operadores
SELECT ?nom ?ape
Lógicos: !, &&, ||
WHERE
Aritméticos: +, -, *, /
{ ?x :nombre
?nom.
Comparación: =, !=, >, <,>=,<= ...
?x :apellido ?ape.
?x :nacido_en ?pais.
?pais :poblacion ?hab.
FILTER (?hab >= 200000).}
– Strings
• FILTER (regex(?nom, “Alberto", "i"))
• FILTER (regex(str(?nom), “^Al"))
• regex como en XQuery 1.0 y XPath 2.0
– Otros
• FILTER ( ?fecha > "1980-05-1"^^xsd:date &&
?fecha < "1980-06-30"^^xsd:date )
– 43 –
SPARQL
• Patrones opcionales (OPTIONAL)
SELECT ?nom ?ape ?nac ?email
WHERE
{ ?x :nombre
?nom.
?x :apellido ?ape.
?x rdf:type :Empleado.
OPTIONAL {?x :año_nac ?nac.
?x :email ?email.}
}
• Ojo! es distinto a:
SELECT ?nom ?ape ?nac ?email
WHERE
{ ?x :nombre
?nom.
?x :apellido ?ape.
?x rdf:type :Empleado.
OPTIONAL {?x :año_nac ?nac.}
OPTIONAL {?x :email ?email.}
}
– 44 –
SPARQL
• Patrones alternativos (UNION)
SELECT ?nom ?a
WHERE
{
{?x :nombre ?nom} UNION {?x :apellido ?nom}.
?x rdf:type :Empleado.
?x :año_nac ?a.
}
– 45 –
SPARQL
• Negación
– No incluida en el lenguaje.
– Se puede simular así (negación por fallo):
SELECT ?nom ?ape
WHERE
{ ?x :nombre
?nom.
?x :apellido ?ape.
OPTIONAL {
?x rdf:type ?t.
FILTER (?t = :Empleado)
}
FILTER (!Bound(?t))
}
– 46 –
SPARQL
• RDF Datasets
– Un RDF dataset representa una colección de grafos RDF
• Grafo por defecto (default graph)
• Cero o más grafos nombrados (named graphs)
PREFIX ex: <http://example.org/>
default graph
SELECT ?nom ?ape
FROM <http://example.org/datos1.rdf>
FROM NAMED <http://example.org/datos2.rdf>
FROM NAMED <http://example.org/datos3.rdf>
WHERE
{
GRAPH ex:datos2.rdf {
?x :nombre
?nom.
?x :apellido ?ape.}
}
– 47 –
SPARQL
• Modificadores de resultados
– ORDER BY
SELECT ?nom ?ape
WHERE
{ ?x :nombre
?nom.
?x :apellido ?ape.
}
ORDER BY ?ape DESC(?nom)
– DISTINCT: evita repetidos
SELECT DISTINCT ?nom ?ape
– OFFSET / LIMIT
SELECT ?nom ?ape
WHERE
{ ?x :nombre ?nom.
?x :apellido ?ape.}
ORDER BY ?ape
LIMIT 5
OFFSET 3
– 48 –
(por defecto es ASC)
SPARQL
• Formatos de Resultados
– SELECT
– ASK
• devuelve si existe o no alguna solución
– DESCRIBE
• toda la información de los objetos indicados
• depende del servidor
DESCRIBE ?pais
WHERE
{ ?x :nombre
?nom.
?x :apellido ?ape.
?x :nacido_en ?pais.
?pais :poblacion ?hab.
FILTER (?hab >= 200000).}
– CONSTRUCT
• genera un grafo RDF
– 49 –
SPARQL
• CONSTRUCT
CONSTRUCT {?x :tieneTio ?her.
?her :tieneSobrino ?x.}
WHERE
{ ?x :tienePadre ?padre.
?padre :tieneHermano ?her.
}
CONSTRUCT {?x o2:hasParent ?padre.
?padre o2:hasBrother ?her.}
WHERE
{ ?x o1:tienePadre ?padre.
?padre o1:tieneHermano ?her.
}
– 50 –
SPARQL Endpoints
• Aceptan consultas SPARQL y devuelven los
resultados por HTTP
• Formatos de resultados
– KML, JSON, RDF (RDF/XML, N-Triples, Turtle, etc.),
HTML,…
• Tipos
– Genéricos
•
•
•
•
http://www.openlinksw.com/sparql
http://sparql.org/sparql.html
http://librdf.org/query/
…
– Específicos
– 51 –
SPARQL 1.1
• Algunas extensiones
–
–
–
–
–
–
–
–
Agregados: COUNT, SUM, MIN, MAX, AVG, …
Subqueries
Queries federadas
Expresiones en SELECT
Negaciones
Property Paths
Modificar los grafos del dataset
…
• Algunos endpoints/herramientas ya lo implementan
(al menos parcialmente)
– 52 –
Índice
• Introducción a la Web Semántica
• Lenguajes de Ontologías
– RDF
– RDF Schema
– OWL
• Consulta de información en la Web Semántica
– SPARQL
• Herramientas y Aplicaciones
• La Web de Datos (Linked Data)
– 53 –
Herramientas
• Validadores
– RDF: http://www.w3.org/RDF/Validator/
– OWL: http://owl.cs.manchester.ac.uk/validator/
• Jena – A Semantic Web Framework for Java
– Entorno de programación para RDF, RDFS, OWL, SPARQL
– http://jena.sourceforge.net/
• SESAME
– Entorno de programación para RDF y RDFS
– http://www.openrdf.org/
• Protégé: editor de ontologías
– RDF, RDFS, OWL
– 54 –
Aplicaciones
•
•
•
•
Anotación de datos no estructurados
Integración de datos
Web de Datos (Linked Data)
…
– 55 –
Anotación de datos no estructurados
• Ejemplo:
– Anotación de páginas Web:
<div>
<h2>The trouble with Bob</h2>
<h3>Alice</h3>
...
</div>
RDFa (http://www.w3.org/TR/xhtml-rdfa-primer/)
<div xmlns:dc="http://purl.org/dc/elements/1.1/">
<h2 property="dc:title">The trouble with Bob</h2>
<h3 property="dc:creator">Alice</h3>
...
</div>
– 56 –
Integración de datos
[http://www.w3.org/People/Ivan/CorePresentations/IntroThroughExample/]
– 57 –
Integración de datos
[http://www.w3.org/People/Ivan/CorePresentations/IntroThroughExample/]
[http://www.w3.org/People/Ivan/CorePresentations/IntroThroughExample/]
– 58 –
Índice
• Introducción a la Web Semántica
• Lenguajes de Ontologías
– RDF
– RDF Schema
– OWL
• Consulta de información en la Web Semántica
– SPARQL
• Herramientas y Aplicaciones
• La Web de Datos (Linked Data)
– 59 –
Web de Datos (Linked Data)
• Queremos consultar información del tipo:
Porteros de fútbol, que han jugado en algún equipo con un estadio de
más de 40.000 localidades y que han nacido en un país de más de 10
millones de habitantes
• Pasar de la Web de Documentos a la Web de los Datos
• Linked Data
– http://linkeddata.org/
– http://www.w3.org/DesignIssues/LinkedData.html
– http://www.ted.com/talks/tim_berners_lee_on_the_next_web.html
(vídeo 16 min)
• Linking Open Data (LOD)
– Web de Datos “Abiertos”
– http://thedatahub.org/group/lodcloud
– 60 –
Web de Datos (Linked Data)
•
Principios de Linked Data
1. Usar URIs para identificar cosas
2. Usar el protocolo HTTP para esas URIs
3. Proporcionar información útil en esas direcciones, usando
estándares (RDF, SPARQL)
4. Incluir enlaces a otras URIs
– 61 –
Web de Datos (Linked Data)
Mayo 2007
12 datasets
“Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch. http://lod-cloud.net/”
– 62 –
Web de Datos (Linked Data)
Septiembre 2008
45 datasets
“Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch. http://lod-cloud.net/”
– 63 –
Web de Datos (Linked Data)
Julio 2009
95 datasets
“Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch. http://lod-cloud.net/”
– 64 –
Web de Datos (Linked Data)
Sept. 2011
295 datasets
– 65 –
“Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch. http://lod-cloud.net/”
Linked Data
• Generación de Datos
– A partir de repositorios existentes, p.e. BD Relacionales,
XML, CSV y hojas de cálculo, etc. a Linked Data
– Transformación de información
•
•
•
•
•
R2O and ODEMapster
OBDI
NOR2O
Jena
geometry2rdf
– Generación dinámica
• D2RQ Platform
• Triplify
• Ultrawrap
– 66 –
Linked Data
• Publicación de datos
–
–
–
–
–
–
Virtuoso Open Source Edition
D2R Server
AllegroGraph RDFStore
Joseki
Sesame
…
– 67 –
Linked Data
• Visualización de datos
– Pubby
– SNORQL
– Disco – Hyperdata Browser
– 68 –
Linked Data: integración de datos
[http://www.w3.org/People/Ivan/CorePresentations/IntroThroughExample/]
[http://www.w3.org/People/Ivan/CorePresentations/IntroThroughExample/]
– 69 –
Web de Datos (Linked Data)
•
Algunas fuentes de datos
–
–
–
–
–
Dbpedia: http://dbpedia.org/sparql
UK Government: http://data.gov.uk/sparql
USA Government: http://semantic.data.gov/sparql
Musicbrainz: http://dbtune.org/musicbrainz/sparql
...
– 70 –
Ejemplo: DBPedia
• http://dbpedia.org
• Pone disponible a información existente en la
Wikipedia
• Generación de datos
– A partir de información estructurada de la Wikipedia
• Publicación de datos
– OpenLink Virtuoso
– SPARQL endpoint público: http://dbpedia.org/sparql
– 71 –
Ejemplo: DBPedia
• Visualización de datos
• Leipzig query builder
– http://querybuilder.dbpedia.org
• OpenLink Interactive SPARQL Query Builder (iSPARQL)
– http://dbpedia.org/isparql;
• SNORQL query explorer
– http://dbpedia.org/snorql
• Cualquier otro cliente SPARQL
• Otras herramientas
– DBpedia Faceted Search
• http://wiki.dbpedia.org/FacetedSearch
• Browser: http://dbpedia.neofonie.de/browse/
• Ejemplo de recurso:
– http://wikipedia.org/wiki/Berlin http://dbpedia.org/resource/Berlin
– 72 –
Ejemplo: DBPedia
– 73 –
– 74 –
Descargar