Para formalizar a representação dos diversos elementos que compõem uma ontologia é preciso utilizar linguagens que possam ser interpretadas por sistemas ou por pessoas. Sendo assim várias linguagens foram sugeridas para codificar uma ontologia.
Com o intuito de definir uma linguagem que pudesse ser utilizada para representar todo e qualquer domínio e permitindo o uso de diversas tecnologias desde o começo dos anos 80 várias linguagens foram propostas.
As linguagens utilizadas na especificação de ontologias podem ser divididas em três tipos: linguagens de ontologias tradicionais, linguagens padrão Web, e linguagens de ontologias baseadas na Web, conforme Tabela 3.
Tabela 3: tipos de linguagens Linguagens de Ontologias
Tradicionais
Linguagens Padrão Web Linguagens de Ontologias baseadas na Web CycL XML OIL Ontolingua RDF DAML+OIL F-Logic SHOE CML XOL OCML OWL Loom KIF
Fonte: tabela elaborada pela autora.
A partir da década de 80 várias propostas de linguagens surgiram para modelar ontologias dentre as quais segue:
KIF (Knowledge Interchange Format), baseada na lógica de primeira ordem trata-se de uma linguagem formal para troca de conhecimento entre sistemas computacionais (GRUBER, 1992; GENESERETH e FIKES, 1992).
Ontolingua foi criada em 1992 pelo Laboratório de Sistemas do Conhecimento da Universidade de Stanford com o propósito de especificar ontologias com uma semântica lógica clara (combinações de frames com lógica de primeira ordem). A Ontolingua é baseada na linguagem KIF (Knowledge Interchange Format) e também pode ser representada definindo termos baseados em quadros e orientados a objetos. Assim sendo esta linguagem permite a construção de ontologias usando expressões KIF somente; usando o vocabulário definido em Frame Ontology; ou usando as duas formas simultaneamente. Trata-se de uma das linguagens tradicionais mais expressivas para representar ontologias, permitindo representar conceitos, taxonomias de conceitos, relações n-árias, axiomas, instâncias e procedimentos (GRUBER, 1992).
F-Logic (Frame Logic) integra frames e lógica de primeira ordem. Trata-se de uma forma declarativa dos aspectos estruturais das linguagens baseadas em frames e orientadas a objetos identificando estes objetos, herança, tipos polimórficos, encapsulamento, dentre outros. Permite representar conceitos, taxonomias, relações binárias, instâncias, axiomas e regras (KIFER, LAUSEN e WU, 1995).
CML (Conceptual Modelling Language) é uma linguagem semi-formal, que foi proposta para a metodologia CommomKADS, na qual uma ontologia é definida através da especificação de conceitos, atributos, expressões, estruturas e relações, utilizando representação gráfica (SCHREIBER et al, 1994).
OCML permite a especificação de funções, relações e classes, instâncias e regras. Trata- se de uma linguagem que pode ser aplicada para representação de várias áreas do conhecimento como medicina, ciências sociais, memória corporativa, engenharias, aplicações Web, dentre outras (DOMINGUE et al, 1999).
LOOM, baseada em lógica de descrições. Permite representar conceitos, taxonomias, relações n-árias, funções, axiomas e regras (MACGREGOR e BATES, 1987; BRILL, 1993).
OML (Ontology Markup Language): é uma linguagem baseada em lógica descritiva e grafos conceituais, que permite a representação de conceitos organizados em taxonomias, relações e axiomas (KENT, 1999).
XML (Extensible Markup Language) é uma linguagem que permite a construção de documentos legíveis para seres humanos e que podem ser facilmente tratados por máquinas. Trata-se de um conjunto de regras para a definição de marcadores semânticos, que dividem um documento em partes identificáveis (HAROLD, 1999).
RDF (Resource Description Framework - Estrutura de Descrição de Recursos) foi desenvolvida pelo W3C (World Wide Web Consortium) e está baseada no formalismo de redes semânticas para descrever recursos Web, permitindo definir a descrição de recursos através de suas propriedades e valores (LASSILA e SWICK, 1999; CARROLL e KLYNE, 2004).
RDF Schema também desenvolvida pelo W3C utiliza primitivas baseadas em frames (BRICKLEY e GUHA, 1999). Esta linguagem possibilita definir taxonomias de recursos em termos de hierarquia de classes, ou seja, é uma extensão semântica do código RDF fornecendo mecanismos para descrever grupos de recursos e os relacionamentos existentes entre eles.
RDFS é a combinação de RDF e RDF Schema. É muito mais expressiva. Permite representação de conceitos, taxonomias de conceitos e relações binárias. Algumas máquinas de inferência têm sido criadas para esta linguagem, principalmente para checar as restrições.
OWL (Web Ontology Language) pode ser utilizada por aplicações que precisam processar o conteúdo da informação, ao invés de apenas disponibilizá-lo. Além disso, facilita a leitura de conteúdo Web suportado por XML, RDF e RDF-Schema, provendo um vocabulário adicional com uma semântica formal. Trata-se de uma descrição das propriedades e classes e suas relações de forma mais detalhada, como por exemplo, relações entre classes (disjunção), cardinalidade (UML), características de propriedades (simetria), dentre outras. Para a representação, utiliza a lógica descritiva para explicitação do conhecimento (ANTONIOU e VAN HARMELEN, 2004b).
OIL: proposta pelo projeto On-to-Knowledge foi desenvolvida sobre a sintaxe RDFs, considerando linguagens de ontologias baseadas em frames e tem seu formalismo
baseado em lógica de descrições. Permite verificar classificação e taxonomias de conceitos (FENSEL et al, 2001).
DAML (DARPA Agent Markup Language) + OIL: foi desenvolvida como uma extensão da XML e RDF com o objetivo de aumentar a interoperabilidade entre agentes de software para Web. Trata-se de uma linguagem desenvolvida por meio de primitivas de modelagem baseadas em linguagens lógicas (HORROCKS et al, 2001; DAVIES et al, 2002).
Visto que existem várias linguagens para a implementação de ontologias, várias ferramentas também foram propostas. Geralmente, estas ferramentas incluem documentação, importação e exportação de ontologias existentes (de diferentes formatos), visualização gráfica, bibliotecas e mecanismos de inferência. Algumas ferramentas populares para construção de ontologias são apresentadas como segue:
OilEd: editor simples que oferece as funcionalidades básicas para criação de ontologias. Esta ferramenta foi desenvolvida na Universidade de Manchester pelo Grupo de Gerenciamento de Informações. A ferramenta OilEd utiliza as linguagens OIL e DAML+OIL, além de gerar código em OIL e converter para RDF. A ferramenta também permite a verificação da consistência e classificação automática utilizando o paradigma baseado em quadros, mas não é considerado um ambiente completo para desenvolvimento de ontologias, já que não suporta o desenvolvimento em larga escala, a migração e a integração de ontologias, bem como seu versionamento, argumentação e muitas outras atividades que envolvem a construção de ontologias (BECHHOFER et al, 2001).
WebODE: desenvolvida no Laboratório de Inteligência Artificial da Universidade Técnica de Madri. Trata-se de um ambiente para engenharia ontológica que dá suporte à maioria das atividades de desenvolvimento de ontologias. A integração com outros sistemas é possível, importando e exportando ontologias de linguagens de marcação como XML, RDF(S), OIL, DAML + OIL, CARIN, F-logic, Jess, Prolog (ARPÍREZ et al, 2001).
WebOnto: ferramenta que possibilita a navegação colaborativa, criação e edição de ontologias, representadas na linguagem de modelagem OCML, conforme Figura 13. Permite aos usuários navegar e editar modelos de conhecimento na Web viabilizando o
gerenciamento de ontologias por interface gráfica, inspeção de elementos, verificação da consistência da herança e trabalho cooperativo (DOMINGUE et al, 1999).
Figura 13: Interface WebOnto – ferramenta colaborativa na Web
Fonte: http://people.kmi.open.ac.uk/domingue/sharing-ontologies/ - acesso dezembro/2015.
OntoEdit: ferramenta concentra-se nos principais passos para o desenvolvimento de ontologias, contemplando as atividades de especificação, refinamento e avaliação. Foi desenvolvida pela AIFB (Institut für Angewandte Informatik und Formale Beschreibungsverfahren) na Universidade de Karlsruhe, Alemanha (SURE et al, 2002). Possui uma arquitetura extensível baseada em plugins e permite a importação e exportação para Flogic, XML, RDF(S), DAML+OIL, (MAEDCHE, 2002). Existem versões da ferramenta disponíveis como OntoEdit Free e OntoEdit Professional. A interface da ferramenta OntoEdit é mostrada na Figura 14.
Figura 14: interface OntoEdit Free
Fonte: figura elaborada pela autora.
Protégé: trata-se de uma ferramenta gráfica de código aberto, utilizada para a construção de ontologia possibilitando a criação de bases de conhecimento independente da plataforma (escrito em Java, utiliza uma máquina virtual para execução em qualquer plataforma). Esta ferramenta possui uma interface intuitiva possibilitando aos desenvolvedores criar e editar ontologias de domínio, e contempla uma arquitetura modulada permitindo a inserção de novos recursos como visualizações alternativas, gerenciamento de múltiplas ontologias, uso de motores de inferência, importa e exporta ontologias em diversos formatos facilitando a reutilização e intercâmbio de ontologias, conforme Figura 15 (NOY et al, 2003; GENNARI et al, 2003).
Figura 15: Exemplo ontologia Protégé
Fonte: figura elaborada pela autora.
Após um levantamento sobre as ferramentas de desenvolvimento de ontologias com as respectivas características, uma tabela comparativa é apresentada na Tabela 4.
Neste projeto optou-se pelo uso do Protégé versão 4.3 para criação e edição de ontologias por se tratar de plataforma independente e extensível. Trata-se de uma ferramenta que possui uma biblioteca onde outros aplicativos podem acessar suas bases de conhecimento e a escolha desta ferramenta se deu pelo fato de ter uma comunidade extensa de usuários bem como documentos na literatura para redimir dúvidas, além das características apresentadas na Tabela 4.
Tabela 4: Comparação de ferramentas para desenvolvimento de ontologias Ferramentas
Características
OilEd WebOnto WebODE OntoEdit Protégé
Disponibilidade Gratuita e Aberta Gratuita Gratuita Gratuita Gratuita
Colaborativa Não Sim Sim Não (Collaborative Sim
Protégé) Classe gráfica /
propriedade taxonomia
Não Sim Sim Não Sim
Gerenciamento de
backup Não Yes Sim Não Não
Suporta crescimento
ontologias Não Sim/Não Sim Sim/Não Sim
Consultas Não Sim/Não Não Sim/Não Sim
Interface Usuário Sim Sim/Não Sim Sim/Não Sim
Verificação de
consistência Sim Sim Sim Sim Sim
Editor OWL Sim Sim Sim Sim Sim
Bibliotecas
(ontologia) Sim Sim Não Não Sim/Não
Arquitetura Standalone Cliente/Servidor (camadas) N-Tire Standalone Standalone
Importação DAML+OIL RDF(S), OMCL DAML+OIL, RDF(S), OWL RDF(S), DAML+OIL RDF(S), OWL Exportação DAML+OIL, RDF(S), OWL OMCL, Ontolingua, RDF(s), OIL RDF(S), DAML+OIL, OWL, CLIPS RDF(S), DAML+OIL, OWL RDF(S), OWL, CLIPS Armazenamento Files Files (JDBC) DBMS Files Files, DBMS (JDBC) Mecanismo de
regras FaCT - Prolog OntoBroker Pellet
Construção
inferências Sim Sim Não Sim/Não Sim
Implementação em Java Lisp Java Java Java
Nota: Sim indica um recurso suportado na língua, Não indica recursos não suportados, e Sim/Não indica características que precisam de mais explicações.