Lenguajes de la Web Semántica Web Ontology Language

Anuncio
Lenguajes de la Web Semántica
Web Ontology Language WOL mejor Ontology Web Language OWL
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
Lenguajes de la Web Semántica
Hubo una historia previa: Ontology Inference Layer (OIL) +Info, DARPA Agent
Markup Language (DAML) +Info, DAML+OIL.
• XML
• NameSpaces, IRI y URI
¿Cómo podemos definir OWL?
• RDF
• RDFs
• OWL básico
• OWL extendido
Isaac Lera
Web Semántica
52
Isaac Lera
Web Semántica
RDF Serialization: OWL/XML
Web Ontology Language WOL mejor Ontology Web Language OWL
OWL con XML
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
<o w l x : O n t o l o g y o w l x : name=” h t t p : / / swap . u i b . e s / e j e m p l o ”
x m l n s : o w l x=” h t t p : / /www . w3 . o r g /2003/05/ owl xml ”>
<o w l x : C l a s s o w l x : name=” P e r s o n a ” o w l x : c o m p l e t e=” f a l s e ” />
Hubo una historia previa: Ontology Inference Layer (OIL) +Info, DARPA Agent
Markup Language (DAML) +Info, DAML+OIL.
</o w l x : O n t o l o g y >
¿Cómo podemos definir OWL?
OWL/XML
OWL rdf : subClassOf RDF
< r d f : RDF
xmlns
=” h t t p : / / swap . u i b . e s / e j e m p l o#”
x m l n s : o w l =” h t t p : / /www . w3 . o r g /2002/07/ o w l#”
x m l n s : r d f =” h t t p : / /www . w3 . o r g /1999/02/22 r d f s y n t a x n s#”
x m l n s : r d f s=” h t t p : / /www . w3 . o r g /2000/01/ r d f schema#”
>
<o w l : C l a s s r d f : ID=” P e r s o n a ”/>
</ r d f : RDF>
Isaac Lera
Web Semántica
53
53
OWL
OWL
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
owl:inverseOf en relaciones
owl:inverseOf en relaciones
: estaFormadoPor owl : i n v e r s e O f
: motor
: estaFormadoPor
: b u jı́ a
: esParteDe
: esParteDe
: b u jı́ a
: estaFormadoPor owl : i n v e r s e O f
: motor
: estaFormadoPor
: motor
: b u jı́ a
: esParteDe
: esParteDe
: b u jı́ a
: motor
owl:inverseOf
: c a s a do C o n o w l : i n v e r s e O f : c as a d o C o n
: Juan
: c a s ad o C o n : Ana
: Ana : c a s a d oC o n : Juan
Isaac Lera
Web Semántica
55
Isaac Lera
Web Semántica
OWL
OWL
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
owl:TransitiveProperty
owl:SymmetricProperty
: amar
: Juan
rdf : type
: amar
: formaParte r d f : type
: B u jı́ a
: formaParte
: Motor
: formaParte
owl : SymmetricProperty
: Ana
: Ana : amar : Juan
Isaac Lera
55
: Bujia
Web Semántica
56
Isaac Lera
: formaParte
owl : T r a n s i t i v e P r o p e r t y
: Motor
: Coche
: Coche
Web Semántica
57
OWL
OWL
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
owl:equivalentClass
owl:equivalentClass
: E s t u d i a n t e owl : e q u i v a l e n t C l a s s : T r a b a j a d o r
: Juan
rdf : type
: Estudiante
: E s t u d i a n t e owl : e q u i v a l e n t C l a s s : T r a b a j a d o r
: Juan
rdf : type
: Estudiante
: Juan
: Juan
rdf : type
: Trabajador
rdf : type
: Trabajador
owl:equivalentProperty
: D e j a r H a b i t a c i ó n
: Juan
: Juan
Isaac Lera
Web Semántica
58
o w l : e q u i v a l e n t P r o p e r t y : c h e c kO u t
: D e j a r H a b i t a c i ó n
: hotel
: c h ec k O u t
: hotel
Isaac Lera
Web Semántica
OWL
OWL
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
58
FunctionalProperty
: tieneID rdf : type
: Joan
: tieneID
: Joan
: tieneID
Individual = instance
Son hechos concretos o especı́ficos del dominio
: Rey
: JaumeI
rdf : type r d f s : Class
rdf : type
: Rey
: Passport340923
owl : F u n c t i o n a l P r o p e r t y
: Passport340923
: DNI742904
o w l : sameAs
: DNI742904
owl:sameAs (hechos equivalentes)
: JaumeI
Isaac Lera
o w l : sameAs
: ElConquistador
Web Semántica
59
Isaac Lera
Web Semántica
60
OWL
OWL
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
InverseFunctionalProperty
FunctionalProperty
: tieneID rdf : type
: Joan
: tieneID
: Joan
: tieneID
: Passport340923
: escritoPor
Wiki : Pi
Leaks : Pi
owl : F u n c t i o n a l P r o p e r t y
: Passport340923
: DNI742904
o w l : sameAs
Wiki : Pi
: DNI742904
rdf : type
: escritoPor
: escritoPor
o w l : sameAs
owl : I n v e r s e F u n c t i o n a l P r o p e r t y
: Joan
: Joan
Leaks : Pi
FunctionalProperty
: madre r d f : t y p e
: Joan
: madre
: Joan
: madre
owl : F u n c t i o n a l P r o p e r t y
: Lucia
: Mami
: Lucia
: Mami
o w l : sameAs
Isaac Lera
Web Semántica
60
Isaac Lera
Web Semántica
OWL
OWL
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
InverseFunctionalProperty
: escritoPor
Wiki : Pi
Leaks : Pi
rdf : type
: escritoPor
: escritoPor
61
Constructores sin semántica:
owl : I n v e r s e F u n c t i o n a l P r o p e r t y
: Joan
: Joan
Propiedades: Object Properties
Dominio y Rango con clases
Wiki : Pi
o w l : sameAs
: tieneMadre r d f : type
owl : O b j e c t P r o p e r t y
: Persona
: tieneMadre
: Muj er
Leaks : Pi
InverseFunctionalProperty
: persona
: ocupa
uib : Isaac
eps : Lera
uib : Isaac
Isaac Lera
: ocupa
rdf : type
: ocupa
: ocupa
o w l : sameAs
Propiedades: Datatype Properties
El rango es un literal
: despacho
owl : I n v e r s e F u n c t i o n a l P r o p e r t y
: D132
: D132
: tieneNombre r d f : type
: Persona
: tieneNombre
owl : D a t a t y p e P r o p e r t y
S t r i n g @Joan
eps : Lera
Web Semántica
61
Isaac Lera
Web Semántica
62
Break problemas para pensadores
1
Fuego y pólvora explosionan, pero pólvora y fuego?
Break problemas para pensadores
Break problemas para pensadores
1
Fuego y pólvora explosionan, pero pólvora y fuego?
2
Una persona tiene un diario
Break problemas para pensadores
1
Fuego y pólvora explosionan, pero pólvora y fuego?
1
Fuego y pólvora explosionan, pero pólvora y fuego?
2
Una persona tiene un diario
2
Una persona tiene un diario
3
Una persona tiene un DNI y ese DNI corresponde a esa persona
3
Una persona tiene un DNI y ese DNI corresponde a esa persona
4
Arroz a la cubana!
Break problemas para pensadores
Lenguajes de la Web Semántica
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
1
Fuego y pólvora explosionan, pero pólvora y fuego?
2
Una persona tiene un diario
3
Una persona tiene un DNI y ese DNI corresponde a esa persona
4
Arroz a la cubana!
5
...requisitos y prerrequisitos de cada etapa de la receta
Lenguajes de la Web Semántica
• XML
• NameSpaces, IRI y URI
• RDF
• RDFs
• OWL básico
• OWL extendido
Isaac Lera
Web Semántica
Lenguajes de la Web Semántica
OWL
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
64
Lenguajes de la Web Semántica
• XML
Restricciones
Una restricción es la definición de una clase por la descripción de sus miembros
en términos de propiedades y clases.
• NameSpaces, IRI y URI
• RDF
• RDFs
• OWL básico
• OWL básico II
• OWL extendido
Isaac Lera
Web Semántica
65
Isaac Lera
Web Semántica
66
OWL
OWL
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
Restricciones
Una restricción es la definición de una clase por la descripción de sus miembros
en términos de propiedades y clases.
owl:Restriction
rdfs:subClassOf
Restricciones
Una restricción es la definición de una clase por la descripción de sus miembros
en términos de propiedades y clases.
owl:class
owl:Restriction
rdfs:subClassOf
owl:class
Ejemplo: “Una persona documentada es una persona con dni”
Isaac Lera
Web Semántica
66
Isaac Lera
Web Semántica
OWL
OWL
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
OWL define tres tipos de restricciones:
OWL define tres tipos de restricciones:
• owl:someValuesFrom (9), ha de existir al menos uno.
• owl:someValuesFrom (9), ha de existir al menos uno.
• owl:allValueSFrom (8)
• owl:allValueSFrom (8), ninguno o todos.
• owl:hasValue
• owl:hasValue
“ Patatas con denominación de origen ”
“Una persona documentada es una persona con dni”
: PatatasSaPobla owl : s u b C l a s s O f
[a
owl : R e s t r i c t i o n ;
owl : o n P r o p e r t y : o r i g e n ;
owl : a l l V a l u e s F r o m : SaPobla } ]
: PersonaDocumentada o w l : e q u i v a l e n t C l a s s
[a
owl : R e s t r i c t i o n ;
o w l : o n P r o p e r t y : conID ;
o w l : someValuesFrom : D o c u m e n t o I d e n t i d a d ]
! Todas los hechos (’patatas’) de PatatasSaPobla han de tener con la
propiedad origen el rango hacia hechos de SaPobla
! Esa misma persona documentada puede tener más relaciones conID hacia
otros conceptos: carne VIP, tarjeta de estudiante, . . .
Isaac Lera
66
Web Semántica
67
Isaac Lera
Web Semántica
68
OWL
OWL
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
OWL define tres tipos de restricciones:
OWL define tres tipos de restricciones:
• owl:someValuesFrom (9), ha de existir al menos uno.
• owl:someValuesFrom (9), ha de existir al menos uno.
• owl:allValueSFrom (8), ninguno o todos.
• owl:allValueSFrom (8), ninguno o todos.
• owl:hasValue,
• owl:hasValue,
• + CARDINALIDAD
“PersonaExclusiva tiene acceso exclusivo VIP”
“Un equipo de fútbol tiene 11 jugadores en juego”
: P e r s o n a E x c l u s i v a owl : s u b C l a s s O f
[a
owl : R e s t r i c t i o n ;
owl : o n P r o p e r t y : t i p o A c c e s o ;
owl : hasValue
: exclusivo } ]
: exclusivo : individual
: normal
: individual
: Eq ui poF ut bo l owl : s u b C l a s s O f
[a
owl : R e s t r i c t i o n ;
owl : o n P r o p e r t y : j u e g a ;
owl : c a r d i n a l i t y 1 1 ]
: Nivel
: Nivel
+ owl:minCardinality y owl:maxCardinality
Isaac Lera
Web Semántica
69
Isaac Lera
Web Semántica
OWL
OWL
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
70
“Personal Universidad es PAS y/o PDI”
Unión
: PersonalUIB owl : e q u i v a l e n t C l a s s
[a
owl : C l a s s ;
owl : unionOf
( u : PDI u : PAS) ]
Conjuntos enumerados: oneOf
: JamesDeanMovies r d f : t y p e
owl : C l a s s ;
o w l : oneOf (
m ov ie : G i g a n t e
m ov ie : A l e s t e d e l Edén
m ov ie : R e b e l d e S i n c a u s a ) ]
“Jugador del Mallorca juega en Primera División, es un empleado del club y es
un jugador”
Intersección
: J u g a d o r M a l l o r c a owl : e q u i v a l e n t C l a s s
[a
owl : C l a s s ;
owl : i n t e r s e c t i o n O f
( JugadorPrimera , JugadorFutbol , EmpleadoMallorcaCF ) ]
Isaac Lera
Web Semántica
71
Isaac Lera
Web Semántica
72
OWL
OWL
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
Conjuntos disjuntos: disjointWith
Diferenciación de individuales: di↵erentFrom
: Hombre o w l : d i s j o i n t W i t h : Muj er
: Juan
rdf : type
: Hombre
: Luisa
rdf : type
: Muj er
: P e r a l o w l : d i f f e r e n t F r o m : Olmo
: Juan
Isaac Lera
Web Semántica
73
Isaac Lera
owl : d i f f e r e n t F r o m
: Luisa
Web Semántica
OWL
OWL
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
74
Conjuntos complementos: complementOf
Descripción: rdfs:subClassOf + Restricction
: J u g a d o r S e g u n d a D i v i s i ó n o w l : complementOf : J u g a d o r P r i m e r a D i v i s i ó n
Class ( ProfesorAdjunto p a r t i a l
Profesor
r e s t r i c t i o n ( h a s C o n t r a t o someValuesFrom ( 6 c r e d i t o s ) )
r e s t r i c t i o n ( h a s C o n t r a t o someValuesFrom ( S u e l d o X ) ) )
Otras combinaciones:
• complementOf( interesectionOf(clase1,clase2)) : no ambas clases = nada
Los profesoresAdjuntos tienen, entre otras cosas, algo en el contrato de
6creditos y también algo de sueldoX
de eso
• complementOf( unionOf(clase1,clase2)) : ni clase1 ni clase2
• restriction (prop someValuesOfFrom(complementOf(clase1))) : tiene una
Definición: owl:EquivalentClass + Restricction
prop que no la clase
• complementOf (restriction(prop someValuesOf(clase1))) : ninguna prop
Class ( ProfesorAdjunto complete
Profesor
r e s t r i c t i o n ( h a s C o n t r a t o someValuesFrom ( 6 c r e d i t o s ) )
que tenga la clase
• restriction (prop allValuesFrom( complementOf(clase1))) : tiene una única
Un profesorAdjunto es un profesor que tiene entre otras cosas algo en el
contrato de 6creditos.
prop que no está presente en la clase
• complementOf (restriction(prop allValuesFrom(clase1))) : no tiene una
única prop que este en la clase
Isaac Lera
Web Semántica
75
Isaac Lera
Web Semántica
76
Break para Pensadores
1
Persona mayor de edad.
Break para Pensadores
Break para Pensadores
1
Persona mayor de edad.
2
El complemento correcto de Jugadores de Segunda División:
“:SegundaDivisión owl:complementOf :PrimeraDivisión”
Break para Pensadores
1
Persona mayor de edad.
1
Persona mayor de edad.
2
El complemento correcto de Jugadores de Segunda División:
“:SegundaDivisión owl:complementOf :PrimeraDivisión”
2
El complemento correcto de Jugadores de Segunda División:
“:SegundaDivisión owl:complementOf :PrimeraDivisión”
3
Comida vegetariana y vegetarianos
3
Comida vegetariana y vegetarianos
4
Filtrar!
Lenguajes de la Web Semántica
OWL
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
Lenguajes de la Web Semántica
owl:Ontology
• XML - Extensible Markup Language(repaso)
• Agrupa las tripletas definidas por la URL
• Namespaces y Qname
• Modularidad: owl:imports
• RDF
• Anotaciones-Informalidad: verisonInfo, priorVersion,
• RDFs
backwardCompatibleWith, incompatibleWith, DeprecatedClass,
DeprecatedProperty
• OWL básico I & II
• OWL extendido
Isaac Lera
!Sin inferencia
Web Semántica
Ejemplo de OWL
78
Isaac Lera
Web Semántica
79
¿Cómo modelizar dentro de la WS?
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
Buenos pensamientos
< r d f : RDF
x m l n s=” h t t p : / / swap . u i b . e s /˜ i s a a c / s c e n a r i o 1 . o w l#”
x m l n s : x s d=” h t t p : / /www . w3 . o r g /2001/ XMLSchema#”
x m l n s : r d f=” h t t p : / /www . w3 . o r g /1999/02/22 r d f s y n t a x n s#”
x m l n s : r d f s=” h t t p : / /www . w3 . o r g /2000/01/ r d f schema#”
x m l n s : o w l=” h t t p : / /www . w3 . o r g /2002/07/ o w l#”
x m l n s : p e r f=” h t t p : / / swap . u i b . e s /˜ i s a a c / p e r f o r m a n c e . o w l#”
• Nomenclatura: Uso de conceptos adecuados. Saber que estamos diciendo,
¿cuestiones de competencia?, modelo de anticipación.
• Inferencia: Basarse en cuestiones.
• Modelización para el reuso: Estilo de nombres (CamelCase)
• ¿Clase o Individual?
xml : b a s e=” h t t p : / / swap . u i b . e s /˜ i s a a c / s c e n a r i o 1 . o w l ”>
<o w l : O n t o l o g y r d f : a b o u t=” ”>
<o w l : i m p o r t s r d f : r e s o u r c e=” h t t p : / / swap . u i b . e s /˜ i s a a c / p e r f o r m a n c e . o w l ”/>
</o w l : O n t o l o g y >
Malas maneras
• Desenfrenado clasismo: pensar en clases es más fácil!
• Exclusividad: pertenencia a una subclase también pertenece a una
<o w l : C l a s s r d f : ID=” D i s c o ”>
superclase (i.e. Persona - Ilegal - Ley Sinde?)
• Identificadores de clases: mejor anotaciones. Una clase o un tipo que
<D i s c o r d f : ID=” DiscoHP ”>
<p e r f : b e h a v i o r P a t t e r n >
< p e r f : OpenWorkload r d f : ID=” OpenWorkload 7 ”>
...
identifique un determinado grupo de elementos
• Progresiva conceptualización (i.e. ObrasDeArturoReverte - Obras -
Tangible - Intangible - Entidad - Abstracta. . . )
Isaac Lera
Web Semántica
81
Contenido
Introducción a la inferencia dentro de la WS
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
Modelización Inferencia Queries Herramientas Desarrollo Ejercicios Práctica Bibliografı́a
Modelización de información
Inferencia
Inferir información aporta ventajas pero ¿cuáles son los detalles del
razonamiento en WS?
SPARQL - queries sobre WS
Puntos
• Lógica Descriptiva
Herramientas
• BBDD vs Ontologies & Closed- vs Open-world semantics
• Perfiles de OWL
Otros paradigmas de desarrollo de W3C
• Reglas y SWRL
Ejercicios
Práctica
Isaac Lera
Web Semántica
82
Isaac Lera
Web Semántica
83
Descargar