RDF y RDF-Schema Por qué RDF? Lenguajes para la Web Semántica deben: Tener una sintaxis y semántica formal para automatizar el procesamiento de su contenido. Proveer una manera de estandarizar el vocabulario que se refiere a la semántica del ente en el mundo real para permitir a los agentes compartir información y conocimiento. Capturar metadatos que describen a un documento. Lenguajes Formales Inicialmente la Web creció principalmente alrededor de documentos HTML. Estructura y formato de los documentos. Familia de lenguajes de XML: permite definir languajes en universos de discurso específicos. semántica ligada a la sintaxis. HTML y XML Existe una sintaxis formal del lenguaje. XML permite añadir metadatos como parte de un documento. No existe una definición de la semántica. No existe una manera de identificar unívocamente a los objetos ni a sus propiedades. Resource Description Framework (RDF) Es un dialecto de XML para especificar metadatos o recursos. Un recurso es un ente que se identifica con URI (Uniform Resource Identifier). Ofrece una convención sintáctica y un modelo de datos simple para representar la semántica de los datos procesable por un computador. Permite crear metadatos sobre un documento como un ente individual. Es un modelo para representar propiedades etiquetadas y valores de propiedades. Recursos: objetos Propiedades: relaciones entre objetos. Resource Description Framework (RDF) Se basa en la idea de identificar los objetos usando los identificadores de Web (Uniform Resource Identifier) y describir los recursos en función de propiedades simples y sus valores. Un documento RDF contiene uno o más descripciones de recursos. Una descripción es un conjunto de afirmaciones sobre un recurso. El elemento <rdf:Description> contiene un atributo rdf:about que se refiere al recurso que se está describiendo. Los elementos hijos de un elemento <rdf:Description> son todas las propiedades del recurso que se está describiendo. RDF Permite a agentes de software compartir e intercambiar conocimiento. Basado en un modelo de datos simple, el cual es independiente de forma como se escriba (sintaxis) RDF-Modelo de Datos Predicado Objeto Sujeto Predicado Literal RDF-Modelo de Datos http://www.w3.org/Home/Lassila/doc1.html http://www.schema.org/#Creator http://www.w3.org/Home/Lassila RDF-Modelo de Datos Recurso Propiedad Ente del cual se habla Define relaciones del ente con otros entes o valores, aspectos específicos, características, atributos o relaciones. Afirmación Recurso tiene Propiedad con Valor(Objeto) Recursos, Propiedades y Objetos están identificados con un único Universal Resource Identifier (URI) => palabras en los documentos estén atados a una única definición que puede ser encontrada en la Web. RDF-Uniform Resource Identifier (URI) Es la identificación universal de un recurso u objeto. Existen dos tipos de URI: Uniform Resource Locator (URL): identifica un recurso a través de la forma cómo es accedido. http://www.example.com/stuff/index.html Identifica una página HTML en un servidor con nombre de DNS (Domain Name System) www.example.com y accedido via el prtocolo http. Uniform Resource Name (URN): Crea un nombre único y persistente por un recurso en cualquier namespace. RDF-Ejemplo Afirmación: “Ora Lassila es el creador del documento http://www.w3.org/Home/Lassila/doc1.html” Estructura: Recurso (sujeto) http://www.w3.org/Home/Lassila/doc1.html Propiedad (predicado) http://www.schema.org/#Creator Valor (objeto) “Ora Lassila” http://www.w3.org/Home/Lassila RDF Modelo de datos de RDF Tripletas (recurso,propiedad,valor) Recurso (Sujeto) Propiedad (Predicado) Valor (Objeto) Sintaxis de RDF Diferentes vocabularios de XML [http://www.w3.org/RDF/] RDF-Gramática Sujeto persona, animal o cosa que ejecuta la acción del verbo. Predicado modifica o dice algo sobre el sujeto. Objeto es una persona, animal o cosa a la cual se refiere el predicado. Afirmación combinación de un sujeto, predicado y objeto. RDF-Ejemplo Afirmación: La compañía vende baterías: Sujeto compañía. En RDF este es un recurso descrito. Puede ser descrito por el URL: http://www.business.org/ontology/#company Predicado vende. El concepto vender se define en http://www.business.org/ontology/#sells Objeto baterías. El concepto batteries se define en http://www.business.org/ontology/#batteries RDF-Modelo de Datos Sujeto: es el elemento que ejecuta la acción del verbo es el término del cual se dice algo ente que tiene identidad. Predicado: Es el que denota la acción que ejecuta el sujeto, Es una función del conjunto de elementos en valores de verdad, que denota si los elementos cumplen con la propiedad representada por el predicado. Objeto: Es un recurso referido por el predicado o un valor literal. RDF-Modelo de Datos Formal Un documento en RDF es un grafo etiquetado G=(V,E) donde V: conjunto de nodos recursos o valores. E: conjunto de arcos entre los nodos, E ⊆ V x V x L, donde L: conjunto de etiquetas. Los arcos representan propiedades. RDF-Modelo de Datos “Ora Lassila es el creador del documento http://www.w3.org/Home/Lassila/doc1.html” http://www.w3.org/Home/Lassila/doc1.html http://www.w3.org/Home/Lassila http://www.schema.org/#Creator RDF-Modelo de Datos Existe un conjunto llamado Recursos. Existe un conjunto llamado Literales. Existe un subconjunto de Recursos, llamado Propiedades. Existe un conjunto llamado Afirmaciones, cada elemento es un tripleta de la forma: {Pred,Sub,Obj}, donde Pred: es una propiedad, miembro de Propiedades. Sub: es un recurso, miembro de Recursos. Obj: es un recurso o un literal. Ejemplo de RDF <?xml:namespace ns=http://www.w3.org/RDF/RDF prefix=“RDF”> <?xml:namespace ns=“http://www.schema.org/#Creator” prefix=”DC”> <RDF:Description RDF:Resource=http://www.w3.org/Home/Lassila/doc1.html> <DC: Creator RDF:Resource= http://www.w3.org/Home/Lassila/ > Ora Lassila </DC: Creator> </RDF:Description> Namespace: son mecanismos simples de crear nombres globales únicos por los elementos y atributos del lenguaje de etiquetas. Elimina los conflcitos entre etiquetas que tengan el mismo nombre. Diferentes languajes se pueden mezclar. NameSpaces Cada nombre de una etiqueta de XML debe consistir de dos partes: Un prefijo: es una abrevación para el namespace en la declaración del namesapce. Una parte local: es el identificador para el metadatos. <xsd:integer> Declaración: <xsd:schema xmls:xsd=“http://www.w3.org/2001/XMLSchema”> RDF-Ejemplo <?xml version=‘1.0’ encoding=‘ISO-8859-1 ?’> <rdf:RDF xmls:rdf=http://www.w3.org/1999/02/22-rdf-syntax-nx# xmlns:rdfs=http://www.w3.org/TR/1999/PR-rdf-schema-19990303# xmls:s0=’http://www.w3.org/2000/PhotoRDF/dc-1-0# xmls:s1=’http://sophia.inria.fr/~enerbonn/rdfpiclang# xmls:s2=’http://www.w3.org/2000/PhotoRDF/technical-1-0#> <rdf:Description rdf:about=“http://www.c2i2.com/~budstv/images/shop1.jpg”> <s0:relationship> part-of Store Front</s0:relation> <s0:type> image </s0:type> <s0:format>image/jpeg</s0:format> <s1:xmllang> en </s1:xmllang> <s0:description> Buddy Belden’s work bench for TV repair</s0:description> <s2:camera> Kodak EasyShare</s2:camera> <s0:title> TV Shop repair bench</s0:title> </rdf:Description> </rdf:RDF> RDF Elemento description: Un conjunto de afirmaciones sobre un recurso. <rdf:Description rdf:about=URI> Esta etiqueta es esencial, Todos los recursos descritos deben tener asociado un URI. Los elementos hijos de la etiqueta <rdf:Description> son todas las propiedades del recurso que se está describiendo. RDF-Sintaxis Básica RDF ::= [‘<rdf:RDF>’] Description* [‘</rdf:RDF>’] Description ::= ‘<rdf:Description’ idAboutAttr? ‘>’ propertyElt* ‘</rdf:Description>’ idAboutAtt ::= idAttr | aboutAttr aboutAttr ::= ‘about=“ ’ URI-reference ‘ “ ‘ idAttr ::= ‘ID=“’ Idsymbol ‘ “ ‘ propertyElt ::= ‘<‘ propName ‘>’ value ‘,/’ propName ‘>’ | ‘<‘ propName resourceAttr ‘/>’ propName ::= Qname value ::= description | string resourceAttr ::= ‘resource=“ ’ URI-reference ‘ “ ‘ Qname ::= [Nsprefix ‘:’ ] name URI-reference ::=string, interpreted per [URI] Idsymbol ::= (any legal XML name symbol) namel ::= (any legal XML name symbol) NSprefixl ::= (any legal XML name symbol) String ::= (any XML text, with “<”, “>” and “&” escaped) RDF-Sintaxis rdf:Description Permite la definición de un conjunto de afirmaciones para un recurso. idAboutAtt ::= idAttr | aboutAttr aboutAttr ::= ‘about=“ ’ URI-reference ‘ “ ‘ idAttr ::= ‘ID=“’ Idsymbol ‘ “ ‘ Cuando el atributo about es usado, el elemento Description se refiere al recurso identificado por este valor. El atributo ID indica la creación de un nuevo recurso. El valor de este atributo es único en el documento. En un elemento Description no pueden aparecer al mismo tiempo los atributos about ID. RDF - Sintaxis Description ::= ‘<rdf:Description’ idAboutAttr? ‘>’ propertyElt* ‘</rdf:Description>’ propertyElt ::= ‘<‘ propName ‘>’ value ‘,/’ propName ‘>’ | ‘<‘ propName resourceAttr ‘/>’ propName ::= Qname value ::= description | string resourceAttr ::= ‘resource=“ ’ URI-reference ‘ “ ‘ Una descripción simple puede contener más de una propertyElt con la misma propName. Cada uno añade un arco el grafo. Dentro de un propertyElt el atributo resource especifica que otro recurso es el valor de esta propiedad, es decir, el valor de esta propiedad es otro recurso identificado por un URI. RDF-Sintaxis-Ejemplo Ora Lassila es el creador del recurso http://www.w3.org/Home/Lassila/doc1.html <rdf:RDF xmls:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns xmls:s=“http://description.org/schema”> <rdf:Description about=“http://www.w3.org/Home/Lassila/doc1/html”> <s:Creator> Ora Lassila</s:Creator> </rdf:Description> </rdf:RDF> RDF-Sintaxis-Ejemplo El empleado con identificador 85740 con nombre Ora Lassila y con e-mail [email protected], es el creador del recurso http://www.w3.org/Home/Lassila <rdf:RDF xmls:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns xmls:s=“http://description.org/schema”> <rdf:Description about=“http://www.w3.org/Home/Lassila”> <s:Creator rdf:resource=“http://www.w3.org/staffId/85740”/> </rdf:Description> <rdf:Description about=“http://www.w3.org/staffId/85740”> <s:Name> Ora Lassila </s:Name> <s:Email> [email protected] </s:Email> </rdf:Description> </rdf:RDF> RDF-Sintaxis-Ejemplo <rdf:RDF xmls:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns xmls:s=“http://description.org/schema”> <rdf:Description about=“http://www.w3.org/Home/Lassila”> <s:Creator> <rdf:Description about=“http://www.w3.org/staffId/85740”> <s:Name> Ora Lassila </s:Name> <s:Email> [email protected] </s:Email> </rdf:Description> </s:Creator> </rdf:Description> </rdf:RDF> RDF-Sintaxis-Ejemplo <rdf:RDF xmls:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns xmls:s=“http://description.org/schema”> <rdf:Description about=“http://www.w3.org/Home/Lassila”> <s:Creator rdf:resource=http://www.w3.org/staffId/85740, s:Name=“Ora Lassila” s:Email=“ [email protected]” /l> </rdf:Description> </rdf:RDF> Ejemplo RDF Existe un persona identificada por http://www.w3.org/People/EM/contact#me, cuyo nombre es Eric Miller, cuya dirección es: [email protected], y su título es Dr. Ejemplo RDF http://www.w3.org/2000/10/swap/pim/contact#Person http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://www.w3.org/People/EM/contact#me http://www.w3.org/2000/10/swap/pim/contact#fullName Eric Miller http://www.w3.org/2000/10/swap/pim/contact#mailBox mailTo: [email protected] http://www.w3.org/2000/10/swap/pim/contact#personalTitle Dr Ejemplo RDF <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntaxns#" xmlns:contact="http://www.w3.org/2000/10/swap/pim/contact#"> <contact:Person rdf:about="http://www.w3.org/People/EM/contact#me"> <contact:fullName>Eric Miller</contact:fullName> <contact:mailbox rdf:resource="mailto:[email protected]"/> <contact:personalTitle>Dr.</contact:personalTitle> </contact:Person> </rdf:RDF> RDF-Contenedores RDF define tres tipos de contenedores: Bag: una lista no ordenada de recursos o literales. Un Bag se utiliza para declarar que una propiedad tiene múltiples valores y que el orden no es importante. Repeticiones son permitidas. Sequence: una lista ordenada de recursos o literales. Un Sequence se utiliza para declarar que una propiedad puede tener múltiples valores y que el orden es relevante. Repeticiones son permitidas. Alternative: una lista de recursos o literales que representa alternativas para los valores (simples) de una propiedad. Un Alternative puede utlizarse para proveer traducciones del título de un trabajo. RDF-Contenedores-Sintaxis Container ::= Sequence | Bag | Alternative Sequence ::= ‘<rdf:Seq’ idAttr? ‘>’ member* ‘</rdf:Seq>’ Bag ::= ‘<rdf:Bag’ idAttr? ‘>’ member* ‘</rdf:Bag>’ Alternative::= ‘<rdf:Alt’ idAttr? ‘>’ member* ‘</rdf:Alt>’ Member::= referencedItem | inlineItem referencedItem::= ‘<rdf:li’ resourceAtt ‘/>’ inlineItem::= ‘<rdf:li>’ Value ‘/rdf:li>’ RDF::= ‘<rdf:RDF>’ Obj* ‘</rdf:RDF>’ Value::= Obj| string Obj::= Description|Container RDF-Sintaxis Los estudiantes en ci7454 son: luis, maria, pepe, jose <rdf:RDF> <rdf:Description about=“http://www.ldc.usb.ve/~mvidal/ci7454”> <s:students> <rdf:Bag> <rdf:li resource=“http://www.ldc.usb.ve/students/Luis”> <rdf:li resource=“http://www.ldc.usb.ve/students/Maria”> <rdf:li resource=“http://www.ldc.usb.ve/students/Pepe”> <rdf:li resource=“http://www.ldc.usb.ve/students/Jose”> </rdf:Bag> </s:students> </rdf:Description> </rdf:RDF> RDF-Sintaxis El código de fuente de XX se puede conseguir en ftp.x.org o ftp.y.org o ftp.z.org <rdf:RDF> <rdf:Description about=“http://x.org/XX”> <s:DistributionSite> <rdf:Alt> <rdf:li resource=“ftp://ftp.x.org”> <rdf:li resource=“ftp://ftp.y.org”> <rdf:li resource=“ftp://ftp.z.org”> </rdf:Alt> </s:DistributionSite> </rdf:Description> </rdf:RDF> RDF-Sintaxis Se puede referenciar a un contenedor en lugar de los elementos del mismo. <rdf:Bag ID=“estudiantesCi7454”> <rdf:li resource=“http://www.ldc.usb.ve/students/Luis”> <rdf:li resource=“http://www.ldc.usb.ve/students/Maria”> <rdf:li resource=“http://www.ldc.usb.ve/students/Pepe”> <rdf:li resource=“http://www.ldc.usb.ve/students/Jose”> </rdf:Bag> <rdf:Description about=# estudiantesCi7454 > <s:Course rdf:resource=“http://www.ldc.usb.ve/~mvidal/ci7454”/> </rdf:Description> RDF-Afirmaciones sobre Afirmaciones(Reification) Reification son afirmaciones de alto nivel que permiten expresar conocimiento sobre otras afirmaciones. Permite ver a una afirmación como un recurso, representando explicitamente al sujeto, predicado, objeto y tipo de la afirmación.. Luis Perez dice:” Ora Lassila es el creador del recurso http://www.w3.org/Home/Lassila/doc1.html” Afirmaciones: ” Ora Lassila es el creador del recurso http://www.w3.org/Home/Lassila” Luis Perez dice:… RDF- Reification Para modelar afirmaciones RDF ofrece las siguientes propiedades: Sujeto: esta propiedad representa el sujeto que identifica al recurso que se está describiendo en la afirmación modelada. Predicado: esta propiedad representa el predicado original en la afirmación modelada. Objeto: esta propiedad representa el valor en la afirmación modelada. Tipo: esta propiedad describe el tipo del nuevo recurso. Todas las afirmaciones reified son instancias de RDF:Statement, es decir, ellos tienen una propiedad type cuyo objecto es RDF:Statement. Esta propiedad provee una forma primitiva de definición de tipos. RDF-Ejemplo <rdf:RDF> xmls:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# xmls:a=http://description.org/schema/> <rdf:Description> <rdf:subject resource=“http://www.w3.org/Home/Lassila/doc1.html”> < rdf:predicate resource=“http://description.org/schema/Creator /> <rdf:object> Ora Lassila</rdf:object> <rdf:type resource=“http://www.w3.org/1999/02/22-rdf-syntaxns#Statements” /> <a:attributedTo> Luis Perez </a:attributedTo> </rdf:Description> </rdf:RDF> RDF-Desventajas Dos documentos pueden usar definiciones diferentes del mismo concepto y no se puede decidir que son equivalentes. Tiene problemas de ambiguedad en la definición de sus elementos. No se permite el manejo/definición de restricciones de integridad. RDF no se ajusta bien a documentos XML. Algunas partes de RDF son complejas. RDF Schema RDF Schema RDF XML URI NameSpaces XML: elementos, atributos y notación de las etiquetas. URI: Identificación Universal. NameSpaces: identificación de los vocabularios. RDF: modelo de tripletas (sujeto,predicado,valor) RDF Schema Es un conjunto de: recursos propiedades para facilitar la definición de vocabularios. RDF Schema implementa un modelo de datos orientado por objetos. Se diferencia de los modelos de datos OO en que se debe seguir una metodología bottom-up Se definen las propiedades y luego se establece a que clases caracterizan. RDF Schema-Estructuras Clases: grupo de entes o recursos con características comunes. Están usualmente caracterizados por un URI. Instancias: objetos de clases o interrelaciones. La extensión de una clase, es el conjunto de instancias de la misma. Relación IS-A: relación de subclase entre clases. Propiedades: representa la característica de un ente o asociaciones entre grupos de entes. Dominio: representa el dominio de una propiedad. RDF-Elementos rdf:Property: elemento que permite definir una propiedad y su rango de valores. <rdf:Property rdf:about..> … propiedades </rdf:Property> rdf:type: elemento que permite definir que un sujeto RDF es de un cierto tipo. <rdf:Description rdf:about=“http://www.mybiz.com/staff/ID/865”> <rdf:type rdf:resource=“Employee”> RDF Schema-Elementos rdfs:Class: representa una clase. Se usa conjuntamente con rdf:Property, rdfs:rango y rdfs:domain para asignar propiedades a una clase. Requiere de un URI como identificador en el atributo rdf:about. Los elementos <rdfs:label> <rdfs:subclassOf> <rdfs:comment> <rdfs:isDefinedBy> se usan como subelementos. <rdfs:Class rdf:about=URI> <rdfs:label> Empleado </rdfs:label> <rdfs:comment> representa un empleado universitario<rdfs:comment> <rdfs:subclassOf rdf:resource=“#empleadoPublico”/> </rdfs:Class> RDF Schema-Elementos rdfs:label: define una etiqueta para una clase o propiedad. rdfs:subClassOf: especifica que una clase es la especilaización de otra clase. La clase hereda todas las propiedades de la clase madre. <rdfs:comment>: permite añadir comentarios a las clases y propiedades. <rdfs:isDefinedBy>: define el nameSpace del sujeto. RDF Schema-Elementos rdfs: domain: define cual es la clase a la que una propiedad pertenece. rdfs:range: define el conjunto de valores posibles de una propiedad. rdfs:subPropertyof: declara que la propiedad sujeto es subpropiedad de otra propiedad. rdfs:seeAlso: permite referirse a un recurso que provee información adicional al recurso actual. rdfs:Literal: representa un valor constante representado como una cadena de caracteres. RDF Schema-Ejemplo <rdfs:class rdf:ID=“comunidadUniversitaria” rdfs:label=“ComunidadUniversitaria”> </rdfs:class> <rdf:Property rdf:ID=“nombre” rdfs:label=“Nombre”> <rdfs:domain rdf:resource=“# comunidadUniversitaria”/> <rdfs:rango rdfs:resource=“http://www.w3.org/2000/01/rdfschema#Literal”/> </rdf:Property> <rdfs:class rdf:ID=“profesor” rdfs:label=“Profesor”> <rdfs:subClass rdf:resource=“# comunidadUniversitaria”> </rdfs:class> <rdfs:class rdf:ID=“estudiante” rdfs:label=“Estudiante”> <rdfs:subClass rdf:resource=“# comunidadUniversitaria”> </rdfs:class> <rdfs:class rdf:ID=“empleado” rdfs:label=“Empleado”> <rdfs:subClass rdf:resource=“# comunidadUniversitaria”> </rdfs:class> RDF-Ejercicios Escribir en RDF las siguientes oraciones: Luis Perez es el profesor de ci7454. Los estudiantes de ci7454 son: jose, luis, pedro y luisa. Alguno de los libros utilizados en ci7454 son: D. Fensel, J. Hendler, H. Lieberman, W. Waslster, “Spinning The Semantic Web”. MIT Press. 2003. M. Daconta, L. Obrst, K. Smith, “The Semantic Web”. Wiley Publishing. 2003. Z. Lacroix, T. Critchlow, “Bionformatics, Managing Scientific Data”. Morgan Kaufmann 2003. S. Abiteboul, P. Buneman, D. Suciu, “Data on the Web”. Morgan Kaufmann 2000. Artículos. Las clases de ci7454 son los martes de 1:00 pm a 5:00pm. Jose Perez piensa que ci7454 es un curso interesante.