Tecnologias de Banco de Dados para a Web Semântica Módulo 2b - Ontologias - RDF Marco A. Casanova 7/3/2005 (c) Marco A. Casanova - PUC-Rio 1
Tópicos Introdução URIref e Qname RDF Básica RDF/XML Outros recursos de RDF RDF Schema Exemplos de RDF Schemas 7/3/2005 (c) Marco A. Casanova - PUC-Rio 2
Introdução RDF: provê uma linguagem comum que as aplicações podem utilizar para intercambiar informação, sem perda de significado: informação sobre recursos na Web, particularmente metadados informação sobre objetos que podem ser identificados na Web, mesmo que não possam ser recuperados pela Web (como produtos vendidos pela Web) 7/3/2005 (c) Marco A. Casanova - PUC-Rio 3
URIref e Qname URI Reference (URIref): uma URI com um identificador de fragmento opcional utilizada para identificar: indivíduos, e.g., Eric Miller, identificado por http://www.w3.org/people/em/contact#me tipos de objetos, e.g., Person, identificado por http://www.w3.org/2000/10/swap/pim/contact#person propriedades de objetos, e.g., mailbox, identificado por http://www.w3.org/2000/10/swap/pim/contact#mailbox valores das propriedades, e.g. mailto:em@w3.org, identificado por http://www.example.org/staffem/85741 7/3/2005 (c) Marco A. Casanova - PUC-Rio 4
URIref e Qname Qualified Name (QName): uma abreviação para uma URI reference QName prefix: uma abreviação para um URI namespace Exemplo: foo é um QName prefix abreviando o URI namespace http://example.org/somewhere/ foo:bar é um QName abreviando a URIref http://example.org/somewhere/bar 7/3/2005 (c) Marco A. Casanova - PUC-Rio 5
URIref e Qname Exemplos de QName prefix mais usados: rdf: rdfs: dc: daml: ex: xsd: http://www.w3.org/1999/02/22-rdf-syntax-ns# http://www.w3.org/2000/01/rdf-schema# http://purl.org/dc/elements/1.1/ http://www.daml.org/2001/03/daml+oil# http://www.example.org/ http://www.w3.org/2001/xmlschema# 7/3/2005 (c) Marco A. Casanova - PUC-Rio 6
RDF Básica RDF Model: um recurso em RDF é qualquer URIref uma afirmação em RDF é uma tripla (S, P, O), entendida como S possui P com valor O, onde S é o sujeito da afirmação, designado por um recurso P é o predicado da afirmação, designado por um recurso O é o o objeto da afirmação, designado por um recurso ou literal 7/3/2005 (c) Marco A. Casanova - PUC-Rio 7
RDF Básica RDF Model: um grupo de afirmações em RDF deve ser entendido como a conjunção das afirmações 7/3/2005 (c) Marco A. Casanova - PUC-Rio 8
RDF Básica Exemplo: http://www.example.org/index.html has a creator whose value is John Smith sujeito: http://www.example.org/index.html predicado: http://purl.org/dc/elements/1.1/creator (URI para creator ) objeto: http://www.example.org/staffid/85740 (URI para John Smith ) 7/3/2005 (c) Marco A. Casanova - PUC-Rio 9
RDF Básica Notação em triplas: <http://www.example.org/index.html> <http://purl.org/dc/elements/1.1/creator> <http://www.example.org/staffid/85740>. Notação em grafo: Sujeito propriedade Objeto 7/3/2005 (c) Marco A. Casanova - PUC-Rio 10
<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://www.example.org/terms/language> "English". literais 7/3/2005 (c) Marco A. Casanova - PUC-Rio 11
RDF Básica 7/3/2005 (c) Marco A. Casanova - PUC-Rio 12
RDF Básica Valores estruturados de propriedades e nós vazios: exstaff:85740 exterms:address _:johnaddress. _:johnaddress exterms:street "1501 Grant Avenue". _:johnaddress exterms:city "Bedford". _:johnaddress exterms:state "Massachusetts". _:johnaddress exterms:zip "01730". 7/3/2005 (c) Marco A. Casanova - PUC-Rio 13
RDF Básica nó vazio 7/3/2005 (c) Marco A. Casanova - PUC-Rio 14
RDF Básica Literais tipados: ex:index.html exterms:creation-date "1999-08-16"^^xsd:date. 7/3/2005 (c) Marco A. Casanova - PUC-Rio 15
RDF/XML Exemplo: ex:index.html exterms:creation-date "August 16, 1999". ex:index.html exterms:language "English". ex:index.html dc:creator http://www.example.org/staffid/85740. <?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> <exterms:language>english</exterms:language> <dc:creator rdf:resource="http://www.example.org/staffid/85740"/> </rdf:description> </rdf:rdf> 7/3/2005 (c) Marco A. Casanova - PUC-Rio 16
<?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> <exterms:language>english</exterms:language> <dc:creator rdf:resource="http://www.example.org/staffid/85740"/> </rdf:description> </rdf:rdf> 7/3/2005 (c) Marco A. Casanova - PUC-Rio 17
RDF/XML rdf:rdf indica que o documento XML define afirmações em RDF rdf:description indica o início da descrição de um recurso <?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> <exterms:language>english</exterms:language> <dc:creator rdf:resource="http://www.example.org/staffid/85740"/> </rdf:description> </rdf:rdf> 7/3/2005 (c) Marco A. Casanova - PUC-Rio 18
RDF/XML rdf:about valor do atributo é uma URIref identificando o recurso property elements aninhados no elemento "rdf:description" indicam que a propriedade aplica-se ao recurso em "rdf:about" <?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> <exterms:language>english</exterms:language> <dc:creator rdf:resource="http://www.example.org/staffid/85740"/> </rdf:description> </rdf:rdf> 7/3/2005 (c) Marco A. Casanova - PUC-Rio 19
RDF/XML rdf:id indica o uso de um fragment identifier, uma abreviação para a URIref completa do recurso sendo descrito a URIref completa para o recurso é criada concatenando-se: a base URI com o símbolo "#" com o valor de "rdf:id" rdf:id="fragment identifier" é equivalente a rdf:about="#fragment identifier" 7/3/2005 (c) Marco A. Casanova - PUC-Rio 20
RDF/XML Exemplo: fragment identifier: item10245 base URI: http://www.example.com/2002/04/products URIref equivalente: http://www.example.com/2002/04/products#item10245 <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:exterms="http://www.example.com/terms/"> <rdf:description rdf:id="item10245"> <exterms:model>overnighter</exterms:model> <exterms:sleeps>2</exterms:sleeps> <exterms:weight>2.4</exterms:weight> <exterms:packedsize>14x56</exterms:packedsize> </rdf:description> </rdf:rdf> 7/3/2005 (c) Marco A. Casanova - PUC-Rio 21
RDF/XML XML base por default, a base URI é a URI do documento que contém as afirmações em RDF alternativamente, a base URI pode ser indicada explicitamente através do atributo xml:base <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:exterms="http://www.example.com/terms/" xml:base="http://www.example.com/2002/04/products"> <rdf:description rdf:id="item10245"> <exterms:model>overnighter</exterms:model> <exterms:sleeps>2</exterms:sleeps> <exterms:weight>2.4</exterms:weight> <exterms:packedsize>14x56</exterms:packedsize> </rdf:description> </rdf:rdf> 7/3/2005 (c) Marco A. Casanova - PUC-Rio 22
RDF/XML rdf:type propriedade tal que: valor da propriedade: recurso representando uma categoria ou classe de objetos sujeito da propriedade: instância da categoria ou classe 7/3/2005 (c) Marco A. Casanova - PUC-Rio 23
Exemplo de rdf:type RDF/XML <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:exterms="http://www.example.com/terms/" xml:base="http://www.example.com/2002/04/products"> <rdf:description rdf:id="item10245"> <rdf:type rdf:resource="http://www.example.com/terms/tent" /> <exterms:model>overnighter</exterms:model> <exterms:sleeps>2</exterms:sleeps> <exterms:weight>2.4</exterms:weight> <exterms:packedsize>14x56</exterms:packedsize> </rdf:description>...other product descriptions... </rdf:rdf> 7/3/2005 (c) Marco A. Casanova - PUC-Rio 24
RDF/XML Exemplo de notação simplificada para rdf:type <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:exterms="http://www.example.com/terms/" xml:base="http://www.example.com/2002/04/products"> <exterms:tent rdf:id="item10245"> <exterms:model>overnighter</exterms:model> <exterms:sleeps>2</exterms:sleeps> <exterms:weight>2.4</exterms:weight> <exterms:packedsize>14x56</exterms:packedsize> </exterms:tent>...other product descriptions... </rdf:rdf> 7/3/2005 (c) Marco A. Casanova - PUC-Rio 25
RDF/XML Exemplo de uso de literais tipados ex:index.html exterms:creation-date "1999-08-16"^^xsd:date. <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:exterms="http://www.example.org/terms/"> <rdf:description rdf:about="http://www.example.org/index.html"> <exterms:creation-date rdf:datatype= "http://www.w3.org/2001/xmlschema#date">1999-08-16 </exterms:creation-date> </rdf:description> </rdf:rdf> 7/3/2005 (c) Marco A. Casanova - PUC-Rio 26
Outros recursos de RDF RDF Containers um container é um recurso que contém objetos, chamados de membros os membros podem ser recursos ou literais 7/3/2005 (c) Marco A. Casanova - PUC-Rio 27
Outros recursos de RDF RDF Containers tipos de containers: rdf:bag rdf:seq rdf:alt tipo dos containers que designam conjuntos ("bag") de recursos ou literais tipo dos containers que designam seqüências de recursos ou literais tipo dos containers que designam grupos de recursos ou literais que representam alternativas 7/3/2005 (c) Marco A. Casanova - PUC-Rio 28
Outros recursos de RDF 7/3/2005 (c) Marco A. Casanova - PUC-Rio 29
Outros recursos de RDF Exemplo de rdf:bag <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:s="http://example.edu/students/vocab#"> <rdf:description rdf:about="http://example.edu/courses/6.001"> <s:students> <rdf:bag> <rdf:li rdf:resource="http://example.edu/students/amy"/> <rdf:li rdf:resource="http://example.edu/students/tim"/> <rdf:li rdf:resource="http://example.edu/students/john"/> <rdf:li rdf:resource="http://example.edu/students/mary"/> <rdf:li rdf:resource="http://example.edu/students/sue"/> </rdf:bag> </s:students> </rdf:description> </rdf:rdf> 7/3/2005 (c) Marco A. Casanova - PUC-Rio 30
Outros recursos de RDF 7/3/2005 (c) Marco A. Casanova - PUC-Rio 31
Outros recursos de RDF Exemplo de rdf:alt <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:s="http://example.org/packages/vocab#"> <rdf:description rdf:about="http://example.org/packages/x11"> <s:distributionsite> <rdf:alt> <rdf:li rdf:resource="ftp://ftp.example.org"/> <rdf:li rdf:resource="ftp://ftp.example1.org"/> <rdf:li rdf:resource="ftp://ftp.example2.org"/> </rdf:alt> </s:distributionsite> </rdf:description> </rdf:rdf> 7/3/2005 (c) Marco A. Casanova - PUC-Rio 32
Outros recursos de RDF RDF Collection um grupo de objetos representado como uma lista em RDF através do seguinte vocabulário: rdf:list rdf:first rdf:rest rdf:nil tipo das listas de recursos ou literais primeiro elemento de uma lista resto de uma lista lista vazia 7/3/2005 (c) Marco A. Casanova - PUC-Rio 33
7/3/2005 (c) Marco A. Casanova - PUC-Rio 34
Outros recursos de RDF Exemplo de RDF Collection <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:s="http://example.edu/students/vocab#"> <rdf:description rdf:about="http://example.edu/courses/6.001"> <s:students rdf:parsetype="collection"> <rdf:description rdf:about="http://example.edu/students/amy"/> <rdf:description rdf:about="http://example.edu/students/tim"/> <rdf:description rdf:about="http://example.edu/students/john"/> </s:students> </rdf:description> </rdf:rdf> 7/3/2005 (c) Marco A. Casanova - PUC-Rio 35
Outros recursos de RDF RDF Reification rdf:statement indica que a afirmação é sobre outra afirmação rdf:subject sujeito da afirmação rdf:predicate predicado da afirmação rdf:object objeto da afirmação 7/3/2005 (c) Marco A. Casanova - PUC-Rio 36
Outros recursos de RDF Exemplo de RDF Reification [[exproducts:item10245 exterms:weight "2.4".]] dc:creator exstaff:85740. _:xxx rdf:type rdf:statement. _:xxx rdf:subject exproducts:item10245. _:xxx rdf:predicate exterms:weight. _:xxx rdf:object "2.4". _:xxx dc:creator exstaff:85740. 1. Estas triplas indicam que "há uma afirmação cujo sujeito é "exproducts:item10245", cujo predicado é "exterms:weight", e cujo objeto é "2.4" e que a afirmação foi feita pelo recurso identificado por "exstaff:85740" " 2. Estas triplas não indicam que a afirmação (identificada por "_:xxx") é a mesma que alguma afirmação específica em um documento RDF. 7/3/2005 (c) Marco A. Casanova - PUC-Rio 37
Resumo do Vocabulário Termos Básicos rdf:rdf rdf:description rdf:about rdf:id rdf:resource property elements rdf:type rdf:property termo indicando que o documento define afirmações em RDF termo indicando o início da descrição de um recurso termo indicando uma URIref identificando o recurso termo indicando um fragment identifier identificando o recurso termo indicando um recurso elementos aninhados no elemento "rdf:description"; indicam que a propriedade aplica-se ao recurso descrito valor da propriedade é um recurso representando uma categoria ou classe de objetos; sujeito da propriedade é uma instância da categoria ou classe classe das propriedades Descrição 7/3/2005 (c) Marco A. Casanova - PUC-Rio 38
Resumo do Vocabulário RDF Container rdf:seq rdf:bag rdf:alt rdf:li classe das seqüência de recursos ou literais classe dos conjuntos ("bag") de recursos ou literais classe dos grupo de recursos ou literais que representam alternativas indica um elemento Descrição 7/3/2005 (c) Marco A. Casanova - PUC-Rio 39
Resumo do Vocabulário RDF Collection rdf:list rdf:first rdf:rest rdf:nil rdf:parsetype= "Collection" Descrição classe das listas de recursos ou literais propriedade indicando o primeiro elemento de uma lista propriedade indicando o resto de uma lista recurso indicando a lista vazia (equivalente a rdf:list em RDF/XML) 7/3/2005 (c) Marco A. Casanova - PUC-Rio 40
Resumo do Vocabulário RDF Reification rdf:statement rdf:subject rdf:predicate rdf:object Descrição tipo indicando que a afirmação é sobre outra afirmação propriedade indicando o sujeito da afirmação propriedade indicando o predcado da afirmação propriedade indicando o objeto da afirmação 7/3/2005 (c) Marco A. Casanova - PUC-Rio 41
RDF Schema Definição de RDF Schema (RDFS): sistema de tipos para RDF, permitindo definir: classes hierarquia de classes propriedades de classes usa o próprio RDF para especificar o sistema de tipos 7/3/2005 (c) Marco A. Casanova - PUC-Rio 42
RDF Schema Definição de RDF Schema (RDFS): provê um conjunto de recursos e propriedades: com significado definido utilizado para descrever classes e propriedades de uma aplicação forma um vocabulário reservado (de RDF Schema) estendendo o vocabulário de RDF 7/3/2005 (c) Marco A. Casanova - PUC-Rio 43
RDF Schema Vocabulário de RDF: rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# Vocabulário de RDF Schema: rdfs: http://www.w3.org/2000/01/rdf-schema# Namespace usado para os exemplos: ex: http://www.example.org/ 7/3/2005 (c) Marco A. Casanova - PUC-Rio 44
RDF Schema Definição de classe: sujeito: o nome da classe propriedade: rdf:type objeto: rdfs:class Exemplo: ex:motorvehicle rdf:type rdfs:class. (nota: triplas usando QName prefixes dispensam o uso de < e > ) 7/3/2005 (c) Marco A. Casanova - PUC-Rio 45
RDF Schema Definição de classe em RDF/XML: xml:base: ex: tripla: ex:motorvehicle rdf:type rdfs:class. <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns# > <rdf:description rdf:id="motorvehicle"> <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#class"/> </rdf:description> </rdf:rdf> 7/3/2005 (c) Marco A. Casanova - PUC-Rio 46
RDF Schema Definição de subclasse: sujeito:o recurso identificando o nome da classe propriedade: rdfs:subclassof objeto: o recurso identificando o nome da classe Exemplo: ex:van rdf:type rdfs:class. ex:van rdfs:subclassof ex:motorvehicle. 7/3/2005 (c) Marco A. Casanova - PUC-Rio 47
RDF Schema Subclasse (cont.): a propriedade rdfs:subclassof é transitiva Exemplo de subclasses transitivas: ex:van rdf:type rdfs:class. ex:minvan rdf:type rdfs:class. ex:van rdfs:subclassof ex:motorvehicle. ex:minvan rdfs:subclassof ex:van. ex:minvan rdfs:subclassof ex:motorvehicle. 7/3/2005 (c) Marco A. Casanova - PUC-Rio 48
7/3/2005 (c) Marco A. Casanova - PUC-Rio 49
RDF Schema Exemplo de esquema em triplas: ex:motorvehicle rdf:type rdfs:class. ex:passengervehicle rdf:type rdfs:class. ex:van rdf:type rdfs:class. ex:truck rdf:type rdfs:class. ex:minivan rdf:type rdfs:class. ex:passengervehicle rdfs:subclassof ex:motorvehicle. ex:van rdfs:subclassof ex:motorvehicle. ex:truck rdfs:subclassof ex:motorvehicle. ex:minivan rdfs:subclassof ex:van. ex:minivan rdfs:subclassof ex:passengervehicle. 7/3/2005 (c) Marco A. Casanova - PUC-Rio 50
<?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> Exemplo de esquema em RDF/XML <rdf:description rdf:id="motorvehicle"> <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#class"/> </rdf:description> <rdf:description rdf:id="passengervehicle"> <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#class"/> <rdfs:subclassof rdf:resource="#motorvehicle"/> </rdf:description> <rdf:description rdf:id="truck"> <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#class"/> <rdfs:subclassof rdf:resource="#motorvehicle"/> </rdf:description> <rdf:description rdf:id="van"> <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#class"/> <rdfs:subclassof rdf:resource="#motorvehicle"/> </rdf:description> <rdf:description rdf:id="minivan"> <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#class"/> <rdfs:subclassof rdf:resource="#van"/> <rdfs:subclassof rdf:resource="#passengervehicle"/> </rdf:description> 7/3/2005 </rdf:rdf> (c) Marco A. Casanova - PUC-Rio 51
RDF Schema Definição de instância de classe: sujeito:o recurso identificando a instância da classe propriedade: rdf:type objeto: o recurso identificando o nome da classe Exemplo: ex:companycar rdf:type ex:motorvehicle. 7/3/2005 (c) Marco A. Casanova - PUC-Rio 52
RDF Schema Definição de inst. de classe em RDF/XML: xml:base: ex: tripla: ex:companycar rdf:type ex:motorvehicle. <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://example.org/schemas/vehicles"> <rdf:description rdf:id="companycar"> <rdf:type rdf:resource="http://example.org/schemas/vehicles#motorvehicle"/> </rdf:description> </rdf:rdf> 7/3/2005 (c) Marco A. Casanova - PUC-Rio 53
RDF Schema Definição de inst. de classe em RDF/XML: xml:base: ex: tripla: ex:companycar rdf:type ex:motorvehicle. <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns# > <rdf:description rdf:id="companycar"> <rdf:type rdf:resource= #MotorVehicle"/> </rdf:description> URIref relativa </rdf:rdf> 7/3/2005 (c) Marco A. Casanova - PUC-Rio 54
RDF Schema Definição de inst. de classe em RDF/XML: xml:base: ex: tripla: ex:companycar rdf:type ex2:motorvehicle. <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex2="http://example.org/schemas/vehicles"> <rdf:description rdf:id="companycar"> <rdf:type rdf:resource= ex2:#motorvehicle"/> </rdf:description> </rdf:rdf> 7/3/2005 (c) Marco A. Casanova - PUC-Rio 55
RDF Schema Definição de propriedade: sujeito:o recurso identificando o nome da propriedade propriedade: rdf:type objeto: rdf:property (uma classe definida em RDF) Exemplo: exterms:weightinkg rdf:type rdf:property. 7/3/2005 (c) Marco A. Casanova - PUC-Rio 56
RDF Schema Definição de domínio (Domain): sujeito:o recurso identificando o nome da propriedade propriedade: rdfs:domain objeto: o recurso identificando o nome de uma classe Exemplos: ex:book rdf:type rdfs:class. ex:author rdf:type rdf:property. ex:author rdfs:domain ex:book. 7/3/2005 (c) Marco A. Casanova - PUC-Rio 57
RDF Schema Definição de contradomínio (Range): sujeito:o recurso identificando o nome da propriedade propriedade: rdfs:range objeto: o recurso identificando o nome de uma classe ou o nome de um XSD data type Exemplos: ex:person rdf:type rdfs:class. ex:age rdf:type rdf:property. ex:author rdf:type rdf:property. ex:age rdfs:range xsd:integer. ex:author rdfs:range ex:person. xsd:integer rdf:type rdfs:datatype. 7/3/2005 (c) Marco A. Casanova - PUC-Rio 58
<rdf:description rdf:id="registeredto"> <rdf:type Exemplo de propriedades em RDF/XML rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#property"/> <rdfs:domain rdf:resource="#motorvehicle"/> <rdfs:range rdf:resource="#person"/> </rdf:description> <rdf:description rdf:id="rearseatlegroom"> <rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#property"/> <rdfs:domain rdf:resource="#passengervehicle"/> <rdfs:range rdf:resource="http://www.w3.org/2001/xmlschema#integer"/> </rdf:description> <rdf:description rdf:id="person"> <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#class"/> </rdf:description> <rdf:description rdf:about="http://www.w3.org/2001/xmlschema#integer"> <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#datatype"/> </rdf:description> 7/3/2005 (c) Marco A. Casanova - PUC-Rio 59
RDF Schema Subpropriedade: sujeito:o recurso identificando o nome da propriedade propriedade: rdfs:subpropertyof objeto: recurso identificando o nome da sub-propriedade Exemplo de definição de sub-propriedade: ex:driver rdf:type rdf:property. ex:primarydriver rdf:type rdf:property. ex:primarydriver rdfs:subpropertyof ex:driver. 7/3/2005 (c) Marco A. Casanova - PUC-Rio 60
RDF Schema Exemplo em RDF/XML: <rdf:description rdf:id="driver"> <rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#property"/> <rdfs:domain rdf:resource="#motorvehicle"/> </rdf:description> <rdf:description rdf:id="primarydriver"> <rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#property"/> <rdfs:subpropertyof rdf:resource="#driver"/> </rdf:description> 7/3/2005 (c) Marco A. Casanova - PUC-Rio 61
RDF Schema Instância de propriedade: sujeito: recurso identificando uma instância de uma classe propriedade: o nome da propriedade objeto: recurso identificando uma instância de uma classe ou literal indicando o valor da propriedade Exemplo: ex:johnsmithscar ex:registeredto ex:85740. 7/3/2005 (c) Marco A. Casanova - PUC-Rio 62
RDF Schema Instância de propriedade em RDF/XML: <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://example.org/schemas/vehicles"> <rdf:description rdf:id="johnsmithscar"> <rdf:type rdf:resource="http://example.org/schemas/vehicles#passengervehicle"/> <ex:registeredto rdf:resource="http://www.example.org/staffid/85740"/> <ex:rearseatlegroom rdf:datatype="http://www.w3.org/2001/xmlschema#integer"> 127 </ex:rearseatlegroom> <ex:primarydriver rdf:resource="http://www.example.org/staffid/85740"/> </rdf:description> </rdf:rdf> 7/3/2005 (c) Marco A. Casanova - PUC-Rio 63
RDF Schema Forma abreviada em RDF/XML: <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://example.org/schemas/vehicles"> <ex:passengervehicle rdf:id="johnsmithscar"> <ex:registeredto rdf:resource="http://www.example.org/staffid/85740"/> <ex:rearseatlegroom rdf:datatype="http://www.w3.org/2001/xmlschema#integer"> 127 </ex:rearseatlegroom> <ex:primarydriver rdf:resource="http://www.example.org/staffid/85740"/> </ex:passengervehicle> </rdf:rdf> 7/3/2005 (c) Marco A. Casanova - PUC-Rio 64
RDF Schema Interpretação de um RDF Schema: regra de escopo para propriedades: linguagens de programação: RDF: o escopo de um atributo é restrito à classe ou tipo em que é definido o escopo de uma propriedade é global, ou seja, independente da definição das classes 7/3/2005 (c) Marco A. Casanova - PUC-Rio 65
RDF Schema Interpretação de um RDF Schema: papel das descrições em um esquema: linguagens de programação: RDF: a definição dos tipos ou classes é prescritiva um RDF schema é apenas uma descrição adicional dos recursos a aplicação decide como interpretar o esquema 7/3/2005 (c) Marco A. Casanova - PUC-Rio 66
RDF Schema Interpretação de um RDF Schema (cont.): papel das descrições em um esquema: uma descrição de uma instância pode ser considerada válida (por uma aplicação) sem que especifique alguma propriedade definida no esquema ou com uma propriedade adicional não descrita no esquema 7/3/2005 (c) Marco A. Casanova - PUC-Rio 67
RDF Schema Vocabulário de RDF Schema Classe Conceito Propriedade de classe Recurso rdfs:class rdfs:resource rdf:property Propriedade rdf:type rdfs:subclassof rdf:type rdfs:domain rdfs:range rdfs:subpropertyof 7/3/2005 (c) Marco A. Casanova - PUC-Rio 68
Exemplos de RDF Schemas Dublin Core Metadata Initiative http://dublincore.org/documents/dces/ conjunto mínimo de elementos descritivos para facilitar a descrição e indexação automática de objetos, como documentos, interligados entre si, de forma semelhante ao catálogo de uma biblioteca 7/3/2005 (c) Marco A. Casanova - PUC-Rio 69
Exemplos de RDF Schemas <?xml version="1.0" encoding="utf-8"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en-us"> <rdf:description rdf:about="http://wanderlust.com/2000/08/corfu.jpg"> <dc:identifier rdf:resource="http://wanderlust.com/content/2357845" /> <dc:description>photograph taken at 6:00 am on Corfu with two models </dc:description> <dc:title>walking on the Beach in Corfu</dc:title> <dc:creator>john Peterson</dc:creator> <dc:contributor>sally Smith, lighting</dc:contributor> <dc:format>image/jpeg</dc:format> </rdf:description> </rdf:rdf> 7/3/2005 (c) Marco A. Casanova - PUC-Rio 70
Exemplos de RDF Schemas PRISM: Publishing Requirements for Industry Standard Metadata http://www.prismstandard.org/ especificação de metadados para a imprensa, enfatizando: descoberta pesquisa, browsing, distribuição de conteúdo, etc... acompanhamento de direitos autorais transmissão de metadados (junto com o conteúdo). baseia-se no Dublin Core 7/3/2005 (c) Marco A. Casanova - PUC-Rio 71
Exemplos de RDF Schemas <?xml version="1.0" encoding="utf-8"?> <rdf:rdf xmlns:prism="http://prismstandard.org/namespaces/1.2/basic/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:description rdf:about="http://wanderlust.com/2000/08/corfu.jpg"> <dc:identifier rdf:resource=" http://wanderlust.com/content/2357845" /> <prism:copyright>copyright 2001, Wanderlust Publications. All rights reserved. </prism:copyright> <prism:rightsagent>phantasy Photos, Philadelphia</prism:rightsAgent> </rdf:description> </rdf:rdf> 7/3/2005 (c) Marco A. Casanova - PUC-Rio 72
Exemplos de RDF Schemas Open Directory Project http://rdf.dmoz.org/ diretório para a Web editado manualmente (!) construído e mantido por uma comunidade de voluntários (!!) 7/3/2005 (c) Marco A. Casanova - PUC-Rio 73
Exemplos de RDF Schemas Composite Capabilities/Preferences Profile (CC/PP) define um framework genérico para descrever, para servidores, o contexto de entrega de um cliente: capacidade do dispositivo preferências do usuário características da rede etc... 7/3/2005 (c) Marco A. Casanova - PUC-Rio 74
Exemplos de RDF Schemas Gene Ontology (GO) Consortium: provê um vocabulário controlado para descrever aspectos de produtos derivados da Genética 7/3/2005 (c) Marco A. Casanova - PUC-Rio 75
Referências RDF Primer (W3C Working Draft 23 January 2003) http://www.w3.org/tr/2003/wd-rdf-primer-20030123/ 7/3/2005 (c) Marco A. Casanova - PUC-Rio 76
Referências 7/3/2005 (c) Marco A. Casanova - PUC-Rio 77