3 CONHECIMENTO E ONTOLOGIAS
3.7 Linguagens para Representação de Ontologias
que sobraram da lista de termos do Passo 3 provavelmente são propriedades. Para cada propriedade na lista, são determinadas quais classes ela descreve. Todas as subclasses de uma classe herdam as propriedades desta classe.
Passo 6 - Definir os valores das propriedades. Propriedades podem descrever o tipo de valor, valores permitidos, o número de valores (cardinalidade). Uma propriedade pode ter como tipo um valor que é uma instância, cujo escopo é uma classe específica. Aqui são descritas diversas facetas comuns, tais como: cardinalidade, que define quantos valores uma propriedade pode ter; tipo de valor, que descreve quais os tipos de valores pode preencher a propriedade, podendo ser string (é o tipo mais simples que é usado para propriedades como nome: o valor é um string simples); número (descreve propriedades com valores numéricos). Em algumas linguagens, como OWL, é permitido utilizar tipos de dados no preenchimento de valores de propriedades. Os tipos de dados mais comuns são: cadeia de caracteres, números, booleanos e listas enumeradas de elementos.
Passo 7 - Criar instâncias. O último passo é criar instâncias individuais das classes na hierarquia. Para isto é necessário: escolher uma classe, criar uma instância dessa classe e preencher os valores das propriedades.
Neste trabalho, foi utilizado o método 101 proposto por Noy e McGuinness (2001) para auxiliar nas etapas de desenvolvimento da ontologia. Esse método foi escolhido devido à simplicidade de suas etapas de desenvolvimento e facilidade em seu entendimento.
predicados de cálculo de primeira ordem. Permite representar conceitos, taxonomias de conceitos, relações n-árias, axiomas, instâncias e procedimentos. É considerada a mais expressiva de todas as linguagens para representar ontologias;
LOOM: desenvolvida em 1992, é baseada em lógica de descrições e regras de produção, fornece a classificação automática de conceitos e pode representar taxonomias de conceitos, relações n-árias, funções, axiomas e regras de produção.
OCML (Operational Conceptual Modeling Language): desenvolvida em 1993, é considerada uma “Ontolingua Operacional”, pois adiciona componentes tais como regras dedutíveis e de produção.
F-Logic (Frame Logic): desenvolvida em 1995, combina frames e lógica de primeira ordem. Permite a representação de taxonomias de conceitos, relações binárias, funções, instâncias, axiomas e regras dedutíveis.
As linguagens baseadas em XML são (Linhalis, 2007; Rios, 2005):
RDF (Resource Description Framework): Desenvolvida pela W3C (the Word Wide Web) como uma linguagem baseada em rede semântica para descrever recursos da web. Possui um modelo de representação simples e flexível.
RDF-Schema (Resource Description Framework Schema Language): também desenvolvida pela W3C como uma extensão do RDF com primitivas baseadas em frames.
RDF(S): é a combinação da RDF com a RDF-Schema e permite representação de conceitos, taxonomias de conceitos e relações binárias.
OIL (Ontology Interchange Language): combina primitivas de modelagem das linguagens baseadas em frames com a semântica formal.
DAML+OIL (DARPA Agent Markup Language + OIL): é uma linguagem sucessora da OIL e incorpora aspectos da linguagem DAML e OIL, permitindo a representação de taxonomias de conceitos, relações binárias, funções e instâncias.
OWL (Web Ontology Language): é uma revisão da DAML+OIL. Possui mais facilidade para expressar significados e semântica que XML, RDF e RDF(S). A OWL está dividida em três sub-linguagens, de acordo com sua expressividade, sendo OWL Lite, OWL DL e OWL Full.
Existem linguagens com suporte gráfico (Rios, 2005):
LINGO (Linguagem Gráfica para descrever Ontologias): tem como objetivo garantir independência de semântica numa linguagem gráfica, facilitando a comunicação no
domínio de interesse. Suas notações capturam certos axiomas de forma implícita, pois utiliza diferentes tipos de notação para diferentes tipos de associação (FALBO, 1998).
CML (Conceptual Modelling Language): é uma linguagem semiformal, que foi proposta para a metodologia CommomKADS, na qual uma ontologia é definida por meio da especificação de conceitos, atributos, expressões, estruturas e relações, utilizando representação gráfica.
Linhalis (2007) resume as características das linguagens para representação de ontologias em uma tabela adaptada de Corcho et al. (2003), a qual está representada na Tabela 3.2. O símbolo „+‟ significa que a linguagem possui a característica em questão, o símbolo „-‟
significa que a linguagem não possui a característica e o símbolo „±‟ significa que a linguagem não possui a característica diretamente, mas pode representá-la usando algum recurso adicional.
Tabela 3.3. Características das Linguagens para Representação de Ontologias. Fonte:
(Linhalis, 2007, p. 48)
Características Onto
lingua OCML LOOM
F-LOGIC RDFS OIL DAML+
OIL OWL
Sobre Conceitos
Metaclasses + + + + + - - +
Documentação + + + +/- + + + +
Sobre Atributos
Atributos de instância + + + + + + + +
Atributos de classes + + + + - + + +
Atributos globais +/- +/- + - + + + +
Sobre Facetas
Valores default - + + + - - - +
Restrições de tipos + + + + + + + +
Cardinalidade + + + +/- - + + +
Documentação do slot + + + - + + + +
Sobre Taxonomias
Subclasses + + + + + + + +
Classes disjuntas + +/- + +/- - + + +
Não subclasse +/- - +/- - - + + +
Sobre Relações
Relações n-árias + + + +/- +/- +/- +/- +/-
Restrições de tipos + + + + + + + +
Sobre Axiomas
Lógica de primeira
ordem + + + + - +/- +/- +/-
Axiomas embutidos + + + - - - - -
Sobre Instâncias
Instâncias de conceitos + + + + + + + +
Fatos + + + + + + + +
Regras embutidas - + + - - - - +/-
Para escolher uma linguagem, é importante considerar sua facilidade de integração, compreensão e popularidade, que contribuem efetivamente no desenvolvimento da ontologia.
3.7.1 OWL - Ontology Web Language
Neste trabalho, foi utilizada a linguagem OWL que, como visto anteriormente, pode ser classificada em três espécies de acordo com a sublinguagem utilizada: OWL-Lite, OWL-DL e Full. A característica principal de cada sublinguagem é a sua expressividade: a OWL-Lite é a menos expressiva; a OWL-Full é a mais expressiva; a expressividade da OWL-DL está entre as duas, entre a OWL-Lite e a OWL-Full.
OWL-Lite: é a sublinguagem sintaticamente mais simples. Destina-se a situações em que apenas são necessárias restrições e uma hierarquia de classe simples. Por exemplo, a OWL-Lite pode fornecer uma forma de migração para tesauros existentes, bem como de outras hierarquias simples.
OWL-DL: é mais expressiva que a OWL-Lite e baseia-se em lógica descritiva, um fragmento de Lógica de Primeira Ordem passível, portanto, de raciocínio automático.
É possível assim computar automaticamente a hierarquia de classes e verificar inconsistências na ontologia. Este trabalho utilizou a sublinguagem OWL-DL.
OWL-Full: é a sublinguagem OWL mais expressiva e destina-se a situações onde alta expressividade é mais importante do que garantir a capacidade de decisão ou completude da linguagem. Não é possível efetuar inferências em ontologias OWL-Full.
Embora muitos fatores interfiram na escolha da sublinguagem adequada, existem algumas regras básicas:
Entre OWL-Lite e OWL-DL, é necessário saber se os constructos da OWL-Lite são suficientes;
Entre OWL-DL e OWL-Full, é preciso saber se é importante realizar inferências na ontologia, ou se é importante usar funcionalidades altamente expressivas ou funcionalidades de modelagem, tais como as metaclasses (classes de classes).
O plug-in do Protégé-OWL não faz distinção entre a edição de ontologias OWL-Lite e OWL DL. Também não oferece a opção de restringir a ontologia sob edição para OWL-DL, nem permite a expressividade da OWL-Full.
As ontologias em OWL têm componentes similares à estrutura do Frame-based
Protégé, mas a terminologia usada para descrever tais componentes é um pouco diferente da utilizada no Protégé-Frames. A correspondência entre as duas nomenclaturas é apresentada na Tabela 3.3.
Tabela 3.4. Correspondência entre Nomenclaturas. Fonte: (Horridge et al., 2005) Protégé-Frames Protégé-OWL
Instances (Instâncias) Indivíduos (individuals)
Slots (Slots) Propriedades (Properties) Classes (Classes Classes (Classes)
Indivíduos: Indivíduos representam objetos no domínio de interesse (ou domínio do discurso). Uma diferença importante entre Protégé e OWL é que esta última não usa o UNA-Unique Name Assumption. Isto significa que dois nomes diferentes podem remeter ao mesmo indivíduo. Em OWL deve-se declarar explicitamente que os indivíduos são os mesmos, ou diferentes uns dos outros. Os indivíduos são também conhecidos como instâncias e podem ser referenciados como Instâncias de Classes.
Propriedades: são relações binárias (relações que contém duas “coisas”) entre indivíduos, ou seja, as propriedades ligam dois indivíduos. As Propriedades podem também ser inversas. As propriedades podem limitar-se a um valor único: são as Functional Properties (propriedades funcionais). Elas também podem ser Transitive Properties (Propriedades transitivas) ou Symetric Properties (Propriedades Simétricas). As Propriedades são equivalentes aos slots no Protégé-Frames. Também são conhecidas como papéis (roles) em lógica descritiva, e relações (relationships) em UML-Unified Modeling Language e em outras abordagens de orientação a objeto. Em muitos formalismos, como no GRAIL, elas são denominadas de atributos.
Classes: são conjuntos que contêm os indivíduos. Elas são descritas formalmente (descrições matemáticas) de forma que sejam apresentados os requisitos para a participação na classe. As classes podem ser organizadas em hierarquias superclasse-subclasse, também conhecidas como taxonomias. Subclasses são especializações de suas superclasses. Uma característica do OWL-DL é que o relacionamento superclasse-subclasse pode ser computado automaticamente por um Mecanismo de Inferência (MI). O termo conceito é as vezes usado no lugar de classe. As classes são representações concretas de conceitos. Em OWL, as classes são construídas a partir de descrições, as quais especificam as condições que devem ser satisfeitas por um
individuo para que ele possa ser um membro da classe.