Lenguajes de la Web Semántica Web Ontology Language
Transcripción
Lenguajes de la Web Semántica Web Ontology Language
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