Estudo da iniciativa Web Semântica da W3C, e do RDF/XML

Iniciou-se o estudo de formas de compartilhamento de dados, processáveis pelo computador, usando a web. Hoje é muito utilizado o Extensible Markup Language (linguagem de marcação extensível), também conhecido como XML. O XML, diferentemente do HTML, não tem um conjunto fixo de rótulos a serem usados, cada usuário define um conjunto como seu vocabulário em sua aplicação específica, e como tal não possui uma forma de visualização definida. Seu uso normalmente enfatiza o semântica do conteúdo, sendo utilizado como meio de transmissão de dados entre sistemas, neutro em relação a plataforma.

Exemplo de XML:


<?xml version="1.0" encoding="ISO-8859-1"?>
<catalogo>
	<nome>Catalogo de produtos</nome>
	<produtos>
		<produto>
			<nome>Arvore Rubro-Negra</nome>
			<preco>20,00</preco>
		</produto>
		<produto>
			<nome>Arvore Binaria</nome>
			<preco>5,00</preco>
		</produto>
		<produto>
			<nome>Arvore B</nome>
			<preco>25,00</preco>
		</produto>
		<produto>
			<nome>Grafo</nome>
			<preco>15,00</preco>
		</produto>
		<produto>
			<nome>Grafo Dirigido</nome>
			<preco>20,00</preco>
		</produto>
	</produtos>
</catalogo>

Por esta excessiva flexibilidade, o XML acaba sendo menos do que ideal para realizar o compartilhamento de dados. Mas no entanto estabelece uma boa infraestrutura, que é reutilizada.

A W3C definiu também o Resource Description Framework (arcabouço de descrição de recursos), também conhecido como RDF. O RDF tem como base as idéias de semantic nets (grafos semânticos), a mesma filosofia por trás das linguagens orientadas a objetos, como por exemplo a linguagem Java[9], fornecendo construções como herança, associação, composição, etc... Nele, todas as entidades físicas ou abstradas do mundo são representadas como nós em um grafo, seus atributos são atributos do nó, e os relacionamentos entre entidades são representados como as arestas deste grafo. No caso de nosso catálogo apresentado anteriormente, o grafo semântico seria algo como a figura 2.

Figura 2: Grafo semântico do catalogo de produtos.
Image semanticNet

A W3C também define uma forma de representação do RDF em formato XML, conhecido como RDF/XML. Usando a infraestrutura estabelecida do XML e definindo alguns rótulos, podemos representar o RDF em XML de forma a facilitar o compartilhamento dos grafos semânticos para qualquer aplicação. Exemplo de RDF/XML:


<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="catalog.xsl"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
	 xmlns:termos="http://www.ime.usp.br/termos/" 
	 xmlns:catalogo="http://www.ime.usp.br/catalogo/">
	<rdf:Description rdf:about="http://www.ime.usp.br/catalogo">
		<catalogo:produtos>
			<rdf:Bag>
				<rdf:li>
					<rdf:Description rdf:about="http://www.ime.usp.br/produtos/rubronegra">
						<termos:preco>20,00</termos:preco>
						<termos:nome>Arvore Rubro-Negra</termos:nome>
					</rdf:Description>
				</rdf:li>
				<rdf:li>
					<rdf:Description rdf:about="http://www.ime.usp.br/produtos/arvorebinaria">
						<termos:nome>Arvore Binaria</termos:nome>
						<termos:preco>5,00</termos:preco>
					</rdf:Description>
				</rdf:li>
				<rdf:li>
					<rdf:Description rdf:about="http://www.ime.usp.br/produtos/arvoreb">
						<termos:nome>Arvore B</termos:nome>
						<termos:preco>25,00</termos:preco>
					</rdf:Description>
				</rdf:li>
				<rdf:li>
					<rdf:Description rdf:about="http://www.ime.usp.br/produtos/grafo">
						<termos:preco>15,00</termos:preco>
						<termos:nome>Grafo</termos:nome>
					</rdf:Description>
				</rdf:li>
				<rdf:li>
					<rdf:Description rdf:about="http://www.ime.usp.br/produtos/grafodirigido">
						<termos:preco>20,00</termos:preco>
						<termos:nome>Grafo Dirigido</termos:nome>
					</rdf:Description>
				</rdf:li>
			</rdf:Bag>
		</catalogo:produtos>
		<termos:nome>Catalogo de produtos</termos:nome>
	</rdf:Description>
</rdf:RDF>

Interessante notar que todo o objeto que queremos utilizar para especificar um recurso no RDF/XML precisa ser unicamente identificado através de um Uniform Resource Identifiers (Identificadores uniformes de recursos), ou URIs [8], e sendo assim podemos representar recursos tanto dentro quanto fora da rede internet.

Fabio Braga de Oliveira 2004-12-09