RDF (Resource Description Framework) RDFS (Resource Description Framework Schema)

Documentos relacionados
Módulo 2b - Ontologias - RDF

Padrões, Ferramentas e Boas Práticas no Desenvolvimento de Software para Web Semântica

D2R EDITOR: HABILITANDO A PUBLICAÇÃO AUTOMÁTICA DE ANOTAÇÕES SEMÂNTICAS DE SITES DINÂMICOS

Padrões, Ferramentas e Boas Práticas no Desenvolvimento de Software para Web Semântica

L A C Laboratory for Advanced Collaboration

OWL-DL Propriedades. Tópicos Especiais em Ontologias UTFPR/CPGEI/Prof. Tacla

Introdução Introdução

RDF e RDF Schema na representação de páginas do portal CEULP/ULBRA

MAPEAMENTO DE CONSULTAS SQL EM XML ENTRE SISTEMAS GERENCIADORES DE BANCO DE DADOS RELACIONAIS

extensible Markup Language (XML) XML é uma linguagem de anotação. XML utiliza tags para descrever informação.

Web semântica aplicada ao serviço da Consultadoria jurídica - Lei de arrendamento

JONATHAN SCHNEIDER CRIAÇÃO E CONSUMO DE DADOS NOS PADRÕES DA WEB SEMÂNTICA, UTILIZANDO RDF E JENA

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

O padrão RDF na descrição de imagens

3.1 Definições Uma classe é a descrição de um tipo de objeto.

XML Básico. Murillo Vasconcelos Henriques B. Castro. 17 de maio de 2011

Web de hoje (2.0) Porquê WEB 2.0?

Web Semântica. Web Semântica. uma

Base de dados I. Uma base de dados é um simples repositório de informação relacionado com um determinado assunto ou finalidade

Uma expressão básica em SQL consiste em três cláusulas: select, from e where.

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

3 Um Modelo de Operações para a web semântica 3.1. Modelo de Operações

XML (extensible Markup Language) por. Rafael Port da Rocha. (Notas de Aula)

Protégé Desenvolvimento de contologias

XML XML. XML extensible Markup Language HTML. Motivação. W3C: World Wide Web Consortium XML 1.0. Mário Meireles Teixeira DEINF-UFMA

Serviços Web Semânticos

Aula de JavaScript 05/03/10

Armazienamento de Dados

Resolução da lista de exercícios de casos de uso

UNIDADE 6 - PROGRAMAÇÃO MODULAR

2 Ferramentas Utilizadas

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

Introdução à Tecnologia Web HTML HyperText Markup Language XHTML extensible HyperText Markup Language Estrutura Básica do Documento HTML

Modelo Relacional. 2. Modelo Relacional (Lógico)

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

Internet. Gabriela Trevisan Bacharel em Sistemas de Infomação

Guia de publicação de imóveis

INTRODUÇÃO À LINGUAGEM C++

Linked Data Management. Capítulo 1: Linked Data & the Semantic Web Standards

Especificação do Trabalho

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos

L A C Laboratory for Advanced Collaboration

Web Semântica: Conceitos, Tecnologias e Aplicações

Desenvolvimento em Ambiente Web. HTML - Introdução

PÓS-GRADUAÇÃO EM MATEMÁTICA COMPUTACIONAL INFORMÁTICA INSTRUMENTAL Aula 06: Introdução Linguagem HTML

Computação II Orientação a Objetos

Resource Description Framework (RDF) Instituto de Informática Universidade Federal de Goiás

Protégé-OWL Tutorial. Adriano Melo André Chagas Fred Freitas. Sistemas Inteligentes

Aula 2: Listas e Links

Análise e Projeto Orientados a Objeto

Padrões, Ferramentas e Boas Práticas no Desenvolvimento de Software para Web Semântica

DESENVOLVIMENTO DE SOFTWARE

2. Conceitos e Arquitetura de Bancos de Dados

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

XML para transferência de dados Estrutura hierárquica do XML DTDs e XML Schema Consultas de documentos XML: XPath e XQuery Transformação de

Microsoft Access INTRODUÇÃO. Sumário INTRODUÇÃO INTRODUÇÃO INTRODUÇÃO INTRODUÇÃO. O que é Banco de Dados?

MANUAL DE PADRONIZAÇÃO DE CODIFICAÇÃO PHP CODING STANDARDS

Projeto da Disciplina Parte1: Estudo de Viabilidade. Um Estudo de Viabilidade

Introdução a Web Services

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

RDF e RDFS na Infra-estrutura de Suporte à Web Semântica

Intercâmbio de informações operativas relativas ao Sistema de Medição para Faturamento SMF

Disciplina Técnicas de Modelagem

XML e Banco de Dados de Internet. Tópicos Especiais em Tecnologia da Informação Profa. Késsia R. C. Marchi

LÓGICA DE PROGRAMAÇÃO. Vitor Valerio de Souza Campos

SISTEMAS DE INFORMAÇÃO GERENCIAIS

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias

Semântica na Web RDF. Carlos Bazilio. Depto de Computação Instituto de Ciência e Tecnologia Universidade Federal Fluminense

AMOSTRAGEM ESTATÍSTICA EM AUDITORIA PARTE ll

2 Engenharia de Software

UML: Diagrama de Casos de Uso, Diagrama de Classes

Agência Nacional de Energia Elétrica ANEEL

GeoBR: intercâmbio sintático e semântico de dados espaciais

Armazenamento e Pesquisa de Topic Maps em Banco de Dados Relacional

Sistemas de Representação e Raciocínio

Chaves. Chaves. O modelo relacional implementa dois conhecidos conceitos de chaves, como veremos a seguir:

Disciplina: Unidade III: Prof.: Período:

Aula II Introdução ao Modelo de Entidade-Relacionamento

E/S CPU. Memória (Instruções e dados) 2 PARADIGMA IMPERATIVO. Instruções e dados. Resultados das operações. Unidade lógica e aritmética

c. Técnica de Estrutura de Controle Teste do Caminho Básico

Instruções para preenchimento do formulário Plano de Ação do Projeto. Secretaria - Escreva o nome da secretaria coordenadora do projeto.

TÉCNICAS DE PROGRAMAÇÃO

É importante que nos atenhamos a alguns aspectos importantes sobre banco de dados:

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 16 PROFª BRUNO CALEGARO

O modelo Entidade-Relacionamento. Agenda: -Modelagem de dados utilizando O Modelo Entidade-Relacionamento

5 Tecnologias estudadas

Banco de Dados. Profª. Ana Leda

CAPÍTULO 2. Grafos e Redes

Conceitos básicos da linguagem C

JavaScript (ou JScript)

Padrões, Ferramentas e Boas Práticas no Desenvolvimento de Software para Web Semântica

Unidade 5: Sistemas de Representação

18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB

Serviços Web: Arquitetura

ALGORITMOS MEMÓRIA, VARIÁVEIS E CONSTANTES, OPERADORES Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

5.1 Sistemas de Arquivos

III. Projeto Conceitual de Banco de Dados. Pg. 1 Parte III (Projeto Conceitual de Banco de Dados)

Transcrição:

RDF (Resource Description Framework) RDFS (Resource Description Framework Schema) Tópicos Especiais em Engenharia de Software I (Introdução à Engenharia de Ontologias) Curso: Engenharia de Computação Prof. Maria das Graças da Silva Teixeira DECOM / CEUNES / UFES Semestre: 2011.2 Considerações RDF é uma recomendação do W3C para padronizar a definição e utilização de metadados (título, autor, data de criação,...) de descrição de recursos da web. É uma linguagem para representar informações sobre recursos da Web; É adequado para representar dados e proporciona uma forma simples de expressar afirmações sobre os recursos; Tenta trazer interoperabilidade ante a multiplicidade de formatos incompatíveis existentes na web; A linguagem XML é utilizada para representar os componentes do RDF, sendo portanto processável por máquina. 1

Considerações RDF também pode ser usada para representar informações sobre coisas que podem ser identificadas na WEB, mesmo que elas não possam ser recuperadas diretamente na WEB. Exemplos: informações sobre itens disponíveis para compras online, ou a descrição das preferências de um usuário da Web. Conceito Fundamental: Tripla Componentes: Sujeito predicado/propriedade objeto; Sujeito: recurso, coisas, tais como pessoas e páginas Web aquilo do qual se quer falar; Predicado: atributo (propriedades) ou aspecto do recurso, tais como is sister of, is author of descrevem relacionamentos entre os recursos; Objeto: valor do atributo ou objeto da relação, pode ser um URI ou um literal; Formatos possíveis: Grafo; Propriedade (sujeito, objeto). 2

Conceito Fundamental: Tripla Exemplo: A página http://www.ceunes.ufes.br/prof/mariateixeira é mantida por Maria das Graças mantidapor(http://www.ceunes.ufes.br/prof/mariateixeira, Maria das Graças) http://www.ceunes.ufes.br/prof/mariateixeira sujeito Tem-se um RECURSO, uma PROPRIEDADE desse recurso e um VALOR para essa propriedade. mantidapor (predicado) Maria das Graças objeto Conceito Fundamental: Tripla Em RDF, o sujeito e o objeto podem mudar de posição, dependendo da tripla. Exemplo: mantidapor(http://www.ceunes.ufes.br/prof/mariateixeira, Maria das Graças) cargo(maria das Graças, professora assistente) OBS.: Apenas URIs podem passar por tal processo, pois literais podem ser apenas Objetos. 3

Conceitos Básicos RDF se utiliza dos seguintes conceitos: Grafo de Modelo de Dados; Vocabulário baseado em URIs; Tipos de Dados; Literais; Sintaxe de Serialização XML; Expressão de Fatos Simples; Vinculação. Grafo de Modelo de Dados O grafo é um resultado visual do conjunto de triplas da expressão RDF que está se desenvolvendo para representar um determinado modelo de dados; Cada tripla representa uma ligação nó-aresta-nó; Exemplo: Texto sobre Eric Miller. Existe uma Pessoa identificada por http://www.w3.org/people/em/contact#me, cujo nome é Eric Miller, cujo email é em@w3.org e cujo título é Doutor. 4

Grafo de Modelo de Dados Grafo de Modelo de Dados Notação em tripla do grafo exemplo. <http://www.w3.org/people/em/contact#me> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/10/swap/pim/contact#person>. <http://www.w3.org/people/em/contact#me> <http://www.w3.org/2000/10/swap/pim/contact#fullname> "Eric Miller". <http://www.w3.org/people/em/contact#me> <http://www.w3.org/2000/10/swap/pim/contact#mailbox> "mailto:em@w3.org". <http://www.w3.org/people/em/contact#me> <http://www.w3.org/2000/10/swap/pim/contact#personaltitle> "Dr.". 5

Grafo de Modelo de Dados Notação em XML do grafo exemplo. <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 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:em@w3.org"/> <contact:personaltitle>dr.</contact:personaltitle> </contact:person> </rdf:rdf> Vocabulário baseado em URIs Cada nó do grafo RDF pode ser uma URI, um literal ou estar em branco (não sendo identificado); Os predicados são identificados por URIs e também podem ser nós do grafo; Uma URI ou literal usada como um nó identifica o que aquele nó representa; Uma URI usada como predicado identifica um relacionamento entre as coisas representadas pelos nós que ele conecta; 6

Tipos de Dados São usados em RDF para representação de valores, tais como números (inteiros, reais), datas; Consiste de um espaço léxico, um espaço de valores e um mapeamento léxico-para-valor; É identificado por uma, ou mais, URI; Por recomendação do W3C espera-se que os tipos de dados definidos no XMLSchema sejam utilizados; O RDF não provê nenhum mecanimos para definição de novos dataypes. Os datatypes do XML Schema provêem um framework extensível adequado para definição de novos datatypes para uso em RDF. Tipos de Dados Exemplo: O mapeamento léxico-para-valor do tipo de dado xsd:boolean do XMLSchema, onde cada membro do espaço de valores (T, F) possui duas representações léxicas é como: Espaço de valores {T, F} Espaço léxico { 0, 1, true, false } Mapeamento léxico-para-valores {< true, T>, < 1,T>, < false, F>, < 0, F>} 7

Literais São usados para identificar valores como números e datas por meio de uma representação léxica; Qualquer coisa representada como uma literal também pode ser representada através de uma URI, mas literais são mais intuitivas; Podem ser objeto em uma declaração RDF, mas não sujeito ou predicado; Podem ser: Simples (plain) strings combinadas com tags opcionais da linguagem; Typed (tipados) - strings combinadas com alguma URI de tipo de dados. Exemplo: <xsd:boolean, true > Literais Exemplo: Typed Literal Lexical-to-Value Mapping Value <xsd:boolean, "true"> <"true", T> T <xsd:boolean, "1"> <"1", T> T <xsd:boolean, "false"> <"false", F> F <xsd:boolean, "0"> <"0", F> F 8

Sintaxe de serialização de XML Existe uma forma recomendada de serialização de RDF em XML de forma a facilitar a troca de modelos RDF entre aplicações; Expressão de Fatos Simples Indicam um relacionamento entre duas entidades; Podem ser representados como um tripla RDF na qual o predicado nomeia o relacionamento e o sujeito e o objeto as duas entidades; São como uma linha numa tabela relacional, onde as colunas são o sujeito e o objeto, e o nome da tabela representa o predicado; Também podem ser vistos como um predicado com dois argumentos da lógica de predicados; 9

Expressão de Fatos Simples Exemplo: Sujeito mantidapor http://www.ceunes.ufes.br/prof/mariateixeira Objeto Maria das Graças mantidapor(http://www.ceunes.ufes.br/prof/mariateixeira, Maria das Graças) Expressão de Fatos Simples Tanto bancos de dados relacionais, como lógica de 1ª. Ordem permitem relações ou predicados com mais de duas entidades; Para representar algo assim em RDF é preciso decompor a tripla RDF; Uma forma simples de fazer essa decomposição é introduzir um nó em branco no grafo correspondente à linha (BD), e uma nova tripla para cada célula da linha; O sujeito da tripla é o nó em branco, o predicado é dado pelo nome da coluna, o objeto corresponde ao valor da célula. 10

Expressão de Fatos Simples Exemplo: Vinculação Uma expressão RDF A é dita que vincula outra expressão RDF B se todo possível estado das coisas do mundo que tornam A verdadeiro também tornam B verdadeiro; Ou seja, se a verdade de A é presumida ou demonstrada, então a verdade de B pode ser inferida. 11

Sintaxe RDF/XML Sintaxe recomendada pelo W3C. Outro exemplo de notação: N3; De acordo com RDF/XML, um documento RDF é uma lista de descrições de recursos em XML; Cada descrição corresponde a um recurso (sujeito) e contém as propriedades que o definem; Cada descrição é representada por um elemento XML do tipo <rdf:description>, com um dos seguintes atributos: <rdf:about> ou <rdf:id> ou anônimo. Tal atributo indica o sujeito da tripla; Os valores das propriedades podem conter literais, outros recursos (URI) ou uma descrição de outro recurso. Sintaxe RDF/XML Descrição de propriedade com valor contendo literal: <rdf:description rdf:about= "http://www.ceunes.ufes.br/prof/mariateixeira"> <mantidapor>maria das Graças</mantidaPor> Descrição de propriedade com valor contendo outro recurso: <rdf:description rdf:about= "http://www.ceunes.ufes.br/prof/mariateixeira "> <mantidapor rdf:resource= "mailto:mariateixeira@ceunes.ufes.br"/> 12

Sintaxe RDF/XML Descrição de propriedade com valor contendo outra descrição: <rdf:description rdf:about= "http://www.ceunes.ufes.br/prof/mariateixeira"> <mantidapor> <rdf:description rdf:about="mailto:mariateixeira@ceunes.ufes.br"> <TrabalhaCom rdf:resource="mailto:anaappel@ceunes.ufes.br"/> </mantidapor> Sintaxe RDF/XML Tags/Atributos rdf:rdf Dentro de um documento XML identifica o bloco de declarações RDF. A tag de abertura pode conter as declarações de namespaces; rdf:description Dentro do bloco rdf:rdf, identifica a declaração de um recurso. rdf:about Utilizada como atributo da tag de abertura de rdf:description, identifica a URIref do sujeito a ser tratado, caso esse já exista; Propriedades Aninhados entre os tags de rdf:description, descrevem cada propriedade e o objeto correspondente. No caso do objeto ser um recurso, será identificado na própria tag da propriedade, através do atributo rdf:resource. 13

Sintaxe RDF/XML Tags/Atributos rdf:id Indica a criação de um Fragment Identifier no documento RDF sendo construído. Exemplo: Supor que se esteja criando o documento RDF armazenado em http://www.example.com/2002/04/products (URI 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/"> <rdf:description rdf:id="item10245"> <exterms:model>overnighter</exterms:model> <exterms:sleeps>2</exterms:sleeps> <exterms:weight>2.4</exterms:weight> <exterms:packedsize>784</exterms:packedsize>...other product descriptions... </rdf:rdf> Fragment Identifier: item10245 URIref equivalente: http://www.example.com/2002/04/products#item10245 Sintaxe RDF/XML Tags/Atributos rdf:type Propriedade que indica que um recurso é instância de um outro recurso. Valor/Objeto recurso que representa uma categoria/classe; Sujeito instância da categoria/classe; Exemplo: <?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>784</exterms:packedsize>...other product descriptions... </rdf:rdf> 14

Sintaxe RDF/XML Tags/Atributos rdf:type. Exemplo (notação alternativa, simplificada): <?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>784</exterms:packedsize> </exterms:tent>...other product descriptions... </rdf:rdf> Sintaxe RDF/XML XML base A URI base do documento RDF é a URI do documento que contém as afirmações em RDF; A URI base pode ser explicitamente indicada no documento, através do atributo xml:base, nos namespaces do documento; Exemplo: <?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 >784</exterms:packedSize>...other product descriptions... </rdf:rdf> 15

URI Reference RDF é baseada na ideia de identificar coisas (qualquer componente da tripla) usando identificadores Web (URI); Uma URI reference (ou URIref) é uma URI junto com um fragment identifier opcional no final; Exemplo: a URI reference http://www.example.org/index.html#section2 consiste na URI http://www.example.org/index.html e (separado pelo caracter # ) do fragment identifier Section2. RDF URIrefs podem conter caracteres Unicode, permitindo que muitas linguagens sejam refletidas em URIrefs. URI Reference 16

URI Reference URIrefs podem ser utilizados para identificar: Indivíduos, por ex., Eric Miller, identificado por http://www.w3.org/people/em/contact#me Tipos das coisas, por ex., Person, identificado por http://www.w3.org/2000/10/swap/pim/contact#person Propriedades das coisas, por ex., mailbox, identificado por http://www.w3.org/2000/10/swap/pim/contact#mailbox Valores das propriedades, por ex., mailto:em@w3.org, que é um valor para a propriedade mailbox. RDF também utiliza caracteres strings, tal como "Eric Miller", e valores de outros dataypes, tal como inteiros e datas, como valores de propriedades. Qualified Name A notação de tripla completa requer que a URIref seja escrita completamente dentro dos brackets, o que pode resultar em linhas muito longas em um documento RDF/XML; Por conveniência, foi estabelecida uma forma abreviada de se referenciar a um XML Qualified Name (QName), através da abreviação de URIref; QName prefix: uma abreviação para um URI namespace; Exemplo: Seja o QName prefix -foo associado ao namespace do URI http://example.org/somewhere/; Então foo:bar é uma abreviação para o URIref http://example.org/somewhere/bar. 17

Qualified Name Alguns QName prefix comuns: QName Prefix rdf: rdfs: dc: owl: ex: xsd: URI Namespace 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.w3.org/2002/07/owl# http://www.example.org http://www.w3.org/2001/xmlschema# Qualified Name Exemplo: <?xml version= 1.0?> <rdf:rdf xmlns:rdf = http://www.w3.org/1999/02/22-rdf-syntax-ns# xmlns:contact = http://www.w3.org/2000/10/swap/pim/contact > <rdf:description rdf:about= http://www.w3.org/people/em/contact#me > <rdf:type rdf:resource=contact:person /> <contact:fullname>eric Miller</contact:fullName> <contact:mailbox rdf:resource = mailto:em@w3.org /> <contact:personaltitle>dr.</contact:personaltitle> </rdf:rdf> 18

Recursos Anônimos / Blank Nodes Algumas informações são mais complexas de serem representadas, e requerem alguma estruturação. Por exemplo: exstaff:85740 exterms:address "1501 Grant Avenue, Bedford, Massachusetts 01730". Supor que o endereço deva ser representado de forma estruturada (rua, cidade,...) ao invés de como uma string. Informação estruturada pode ser representada em RDF considerando a coisa a ser descrita (por exemplo, o endereço) como um recurso, e então construindo comandos sobre aquele novo recurso. Recursos Anônimos / Blank Nodes Exemplo (grafo): 19

Recursos Anônimos / Blank Nodes Exemplo (formato de triplas): exstaff:85740 exterms:address exaddressid:85740. exaddressid:85740 exterms:street "1501 Grant Avenue". exaddressid:85740 exterms:city "Bedford". exaddressid:85740 exterms:state "Massachusetts". exaddressid:85740 exterms:postalcode "01730". Esta forma de representar uma informação estruturada pode envolver a geração de várias URIrefs intermediárias (tal como exaddressid:85740) para representar conceitos agregados. Tais conceitos podem nunca ser referenciados diretamente de fora do documento RDF original, não requerendo assim um identificador universal. Para resolver tal situação pode-se trabalhar com um recurso anônimo (um blank node no grafo), que pode ser representado, mas não requer um URI. Recursos Anônimos / Blank Nodes Exemplo (grafo): 20

Recursos Anônimos / Blank Nodes Exemplo (formato de triplas): exstaff:85740 exterms:address???.??? exterms:street "1501 Grant Avenue".??? exterms:city "Bedford".??? exterms:state "Massachusetts".??? exterms:postalcode "01730". Considerando que um grafo RDF pode ter mais de um blank node, para representar informações mais complexas, é necessário ter uma forma de identificar um recurso anônimo (destacado no código acima como??? ). Identificação de blank node: _:name Recursos Anônimos / Blank Nodes Exemplo (formato de triplas): exstaff:85740 exterms:address _:johnaddress. _:johnaddress exterms:street "1501 Grant Avenue". _:johnaddress exterms:city "Bedford". _:johnaddress exterms:state "Massachusetts". _:johnaddress exterms:postalcode "01730". 21

Literais Além de URIs, o objeto de uma tripla RDF pode ser também um valor constante (literal); Tipos de literais: Plain (simples / não-tipados) composto apenas por caracteres. O literal é interpretado como string, mesmo se contiver números ou datas. Exemplo: _:johnaddress exterms:city "Bedford". Typed (tipados) Capacita a interpretação do tipo de dado representado pelo literal, isto é, que o valor seja associado a um datatype. Exemplo: exstaff:85740 exterms:age "27"^^xsd:integer. Literais Os datatypes comumente interpretados em um documento RDF são aqueles do XML Schema Datatype; Formas de representação de uma literal tipada (com exemplo): Em um grafo: 22

Literais Formas de representação de uma literal tipada (com exemplo, cont): Representação de tripla: <http://www.example.org/staffid/85740> <http://www.example.org/terms/age> "27"^^<http://www.w3.org/2001/XMLSchema#integer>. Usando Qname prefix: exstaff:85740 exterms:age "27"^^xsd:integer. Notação XML/RDF: <?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/staffid/85740 > <exterms:age rdf:datatype= http://www.w3.org/2011/xmlschema#integer >27</exterms:age> </rdf:rdf> Outras capacidades RDF/XML - Containers Às vezes é necessário trabalhar ou declarar fatos sobre um conjunto de entidades. RDF/XML oferece um vocabulário de recursos para tal. Tais recursos são chamados containers; Um container é um recurso que contém objetos, denominados membros; Os membros podem ser recursos ou literais; 23

Outras capacidades RDF/XML - Containers Tipos pré-definidos: rdf:bag representa um grupo de recursos / literais, possivelmente com membros duplicados, onde não é relevante a ordem dos membros; rdf:seq representa um grupo de recursos / literais, possivelmente com membros duplicados, onde a ordem dos membros é relevante; rdf:alt representa um grupo de recursos / literiis que são alternativas (tipicamente para um único valor de uma propriedade). Outras capacidades RDF/XML - Containers Para descrever um recurso como sendo um container, o recurso é colocado como tendo uma propriedade rdf:type, cujo valor é um dos tipos rdf:bag, rdf:seq, rdf:alt; O recurso do container (que pode ser um blank node ou um recurso com URIref) denota o grupo como um todo; Os membros do container podem ser descritos definindo-se uma propriedade membership container para cada membro, com o recurso do container como sujeito e o membro como objeto; As propriedades membership container tem nomes no formato rdf:_n, onde n é um inteiro maior do que zero; Recursos container também podem ter outras propriedades que descrevem o container. 24

Outras capacidades RDF/XML - Containers Outras capacidades RDF/XML - Containers Exemplo: <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:s="http://example.org/students/vocab#"> <rdf:description rdf:about="http://example.org/courses/6.001"> <s:students> <rdf:bag> <rdf:li rdf:resource="http://example.org/students/amy"/> <rdf:li rdf:resource="http://example.org/students/mohamed"/> <rdf:li rdf:resource="http://example.org/students/johann"/> <rdf:li rdf:resource="http://example.org/students/mary"/> <rdf:li rdf:resource="http://example.org/students/phuong"/> </rdf:bag> </s:students> </rdf:rdf> RDF/XML provê rdf:li como uma forma de evitar de indicar um número para cada propriedade membership. Os números necessários são gerados a partir de tal propriedade. 25

Outras capacidades RDF/XML - Collections Uma limitação dos containers é não poder fechá-los, isto é, indicar que outros membros não existem; Um Collection em RDF é um grupo de entidades representadas como uma estrutura de listas no grafo RDF; A estrutura é montada usando o vocabulário de Collection, que consiste em: O tipo lista rdf:list A propriedade primeiro rdf:first A propriedade resto rdf:rest O recurso nulo rdf:nil Outras capacidades RDF/XML - Collections 26

Outras capacidades RDF/XML - Collections Exemplo: <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:s="http://example.org/students/vocab#"> <rdf:description rdf:about="http://example.org/courses/6.001"> <s:students rdf:nodeid="sch1"/> <rdf:description rdf:nodeid="sch1"> <rdf:first rdf:resource="http://example.org/students/amy"/> <rdf:rest rdf:nodeid="sch2"/> <rdf:description rdf:nodeid="sch2"> <rdf:first rdf:resource="http://example.org/students/mohamed"/> <rdf:rest rdf:nodeid="sch3"/> <rdf:description rdf:nodeid="sch3"> <rdf:first rdf:resource="http://example.org/students/johann"/> <rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/> </rdf:rdf> Outras capacidades RDF/XML - Collections Exemplo (usando notação simplificada): <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:s="http://example.org/students/vocab#"> <rdf:description rdf:about="http://example.org/courses/6.001"> <s:students rdf:parsetype="collection"> <rdf:description rdf:about="http://example.org/students/amy"/> <rdf:description rdf:about="http://example.org/students/mohamed"/> <rdf:description rdf:about="http://example.org/students/johann"/> </s:students> </rdf:rdf> 27

Outras capacidades RDF/XML - Reification Aplicações RDF algumas vezes precisam descrever outras afirmações RDF usando RDF, para registrar informação, por exemplo, sobre quem fez o comando,quando ele foi feito, etc; RDF provê um vocabulário próprio para descrever afirmações RDF. Uma descrição de afirmação é denominada uma reificação da afirmação; Sintaxe: rdf:statement indica que a afirmação é sobre outra afirmação; rdf:subject indica o sujeito da afirmação; rdf:predicate indica o predicado da afirmação; rdf:object indica o objeto da afirmação. Outras capacidades RDF/XML - Reification Seja a tripla: exproducts:item10245 exterms:weight "2.4"^^xsd:decimal. Uma descrição da afirmação (uma reificação), usando uma URIref (neste caso exproducts:triple12345): exproducts:triple12345 rdf:type rdf:statement. exproducts:triple12345 rdf:subject exproducts:item10245. exproducts:triple12345 rdf:predicate exterms:weight. exproducts:triple12345 rdf:object "2.4"^^xsd:decimal. Uma vez descrita a afirmação dessa forma, informações adicionais a tais triplas podem ser feitas, como por exemplo: exproducts:triple12345 dc:creator exstaff:85740. 28

Outras capacidades RDF/XML - Reification Prosseguindo no exemplo: a afirmação original, junto com a reificação e a identificação do criador, forma o grafo RDF abaixo. Introduz primitivas básicas que permitem falar de classe, subclasse, domínio e restrições de valores das propriedades, em contexto da web; Permitem aos desenvolvedores definir um vocabulário básico para dados RDF e especificar o tipo de objeto aos quais se aplicam tais atributos; Proporciona um mecanismo de tipagem básica para modelos RDF, utilizando termos definidos, tais como: Class, subpropertyof, subclassof; Os objetos RDF podem ser definidos como instâncias de uma ou mais classes, usando a propriedade type. 29

Provê um conjunto de recursos e propriedades: Com significado bem definido; Utilizado para descrever classes e propriedades de uma aplicação; Forma um vocabulário reservado (de RDF Schema) estendendo o vocabulário RDF. rdfs:resource Todas as coisas descritas por RDF são recursos, e portanto instâncias da classe rdfs:resource. É a classe raiz de todas as outras (suas subclasses); http://www.w3.org/tr/rdf-schema/#ch_resource rdfs:class É a classe dos recursos que são classes RDF. http://www.w3.org/tr/rdf-schema/#ch_class rdfs:literal Classe dos valores literais para propriedades, tais como strings e números inteiros. É uma instância de rdfs:class, e portanto uma subclasse de rdfs:resource; Podem ser tipados ou não. Os valores tipados são instâncias da classe datatype. 30

rdfs:property É a classe das propriedades herdadas de RDF. Instância de rdfs:class; rdfs:subclassof Usada para declarar que todas as instâncias de uma classe são instâncias de outra classe. Instância de rdfs:property; É uma propriedade transitiva; Definição de classe. Sujeito: identificação de classe; Predicado: rdf:type; Objeto: rdfs:class; Exemplo: xml:base ex Tripla: ex:motorvehicle rdf:type rdfs:class RDF/XML: <?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:rdf> 31

Definição de subclasse. Sujeito: identificação da subclasse; Predicado: rdfs:subclassof; Objeto: identificação da superclasse; Exemplo: xml:base ex Tripla: ex:van rdf:type rdfs:class ex:van rdfs:subclassof ex:motorvehicle Exemplo: 32

<rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xml:base="http://example.org/schemas/vehicles"> <rdf:description rdf:id="motorvehicle"> <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#class"/> <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:id="truck"> <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#class"/> <rdfs:subclassof rdf:resource="#motorvehicle"/> <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: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:rdf> Definição de instância de classe. Sujeito: recurso identificando a instância da classe; Predicado: rdfs:type; Objeto: recurso identificando a classe; 33

Exemplo: xml:base ex Tripla: ex:companycar rdf:type ex:motorvehicle RDF/XML: <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/vechicles#motorvehicle /> </rdf:rdf> Formatos alternativos: <rdf:type rdf:resource= ex:#motorvehicle /> <rdf:type rdf:resource= #MotorVehicle /> Definição de propriedade. Sujeito: recurso identificando o nome da propriedade; Predicado: rdfs:type; Objeto: rdf:property; Exemplo: exterms:weightinkg rdf:type rdf:property 34

Definição de domínio de uma propriedade. Sujeito: recurso identificando o nome da propriedade; Predicado: rdfs:domain; Objeto: recurso identificando o nome de uma classe; Exemplo: ex:book rdf:type rdfs:class ex:author rdf:type rdf:property ex:author rdfs:domain ex:book Definição de range (contradomínio) de uma propriedade. Sujeito: recurso identificando o nome da propriedade; Predicado: rdfs:range; Objeto: recurso identificando o nome de uma classe ou o nome de um XSD dataype; Exemplo: ex:person rdf:type rdfs:class ex:author rdf:type rdf:property ex:author rdfs:range ex:person ex:age rdf:type rdf:property ex:age rdfs:range xsd:integer xsd:integer rdf:type rdfs:datatype 35

Exemplo: <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: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:id="person"> <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#class"/> <rdf:description rdf:about="http://www.w3.org/2001/xmlschema#integer"> <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#datatype"/> Exemplo (formato alternativo): <rdf:property rdf:id="registeredto"> <rdfs:domain rdf:resource="#motorvehicle"/> <rdfs:range rdf:resource="#person"/> </rdf:property> <rdf:property rdf:id="rearseatlegroom"> <rdfs:domain rdf:resource="#passengervehicle"/> <rdfs:range rdf:resource="&xsd;integer"/> </rdf:property> <rdfs:class rdf:id="person"/> <rdfs:datatype rdf:about="&xsd;integer"/> 36

Definição de sub-propriedade. Sujeito: recurso identificando o nome da sub-propriedade; Predicado: rdfs:subpropertyof; Objeto: recurso identificando o nome da super-propriedade; Exemplo: ex:driver rdf:type rdf:property ex:primarydriver rdf:type rdf:property ex:primarydriver rdfs:subpropertyof ex:driver <rdf:property rdf:id="driver"> <rdfs:domain rdf:resource="#motorvehicle"/> </rdf:property> <rdf:property rdf:id="primarydriver"> <rdfs:subpropertyof rdf:resource="#driver"/> </rdf:property> Exemplo, dois formatos XML/RDF: <rdf:property rdf:id="driver"> <rdfs:domain rdf:resource="#motorvehicle"/> </rdf:property> <rdf:property rdf:id="primarydriver"> <rdfs:subpropertyof rdf:resource="#driver"/> </rdf:property> <rdf:description rdf:id="driver"> <rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntaxns#property"/> <rdfs:domain rdf:resource="#motorvehicle"/> <rdf:description rdf:id="primarydriver"> <rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntaxns#property"/> <rdfs:subpropertyof rdf:resource="#driver"/> 37

Definição de instância de propriedade. Sujeito: recurso identificando uma instância de alguma classe; Predicado: nome da propriedade; Objeto: recurso identificando uma instância de alguma classe, ou literal indicando o valor da propriedade; Exemplo: ex:johnsmithscar ex:registeredto ex:85740 Exemplo, formato 1 em XML/RDF: <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://example.org/schemas/vehicles#" xml:base="http://example.org/things"> <ex:passengervehicle rdf:id="johnsmithscar"> <ex:registeredto rdf:resource="http://www.example.org/staffid/85740"/> <ex:rearseatlegroom rdf:datatype="&xsd;integer">127</ex:rearseatlegroom> <ex:primarydriver rdf:resource="http://www.example.org/staffid/85740"/> </ex:passengervehicle> </rdf:rdf> 38

Exemplo, formato 2 em XML/RDF: <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:rdf> Pode ser vista como uma linguagem para descrever conhecimento muito simples; Porém existe muito tipo de conhecimento que não pode ser expresso em tal linguagem. Exemplo: afirmar que cada livro tem um único título e pelo menos um autor; afirmar que um livro tem que ter capa dura ou capa normal ; Para expressar o conhecimento necessário ao desenvolvimento de uma web semântica se faz necessário desenvolver uma linguagem mais expressiva, o que é feito na próxima camada: Vocabulário para Ontologia. 39

Referências Bibliográficas BREITMAN, K. Web semântica a internet do Futuro. LTC, 2005. ISBN 85-216-1466-7. Capítulo 4 Como representar? Linguagens para representação de Ontologias. WWW Consortium RDF e RDFS http://www.w3.org/rdf e http://www.w3.org/tr/rdf-schema/ Destaque para: http://www.w3.org/tr/rdf-primer/ e http://www.w3.org/tr/2004/rec-rdfconcepts-20040210/ Seminário: Semantic Web Applications. Disponível em: http://www.tecweb.inf.pucrio.br/semweb/space/rdf STAAB, S., STUDER, R. (editors). Handbook on Ontology. Springer, 2009. Part 1 Ontology Representation Languages Resource Description Framework. 40