Ontologias aplicadas à Web semântica, p. 295 - 315 ONTOLOGIAS APLICADAS À WEB SEMÂNTICA Eurico Martins Ferreira Neto* Carlos Eduardo Cruzeiro Scaldaferri* Alessandreia Marta de Oliveira Julio** Marco Antônio Pereira Araújo*** RESUMO Os sites de busca através de palavras-chave ainda é um método bastante utilizado. Entretanto, essa técnica possui desvantagens e a principal delas é o sistema de pesquisa não saber o contexto do parâmetro de busca. Existe, portanto, uma necessidade de aproximar as máquinas da realidade humana. As ontologias podem auxiliar a relação entre os computadores e as pessoas, através da representação do conhecimento. Essa é a preocupação da Web Semântica, que visa fornecer estruturas e dar significado semântico ao conteúdo das páginas Web. Nesse contexto, estão surgindo mecanismos de busca baseados em ontologia, tendo como diferencial a qualidade na seleção das informações por meio de análises inteligentes de conteúdo. Diante disso, este artigo tem como propósito exemplificar a construção de uma ontologia, de forma a subsidiar diferentes atividades, como buscas na Web e apresentar o ONTOWEB, que utiliza ontologias para buscas, baseadas no significado dos termos utilizados nas pesquisas, caracterizando a área de Web Semântica. Palavras-chave: Ontologia. Web Semântica. Protégé. OntoWeb. ABSTRACT The keyword search system is a method which is still largely used. This technique, however, has disadvantages. The main disadvantage is the fact that the search engine does not know the context of the search parameter. Therefore, there is a need of making the engines get closer to human reality. And ontology can help improve this relation between computers and people, through the representation of knowledge. This is the concern of Semantic Web, that intends to supply structures and give semantic meaning to the content of web pages. In this * Graduação em Sistemas de Informação pelo CES/JF Professora do curso de Bacharelado em Sistemas de Informação pelo CES/JF do CES/JF, Mestre em Engenharia de Sistemas e Computação – COPPE/UFRJ *** Professor e Coordenador do curso de Bacharelado em Sistemas de Informação do CES/JF, Doutor em Engenharia de Sistemas e Computação – COPPE/UFRJ ** 295 Juiz de Fora, 2008 Eurico Martins Ferreira Neto, Carlos Eduardo Cruzeiro Scaldaferri... context, search engines based on ontology are being created. The advantage is the quality of the selection of information through intelligent analysis of content. Considering this trend, the main purpose of this article is to give an example of the construction of an ontology, in order to allow different activities, such as web searches and present the ONTOWEB, that uses ontologies for searches, based on the meaning of the given information request, what caracterizes the area of Semantic Web. Keywords: Ontology. Semantic Web. Protégé. OntoWeb. 1 INTRODUÇÃO Por não conhecerem a semântica das palavras-chave utilizadas em suas buscas, os sites de busca geralmente se limitam a fazer uma comparação textual das palavras com o conteúdo dos sites, mas o resultado muitas vezes não possui o conteúdo desejado, embora apresente as palavras-chave da pesquisa. As palavras podem ter significados diferentes, dependendo do contexto em que estão inseridas, mas as máquinas de busca não conhecem o significado desejado na pesquisa. Assim, o problema é como fazer com que as máquinas entendam o sentido das palavras, para efetuar a distinção entre as áreas onde um mesmo termo é utilizado. Dessa maneira, as respostas poderiam ser mais precisas, de forma a mostrar especificamente o termo no contexto onde está inserido, e disponibilizar apenas a informação que interessa ao usuário. Esta é a preocupação da Web Semântica, por visar fornecer estruturas e dar significado semântico ao conteúdo das páginas Web. Assim a elas serão capazes de representar associações entre coisas as quais, em princípio, poderiam não estar relacionadas (BREITMAN, 2005). Uma das formas de tornar possível a utilização das pesquisas que levam em conta a semântica é criar uma maneira de representar o sentido das palavras. Cada palavra tem um ou mais significados, dependendo do contexto e para estabelecer uma distinção entre estes temas, podem ser utilizadas ontologias (OLIVEIRA, 2003). Nesse contexto, estão surgindo alguns mecanismos de busca baseados em ontologia, tendo como diferencial a qualidade na seleção das informações por meio de análises inteligentes de conteúdo. Assim, uma ontologia é a descrição de conceitos e dos relacionamentos entre eles, estruturados em uma linguagem que permita, através dele, o entendimento posterior. Em outras palavras, ontologia 296 CES Revista, v. 22 Ontologias aplicadas à Web semântica, p. 295 - 315 pode ser utilizada para organizar os termos e seus significados de tal forma a construir uma rede semântica (OLIVEIRA, 2003). Diante disso, este artigo tem como propósito conceituar ontologia e mostrar uma das ferramentas mais utilizadas atualmente para sua criação, contextualizando sua utilização através da Web semântica. Além desta introdução, o artigo ainda conta com mais 5 seções. A seção 2 mostra definições de ontologia em algumas das áreas em que é utilizada. Na seção 3, são apresentadas as principais linguagens de representação de ontologias. A seção 4 apresenta um estudo de caso contendo a criação de um projeto de ontologia utilizando um editor específico para este fim. A seção 5 aborda os buscadores baseados em ontologias e, finalmente, a seção 6 apresenta as considerações finais. 2 ONTOLOGIA Uma ontologia pode ser definida como um vocabulário específico e relacionamentos usados para descrever certos aspectos de realidade, e um conjunto de suposições relativas ao significado das palavras. Entre vários outros esquemas e estruturas de classificação, incluindo, técnicas baseadas em palavras chave e taxonomia, ontologia é vista como sendo um esquema que fornece modelos de domínio precisos e mais completos (OUKSEL; SHETH, 1999). O termo ontologia teve sua origem na filosofia e hoje apresenta diversas definições nas diferentes áreas em que está sendo utilizado. Várias comunidades científicas utilizam o termo ontologia, mas não se tem uma definição genérica para o termo. Na filosofia é uma disciplina e significa uma explicação sistemática da existência: o termo ontologia foi adotado com o intuito de desvendar o significado das coisas do mundo, procurando descrever a natureza das coisas. Aristóteles definiu ontologia como a ciência da existência, diferente das ciências especiais, por investigar uma categoria da existência e suas determinações. Em outras palavras, é a ciência que estuda o ser enquanto ser. Considera que ontologia diz respeito a todas as espécies de existência e aos atributos relacionados a essa existência. Já há muito tempo, filósofos têm usado ontologias para tentar descrever domínios naturais e a existência dos seres e coisas em si (GUARINO; GIARRETA, 1995). Na Inteligência Artificial (IA), ontologias têm um caráter um pouco 297 Juiz de Fora, 2008 Eurico Martins Ferreira Neto, Carlos Eduardo Cruzeiro Scaldaferri... distinto do apresentado pela filosofia, sendo usadas para descrever domínios já consagrados, como Medicina, Engenharia e Direito, em que é possível saber o significado projetado das coisas (FENSEL, 2001). Assim, com uma ontologia em IA, busca-se é firmar um acordo sobre o vocabulário do domínio de interesse, a ser partilhado por agentes que conversam sobre ele. Em Banco de Dados e Engenharia de Software, ontologia é uma teoria sobre um domínio que especifica um vocabulário de entidades, classes, propriedades e funções; é um conjunto de relações que amarra esse vocabulário. Engloba todos os conceitos definidos pela ontologia e é, pois, mais completa. Esses conceitos são explicitamente definidos e representados de forma a ser compartilhados, e possuem restrições expressas por axiomas que restringem o significado dos termos (FIKES; FARQUHAR, 1999). Para o contexto deste trabalho, foi utilizada a última definição cujos aspectos da ontologia são considerados descrição parcial projetada, a fim de ser compartilhada na comunidade que concorda com a sua definição, e para o fim específico de desenvolvimento de software em um dado domínio. 3 LINGUAGENS DE REPRESENTAÇÃO DE ONTOLOGIAS Algumas ferramentas trabalham com a construção de ontologias e, para isso, utilizam linguagens de representação (OLIVEIRA, 2003). Várias linguagens já foram criadas e dentre elas se destacam: Ontolingua (FARQUHAR; FIKES; RICE, 1996), KIF - Knowledge Interchange Format (GENESERETH; FIKES, 1992), OIL - Ontology Inference Layer (FENSEL et al., 2000), DAML - DARP Agent Markup Language (ANKOLEKAR et al., 2001), DAML+OIL (GIL; RATNAKAR, 2002) e OWL - Web Ontology Language (OWL, 2008). O objetivo principal da criação dessas linguagens de representação é poder estabelecer um padrão que armazena a estrutura da ontologia, para vários aplicativos terem acesso a ela e, assim, possam desvincular a ontologia da ferramenta que a criou (OLIVEIRA, 2003). Dentre a ferramentas, destaca-se o editor Protégé, que está em sua versão 3.2, sendo uma ferramenta gratuita muito utilizada para a edição de ontologias, disponível em http://protege.stanford.edu/. 298 CES Revista, v. 22 Ontologias aplicadas à Web semântica, p. 295 - 315 4 CRIAÇÃO DE UM PROJETO DE ONTOLOGIA A seguir é apresentada a criação de uma ontologia denominada Família, utilizando o editor de ontologias Protégé, cuja a linguagem é OWL, que atualmente é padrão na descrição de ontologias. A idéia é criar uma ontologia simples e de fácil compreensão, contendo os termos relacionados à família no que diz respeito ao grau de parentesco. Definida a ontologia, esta pode ser utilizada, por exemplo, pelos sites de busca, com o intuito de melhorar os resultados das buscas realizadas. Ao iniciar o Protégé abre-se uma janela questionando o que se deseja fazer: abrir ou criar um novo projeto (ILUSTRAÇÃO 1). Neste caso a opção a ser escolhida é Create New Project. ILUSTRAÇÃO 1- Criação de um Novo Projeto Além disso, deve-se selecionar a opção de formato do projeto OWL/RDF Files, por ser o padrão utilizado atualmente, e clicar no botão Next. Para finalizar a criação do projeto, devem ser mantidas as opções default, nos demais passos definidos pelo Protégé, a fim de entre outras coisas, escolher a linguagem e o tipo de interface. A ferramenta permite que a qualquer momento as escolhas sejam modificadas. Para salvar o projeto deve-se clicar sobre o menu File/Save Project. Ao salvar o projeto pela primeira vez, uma janela é aberta (ILUSTRAÇÃO 2), para a escolha do local de armazenamento dos arquivos gerados pela ferramenta. O primeiro campo, Project, indica o endereço e o nome do arquivo “.pprj”, onde 299 Juiz de Fora, 2008 Eurico Martins Ferreira Neto, Carlos Eduardo Cruzeiro Scaldaferri... são armazenadas as informações do projeto e o segundo, OWL file name or URL, é referente ao arquivo “.owl”, onde é armazenada a ontologia no formato OWL. ILUSTRAÇÃO 2 - Passos para Salvar o Projeto 4.1 A INTERFACE DO PROTÉGÉ A interface e os recursos do Protégé variam de acordo com o formato de projeto escolhido. Como exemplo adotou-se o formato OWL Files e, por isso, o estudo de caso apresenta somente as interfaces e os recursos do Protégé para este formato (ILUSTRAÇÃO 3). ILUSTRAÇÃO 3 - Janela principal 300 CES Revista, v. 22 Ontologias aplicadas à Web semântica, p. 295 - 315 A janela é composta de cinco abas que estão descritas a seguir: OWLClasses: através desta aba é possível observar e editar as classes · da ontologia e sua hierarquia; · Properties: permite visualizar e editar todas as propriedades criadas para a ontologia; · Forms: exibe todos os formulários criados automaticamente pelo Protégé, de acordo com as classes e propriedades definidas; · Individuals: possibilita criar e editar as instâncias das classes; · Metadata: os recursos dessa aba não são atingidos por este artigo. 4.2 CRIAÇÃO DAS CLASSES O Protégé possui uma classe interna, chamada owl:Thing a partir da qual as demais classes são criadas. Para criar a primeira classe dessa ontologia, devese deixar ativa a aba OWLClasses, selecionar a classe owl:Thing, e clicar sobre o botão Create subclass. Toda classe criada deve ser subclasse de owl:Thing. Com a classe criada, é possível substituir o nome gerado pelo nome que desejar através da aba Name da janela Class Editor. Para seguir com o exemplo de ontologia deste artigo, deve-se substituir o nome gerado para a classe, por Pessoa, conforme a (ILUSTRAÇÃO 4). ILUSTRAÇÃO 4 - Edição do Nome da Classe Para criar outras classes, deve-se selecionar a classe a partir da qual se deseja criar uma subclasse ou uma classe de mesmo nível e escolher o botão equivalente. Para uma subclasse, clicar sobre o botão Create subclass, mostrado anteriormente, e para criar uma classe de mesmo nível, sobre o botão 301 Juiz de Fora, 2008 Eurico Martins Ferreira Neto, Carlos Eduardo Cruzeiro Scaldaferri... Create sibling class. Para excluir uma classe, deve-se primeiro selecioná-la e depois clicar sobre o botão Delete class. Assim, a fim de construir a ontologia proposta neste artigo, devem-se criar novas classes resultando na estrutura apresentada na (ILUSTRAÇÃO 5). ILUSTRAÇÃO 5 - Estrutura Inicial da Ontologia Família Uma classe pode ter mais de uma superclasse. Para isso acontecer é preciso indicar quais seriam as demais superclasses dela. Como exemplo, deve-se fazer com que a classe Filho se torne também subclasse da classe Filhos. Inicialmente, deve-se selecionar a classe Filho e em seguida, selecionar a linha Necessary, que está no campo Asserted Conditions (conforme explicado no item de criação de condições para as classes). O próximo passo é clicar sobre o botão Add named class. Uma nova janela é aberta para escolha da outra superclasse, no caso, a classe Filhos. Como resultado, a classe Filho agora tem como superclasse tanto a classe Homem, quanto a classe Filhos (ILUSTRAÇÃO 6). 302 CES Revista, v. 22 Ontologias aplicadas à Web semântica, p. 295 - 315 ILUSTRAÇÃO 6 - Definição de mais uma Superclasse para a Classe Filho Seguindo novamente estes passos, a nova estrutura da ontologia de família deve ser a apresentada na ILUSTRAÇÃO 7. ILUSTRAÇÃO 7 - Nova Estrutura da Ontologia Família 303 Juiz de Fora, 2008 Eurico Martins Ferreira Neto, Carlos Eduardo Cruzeiro Scaldaferri... 4.3 CRIAÇÃO DE PROPRIEDADES PARA UMA CLASSE Para criar uma propriedade a uma classe, deve-se deixar ativa a aba OWLClasses e selecionar a classe (neste exemplo, Pessoa) à qual deseja-se criar Create datatype a propriedade. O próximo passo é clicar sobre o botão property. O Protégé abre uma nova janela para edição da propriedade, sendo possível alterar, entre outras coisas, o nome, o tipo e o domínio. Seguindo o exemplo, deve-se criar para a classe Pessoa, uma propriedade chamada Nome e do tipo String (ILUSTRAÇÃO 8). ILUSTRAÇÃO 8 - Propriedade de tipo de dados O Protégé ainda pode criar um outro tipo de propriedade, as Object properties, que possuem como opção o tipo classe ou instância de classe. Para definir uma propriedade de objeto, deve-se clicar sobre o botão Create object property. A ferramenta abre uma nova janela para edição 304 CES Revista, v. 22 Ontologias aplicadas à Web semântica, p. 295 - 315 da propriedade e, como exemplo, deve-se criar a propriedade Tem_Sexo e sua abrangência (Range) deve conter somente a classe Sexo, o que indica que a propriedade deve ser preenchida com itens de uma classe especificada através do campo Range. Para adicionar uma propriedade já existente a uma classe deve-se deixar Add this class to the domain of ativa a aba OWLClasses e clicar sobre o botão properties. Uma janela se abre para escolha da propriedade desejada. Seguindo os passos acima, deve-se adicionar a propriedade Nome à classe Sexo, conforme mostra a ILUSTRAÇÃO 9. ILUSTRAÇÃO 9 - Propriedade do Tipo Objeto Seguindo o exemplo, devem ser criadas as propriedades definidas na Tabela 1, cujo atributo Functional indica o sentido da relação. 305 Juiz de Fora, 2008 Eurico Martins Ferreira Neto, Carlos Eduardo Cruzeiro Scaldaferri... TABELA 1 – Regras para criar as propriedades Classe Filhos Filhos Pais Propriedade TemMãe TemPai Tipo Instance Instance Range Mãe Pai Functional Checado Checado TemFilhos Instance Filhos Não checado 4.4 CRIAÇÃO DE DISJUNÇÕES ENTRE CLASSES O Protégé permite a declaração de disjunções entre classes. Para criar uma disjunção, deve-se deixar a aba OWLClasses ativa e selecionar uma das classes, por exemplo Homem para que ela seja disjunta da classe Mulher. Depois, deveAdd disjoint class para escolher a classe disjunta, no se clicar sobre o botão exemplo, a classe Mulher (ILUSTRAÇÃO 10). ILUSTRAÇÃO 10 - Seleção da Classe Disjunta 306 CES Revista, v. 22 Ontologias aplicadas à Web semântica, p. 295 - 315 4.5 CRIAÇÃO DE INSTÂNCIAS DE UMA CLASSE O Protégé permite ainda a criação de instâncias de classes que podem ser utilizadas, por exemplo, para a criação de condições, conforme serão mostradas mais adiante. Para criar uma instância, deve-se deixar ativa a aba Individuals e selecionar a classe (neste exemplo, Sexo) para a qual se deseja criar uma Create instance e instância. Com a classe selecionada, clica-se sobre o botão preenchem-se os campos referentes aos atributos da classe (ILUSTRAÇÃO 11). ILUSTRAÇÃO 11 - Criação de uma Instância O nome visível de cada instância é configurado para a propriedade Name presente em todas as classes, mas pode ser alterado, a fim de facilitar a referência às instâncias. Para isso, deve-se clicar sobre o botão Menu e escolher o novo campo de exibição (ILUSTRAÇÃO 12). 307 Juiz de Fora, 2008 Eurico Martins Ferreira Neto, Carlos Eduardo Cruzeiro Scaldaferri... ILUSTRAÇÃO 12 - Alteração do Campo de Exibição Como exemplo, seguindo os passos acima, deve-se criar as instâncias representadas na Tabela 2. Para excluir uma instância, é necessário primeiro Delete instance. selecioná-la e, depois, clicar sobre o botão TABELA 2 - Definição de instâncias Classe Sexo Sexo Campo Nome Nome Valor Feminino Masculino A ILUSTRAÇÃO 13 mostra o resultado obtido a partir da criação das instâncias da Tabela 2. ILUSTRAÇÃO 13 - Instâncias da Classe Sexo 308 CES Revista, v. 22 Ontologias aplicadas à Web semântica, p. 295 - 315 4.6 CRIAÇÃO DE CONDIÇÕES PARA AS CLASSES É possível definir condições para uma instância pertecer a uma classe. Essas condições necessárias (Necessary), devem ser atendidas para que a instância pertença a uma classe determinada. Existem, também, as condições necessárias e suficientes (Necessary and Sufficient), indicando que se a instância atende a todas as condições de uma classe específica, então esta instância pertence à classe. Essa condição deve ser criada, a fim de deixar ativa a aba OWLClasses e de selecionar a classe para a qual se pretende criar a condição. Como exemplo, após selecionar a classe Homem, deve-se clicar sobre a linha Necessary, encontrada Create no campo Asserted Conditions, e criar a condição clicando no botão restriction (ILUSTRAÇÃO 14). ILUSTRAÇÃO 14 - Primeiros passos para criar uma condição Em seguida, deve-se indicar que a propriedade TemSexo deve ter valor Masculino (ILUSTRAÇÃO 15). O mesmo deve ser feito para a classe Mulher com o valor Feminino. ILUSTRAÇÃO 15 - Escolha da Condição a ser Criada 309 Juiz de Fora, 2008 Eurico Martins Ferreira Neto, Carlos Eduardo Cruzeiro Scaldaferri... A condição criada aparece no campo Asserted Conditions referente a cada uma das classes. A Ilustração 16 mostra o resultado para a classe Homem. ILUSTRAÇÃO 16 - A Condição Criada para a Classe Homem 4.7 GERAÇÃO DE CÓDIGO A ferramenta Protégé é capaz de gerar códigos fonte de ontologias seguindo algumas linguagens. Neste projeto da ontologia Família, a ferramenta foi utilizada seguindo o formato de projeto OWL e, dessa forma, foi gerado automaticamente um arquivo com o código fonte da ontologia na linguagem OWL (Familia.owl). A Ilustração 17 apresenta um fragmento do código gerado, onde são definidas as classes Homem e Mulher como sendo subclasses de Pessoa bem como a relação de disjunção entre Homem e Mulher. O Protégé permite a exportação dos projetos para outros formatos, de acordo com a linguagem escolhida. Possui ainda o recurso de gerar os arquivos HTML a partir do projeto de ontologia. Para isso, deve-se clicar sobre o menu File/Export to Format/HTML. O Protégé abre uma janela para escolha do diretório de destino dos arquivos HTML e de quais são as classes raízes para a exportação. As classes raízes são as classes a partir das quais o Protégé gera os arquivos HTML. Ao escolher uma classe como raiz, são exportadas todas as suas subclasses. Portanto, para se geriu os arquivos HTML de toda a ontologia, deve-se selecionar a classe owl:Thing. Existe também a possibilidade de escolher se as instâncias das classes serão exportadas ou não. Para isso, deve ser marcada a opção Show Instances. ILUSTRAÇÃO 17 - Fragmento de Código da Ontologia Família 310 CES Revista, v. 22 Ontologias aplicadas à Web semântica, p. 295 - 315 5 BUSCADORES BASEADOS EM ONTOLOGIAS Ontologias atualmente vêm ganhando destaque por sua utilização na Web (BREITMAN, 2005). A novidade agora são os Ontobuscadores, isto é, buscadores baseados em ontologias, que objetivam melhorar o resultado das buscas (ONTOWEB, 2008). A estratégia desses buscadores é usar ontologias que formam uma rede pré-existente de conceitos inter-relacionados e de seus significados, indicando ao sistema a semântica associada aos termos. Um exemplo disso é o ONTOWEB®, focado no cenário de Governo Eletrônico contextualizando as ontologias no processo de recuperação, expandindo os conceitos utilizados na pesquisa e identificando seu contexto, sendo possível localizar os documentos mais adequados à demanda solicitada (ONTOWEB, 2004). A utilização de ontologias permite ao buscador ativar uma sistemática completamente inovadora na localização de documentos, por considerar o contexto do assunto que está sendo pesquisado, proporcionando buscas mais precisas e detalhadas. A Ilustração 18 exibe uma pesquisa efetuada no ONTOWEB com a palavra-chave “poluição”. O resultado desta pesquisa exibe não apenas as informações relacionadas à palavra-chave “poluição”. Como pode ser observado, são também recuperados documentos que contenham outras palavras relacionadas semanticamente, como por exemplo: “chuvas ácidas”, “danos ambientais” e “poluição dos rios” (ILUSTRAÇÃO 19). ILUSTRAÇÃO 18 - O site OntoWeb 311 Juiz de Fora, 2008 Eurico Martins Ferreira Neto, Carlos Eduardo Cruzeiro Scaldaferri... ILUSTRAÇÃO 19 - Resultado Parcial da Busca no ONTOWEB Esta é a base de uma ontologia: armazenar os conceitos e as relações entre os termos com o objetivo de representar o conhecimento. Os objetos do mundo real contêm relações implícitas. Como é possível notar intuitivamente, por exemplo, quando se fala em poluição, os seres humanos são capazes de perceber a ela se relacionam termos como chuvas ácidas, danos ambientais, poluição dos rios. Essas relações também devem ser representadas. De outra forma não seria possível para uma máquina estabelecer uma similaridade entre os termos. 6 CONSIDERAÇÕES FINAIS Existe uma necessidade em constante crescimento de aproximar as máquinas da realidade humana. As ontologias disponibilizam a possibilidade de auxiliar a relação entre os computadores e as pessoas, através da representação 312 CES Revista, v. 22 Ontologias aplicadas à Web semântica, p. 295 - 315 do conhecimento. Este artigo apresenta, em fim, a construção de uma ontologia no sentido de exemplificar seu processo de construção, de forma a subsidiar diferentes atividades, como buscas na Web baseadas em ontologias. Nesse sentido, foi apresentado o site ONTOWEB, que utiliza ontologias para buscas baseadas no significado dos termos utilizados nas pesquisas, caracterizando a área de Web Semântica. Artigo recebido em: 08/09/2008 Aceito para publicação: 19/09/2008 313 Juiz de Fora, 2008 Eurico Martins Ferreira Neto, Carlos Eduardo Cruzeiro Scaldaferri... REFERÊNCIAS ANKOLEKAR, A.; BURSTEIN, M.; HOBBS, J.; LASSILA, O.; MARTIN, D.; MCILRAITH, S.; NARAYANAN, S.; PAOLUCCI, M.; PAYNE, T.; SYCARA, K.; ZENG, H. DAMLS: Semantic Markup for Web Services, Proceedings of the First Semantic Web Working Symposium (SWWS’01). California: Stanford University, USA, 2001. p. 411-430. BREITMAN, K. Web semântica: a internet do futuro. São Paulo: LTC, 2005. FARQUHAR, A.; FIKES, R.; RICE, J. The ontolingua server: a tool for collaborative ontology construction. Relatório Técnico, Knowledge Systems Laboratory, Stanford, CA, 1996, Disponível em: < http://www.eda.org/rassp/documents/atl/ KSL_96a.pdf >. Acessado em: 07 jul. 2009. Fensel, D. Ontologies: a silver bullet for knwledge management e electronic commerce. [S.L]: Springer, 2001. FENSEL, D.; HORROCKS, I.; VAN HARMELEN, F.; DECKER, S.; ERDMANN, M.; KLEIN, M. OIL in a Nutshell. WORKSHOP ON APPLICATIONS OF ONTOLOGIES E PROBLEM-SOLVING METHODS, 14th, EUROPEAN CONFERENCE ON ARTIFICIAL INTELLIGENCE ECAI’00. Proceedings… Berlin, ago. 2000. FIKES, R.; FARQUHAR, A. Distributed Repositories of Highly Expressive Reusable Ontologies. IEEE Intelligent Systems & their applications, v. 14, n. 2, p. 73-79, 1999. GENESERETH, M. R.; FIKES, R.E. Knowledge Interchange Format, version 3.0, Reference Manual. Relatório Técnico, Stanford, v. 92, n. 1, 1992. GIL, Y.; RATNAKAR, V. A Comparison of (Semantic) Markup Languages. INTERNATIONAL FLAIRS CONFERENCE, SPECIAL TRACK ON SEMANTIC WEB, 15th Proceedings… Pensacola, maio, 2002. 314 CES Revista, v. 22 Ontologias aplicadas à Web semântica, p. 295 - 315 GUARINO, N.; GIARRETA, P. Ontologies e Knowledge Bases: towards a terminological clarification. In: MARS, N. J. I. (Ed.). Towards Very Large Knowledge Bases: knowledge building e knowledge sharing. Amsterdan: IOS Press, 1995. p. 25-32. OLIVEIRA, A. M. GOS: Serviços de ontologia na integração de bases de dados, 2003. Dissertação (Mestrado em Sistemas de Informação) - COPPE/UFRJ, Programa de Engenharia de Sistemas, Rio de Janeiro, 2003. ONTOWEB: ferramenta informacional de Governo Eletrônico. [2006]. Disponível em: <http://www.ontoweb.com.br/analise/SobreOntoWeb.htm>, Acesso em: 20 ago. 2008. OUKSEL, A. M.; SHETH, A. Semantic Interoperability in Systems Information Global. SIGMOD Record, v. 28, n. 1, 1999. OWL - Web Ontology Language. 10 fev. 2004. Disponível em: <http://www. w3.org/TR/owl-features/>, Acesso em: ago. 2008. 315 Juiz de Fora, 2008