m ó d u lo 2 b - o n to l o g ia s - r d f · • in fo rma çã o so b re r ec ur so s n a w e b...
TRANSCRIPT
7/3/2005 (c) Marco A. Casanova - PUC-Rio 1
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 2
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 3
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 4
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:[email protected], identificado por http://www.example.org/staffem/85741
7/3/2005 (c) Marco A. Casanova - PUC-Rio 5
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 6
URIref e Qname
• Exemplos de QName prefix mais usados:
rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#rdfs: http://www.w3.org/2000/01/rdf-schema#dc: http://purl.org/dc/elements/1.1/daml: http://www.daml.org/2001/03/daml+oil#ex: http://www.example.org/ xsd: http://www.w3.org/2001/XMLSchema#
7/3/2005 (c) Marco A. Casanova - PUC-Rio 7
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 8
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 9
RDF Básica
• Exemplo:“http://www.example.org/index.htmlhas a creatorwhose 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 10
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
Objeto
propriedade
7/3/2005 (c) Marco A. Casanova - PUC-Rio 11
<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 13
RDF Básica
• Valores estruturados de propriedadese 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 15
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 16
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 17
<?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: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 19
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 20
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 21
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 22
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 23
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 24
RDF/XML
• Exemplo de 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">
<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 25
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 26
RDF/XML
• Exemplo de uso de literais tipados
<?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>
ex:index.html exterms:creation-date "1999-08-16"^^xsd:date .
7/3/2005 (c) Marco A. Casanova - PUC-Rio 27
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 28
Outros recursos de RDF
• RDF Containers– tipos de containers:
• rdf:Bag tipo dos containers que designam conjuntos ("bag") de recursos ou literais
• rdf:Seq tipo dos containers que designam seqüências de recursos ou literais
• rdf:Alt tipo dos containers que designam grupos de recursos ou literais que representam alternativas
7/3/2005 (c) Marco A. Casanova - PUC-Rio 30
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 32
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 33
Outros recursos de RDF
• RDF Collection– um grupo de objetos representado como uma lista
em RDF através do seguinte vocabulário: • rdf:List tipo das listas de recursos ou literais
• rdf:first primeiro elemento de uma lista
• rdf:rest resto de uma lista
• rdf:nil lista vazia
7/3/2005 (c) Marco A. Casanova - PUC-Rio 35
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 36
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 37
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 38
Resumo do Vocabulário
valor da propriedade é um recurso representando uma categoria ou classe de objetos;sujeito da propriedade é uma instância da categoria ou classe
rdf:type
classe das propriedadesrdf:Property
elementos aninhados no elemento "rdf:Description";indicam que a propriedade aplica-se ao recurso descrito
property elementstermo indicando um recursordf:resourcetermo indicando um fragment identifier identificando o recursordf:IDtermo indicando uma URIref identificando o recursordf:abouttermo indicando o início da descrição de um recursordf:Descriptiontermo indicando que o documento define afirmações em RDF
Descriçãordf:RDFTermos Básicos
7/3/2005 (c) Marco A. Casanova - PUC-Rio 39
Resumo do Vocabulário
classe dos grupo de recursos ou literais que representam alternativas
rdf:alt
indica um elementordf:li
classe dos conjuntos ("bag") de recursos ou literaisrdf:Bagclasse das seqüência de recursos ou literais
Descriçãordf:Seq
RDF Container
7/3/2005 (c) Marco A. Casanova - PUC-Rio 40
Resumo do Vocabulário
recurso indicando a lista vaziardf:nil(equivalente a rdf:List em RDF/XML)rdf:parseType=
"Collection"
propriedade indicando o resto de uma listardf:rest
classe das listas de recursos ou literaisrdf:Listpropriedade indicando o primeiro elemento de uma listardf:first
DescriçãoRDF Collection
7/3/2005 (c) Marco A. Casanova - PUC-Rio 41
Resumo do Vocabulário
propriedade indicando o predcado da afirmaçãordf:predicatepropriedade indicando o objeto da afirmaçãordf:object
propriedade indicando o sujeito da afirmaçãordf:subjecttipo indicando que a afirmação é sobre outra afirmação
Descriçãordf:StatementRDF Reification
7/3/2005 (c) Marco A. Casanova - PUC-Rio 42
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 43
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 44
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 45
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 46
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 47
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 48
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 50
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 51
<?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#">
<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>
</rdf:RDF>
Exemplo de esquema em RDF/XML
7/3/2005 (c) Marco A. Casanova - PUC-Rio 52
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 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#"
xmlns:ex="http://example.org/schemas/vehicles"> <rdf:Description rdf:ID="companyCar">
<rdf:typerdf:resource="http://example.org/schemas/vehicles#MotorVehicle"/>
</rdf:Description> </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 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>
</rdf:RDF>
URIref relativa
7/3/2005 (c) Marco A. Casanova - PUC-Rio 55
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 56
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 57
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 58
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 ouo 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 59
<rdf:Description rdf:ID="registeredTo"><rdf:type
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>
Exemplo de propriedades em RDF/XML
7/3/2005 (c) Marco A. Casanova - PUC-Rio 60
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 61
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 62
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 63
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:typerdf: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 64
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 65
RDF Schema
• Interpretação de um RDF Schema: – regra de escopo para propriedades:
• linguagens de programação:
– o escopo de um atributo é restrito à classe ou tipo em que é definido
• RDF:
– o escopo de uma propriedade é global, ou seja, independente da definição das classes
7/3/2005 (c) Marco A. Casanova - PUC-Rio 66
RDF Schema
• Interpretação de um RDF Schema: – papel das descrições em um esquema:
• linguagens de programação:
– a definição dos tipos ou classes é prescritiva
• RDF:
– 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 67
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 68
RDF Schema
rdf:Property
rdfs:Classrdfs:Resource
Recurso
rdf:typerdfs:domainrdfs:rangerdfs:subPropertyOf
rdf:typerdfs:subClassOf
Propriedade
Propriedade de classe
ClasseConceito
Vocabulário de RDF Schema
7/3/2005 (c) Marco A. Casanova - PUC-Rio 69
Exemplos de RDF Schemas
• Dublin Core Metadata Initiativehttp://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 70
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 71
Exemplos de RDF Schemas
• PRISM: Publishing Requirements for Industry Standard Metadatahttp://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 72
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 73
Exemplos de RDF Schemas
• Open Directory Projecthttp://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 74
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 75
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 76
Referências
• RDF Primer(W3C Working Draft 23 January 2003)http://www.w3.org/TR/2003/WD-rdf-primer-20030123/