Buscar

slreic

Prévia do material em texto

RDF e RDFS na Infra-estrutura de Suporte à Web Semântica 
GEIZA CRISTINA DA SILVA, TARCÍSIO DE SOUZA LIMA (ORIENTADOR) 
Departamento de Ciência da Computação – Instituto de Ciências Exatas 
Universidade Federal de Juiz de Fora 
Campus Universitário Martelos – 36036-330 – Juiz de Fora, MG 
aziegc@vento.com.br, tlima@dcc.ufjf.br 
Resumo: Muitos bancos de dados de uso corrente são relacionais, com colunas de informação 
relacionadas umas às outras. Os relacionamentos entre estas colunas são a semântica, o significado dos 
dados. A Web, entretanto, não contém somente dados estruturados e não pode ser considerada como 
um banco de dados. A questão do significado é, por um lado, um gargalo, mas por outro, o motor de 
arranque para a nova geração Web – a Web Semântica. 
Para levar a Web Semântica ao seu potencial pleno, como arena de integração de todos os sistemas 
de informação, uma nova camada conceitual deve ser adicionada à arquitetura básica de software da 
Web. O W3C (World Wide Web Consortium) vem desenvolvendo a RDF (Resource Description 
Framework) e a RDF Schema com este propósito. Esta estrutura se faz necessária para que permitamos 
aos computadores representar, compartilhar e integrar a informação. Esta é a plataforma de estudo 
neste projeto, cujo objetivo maior é o de estudar a Web Semântica como meio único e universal para 
compartilhamento de informações. Em particular, com base na modelagem de um cenário de estudo 
segundo funcionalidades da RDF e da RDF Schema, verifica-se seus potenciais como aporte semântico 
para a geração Web que está por vir. 
Palavras chaves: RDF, RDF Schema, Web Semântica, relacionamento, significado 
1 Introdução 
Os computadores são úteis para organização e processamento lógicos, mas não são capazes de estabelecer 
associações de significado. Um computador tipicamente mantém as informações em hierarquias rígidas, enquanto a 
mente humana tem a habilidade especial de ligar pequenas unidades de informação de forma randômica. Com base 
nesta constatação, a segunda geração da World Wide Web (WWW, Web), cunhada como Web Semântica [Berners-
Lee, 1999], envolve o arranjo das idéias e de suas associações de forma não restrita. Assim, um computador poderia 
representar associações entre coisas que poderiam parecer não relacionadas, mas que de fato, compartilham algum 
relacionamento. 
Tim Berners-Lee, criador da Web, via nesta a necessidade de uma evolução, até que ela tenha o poder de fazer 
com que as informações possuam formato tal que as máquinas venham a fazer associações entre informações que se 
relacionam [Berners-Lee, 2001]. Quando isso ocorrer de fato, terá sido implementada a Web Semântica. 
Suponha que se queira pesquisar na Web quais as cidades do país que esteja chovendo. Mesmo havendo hoje 
uma infinidade de motores de buscas e esses façam uso de algoritmos cada vez mais inteligentes, provavelmente a 
uma consulta complexa do tipo “cidades Brasil chuva hoje” não seria retornado nenhum resultado. Se, de outra 
forma, esta consulta for feita com as palavras “chuva”, “Brasil” e “cidades”, seriam listados centenas de milhares de 
websites e, a menos que alguém possa acessá-los um a um, fazendo ligações entre os resultados, não se teria ainda 
resposta para essa pesquisa. 
Metadados. São “dados que descrevem dados” mais complexos [W3C, 2001]. Um catálogo de biblioteca é um bom 
exemplo de metadados porque nos permite obter dados sobre os livros contidos na biblioteca. Dão informações sobre 
quem escreveu, quando foi publicado, que assunto é discutido etc. De maneira geral, metadados são usados para 
descrever algum tipo de recurso. Especificamente no contexto do assunto tratado neste artigo, são dados que 
descrevem recursos da Web. Outros usos de metadados são preservação dos direitos de uso, assinaturas digitais, 
avaliação de conteúdo etc. 
Ontologias. Fornecem um entendimento comum e compartilhado de um domínio, que pode ser comunicado através 
de pessoas e sistemas de aplicação, tornando-se fator chave para o desenvolvimento da Web Semântica [Lima, 
2001]. Elas podem ser vistas como metadados que representam explicitamente a semântica dos dados, de forma 
processável por máquina. Os serviços de raciocínio baseados em ontologias podem operacionalizar esta semântica no 
sentido de prover a Web com vários serviços. As ontologias ajudam as pessoas e os computadores tanto a acessar a 
informação que eles precisam quanto a comunicarem-se entre si de forma efetiva. Isto é possível tornando explícita a 
ligação entre a forma e o conteúdo da informação. As ontologias têm, portanto, um papel crucial no sentido que 
permitem o acesso, a interoperação e a comunicação baseados em conteúdo, fornecendo à Web um nível de serviço 
qualitativamente novo, que consideramos na Web Semântica. Ela une em rede incríveis porções do conhecimento 
humano, complementando-as com capacidade de processamento de máquina. 
Linguagens. A RDF (Resource Description Framework) [Lassila, 1999] é uma camada conceitual que junto com a 
XML (Extensible Markup Language) [Bray, 2000] tornam-se cruciais para a implementação da “Web de 
significado”. Para que a Web seja a integração de todos os sistemas de informação, levando-a, então a seu pleno 
potencial, a RDF foi desenvolvida pelo W3C – World Wide Web Consortium [W3C, 2001], órgão padronizador de 
tudo o que é relativo a Web. A RDF é o padrão do W3C para metadados na Web. Essa linguagem permite aos 
computadores representar e compartilhar dados semânticos na Web [Lassila, 1999]. A RDF pode ser utilizada em 
várias áreas de aplicação da Web: na busca de recursos para melhorar os mecanismos de sites de busca já existente, 
em bibliotecas virtuais descrevendo o conteúdo disponível, no comércio eletrônico, principalmente na segurança, em 
websites particulares etc. Também é útil em outras aplicações que estão fora do escopo da Web, como recursos 
multimídias em geral, bibliotecas digitais e outras. A RDF em si é uma linguagem simples que é capaz de fazer 
relacionamentos entre informações, mas, além disso, é necessário um meio para definição de dados. A RDF Schema 
[Brickley, 2000] foi criada pelo W3C com essa finalidade. 
O objetivo deste artigo é o de verificar o potencial da RDF e da RDF Schema como aporte semântico para a Web. 
A seção 2 descreve os níveis de linguagens para a Web Semântica, contextualizando as linguagens RDF e RDF 
Schema dentro dessa arquitetura. A seção 3 apresenta alguns softwares desenvolvidos para trabalhar a RDF. As 
seções 4 e 5 descrevem detalhes da RDF e da RDF Schema, respectivamente, de acordo com a especificação do 
W3C. Isso é feito através de exemplos e figuras de forma a facilitar o entendimento. Para ilustrar os recursos dessas 
linguagens a seção 6 modela um cenário, apresentado em forma de grafo, levando-se em consideração o 
relacionamento que há entre Artistas e suas Obras. A seção apresenta também exemplos de consultas para o cenário 
modelado. A seção 7 conclui este artigo com algumas considerações finais. O código RDF/XML do cenário é 
apresentado no anexo. 
2 Níveis de linguagens para a Web Semântica 
A Web Semântica pode ser vista como uma arquitetura em três níveis [Berners-Lee, 1998], conforme mostrado na 
figura 1. Somente quando um modelo comum é geral ele pode ser usado por qualquer aplicação mapeada sobre esse 
modelo. 
 
Figura 1: Níveis de linguagens para a Web Semântica 
O modelo geral aqui é o da Estrutura de Descrição de Recurso – a RDF – e o nível de dados da arquitetura é 
constituído por ela. Esta é uma linguagem simples que está apta a prover um modelo de afirmações e citações em que 
podemos mapear os dados em qualquer novo formato. Documentos RDF neste nível não têm grande poder, mas 
espera-se que estes dados, enquanto limitados dentro de uma aplicação, sejam combinados, mais tarde, com dados de 
Nível Dados
RDF
Nível Esquema
RDF Schema
Nível LógicoOIL + DAML
Nível Dados
RDF
Nível Esquema
RDF Schema
Nível Lógico
OIL + DAML
outras aplicações dentro da Web. Com toda a Web constituída dessas aplicações, elas deverão ser capazes de usar 
uma estrutura comum para combinar sua informação. O modelo básico da RDF permite que se faça relacionamento 
entre dados, mas não nos dá muitas ferramentas para isso. Faz-se necessário um nível de esquema onde é declarada 
a existência de novas propriedades. Assim como na SGML (Standard Generalized Markup Language) [Connolly, 
1997] o DTD (Document Type Definition) [Bray, 2000] permite checar se os elementos são utilizados em posições 
apropriadas, na RDF um esquema permitirá checar que, por exemplo, a carteira de um motorista tem o nome de uma 
pessoa, e não um modelo de carro, como seu "nome". 
O próximo nível é o nível lógico. É necessário que haja caminhos de escrita lógica dentro de documentos que 
permitam coisas tais como a checagem de um documento contra um conjunto de regras de autoconsistência. Essa 
camada necessita de linguagens de representação de conhecimento, como a OIL (Ontology Inference Layer) ou sua 
sucessora, a DAML+OIL (DARPA Agent Markup Language, em um projeto conjunto com a OIL) [DAML, 
20001][Horrocks, 2001], que está sendo desenvolvida por um grupo de cientistas europeus e norte-americanos. A 
proposta deste artigo, entretanto, é a de se ater nos níveis de dados, com a RDF, e de esquema, com a RDF Schema. 
3 Softwares para RDF 
O W3C, na especificação de modelo e sintaxe da RDF, reservou duas seções que são básicas para aqueles que 
querem implementar softwares para a RDF. Elas proporcionam conhecimento do modelo formal e gramática formal 
da RDF, de forma que seja possível entender seu funcionamento em mais baixo nível. Já podemos encontrar na Web 
alguns programas como banco de dados, editores, interpretadores e compiladores que estão sendo desenvolvidos e 
outros que já estão disponíveis para os usuários. Dentre esses foram separados alguns que serão descritos nas 
próximas subseções deste artigo. 
3.1 O editor RDFedt 
O RDFedt [Winkler, 2001] foi o editor de RDF escolhido para ser usado neste artigo. O RDFedt auxilia na 
construção de documentos estruturados em RDF e também RSS (RDF Site Summary). Esse editor suporta: a 
linguagem RDF propriamente dita; a linguagem RDF Schema; elementos Dublin Core (padrão de metadados); o 
RDF Site Summary 1.0 com os seguintes módulos: agregação, anotação, mudança de página, conteúdo, corte, 
organização, threading e RSS 0.91; declarações e folhas de estilos em XML; minimização de tags; conjunto de 
elementos importados; abrir e salvar documentos em arquivos do tipo .xml; gerar código a partir da árvore RDF; 
imprimir os códigos gerados; testar entradas na árvore RDF; gerar automaticamente lista de links baseados em RDF 
de um documento HTML. A figura 2 mostra uma imagem de tela do RDFedt para o cenário modelado na seção 6. 
 
 
Figura 2: Imagem de tela do RDFedt 
3.2 O RDFSuite do ICS-FORTH1 
O ICS-FORTH, tendo em vista a realização do potencial total da Web Semântica, criou um conjunto de ferramentas 
para RDF [Alexaki, 2001] compreendendo um compilador de validação de RDF – o VRP (Validating RDF Parser), 
um banco de dados específico para RDF – o RSSDB (RDF Schema Specific Data Base) e a RQL (RDF Query 
Language) que é uma linguagem de consultas para RDF. 
3.2.1 O compilador de validação de RDF (VRP) 
Segundo seus criadores (Alexaki, 2001] este é o primeiro compilador de RDF que suporta validação semântica em 
recursos de descrições e esquemas. Este compilador analisa sintaticamente as declarações de um documento dado em 
RDF/XML de acordo com a especificação de modelo e sintaxe da RDF, verifica se os esquemas RDF e as instâncias 
de metadados satisfazem as restrições semânticas estabelecidas pela especificação da RDF Schema do W3C. 
O compilador VRP está atualmente disponível para verificar a finalidade de um lançamento alfa. Há uma 
distribuição fonte e uma de rotinas. Ambas requerem Java 1.2 ou superior (como o YACC/Lex para C). O ICS-
FORTH não garante a exatidão do programa. Esta versão atual é para ambiente Linux. Dentre as suas características, 
podemos citar: desenvolvido 100% em Java; admite RDF embutido em HTML ou XML; suporta Unicode completo; 
verifica a semântica e a sintaxe de RDF Schema e instâncias de metadados; valida de declarações através de diversos 
namespaces RDF/XML; baseado em ferramentas geradoras de compiladores padrões para o Java CUP/JFlex; fácil de 
usar e de se integrar com outros softwares. Quanto às suas limitações, o compilador não suporta o atributo 
"aboutEachPrefix" da RDF e, no caso de uso do atributo "aboutEach" da RDF, o compilador não suporta referências 
a outros arquivos. Para um compilador o relatório de erros é uma das características principais. Conseqüentemente o 
VRP fornece uma lista enorme de mensagens de erro diferenciadas, refinadas com informações adicionais. O sistema 
fornece para cada erro um número original do erro. 
3.2.2 O banco de dados específico da RDF Schema (RSSDB) 
É o primeiro complexo de RDF que explora o conhecimento do esquema para gerar automaticamente uma 
representação de relacionamento entre objetos (SQL3) de metadados RDF e carregar devidamente a descrição de 
recursos. Este módulo do conjunto ainda está sendo desenvolvido pelo ICS-FORTH. 
3.2.3 A linguagem de consulta da RDF (RQL) 
A RQL (RDF Query Language) é a primeira linguagem de consulta declarativa (em estilo ODMG-OQL) para 
metadados e esquemas RDF. RQL é uma linguagem tipada que conta com um modelo de grafos formal, capturando a 
modelagem primitiva em RDF e RDF Schema e permitindo a interpretação de descrições sobrepostas por meio de 
um ou mais esquemas. A novidade da RQL está em sua habilidade de alternar diretamente entre esquemas e dados de 
consulta de forma transparente, a taxonomia de classes e propriedades, bem como as múltiplas classificações dos 
recursos. 
Dentre suas características estão: (a) desenvolvimento eficiente em C++ no topo de um sistema gerenciador de 
banco de dados objeto-relacional (por exemplo PostgreSQL); (b) conta com uma API RDF de consulta, fácil de 
executar para diferentes sistemas gerenciadores de banco de dados; (c) promove tanto quanto possível a avaliação da 
consulta ao motor subjacente ao gerenciador de banco de dados; (d) alto nível de acesso a funcionalidades para: 
navegação por portais de catálogos (fácil navegação, descoberta de recursos), personalização do conteúdo do portal 
(para vários alvos de audiências), esquemas de buscas e recursos de portais (exploração eficaz e eficiente de grandes 
bases de descrições), permutação do amontoado de descrições de recursos dentro ou através das comunidades (que 
empregam esquemas diferentes). 
Quanto à disponibilidade, o interpretador RQL (motor de consulta) está atualmente em desenvolvimento. Está 
disponível um demo on-line, para testar principalmente a liberação de uma versão alfa. O ICS-FORTH não dá ainda 
nenhuma garantia na exatidão do programa. 
 
1 O ICS – Institute of Computer Science é um dos sete institutos de pesquisa que constituem o FORTH – Foundation 
of Research Technology Hellas, centro de pesquisa e desenvolvimento do governo grego. Disponível em: 
<http://ics.forth.gr/>. 
3.3 O SiRPAC – interpretador e compilador de RDF 
O SiRPAC (Simple RDF Parser & Compiler) é um conjunto de classes Java que podem compilar documentos 
RDF/XML conforme as 3-tuplas do modelo de dados da RDF. Os documentos podem estar em um sistema de 
arquivo local ou em uma URI (Universal Resource Identifier) na Web. Quando usado via linha de comando, o 
compilador pode ser configurado para buscar automaticamente esquemas RDF correspondentes a seus namespaces 
declarados. A versão mais recente deste compilador é a SiRPAC 1.17,que conta com a correção de alguns erros 
encontrados nas versões anteriores. 
Para se utilizar do seu serviço on-line basta entrar com uma URI ou colar um documento em RDF/XML no 
campo do texto. Será retornada uma representação de 3-tuplas do modelo de dados correspondente assim como um 
grafo do modelo de dados. É possível configurar a forma de apresentação deste grafo, desde o tipo de arquivo até as 
cores. O serviço é baseado na versão 1.17. Estão disponíveis para testes vários exemplos de RDF. A figura 3 ilustra a 
implementação do SiRPAC. 
 
Figura 3: Imagem de tela do serviço on-line 
3.4 O rdfDB: um banco de dados para RDF 
O rdfDB [Guha, 2001] foi criado para ser um banco de dados simples, escalável e de código aberto. O objetivo deste 
projeto é construir um banco de dados que seja capaz de: suportar um grafo orientado a API através de uma 
linguagem de consulta textual como RDF; carregar e recarregar um arquivo RDF de uma URL na base de dados; 
escalável para os nós e tuplas; fornecer suporte a esquemas RDF; fornecer suporte para algumas formas básicas de 
inferência; fornecer o acesso de C e de Perl à base de dados; aplicar a filosofia do Perl: as coisas simples devem ser 
simples e as coisas complexas devem ser possíveis. 
A versão atual é 0.46 e foi desenvolvida para Unix, especificamente para BSD (Berkeley Software Distribution) e 
Linux. O rdfDB se utiliza de uma linguagem de consulta de alto nível chamada SQLish. Suas principais operações 
são: criação e exclusão de um banco de dados; carregamento de arquivos em um banco de dados; inserção e exclusão 
de tuplas de dados RDF; comandos de namespace e consultas ao banco de dados. 
4 A linguagem RDF 
Basicamente, a RDF define um modelo de dados para a descrição de dados semânticos processáveis por máquina, 
que se parece com um diagrama de entidades e relacionamentos, com as propriedades RDF representando 
relacionamentos entre recursos. Mais precisamente, os RDF Schemas, que são instâncias de modelos de dados RDF, 
são diagramas ER (Entidade-Relacionamento). 
4.1 Representação da RDF por grafos rotulados 
Uma declaração RDF pode ser representada através de grafos rotulados, que também podem ser chamados de 
“diagramas de nós e arcos”. A figura 4 é um esquema de como uma declaração pode ser representada através destes 
diagramas. 
 
 
Figura 4: Esquema de representação da RDF em grafo 
Os nós representam os recursos e as propriedades são representadas pelos arcos. Quando um nó é um literal, é 
representado por um retângulo. A direção da seta é significante: o arco sempre começa no sujeito e aponta para o 
objeto da declaração, conceitos esses que serão definidos na próxima seção. 
4.2 O modelo básico da RDF 
O fundamento da RDF estabelece um modelo básico para descrição de dados que consiste em três tipos de objetos. 
Recursos: um recurso é qualquer coisa descrita em expressões da RDF. Pode ser uma página da Web, um website 
inteiro ou parte deste. Pode ser também um objeto não acessível via Web, como um livro, uma revista ou um CD. 
Recursos são sempre especificados por URI’s. 
Propriedades: uma propriedade é uma característica, um atributo ou uma relação utilizada para descrever o recurso. 
Declarações: uma declaração é um recurso específico com uma propriedade definida mais o valor desta propriedade. 
Podemos dizer que uma declaração é um recurso mais as propriedades desse recurso e mais o valor dessas 
propriedades. 
Essas três partes individuais são chamadas respectivamente de sujeito, predicado e objeto. Em outras palavras, o 
modelo básico primitivo da RDF consiste de tuplas de objeto, propriedade e valor. 
4.2.1 Exemplos 
Considere a seguinte sentença: Marcio de Faria é o diretor do site http://www.jfservice.com.br. 
Esta sentença tem as seguintes partes: 
Sujeito (Recurso) http://www.jfservice.com.br 
Predicado (Propriedade) Diretor 
Objeto (literal) “Marcio de Faria” 
Isto pode também ser representado através de grafos rotulados como na figura 5. 
Figura 5: Nó simples e diagrama de arco 
Este diagrama pode ser lido como: http://www.jfservice.com.br tem como diretor Marcio de Faria ou, de maneira 
mais geral, “<sujeito> TEM <predicado> <objeto>”. 
No próximo exemplo, considere que se quer acrescentar mais características ao objeto da declaração (“Marcio de 
Faria”). Observe a seguinte sentença: O indivíduo cujo nome é Marcio de Faria, email marcio@jfservice.com.br, é o 
diretor de http://www.jfservice.com.br. O modelo para esta sentença é o da figura 6. A diferença entre a sentença 
anterior e essa é que na primeira temos uma declaração com uma única propriedade ligada a um objeto, um literal. Já 
nessa sentença, há uma propriedade estruturada (Diretor) que possui duas outras propriedades (Nome e Email). Em 
RDF, propriedades estruturadas são representadas como outro recurso e como a sentença em questão não dá nome 
para este recurso, ele é anônimo e por isso, representado por uma elipse vazia. Este diagrama pode ser lido como: 
http://www.jfservice.com.br tem diretor e este tem nome Marcio de Faria e email marcio@jfservice.com.br. 
 
 
RECURSO RECURSO
propriedades
 
http://www.jfservice.com.br Marcio de FariaDiretor
 
Figura 6: Propriedade com valor estruturado 
Continuando com os exemplos, imagine que exista um número único por funcionário designado por ID. A URI 
que serve como chave única para o funcionário Marcio de Faria é http://www.w3.org/staffid/395. Podemos escrever 
isto como: O indivíduo referenciado por ID funcionário 395 é chamado de Marcio de Faria, email 
marcio@jfservice.com.br. O website http://www.jfservice.com.br é dirigido por este indivíduo. O modelo RDF para 
essas sentenças é o da figura 7. 
 
Figura 7: Propriedade estruturada com identificador 
A elipse vazia do exemplo anterior é substituída aqui pela URI http://www.jfservice.com.br/staffid/395. A 
entidade estruturada pode também ser designada por um único identificador, como foi aplicado neste exemplo. O 
diagrama acima corresponde à leitura de: O website http://www.jfservice.com.br tem por diretor o funcionário 
referenciado pelo ID 395 chamado Marcio de Faria e que tem por email marcio@jfservice.com.br. 
Freqüentemente o valor de uma propriedade é alguma coisa que tem informação adicional que acaba sendo 
considerada parte daquele valor. Em outras palavras, há uma necessidade de se qualificar valores de propriedades. 
Exemplos disso seria a denominação de uma unidade de medida ou alguma outra notação. No modelo RDF uma 
propriedade de valor qualificado é simplesmente outra instância de um valor estruturado. O objeto da declaração 
original é este valor estruturado e os qualificadores são propriedades deste recurso comum. 
4.3 Sintaxe básica da RDF 
A especificação do W3C apresenta duas sintaxes de XML para codificação de um modelo de instância de dados em 
RDF: A sintaxe de serialização básica e a sintaxe básica abreviada. A diferença mais marcante entre as duas está 
em como a estrutura do modelo RDF é apresentada. A primeira nos oferece uma estrutura mais clara enquanto a 
segunda uma forma mais compacta. Outra característica desta é que os elementos DTDs podem ser diretamente 
interpretados como modelos RDF. 
Como exemplo disso tem-se a terceira sentença acima, adicionando-se o fato que o recurso 
http://www.jfservice.com.br/staffid/395 representa uma instância de uma Pessoa: O indivíduo referenciado por ID 
 
http://www.jfservice.com.br
Marcio de Faria marcio@jfservice.com.br 
Diretor
EmailNome
 
http://www.jfservice.com.br
http://www.jfservice.com.br/staffid/395
Marcio de Faria marcio@jfservice.com.br 
Nome Email
Diretor
funcionário 395 é chamado de Marcio de Faria, email marcio@jfservice.com.br. O Website 
http://www.jfservice.com.br é dirigido por este indivíduo. 
Usando a sintaxe de serialização completa tem-se: 
<rdf:RDFxmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
 xmlns:s="http://description.org/schema/"> 
 <rdf:Description about="http://www.jfservice.com.br"> 
 <s:Diretor> 
 <rdf:Description about="http://www.jfservice.com.br/staffid/395"> 
 <rdf:type resource="http://description.org/schema/Pessoa"/> 
 <v:Nome>Marcio de Faria</v:Nome> 
 <v:Email>marcio@jfservice.com.br</v:Email> 
 </rdf:Description> 
 </s:Diretor> 
 </rdf:Description> 
</rdf:RDF> 
E usando a sintaxe de serialização abreviada temos o seguinte código RDF/XML: 
<rdf:RDF 
 <rdf:Description about="http://www.jfservice.com.br"> 
 <s:Diretor> 
 <rdf:s:Pessoa about="http://www.jfservice.com.br/staffid/395"> 
 <v:Nome>Marcio de Faria</v:Nome> 
 <v:Email>marcio@jfservice.com.br</v:Email> 
 </s:Pessoa> 
 </s:Diretor> 
 </rdf:Description> 
</rdf:RDF> 
Observe que nos exemplos de sintaxe básica o prefixo ‘s’ refere-se a um namespace específico definido na 
declaração XML tal como: 
xmlns:s="http://description.org/schema/" 
Um namespace [Bray, 1999] é uma coleção de nomes, identificadas por uma referência URI, que são usadas em 
documentos XML como tipos de elementos e nomes de atributos. 
A especificação do W3C do modelo e sintaxe da RDF apresenta várias formas de uso tanto da sintaxe de 
serialização básica, como para a abreviada. Todas essas formas para fins da RDF são equivalentes. Algumas delas 
podem resultar em expressões altamente condensadas que não são recomendadas, já que a possibilidade de 
inconsistência é maior de que quando se usa prefixos explícitos. 
4.4 Modelo de containers 
O RDF define três tipos de objetos de containers, a saber: 
Bag. É uma lista não ordenada de recursos ou literal, ou seja, é usada para declarar que uma propriedade tem 
múltiplos valores e que não importa a ordem em que esses valores são dados. 
Sequence. É uma lista ordenada de recursos ou literal, ou seja, é usada para declarar que uma propriedade tem 
múltiplos valores e que a ordem em que esses valores são dados é significante. 
Alternative. É uma lista de recursos ou literal que representa alternativa de valores para uma propriedade. Neste 
caso, qualquer um dos valores na lista pode ser escolhido como apropriado. 
Para representar um container, a RDF usa a propriedade type para identificar uma coleção específica, que deve 
ser declarada como sendo uma instância de um dos objetos de containers. A relação entre os membros do container e 
seus recursos é definida por um conjunto de propriedades nomeadas simplesmente por “_1”, “_2”, “_3”, etc. 
4.4.1 Exemplos 
Considere como exemplo de container a seguinte declaração: Os alunos da turma A são Maria, José, Carlos, 
Antônio e Francisco. O modelo RDF para essa sentença é o da figura 8. 
 
Figura 8: Container do tipo Bag 
O código RDF/XML pode ser algo do tipo: 
<?xml version="1.0"?> 
<rdf:RDF 
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
 xmlns:s="http://description.org/schema/"> 
 <rdf:Description about="http://www.escola.br/turmas/A"> 
 <s:Alunos> 
 <rdf:Bag> 
 <rdf:li rdf:resource="http://www.escola.br/turma/A/alunos/Maria"/> 
 <rdf:li rdf:resource="http://www.escola.br/turma/A/alunos/José"/> 
 <rdf:li rdf:resource="http://www.escola.br/turma/A/alunos/Carlos"/> 
 <rdf:li rdf:resource="http://www.escola.br/turma/A/alunos/Antônio"/> 
 </rdf:Bag> 
 </s:Alunos> 
 </rdf:Description> 
</rdf:RDF> 
Note que a RDF usa o elemento li para explicitar o número de elementos de cada membro. O próximo exemplo 
vem ilustrar os três tipos de objetos de container. Considere um documento que tem dois autores, é apresentado em 
duas línguas diferentes cada qual tendo sua localização na Web. Isso em RDF/XML pode ser escrito como: 
<?xml version="1.0"?> 
<rdf:RDF 
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
 xmlns:s="http://description.org/schema"> 
 <rdf:Description about="http://www.w3.org/rdf.html"> 
 <s:Autor> 
 <rdf:Seq ID="AutoresPorNome"> 
 <rdf:li>Ora Lassila</rdf:li> 
 <rdf:li>Ralph R.Swick</rdf:li> 
 </rdf:Seq> 
 </s:Autor> 
 <s:Recursos> 
 <rdf:Bag ID="Sites"> 
 <rdf:li rdf:resource="http://www.xml.it/RDF/REC-rdf-syntax-19990222-it.h tml"/> 
 <rdf:li rdf:resource="http://www.la-grange.net/w3c/REC-rdf-syntax"/> 
 </rdf:Bag> 
 </s:Recursos> 
 <s:Titulo> 
 <rdf:Alt> 
 <rdf:li xml:lang="it">Resource Description Framework (RDF) Modello e Sintassi 
 </rdf:li> 
 <rdf:li xml:lang="fr">Spécification du modèle et la syntaxe du Cadre de Description 
des Resources </rdf:li> 
 </rdf:Alt> 
 </s:Titulo> 
 </rdf:Description> 
 
/turmas/A 
rdf:Bag
Alunos/Maria 
Alunos/José 
Alunos/Carlos 
Alunos/Antônio
Alumos 
rdf:type
rdf:_1
rdf:_2
rdf:_3
rdf:_4
</rdf:RDF> 
Neste exemplo, os autores são classificados por ordem alfabética, por isso foi usado Sequence, já que a ordem em 
que são apresentados seus nomes se faz significante. As localizações na Web são equivalentes, portanto é usado um 
Bag. O container Alternative é usado porque cada tradução da publicação tem um título único e esse tem duas 
variantes, as línguas que são apresentadas. 
5 A linguagem RDF Schema 
Como já foi citado, o modelo de dados da RDF pode lembrar um diagrama de entidade-relacionamento, já que as 
propriedades da RDF representam relacionamentos entre recursos. A RDF Schema [Brinkley, 2000] é responsável 
por prover mecanismos para declaração dessas propriedades. Um esquema não define somente as propriedades dos 
recursos, mas também os tipos de recursos que estão sendo descritos. Pode ser entendido como uma espécie de 
dicionário onde são definidos os termos que serão utilizados em declarações RDF. A especificação da RDF Schema 
do W3C fornece os mecanismos necessários à definição de elementos, de classes de recursos, de possíveis restrições 
de classes e relacionamentos e detecção de violação de restrições. 
Escopo. A especificação da RDF Schema foi diretamente pensada levando em consideração problemas específicos e 
imediatos. Seus criadores esperam que outros problemas futuros compartilhem características parecidas e que assim 
seja possível usar as classes básicas já projetadas. Os problemas em questão são: PICS (Platform for Internet Content 
Selection), os metadados simples da Web, mapa de sites e outras ferramentas de navegação e P3P (Platform for 
Privacy Preferences Project), descritos a seguir. 
• PICS. O modelo e sintaxe RDF é adequado para representar rótulos de PICS, que foi originalmente desenvolvido 
para ajudar pais e professores a controlar o que as crianças acessam na Internet, além de facilitar outros usos de 
rótulos, incluindo assinatura de código e privacidade. A RDF Schema, no entanto, não fornece um mapeamento 
de propósito geral de sistemas de avaliação de PICS dentro de uma representação de RDF. 
• Metadados simples da Web. Uma aplicação óbvia da RDF está na descrição de páginas da Web. Essa é uma das 
funções básicas da iniciativa Dublin Core. O Dublin Core [DCMI,2001] é um conjunto de 15 elementos 
largamente aplicáveis para descrever recursos da Web para habilitar sua descoberta. 
• Mapa de sites e outras ferramentas de navegação. A especificação da RDF Schema fornece recursos 
suficientes para criar modelos RDF que representam sistemas hierárquicos para representar taxonomia de 
assuntos. Mapas de sites, dicionários e esquemas de classificação de bibliotecas são exemplos bem conhecidos de 
sistemas hierárquicos. 
• P3P. A plataforma Projeto de Preferências de Privacidade requer uma gramática para construção de declarações 
sobre práticas de coleção de dados e preferências pessoais como exercício sobre estas práticas, assim como uma 
sintaxe de dados estruturados de troca. O uso de um esquema de metadados para descrever a estrutura formal de 
descriçãode práticas de privacidade permitirá privacidade na prática de dados para serem utilizados junto com 
outros metadados em uma consulta durante descoberta de recurso, e permitirá a um agente de software agir de 
acordo com a privacidade dos metadados usando as mesmas técnicas como utilizadas para outros metadados 
descritivos. 
Convenções. (a) Nomes de Classe têm a primeira letra maiúscula (Ex: rdfs:Resource); (b) Palavras adicionais ao 
nome de classe são também maiúsculas (Ex: rdfs:ConstraintProperty); (c) Nomes de propriedades não têm a 
primeira letra não maiúscula (Ex: rdfs:domain); e (d) Palavras adicionais ao nome são maiúsculas (Ex: 
rdfs:subClassOf). 
Restrições. A RDF Schema serve também para especificar restrições visando um modelo RDF consistente. Exemplo 
de restrições são rdfs:domain e rdfs:range que se refere a propriedades de uso e a regra que 
rdfs:subPropertyOf e rdfs:subClassOf não devem formar laços. A RDF Schema usa as propriedades de 
restrição para definir como suas propriedades podem ser utilizadas. Classes e propriedades de restrições serão 
mostradas com detalhes na seção 5.3. 
5.1 Modelagem primitiva da RDF Schema 
Esse termo refere-se às classes, propriedades e restrições do núcleo da RDF Schema. A RDF Schema descrita na 
especificação do W3C é uma coleção de recursos da RDF que podem ser utilizados para descrever propriedades de 
outros recursos da RDF para definir vocabulários para aplicações específicas da RDF. O vocabulário do núcleo é 
definido usando o namespace ‘rdfs’ assim como o da RDF usa o prefixo ‘rdf’. 
Os recursos que serão descritos nas próximas seções podem ser vistos em forma de esquema na figura 9 
[Brickley, 2000] que ilustra os conceitos de classe, subclasse e recurso. Uma classe é representada pelo retângulo de 
cantos arredondados, os recursos são representados por um grande ponto preto e as setas apontam de um recurso à 
sua respectiva classe. Uma subclasse, que também é uma classe, é representada por um retângulo de cantos 
arredondados envolvido em outro, sua superclasse. 
 
Figura 9: Classes e recursos em um esquema de conjuntos e elementos 
A figura 10 [Brickley, 2000] mostra a hierarquia entre classes através de grafo. A seta com o indicativo s aponta 
do nó que representa a subclasse ao nó representante da sua respectiva classe, indicando que há entre elas uma 
propriedade rdfs:subClassOf e a seta com o indicativo t, similarmente, aponta do nó que representa o recurso ao 
da sua instância, indicando que há entre eles uma propriedade rdf:type. 
 
Figura 10: Hierarquia de classes da RDF Schema 
5.2 Classes e propriedades do núcleo 
Os seguintes recursos são as classes do núcleo que são definidas como parte do mecanismo da RDF Schema: 
• rdfs:Resource: representa o conjunto de recursos do modelo básico da RDF, descrita em 4.2. 
• rdfs:Property: representa as propriedades da RDF, que é subconjunto de recursos. 
 Ex: <rdf:Property rdf:ID="faz"/> 
• rdfs:Class: Similar à noção de uma classe em linguagens de orientação a objeto como Java, tendo em vista 
que uma classe RDF pode representar qualquer recurso tais como: websites, pessoas, tipo de documentos ou 
conceitos abstratos. Ex: <rdfs:Class rdf:ID="Artista"/>. 
As propriedades a seguir fornecem um mecanismo para expressar relacionamentos entre classes e suas instâncias 
ou superclasses. São instâncias da classe rdf:Property: 
• rdfs:type: indica que um recurso é membro de uma classe e tem todas as características que são de se esperar 
de um membro daquela classe. Quando um recurso tem uma propriedade rdf:type cujo valor é alguma classe 
específica, esse recurso é uma instância dessa classe. Um recurso pode ser uma instância de mais que uma classe. 
• rdfs:subClassOf: especifica uma relação hierárquica entre classes. A figura 11 mostra um exemplo simples, 
onde foram definidas uma classe ‘Artista’ e duas subclasses de ‘Artista’: ‘Compositor’ e ‘Escritor’. Note que 
rdfs:Class é subclasse de rdfs:Resource e essa, é uma instância de rdfs:Class. 
 Figura 11: Exemplo de hierarquia de classes 
A seguir é mostrado o código RDF/XML correspondente ao grafo. 
<?xml version="1.0" ?> 
<rdf:RDF xml:lang="en" 
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
 xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> 
<rdfs:Class rdf:ID="Artista"> 
 <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#" /> 
</rdfs:Class> 
<rdfs:Class rdf:ID="Compositor"> 
 <rdfs:subClassOf rdf:resource="#Artista" /> 
</rdfs:Class> 
<rdfs:Class rdf:ID="Escritor"> 
 <rdfs:subClassOf rdf:resource="#Artista" /> 
</rdfs:Class> 
</rdf:RDF> 
• rdfs:subPropertyOf: especifica a relação hierárquica entre propriedades. Nunca pode se declarar que uma 
classe/propriedade é uma subclasse/subpropriedade de si mesma, nem de qualquer uma de suas 
subclasses/subpropriedades. A figura 12 mostra um exemplo simples que expressa hierarquia entre propriedades. 
Foram definidas a propriedade ‘faz’ e duas subpropriedades de ‘faz’: ‘compõe’ e ‘escreve’. Em seguida, é 
mostrado o código RDF/XML correspondente à parte do grafo que se refere a propriedades. 
Figura 12: Exemplo de hierarquia de propriedades 
<?xml version="1.0" ?> 
<rdf:RDF xml:lang="en" 
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
 xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> 
 
compoe
escreve
Compositor 
Escritor
Musica
Livro
Artista faz
rdfs:subproperty
Arte
 
s
Compositor Escritor 
Artista
rdfs:Resource
rdfs:Class 
s 
s 
t
t 
s
s
t
t
s = rdfs:subClassOf 
t = rdf:type 
 <rdf:Property rdf:ID="faz"> 
 <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#"/> 
</rdf:Property> 
 <rdf:Property rdf:ID="compoe"> 
 <rdfs:subPropertyOf rdf:resource="#faz" /> 
 </rdf:Property> 
 <rdf:Property rdf:ID="escreve"> 
 <rdfs:subPropertyOf rdf:resource="#faz"/> 
 </rdf:Property> 
</rdf:RDF> 
• rdfs:seeAlso: especifica que um recurso contém informação sobre o sujeito de um recurso. 
• rdfs:isDefinedBy: é uma subpropriedade de rdfs:seeAlso; especifica o recurso que define o sujeito da 
declaração. 
5.3 Restrições do núcleo 
As classes e propriedades descritas a seguir são utilizadas para declarar restrições de consistência: 
• rdfs:ContraintResource: define uma subclasse de rdfs:Resource cujas instâncias são construções RDF 
Schema envolvidas no designo de restrições. O propósito desta classe é fornecer um mecanismo que permita que 
processadores da RDF chequem a consistência de um modelo RDF. 
• rdfs:ContraintProperty: define uma subclasse de rdfs:Resource cujas instâncias são propriedades 
utilizadas para especificar restrições. Esta classe é uma subclasse de rdfs:ConstraintResource e 
corresponde ao subconjunto daquela classe representando propriedades. 
• rdfs:range: instância de rdfs:ConstraintProperty que é utilizada para reprimir valores de propriedades. 
O valor de uma propriedade range é sempre uma classe. Uma propriedade pode ter no máximo uma propriedade 
rdfs:range. 
• rdfs:domain: instância de rdfs:ConstraintProperty que é usada para especificar uma classe em que uma 
propriedade pode ser utilizada. Uma propriedade pode ter zero, uma ou mais que uma classe como seu domínio. 
Continuando com o exemplo anterior de Artista, temos: 
<?xml version="1.0" ?> 
<rdf:RDF xml:lang="en" 
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
 xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" > 
 <rdf:Property rdf:ID="faz"> 
 <rdfs:domain rdf:resource="#Artista" /> 
 <rdfs:range rdf:resource="#Arte" /> 
 </rdf:Property> 
 <rdf:Property rdf:ID="compoe"> 
 <rdfs:domain rdf:resource="#Compositor" /> 
 <rdfs:range rdf:resource="#Musica" /> 
 </rdf:Property> 
 <rdf:Property rdf:ID="escreve"> 
 <rdfs:domain rdf:resource="#Escritor"/> 
 <rdfs:range rdf:resource="#Livro" /> 
 </rdf:Property> 
</rdf:RDF> 
Isso quer dizer que, foram definidas três propriedades, a saber: ‘faz’, ‘compõe’ e ‘escreve’. A propriedade ‘faz’ é 
aplicável para qualquer ‘Artista’ e seu valor é ‘Arte’. A propriedade ‘compõe’ é aplicável para qualquer 
‘Compositor’ e tem como valor ‘Música’, assim como a propriedade ‘escreve’ que é definida para qualquer 
‘Escritor’ com valor igual a ‘Livro’. 
5.4 Conceitos de modelo e sintaxe da RDF 
As seguintes classes e propriedades são referentes aos conceitos de RDF introduzidos acima quando se discutiu 
acerca do modelo e sintaxe da RDF: 
• rdf:Literal: corresponde ao conjunto chamado ‘Literais’ descrito na seção 4.2. 
• rdf:Statement: corresponde ao conjunto chamado ‘declaração’ descrito na seção 4.2. 
• rdf:subject:corresponde à propriedade chamada ‘sujeito’ descrito na seção 4.2. 
• rdf:predicate: corresponde à propriedade chamada ‘predicado’ descrito na seção 4.2. 
• rdf:object: corresponde à propriedade chamada ‘objeto’ descrito na seção 4.2. 
• rdf:value: corresponde a propriedade chamada ‘valor’ descrito na seção 4.2. 
• rdfs:Container: é utilizada para assegurar as classes de containers descritas na seção 4.4. 
• rdf:Bag: corresponde à classe chamada ‘Bag’ descrita na seção 4.4. 
• rdf:Seq: corresponde à classe chamada ‘Seq’ descrita na seção 4.4. 
• rdf:Alt: corresponde à classe chamada ‘Alt’ descrita na seção 4.4. 
• rdfs:ContainerMembershipProperty: corresponde as propriedades _1, _2, _3, etc. utilizadas para indicar os 
membros do container descrito na seção 4.4. 
6 Modelagem de um cenário de aplicação 
Para ilustrar os recursos da RDF e RDF Schema descritos anteriormente, foi modelado um cenário (figura 13) 
levando-se em conta o relacionamento que há entre Artistas e suas Obras. Assim foi considerado que a criação de 
todo Artista resulta em uma Arte que é exibida em alguma forma de coletânea que foi chamada de Álbum. Além 
disso, as Artes, seja a Música ou a Literatura (aqui expressa por Livro), possuem recursos externos como título, ano 
de criação, tipo de arquivo, gravadora ou editora, e outros atributos, dos quais os três primeiros foram usados na 
modelagem. 
Figura 13: Modelagem do cenário 
6.1 Exemplos de consultas para o cenário modelado 
As consultas abaixo, formuladas em RQL, ilustram a aplicação aqui modelada. 
Consulta 1. Encontre todas as propriedades que são especialistas da propriedade faz (ou de suas subpropriedades) e 
têm como domínio a classe Compositor. 
 select @P, $Y from {:Compositor}@P{:$Y} where @P <= faz 
<?xml version="1.0" encoding="ISO-8859-1" ?> 
<RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 
<rdf:Bag ID="bag004"> 
<rdf:li> 
<rdf:Seq> 
 <rdf:li rdf:type="property" rdf:resource="faz" /> 
 <rdf:li rdf:type="class" rdf:resource="Arte" /> 
 </rdf:Seq> 
 </rdf:li> 
<rdf:li> 
S t r in g
S t r in g
A r t is t a
n o m e
s o b r e n o m e
A r te
c o m p õ e
Á lb u m
e x ib id a
C o m p o s i t o r
E s c r i t o r
M ú s ic a
L iv r o
f a z
e s c r e v e
S t r in g
“ T o t o n h o
V i l le r o y ”
“ C o n f e s s o ”
in s tâ n c ia d e
s u b c la s s e d e
s u b p r o p r ie d a d e d e
S
C
H
E
M
A
D
E
S
C
R
I
Ç
Ã
O 
D
O
S
R
E
C
U
R
S
O
S
S t r in gR e c u r s o E x te r n o
In t e g e r
S t r in g
t í tu lo
t ip o _ a r q u iv o
a n o _ c r ia ç ã o
g ê n e r o
r 1 :w w w . c e e m . u f j f . b r / o p o e ta .h t m
r 2 :w w w . c e e m . u f j f . b r / p o e m a s .h tm
r 3 :w w w . g e o c i t ie s .c o m /o m e lh o r d e m im /
b io g r a f . h t m
r 4 :w w w . g e o c i t ie s .c o m /o m e lh o r d e m im / 
le t r a s . h t m # 2 3
r 5 :w w w . g e o c i t ie s .c o m /o m e lh o r d e m im / 
le t r a s . h t m # 5
r 6 :w w w . te r r a v is t a . p t / e n s e a d a /4 1 0 4 /
a n a c a r o l in a / le t r a s c d 1 . h t m
S t r in g
S t r in g
A r t is t a
n o m e
s o b r e n o m e
A r te
c o m p õ e
Á lb u m
e x ib id a
C o m p o s i t o r
E s c r i t o r
M ú s ic a
L iv r o
f a z
e s c r e v e
S t r in g
n s 1 : w w w . r d f . c o m / e s q u e m a n s 2 : w w w .w s . c o m / n s
n o m e
s o b r e n o m e
& r 1
“ M e n d e s ”
g ê n e r o& r 2
e s c r e v e
& r 3
“ A n a ”
“ C a r o l in a ”
s o b r e n o m e
n o m e
& r 5
“ A r m a z é m ”
& r 6
“ A n a 
C a r o l in a ”
& r 4
c o m p õ e
c o m p õ e e x ib id a
t í tu lo
t í tu lo
t í tu lo
p a r c e r ia
“ P o e s ia s ”
a n o _ c r ia ç ã ot í t u lo
“ P o e m a s ”“ M u r i lo ”
S t r in g
p a r c e r ia
“ 1 9 3 0 ”
S t r in g
S t r in g
A r t is t a
n o m e
s o b r e n o m e
A r te
c o m p õ e
Á lb u m
e x ib id a
C o m p o s i t o r
E s c r i t o r
M ú s ic a
L iv r o
f a z
e s c r e v e
S t r in g
S t r in g
S t r in g
A r t is t a
n o m e
s o b r e n o m e
A r te
c o m p õ e
Á lb u m
e x ib id a
C o m p o s i t o r
E s c r i t o r
M ú s ic a
L iv r o
f a z
e s c r e v e
S t r in g
S t r in g
S t r in g
A r t is t a
n o m e
s o b r e n o m e
A r te
c o m p õ e
Á lb u m
e x ib id a
C o m p o s i t o r
E s c r i t o r
M ú s ic a
L iv r o
f a z
e s c r e v e
S t r in g
“ T o t o n h o
V i l le r o y ”
“ C o n f e s s o ”
in s tâ n c ia d e
s u b c la s s e d e
s u b p r o p r ie d a d e d e
S
C
H
E
M
A
D
E
S
C
R
I
Ç
Ã
O 
D
O
S
R
E
C
U
R
S
O
S
S t r in gR e c u r s o E x te r n o
In t e g e r
S t r in g
t í tu lo
t ip o _ a r q u iv o
a n o _ c r ia ç ã o
g ê n e r o
r 1 :w w w . c e e m . u f j f . b r / o p o e ta .h t m
r 2 :w w w . c e e m . u f j f . b r / p o e m a s .h tm
r 3 :w w w . g e o c i t ie s .c o m /o m e lh o r d e m im /
b io g r a f . h t m
r 4 :w w w . g e o c i t ie s .c o m /o m e lh o r d e m im / 
le t r a s . h t m # 2 3
r 5 :w w w . g e o c i t ie s .c o m /o m e lh o r d e m im / 
le t r a s . h t m # 5
r 6 :w w w . te r r a v is t a . p t / e n s e a d a /4 1 0 4 /
a n a c a r o l in a / le t r a s c d 1 . h t m
S t r in g
S t r in g
A r t is t a
n o m e
s o b r e n o m e
A r te
c o m p õ e
Á lb u m
e x ib id a
C o m p o s i t o r
E s c r i t o r
M ú s ic a
L iv r o
f a z
e s c r e v e
S t r in g
n s 1 : w w w . r d f . c o m / e s q u e m a n s 2 : w w w .w s . c o m / n s
n o m e
s o b r e n o m e
& r 1
“ M e n d e s ”
g ê n e r o& r 2
e s c r e v e
& r 3
“ A n a ”
“ C a r o l in a ”
s o b r e n o m e
n o m e
& r 5
“ A r m a z é m ”
& r 6
“ A n a 
C a r o l in a ”
& r 4
c o m p õ e
c o m p õ e e x ib id a
t í tu lo
t í tu lo
t í tu lo
p a r c e r ia
“ P o e s ia s ”
a n o _ c r ia ç ã ot í t u lo
“ P o e m a s ”“ M u r i lo ”
S t r in g
p a r c e r ia
“ 1 9 3 0 ”
“ T o t o n h o
V i l le r o y ”
“ C o n f e s s o ”
in s tâ n c ia d e
s u b c la s s e d e
s u b p r o p r ie d a d e d e
S
C
H
E
M
A
D
E
S
C
R
I
Ç
Ã
O 
D
O
S
R
E
C
U
R
S
O
S
S t r in gR e c u r s o E x te r n o
In t e g e r
S t r in g
t í tu lo
t ip o _ a r q u iv o
a n o _ c r ia ç ã o
g ê n e r o
r 1 :w w w . c e e m . u f j f . b r / o p o e ta .h t m
r 2 :w w w . c e e m . u f j f . b r / p o e m a s .h tm
r 3 :w w w . g e o c i t ie s .c o m /o m e lh o r d e m im /
b io g r a f . h t m
r 4 :w w w . g e o c i t ie s .c o m /o m e lh o r d e m im / 
le t r a s . h t m # 2 3
r 5 :w w w . g e o c i t ie s .c o m /o m e lh o r d e m im / 
le t r a s . h t m # 5r 6 :w w w . te r r a v is t a . p t / e n s e a d a /4 1 0 4 /
a n a c a r o l in a / le t r a s c d 1 . h t m
S t r in g
S t r in g
A r t is t a
n o m e
s o b r e n o m e
A r te
c o m p õ e
Á lb u m
e x ib id a
C o m p o s i t o r
E s c r i t o r
M ú s ic a
L iv r o
f a z
e s c r e v e
S t r in g
n s 1 : w w w . r d f . c o m / e s q u e m a n s 2 : w w w .w s . c o m / n s
n o m e
s o b r e n o m e
& r 1
“ M e n d e s ”
g ê n e r o& r 2
e s c r e v e
& r 3
“ A n a ”
“ C a r o l in a ”
s o b r e n o m e
n o m e
& r 5
“ A r m a z é m ”
& r 6
“ A n a 
C a r o l in a ”
& r 4
c o m p õ e
c o m p õ e e x ib id a
t í tu lo
t í tu lo
t í tu lo
p a r c e r ia
“ P o e s ia s ”
a n o _ c r ia ç ã ot í t u lo
“ P o e m a s ”“ M u r i lo ”
S t r in g
p a r c e r ia
“ 1 9 3 0 ”
in s tâ n c ia d e
s u b c la s s e d e
s u b p r o p r ie d a d e d e
in s tâ n c ia d e
s u b c la s s e d e
s u b p r o p r ie d a d e d e
S
C
H
E
M
A
D
E
S
C
R
I
Ç
Ã
O 
D
O
S
R
E
C
U
R
S
O
S
S
C
H
E
M
A
D
E
S
C
R
I
Ç
Ã
O 
D
O
S
R
E
C
U
R
S
O
S
S t r in gR e c u r s o E x te r n o
In t e g e r
S t r in g
t í tu lo
t ip o _ a r q u iv o
a n o _ c r ia ç ã o
S t r in gR e c u r s o E x te r n o
In t e g e r
S t r in g
S t r in gR e c u r s o E x te r n o
In t e g e r
S t r in g
t í tu lo
t ip o _ a r q u iv o
a n o _ c r ia ç ã o
g ê n e r o
r 1 :w w w . c e e m . u f j f . b r / o p o e ta .h t m
r 2 :w w w . c e e m . u f j f . b r / p o e m a s .h tm
r 3 :w w w . g e o c i t ie s .c o m /o m e lh o r d e m im /
b io g r a f . h t m
r 4 :w w w . g e o c i t ie s .c o m /o m e lh o r d e m im / 
le t r a s . h t m # 2 3
r 5 :w w w . g e o c i t ie s .c o m /o m e lh o r d e m im / 
le t r a s . h t m # 5
r 6 :w w w . te r r a v is t a . p t / e n s e a d a /4 1 0 4 /
a n a c a r o l in a / le t r a s c d 1 . h t m
S t r in g
S t r in g
A r t is t a
n o m e
s o b r e n o m e
A r te
c o m p õ e
Á lb u m
e x ib id a
C o m p o s i t o r
E s c r i t o r
M ú s ic a
L iv r o
f a z
e s c r e v e
S t r in g
S t r in g
S t r in g
A r t is t a
n o m e
s o b r e n o m e
A r te
c o m p õ e
Á lb u m
e x ib id a
C o m p o s i t o r
E s c r i t o r
M ú s ic a
L iv r o
f a z
e s c r e v e
S t r in g
S t r in g
S t r in g
A r t is t a
n o m e
s o b r e n o m e
A r te
c o m p õ e
Á lb u m
e x ib id a
C o m p o s i t o r
E s c r i t o r
M ú s ic a
L iv r o
f a z
e s c r e v e
S t r in g
n s 1 : w w w . r d f . c o m / e s q u e m a n s 2 : w w w .w s . c o m / n s
n o m e
s o b r e n o m e
& r 1
“ M e n d e s ”
g ê n e r o& r 2
e s c r e v e
n o m e
s o b r e n o m e
& r 1
“ M e n d e s ”
g ê n e r o& r 2
e s c r e v e
& r 3
“ A n a ”
“ C a r o l in a ”
s o b r e n o m e
n o m e
& r 5
“ A r m a z é m ”
& r 6
“ A n a 
C a r o l in a ”
& r 4
c o m p õ e
c o m p õ e e x ib id a
t í tu lo
t í tu lo
t í tu lo
p a r c e r ia
& r 3
“ A n a ”
“ C a r o l in a ”
s o b r e n o m e
n o m e
& r 5
“ A r m a z é m ”
& r 6
“ A n a 
C a r o l in a ”
& r 4
c o m p õ e
c o m p õ e e x ib id a
t í tu lo
t í tu lo
t í tu lo
p a r c e r ia
“ P o e s ia s ”
a n o _ c r ia ç ã ot í t u lo
“ P o e m a s ”“ M u r i lo ”
S t r in g
p a r c e r ia
“ 1 9 3 0 ”
<rdf:Seq> 
 <rdf:li rdf:type="property" rdf:resource="faz" /> 
 <rdf:li rdf:type="class" rdf:resource="Musica" /> 
 </rdf:Seq> 
 </rdf:li> 
<rdf:li> 
<rdf:Seq> 
 <rdf:li rdf:type="property" rdf:resource="faz" /> 
 <rdf:li rdf:type="class" rdf:resource="Livro" /> 
 </rdf:Seq> 
 </rdf:li> 
<rdf:li> 
<rdf:Seq> 
 <rdf:li rdf:type="property" rdf:resource="compoe" /> 
 <rdf:li rdf:type="class" rdf:resource="Musica" /> 
 </rdf:Seq> 
 </rdf:li> 
 </rdf:Bag> 
 </RDF> 
 
Consulta 2. Encontre as propriedades que tem como domínio a classe RecursoExterno e seu respectivo alcance. 
 select @P, range(@P) from ExtResource{:$Y}.@P{:$$X} 
<?xml version="1.0" ?> 
<RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 
 <rdf:Bag ID="bag005"> 
 <rdf:li> 
 <rdf:Seq> 
 <rdf:li rdf:type="property" rdf:resource="ano_criacao " /> 
 <rdf:li> 
 <rdf:Alt> 
 <rdf:li rdf:type="literal" rdf:resource="integer" /> 
 </rdf:Alt> 
 </rdf:li> 
 </rdf:Seq> 
 </rdf:li> 
 <rdf:li> 
 <rdf:Seq> 
 <rdf:li rdf:type="property" rdf:resource="tipo_arquivo" /> 
 <rdf:li> 
 <rdf:Alt> 
 <rdf:li rdf:type="literal" rdf:resource="string" /> 
 </rdf:Alt> 
 </rdf:li> 
 </rdf:Seq> 
 </rdf:li> 
 <rdf:li> 
 <rdf:Seq> 
 <rdf:li rdf:type="property" rdf:resource="titulo" /> 
 <rdf:li> 
 <rdf:Alt> 
 <rdf:li rdf:type="literal" rdf:resource="string" /> 
 </rdf:Alt> 
 </rdf:li> 
 </rdf:Seq> 
 </rdf:li> 
 </rdf:Bag> 
</RDF> 
 
Consulta3. Encontre todas as informações sobre www.terravista.pt/enseada/4104/anacarolina/letrascd1.htm. 
 select X, $Z, @P, Y, $$W from {X:$Z}@P{Y:$$W} where X like "[^ 
 www.terravista.pt/enseada/4104/anacarolina/letrascd1.htm]* 
 www.terravista.pt/enseada/4104/anacarolina/letrascd1.htm *" or Y like "[^ 
 www.terravista.pt/enseada/4104/anacarolina/letrascd1.htm]* 
 www.terravista.pt/enseada/4104/anacarolina/letrascd1.htm *" 
<?xml version="1.0" ?> 
<RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 
 <rdf:Bag ID="bag006"> 
 <rdf:li> 
 <rdf:Seq> 
 <rdf:li> 
 <rdf:Alt> 
 <rdf:li rdf:type="resource" 
 rdf:resource="www.terravista.pt/enseada/4104/anacarolina/letrascd1.htm" /> 
 </rdf:Alt> 
 </rdf:li> 
 <rdf:li rdf:type="class" rdf:resource="RecursoExterno" /> 
 <rdf:li rdf:type="property" rdf:resource="titulo" /> 
 <rdf:li> 
 <rdf:Alt> 
 <rdf:li rdf:type="string"> 
 Ana Carolina 
 </rdf:li> 
 </rdf:Alt> 
 </rdf:li> 
 </rdf:Seq> 
 </rdf:li> 
 <rdf:li> 
 <rdf:Seq> 
 <rdf:li> 
 <rdf:Alt> 
 <rdf:li rdf:type="resource" 
 rdf:resource="http://www.geocities.com/omelhordemim/letras.htm#5" /> 
 </rdf:Alt> 
 </rdf:li> 
 <rdf:li rdf:type="class" rdf:resource="Musica" /> 
 <rdf:li rdf:type="property" rdf:resource="exibida" /> 
 <rdf:li> 
 <rdf:Alt> 
 <rdf:li rdf:type="resource" 
 rdf:resource=" www.terravista.pt/enseada/4104/anacarolina/letrascd1.htm" /> 
 </rdf:Alt> 
 </rdf:li> 
 <rdf:li> 
 <rdf:Alt> 
 <rdf:li rdf:type="class" rdf:resource="Album" /> 
 </rdf:Alt> 
 </rdf:li> 
 </rdf:Seq> 
 </rdf:li> 
 </rdf:Bag> 
</RDF> 
7 Conclusão e considerações finais 
O objetivo deste artigo foi o de verificar as funcionalidades da RDF como suporte à Web Semântica. Isso foi feito 
seguindo um caminho por passos. O primeiro deles foi conhecer um pouco mais da Web Semântica, sua arquitetura, 
objetivos, aplicações etc., descobrindo qual o papel da RDF em todo esse contexto. Depois disso, se fez necessário 
ter uma noção da sintaxe da RDF e da RDF Schema. Para tal foi consultado o W3C que tem concentrado esforços 
em padronizar tudo o que é concernente à Web. Através do W3C buscou-se acesso à especificação da linguagem 
RDF, cujo status é o de recomendação, e também à especificação da RDF Schema, atualmente candidata a 
recomendação. 
Para adequação ao estado-da-arte, este artigo procurou conhecer um pouco mais sobre o que já foi feito no 
mundo com respeito a Web Semântica, particularmente as linguagens RDF e RDF Schema. Paratal, se encontrou na 
Web vários softwares desenvolvidos que dão suporte à linguagem RDF, dos quais alguns foram especificados na 
seção 3; diversos textos referentes ao assunto, alguns registrados como referência neste artigo; várias organizações 
oficiais exclusivamente dedicadas ou mobilizadas a promover a Web Semântica, entre outros recursos. 
Na fase seguinte, o artigo modelou um cenário para uma aplicação de forma que se pudesse entender mais 
claramente a sintaxe da RDF e RDF Schema. Para isso foi feito um modelo em forma de grafo, prototipado seu 
código RDF/XML e realizado consultas em termos da linguagem RQL para o cenário assim estabelecido. Os 
softwares utilizados, na verdade, ainda estão em fase de construção e testes (versões beta) e, por isso, possuem 
grandes limitações. Um editor testado neste artigo foi o RDFedt e um compilador foi o SiRPAC. O RDFSuite, 
ambiente de ferramentas para apoio à RDF, entretanto, foi quem auxiliou sobremaneira o entendimento da RDF 
Schema, através de sua linguagem de consulta – a RQL. 
Apesar da RDF ser uma recomendação do W3C e haver muitos esforços concentrados em sua evolução, há ainda 
muito por se fazer para que ela esteja consolidada. Soluções práticas incluem: (a) a derivação de RDF a partir de 
fontes XML; (b) a convergência de mapas de tópicos (topic maps) com RDF; (c) a emergência de “motores” e de 
banco de dados em RDF; e (d) interfaces com o usuário (gerais ou específicas) para dados RDF, implementando 
dessa forma novos websites. Estas soluções ficam aqui consideradas como sugestões para trabalhos futuros. 
 As linguagens para a Web Semântica, em geral, ainda são pouco conhecidas da comunidade afim, até porque 
tratam-se de linguagens muito novas, recentemente tornadas padrão ou ainda em vias disso. Quanto às referências 
bibliográficas, ainda existem poucos textos em português, a maioria das referências encontrada foi em língua inglesa. 
Deve-se considerar ainda que foram tratados aqui somente os níveis de dados e de esquema da arquitetura de 
linguagens da Web Semântica. Esta arquitetura prevê ainda um nível lógico, com as linguagens DAML+OIL e outras 
linguagens mais específicas como, por exemplo, a DAML-R para tratamento de regras, que irá agregar mecanismos 
de provas, promovendo assim a credibilidade da Web. Juntamente com a infra-estrutura básica promovida pela 
HTML e XML, essas linguagens compõem o contexto da nova geração Web. 
O estudo focalizado aqui deve se inserir nesse contexto maior, para sua completude. Ainda como sugestão de 
trabalhos futuros, vale considerar a Web Semântica nos diversos níveis de sua arquitetura, complementando a 
abordagem aqui tratada. Maior atenção deve ser dada, entretanto, ao nível lógico, pela sua complexidade inerente. 
Agradecimentos 
Os autores agradecem a leitura e as críticas das professoras doutoras Fernanda Cláudia Alves Campos e Regina 
Maria Maciel Braga, que muito contribuíram para a versão em que se encontra este artigo. A primeira autora 
agradece, também, o suporte financeiro recebido da Coordenação de Desenvolvimento da Pesquisa através do VIII 
Programa de Bolsas de Conclusão de Curso de Graduação da UFJF, exclusivo para a realização deste trabalho. 
Referências bibliográficas 
[Alexaki, 2001] Alexaki, S. et al. The RDFSuite: managing voluminous RDF description bases. 
In: International Workshop on The Semantic Web, 2, 2001, Hong Kong. Proceedings…, 2001 
[Berners-Lee, 1998] Berners-Lee, T. Semantic Web road map, 1998. (Nota interna, W3C). Disponível em: 
 <http://www.w3c.org/DesignIssues/Semantic.html>. Acesso em: 11 junho 2001. 
[Berners-Lee, 1999] Berners-Lee, T. Weaving the Web: the original design and ultimate destiny of the World 
Wide Web by its inventor. 1.ed. San Francisco, CA: HarperSanFrancisco, 1999. 226p. 
[Berners-Lee, 2001] Berners-Lee, T.; Hendler, J.; Lassila, O. The Semantic Web. Scientific American, New York, 
May 2001. 
[Bray, 1999] Bray, T.; Hollander, D.; Layman, A. Namespaces in XML, 14 Jan 1999. (Candidata a 
recomendação do W3C). Disponível em: < http://www.w3.org/TR/REC-xml-names/>. 
Acesso em: 07 julho 2001. 
[Bray, 2000] Bray, T. et al. (eds.). Extensible Markup Language (XML) 1.0, 2.ed., 6 Oct 2000. 
(Recomendação do W3C). Disponível em: <http://www.w3c.org/TR/REC-xml>. 
Acesso em: 15 março 2001. 
[Brickley, 2000] Brickley, D.; Guha, R..V. (eds.). Resource Description Framework (RDF) Schema 
 specification 1.0 27 março 2000, 1.ed., 2000. (Recomendação do W3C). Disponível em: 
 <http://www.w3.org/TR/2000/CR-rdf-schema-20000327>. Acesso em: 12 abril 2001. 
[Broekstra, 2000] Broekstra, J. et al. Adding formal semantics to the Web: building on top of RDF Schema. 
In: ECDL 2000 Workshop on the Semantic Web, 1, 2000, Lisboa. Electronic Proceedings... 
Disponível em <http://www.ics.forth.gr/proj/isst/SemWeb/proceedings/session2-2/paper.pdf> 
Acesso em: 18 abril 2001. 
[Connolly, 1997] Connolly, D. Overview of SGML Resources, 1997. 
Disponível em: <http://www.w3c.org/MarkUp/SGML/>. Acesso em 5 julho de 2001. 
[DAML, 2001] The DARPA Agent Markup Language Homepage. Operada pelo DARPA Technology 
Integration Center, Arlington, VA, EUA. Disponível em: <http://www.daml.org>. 
Acesso em: 01 junho 2001. 
[DCMI, 2001] Dublin Core Metadata Iniciative, 2001, Disponível em: <http://dublincore.org>. 
Acesso em: 29 junho 2001 
[Guha, 2001] Guha, R.V. rdfDB: na RDF database, 2001. Disponível em: <http://web1.guha.com/rdfbd>. 
 Acesso em: 18 junho 2001. 
[Horrocks, 2001] Horrocks, I. et al. DAML+OIL (march 2001). Disponível em: 
 <http://www.daml.org/2001/03/daml+oil-index>. Acesso em: 01 junho 2001. 
[Lassila, 1999] Lassila, O.; Swick, R. (eds.). Resource Description Framework (RDF) model and syntax 
 specification.1.0, 22 Feb 1999. (Recomendação do W3C). Disponível em: 
 <http://www.w3c.org/TR/REC-rdf-syntax>. Acesso em: 12 abril 2001. 
[Lima, 2001] Lima, T. Entrelaçamentos semânticos modelando a integração da informação na Web 
Semântica. São Carlos, 2001. 117f. Tese (Doutorado em Ciência da Computação) – Instituto 
de Ciências Matemáticas e de Computação, Universidade de São Paulo. 
[Winkler, 2001] Winkler, J. RDFedt 1.0.2001. Disponível em: < http://www.jan-winkler.de/dev/e_rdfe.htm>. 
Acesso em: 07 maio 2001. 
[W3C, 2001] World Wide Web Consortium. Hospedada pelo MIT/LCS:USA; INRIA: França; e Keio 
 University: Japão. Disponível em: <http://www.w3c.org>. Acesso em: 29 junho 2001. 
Anexo : Código RDF/XML do cenário modelado 
<?xml version="1.0" ?> 
<rdf:RDF xml:lang="en" 
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" 
xmlns=""> 
 <rdfs:Class rdf:ID="Artista" /> 
 <rdfs:Class rdf:ID="Arte" /> 
 <rdfs:Class rdf:ID="Album" /> 
 <rdfs:Class rdf:ID="Compositor"> 
 <rdfs:subClassOf rdf:resource="#Artista" /> 
 </rdfs:Class> 
 <rdfs:Class rdf:ID="Escritor"> 
 <rdfs:subClassOf rdf:resource="#Artista" /> 
 </rdfs:Class> 
 <rdfs:Class rdf:ID="Musica"> 
 <rdfs:subClassOf rdf:resource="#Arte" /> 
 </rdfs:Class> 
 <rdfs:Class rdf:ID="Livro"> 
 <rdfs:subClassOf rdf:resource="#Arte" /> 
 </rdfs:Class> 
 <rdf:Property rdf:ID="faz"> 
 <rdfs:domain rdf:resource="#Artista" /> 
 <rdfs:range rdf:resource="#Arte" /> 
 </rdf:Property> 
 <rdf:Property rdf:ID="compoe"> 
 <rdfs:domain rdf:resource="#Compositor" /> 
 <rdfs:range rdf:resource="#Musica" /> 
 <rdfs:subPropertyOf rdf:resource="#faz" /> 
 </rdf:Property> 
 <rdf:Property rdf:ID="escreve"> 
 <rdfs:domain rdf:resource="#Escritor" /> 
 <rdfs:range rdf:resource="#Livro" /> 
 <rdfs:subPropertyOfrdf:resource="#faz" /> 
 </rdf:Property> 
 <rdf:Property rdf:ID="exibida"> 
 <rdfs:domain rdf:resource="#Arte" /> 
 <rdfs:range rdf:resource="#Album" /> 
 </rdf:Property> 
 <rdf:Property rdf:ID="feita_em_parceria"> 
 <rdfs:domain rdf:resource="#Musica" /> 
 <rdfs:range rdf:resource="http://www.w3.org/rdf-datatypes.xsd#String" /> 
 </rdf:Property> 
 <rdf:Property rdf:ID="tem_genero"> 
 <rdfs:domain rdf:resource="#Livro" /> 
 <rdfs:range rdf:resource="http://www.w3.org/rdf-datatypes.xsd#String" /> 
 </rdf:Property> 
 <rdf:Property rdf:ID="nome"> 
 <rdfs:domain rdf:resource="#Artista" /> 
 <rdfs:range rdf:resource="http://www.w3.org/rdf-datatypes.xsd#String" /> 
 </rdf:Property> 
 <rdf:Property rdf:ID="sobrenome"> 
 <rdfs:domain rdf:resource="#Artista"/> 
 <rdfs:range rdf:resource="http://www.w3.org/rdf-datatypes.xsd#String" /> 
 </rdf:Property> 
 <rdfs:Class rdf:ID="RecursoExterno" /> 
 <rdf:Property rdf:ID="titulo"> 
 <rdfs:domain rdf:resource="#RecursoExterno" /> 
 <rdfs:range rdf:resource="http://www.w3.org/rdf-datatypes.xsd#String" /> 
 </rdf:Property> 
 <rdf:Property rdf:ID="tipo_arquivo"> 
 <rdfs:domain rdf:resource="#RecursoExterno" /> 
 <rdfs:range rdf:resource="http://www.w3.org/rdf-datatypes.xsd#String" /> 
 </rdf:Property> 
 <rdf:Property rdf:ID="ano_criacao"> 
 <rdfs:domain rdf:resource="#RecursoExterno" /> 
 <rdfs:range rdf:resource="http://www.w3.org/rdf-datatypes.xsd#String" /> 
 </rdf:Property> 
 <Compositor rdf:ID="biograf"> 
 <nome> Ana </nome> 
 <sobrenome> Carolina </sobrenome> 
 <compoe> 
 <Musica rdf:about="http://www.geocities.com/omelhordemim/letras.htm#5"> 
 <exibida> 
 <Album 
 rdf:about="http://www.terravista.pt/enseada/4104/anacarolina/letrascd1.htm" /> 
 </exibida> 
 </Musica> 
 </compoe> 
 <compoe> 
 <Musica rdf:about="http://www.geocities.com/omelhordemim/letras.htm#23"> 
 <parceria> Totonho Villeroy </parceria> 
 </Musica> 
 </compoe> 
 </Compositor> 
 <Escritor rdf:ID="opoeta"> 
 <escreve> 
 <Livro rdf:about="www.ceem.ufjf.br/poemas.htm"> 
 <genero> Poesias </genero> 
 </Livro> 
 </escreve> 
 </Escritor> 
<RecursoExterno rdf:about="www.terravista.pt/enseada/4104/anacarolina/letrascd1.htm"> 
 <titulo> Ana Carolina </titulo> 
</RecursoExterno> 
<RecursoExterno rdf:about="www.geocities.com/omelhordemin/letras.htm#5"> 
 <titulo> Armazém </titulo> 
</RecursoExterno> 
<RecursoExterno rdf:about="www.geocities.com/omelhordemin/letras.htm#23"> 
 <titulo> Confesso </titulo> 
 </RecursoExterno> 
 <RecursoExterno rdf:about="www.ceem.ufjf.br/poemas.htm"> 
 <titulo> Poemas </titulo> 
 <ano_criacao> 1930 </ano_criacao> 
 </RecursoExterno> 
</rdf:RDF>

Continue navegando