0% encontró este documento útil (0 votos)
18 vistas77 páginas

Tema04Web Semántica y Web de Datos

El documento aborda la Web Semántica y la Web de Datos, destacando su importancia en la interoperabilidad de datos y la representación del conocimiento mediante lenguajes como RDF y SPARQL. Se exploran conceptos clave como ontologías, grafos de conocimiento y herramientas para facilitar la consulta y reutilización de datos. Además, se proporciona una bibliografía relevante para profundizar en el tema.

Cargado por

Izan Cruz Ruiz
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
18 vistas77 páginas

Tema04Web Semántica y Web de Datos

El documento aborda la Web Semántica y la Web de Datos, destacando su importancia en la interoperabilidad de datos y la representación del conocimiento mediante lenguajes como RDF y SPARQL. Se exploran conceptos clave como ontologías, grafos de conocimiento y herramientas para facilitar la consulta y reutilización de datos. Además, se proporciona una bibliografía relevante para profundizar en el tema.

Cargado por

Izan Cruz Ruiz
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 77

Tema 4

Web Semántica y Web de Datos

Año académico 2024/25


Índice

• Introducción a la Web Semántica

• Resource Description Framework (RDF)

• Consulta de información en la Web Semántica


(SPARQL)

• Ontologías (RDFS y OWL)

• Herramientas y Aplicaciones

• La Web de Datos (Linked Data)


Bibliografía

Bibliografía:
– W3C Semantic Web Activity (http://www.w3.org/2001/sw/)
– A Semantic Web Primer. Grigoris Antoniou y Frank van Harmelen.
The MIT Press. 2012 (3ª Ed.)
– Semantic Web: Concepts, Technologies and Applications. K.
Breitman, M. A. Casanova, W. Truszkowski. Springer. 2007
– Foundations of Semantic Web Technologies. P. Hitzler, M.
Krötzsch, S. Rudolph. CRC Press. 2009.
(Libro disponible online a través de biblioteca)
– Inteligencia Artificial. Ejercicios Resueltos. H. Billhardt, A.
Fernández, S. Ossowski. Areces. 2015
Web Semántica

• La Web Semántica es una extensión de la Web


actual

• Fue propuesta por Tim Berners-Lee, el creador de


la World Wide Web.

• Diferencia clave

• ¿Por qué es importante la Web Semántica?


o Interoperabilidad de datos
La Web Semántica

• Proporciona
– Lenguajes para representar
conocimiento (ontologías)
• RDF, RDF(S), OWL
– Lenguaje de consulta
• SPARQL
– Herramientas
La Web Semántica

• Objetivo
– Tecnologías para facilitar la compartición y reutilización de
datos entre agentes, tanto de forma automática como
manual
• Enfoque
– Extender los principios de la Web (de documentos) a los
datos. Relacionar unos datos con otros (igual que las webs
se relacionan entre ellas)
– ¿Cómo?
• usando vocabularios/ontologías estandarizadas
– Lenguajes para construir ontologías
– Ontologías concretas
Grafos de Conocimiento (Redes Semánticas)

Todoterreno
Volkswagen
grupo
tipo
83·106
puertas fabricante
5 Q5 Audi

Alemania
capital
A3 Ingolstadt
fabricadoEn
Berlín
Curitiba

país población

Brasil 3.600.000
Grafos de Conocimiento

• Modelo flexible de organizar la información


– Más que, por ejemplo, modelo relacional (rigidez de tablas)
– Fácil de extender y mejorar la información
• Puede mediar entre diferentes modelos
• Usados internamente por grandes compañías
– Google Knowledge Graph
– Microsoft: Bing knowledge graph
– Facebook
– eBay
– IBM (Watson)
– …
• Hay muchos abiertos
Índice
• Introducción a la Web Semántica

• Resource Description Framework (RDF)

• Consulta de información en la Web Semántica


(SPARQL)

• Ontologías (RDFS y OWL)

• Herramientas y Aplicaciones

• La Web de Datos (Linked Data)


RDF

• Resource Description Framework


• Recomendación del W3C
– http://www.w3.org/RDF/
– http://www.w3.org/TR/rdf11-primer/
• Expresar información sobre recursos en la Web
– documentos, personas, objetos físicos y abstractos, etc.
– se identifican con IRIs ("International Resource Identifier”)
• http://www.urjc.es/
• http://dbpedia.org/resource/King_Juan_Carlos_University
• http://sws.geonames.org/2510769/
• http://example.org/bob#me
• Modelo de datos equivalente a una red semántica
RDF: Ejemplo
RDF

• Un grafo RDF es un conjunto de Sentencias (arcos)


• Sentencia = tripla (Sujeto, Predicado, Objeto)
– Sujeto: recurso (IRI) o “blank node”
– Predicado/Propiedad: relación binaria (IRI)
– Objeto: IRI, literal o “blank node”

Predicado
Sujeto Objeto
RDF: Ejemplo
RDF: Serialización

• Varios formatos de representación (serialización)


– N-Triples
– Turtle
– TriG
– N-Quads
– JSON-LD
– RDFa (para incluir en HTML)
– RDF/XML

• ¿Qué formato elegirías?


RDF: Serialización. Turtle

<sujeto> <predicado> <objeto> .


<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:
Abreviaciones
@prefix ex: <http://www.example.org/>.
@prefix exstaff: <http://www.example.org/staffid/>. – @prefix
@prefix exterms: <http://www.example.org/terms/>. – ; (compartir sujeto)
@prefix dc: <http://purl.org/dc/elements/1.1/>. – , (compartir sujeto-pred)
ex:index.html dc:creator exstaff:85740 .
ex:index.html exterms:creation-date "August 16, 1999" .
– a (rdf:type)
ex:index.html dc:language "en" . – [] (blank nodes)
O – () (listas)
ex:index.html dc:creator exstaff:85740 ;
exterms:creation-date "August 16, 1999" ;
dc:language "en" .

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>


RDF: Nodos Anónimos (Blank Nodes)

• Nodos sin IRI (no es necesaria)


• Son independientes entre sí
ex:ventana

rdf:type
ex:tiene
ex:Aula_001

ex:Aula_001 ex:tiene _:ven .


_:ven rdf:type ex:ventana . 12:00

20ºC
rdf:type
ex:SensorTemp ex:Sensor1
12:01

20ºC
...
RDF: Literales

• Tipos de datos
– Se puede asociar un tipo a los literales: “valor”^^<tipo>
– Se recomienda usar XML Schema datatypes
(xsd=http://www.w3.org/2001/XMLSchema#):
• xsd:string, xsd:integer, xsd:date,…
– Se pueden etiquetar strings indicando el idioma

• Ejemplo
ex:index.html exterms:creation-date "1999-08-16"^^xsd:date .
exstaff:85740 exterms:postalCode "01730"^^xsd:integer .
exstaff:85740 exterms:birthPlaceName "Boston"@en .
Índice

• Introducción a la Web Semántica

• Resource Description Framework (RDF)

• Consulta de información en la Web Semántica

• Ontologías (RDFS y OWL)

• Herramientas y Aplicaciones

• La Web de Datos (Linked Data)


SPARQL

• Query Language for RDF


• Recomendación del W3C
– http://www.w3.org/TR/sparql11-query/
• Lenguaje de consulta de contenidos RDF
• Sintaxis estilo SQL
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]
SPARQL

• Patrones básicos
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX pre: <http://www.example.org/>
SELECT ?nom ?ape pre:Empleado
WHERE {
?x rdf:type pre:Empleado. rdf:type
?x pre:nombre ?nom. pre:nombre
?x pre:apellido ?ape. ?nom ?x
} pre:apellido

• Observaciones
– SELECT * selecciona todas las variables ?ape
• En el ejemplo: SELECT * = SELECT ?nom ?ape ?x
– También:
{ ?x pre:nombre ?nom ;
pre:apellido ?ape ;
a pre:Empleado.
}
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.
}
SPARQL

• Crear valores con expresiones


– En SELECT Numéricas
SELECT (CONCAT(?nom, " ", ?ape) AS ?nombre)
WHERE {
?x pre:nombre ?nom.
?x pre:apellido ?ape.
}
– Con BIND
SELECT ?nombre
WHERE {
?x pre:nombre ?nom.
?x pre:apellido ?ape.
BIND(CONCAT(?nom, " ", ?ape) AS ?nombre)
}
SPARQL

• Restricciones (FILTER)
– Numéricas Algunos Operadores
SELECT ?nom ?ape Lógicos: !, &&, ||
WHERE Aritméticos: +, -, *, /
{ ?x pre:nombre ?nom. Comparación: =, !=, >, <,>=,<= ...
?x pre:apellido ?ape.
?x pre:nacido_en ?pais.
?pais pre:poblacion ?hab.
FILTER (?hab >= 200000).}
– Strings
• FILTER (regex(?nom, “Alberto", "i"))
• FILTER (regex(str(?nom), “^Al"))
da igual mayúsculas/
• regex como en XQuery 1.0 y XPath 2.0 minúsculas
– Otros
• FILTER ( ?fecha > "1980-05-1"^^xsd:date &&
?fecha < "1980-06-30"^^xsd:date )
SPARQL

• Grupos de patrones
SELECT ?nom ?ape
WHERE
{
{
?x pre:nombre ?nom.
?x pre:apellido ?ape.
?x pre:nacido_en ?pais.
?pais pre:poblacion ?hab.
FILTER (?hab >= 200000).
}
{
?x rdf:type pre:Empleado.}
}
SPARQL

• Patrones opcionales (OPTIONAL)


SELECT ?nom ?ape ?nac ?email
WHERE
{ ?x pre:nombre ?nom.
?x pre:apellido ?ape.
?x rdf:type pre:Empleado.
OPTIONAL {?x pre:añoNac ?nac.
?x pre:email ?email.}
}
• Ojo! es distinto a:
SELECT ?nom ?ape ?nac ?email
WHERE
{ ?x pre:nombre ?nom.
?x pre:apellido ?ape.
?x rdf:type pre:Empleado.
OPTIONAL {?x pre:añoNac ?nac.}
OPTIONAL {?x pre:email ?email.}
}
SPARQL

• Patrones alternativos (UNION)

SELECT ?nom ?a
WHERE
{
{
?x pre:nombre ?nom.
?x rdf:type pre:Empleado.
}
UNION
{
?x pre:name ?nom.
?x rdf:type pre:Employee.
}

?x pre:añoNac ?a.
}
SPARQL

• Negación
– Comprobando ausencia
SELECT ?nom ?ape
WHERE
{ ?x pre:nombre ?nom.
?x pre:apellido ?ape.
FILTER NOT EXISTS {?x rdf:type pre:Empleado}
}
– Eliminando posibles soluciones
SELECT ?nom ?ape
WHERE
{ ?x pre:nombre ?nom.
?x pre:apellido ?ape.
MINUS {?x rdf:type pre:Empleado}
}
SPARQL

• Agregados
– COUNT, SUM, MIN, MAX, AVG, GROUP_CONCAT,
SAMPLE

SELECT ?equi (SUM(?sueldo) AS ?totalSueldos)


WHERE {
?x rdf:type pre:Futbolista .
?x pre:equipo ?equi.
?x pre:salario ?sueldo .
}
GROUP BY ?equi
HAVING (SUM(?sueldo) > 20)

Filtra soluciones
SPARQL

• Modificadores de resultados
– ORDER BY
SELECT ?nom ?ape
WHERE
{ ?x pre:nombre ?nom.
?x pre:apellido ?ape.
}
ORDER BY ?ape DESC(?nom)
– DISTINCT: evita soluciones duplicadas
SELECT DISTINCT ?nom ?ape
– OFFSET / LIMIT
SELECT ?nom ?ape
WHERE
{ ?x pre:nombre ?nom.
?x pre:apellido ?ape.}
ORDER BY ?ape
LIMIT 5
OFFSET 3
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/>


PREFIX pre: <http://www.example.org/>
SELECT ?nom ?ape default graph
FROM <http://example.org/datos1>
FROM NAMED <http://example.org/datos2>
FROM NAMED <http://example.org/datos3>
WHERE
{
GRAPH ex:datos2 {
?x pre:nombre ?nom.
?x pre:apellido ?ape.
}
}
SPARQL

• Consultas Federadas

SELECT ?nom ?ape


WHERE {
?x rdf:type pre:Empleado.
SERVICE <http://datos.personas.com/sparql> {
?x pre:nombre ?nom.
?x pre:apellido ?ape.
}
}
SPARQL

• Formas de consulta
– SELECT
– ASK
• devuelve si existe o no alguna solución
– DESCRIBE
• Grafo RDF con datos de los objetos indicados
• depende del servidor
DESCRIBE ?pais
WHERE
{ ?x pre:nombre ?nom.
?x pre:nacido_en ?pais.
?pais pre:poblacion ?hab.
FILTER (?hab >= 200000).
}
– CONSTRUCT
• genera un grafo RDF
SPARQL

• CONSTRUCT
CONSTRUCT {?x pre:tieneTio ?her.
?her pre:tieneSobrino ?x.}
WHERE
{ ?x pre:tienePadre ?padre.
?padre pre:tieneHermano ?her.
}

CONSTRUCT {?x o2:hasParent ?padre.


?padre o2:hasBrother ?her.}
WHERE
{ ?x o1:tienePadre ?padre.
?padre o1:tieneHermano ?her.
}
SPARQL

• Otras
– Subqueries
– Asignaciones
• BIND (?precio*(1+?iva) AS ?total)
– Modificar los grafos del dataset (UPDATE)
• http://www.w3.org/TR/sparql11-update/
– …

– 53 –
SPARQL Endpoints

• Aceptan consultas SPARQL y devuelven los


resultados por HTTP
• Formatos de resultados
– XML, JSON, RDF (RDF/XML, N-Triples, Turtle, etc.), HTML,
CSV, TSV,…
• Tipos
– Genéricos
• http://www.openlinksw.com/sparql
• http://sparql.org/sparql.html
• http://librdf.org/query/
• …
– Específicos
Índice

• Introducción a la Web Semántica

• Resource Description Framework (RDF)

• Consulta de información en la Web Semántica

• Ontologías
– RDFS
– OWL
• Herramientas y Aplicaciones

• La Web de Datos (Linked Data)


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):
• BD es impartida por BD (restricción de rango)
ex:BD ex:impartidaPor ex:BD.
• Casa es impartida por Juan (restricción de domino)
ex:Casa ex:impartidaPor ex:Juan.
• Solución
– Clases, relaciones, restricciones de dominio y rango, …
– Ejemplo:
• Las asignaturas deben ser impartidas por miembros del
personal docente
RDF Schema (RDFS)

• Recomendación del W3C


– http://www.w3.org/TR/rdf-schema/
• RDFS extiende RDF con nuevas primitivas
(IRIs) con semántica definida
• Define a un lenguaje básico para describir
ontologías
– Clases e Instancias
– Propiedades
• Restricciones de dominio y rango
– Jerarquías de clases y propiedades
• Define la semántica de “subclase de” y “subpropiedad de”
RDF Schema (RDFS)

@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>

• Clases (rdfs:Class) e Instancias (rdf:type) rdfs:Class

Definición de Clases
ex:Asignatura rdf:type rdfs:Class. rdf:type

ex:Asignatura
Instancias
rdf:type
ex:IC rdf:type ex:Asignatura.

ex:IC
• Jerarquías de clases (rdfs:subClassOf) (v)
ex:Catedratico rdfs:subClassOf ex:PersonalDocente.

rdfs:subClassOf
ex:Catedrático ex:PersonalDocente
RDF Schema (RDFS)

• Propiedades (rdf:Property)
ex:impartidaPor rdf:type rdf:Property .

• Restricciones propiedades (rdfs:domain (9r.>vC),


rdfs:range (>v 8r.C))
ex:impartidaPor rdfs:domain ex:Asignatura;
rdfs:range ex:PersonalDocente.

• Jerarquías de propiedades (rdfs:subPropertyOf)


ex:impartidaPor rdfs:domain ex:Asignatura;
rdfs:range ex:PersonalDocente;
rdfs:subPropertyOf ex:involucra.
RDF Schema (RDFS)
Clase rdfs:range
ex:involucra
rdfs:domain ex:Personal
propiedad
rdfs:subPropertyOf
rdfs:range rdfs:subClassOf
rdfs:domain ex:Personal
ex:Asignatura ex:impartidaPor
Docente

rdfs:subClassOf rdfs:subClassOf
ex:Profesor
ex:Contratado Funcionario
rdf:type rdfs:subClassOf
Doctor rdfs:subClassOf

ex:Profesor
ex:Catedrático
Titular
RDF Schema
rdf:type

RDF ex:impartidaPor ex:Alberto


ex:IC
Fdez
RDF Schema (RDFS)

ex:posee
rdfs:domain
rdfs:range
ex:Persona
ex:Pez

rdf:type
rdf:type rdf:type

ex:posee
ex:Wendy ex:Wanda

¿Violación de la restricción: El rango de posee es Pez?

No hay inconsistencia: Wanda es un pez! Sirena?


RDF Schema (RDFS)

• Algunas otras propiedades


– rdfs:comment: descripción legible (por humanos) del recurso
– rdfs:label: versión legible del nombre del recurso
– rdfs:seeAlso: para indicar un recurso con información
adicional

dbpedia:Spain rdfs:comment "España es un país...";


rdfs:label "España";
rdfs:seeAlso <http://www.spain.info/>
RDF Schema (RDFS)

• Algunas 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 (ej: las vacas sólo comen hierba)
– 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, …
Índice

• Introducción a la Web Semántica

• Resource Description Framework (RDF)

• Consulta de información en la Web Semántica


• Ontologías
– RDFS
– OWL
• Herramientas y Aplicaciones

• La Web de Datos (Linked Data)


OWL

• Web Ontology Language


• Recomendación del W3C
– http://www.w3.org/OWL/
– http://www.w3.org/TR/2012/REC-owl2-primer-20121211/
• Es un lenguaje para describir ontologías
• Se construye sobre RDFS, añadiendo primitivas
(IRIs) para aumentar la expresividad
@prefix owl: <http://www.w3.org/2002/07/owl#>
OWL

• Descripción de la ontología
– owl:Ontology
– owl:imports: URI ontología que se importa
– owl:versionInfo
– owl:priorVersion: URI ontología
– owl:backwardCompatibleWith
– owl:incompatibleWith: no es compatible hacia atrás
<http://mionto.com/onto1> owl:versionInfo "v1.1";
rdfs:comment ”Ontología ejemplo";
owl:imports <http://www.example.org/foo>;
owl:backwardCompatibleWith <http://mionto.com/onto1>;
owl:priorVersion "v1.1”.
OWL

• Clases
– owl:Class
• owl:Class es subclase de rdfs:Class
ex:Asignatura rdf:type owl:Class .
– rdfs:subClassOf (v)
– owl:Thing: > (superclase de todas las clases)
– owl:Nothing: ? (subclase de todas las clases)
OWL

• Propiedades
– owl:ObjectProperty: relaciona instancias de dos clases
– owl:DatatypeProperty: relaciona instancias con Literales y
tipos de datos XML Schema
– rdfs:subPropertyOf
– rdfs:domain (9r.> v C)
– rdfs:range (> v 8r .C)
OWL

• Características de propiedades
– owl:TransitiveProperty
• p(x,y)  p(y,z) → p(x,z) (ej: “antepasado de”)
– owl:SymmetricProperty
• p(x,y) ⟷ p(y,x) (ej: “familiar de”)
– owl:AsymmetricProperty
• p(x,y) ⟷ ¬ p(y,x) (ej: “hijo de”)
– owl:FunctionalProperty
• p(x,y)  p(x,z) → y = z (ej: “año nacimiento”)
– owl:inverseOf
• p1(x,y) p2(y,x) (ej: p1=“profesor de”, p2=“alumno de”)
– owl:InverseFunctionalProperty
• p(y,x)  p(z,x) → y = z (ej: “nº móvil”, asumiendo un nº móvil sólo un dueño)
– owl:propertyDisjointWith
• p1(x,y) ¬ p2(x,y) (ej: p1=“padre de”, p2=“abuelo de”)
– owl:ReflexiveProperty
• p(x,x) (ej: p=“familiar de”)
– owl:IrreflexiveProperty
• ¬ p(x,x) (ej: p=“padre de”)
OWL

• Restricciones de propiedades
– owl:Restriction
– owl:onProperty
– owl:allValuesFrom: (8r.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: (9r.C)
– owl:cardinality
– owl:maxCardinality
– owl:minCardinality
– owl:hasValue
OWL

• Definición de Clases
– owl:equivalentClass ()
ex:Pais owl:equivalentClass <http://schema.org/Country>.
– owl:intersectionOf: (C u D)
– owl:unionOf: (C t D)
– owl:complementOf: (:C)
– owl:disjointWith: (C v :D o C u D  ?) clases disjuntas
– owl:AllDisjointClasses
[] rdf:type owl:AllDisjointClasses;
owl:members (ex:Rojo ex:Ambar ex:Verde).
– owl:oneOf: 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).
OWL

• Relaciones entre propiedades


– owl:equivalentProperty
– owl:inverseOf
• p1(x,y) p2(y,x) (ej: p1=“profesor de”, p2=“alumno de”)
– owl:propertyDisjointWith
• p1(x,y) ⟷ ¬ p2(x,y) (ej: p1=“padre de”, p2=“abuelo de”)
• Relaciones entre individuos
– owl:sameAs: dos URIs representan el mismo individuo
ex:Spain owl:sameAs <http://sws.geonames.org/2510769/>.
– owl:differentFrom: dos IRIs no representan el mismo individuo
– owl:AllDifferent
[rdf:type owl:AllDifferent;
owl:distinctMembers (ex:Rojo ex:Ambar ex:Verde)].
OWL

• Anotaciones
– rdfs:label
– rdfs:comment
– rdfs:seeAlso
– rdfs:isDefinedBy
– owl:AnnotationProperty
– owl:OntologyProperty
– owl:deprecated
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
Índice

• Introducción a la Web Semántica

• Resource Description Framework (RDF)

• Consulta de información en la Web Semántica

• Ontologías (RDFS y OWL)

• Herramientas y Aplicaciones

• La Web de Datos (Linked Data)


Herramientas

• Frameworks
– RDFLib (https://rdflib.readthedocs.io/en/stable/)
– Jena (https://jena.apache.org/)
– OWL API (http://owlcs.github.io/owlapi/)
– RDF4J (http://rdf4j.org/)
• Editores de ontologías
– Protégé (http://protege.stanford.edu/)
• Razonadores
– ELK (https://www.cs.ox.ac.uk/isg/tools/ELK/)
– Pellet (https://github.com/stardog-union/pellet)
– Hermit (http://www.hermit-reasoner.com/)
Aplicaciones

• Anotación de datos no estructurados


• Integración de datos
• Web de Datos (Linked Data)
• Web de las Cosas (Web of Things)
• …
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>
Anotación de datos no estructurados

Ejemplo: Google Dataset Search


https://datasetsearch.research.google.com/

Páginas web
anotadas con
schema.org/Dataset
Integración de datos

[http://www.w3.org/People/Ivan/CorePresentations/IntroThroughExample/]
Integración de datos

[http://www.w3.org/People/Ivan/CorePresentations/IntroThroughExample/]
[http://www.w3.org/People/Ivan/CorePresentations/IntroThroughExample/]
Web of Things (WoT)

• https://www.w3.org/WoT/
• Tecnologías para la integración de dispositivos IoT y
aplicaciones
• Las ontologías son útiles para la descripción de los
datos y funciones proporcionan los dispositivos
• Web of Things (WoT) Thing Description (TD)
– Recomendación W3C
– https://www.w3.org/TR/wot-thing-description/
Índice

• Introducción a la Web Semántica

• Resource Description Framework (RDF)

• Consulta de información en la Web Semántica


– SPARQL

• Ontologías (RDFS y OWL)

• Herramientas y Aplicaciones

• La Web de Datos (Linked Data)


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
–https://www.w3.org/standards/semanticweb/data
– http://www.w3.org/DesignIssues/LinkedData
– https://www.ted.com/talks/tim_berners_lee_the_next_web (vídeo 16
min)
• Linking Open Data (LOD)
– Web de Datos “Abiertos”
– https://lod-cloud.net/
Web de Datos (Linked Data)

• Principios de Linked Data


1. Usar IRIs para identificar cosas
2. Usar el protocolo HTTP para esas IRIs
3. Proporcionar información útil en esas direcciones, usando
estándares (RDF, SPARQL)
4. Incluir enlaces a otras IRIs
Web de Datos (Linked Data)

• Algunas fuentes de datos


– Dbpedia: http://dbpedia.org
– Wikidata: https://www.wikidata.org
– …
– Gobierno España: http://datos.gob.es
– Ayuntamiento Madrid: http://datos.madrid.es
– ...
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
– SPARQL endpoint público:
• http://dbpedia.org/sparql
• http://dbpedia.org/snorql
• Ejemplo de recurso:
– http://wikipedia.org/wiki/Berlin → http://dbpedia.org/resource/Berlin
Ejemplo: DBPedia

• Acceso a los datos


– Descarga RDF
– REST API
– HTML
– Navegadores semánticos
– Dbpedia Lookup:
• https://lookup.dbpedia.org/
– SPARQL
• http://dbpedia.org/sparql
• SNORQL query explorer
– http://dbpedia.org/snorql
• Cualquier otro cliente SPARQL
Ejemplo: http://dbpedia.org/page/Berlin
Ejemplo: DBPedia
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
• RDB2RDF (DirectMapping, R2RML
• R2O and ODEMapster
• OBDI
• NOR2O
• Jena
• geometry2rdf
– Generación dinámica
• D2RQ Platform
• Triplify
• Ultrawrap
Linked Data

• Publicación de datos
– Openlink Virtuoso
– D2R Server
– AllegroGraph RDFStore
– Joseki
– …
Linked Data

• Visualización de datos
– Pubby
– SNORQL
– Disco – Hyperdata Browser
Linked Data: integración de datos

[http://www.w3.org/People/Ivan/CorePresentations/IntroThroughExample/]
[http://www.w3.org/People/Ivan/CorePresentations/IntroThroughExample/]
Ejemplo: Wikidata

• ¿Qué es Wikidata?
– Wikidata es una base de conocimiento libre y colaborativa
que recopila datos estructurados, creada por voluntarios.

– Proporciona datos para Wikipedia y otros proyectos de


Wikimedia, además de ser utilizada por aplicaciones y
servicios externos.

– Mientras que Wikipedia almacena artículos, Wikidata


almacena datos estructurados que pueden ser usados por
computadoras y personas.

También podría gustarte