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.
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