Universidade Federal da Paraíba Centro de Ciências e Tecnologia Curso de Mestrado em Informática Proposta de Dissertação de Mestrado Aplicando RDF na interoperabilidade de dados de diferentes domínios (estudo de caso) Mestrando Domingos Sávio Apolônio Santos [email protected] Orientador Ulrich Schiel [email protected] Campina Grande - Paraíba - Brasil Março - 2001 Índice geral 1 - Introdução................................................................................................................................3 1.1 - A internet: solução e problemas.........................................................................................3 1.2 - O acesso a dados na Web................................................................................................3 1.3 - Necessidade de padrão para metadados na Web.................................................................4 1.4 - A atuação do W3C............................................................................................................4 1.5 - RDF.................................................................................................................................5 1.6 - A aplicabilidade do RDF....................................................................................................7 1.7 - O que precisa ser feito......................................................................................................8 2 - Objetivos.................................................................................................................................9 2.1 - O objetivo geral.................................................................................................................9 2.2 - A escolha do primeiro domínio...........................................................................................9 2.3 - A escolha do segundo domínio.........................................................................................10 2.4 - A interoperabilidade.........................................................................................................10 2.5 - Sumário dos objetivos......................................................................................................14 3 - Relevância.............................................................................................................................15 3.1 - Esquemas RDF..............................................................................................................15 3.2 – Informações para futuros trabalhos na área.......................................................................16 3.3 - A aplicação prática final...................................................................................................17 4 – Metodologia...........................................................................................................................17 5 - Cronograma...........................................................................................................................19 6 – Apêndice - Metadados na Web e o Resource Description Framework - RDF...............................20 6.1 - Introdução......................................................................................................................20 6.2 - Metadados na Web.........................................................................................................21 6.2.1 - SGML.....................................................................................................................22 6.2.2 - HTML.....................................................................................................................25 6.2.3 - Xml.........................................................................................................................29 6.2.4 – Warwick Framework e MFC....................................................................................33 6.2.5 – MDC e o OMG........................................................................................................34 6.3 - Resource Description Framework.....................................................................................35 6.3.1 – Sintaxe básica........................................................................................................40 6.3.2 – Contêineres............................................................................................................41 6.3.3 – Sentenças sobre sentenças.....................................................................................43 6.3.4 - Esquema RDF.........................................................................................................45 6.3.5 - Aplicações do RDF..................................................................................................52 6.3.6 – Considerações Finais..............................................................................................55 7 - Glossário...............................................................................................................................57 8 – Referências bibliográficas.......................................................................................................63 2 1 - Introdução 1.1 - A internet: solução e problemas A Internet surgiu em 1969 com a ARPAnet (Advanced Research Projects Agency Network) nos EUA (LEINER, 2000), mas ficou restrita aos ambientes militares, acadêmicos e científicos. Somente a partir da criação do serviço WWW - World Wide Web, em 1991 por Tim Berners-Lee no laboratório CERN - Suíça (Conseil European pour la Recherché Nucleaire), foi disparado o processo de popularização dessa tecnologia. O motivo chave para este fato foi a facilidade de utilização possibilitada pelo ambiente gráfico. Como conseqüência, embora os benefícios desta tecnologia sejam inumeráveis, sua utilização em escala universal trouxe também uma grande quantidade de problemas. Tais problemas são relacionados a diversos aspectos desta tecnologia (software de suporte, infra-estrutura de comunicação, protocolos de rede, etc.), mas focaremos nossa atenção nos aspectos relacionados especificamente com os dados disponibilizados via Web. 1.2 - O acesso a dados na Web Há um volume quase infinito de dados disponível na Internet e sua utilização racional (consulta e interoperabilidade) tem sido prejudicada em função da quase completa ausência de padrões. Esta constatação é muito bem ilustrada por uma célebre frase de Ted Nelson (quem primeiro usou a palavra “Hipertexto” - 1965), durante uma conferência em 1997: “A reação da comunidade de pesquisa em hipertexto para com a World Wide Web é como descobrir que você tem um filho já crescido e que é um delinqüente.” (BACA, 1998). Realmente a organização das informações na Web está mais relacionada com a idéia de desordem, pois a linguagem de suporte para as informações (HTML - Hypertext Markup Language) tem como objetivo quase único à formatação dos dados, exceto por um de seus elementos de marcação, a marca 3 (tag) <META>, que dá suporte a metadados, mas é muito limitado e pouco usado. São limitados porque a síntaxe HTML para os tags META possibilita somente a definição de elementos muito simples de metadados. São pouco usados porque, como não produzem resultado visual, não despertam o interesse do desenvolvedor médio. 1.3 - Necessidade de padrão para metadados na Web A utilização de um padrão para metadados, internacionalmente reconhecido e cuja implementação seja independente de plataforma e fornecedor, tem demonstrado ser a maneira mais promissora para possibilitar a interoperabilidade de dados de diferentes fontes no ambiente Web. Com a linguagem HTML (amplamente utilizada), os sistemas de busca dispõem apenas das informações sobre o título do documento, do texto inteiro ou das informações do tag META, este quando existir (GALNARES, 1999). Com estes mínimos recursos de processamento de metadados, é bem evidenciada a razão da grande quantidade de links inúteis retornados em pesquisas nos sistemas de busca. Disto, percebe-se que, caso fosse possível dispor de um rico banco de recursos para metadados, o processamento das informações na Web seria otimizado. 1.4 - A atuação do W3C O World Wide Web Consortium (W3C) vem atuando desde 1994 com a finalidade de definir diversos padrões para a Web, principalmente metadados (JACOBS, 2000). A partir das necessidades apontadas pela comunidade que utiliza a Web, o W3C foi criando estes padrões e aprimorando os já existentes, como ocorreu com a linguagem HTML cuja versão atual é a 4.01 e já produziu uma variante: a XHTML (eXtensible HTML). Uma dessas necessidades foi a quebra das limitações dos tags predefinidos da linguagem HTML que levou a criação da linguagem XML, padronizada pelo W3C em 1998. Com a XML, passou-se da preocupação com a 4 formatação (HTML) para a descrição de conteúdo. Com ela, novos tags podem ser definidos de acordo com a necessidade do usuário, os dados podem ser estruturados e aninhados a profundidades arbitrárias, além de possibilitar uma descrição opcional de sua gramática (ABITEBOUL, 2000, pág. 27). Toda a liberdade de estruturação dos dados foi dada ao usuário, mas isto não favoreceu completamente à padronização de metadados. Era necessário um acordo entre os envolvidos quanto à nomenclatura e significado dos tags empregados a fim de que os mesmos fossem reconhecidos em ambientes heterogêneos, ou seja, era preciso estabelecer um formato padrão comum para a troca de mensagens entre aplicações (BRITTON, 2001: 247). Esta necessidade foi suprida parcialmente com a especificação dos esquemas XML (W3C, 2001), mas, de uma maneira geral, a linguagem do esquema XML não é o suficientemente genérica para representar modelo de dados muito complexos, conforme é citado no “The Cambridge Communiqué” (W3C, 1999). 1.5 - RDF Resource Description Framework (RDF) foi uma iniciativa do W3C para, a partir da linguagem XML, estabelecer uma infra-estrutura que possibilite a codificação, intercâmbio e reuso de estruturas de metadados (MILLER, 1998). Foi padronizado em 1999 e inicialmente definiu um modelo simples para descrever interrelacionamentos entre recursos em termos de suas propriedades e valores. Posteriormente, a especificação foi complementada com outra, atualmente ainda como recomendação candidata (Schema Specificação 1.0 - RDFS), que estabelece mecanismos para declarar as propriedades dos recursos e definir os relacionamentos entre tais propriedades e outros recursos (BRICKLEY, 2000). Através de um framework especialmente projetado para o processamento de metadados, o RDF representa a materialização de um modelo universal para interoperabilidade entre dados e seu processamento automatizado dentro do ambiente Web. Dentre as áreas de aplicação, que já estão beneficiando-se desta 5 tecnologia, podemos destacar: descobrimento de recursos - para melhorar a eficiência e eficácia dos sistemas de busca; a catalogação - para descrição de conteúdo e seus relacionamentos em um site ou biblioteca digital; agentes inteligentes de software - para facilitar o compartilhamento e troca de conhecimento; a descrição dos direitos de propriedade intelectual dos recursos disponibilizados na Web, etc. A especificação do W3C define um modelo abstrato, representado por um grafo direcionado e com arestas rotuladas, que representa os relacionamentos entre as entidades (recursos) (STAAB, 2001). Os nós são os recursos e as arestas as propriedades (KLYNE, 2000). Os recursos possuem propriedades e tais propriedades podem ser outros recursos ou um literal (FORSBERG, 2000). Esquemas RDF, ou vocabulários, são usados para definir a identificação dos nós (chamados classes) e das arestas (chamadas property types) que podem ser usadas para descrever e consultar recursos em uma específica comunidade de usuários. Estas identificações podem ser organizadas em taxonomias apropriadas, embutindo inclusive semântica (ALEXAKI, 2000). RDF é uma das âncoras para a montagem da chamada WEB Semântica (Semantic Web), um dos objetivos do W3C que idealiza o desenvolvimento de um ambiente de software que permita cada usuário fazer o melhor uso dos recursos disponíveis na Web. É importante registrar que, antes da existência do RDF, já havia diversas iniciativas de padronização de metadados, mas todas relacionadas a áreas especificas, como por exemplo, o MARC (Machine-Readable Cataloging Format) e o DC (Dublin Core), na área de catalogação eletrônica, e que hoje utilizam RDF na sua descrição de metadados (Medeiros, 1999). Portanto, RDF é uma tentativa de estabelecimento de um padrão universal para definição de metadados e que, pelo pouco tempo de padronização, tem sido implementado em um número já significativo de aplicações e serviços na Internet (ver apêndice A). Desta forma, evidencia-se sua aceitação na comunidade Web. 6 1.6 - A aplicabilidade do RDF Para tornar possível a aplicabilidade do RDF, é necessário definir esquemas, baseados na especificação deste framework, para os diversos domínios das aplicações na Web. Estas aplicações podem ser divididas em dois tipos distintos. No primeiro, estão as aplicações relacionadas com a infra-estrutura de dados (PICS, DCD, RSS, CC/PP, P3P, OIL, etc.), ou seja, aquelas em que se utilizam padrões de metadados para otimizar a estrutura da Web não visível ao usuário. No segundo tipo estão as relacionadas diretamente com os elementos de dados manipulados ou visíveis para o usuário, representadas pelo padrão Dublin Core (DC) e os diversos padrões para o intercâmbio de dados nas diversas áreas de conhecimento como bibliotecas digitais, comércio eletrônico, recursos humanos, notícias, material educacional, etc. Os padrões do primeiro tipo são coordenados principalmente pelo W3C. Os do segundo tipo são estabelecidos principalmente por organizações de normalização baseando-se na necessidade de intercâmbio de dados em sua comunidade de usuários. A definição de padrões baseado no RDF (esquemas) para aplicações do segundo tipo citado acima ainda não é uma prática amplamente adotada devido à recente padronização deste framework, exceto quanto ao DUBLIN CORE, que provavelmente foi uma dos primeros padões para metadados descritos através do RDF. A especificação do modelo e sintaxe RDF ocorreu em fevereiro de 1999 e a especificação do esquema ainda está na fase de recomendação candidata desde março de 2000. Portanto, a comunidade usuária da Web ainda está na fase de reconhecimento dos conceitos, aplicações e seus respectivos desdobramentos referente a este framework, embora já existam bons exemplos de utilização como o “INDECS Metadata Model” (Interoperability of Data in E-Commerce Systems) para o comércio eletrônico (RUST, 2000). Há um número considerável de padrões definidos através de DTDs (Document Type Definition) ou esquemas XML, muito bem catalogados pela OASIS (Organization for the Advancement of Structured Information Standards) em <http://www.xml.org/xmlorg_registry/index.shtml>, que tendem a descreverem seus esquemas através do RDF a fim de beneficiarem-se de seus recursos. De um modo geral, a aplicabilidade do RDF ainda está no estágio 7 inicial e, por este motivo, não dispõe de um histórico de práticas bem documentado que sirva de base para direcionar os desenvolvedores que pretendem adotar este padrão. 1.7 - O que precisa ser feito Como foi visto, uma estrada para a Web estruturada foi aberta com a especificação do Resource Description Framework e há um longo caminho a ser percorrido a fim de que sua aplicação seja generalizada. Além de ser necessário montar um conjunto de ferramentas (editores, “parsers”, spiders, ferramentas para validação, consulta, etc.) de suporte a esta tecnologia (já há algumas disponíveis como RDFdb, RDF Modeller, Reggie Metadata Editor, 4Suite Server, Jena, etc.) e de implementar seus conceitos nas aplicações clientes da Web, também é preciso desenvolver ações de publicidade em toda a comunidade de desenvolvedores e usuários a fim de que os conceitos e benefícios do RDF sejam conhecidos por todos. Somente desta maneira pode-se tornar possível a ampla aplicação do Resource Description Framework. 8 2 - Objetivos 2.1 - O objetivo geral A partir do cenário apresentado na introdução deste trabalho, evidencia-se a necessidade de dar aplicabilidade ao Resource Description Framework em todos as áreas de atuação da Web. A razão disto é que sua especificação é bem mais rica (na representação de modelos de dados e esquemas) do que XML/DTD ou XML/XML Schema, por exemplo. Neste sentido, o presente trabalho apresenta uma proposta de aplicação para o RDF visando à interoperabilidade de dados entre dois domínios. A seguir, serão detalhados aspectos mais específicos do trabalho a ser realizado. 2.2 - A escolha do primeiro domínio Como é natural, o resultado deste trabalho também pretende servir de referência para futuros trabalhos na área. Então, seria preciso que, pelo menos para uma das aplicações, fosse escolhido um domínio que ainda não houvesse padronização de esquema, nem através de DTDs (Document Type Definition) ou esquema XML, nem no próprio RDF. Deste modo, o processo realmente seria iniciado sem nenhuma etapa já obtida. Também seria conveniente que o domínio da aplicação ainda fosse objeto de informatização, pois desta forma o processo começaria desde o projeto do banco de dados que daria suporte à aplicação Web. Considerando os aspectos acima citados, além da necessidade de interoperabilidade de dados dentro do próprio domínio e fora dele, foi escolhido o negócio de cartórios de registro de imóveis como um domínio que atendeu às características já descritas. Como forma de prover o processo de desenvolvimento com aspectos que possam enriquecer a experiência na realização do estudo de caso, optou-se por montar a base de dados deste domínio através de um SGBD (Sistema Gerenciador de Banco de Dados) objeto-relacional. Deste modo, poderá ser feita 9 uma comparação com o resultado a ser obtido com o segundo domínio que, por já possuir uma base de dados informatizada, deverá ser fundamentado em um SGBD relacional. 2.3 - A escolha do segundo domínio A escolha do outro domínio também deveria ser pautada conforme já explicado acima. Desta forma, como já foi escolhido um domínio sem padronização e em fase de informatização, o outro domínio deveria ter as características opostas, de modo que, pelo menos já possua uma base de dados que dê suporte à futura aplicação Web. Dentro destes critérios, foi escolhido o negócio dos anúncios classificados que já possui uma padronização de metadados, através de DTD/XML, estabelecida pela NAA (Newspaper Association of América) através do NAA Classified Advertising Standards Task Force (<http://www.naa.org/technology/clsstdtf/>). Desta maneira, o DTD da NAA servirá de base para a montagem do esquema RDF para o domínio dos anúncios classificados, mas será adaptado à realidade brasileira. Como já foi explicado acima, este domínio terá sua base de dados em um SGBD relacional. 2.4 - A interoperabilidade No ambiente dos domínios escolhidos há diversas situações em que há necessidade de intercâmbio de dados. Para ilustrar comparativamente tal necessidade, descreveremos várias situações assim caracterizadas: a)sem aplicação Web; b)com a aplicação Web, mas sem o intercâmbio de dados; c)com aplicação Web, mas com intercâmbio de dados dentro do próprio domínio; d)com aplicação Web e com intercâmbio com o outro domínio; 10 O caso (a) pode ser ilustrado da maneira descrita a seguir: O comprador de imóvel consulta um jornal de anúncios classificados impresso em papel e faz uma busca visual no imóvel de seu interesse. Ao encontrar algo que atenda suas expectativas, entra em contato com o proprietário e combina com ele o fechamento do negócio. Ao tentar formalizar a compra, no levantamento da documentação verifica que o imóvel pertence a herdeiros e, por este motivo, desiste da compra e volta a iniciar a procura conforme descrito acima. Caso seja possível efetuar a compra, comparece ao cartório para formalizar a escritura e providenciar o registro, operações que provocam pelo menos duas visitas ao cartório. O caso (b) pode ser ilustrado da seguinte maneira: O comprador consulta um site de anúncios classificados; seleciona o assunto “imóveis” e as características que o mesmo deve possuir (apartamento/casa/terreno, venda/aluguel, etc.) e o sistema lista os itens de seu interesse. Caso não haja itens do seu interesse, o comprador procura outro site de anúncios classificados para fazer uma busca semelhante. Encontrado o item de seu interesse, o comprador acessa o site de todos os cartórios de registro de imóveis da cidade para checar todas as informações relevantes sobre o imóvel a fim de concretizar ou não a compra. Caso não concretize a compra em função das informações obtidas, volta a iniciar o processo de busca. Caso concretize a compra, acessa o site do cartório para solicitar uma prévia preparação da escritura de compra e venda e fornece todos os dados necessários do comprador e vendedor. Ao chegar ao cartório toda a documentação já está pronta. 11 O caso (c) pode ser ilustrado da seguinte forma: O comprador consulta um site de metabusca em anúncios classificados; em seguida o assunto “imóveis” e as características que o mesmo deve possuir (apartamento/casa/terreno, venda/aluguel, etc.) e o sistema lista os itens de seu interesse. Encontrado os itens de seu interesse, o comprador acessa um site de metabusca em dados de cartórios para localizar em que cartórios os imóveis de seu interesse estão registrados para checar todas as informações relevantes sobre o imóvel a fim de concretizar ou não a compra. Escolhido o imóvel sem problemas (após o contato com o vendedor), o comprador concretiza a compra acessa o site do cartório para solicitar uma prévia preparação da escritura de compra e venda e fornece todos os dados necessários do comprador e vendedor. Ao chegar ao cartório toda a documentação já está pronta. Concluindo, o caso (d) pode ser ilustrado conforme abaixo: O comprador consulta um site de metabusca; escolhe o item “anúncios classificados”; em seguida o assunto “imóveis” e as características que o mesmo deve possuir (apartamento/casa/terreno, venda/aluguel, etc.) e o sistema lista os itens de seu interesse fazendo a consulta em diversos sites de classificados. Ao fazer esta lista, o sistema também já faz uma busca nos sites de cartórios e fornece, junto com as informações do anúncio, as informações mais relevantes do registro do imóvel no cartório. Desta forma, o comprador já verifica as duas informações de uma só vez. Caso o comprador deseje mais informações, há um link para o registro completo do imóvel. Escolhido o imóvel sem problemas e acertada a compra com o vendedor, o comprador concretiza a compra acessando o site do cartório para solicitar uma prévia preparação da escritura de compra e venda e fornece todos os dados necessários do comprador e vendedor. Ao chegar ao cartório toda a documentação já está pronta. 12 A principal vantagem da aplicação do RDF nos casos (c) e (d) acima está no fato de que, para o fornecedor das informações (cartórios e empresas de publicidade), a inclusão de seus itens na metabusca é automática. Não há qualquer dependência de prévio acordo entre o provedor do serviço de metabusca e seus fornecedores de dados quanto à forma como eles serão disponibilizados. Apenas é necessário que todos sigam o padrão RDF. A figura 01 ilustra a interoperabilidade dos domínios. WEB Recursos descritos através do RDF Metabusca Instância de A + Instância de B Bases de dados Relacionais Domínio “Anúncios Classificados” A B Domínio “Serviços de Cartórios” N dados n 2 1 dados 2 dados 1 Bases de dados Objeto Relacionais N dados n dados 2 dados 1 2 1 Figura 01 – A interoperabilidade dos domínios 13 2.5 - Sumário dos objetivos De acordo com o apresentado acima, os objetivos desta proposta são os seguintes: ? criar esquemas, baseados no Resource Description Framework da seguinte maneira: ? para o domínio “Serviços de Cartórios”, a partir de nenhum esquema pré-existente; ? para o domínio “Anúncios de Classificados”, a partir do DTD proposto pela NAA; ? criar e implementar uma base de dados armazenada em um SGBD objeto relacional que servirá de base para os dados referente ao domínio dos “serviços de cartórios”, restringindo-o para o caso dos cartórios de registro de imóveis; ? montar a base de dados do domínio “Anúncios de Classificados” em um SGBD relacional; ? demonstrar a aplicabilidade dos desenvolvimento de protótipos de esquemas criados através do aplicações que viabilizam a interoperabilidade de dados nos dois domínios citados em ambiente Web. 14 3 - Relevância Com a realização do trabalho apresentado nesta proposta, deseja-se que os resultados possam contribuir de forma significativa para a área de conhecimento correlata. Nesta perspectiva, as aplicações do resultado a ser alcançado são apresentadas a seguir. 3.1 - Esquemas RDF Os esquemas, que serão criados no padrão especificado pelo RDF no decorrer do desenvolvimento do trabalho proposto, podem servir de base para a definição de padrões no intercâmbio eletrônico de dados dentro de cada área envolvida. Não somente através de organizações que promovem a definição de padrões, como também por grupos específicos dos respectivos domínios para atender necessidades particulares de interoperabilidade. Para a área de anúncios classificados ainda não há um padrão definido de acordo com a especificação do RDF (somente com o DTD da NAA, como já foi citado neste trabalho). O esquema RDF a ser produzido para o domínio dos anúncios classificados pode ser uma proposta a ser submetida a NAA, como forma de ajustar seus padrões ao Resource Description Framework e, desta forma, beneficiar seu padrão com o suporte para gerenciamento de metadados na Web proporcionado pelo RDF. Do mesmo modo, o mesmo esquema pode ser proposto para as organizações nacionais ligadas à imprensa (Associação Nacional de Jornais - ANJ, Associação de Mídia Interativa - AMI, etc.) com o propósito de adoção de um padrão nacional para o domínio. O esquema também poderia ser proposto para os portais de classificados on-line, muito comum na Web, que teriam disponível um mecanismo genérico e independente de plataforma para agilizar o intercâmbio de dados entre seus parceiros. 15 Para a área de serviços de cartórios, como não há nenhuma padronização para intercâmbio eletrônico de dados neste domínio, o esquema a ser obtido poderia ser proposto ao Colégio Notarial do Brasil a fim de que tal padronização fosse adotada. Como neste domínio a informatização ainda está em fase inicial, trata-se de um momento oportuno para adoção de padrões. O mesmo esquema também poderia ser proposto para diversos portais, que estão começando a disponibilizar serviços de grupos de cartórios na Web, como forma de padronização de suas estruturas de intercâmbio eletrônico de dados entre os cartórios afiliados. 3.2 – Informações para futuros trabalhos na área Pretende-se documentar bem a exepriência a ser obtida com o trabalho aqui proposto, a fim de que seja de muita utilidade para os futuros trabalhos correlatos. A razão disto está no fato de que a aplicabilidade do RDF ser uma prática muito recente e não dispor de muitas experiências documentadas. Outro fato que reforça esta observação é o elevado interesse da comunidade Web pela utilização do RDF, como pode ser comprovado pelo crescimento de páginas que tratam do assunto no último ano (Altavista - em dez/99: 21.681 páginas, em dez/2000: 78.544 páginas). Portanto, cada vez mais a comunidade Web precisa de informações sobre o assunto e, além disto, a documentação sobre experiências práticas com a implementação de soluções é material muito valioso tanto no ambiente acadêmico como no profissional. Como exemplo, em qualquer implementação de soluções baseadas no RDF, ou genericamente relacionada com a interoperabilidade de dados no ambiente Web, várias questões são importantes, como: ? metodologia para geração de esquemas; ? base de dados de suporte à solução; ? ferramentas de suporte à interoperabilidade; ? melhores práticas para a adoção de soluções de interoperabilidade. 16 Estas são alguns tópicos que o trabalho aqui proposto abordará e certamente são relevantes para qualquer projeto correlato e para os pesquisadores da área. 3.3 - A aplicação prática final Por fim, o produto final de trabalho, mesmo sendo um protótipo de aplicação que materializa a interoperabilidade de dados nos domínios aqui tratados, poderá ser utilizado por implementadores de aplicações Web para transformá-lo em produto final. Os protótipos previstos deverão ser relevantes tanto para os projetos de sites de classificados on-line, como os que disponibilizam serviços notariais na Web. Estes últimos, provavelmente teriam mais interesse na solução apresentada neste trabalho, pois os serviços notariais on-line estão na fase inicial de implantação no mercado. Tais protótipos seriam mais úteis para portais que centralizam serviços de diversos sites, pois deste modo teriam todo um ambiente otimizado para a interoperabilidade dos dados e teriam as vantagens inerentes à especificação RDF. 4 – Metodologia Para atingir os objetivos já traçados no decorrer deste documento, foi planejada a seguinte metodologia, baseada no Rational Unifield Process (RUP), composta pelas diversas fases/etapas a seguir descritas (tabela 01). 17 Domínio Iteração Fase serviços de cartórios classificados-on-line Descrição/observação Aplicações Web Isoladas Concepção Basear-se nos serviços de cartórios on-line já existentes e na legislação brasileira. Elaboração Arquitetura em três camadas com interface Web e geração de páginas dinâmicas. Construção Utilizar ferramentas JAVA e banco de dados relacional (SQL Server) Transição A distribuição da aplicação ficará restrita ao desktop de desenvolvimento. Concepção Utilizar a legislação brasileira sobre o domínio e o levantamento de dados da análise da fase anterior. Interoperabilidade Elaboração no mesmo domínio Construção Transição Iteração Basear-se nos serviços de classificados on-line já existentes e no DTD da NAA. Utilizar ferramentas JAVA e banco de dados objeto-relacional (Oracle 8i) Utilizar DTD da NAA. Arquitetura em três camadas com interface Web, geração de páginas dinâmicas e interoperabilidade baseada no RDF. Utilizar linguagem JAVA e especificação RDF do W3C Utilizar linguagem JAVA, especificação RDF do W3C, e DTD da NAA. A distribuição das aplicações vinculadas ao servidor WEB e servidor de Banco de Dados será feita em servidor público para viabilizar os testes em situações reais. Fase Descrição/observação Concepção Utilizar esquemas RDF definidos na fase anterior. Elaboração Arquitetura em três camadas com interface Web, geração de páginas dinâmicas e interoperabilidade baseada no RDF. Interoperabilidade entre os domínios Construção Transição Utilizar linguagem JAVA A distribuição das aplicações vinculadas ao servidor WEB e servidor de Banco de Dados será feita em servidor público para viabilizar os testes em situações reais. Etapa Descrição/observação Consolidação das documentações Consolidar todas as documentações produzidas a fim de que sirvam de base para a dissertação. Elaboração do texto final da dissertação Produzir o documento final da dissertação e elaborar a apresentação. Defesa da dissertação Apresentar a defesa da dissertação Tabela 01 – Metodologia para o desenvolvimento do Trabalho 18 5 - Cronograma Para atender as fases citadas na metodologia do trabalho que será realizado, foi elaborado o seguinte cronograma (tabela e figura 02): Iteração/Etapa Data de início Data de fim 120 1/5/2001 15/10/2001 Interoperabilidade entre os domínios 60 30 16/10/2001 8/1/2002 7/1/2002 18/2/2002 Consolidação das documentações 15 19/2/2002 11/3/2002 Elaboração do texto final da dissertação 30 12/3/2002 22/4/2002 Defesa da dissertação Tabela 02 – Cronogramas das Fases 1 23/4/2002 23/4/2002 Aplicações Web Isoladas Interoperabilidade no mesmo domínio Quant. Dias Figura 02 – Cronogramas das Fases 19 6 – Apêndice - Metadados na Web e o Resource Description Framework - RDF 6.1 - Introdução Ao ser idealizada, a World Wide Web - WWW - foi inicialmente projetada visando exclusivamente à interação homem-dados (LASSILA, 1999). Com sua ampla utilização e o aumento em grande escala do conteúdo disponível, sentiu-se a necessidade da informação ser processada pela máquina, a fim de que a interação homem-dados fosse facilitada e otimizada. Para solucionar este problema, diversas soluções foram sendo propostas com o tempo e cada uma atendia a uma necessidade específica. Baseando-se nos resultados obtidos e na experiência com o armazenamento e consulta de dados convencionais, constatou-se que a utilização de metadados (dados acerca de um conjunto de dados) era uma das melhores alternativas para possibilitar o processamento inteligente do conteúdo disponibilizado na WEB. Resource Description Framework (RDF) é uma destas soluções baseadas em metadados, cuja padronização foi promovida pelo World Wide Web Consortium W3C. A utilização de metadados, para padronizar informação compartilhada, é anterior à WWW (World Wide Web). Tal padronização foi inicialmente utilizada por bibliotecas que necessitavam compartilhar seus catálogos e, desta necessidade, surgiram alguns padrões de catalogação que ainda hoje são usados. A mesma necessidade de compartilhamento de dados para catalogação de informações foi o ponto de partida para a adoção de mecanismos de processamento de metadados na WEB. Inicialmente as soluções foram baseadas na linguagem HTML, mas, devido as suas limitações, outras alternativas surgiram, principalmente a partir da padronização da linguagem XML. 20 Resource Description Framework - RDF - é uma aplicação da linguagem XML que propõe ser uma base para o processamento de metadados na Web. Sua padronização estabelece um modelo e sintaxe para representar, codificar e transmitir metadados, com o objetivo de maximizar a interoperabilidade de dados de fontes heterogêneas na WEB (LASSILA, 1999). Outro objetivo desejável é tornar possível a especificação de semântica para base de dados em XML. Além da especificação do modelo e sintaxe, também foi especificado o esquema RDF. Tal esquema possibilita a declaração de propriedades do modelo, além de mecanismos para definir as relações entre tais propriedades e outros recursos (BRICKLEY, 2000). De modo genérico, um esquema RDF fornece informações para que sejam interpretadas as sentenças de um modelo RDF. Com a padronização, várias aplicações já estão utilizando-o na interoperabilidade de dados e metadados. Isto evidencia sua característica de ser uma tecnologia com um enorme campo de aplicação como será visto mais adiante. O W3C considera-o um dos elementos chaves para a construção da “WEB confiável”. Neste trabalho, a apresentação do Resource Description Framework será iniciada com uma visão, um pouco histórica, do processo de gerenciamento de metadados na WEB. Em seguida serão apresentados os conceitos e elementos do modelo e da sintaxe RDF. Logo após, serão focados os elementos da especificação de um esquema RDF e o trabalho será finalizado com uma visão geral das aplicações que utilizam o RDF no presente cenário da WEB. 6.2 - Metadados na Web Como já foi citado na introdução deste trabalho, a utilização de metadados na padronização de informações compartilhadas teve início muito antes da existência da Web. Desde a década de sessenta que grandes bibliotecas compartilham a descrição de seus catálogos através de sistemas automatizados com a utilização de 21 metadados (BACA, 1998, p. 1). O padrão MARC (Machine-Readable Cataloging Format), em conjunto com a lista de cabeçalhos de assuntos LCSH (Library of Congress Subject Headings) foi uma iniciativa baseada em metadados que surgiu nessa época. Com a ampla informatização de serviços e conteúdo, a utilização de metadados foi ganhando cada vez mais importância devido à necessidade de facilitar e aprimorar a recuperação da informação (CATHRO, 1997). A Internet e seu imenso conteúdo evidenciaram ainda mais a necessidade de adoção de padrões para metadados a fim de que a informação disponível na WEB fosse realmente útil, de acesso rápido e interoperável. Neste processo de evolução dos sistemas de informação, diversas iniciativas e acontecimentos relevantes ocorreram a fim de que fosse montada uma arquitetura para tornar a WEB o espaço universal da informação (BERNERS-LEE, 1999). A seguir, detalharemos tais iniciativas e acontecimentos que contribuíram para a padronização de metadados na Web. 6.2.1 - SGML Em 1967, William Tunnicliffe, presidente da Graphic Communications Association (GCA) Composition Committee, durante um encontro no Canadian Government Printing Office, defendeu a idéia de separar a informação, referente a conteúdo, do formato dos documentos (WATSON, 1996). Ele foi o precursor do que mais tarde seria a SGML (Standard General Markup Language), uma metalinguagem para especificação de linguagens de marcações. Uma marcação em um documento é tudo que não lhe acrescenta conteúdo. No início, as marcações referiam-se às anotações feitas a mão pelos autores e desenhistas e que seriam adicionadas ao texto escrito. Tais anotações eram instruções repassadas ao digitador sobre a diagramação do texto. Porém, para que essa idéia de marcação em documentos fosse transformada em um padrão genérico, um longo caminho foi percorrido, como veremos a seguir. 22 Ainda na década de sessenta, Stanley Rice, um diagramador de livros de New York, publicou um primeiro conjunto de marcações para estruturação de elementos de publicações. O Graphic Communications Association (GCA) aproveitou a idéia e instituiu o GCA GenCode Committee. O GenCode definiu um método genérico de marcação baseado na hierarquia de documentos que possibilitou à IBM a criação da GML - Generalized Markup Language (WATSON, 1996), também inspirada no método nas idéias de Rice and Tunnicliffe. Na década de setenta, Charles F. Goldfarb propôs uma linguagem de marcação genérica baseada no princípio de que a marcação deveria descrever a estrutura de um documento ao invés de descrever suas características físicas, além de ser rígida o bastante para não permitir ambigüidades. Em 1978, um grupo de trabalho da ANSI foi formado para dar início à padronização de uma linguagem genérica de marcação, baseando-se as experiências anteriores e principalmente na GML. Neste trabalho, vários conceitos de metadados foram inseridos na linguagem proposta como: ? marcações referente ao conteúdo que poderiam ser identificadas por mecanismos de pesquisa de banco de dados (<title>, por exemplo); ? estabelecimento de ordem na qual os objetos apareceriam em um documento (To antes de FROM em uma mensagem, por exemplo); ?a funcionalidade de inclusão de arquivos de cabeçalhos, estes definidos à parte, (idéia aproveitada das linguagens de programação). No início da década de oitenta foi publicada a primeira versão da SGML pela ANSI e em 1983 o padrão foi adotado pelo “Internal Revenue Service” e pelo Departamento de Defesa dos USA, quando também foi publicada a sexta versão. Em 1984 a ISO juntou-se ao grupo de trabalho e já em 1986 a SGML foi aprovada como o padrão internacional ISO 8879. No conceito da SGML, um documento possui três camadas: estrutura, conteúdo e estilo (ABORTEX, 1992). A estrutura de um documento SGML é definida por um conjunto de informações chamada de Document Type Definition - DTD. Estas informações podem ser agregadas ao documento ou separadas dele (em um arquivo 23 à parte, por exemplo). O DTD descreve toda a estrutura do documento, as relações e regras entre seus elementos. Por exemplo, descreve os capítulos, títulos dos capítulos, seções e tópicos; uma regra em que um título de capítulo deve ser o primeiro elemento ao ser iniciado um novo capítulo, etc. O conteúdo é a informação presente no documento e está sempre envolvido por marcações que determinam o início e fim de uma determinada parte da estrutura (<section><subhead>Informação do Texto</subhead> ... </section>). Quanto ao estilo, foi tratado por uma norma específica (ISO/IEC 10179:1996) denominada DSSSL (Document Style Semantics and Specification Language). Cada linguagem de marcação definida através da SGML é chamada de aplicação SGML e geralmente é caracterizada por: ? Uma declaração SGML que especifica quais caracteres e delimitadores podem aparecer na aplicação; ? Um Document type definition (DTD) que define a sintaxe de construção das marcações. O DTD pode incluir definições adicionais tais como entidades de caracteres de referência (definição de caracteres especiais como letras acentuadas). ? Uma especificação que descreva a semântica a ser atribuída à marcação. Esta especificação impõe também as limitações da sintaxe que não podem ser expressas no DTD. ? Instâncias de um documento que contêm os dados (conteúdo) e as marcações. Cada instância contém uma referência ao DTD a ser usado para interpretá-la (W3C, 1999). A principal contribuição da SGML, além do fato de ser uma metalinguagem de marcação, foi a concepção de metadados representada pelo DTD. Através dele, um único ou um conjunto de documentos podem ser definidos e/ou estruturados. Este conceito foi muito bem utilizado na definição da linguagem XML, como ainda será visto neste trabalho. 24 6.2.2 - HTML A linguagem HTML surgiu com a WWW e a necessidade de um browser para navegação nos seus recursos. Em 1990, Tim Berners-Lee desenvolveu o primeiro Web Browser que, na primeira versão, possibilitava apenas a visualização de texto. Sentindo a necessidade de uma linguagem para a formatação de conteúdo que pudesse ser lida pelos browsers, Berners-Lee desenvolveu a HTML que consistia de um pequeno subconjunto de elementos predefinidos baseado na linguagem SGML. Toda a codificação e especificação foi disponibilizada na Internet em 1991 e aproveitada por Marc Andreesen e Eric Bina no desenvolvimento do primeiro browser para ambiente gráfico, o Mosaic. A partir daí, seu uso foi intensificando-se na comunidade Web em função de sua simplicidade. Tornou-se um padrão oficial em 1995 através do W3C (HTML 2.0) mas foi constantemente aprimorada com diversas extensões e atualmente encontra-se na versão 4.01 com inúmeras implementações que não estavam presentes em sua versão inicial (W3C, 2001). O propósito inicial da linguagem HTML era a publicação de hypertexto na Web, mas, com sua ampla aplicação, foram evidenciadas necessidades que desencadearam muitos aprimoramentos como: suporte a formulários para entrada de dados; inclusão de vídeo, planilhas, sons e diversos elementos de outras aplicações no documento; suporte a execução de aplicativos Java e integração com a linguagem XML (XHTML). Sem dúvida, quase a totalidade dos documentos publicados na Web são descritos nesta linguagem, popularizada principalmente após o desenvolvimento de ferramentas que atutomatizaram a construção de documentos HTML, sem a necessidade do conhecimento da linguagem por parte do autor. 25 Um documento HTML é composto de três partes: uma linha contendo a versão da linguagem; uma seção de declaração de cabeçalho delimitada pelo elemento HEAD e o corpo do documento que contém o conteúdo a ser publicado, delimitado pelo elemento BODY. Do ponto de vista da estruturação do documento para recuperação e identificação de suas informações pelos sistemas de busca, a linguagem dispõe de dois elementos de descrição de metadados que fazem parte da seção de declaração do cabeçalho: TITLE, para descrição do título do documento (<title>A História da Humanidade</title>), e META, para descrição de metadados do documento definidos por seu autor (<META name="Autor" content="João Medeiros">). A informação do título é importante, pois resume o conteúdo do documento e nele normalmente estão suas palavras-chaves. As informações de metadados também são importantes, pois podem conter todos os dados, referente ao documento, que são descritos pelo autor, como: assunto, nome do autor, tipo de documento, língua, data de publicação, direitos de autoria, etc. Além disto, o próprio texto do corpo do documento pode ser analisado pelos sistemas de busca com a finalidade de identificar a palavra-chave solicitada por um usuário (<body> Existe diversas teorias acerca da orígem do homem na ....</body>). O elemento META, por descrever metadados, merece uma atenção especial e sua definição em um documento HTML normalmente envolve dois passos. O primeiro é a declaração das propriedades e seus respectivos valores. Esta declaração pode ser feita no próprio documento, dentro do elemento META (<META name="DC.identifier" content="http://www.ietf.org/rfc/rfc1866.txt">) ou fora dele, através do elemento LINK referenciando a declaração feita em outro documento (<LINK rel="DC.identifier" type="text/plain" href="http://www.iet.org/rfc/rfc1866.txt">). O segundo passo é indicação de uma referência da descrição efetuada a um perfil de metadados (atributo "profile" no elemento HEAD) onde as propriedades e seus valores legais são definidos (<HEAD profile="http://www.acme.com/profiles/core">). 26 Os seguintes atributos têm a interpretação dependente do perfil de metadados indicado no documento: "name" - identifica o nome da propriedade; "content" especifica o valor da propriedade; "schema" - nomeia um esquema para ser usado na interpretação do valor da propriedade; "http-equiv" - pode ser usado no lugar do atributo "name" mas tem utilização especial em servidores HTTP na recuperação de documentos com este protocolo. A seguir é mostrada um exemplo de utilização do elemento META: <HEAD> <TITLE>A moda no século XX</TITLE> <META name="description" content="Uma breve descrição do que ocorreu no mundo da moda no século XX."> <META name="keywords" content="moda, vestuário, roupa, modelos"> </HEAD> O autor de um documento HTML tem total liberdade para definir as propriedades e valores no elemento META, mas o significado destas propriedades somente definem um conjunto legal de metadados se houver referência léxica a um perfil de metadados, especificado pelo atributo "profile". Por exemplo, um perfil estabelecido para auxiliar a indexação dos sistemas de busca deve conter as propriedades "author", "copyright", "keywords", "description", "subject", "lang", "date", etc. É a utilização destas propriedades que permitem a estes sistemas filtragens a fim de melhorar a qualidade dos resultados. A Plataforma para Seleção de Conteúdo na Internet (PICS - Platform for Internet Content Selection, especificada pelo W3C), é uma infra-estrutura para associação de marcações de metadados com o conteúdo na Internet. Seu desenvolvimento foi planejado inicialmente para ajudar pais e professores no controle do material acessado por filhos e alunos na Web. Porém, a mesma plataforma possibilita suporte a outros serviços como o gerenciamento de direitos de propriedade intelectual e privacidade. Esta infra-estrutura utiliza-se do elemento META para a inclusão de suas declarações em documentos HTML, conforme o exemplo a seguir (W3C, 1999), mas já há proposta para que seja descrita através do Resource Description Framework (RDF). 27 <HEAD> <META http-equiv="PICS-Label" content=' (PICS-1.1 "http://www.gcf.org/v2.5" labels on "1994.11.05T08:15-0500" until "1995.12.31T23:59-0000" for "http://w3.org/PICS/Overview.html" ratings (suds 0.5 density 0 color/hue 1)) '> <TITLE>... document title ...</TITLE> </HEAD> Como foi visto, a linguagem HTML dispõe de mecanismo simples para definição de metadados, mas que não é muito abrangente. Relacionamentos complexos, com hierarquia de propriedades por exemplo, não podem ser representados com os atributos do elemento META. São disponibilizados apenas um conjunto mínimo de recursos que, mesmo assim, são muito úteis para o gerenciamento de metadados na Web. Com a grande aceitação da linguagem XML, a comunidade Web questionou porque não combinar a simplicidade da linguagem HTML com a flexibilidade da XML. Com a atuação do W3C, foi desenvolvida a linguagem XHTML para atender esta necessidade, reformulando a HTML 4 como uma aplicação XML a fim de tornar a linguagem HTML modular e extensível. Um dos grandes benefícios esperados com tais mudanças é quanto à modularização que permitirá a definição de "versões" simplificadas, baseando-se nos DTDs, para atender à tecnologias específicas como a de livros eletrônicos, telefonia móvel celular, eletrodomésticos, etc. A seguir é ilustrado um exemplo de um documento XHTML (RICHMOND, 2000): 1: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> 2: <html xmlns="http://www.w3.org/1999/xhtml"> 3: <head> 3: <title>Minimal document</title> 5: </head> 6: <body> 7: <p> 8: <a href="http://validator.w3.org/check/referer"> validate</a> 9: </p> 10:</body> 11:</html> 28 A numeração das linhas não fazem parte da especificação XHTML. Servem apenas para a explicação do conteúdo, conforme abaixo: 1: especifica o tipo de documento. 2: declara que este é um documento HTML e declara um espaço de nomes XML. 3: abre o cabeçalho. 4: especifica o título do documento. 5: fecha o cabeçalho. 6: body contains the document's displayable content. 7: inicia o parágrafo. 8: especifica uma ancora para o validador do W3C. 9: fecha o parágrafo. 10: fecha o corpo do documento. 11: fecha o documento html. Os benefícios e características da linguagem XML serão tratados no próximo tópico. 6.2.3 - Xml A linguagem XML foi criada em 1996 por um grupo formado pelo W3C, liderado por Jon Bosak da Sun Microsystems, que desejavam trazer para a Web o máximo de funcionalidade da linguagem SGML. Em 1997 foi realizada a primeira conferência sobre XML, em San Diego, CA (EUA), em que foi apresentado o paper histórico de Jon Bosak - "XML, Java, and the future of the Web". Nele era evidenciada as principais características da linguagem: os autores de documentos XML poderiam definir novas marcações e atributos; a estrutura do documento poderia ser aninhada em qualquer nível de complexidade; qualquer documento XML poderia conter uma descrição opcional de sua gramática para uso de aplicações que necessitam executar uma validação estrutural (BOSAK, 1997). Frequentemente é citado que a linguagem XML tem 80% da funcionalidade da SGML e somente 20 % de sua complexidade. Enquanto a HTML era um subconjunto mínimo e específico da SGML, com a função principal de formatar conteúdo para a Web, a XML é uma simplificação da SGML, mas com a maior parte de sua funcionalidade, especialmente a capacidade de estruturar ou semi-estruturar dados. A funcionalidade de descrever conteúdo para a Web é justamente o ponto mais importante desta linguagem. Ela 29 permite uma especificação que facilita a troca de dados e a reutilização por múltiplas aplicações na Web (ABITEBOUL, 2000). Em um documento XML há os seguintes componentes e conceitos: ? Uma declaração XML é a estrutura que descreve os elementos sintáticos da linguagem. Uma declaração de marcação obrigatória consiste na informação que identifica: a linguagem utilizada no documento (XML), a versão utilizada e, opcionalmente, uma identificação de codificação do conjunto de caracteres utilizado no documento (<?xml version=”1.0” encoding=”iso-8859-1”?>); ? O elemento é a estrutura XML (hierárquica ou não) que descreve um dado, ao contrário da HTML que descreve o formato de um conteúdo (<nome>Maria Fonseca Dias</nome>). Os elementos, também chamados de contêineres de dados, podem ser definidos no próprio documento XML ou separadamente em um DTD (Document Type Definition) da seguinte forma: <!ELEMENT nomeElemento conteúdo> (PITT-MOULTIS, 2000: 32); ? Os atributos são conjunto de informações no formato nome=”valor” que caracterizam um elemento (<title language=”english”>My life</title>). Como os elementos, também podem ser definidos separadamente em um DTD (Document Type Definition) da seguinte forma: <!ATTLIST nomeElemento nomeAtributo tipo padrão (nomeElemento nomeAtributo tipo padrão ...)>. ? Um dado de caracteres é o conteúdo de um elemento (WILLIAMS, 2000: 869). No exemplo <nome>Maria Fonseca Dias</nome>, “Maria Fonseca Dias” é o dado de caracteres do elemento “nome”; ? Entidade é qualquer unidade de dado de caracteres que se quer referir em um documento para evitar repetição ou para incluir caracteres especiais (“>” é uma referência ao caractere “>” para não ser confundido com a marcação do documento). Podem ser internas, referenciadas no próprio documento, ou externas, via URI (Universal Resource Information); ? Instruções de processamento são declarações que têm a finalidade de informar instruções especiais de processamento. Devem estar contidas 30 entre caracteres “?”. A declaração de marcação obrigatória <?xml version=”1.0” encoding=”iso-8859-1”?> é uma instrução de processamento; ? Comentários em XML, como em todas as linguagens, servem para anotações particulares do autor e que não interferem na estrutura ou significado dos demais componentes do documento. Devem ser iniciados pela sequência “<!--” e concluídos com “-->” (<!-- documento criado em 24/02/2001 -->); ? Espaço de nomes (Namespaces) é o mecanismo da linguagem que possibilita aos desenvolvedores a criação de vocabulários específicos (nome de elementos comuns a determinado domínio) com a finalidade de ser compartilhado em diversos documentos XML. A referência aos espaços de nomes é feita via URI (Universal Resource Information); ? DTD (Document Type Definition) é a descrição de um conjunto de regras para um ou vários documentos XML. Pode ser definido no próprio documento em separadamente. Na prática, o DTD é um esquema de metadados para documentos XML. Se um documento obedece às regras de um DTD, é chamado de “válido”, caso contrário, pode ser chamado de “bem formado” se apenas obedece às regras da sintaxe XML. Os seguintes recursos são definidos em um DTD: ? os tipos de elementos que serão permitidos; ? as diversas características de cada tipo de elemento com os atributos usados e o conteúdo que cada elemento pode ter; ? as notações que o documento pode conter; ? as entidades que podem ser usadas; Exemplo de um documento XML e um DTD que define as regras para a catalogação de livros de uma livraria: ------------------------------------------------------------------Código do documento XML que faz referência ao DTD bib.dtd ------------------------------------------------------------------<?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE bib SYSTEM "bib.dtd"> <bib> <book> <author>Leslie Lamport</author> 31 <title>Latex: A Document Preparation System </title> <year>1986</year> <publisher>Addison-Wesley</publisher> </book> <article> <author>David Marr</author> <title>Visual information processing</title> <year>1980</year> <volumn>290</volumn> <page> <from>199</from> <to>218</to> </page> <journal>Phil. Trans. Roy. Soc. B</journal> </article> </bib> ------------------------------------------------------------------Código do DTD (bib.dtd) ------------------------------------------------------------------<?xml version="1.0" ?> <!ELEMENT bib ( (book | article)+)> <!ELEMENT book ( author, title, year, (address)?, publisher )> <!ELEMENT article ( author, title, year, volumn, page, journal) > <!ELEMENT page (from, to)> <!ELEMENT author (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT year (#PCDATA)> <!ELEMENT address (#PCDATA)> <!ELEMENT publisher (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT to (#PCDATA)> <!ELEMENT journal (#PCDATA)> <!ELEMENT volumn (#PCDATA)> ------------------------------------------------------------------- Uma especificação particular do W3C para a tecnologia XML, ligada ao conceito de metadados, é a que trata de esquemas XML (XML Schemas). A primeira vista, um esquema XML seria uma alternativa mais rica e poderosa para validação de documentos XML. Na verdade, esquemas XML são mais robustos nesta tarefa e expressam vocabulários que podem ser compartilhados e permitem a automatização de regras definidas para um determinado domínio. O propósito do esquema é definir uma classe de documentos XML. Eles provêm um meio para a definição de estrutura, conteúdo e semântica de documentos (W3C, 2001). Diferentemente do DTD, um esquema XML possui as seguintes características, detalhadas em (WILLIAMS, 2000:148): 32 ? suporta tipos de dados (primitivos e derivados); ? descreve modelos de conteúdos que possibilitam a reutilização de elementos via herança (admitem cardinalidade e possibilitam a criação de modelos complexos de conteúdo); ? é extensível ( um esquema pode referir-se a outros esquemas); ? possui mecanismos para a montagem de esquemas dinâmicos; ? possui capacidades de auto-documentação quando é aplicada uma folha de estilo (Style Sheet). Como foi visto, a linguagem XML é um meio conveniente para a descrição de diferentes tipos de informações, tanto numéricas como textual, de um modo estruturado, único e eventualmente auto-descritível (CHAUDHRI, 2001: 98). Possui uma sintaxe adequada para a descrição de dados semi-estruturados, através de árvores ou grafos, com algumas inconveniências tratadas em (ABITEBOUL, 2000: 31). O gerenciamento de metadados pode ser feito de uma maneira simples, via DTD, ou através de um esquema XML, método mais genérico, poderoso e mais próximo dos esquemas de banco de dados relacionais (WILLIAMS, 2000: 143). 6.2.4 – Warwick Framework e MFC O Warwick Framework é uma arquitetura modular para agregação de diferentes tipos de metadados e influenciou muito o desenvolvimento do Resource Description Framework (RDF). Foi proposto pelo Digital Library Research Group da Cornell University e foi o resultado do Warnick Workshop realizado em abril de 1996 em Warwick, Inglaterra. Este workshop fez parte de uma série de eventos, chamados de Dublin Core Workshops, iniciados em 1995 quando foi produzido o conjunto inicial dos treze elementos essenciais de metadados do Dublin Core (DC), posteriormente aprimorado para quinze elementos. Foi constatado que um simples conjunto de elementos, como o DC, não atenderia todas as possíveis necessidades de representação de metadados. Era preciso uma infra-estrutura genérica e o Warwick 33 Framework atendia a este requisito. Nele há dois componentes fundamentais: o “container” (unidade para agregação dos conjuntos de metadados) e “packages” (conjuntos de metadados tipados) (LAGOZE, 1996). Com estes componentes, o framework introduziu o conceito de modularidade em metadados que permite a criação e manutenção de pacotes de metadados por diferentes domínios. Outro framework que influenciou o desenvolvimento do RDF foi o Meta Content Framework (MFC). Trata-se de uma especificação para um modelo de dados destinado a descrição de metadados para coleções de informações (GUHA, 1997). Possui uma sintaxe para a representação de instâncias do modelo, descrita em XML, e usa um modelo de grafos direcionados de nós e arestas para construir o modelo conceitual (MOHR, 1999). Foi desenvolvido por Tim Bray (Textuality) e R.V. Guha (Netscape Communications) e submetido ao W3C em 1997 pela Netscape mas não obteve sucesso na padronização. 6.2.5 – MDC e o OMG Além do W3C (World Wide Web Consortium), que lidera a especificação de tecnologias de interoperabilidade na WEB, principalmente quanto a padronização, há também outras organizações não governamentais e sem fins lucrativos com esta mesma linha de atuação. Uma das mais importantes é a MetaData Coalition (http://www.mdcinfo.com/index.html) que agrega cerca de cinquenta empresas do ramo de software e usuários finais com uma finalidade comum de desenvolver um formato padrão de intercâmbio de metadados e os seus mecanismos da sustentação. Foi criado em 1995 como uma instituição independente, mas atualmente está em processo de fusão com o Object Management Group (OMG). Seu principal projeto de padronização foi o MetaData Interchange Specification (MDIS), criado em 1996, e serve de base para outros projetos do mesmo consórcio, como o Open Information Model (OIM) que é específico para data warehousing. Com a fusão com o OMG, o OIM será integrado o Common Warehouse Metamodel (CWM), um projeto como o mesmo propósito já desenvolvido pelo OMG. 34 O Object Management Group (OMG) é outra organização de grande relevância na área e que já contribuiu com importantes iniciativas como o Common Object Request Broker Architecture (CORBA) e na especificação da Unified Modeling Language (UML). Desde 1995 o OMG desenvolveu um projeto de gerenciamento de metadados denominado Meta Object Facility (MOF), mas somente foi especificado em 1997 quando reuniu no modelo os conceitos da UML e CORBA. Deste modelo foi derivada outra especificação denominada XML Metadata Interchange (XMI) com a utilização da linguagem XML. No início deste ano, o OMG divulgou um projeto que pretende unificar todos as tecnologias sob sua responsabilidade: a Model Driven Architecture (MDA). Esta arquitetura, baseada em um modelo independente de plataforma e fornecedor, pretende reunir todas as tecnologias emergentes para oferecer soluções de interoperabilidade em todos os níveis. 6.3 - Resource Description Framework O Resource Description Framework - RDF foi inicialmente proposto ao W3C em outubro de 1997, mas somente tornou-se recomendação aprovada em fevereiro de 1999. Foi desenvolvido através de um trabalho conjunto de diversos membros do W3C, inicialmente a partir da necessidade de generalizar o framework para metadados que dava suporte à PICS (Platform for Internet Content Selection). Também foi muito influenciado pelo Meta Content Framework (MFC) da Netscape e o Dublin Core/Warwick Framework, como já foi citado anteriormente. O framework tem duas especificações distintas: uma geral (RDF Model and Syntax Specification) e outra mais específica (RDF Schema Specification). O modelo e sintaxe RDF caracterizam uma linguagem declarativa que estabelece uma norma para o uso de XML na representação de metadados na forma de declarações sobre propriedades e relacionamentos de itens na Web (W3C, 2000). O esquema RDF é um framework através do qual comunidades independentes podem desenvolver 35 vocabulários que satisfaçam suas necessidades específicas e possam compartilhar estes vocabulários com outras comunidades. A especificação dos esquemas RDF ainda está como recomendação candidata, embora já esteja sendo implementada. Os conceitos básicos do modelo concentram-se em três tipos de objetos: ? recursos podem ser tudo que possa ser nomeado com uma URI (Universal Resource Identifier): um documento, uma coleção de documentos, um site, uma parte de um documento, etc. Isto possibilita ao RDF descrever quase tudo na Web; ? propriedades são os atributos dos recursos e podem ter restrições que definem os tipos de recursos em que podem ser aplicadas: sua faixa de valores e tipos possíveis e o seu relacionamento com outras propriedades; ? uma sentença é a combinação de um recurso (sujeito), a propriedade de um recurso (predicado) e o valor da propriedade (objeto). Um objeto pode ser um ou vários valores literais ou até mesmo recursos. Através de um exemplo simples, citado no Metadata Activity Statement (W3C, 2000), é possível demonstrar os conceitos acima citados. Neste exemplo, reproduzido abaixo, o RDF está sendo usado para expressar dados sobre o prospecto de apresentação do W3C que está disponível on-line. Os metadados sobre este item na Web estão descritos através de uma coleção de propriedades e, para fazer esta descrição, é utilizada a linguagem XML conforme abaixo: (1) <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" (2) xmlns:dc="http://purl.org/dc/elements/1.1/"> (3) <Description about="http://www.w3.org/Press/99Folio.pdf"> (4) <dc:title>The W3C Folio 1999</dc:title> (5) <dc:creator>W3C Communications Team</dc:creator> (6) <dc:date>1999-03-10</dc:date> (7) <dc:subject>Web development, World Wide Web (8) Consortium, Interoperability of the Web</dc:subject> (9) </Description> (10)</RDF> 36 A linha (1) declara que todo o bloco (<RDF ...> xxx </RDF>) é uma expressão RDF e usa o formato definido pela especificação do modelo e sintaxe RDF que está na URI citada. A linha (2) indica onde está localizada a aplicação RDF que define o vocabulário usado. A localização dada (http://purl.org/dc/elements/1.1/) refere-se ao Dublin Core, vocabulário associado com informação bibliográfica (vide o tópico “Aplicações do RDF”). O atributo xmlns (espaço de nomes da linguagem XML) associa o prefixo “dc” com o endereço Web do Dublin Core. Consequentemente, as declarações RDF devem fazer uso deste código para indicar que se refere a um conjunto particular de propriedades RDF e sua respectiva gramática (esquema RDF); Na linha (3), o tag de descrição é usado para indicar exatamente qual recurso da Web terá seus metadados descritos. A linha diz que o metadado “descrição” trata do recurso http://www.w3.org/Press/99Folio.pdf, que é o prospecto de apresentação do W3C disponibilizado on-line. As linhas seguintes são as demais sentenças RDF que descrevem as outras propriedades e seus respectivos valores do recurso, ou seja, os metadados (título, autor, data e assunto). A partir destas sentenças acima reproduzidas, qualquer aplicação que analise o texto pode deduzir o seguinte: O W3C Communications Team criou em 10/03/1999 o documento localizado na URI http://www.w3.org/Press/99Folio.pdf, cujo título é “The W3C Folio 1999” . Um modelo RDF também pode ser representado através de um grafo de arestas rotuladas. Os nós são os recursos, as arestas são as propriedades e o elemento terminal, representado por um retângulo, representa o valor da respectiva propriedade. O exemplo acima citado pode ser representado através de um grafo da seguinte maneira (Fig 03): 37 http://www.w3.org/Press/99Folio.pdf Subject Date 1999-03-10 Title Creator Web development, World Wide Web Consortium, Interoperability of The W3C Folio 1999 the Web W3C Communications Team Fig. 03 – Representação do modelo RDF através de grafo. Quanto aos esquemas RDF, definem o significado, características e relacionamentos do conjunto de propriedades, inclusive restrições de valores e herança de propriedade de outros esquemas. Como foi visto acima, a linguagem RDF possibilita a indicação, através do endereço Web, dos vocabulários de metadados que serão usados. A linguagem de especificação do esquema é uma linguagem de representação declarativa influenciada pelas idéias da representação do conhecimento, pelas linguagens de representação de esquemas de banco de dados e por modelos de dados representados por grafos. Um dos mais conhecidos esquemas é o Dublin Core, utilizado acima, que foi criado pela comunidade ligada a biblioteconomia. Somente para fins ilustrativos, pois mais adiante será tratado com mais detalhes, parte do esquema RDF do Dublin Core é reproduzida (detalhe da propriedade “title”): <RDF:Schema ID="DC"> <RDF:Name xml:lang="en">Dublin Core V1.0</RDF:Name> <RDF:Description xml:lang="en">The Dublin Core element set provides simple resource discovery attributes</RDF:Description> 38 <RDF:Property ID="Title"> <RDF:Type>String</RDF:Type> <RDF:Name xml:lang="en">Title</RDF:Name> <RDF:Description xml:lang="en">The title of the resource</RDF:Description> <RDF:Mandatory>False</RDF:Mandatory> <RDF:Bag>True</RDF:Bag> </RDF:Property> ... </RDF:Schema) Como duas aplicações poderiam utilizar o mesmo conjunto de tags, foi utilizado o conceito de espaço de nomes (namespaces) da linguagem XML. Isto permite que seja referenciado um vocabulário RDF particular (esquema) que valida as declarações referente ao espaço de nomes utilizado. O RDF tem um amplo campo de utilização. No tópico “aplicações do RDF” estão relacionadas algumas aplicações reais, mas, de uma maneira geral, o framework pode ser utilizado em qualquer tipo de aplicação em que a interoperabilidade de metadados é relevante. Por exemplo: ? taxonomia; ? mapeamento de sites; ? descrição de conteúdo de páginas Web; ? descrição de políticas de privacidade; ? descrição de capacidade de dispositivos; ? sistemas de medição de audiência; ? gerenciamento de metadados; ? assinaturas digitais. 39 6.3.1 – Sintaxe básica A sintaxe para descrever um modelo de dados RDF é expressa em XML e utiliza-se de espaços de nomes (namespaces XML) para associar precisamente cada propriedade com o esquema que a define. A especificação do modelo e sintaxe RDF (http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/) estabeleceu a sequinte forma de serialização das sentenças RDF (sintaxe básica) na notação Backus-Naur Extendida (EBNF): [1] RDF [2] description [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] idAboutAttr aboutAttr idAttr propertyElt propName value resourceAttr Qname URI-reference IDsymbol name NSprefix string ::= ['<rdf:RDF>'] description* ['</rdf:RDF>'] ::= '<rdf:Description' idAboutAttr? '>' propertyElt* '</rdf:Description>' ::= idAttr | aboutAttr ::= 'about="' URI-reference '"' ::= 'ID="' IDsymbol '"' ::= '<' propName '>' value '</' propName '>' | '<' propName resourceAttr '/>' ::= Qname ::= description | string ::= 'resource="' URI-reference '"' ::= [ NSprefix ':' ] name ::= string, interpreted per [URI] ::= (any legal XML name symbol) ::= (any legal XML name symbol) ::= (any legal XML namespace prefix) ::= (any XML text, with "<", ">", and "&" escaped) O elemento “RDF” marca os limites do documento XML que contém a descrição de um modelo de dados RDF e é opcional, se o conteúdo puder ser interpretado através do contexto da aplicação. O elemento “Description” contém os elementos que possibilitam a criação de sentenças em uma instância do modelo. Pode expressar apenas o lugar onde localiza-se a identificação do recurso (como no exemplo já citado) ou pode referir-se a várias sentenças que serão declaradas. No nosso exemplos simples do Dublin Core, acima citado, podemos identificar os seguintes, como exemplo: ? ? RDF: (o documento completo) description*: <Description about="http://www.w3.org/Press/99Folio.pdf"> 40 <dc:title>The W3C Folio 1999</dc:title> <dc:creator>W3C Communications Team</dc:creator> <dc:date>1999-03-10</dc:date> <dc:subject>Web development, World Wide Web Consortium, Interoperability of the Web</dc:subject> </Description> ? ? ? ? ? ? iDAboutAttr?: about="http://www.w3.org/Press/99Folio.pdf" aboutATTR: about="http://www.w3.org/Press/99Folio.pdf" URI-reference: "http://www.w3.org/Press/99Folio.pdf" propertyElt*:<dc:title>The W3C Folio 1999</dc:title> propName: dc:title value: The W3C Folio 1999 A especificação do modelo e sintaxe (http://www.w3.org/TR/1999/REC-rdf-syntax19990222) também faz referência a uma forma de serialização abreviada que inclui termos adicionais para proporcionar uma forma mais resumida de representação de um subconjunto do modelo de dados. A sintaxe básica citada acima, com apenas quinze elementos, conta apenas com os elementos essenciais da gramática RDF. No documento de especificação do W3C, há uma gramática formal completa, na notação EBNF, composta de trinta e quatro elementos. 6.3.2 – Contêineres Quando é necessário referir-se a coleções de recursos, a gramática RDF dispõe de um objeto para atender a esta necessidade: os contêineres. São utilizados para manter listas de recursos ou valores. Por exemplo: ? pode ser preciso informar que um determinado documento foi criado por mais de uma pessoa; ? para enumerar estudantes de um curso; ? para referir-se a módulos de um software. São definidos três objetos do tipo contêiner: ? bag – lista desordenada utilizada para indicar que uma propriedade tem múltiplos valores, cuja ordenação não é significativa e pode haver elementos repetidos; 41 ? sequence – lista ordenada em que a ordem dos elementos é significativa e pode haver repetição; ? alternative – lista de recursos ou literais que representam alternativas para um valor de uma propriedade e, portanto, não admite repetição de elementos. A notação EBNF para os cointêineres é a seguinte: [18] [19] [20] [21] [22] [23] [24] container sequence bag alternative member referencedItem inlineItem ::= ::= ::= ::= ::= ::= ::= sequence | bag | alternative '<rdf:Seq' idAttr? '>' member* '</rdf:Seq>' '<rdf:Bag' idAttr? '>' member* '</rdf:Bag>' '<rdf:Alt' idAttr? '>' member+ '</rdf:Alt>' referencedItem | inlineItem '<rdf:li' resourceAttr '/>' '<rdf:li>' value '</rdf:li>' Seu uso está relacionado com as seguintes notações EBNF não incluidas na sintaxe básica: [1a] RDF [8a] value [25] obj ::= '<rdf:RDF>' obj* '</rdf:RDF>' ::= obj | string ::= description | container O seguinte exemplo ilustra o uso: <rdf:RDF> <rdf:Description about="http://univ.edu/curso/546"> <s:alunos> <rdf:Bag> <rdf:li resource="http://univ.edu/alunos/Carlos"/> <rdf:li resource="http://univ.edu/alunos/Ana"/> <rdf:li resource="http://univ.edu/alunos/Laura"/> <rdf:li resource="http://univ.edu/alunos/Beto"/> <rdf:li resource="http://univ.edu/alunos/Diva"/> </rdf:Bag> </s:alunos> </rdf:Description> </rdf:RDF> A semântica deste documento RDF é a seguinte: os alunos do curso 546 são Carlos, Ana, Laura, Beto e Diva. 42 6.3.3 – Sentenças sobre sentenças Além de possibilitar a declaração de sentenças sobre recursos, o RDF também permite a declaração de sentenças sobre sentenças. Estas são chamadas de sentenças de alto nível (higher-order statements) e são contruídas a partir de um modelo da sentença original. Portanto, um modelo de uma sentença é o recurso necessário para que se possa fazer uma nova declaração sobre a sentença modelada. Para exemplificar, utilizando o exemplo da especificação do modelo e sintaxe RDF (http://www.w3.org/TR/REC-rdf-syntax/), a afirmação “Ora Lassila é a criadora do recurso http://www.w3.org/Home/Lassila” é uma sentença RDF simples, pois tem um recurso (sujeito - http://www.w3.org/Home/Lassila), a propriedade de um recurso (predicado – que criou) e o valor da propriedade (objeto - Ora Lassila). Porém, para a afirmação “Ralph Swick disse que Ora Lassila é a criadora do recurso http://www.w3.org/Home/Lassila”, não podemos dizer o mesmo pois é uma sentença sobre a primeira. Para representa-la em RDF será preciso modelar a primeira sentença com quatro propriedades (não definidas na gramática): ? subject – identifica o recursos que descreve a sentença modelada, ou seja, o valor da propriedade subject é o recurso sobre o qual a sentença original foi feita (no exemplo: http://www.w3.org/Home/Lassila); ? predicate – identifica a propriedade original na declaração modelada, ou seja, o valor da propriedade predicate é um recurso que representa a propriedade específica na sentença original (no exemplo: criadora); ? object – identifica o valor da propriedade na sentença modelada, ou seja, o valor da propriedade object é o objeto da sentença original (no exemplo: Ora Lassila); ? type – descreve o tipo do novo recurso. Todas as sentenças transformadas são instâncias de RDF:Statement, ou seja, elas têm uma propriedade type cujo objeto é RDF:Statement. A propriedade type é também usada para declarar o tipo de quaisquer recursos. Seu uso é descrito com mais detalhes na especificação do modelo e sintaxe RDF 43 (http://www.w3.org/TR/REC-rdf-syntax/) e será mais utilizado na especificação dos esquemas RDF. Um novo recurso, com as quatro propriedades citadas, representa a sentença original e pode ser usado tanto como objeto de outras sentenças como também ter uma sentença adicional sobre ele. Tal recurso não é um substituto da sentença original, mas apenas um modelo da declaração. Uma sentença e suas correspondentes sentenças transformadas existem independentemente das demais. Este processo de transformar algo abstrato em concreto, no contexto da representação do conhecimento, denomina-se reificação. Uma sentença reificada (reifield statement) é um modelo de uma sentença, ou seja, foi transformada do abstrato para o concreto). Para modelar o exemplo citado dentro destes conceitos, é preciso utilizar outra propriedade na sentença transformada (“attributedTo”) com o valor apropriado (“Ralph Swick”). Na sintaxe básica, a sentença será representada deste modo: <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:a="http://description.org/schema/"> <rdf:Description> <rdf:subject resource="http://www.w3.org/Home/Lassila" /> <rdf:predicte resource="http://description.org/schema/Creator" /> <rdf:objectoOra Lassila</rdf:object> <rdf:type resource="http://www.w3.org/1999/02/22-rdf-syntaxns#Statement" /> <a:attributedTO>Ralph Swick</a:attributedTO> </rdf:Description> </rdf:RDF> Estes são apenas os conceitos principais do modelo e sintaxe RDF. Há diversas particularidades conceituais na especificação que não é o objetivo deste trabalho. A especificação do W3C (http://www.w3.org/TR/REC-rdf-syntax/) é a fonte oficial de informação sobre a gramática e conceitos do modelo RDF. 44 6.3.4 - Esquema RDF Como já foi citado neste trabalho, os esquemas RDF definem o significado, características e relacionamentos do conjunto de propriedades, além de restrições de valores e herança de propriedade de outros esquemas. Um esquema é semelhante a um DTD, porém é muito mais expressivo e abrangente. O esquema utiliza o modelo definido em um vocabulário para expressar a estrutura do documento através do respectivo vocabulário. A finalidade é a mesma aplicada aos esquemas dos bancos de dados: as regras são definidas para que o modelo de dados sempre esteja em conformidade com elas. A figura 04 ilustra o contexto do esquema RDF: Esquema RDF (regras) Recursos Propriedades //Declarações Recursos + propriedade = “valor” ... Retrições Documento (conforme as regras) <xxx> Esquemas RDF estabelecem as regras que ditam o que documentos XML podem declarar e conter. <z>def</z> <y>ghi</y> </xxx> Fig. 04 – Contexto do esquema RDF (MOHR, 1999). A especificação do esquema (http://www.w3.org/TR/2000/CR-rdf-schema-20000327/) descreve como o RDF deve ser usado para a descrição de vocabulários RDF. Também define um vocabulário básico para este propósito, bem como um mecanismo que permite a extensibilidade para futuros aprimoramentos. Este vocabulário define recursos e propriedades em um sistema tipado, similar ao oferecido pelas linguagens de programação como C++ e Java, de acordo com a especificação do modelo e sintaxe RDF (http://www.w3.org/TR/REC-rdf-syntax/). O vocabulário do esquema é definido em um espaço de nomes denominado 'rdfs' e identificado pela URI http://www.w3.org/2000/01/rdf-schema#. A especificação 45 também utiliza o prefixo 'rdf' para referir-se ao espaço de nomes do modelo e sintaxe RDF, identificado pela URI http://www.w3.org/1999/02/22-rdf-syntax-ns#. 6.3.4.1 - Classes e propriedades Os recursos podem ser instâncias de uma ou mais classes e isto é expresso em um esquema RDF através da propriedade rdf:type. Normalmente, as classes são organizadas de forma hierárquica, como por exemplo, a classe “Animal” tem a subclasse “mamífero” e esta tem a subclasse “cão”. Qualquer recurso que está em rdf:type Cão também é considerado que está em rdf:type Animal. A especificação do esquema descreve a propriedade rdfs:subclassOf para indicar estas relações entre as classes. A figura 05 ilustra o conceito de classe, subclasse e recurso. As classes são descritas por um retângulo com cantos arredondados e recursos com pontos grandes. As setas partem de um recurso até a classe que o define e as subclasses são representadas também por retângulos de cantos arredondados, mas incluídos em outra classe (superclasse). Se um recurso está dentro de uma classe, então existe uma propriedade rdf:type daquele recurso, cujo valor é um recurso que define a classe que o contém. 46 Resource Property ? rdf:type ? rdfs:subClassOf ? rdfs:subPropertyOf ? rdfs:comment ? rdfs:label ? rdfs:seeAlso ? rdfs:isDefinedBy Class ? rdfs:Resource ? rdfs:Class ? rdf:Property ? rdfs:ConstraintProperty ? rdfs:literal ConstraintProperty ? rdfs:range ? rdfs:domain Fig. 05 – Classes e recursos como conjuntos e elementos. A figura 06 ilustra a hierarquia de classes para o esquema RDF utilizando a representação gráfica de arcos e nós. Se uma classe é um subconjunto de outra, então existe um arco rdfs:subClassOf de um nó, que representa a primeira classe, para a segunda. Do mesmo modo, se um recurso é uma instância de uma classe, então existe um arco rdf:type do recurso para o nó que representa a classe. Na figura não são mostrados todos os nós da hierarquia de classes do esquema. 47 Fig. 06 – Hierarquia de classes para o esquema RDF (http://www.w3.org/TR/2000/CR-rdf-schema20000327/) As classes essenciais de um esquema RDF são: ? rdfs:Resource – a mais geral das classes, pois todas as coisas podem ser definidas como recursos. Todas as demais classes são subclasses dela; ? rdf:Property – representa o subconjunto de recursos que são propriedades (mesmo conceito do modelo e sintaxe RDF); ? rdfs:Class – tem o mesmo conceito de classe das linguagens de programação. Quando um esquema define uma nova classe, o recurso que representa esta classe deve ter a propriedade rdf:type, cujo valor é o recursos rdf:Class. O exemplo seguinte ilustra a descrição de classes em um esquema que descreve veículos (reproduzido da especificação do esquema em http://www.w3.org/TR/2000/CR-rdf-schema-20000327/) <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#"> 48 <rdf:Description ID="MotorVehicle"> <rdf:type resource="http://www.w3.org/2000/01/rdf-schema#Class"/> <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/> </rdf:Description> <rdf:Description ID="PassengerVehicle"> <rdf:type resource="http://www.w3.org/2000/01/rdf-schema#Class"/> <rdfs:subClassOf rdf:resource="#MotorVehicle"/> </rdf:Description> <rdf:Description ID="Truck"> <rdf:type resource="http://www.w3.org/2000/01/rdf-schema#Class"/> <rdfs:subClassOf rdf:resource="#MotorVehicle"/> </rdf:Description> <rdf:Description ID="Van"> <rdf:type resource="http://www.w3.org/2000/01/rdf-schema#Class"/> <rdfs:subClassOf rdf:resource="#MotorVehicle"/> </rdf:Description> <rdf:Description ID="MiniVan"> <rdf:type resource="http://www.w3.org/2000/01/rdf-schema#Class"/> <rdfs:subClassOf rdf:resource="#Van"/> <rdfs:subClassOf rdf:resource="#PassengerVehicle"/> </rdf:Description> </rdf:RDF> As propriedades são instâncias da classe rdf:Property e proporcionam um mecanismo para expressar os relacionamentos entre as classes e seus objetos ou com superclasses. As essenciais são: ? rdf:type – indica que um recurso é membro de uma classe e, deste modo, tem todas as características inerentes a um membro dessa classe; ? rdfs:subClassOf – indica que uma classe pertence a outra mais abrangente na hierarquia de classes (uma classe pode pertencer a mais de uma classe). Exemplificando: <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:Description ID="biologicalParent"> <rdf:type resource="http://www.w3.org/1999/02/22-rdf-syntaxns#Property"/> </rdf:Description> 49 <rdf:Description ID="biologicalFather"> <rdf:type resource="http://www.w3.org/1999/02/22-rdf-syntaxns#Property"/> <rdfs:subPropertyOf rdf:resource="#biologicalParent"/> </rdf:Description> </rdf:RDF> ? rdfs:subPropertyOf – é uma instância de rdf:Property e indica que uma propriedade é uma especialização de outra. Uma propriedade pode ser uma especialização de mais de uma propriedade; ? rdfs:seeAlso – indica um recurso que pode fornecer informações adicionais sobre o recurso em questão; ? rdfs:isDefinedBy – é uma subpropriedade de rdfs:seeAlso e indica o recurso que define o recurso em questão; 6.3.4.2 – Restrições A especificação do esquema RDF também possui um vocabulário para a declaração de restrições quanto ao uso das propriedades e classes em dados RDF. Por exemplo, pode-se restringir os tipos de valores que podem ser válidos para uma determinada propriedade. Também podem ser limitadas as propriedades que uma classe pode ter. As principais restrições são: ? rdfs:ConstraintResource – é uma subclasse de rdfs:Resource em que todos os seus objetos são recursos para especificar restrições; ? rdfs:ConstraintProperty - é uma subclasse de rdf:Property e rdfs:ConstraintResource em que todos os seus objetos são propriedades para especificar restrições; ? rdfs:range – é uma instância de rdfs:ConstraintProperty e é utilizada para indicar a uma classe (ou várias) que o valor de uma propriedade deve ser membro dela. Este valor é sempre uma classe; ? rdfs:domain – é utilizada para indicar a uma classe (ou várias) quais os membros em que pode ser aplicada uma propriedade. 50 Para exemplificar o uso, reproduzimos o esquema citado na especificação do esquema RDF (http://www.w3.org/TR/2000/CR-rdf-schema-20000327/) que trata da classe de veículos e que são descritas algumas restrições: ? ? ? ? ? ? <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:Description ID="registeredTo"> <rdf:type resource="http://www.w3.org/1999/02/22-rdf-syntaxns#Property"/> ? <rdfs:domain rdf:resource="#MotorVehicle"/> ? <rdfs:range rdf:resource="#Person"/> ? </rdf:Description> ? ? ? ? ? ? ? ? <rdf:Description ID="rearSeatLegRoom"> <rdf:type resource="http://www.w3.org/1999/02/22-rdf-syntaxns#Property"/> <rdfs:domain rdf:resource="#PassengerVehicle"/> <rdfs:domain rdf:resource="#Minivan"/> <rdfs:range rdf:resource="http://www.w3.org/2000/03/example/classes#Number"/> </rdf:Description> </rdf:RDF> 6.3.4.3 - Mecanismos de extensibilidade O Resource Description Framework foi projetado para ser flexível e facilmente extensível. Isto implica que se pode criar uma grande variedade de esquemas e que as versões novas e revisões do esquema serão freqüentes. O termo “vocabulário RDF” é utilizado para indicar os recursos que podem evoluir com o tempo, enquanto o termo “esquema RDF” é utilizado para indicar os recursos que são imutáveis de um vocabulário. Desta forma, pode-se dizer que haverá a evolução do vocabulário Dublin Core e não do esquema Dublin Core, embora uma nova versão do vocabulário DC poderia ser um esquema diferente. A utilização de espaços de nomes (namespaces) deve adequar-se à possível evolução do vocabulário, pois uma URI de um espaço de nomes identifica sem ambiguidade o esquema em que está definidas as propriedades e classes. Por este 51 motivo, recomenda-se a utilização de uma nova URI para um novo espaço de nomes para atender versões mais novas de um esquema. Também recomenda-se a manutenção dos vocabulários de versões anteriores por um período indefinido. A questão do gerenciamento de versões entre vocabulários e as aplicações que os utilizam ainda é um ponto desta tecnologia que precisa aprimoramentos. A especificação do esquema proporciona os mecanismos básicos para que haja relacionamento entre vocabulários (rdfs:subClassOF e rdfs:subPropertyOf). Isto é um dos meios de evolução do vocabulário RDF e poder abranger recursos fora da Web. A especificação define uma subclasse de recursos (constraint resources) para proporcionar a adição de novas formas de expressar restrições RDF. Novos recursos podem ser implementados em versões futuras e que podem necessitar de restrições específicas ainda inexistentes. Deste modo, a inclusão de novos recursos não fica limitada ao conjunto de restrições de modelos vocabulários antigos. 6.3.4.4 – Documentação As seguintes propriedades dão suporte à documentação do esquema: ? rdfs:comment – utilizado para registrar comentários sobre recursos; ? rdfs:label – utilizado para o registro de nomes de um recursos (em diversas línguas, por exemplo). 6.3.5 - Aplicações do RDF Por ser um padrão, o Resource Description Framework já é utilizado em um conjunto razoável de aplicações e até mesmo na definição de outros padrões. A seguir relacionaremos algumas mais significativas para demonstrar a tendência de aceitação deste padrão: 52 ? Document Content Description (DCD) (http://www.w3.org/TR/NOTE-dcd) é uma proposta da IBM e Microsoft, já submetida ao W3C, caracterizada por um esquema estrutural, na forma de um vocabulário RDF, para a especificação de regras na estrutura e conteúdo de documentos XML. Embora com recursos mais abrangentes, a idéia do DCD é próxima à do DTD. ? Platform for Privacy Preferences (P3P) (http://www.w3.org/TR/P3P/) é uma recomendação candidata no W3c que se propõe a, através de um formato padrão, possibilitar que Web sites expressem sua política de privacidade de modo que possa ser recuperada e interpretada automaticamente por agentes do usuário. Embora no atual estágio da recomendação a plataforma ainda não esteja definida através de um modelo RDF, isto já está planejado para as próximas fases do processo de padronização. ? Composite Capability/Preference Profiles (CC/PP) (http://www.w3.org/Mobile/CCPP/) é a tecnologia que possibilitará o gerenciamento de perfis do usuário, referente a capacidades de seus recursos e preferências, para seu acesso à Web. A tecnologia está sendo desenvolvida principalmente em função dos avanços na área de hardware que possibilitaram a internet móvel. Para dar suporte a esta tecnologia, foram desenvolvidos vários frameworks através do RDF. ? INDECS Framework (interoperability of data in e-commerce systems) (<http://www.indecs.org/>) é uma iniciativa de um grupo de empresas ligadas ao comércio eletrônico com a finalidade de definir padrões para a interoperabilidade de dados nesta área. Também foi utilizado o RDF em sua especificação. ? DUBLIN CORE (DC) (http://dublincore.org/) - é uma das mais generalizadas aplicações do RDF por ser simples. Trata-se de um conjunto de quinze elementos definidos pelo Dublin Core Metadata Initiative (DMI), o Dublin 53 Core Metadata Element Set, para identificação dos recursos de uma maneira geral, mas aplica-se muito bem à Web. Este conjunto é formado pelos seguintes elementos: título, assunto, autor, descrição, editor, colaboradores, data, tipo de objeto, formato, identicador, relacionamento, língua, área geográfica de cobertura, fonte e direitos. Páginas Web com a descrição dos elementos DC, através do RDF, possibilitam sua recuperação por agentes que utilizam este recurso. ? NKLR (Narrative Knowledge Representation Language) (BERTINO, 2001: 334) é uma linguagem para representação de conteúdo semântico de documentos narrativos. É utilizada no projeto de pesquisa CONCERTO da Comunidade Européia (http://concerto.pira.co.uk/webpages/frameset.html), implementada em JAVA e RDF, que desenvolve ferramentas para indexação, consulta e recuperação de informações em documentos digitais; ? Netscape 6 da Netscape e América On-line, utiliza o RDF para integrar várias aplicações orientadas a dados (bookmarks, mail/news, channels, etc.); ? Universal Commerce Language and (http://www.w3.org/TR/1999/NOTE-uclp-19990120/) Protocol e (UCLP) Personalized Information Description Language (PIDL) (http://www.w3.org/TR/NOTE-PIDL) são linguagens que, inicialmente foram especificadas em XML e submetidas para padronização ao W3c, mas que seus autores já planejaram seu mapeamento para o RDF. ? HOTMETA - Metadata Searching Engine do Distributed Systems Technology Centre (DSTC) (http://www.dstc.edu.au/), mantido pelo governo australiano, utiliza-se do RDF na indexação de seus sistema de busca; ? UK Mirror Service é um serviço nacional do Reino Unido (http://www.mirror.ac.uk/) para espelhamento e armazenamento de software 54 e dados. Nele é utilizado o RDF para o espelhamento da descrição do conteúdo de mais de quatro milhões de recursos; ? Descrição e recuperação de fotos – o W3c tem um projeto neste sentido que utiliza-se do RDF para o gerenciamento de dados (http://www.w3.org/TR/photo-rdf/); ? RDF Site Summary (RSS) é um framework baseado no RDF para a descrição de canais. Foi desenvolvido pela Nestcape em 1999 como mecanismo para recuperar conteúdo destinado ao portal My Netscape Network (http://my.netscape.com/). 6.3.6 – Considerações Finais O Resource Description Framework, aqui tratado com o modelo e sintaxe (RDF) e o esquema RDF (RDFS), pode ser considerado um conjunto de especificações que proporcionam uma representação genérica para dados e metadados na Web, podendo inclusive ser utilizado fora dela. Além disto, pelo fato de já ser um padrão do W3C e de prever um mecanismo de evolução, certamente pode ser habilitado como mecanismo auxiliar de interoperabilidade na Web. Algumas críticas têm sido feitas ao modelo (divergências de conceitos em relação ao modelo de dados orientado a objetos, o conceito abstrato da reificação, o versionamento de vocabulários, etc). Porém, a materialização de um modelo ideal é um fato distante da realidade. Sempre há muitos pontos de divergências em todas as áreas de atuação humana. Porém, como dispomos de mecanismos de aprimoramento do modelo, resta a comunidade Web a tarefa de utilizar tais mecanismo para ir enriquecendo o framework. Outro ponto de controvérsia, mais voltado para a atuação do W3C, é a aparente semelhança entre o esquema RDF e o esquema XML, ambos em processo de padronização pelo mesmo consórcio. Um documento do W3C (The Cambridge Comuniqué (W3C, 1999)) tratou da questão esclarecendo o seguinte: 55 ? o RDF é um exemplo de modelo de dados genérico e pertence a família dos modelos tipo entidade-relacionamento; ? as linguagens dos esquemas XML e RDF são distintas e baseadas em modelos diferentes (esquema XML baseado em modelo de dados estruturados em árvore e esquema RDF em modelo de dados estruturados em grafos direcionados de arestas rotuladas), portanto não necessitam de convergência; Provavelmente a questão ainda será muita discutida na comunidade Web e deve ser objeto de futuros trabalhos, pois a utilização de ambos os esquemas tende a crescer à medida que aumenta a quantidade de software que dar suporte a estas tecnologias. 56 7 - Glossário ANSI - (American National Standards Institute) - Uma organização afiliada à ISO e que é a principal organização norte-americana envolvida na definição de padrões (normas técnicas) básicos como o ASCII. ARPANET - (Advanced Research Projects Agency Network) - Rede de longa distância criada em 1969 pela Advanced Research Projects Agency (ARPA, atualmente Defense Advanced Projects Research Agency, ou DARPA) em consórcio com as principais universidades e centros de pesquisa dos EUA, com o objetivo específico de investigar a utilidade da comunicação de dados em alta velocidade para fins militares. É conhecida como a rede-mãe da Internet de hoje e foi colocada fora de operação em 1990, posto que estruturas alternativas de redes já cumpriam seu papel nos EUA. ASCII - (American Standard Code for Information Interchange) - Código numérico usado para representar caracteres em arquivos texto em computadores e dispositivos de armazenamento eletrônico de dados. CERN - Laboratório Europeu de Física de Partículas, localizado em Genebra, Suíça. A sigla CERN é de seu nome anterior, Conseil Européen pour la Recherche Nucleaire (Conselho Europeu para Pesquisa Nuclear). Para os usuários Internet, o Cern é conhecido como o local onde foi desenvolvido a World Wide Web. CORBA - Common Object Request Broker Architecture é a proposta da OMG (Object Manangement Group) para uma plataforma padronizada de serviços de objetos distribuídos. DTD - (Document Type Definition - definição de tipo de documento) - É uma definição formal dos elementos, estruturas e regras para codificação de um documento de acordo com a linguagem SGML. As informações de um DTD podem vir junto com o documento ou separadamente em outro arquivo ou link. 57 Dublin Core (DC) - Forma abreviada do Dublin Metadata Core Element Set que é uma lista de treze elementos de metadados principais criados pelos participantes do OCLC/NCSA Metadata Workshop (março de 1995) com o objetivo de definir um conjunto básico de atributos que sirvam para identificar todos os recursos disponíveis na Web. O OCLC é sigla do Online Computer Library Centre e NCSA é a sigla do National Center for Supercomputing Applications. Framework – conjunto de padrões, regras, software ou especificações que atendem a um determinado propósito geral. Hipertexto - Forma não linear de apresentar informações. Tópicos de um texto podem ter vínculos com outras partes do mesmo documento ou outros documentos, que por sua vez podem estar vinculados a outras informações. HTML (Hypertext Markup Language) - Linguagem padrão usada para escrever páginas de documentos para Web ou WWW. É uma variante da SGML (Standard Generalized Markup Language), bem mais fácil de aprender e usar, possibilitando preparar documentos com gráficos e links para outros documentos para visualização em sistemas que utilizam Web. INDECS (Interoperability of Data in E-Commerce Systems) - É um padrão de metadados para o comércio eletrônico (INDECS framework) criado pelo "The <indecs> Framework Ltd", uma companhia sem fins lucrativos patrocinada por uma associação internacional de empresas ligadas ao comércio eletrônico. O INDECS framework consiste de um modelo genérico do metadados que descreve e excepcionalmente identifica: a propriedade intelectual, as pessoas e seus negócios e os acordos que fazem sobre ele. 58 LCSH (Library of Congress Subject Headings) - Designação dada a lista de cabeçalhos de assuntos da Biblioteca do Congresso Americano, adotada por um grande número de bibliotecas e serviços de catalogação. MARC (Machine-Readable Cataloging format) - Formato para intercâmbio de informações bibliográficas em fita magnética, definido pela ISO 2709. É o formato mais popular para a descrição bibliográfica de documentos. Metadados - São dados sobre dados. Descrevem os dados , o ambiente onde são manipulados, como são manipulados e para onde são distribuídos. NAA (Newspaper Association of America) - Associação de Editores de Jornais dos EUA que organiza e mantêm a NAA Classified Advertising Standards Task Force. NAA Classified Advertising Standards Task Force - Grupo do Departamento de Tecnologia da NAA encarregado de definir padrões para facilitar o intercâmbio eletrônico de anúncios classificados. OASIS (Organization for the Advancement of Structured Information Standards) Organização para o Avanço de Padrões de Informação Estruturados formada por um consórcio internacional e dedicada a promover a adoção dos padrões públicos (como SGML, HTML, XML, entre outros) pela comunidade de usuários da Web. Parsers - ferramentas de software que faz análise de texto que, a partir de uma gramática de definição de sua estrutura, extrai informações que servisão para outro módulo de software. Parsers são utilizados para a extração de dados de um documento XML, por exemplo. PICS - Platform for Internet Content Selection (Plataforma para Seleção de Conteúdo na Internet), é uma infraestrutura baseada em metadados que possibilita o gerenciamento de direitos de propriedade intelectual, privacidade, e conteúdo em páginas Web. 59 RDF (Resource Description Framework) - É uma especificação do W3C com a finalidade de criar um padrão para gerenciamento de metadados independente de plataforma. O RDF foi concebido para prover uma infra-estrutura que suporte metadados na generalidade das atividades baseadas na Web e utiliza-se da linguagem XML para tal fim. Semantic WEB Activity - Uma das ações desenvolvidas pelo W3C que tem como objetivo a criação de um ambiente de software que permita a cada usuário fazer o melhor uso dos recursos disponíveis na Web. Esta idéia é designada pelo W3C como "Semantic Web" e o RDF é um dos elementos deste ambiente. SGML (Standard General Markup Language) - Linguagem Padrão de Marcações Genéricas padronizada pela norma ISO 8879. Descreve um padrão para o uso de marcações descritivas mescladas a documentos e também fornece um método padrão para nomear as estruturas de um texto, definindo modelos hierárquicos para cada tipo de documento produzido. É uma metalinguagem. SGBD (Sistema Gerenciador de Banco de Dados) - Termo genérico para designar todo software responsável pelo gerenciamento (armazenamento e recuperação) dos dados em um Banco de Dados. Oracle, Informix, DB2 e SQL Server são exemplos de SGBDs. Spiders - ferramentas de software dos sistemas de busca na Web que atualizam sua base de dados através da navegação na rede a procura de novos dados. Style sheet – Folha de estilo - é um arquivo com comandos CSS (Cascading Style Sheets - conjunto de novas tags que ajudam a ter um melhor controle sobre o layout de páginas Web.) que vão definir o estilo de uma ou várias páginas Web. A vantagem do uso de style sheets é que com uma mudança em um único arquivo, pode-se alterar ao mesmo tempo várias páginas que usam as definições de estilo daquele style sheet. 60 tag - É um termo genérico usado para designar elementos de descrição de linguagens. Na linguagem HTML, por exemplo, para colocar uma palavra em negrito deve-se usar os tags <B> e </B> antes e depois da palavra. UML - A UML (Unified Modeling Language - Linguagem de Modelagem Unificada) é um padrão para modelagem de sistemas orientados a objetos. A idéia central deste modelo é fazer com que os arquitetos de sistemas trabalhem com Análise e Projeto Orientados a Objetos a partir de uma linguagem consistente para especificação, visualização, construção e documentação dos aspectos do software, bem como a utilizem para a modelagem do negócio. URI - (Uniform Resource Identifier) - o termo genérico para tipos de nomes e endereços da World Wide Web. URL - (Uniform Resource Locator) - localizador de endereços de páginas Web em toda a rede Internet, através de um browser. Inclui basicamente as seguintes informações: a) o protocolo utilizado (http, ftp, mailto,...) seguido de dois pontos; b) o nome do domínio, ou seja, o computador servidor onde a página está armazenada, antecedido de duas barras; c) o path (caminho) para a localização do arquivo relativo à página. W3C (World Wide Web Consortium - http://www.w3.org/) - É um consórcio formado por mais de 400 membros, formado em outubro de 1994, que tem como objetivo disciplinar e desenvolver o uso da WWW. O estabelecimento de padrões de linguagens voltadas para o desenvolvimento de aplicações na Web, como HTML e XML, tem sido uma de suas grandes contribuições. WWW (World Wide Web) - Literalmente, teia de alcance mundial. Baseada em hipertextos, integra diversos serviços Internet que oferecem acesso, através de hiperlinks, a recursos multimídia da Internet. Responsável pela popularização da rede, 61 que agora pode ser acessada através de interfaces gráficas de uso intuitivo, como o Netscape ou Mosaic, a Web possibilita uma navegação mais fácil pela Internet. XHTML (eXtensible HTML) - É uma linguagem já padronizada pelo W3C para a construção de páginas para a Web que combina as características da norma HTML 4.0 com a estrutura e flexibilidade do XML 1.0 em um formato simples. XML (eXtensible Markup Language) - Evolução do HTML. Linguagem extremamente flexível, onde o programador pode criar suas próprias tags. Seu objetivo é armazenar as informações de forma organizada. 62 8 – Referências bibliográficas ABITEBOUL, Serge et al. Gerenciando dados na WEB. Tradução de Mônica Cardia, Rio de Janeiro, Campus, 2000. ABORTEX. A Guide to SGML (Standard Generalized Markup Language) and Its Role in Information Management, An Arbortext SGML White Paper, Arbortext Inc, 1992, disponível on-line (http://www.arbortext.com/data/getting_started_with_SGML/getting_started_with_sgml. html) ALEXAKI, Sofia. Managing RDF Metadata for Community Webs. Iartigo apresentado no 2nd International Workshop on The World Wide Web and Conceptual Modelling (WCM'2000), Salt Lake City, USA, Out. 2000, disponível on-line (http://citeseer.nj.nec.com/alexaki00managing.html) BACA, Murtha et al. Introduction to Metadata: Pathways to Digital Information. Getty Information Institute, 1998. BERNERS-LEE, Tim et al. Web Architecture: Describing and Exchanging Data. W3C Note, 7 June 1999, disponível on-line (<http://www.w3.org/1999/06/07WebData>) BERTINO, Elisa, CATANIA, Barbara, ZARRI, Gian Piero. Intelligent Database Systems. Great Britain, ACM Press, 2001. BRITTON, Chris. IT Architectures and Milddleware: Strategies for Building Large, Integrated Systems. USA, Addison-Wesley, 2001. 63 BRICKLEY, D., GUHA, R.V.,Resource Description Framework (RDF) Schema Specification. W3C Candidate Recommendation, Mar 2000, disponível on-line (<http://www.w3.org/TR/2000/CR-rdf-schema-20000327>). BOSAK, Jon. XML, Java, and the future of the Web. Sun Microsystems, mar. 1997, disponível On-line (http://www.ibiblio.org/pub/sun-info/standards/xml/why/xmlapps.htm). CATHRO, W. Metadata: An Overview. Artigo apresentado no Standards Australia Seminar, August 1997, disponível on-line (<http://www.nla.gov.au/nla/staffpaper/cathro3.html>) CHAUDHRI, Akmal, Zicari Roberto. Succeeding with Object Databases: a practical look at today's implementations with Java and XML. USA, Jonh Wiley & Sons, Inc, 2001. FORSBERG, Kerstin, Dannstedt, L.. Extensible use of RDF in a Business Context. Artigo apresentado no WWW9 Amsterdam, Mai 2000, disponível on-line (http://www.viktoria.informatik.gu.se/~kerstinf/www9/ExtRDF.htm) GALNARES, Roberto. Metadata in the World Wide Web. Computer and Information Science Department, New Jersey Institute of Technology, jul 1999, disponível on-line (http://www.cis.njit.edu/~galnares/Metadata.html) GUHA, R. V., BRAY, Tim. Meta Content Framework Using XML. Textuality, 1997, disponível on-line (http://www.textuality.com/mcf/NOTE-MCF-XML.html); HEERY, Rachel. What Is ... RDF? Ariadne No. 14, March 1998, disponível on-line (http://www.ariadne.ac.uk/issue14/what-is/) JACOBS, Ian. About the World Wide Web Consortium (W3C). World Wide Web Consortium, Mar 2000, disponível on-line (<http://www.w3.org/Consortium/>) 64 KLYNE, Graham. Contexts for RDF Information Modelling. Content Technologies Ltd. Ago. 2000, disponível on-line (http://public.research.mimesweeper.com/RDF/RDFContexts.html) KLYNE, Graham. Information Modelling using RDF – Constructs for Modular Description of Complex Systems. Baltimore, 2000 LAGOZE, Carl. The Warwick Framework: A Container Architecture for Diverse Sets of Metadata. D-Lib Magazine, July/August 1996, disponível on-line (http://www.dlib.org/dlib/july96/lagoze/07lagoze.html); LASSILA, Ora; SWICK, Ralph R.. Resource Description Framework (RDF) Model and Syntax Specification. W3C recommendation, feb 1999, disponível on-line (<http://www.w3.org/TR/1999/REC-rdf-syntax-19990222>). LEINER, Barry M. at al. A Brief History of the Internet. The Internet Society (ISOC), Ago 2000, disponível on-line (<http://www.isoc.org/internet/history/brief.html>) MARCO, David. Building and Managing the Meta Data Repository: A full lifecycle Guide. USA, John Willwy & Sons, Inc, 2000. MEDEIROS, Norm. Making Room for MARC in a Dublin Core World. Online Inc, nov 1999, disponível on-line (<http://www.onlineinc.com/onlinemag/OL1999/medeiros11.html>) MILLER, James S. W3C and Digital Libraries. D-Lib Magazine, November 1996, disponível on-line (http://www.dlib.org/dlib/november96/11miller.html) MILLER, Eric. An Introduction to the Resource Description Framework. Bulletin of the American Society for Information Science 25, No. 1, nov. 1998, p. 15-19. 65 MILLER, Eric at al. Guidance on expressing the Dublin Core within the Resource Description Framework (RDF). Dublin Core Metadata Initiative, Jul 1999, disponível on-line (<http://www.ukoln.ac.uk/metadata/resources/dc/datamodel/WD-dc-rdf/>) MOHR, Stephen T. MOHR, Stephen F. Designing Distributed Applications With XML, ASP, IE5, LDAP and MSMQ. Birmingham, UK, Wrox Press Ltd, 1999. PITTS-MOULTIS, Natanya, BIRK, Cherly. XML Black Book. São Paulo, MAKRON Books, 2000. RICHMOND, Alan. Introduction to XHTML, with eXamples. Web Developer's Virtual Library, Fev. 2000, disponível on-line (http://www.wdvl.com/Authoring/Languages/XML/XHTML/). RUST, Goldfrey, BIDE, Mark. The <indecs> Metadata Framework. <indecs> Framework Ltd, Jun 2000, disponível on-line (<http://www.indecs.org/pdf/framework.pdf>) STAAB, Steffen et al. An extensible approach for Modeling Ontologies in RDF(S). No Knowledge Media in Healthcare: Opportunities and Challenges. Rolf Grütter (ed.). Idea Group Publishing, Hershey USA / London, UK. December 2001, disponível on-line (http://www.aifb.uni-karlsruhe.de/~sst/Research/Publications/Publications.htm) W3C. HyperText Markup Language Home Page. World Wide Web Consortium, Mar. 2001, disponível on-line (http://www.w3.org/MarkUp/) W3C. HTML 4.01 Specification. World Wide Web Consortium, Dez. 1999, disponível on-line (http://www.w3.org/TR/html4/). W3C. XML Schemas. World Wide Web Consortium, mar, 2001, disponível on-line (http://www.w3.org/XML/Schema). W3C. The Cambridge Communiqué. World Wide Web Consortium, out. 1999, disponível on-line (http://www.w3.org/TR/schema-arch); 66 W3C. Metadata Activity Statement. World Wide Web Consortium, out. 2000, disponível on-line (http://www.w3.org/Metadata/Activity); WATSON, Dennis G. .Brief History of Document Markup. Florida Agriculture Information Retrieval System. Oct. 1996, disponível on-line (<http://edis.ifas.ufl.edu/scripts/htmlgen.exe?DOCUMENT_AE038>); WILLIAMS, Kevin at al. XML Databases. Birmingham, UK, Wrox Press Ltd, 2000. 67