Ontologias – Como e Porquê Criá-las
Karin Koogan Breitman
Julio Cesar Sampaio do Prado Leite
Pontifícia Universidade Católica do Rio de Janeiro
Departamento de Informática
{karin, julio}@inf.puc-rio.br
Resumo
A medida em que a Internet está migrando em direção a uma Web Semântica, onde a
informação codificada poderá ser interpretada por seres humanos e máquinas, cresce a
necessidade de métodos, técnicas e ferramentas que apóiem o desenvolvimento de
ontologias. Neste trabalho apresentamos os conceitos fundamentais necessários ao
projeto e construção de ontologias. Introduzimos um método simples, baseado em uma
técnica de modelagem de requisitos de software, que permite a construção de
ontologias por não especialistas.
Abstract
As the Internet grows towards a Semantic Web, where meaningful information will be
processed by men and machine, the need for ontology construction methods, tools and
techniques arises. In this chapter we explore the basic concepts behind ontology
planning and construction. We introduce an ontology construction method, based on a
requirements elicitation modeling technique, that allows the construction of ontologies
by non experts.
1.1
Introdução
À medida que o volume de informações cresce na Web, pesquisadores da indústria e do
mundo acadêmico vem explorando a possibilidade de criar uma Web Semântica.
Central à esta idéia está a utilização de ontologias, que fornecem uma língua franca
permitindo que máquinas processem e integrem recursos Web de maneira inteligente,
possibilitando buscas mais rápidas e acuradas e facilitando a comunicação entre
dispositivos heterogêneos acessíveis via Web [Berners-Lee02]. A comunidade da Web
acredita que, em um futuro próximo, todo negócio na rede deverá fornecer a semântica
de suas páginas, através de uma ontologia [Fensel01].
Em Ciência da Computação, ontologias são desenvolvidas para facilitar o
compartilhamento e reuso de informações [Davies03]. Elas descrevem conceitos,
relações, restrições e axiomas de um domínio usando uma organização taxonômica, i.e.,
baseada em generalização e especialização. Aspectos composicionais, i.e.,
relacionamentos do tipo parte-de/todo, são ortogonais às ontologias e devem ser
representados através de funções não taxonômicas, i.e., propriedades.
Ao contrário do que vem sido pregado por pesquisadores da área de Inteligência
Artifical e Engenharia do Conhecimento, que se concentram na criação de ontologias
genériacas, e.g. WordNet e CyC, a Web do futuro será composta de várias ontologias
pequenas e altamente contextualizadas, desenvolvidas localmente por engenheiros de
software e não especialistas em ontologias [Hendler01]. Sob esta luz, a tarefa de
desenvolver uma ontologia ou reutilizar partes de ontologias existentes deve ser simples
de modo a permitir que pessoas, que não são especialistas no desenvolvimento de
ontologias, possam realizá-las.
Uma ontologia modela os conceitos e relações de um determinado contexto.
Sendo assim, argumentamos que uma ontologia é um artefato que deve ser produzido
durante a fase de requisitos, i.e., é responsabilidade do engenheiro de requisitos modelála: primeiro, porque é durante o processo de definição do produto que o conhecimento
do contexto é descoberto (elicitado); e segundo, porque a engenharia de requisitos tem
um núcleo de conhecimento sobre os processos para captura, modelagem e análise de
informações relevantes e, desta forma, pode auxiliar na tarefa de construção de
ontologias. Com este enfoque, Breitman e Leite proporam um processo [Breitman03]
para construção de ontologias centrado em uma estratégia de elicitação denominada
Léxico Ampliado da Linguagem (LAL), que será apresentada na seção 4.
Com base no processo de construção de ontologias proposto, desenvolvemos
uma ferramenta semi-automática para geração de ontologias. Relatamos nossa
experiência no seu uso. Esta ferramenta é na verdade um plug-in para uma ferramenta
de edição de Cenários e LAL, denominada C&L. C&L é um projeto coordenado por
nosso grupo de pesquisa, que vem trabalhando na elaboração e disseminação de técnicas
e métodos de engenharia de requisitos a um baixo custo através do paradigma de
desenvolvimento de software livre.
1.2
Ontologias
A palavra ontologia vem do grego ontos (ser) + logos (palavra). Foi introduzida na
filosofia no século 19 por filósofos alemães, de modo a fazer uma distinção entre o
estudo do ser do estudo dos vários tipos de seres vivos existentes no mundo natural.
Enquanto uma disciplina da área de filosofia, a ontologia é focada no fornecimento de
sistemas de categorização para a organização da realidade [Guarino98].
A primeira estrutura de classificação foi proposta por Aristóteles. No século III
DC, Porfírio, um filólosofo grego comentou esta estrutura e criou o que é conhecido
como a primeira estrutura arborescente. Esta, conhecida como "árvore de Porfírio", esta
ilustrada na Figura 1.1. Esta Figura ilustra as categorias abaixo de substância, o
supertipo mais geral do conhecimento.
Figura 1.1 - Árvore de Porfírio [Gandon02]
Na ciência da computação, ontologias foram desenvolvidas em inteligência artificial de
modo a facilitar o compartilhamento e reutilização de informação [Fensel01].
Atualmente a utilização de ontologias está se tornando comum nas áreas de integração
de sistemas inteligentes, sistemas de informação cooperativos, software baseado em
agentes, e comércio eletrônico.
Diferentes classificações para ontologias foram propostas na literatura [Guarino98,
Jasper99]. Um sistema de classificação que utiliza a generalidade da ontologia como o
critério principal para a classificação foi proposto por Guarino [Guarino98]. Neste
sistema o autor identifica:




Ontologias de nível superior - descrevem conceitos muito genéricos, tais como
espaço, tempo, e eventos. Estes seriam, a princípio, independentes de domínio e
poderiam ser reutilizados na confecção de novas ontologias. Exemplos de
ontologias de alto nível são o WordNet e Cyc. Na Figura 1.2 mostramos as
categorias superiores
Ontologias de domínio - descrevem o vocabulário relativo a um domínio
específico através da especialização de conceitos presentes na ontologia de alto
nível.
Ontologias de tarefas - descrevem o vocabulário relativo a uma tarefa genérica
ou atividade através da especialização de conceitos presentes na ontologia de
alto nível.
Ontologias de aplicação - são as ontologias mais específicas. Conceitos em
ontologias de aplicação correspondem, de maneira geral, a papéis
desempenhados por entidades do domínio no desenrolar de alguma tarefa.
Figura 1.2 - Categorias superiores do Cyc
O foco deste trabalho são ontologias de aplicação. Na próxima seção definimos o termo
ontologia e seus componentes.
1.2.1.Definição
A definição de ontologia encontrada mais frequentemente na literatura de Web
semântica é a proposta por Gruber:
"Ontologia é uma especificação formal e explícita de uma conceptualização
compartilhada" [Gruber 93]
Onde conceitualização representa um modelo abstrato, explícita significa que os
elementos estão claramente definidos e, finalmente, formal significa que a ontologia
deve ser passível de processamento automático [Fensel01]. Ontologias descrevem
domínios utilizando uma organização taxonômica, i.e., baseando-se nos conceitos de
subclasse e generalização. Aspectos de composição, tais como parte/todo, são
ortogonais a ontologias e só podem ser representados através de propriedades não
estruturais.
Adotamos a estrutura O proposta por Alexander Maedche para definição de
ontologias. Uma ontologia, segundo o autor, pode ser descrita através de uma 5-tupla
composta dos elementos primitivos de uma ontologia, i.e., conceitos, relacionamentos,
hierarchia de conceitos, função que relaciona conceitos e um conjunto de axiomas. Os
elementos são definidos como se segue:
O : = {C, R, HC, rel, AO} que consiste de:
Dois conjuntos disjuntos, C (conceitos/classes) and R (relacionamentos)
Uma hierarquia de conceitos, HC: HC é um relacionamento direto HC Í C x C chamado
hierarquia de conceitos ou taxonomia. HC (C1,C2) significa C1 é um sub-conceito de of C2
Uma função rel : R ® C x C que relaciona os conceitos de modo não taxonômico
Um conjunto de axiomas AO, expressos em uma linguagem lógica apropriada.
Ontologias que utilizam esta estrutura podem ser mapeadas para a maioria das
linguagens para descrição de ontologias conhecidas. Na próxima seção, fazermos um
pequeno resumo destas linguagens.
1. 2. 2 Linguagens para implementação de ontologias
1.2.2.1 Origens
As linguagens disponíveis atualmente para a confecção de ontologias na Web
semântica, são também conhecidas como linguagens de ontologia do tipo mark up. Este
tipo de linguagem foi introduzida por William Turncliffe em 1967 no Canadá. As
linguagens de mark up ficaram conhecidas como linguagem de codificação genéricas,
de modo a se distinguir das linguagens de codificação específicas, que eram utilizadas
para controlar um conjunto de operações. As linguagens de codificação genéricas
introduziram o conceito de uma linguagem declarativa genérica. Ao invés de definir
uma série de operações, a linguagem utilizava etiquetas (tags) que forneciam uma
descrição de como o software deveria formatar o documento na tela.
Em 1989, Tim Berners Lee e Robert Cailau no CERN (Conséil Européen pour la
Recherche Nucléaire) criaram um sistema universal de interconexão de informações.
Em outubro de 1990 este sistema foi chamado de WWW (World Wide Web). Dado que
um dos requisitos básicos para este sistema era uma linguagem para a formatação da
informação em hipertextos, Tim Berners Lee desenvolveu uma variante para a
linguagem de mark up utilizada pelo CERN então, o SGML, e criou o HTML (
Hypertext Markup Language).
O HTML apresentava duas grandes limitações: falta de estrutura e
impossibilidade de validação da informação exibida. De modo a dar conta destas
limitações, oferecendo uma linguagem que suportasse um grande número de aplicações
na Web, foi criado o XML (Extensible markup language). O XML oferece suporte para
a conexão (criação de hiperlinks) entre outros documentos XML e recursos da rede. Da
mesma forma que o SGML (que originou o HMTL) o padrão XML separa o conteúdo
da estrutura do documento. Desta forma, mudanças na apresentação da informação
podem ser obtidas sem que seja necessário realizar mudanças no conteúdo dos
documentos.
1.2.2.2 Metadados
Atualmente a maior parte dos recursos primários presentes na Web estão em linguagem
natural, e são compreensíveis apenas por seres humanos. Tim Berners Lee, em um artigo
visionário [Berners-Lee01], aposta no aparecimento de uma Web semântica no futuro.
Nesta Web a informação estaria disponível para o consumo humano mas também seria
formatada de modo a permitir o processamento automático das fontes de informação por
parte de computadores. Abaixo reproduzimos a definição de Web semântica:
“A Web Semântica é uma EXTENSÃO da Web atual na qual é dada a informação
um SIGNIFICADO bem definido, permitindo com que computadores e pessoas
trabalhem em cooperação.” Berners-Lee, Hendler e Lassila
De forma a viabilizar esta situação, será necessário combinar recursos primários com
recursos de metadados. A Federação internacional de associações de bibliotecas (IFLA
- International Federation of Library Associations) define o conceito de metadado da
seguinte forma:
“Metadados são dados sobre dados. O termo se refere a qualquer dado que possa
ser utilizado na ajuda da identificação e localização de recursos eletrônicos
dispostos em uma rede”.
Esta definição é voltada para sistemas de controle de biblioteca e, quando aplicada ao
contexto da Web, pouco limitada. Outra definição, proposta por Caplan, é:
Metadado não é nada além de dados sobre outros dados. Um registro em um
catálogo é metadado; da mesma forma um cabeçalho no início de um documento
também, e idem para qualquer tipo de descrição. [Caplan95]
Metadados em formato padronizado podem ser entendidos por software e pessoas.
Vários padrões foram propostos ao longo dos últimos dez anos. O padrão Dublin Core,
estabelecido durante a segunda conferência WWW, prevê treze tipos de elementos para
classificar uma fonte de informação. São eles:

Sujeito: tópico do documento.












Título: nome do objeto.
Autor: pessoa responsável pelo conteúdo intelectual do objeto.
Editor: pessoa ou agência responsável por disponibilizar o objeto.
Outro agente: pessoa, e.g. tradutores, que tenham tido papel intelectual
significativo na confecção do objeto.
Data: data de publicação.
Tipo de objeto: gênero do objeto, e.g., léxico, relatório.
Formato: manifestação física do objeto, e.g., arquivo do tipo postcript ou
executável.
Identificador: número ou nome utilizado na identificação do objeto.
Relacionamento: rastreabilidade com outros objetos
Fonte: Objetos de onde este objeto é derivado.
Linguagem: linguagem utilizada no conteúdo intelectual.
Abrangência: localização espacial e temporal do objeto.
O Dublin Core evoluiu para a representação descrita pelo framework de
Warwick. A última acrescentou modularidade ao Dublin Core inicial. Baseados na
experiência com o Dublin Core e o framework de Warwick, o consórcio W3C propôs
um novo framwork para a descrição de recursos na Web. Na próxima seção detalhamos
o Resource Description Framework , RDF.
1.2.2.3 RDF
Da maneira com que foi proposto, o RDF foi projetado para fornecer a
interoperabilidade e semântica para metadados de modo a facilitar busca por recursos
na Web [Geroimenko03]. Até então, estes recursos tinham sido procurados através de
mecanismos de busca textuais simples. O modelo e especificação da sintaxe do RDF
foram propostos em Fevereiro de 1999, pelo consórcio W3C.
Utilizaremos uma frase simples para introduzir o modelo RDF:
Karin criou o recurso www.inf.puc-rio.br/~karin
Esta frase possui as seguintes partes:
Sujeito (recurso)
Predicado (propriedade)
Objeto (literal)
http:// www.inf.puc-rio.br/~karin
criou
Karin
No modelo de dados do RDF, o sujeito e predicados podem ser identificados por
URIs, enquanto que o objeto pode ser identificado por URIs ou strings. Esta frase pode
ser representada através do modelo de dados do RDF, utilizando-se o seguinte grafo:
http:// www.inf.puc-rio.br/~karin
criou
Karin
Figura 1.3 - Modelo de dados e código RDF para uma sentença simples,
adaptado de [Daum02]
<rdf:RDF>
<rdf:Description about:" http://www.inf.puc-rio.br/~karin”>
<f:criou>
Karin
</f:criou>
</rdf:Description>
</rdf:RDF>
Outra maneira de representar o modelo de dados do RDF é através da tripla
“Predicado (sujeito, objeto)”. O RDF Schema é utilizado para definir termos e restringir
sua utilização nos modelos. Utiliza-se o RDF Schema em conjunção ao RDF. O RDF
Schema pode ser considerado como um tipo de dicionário que pode ser lido por
máquinas. O conjunto das duas representações é usualmente referenciado pela sigla
RDF-S.
O RDF oferece um conjunto de primitivas que permitem a modelagem de
ontologias simples, e.g., “SubClassOf” e “SubPropertyOf”. No entanto, ele tem sido
criticado como linguagem para ontologias pela falta de expressividade de seus
construtos. Conectivos lógicos, negação, disjunção e conjunção não existem em RDF,
limitando o poder de expressão das ontologias.
Nas próximas seções discutiremos outras linguagens para ontologias, propostas
nestes últimos anos. A maior parte delas está construída sobre o RDF, i.e., tem a
arquitetura de uma camada superior que extende a funcionalidade (e expressividade) do
RDF. Tim Berners Lee fez esta previsão, como podemos observar através da Figura 1.4.
Nesta Figura está ilustrada a arquitetura “bolo de noiva" proposta por Berners-Lee para
as linguagens da Web semântica. A idéia é que novas linguagens vão sendo
acrescentadas a base HTML/XML de maneira gradual, cada camada extendendo a
expressividade da camada abaixo. Ordenamos as próximas seções de acordo com a
ordem cronológica em que as linguagens para ontologia foram propostas.
Figura 1.4 - Linguagens para a Web semântica
1.2.2.4 SHOE
A linguagem SHOE (Simple HTML Ontology Extension), projeto da universidade de
Maryland, coordenado pelos professores James Hendler e Jeff Heflin, é uma extensão de
HTML para anotar o conteúdo de paginas da Web [Heflin01, Heflin99]. A informação é
embebida nas páginas HTML. SHOE faz uma distintção entre o conteúdo das páginas asserções ou instâncias - da terminologia, informação acerca os metadados. SHOE
permite a definição de conceitos, relacionamentos e atributos. Mostramos abaixo um
exemplo de uma página com marcação SHOE:
<INSTANCE KEY="http://www.cs.umd.edu/users/hendler/">
<USE-ONTOLOGY ID="cs-dept-ontology" VERSION="1.0" PREFIX="cs" URL=
"http://www.cs.umd.edu/projects/plus/SHOE/cs.html">
<CATEGORY NAME="cs.Professor" FOR="http://www.cs.umd.edu/users/hendler/">
<RELATION NAME="cs.member">
<ARG POS=1 VALUE="http://www.cs.umd.edu/projects/plus/">
<ARG POS=2 VALUE="http://www.cs.umd.edu/users/hendler/">
</RELATION>
<RELATION NAME="cs.name">
<ARG POS=2 VALUE="Dr. James Hendler">
</RELATION>
<RELATION NAME="cs.doctoralDegreeFrom">
<ARG POS=1 VALUE="http://www.cs.umd.edu/users/hendler/">
<ARG POS=2 VALUE="http://www.brown.edu">
</RELATION>
<RELATION NAME="cs.emailAddress">
<ARG POS=2 VALUE="[email protected]">
</RELATION>
<RELATION NAME="cs.head">
<ARG POS=1 VALUE="http://www.cs.umd.edu/projects/plus/">
<ARG POS=2 VALUE="http://www.cs.umd.edu/users/hendler/">
</RELATION>
</INSTANCE>
Note a utilização de novos tags: instance (instância), category name (Conceito),
relation name (função que relaciona dois conceitos - propriedade). Esta marcação é
adicionada ao documento HTML, como se fosse um novo cabeçalho. O cojunto da
marcação com o conteúdo HTML fazem a página SHOE.
SHOE é menos expressivo que RDF e apresenta grandes dificuldades na
manutenção das páginas anotadas. O projeto SHOE foi descontinuado, mas a página
ainda
é
mantida
pela
Universidade
de
Maryland,
no
endereço
http://www.cs.umd.edu/projects/plus/SHOE/. Os pesquisadores envolvidos no projeto
migraram para as linguagens DAML+OIL e OWL, que serão revistas nas próximas
seções.
1.2.2.5 OIL
A linguagem OIL (ontology inference layer) foi patrocinada através de um consórcio da
Comunidade Européia, através do projeto On-to-Knowledge . Esta linguagem foi criada
pela necessidade de uma linguagem expressiva que permitisse a modelagem de
ontologias na Web, pois RDF não provê a semântica necessária nem formalismo
suficiente de modo a permitir suporte a mecanismos de inferência [Hjelm01]. A
semântica formal de OIL e mecanismo de inferência é fornecido através da Lógica de
Descrição. A semântica formal de OIL é obtida através do mapeamento das ontologias
para a lógica de descrição SHIQ acrescentada de tipos concretos de dados SHIQ (d). O
mapeamento completo das primitivas de OIL para SHIQ(d) está descrito em
[Horrocks99].
A comunidade de pesquisadores que vem utilizando a linguagem OIL,
disponibilizou uma série de ferramentas para a edição e verificação (através de
mecanismos de inferência) para ontologias. Atualmente existem três editores
disponíveis, OntoEdit, desenvolvido pela Universidade de Karslruhe – Alemanha,
OILEd, desenvolvido na Universidade de Manchester - Inglaterra e Protege-2000,
desenvolvido na Universidade de Stanford – Estados Unidos. Um mecanismo de
inferência para o OILEd, que se chama FaCT está disponível no site público do OIL. Os
serviços de inferência oferecidos incluem detecção de inconsistências, e a determinação
de relacionamentos do tipo sub-classe de. Mostramos a ferramenta OILEd na Figura 1.5.
OIL provê uma extensão para RDF, permitindo que ontologias escritas em OIL sejam
traduzidas, com perda de expressividade, para RDF ou RDF-S (RDF + RDF-Schema).
Desta forma, ontologias escritas em OIL são documentos válidos de RDF.
Figura 1.5 – Ferramenta OILEd para a edição de ontologias
1.2.2.6 DAML
Na mesma época em que o consórcio europeu estava criando o OIL, o Defense
Advanced Research Projects Agency (DARPA), agência americana que financiou muito
do trabalho original da Internet (chamava-se ARPAnet, então), em conjunto com o
consórcio W3C estava desenvolvendo a linguagem DARPA Agent Markup Language
(DAML) através da extensão do RDF de modo a acrescentar construtos mais
expressivos. O objetivo desta linguagem era facilitar a interação de agentes de software
autônomos na Web [Hendler01].
A primeira especificação para uma linguagem de ontologias, DAML-ONT foi
lançada em Outubro de 2000. A DARPA mantém em seu site uma biblioteca pública de
ontologias que contém mais de duzentas entradas (www.daml.org/ontologies).
1.2.2.7 DAML + OIL
Em dezembro do mesmo ano o DAML-ONT foi substituída pela linguagem DAMLOIL. A última foi criada como a combinação das duas linguagens DAML e OIL, que
apesar de diferentes, apresentavam características similares. A semântica formal de
DAML+OIL é fornecida através do mapeamento da linguagem para a linguagem KIF
(Knowledger Interchange Format) [Genesereth91].
DAML + OIL é dividida em duas partes, domínio dos objetos, que consiste dos
objetos que que são membros de classes definidas na ontologia DAML e o domínio dos
tipos de dados, que consiste dos valores importados do modelo XML. A idéia por trás
da separação é permitir a implementação de mecanismos de inferência, já que o realizar
inferências sobre tipos concretos de dados não seria possível. DAML é composta por
elementos de classe, expressões de classe e propriedades:

Elementos de classe – associam uma classe a sua definição. Em uma
definição podem estar presentes os seguintes elementos: rdfs:SubClassOf,
daml:DisjointWith, daml: DisjointUnionOf, daml: SameClassAs e
daml:EquivalentTo. Note que a primeira expressão, SubClassOf, que indica
a generalização da classe foi importada diretamente da definição presente no
RDF-S. Isto se dá porque a linguagem DAML+OIL funciona como uma
camada sobre o RDF-S, como indicado na Figura 1.4. As expressões
restantes introduzem expressões lógicas que aumentam o poder expressivo
da linguagem DAML+OIL, através de conectivos do tipo disjunção, união e
equivalência.

Expressões de classe – são as formas possíveis de referenciar uma classe.
Podem ser do tipo: nome de classe, enumeração, restrição e combinação
booleana. Na linguagem DAML + OIL não é possível atribuir o mesmo
nome a duas classes distintas, de modo que o nome funciona como
identificador.

Propriedades – associa uma propriedade a sua definição. Propriedades
podem ser definidas de acordo com os seguintes elementos:
rfds:SubPropertyOf, domínio, rdfs:range, daml:SamePropertyAs, daml:
EquivalentTo, daml:InverseOf. Note que algumas das propriedades são
definidas na camada DAML (aquelas que começam com daml:) outras são
importadas da camada RDF inferior (começam com rdfs:). A estratificação
em camadas está representada na Figura 1.4.
Abaixo apresentamos parte de uma ontologia escrita na linguagem DAML+OIL.
Note a semelhança com outras linguagens de markup, e.g., HTML e XML.
Evidenciamos em negrito o fato da linguagem importar elementos que se encontram
presentes na sub camada RDF-S (aqueles que iniciam com o tag rdf ou rdfs). Esta
ontologia foi criada utilizando-se a ferramenta OILEd, que está ilustrada na Figura 1.5,
da seção anterior.
O exemplo abaixo é parte da ontologia de sobremesas, que utilizaremos para ilustrar o
processo de construção de ontologias na seção 6. No código abaixo mostramos os
cabeçalhos da ontologia , identificando seu criador, Karin. Também ilustramos a criação
da classe Doce, uma de suas restrições, base biscoito e o fato de que esta classe é
subclasse da classe torta (penúltima linha).
</daml:Ontology>
<daml:Class
rdf:about="file:C:\Users\karin\Cursos\Ontologias\sobremesa.daml#sobremesa">
<rdfs:label>sobremesa</rdfs:label>
<rdfs:comment><![CDATA[]]></rdfs:comment>
<OILed:creationDate><![CDATA[2003-0813T20:10:07Z]]></OILed:creationDate>
<OILed:creator><![CDATA[karin]]></OILed:creator>
<rdfs:subClassOf>
<daml:Restriction>
<daml:onProperty
rdf:resource="file:C:\Users\karin\Cursos\Ontologias\sobremesa.daml#Doce"/>
<daml:hasClass
rdf:resource="http://www.w3.org/2000/10/XMLSchema#boolean"/>
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
<daml:Class
rdf:about="file:C:\Users\karin\Cursos\Ontologias\sobremesa.daml#base_biscoito">
<rdfs:label>base_biscoito</rdfs:label>
<rdfs:comment><![CDATA[]]></rdfs:comment>
<OILed:creationDate><![CDATA[2003-0813T20:11:41Z]]></OILed:creationDate>
<OILed:creator><![CDATA[karin]]></OILed:creator>
<rdfs:subClassOf>
<daml:Class
rdf:about="file:C:\Users\karin\Cursos\Ontologias\sobremesa.daml#torta"/>
</rdfs:subClassOf>
1.2.2.8 – OWL
Recentemente o consórcio W3C lançou a Web Ontology Language (OWL) como uma
revisão a linguagem DAML+OIL. OWL foi projetada de modo a atender as
necessidades de das aplicações para a Web semântica. De modo similar a DAML+OIL,
a intenção de OWL é representar termos e seus relacionamentos de forma ontológica.
OWL possui três linguagens, em ordem crescente de expressividade:



OWL Lite
OWL – DL
OWL Full
OWL Lite suporta a criação de hierarquias de classificação simplificadas e suas
restriçõs, i.e., não possuem axiomas nem estruturas de relacionamentos sofisticadas. São
suportadas restrições mais simples, e.g., cardinalidade. A intenção por detrás do OWL
lite é oferecer suporte a migração de tesauros e taxonomias para o formato de
ontologias. OWL – DL (DL é o acrônimo para lógica de descrição, pois esta linguagem
pode ser mapeada para linguagens deste tipo de lógica, tais como o SHIQ e SHIQ-d, que
referenciamos na seção 2.2.5. Segundo seus proponentes, a linguagem OWL Full
“suporta o máximo de expressividade enquanto mantendo completude
computacional (para todas computações se garante tempo finito)”
[McGuiness03]
A linguagem DAML+OIL, descrita na seção anterior, equivale a linguagem
OWL-DL em termos de expressividade. Finalmente, a linguagem OWL Full suporta o
máximo de expressividade, i.e., a linguagem fornece uma série de construtos lógicos
elaborados que, segundo os autores, garantem uma grande gama de representações
semânticas. Segundo o próprio consórcio W3C, é pouco provável, porém, que se
consiga garantir a construção de mecanismos de inferência que suportem todas os
elementos previstos em OWL Full. A documentação do OWL ainda está no processo de
elaboração.
A maior parte das ferramentas para edição de ontologias já oferece suporte (ou
pelo menos tradução) para a linguagem OWL. Este é o caso do OILEd e do Protege2000. No caso do último é possível construir uma ontologia diretamente em OWL.
Nesta seção enfatizamos o aspecto de ontologia enquanto artefato de software.
Apresentamos um breve histórico das linguagens propostas para a elaboração de
ontologias, detalhando as linguagens de maior destaque na construção de ontologias
para a Web semântica. Na próxima seção, vamos mudar nosso foco para o processo de
construção de ontologias.
1.3
Processo de Construção de Ontologias
Apesar da utilização de ontologias dentro do contexto do desenvolvimento de software
ser um fato recente, existem algumas metodologias para suportar o processo de
construção das mesmas. Nesta seção faremos um levantamento de algumas destas
metodologias, de modo a melhor entender as dificuldades envolvidas no processo de
levantamento, modelagem e construção de ontologias. A maior parte das metodologias
que vamos revisar tiveram suas origens na área de Inteligência Artificial e Engenharia
do Conhecimento. Este fato é de fácil compreensão se analisarmos os argumentos que
fundamentam as necessidades por detrás da construção de ontologias. Segundo Natalia
Noy as principais razões para se construir ontologias são [Noy01-a]:
 compartilhar o entendimento da estrutura da informação entre pessoas e
agentes de software;
 possibilitar o reuso de conhecimento do domínio;
 tornar as verdades absolutas do domínio explícitas;
 separar o conhecimento do domínio do conhecimento operacional;
 analisar o conhecimento do domínio.
Organizamos as metodologias segundo a ordem cronológica de aparecimento.
1.3.1 Metodologia do projeto Tove
Gruninger e Fox propuseram a metodologia Toronto Virtual Enteprise (TOVE) em
1995 [Grunninger95]. A metodologia foi derivada da experiência própria no
desenvolvimento de ontologias para os domínios de processos de negócios e
corporativo. Os autores utilizam o que chamam de cenários motivacionais para
descrever problemas e exemplos que não estejam adequadamente referenciados por
ontologias existentes. Após o desenvolvimento destes cenários, o desenvolvedor deve
elaborar questões de competência para ontologia, i.e., quais são as questões que a
ontologia deve responder. Estas são elaboradas com o propósito de auxiliar na análise da
ontologia. Detalhamos as etapas desta metodologia a seguir:
1. Descrição de cenários motivacionais. Os cenários motivacionais são descrições
de problemas ou exemplos que não são cobertos adequadamente por ontologias
existentes. A partir destes cenários-problema se chega a um conjunto de soluções
possíveis que carregam a semântica informal dos objetos e relações que
posteriormente serão incluídos na ontologia;
2. Formulação informal das questões de competência. Baseados nos cenários,
são elaboradas questões de competência, com a intenção de que seja possível
representá-las e respondê-las utilizando-se a ontologia a ser desenvolvida;
3. Especificação dos termos da ontologia através de uma linguagem formal.
Definição de um conjunto de termos/conceitos, a partir de questões de
competência. Estes conceitos servirão de base para a especificação numa
linguagem formal;
Especificação formal da ontologia usando uma linguagem de representação de
conhecimento, como por exemplo KIF;
4. Descrição formal das questões de competência. Descrição das questões de
competência usando uma linguagem formal;
5. Especificação formal dos axiomas. Criação das regras, descritas em linguagem
formal, a fim de definir a semântica dos termos e relacionamentos da ontologia;
6. Verificação da completude da ontologia. Estabelecimento de condições que
caracterizem a ontologia como completa através das questões de competência
formalmente descritas.
Na nossa opinião, a maior falha deste enfoque é supor que os conceitos e
relacionamentos de uma ontologia podem ser derivados dos cenários motivacionais
apenas. Na realidade, a técnica de cenários é mais bem empregada na identificação de
aspectos dinâmicos do domínio do que na identificação de entidades estáticas.
1.3.2 Metodologia proposta por Uschold
A importância das ontologias enquanto modelo conceitual para a captura e reutilização
de informação é bem compreendida em meios acadêmicos. Baseados na prática da
construção da ontologia de alto nível Enterprise pelo grupo do pesquisador Mike
Uschold [Uschold96]. O processo de construção pregado pelo autor é composto de
quatro estágios distintos, identificação, construção, avaliação e documentação.
Detalhamos o processo a seguir:
1. Identificação de propósito da ontologia. Definição do porque construir a
ontologia e para que ela será utilizada;
2. Construção da ontologia
2.1 Identificar conceitos-chave e relacionamentos;
Definir textualmente conceitos e relacionamentos;
2.2 Codificar a ontologia, através da representação dos conceitos e
relacionamentos definidos em 2.1, através de uma linguagem formal;
2.3 Questionar a possibilidade de reutilização de ontologias existentes;
3. Avaliação da ontologia. Utilizar critérios técnicos: verificação da especificação
de requisitos, validação das questões de competência, comparação com o mundo
real.
4. Documentação. Descrição do processo. O formato final aceita variações,
dependendo do tipo de ontologia.
1.3.3 Methontology
O Methontology é um framework desenvolvido no laboratório de Inteligência Artificial
da Universidade de Madrid que fornece apoio automatizado para a construção de
ontologias [Fernandéz-Lopéz97, Gómez-Pérez98]. O Methontology é baseado naa no
processo padrão IEEE para o desenvolvimento de software [Goméz-Peréz04]. O
processo de desenvolvimento de ontologias referencia quais as atividades que devem ser
cumpridas quando construindo ontologias. Segundo os autores, é fundamental chegar a
um acordo quanto a estas atividades, sobretudo se a ontologia está sendo desenvolvida
por times que se encontram dispersos geograficamente. Eles classificam as atividades
em três grupos: Atividades de gerenciamento de ontologias, Atividades ligadas ao
desenvolvimento de ontologias e Atividades de manutenção de ontologias. Listamos as
atividades de cada grupo a seguir:

Atividades de gerenciamento de ontologias - elaboração de cronogramas,
controle, garantia da qualidade.

Atividades ligadas ao desenvolvimento de ontologias - estudo do
ambiente, estudo de viabilidade, especificação, conceitualização,
formalização, implementação, manutenção, uso.

Atividades de suporte - aquisição do conhecimento, avaliação, integração,
documentação, integração, gerência da conFiguração, alinhamento.
Estas atividades são suportadas pelo ODE (Ontology Development
Environment) que fornece apoio automatizado para o processo de desenvolvimento de
ontologias. Os autores utilizam técnicas de elicitação bem semelhantes a que temos
praticado no levantamento de requisitos de software [Breitman03], e.g., entrevistas
estruturadas, questionários, e leitura de documentos do domínio. A modelagem dos
conceitos parece ser bastante pesada. É importante notar que a Methontology faz uma
previsão para o reuso de conceitos de outras ontologias, através do método de reengenharia de ontologias.
Nesta seção apresentamos algumas das metodologias para o desenvolvimento de
ontologias. Selecionamos aquelas que consideramos mais relevantes dentro do contexto
do desenvolvimento de ontologia na Web semântica. Na próxima seção apresentamos o
Léxico Ampliado da Linguagem, uma técnica de captura do vocabulário da aplicação,
oriunda da Engenharia de Requisitos, que vai fornecer subsídios para a o método de
desenvolvimento de ontologias, apresentado na seção 5. .
1.4
Léxico Ampliado da Linguagem
1.4.1 Uma Introdução, Breve, à Engenharia de Requisitos
O Léxico Ampliado da Linguagem (LAL) é uma representação utilizada na Engenharia
de Requisitos. O Portal de Engenharia de Requisitos (http://www.er.les.inf.puc-rio.br/ )
assim define a área:
“A Engenharia de Requisitos, uma sub-área da Engenharia de Software, estuda o
processo de definição dos requisitos que o software deverá atender. A área surgiu em
1993 com a realização do I International Symposium on Requirements Engineering. O
processo de definição de requisitos é uma interface entre os desejos e necessidades dos
clientes e a posterior implementação desses requisitos em forma de software.
Objetivo da ER: entender as necessidades e atender os desejos dos clientes sempre foi
colocado como um dos maiores desafios da Engenharia de Software. A postura da
Engenharia de Requisitos é a de prover ao Engenheiro de Software, métodos, técnicas e
ferramentas que auxiliem o processo de compreensão e registro dos requisitos que o
software deve atender. Diferentemente de outras sub-áreas da engenharia de software,
a área de requisitos tem que lidar com conhecimento interdisciplinar envolvendo,muitas
vezes, aspectos de ciências sociais e ciência cognitiva.”
Segundo Leite [Leite 01].
“A Engenharia de Requisitos, uma sub-área da Engenharia de Software, tem por
objetivo tratar o processo de definição dos requisitos de software. Para isso estabelece
um processo no qual o que deve ser feito é elicitado, modelado e analisado
Este processo deve lidar com diferentes pontos de vista, e usar uma combinação de
métodos, ferramentas e pessoal. O produto desse processo é um modelo, do qual um
documento chamado requisitos é produzido. Esse processo é perene e acontece num
contexto previamente definido a que chamamos de Universo de Informações.
Universo de Informações é o contexto no qual o software deverá ser desenvolvido e
operado. O UdI inclui todas as fontes de informação e todas as pessoas relacionadas
ao software. Essas pessoas são também conhecidas como os atores desse universo. O
UdI é a realidade circunstanciada pelo conjunto de objetivos definidos pelos que
demandam o software.”
Elicitar é a parte que faz a coleta, o levantamento, o esclarecimento dos requisitos.
Modelar é a parte que descreve o conhecimento elicitado em uma linguagem préestabelecida. Analisar é a tarefa de certificar-se que o que foi descrito condiz com o
conhecimento do UDI. Soma-se a essas tarefas, a tarefa, ortogonal, de gerenciar esse
processo.
1.4.2. O que é o LAL?
O LAL [Leite 90] é uma linguagem de representação simples. Porque simples? Porque
é composta de apenas 3 entidades básicas: termo, noção e impacto. Abaixo
descrevemos sua sintaxe. O LAL é uma linguagem de representação da Engenharia de
Requisitos que tem por objetivo mapear o vocabulário utilizado no UdI.
LAL: Representação de símbolos na linguagem de aplicação.
Sintaxe:
{Símbolo}1N
Símbolo: entrada do léxico que tem um significado especial no domínio de
aplicação.
Sintaxe:
{Nome}1N + {Noção}1N + {Impacto}1N
Nome: identificação do símbolo. Mais de um símbolo representa sinônimos.
Sintaxe:
Palavra | Frase
Noção: denotação do símbolo. Tem que ser expresso usando referências a
outros símbolos e usando o princípio do vocabulário mínimo.
Sintaxe:
Sentença
Impacto: conotação do símbolo. Tem que ser expresso usando referências a
outros símbolos e usando o princípio do vocabulário mínimo.
Sintaxe:
Sentença
onde: Sentença é composta de Símbolo e Não-Símbolos. Não-Símbolos
devem pertencer a um vocabulário mínimo.
Figura 1.6: Sintaxe do LAL
O LAL fundamentada-se na idéia de que coisas observáveis no UdI têm sua semântica
definida no próprio UdI. Nota-se, que esta representação é extremamente simples, visto
que seu objetivo é o de ajudar no entendimento da linguagem utilizada em um
determinado UdI.
A idéia central do LAL é a existência das linguagens da aplicação. Esta idéia parte do
princípio que no UdI existe uma ou mais culturas e que cada cultura (grupos sociais)
tem sua linguagem própria. É importante observar que, ao mesmo tempo, que o LAL é
uma representação, o seu propósito, o de representar o vocabulário corrente é
fundamental para que se possa entender e compartilhar o conhecimento do UdI. Ou
seja, o LAL ajuda a comunicação entre os atores do UdI, tantos os técnicos quanto os
não-técnicos. Na elicitação é utilizado para facilitar a comunicação e a compreensão de
palavras ou frases peculiares a um Universo de Informação entre as pessoas envolvidas
no processo de produção de um software [Leite 90].
Mesa/ Mesas
Abrir a mesa/ Abre mesa/ Abriu mesa
Noções:
Noções:
Um dos componentes do restaurante.
Tarefa realizada pelo caixa.
Cada mesa possui um no. de mesa.
Acontece quando o cliente senta na mesa e faz
o pedido.
Impactos:
O cliente pode sentar na mesa.
O cliente pode trocar de mesa.
Garçon/Garçons
A mesa está aberta ou a mesa está fechada.
Noções:
Caixa verifica se a mesa está fechada.
Caixa recebe a comanda e bota a comanda no
escaninho.
Impactos
A mesa está aberta.
Pessoa que trabalha no restaurante.
Se a mesa está aberta, o caixa não pode abrir a
mesa.
Responsável pela comunicação entre os
clientes e o caixa.
Caixa avisa o garçon que a mesa está aberta.
Impactos:
Figura 7 - Exemplos de entradas no LAL
Realiza as tarefas: jogar a comanda, abrir a
mesa, entregar o pagamento.
\Como vimos pela Figura 1.6, cada termo do léxico tem dois tipos de descrição. O
primeiro tipo, noção, é a denotação do termo ou expressão, i.e., seu significado. O
segundo tipo, impacto ou resposta comportamental, descreve a conotação do termo ou
expressão, i.e., provê informação extra sobre o contexto em mãos. Dicionários e
glossários, de modo geral, só representam a denotação dos termos. Porque o LAL
representa também os relacionamentos entre os termos, através dos impactos, temos
uma representação muito mais detalhada do Universo de Informações.
A Figura 1.7 ilustra algumas entradas do léxico de um restaurante. Note que os termos
sublinhados representam links para outros termos do léxico.
1.4.3. Elicitando o LAL
O principal objetivo a ser perseguido pelos engenheiros de
software na tarefa de elicitação do LAL é a identificação de palavras ou
frases peculiares ao meio social da aplicação sob estudo. Somente
após a identificação dessas frases e palavras é que se procurará o seu significado. A
estratégia de elicitacão é ancorada na sintaxe da linguagem e é formada por três grandes
etapas.

Identificação das fontes de informação no UdI

identificação de símbolos da linguagem e

identificação da semântica de cada símbolo.
Um estudo preliminar do UdI deve ser feito para que as fontes de informação sejam
identificadas. As fontes de informação podem ser de diversos tipos, tais como:
documentos relevantes (manuais, normas da indústria, leis,...), atores, outros sistemas e
livros. Uma estratégia muito utilizada para listar as fontes de referência mais
importantes é observar aquelas que são as mais referenciadas no UdI. No que tange a
atores, a idéia da árvore abstrata de requisitos [Muir 74] é uma das estratégias
recomendadas.
A identificação de símbolos deve ser feita com o uso de uma técnica de coleta de fatos
(p.ex. entrevistas informais, observação, leitura de documentos), o engenheiro de
software anota as frases ou palavras que parecem ter um significado especial na
aplicação. Estas palavras são, em geral, palavras chaves que são usadas com frequência
pelos atores da aplicação. Quando uma palavra ou frase parecer ao engenheiro de
software sem sentido, ou fora de contexto, há indícios de que esta palavra ou frase deve
ser anotada. O resultado dessa fase é uma lista de palavras e frases.
A grande diferença entre a elicitação aqui proposta e a elicitação comumente praticada
por analistas de sistemas é o enfoque. Enquanto na análise de sistemas, as estratégias de
abordagem são usadas com o objetivo de elicitar as funções do sistema em estudo e suas
saídas e entradas, na elicitação de linguagens da aplicação, as estratégias de abordagem
são usadas com o objetivo de elicitarsímbolos.
Na elicitação de linguagens da
aplicação uma dasprincipais heurísticas é justamente a de não procurar identificar
funções da aplicação observada, mas apenas os seus símbolos.
Com base na lista de símbolos o engenheirode software procede a uma entrevista
estruturada com atores da aplicação, procurando entender oque cada símbolo significa.
Esta fase é a fase na qual o Léxico
Ampliado da Linguagem é usado como um sistema de representação.
1.4.4. Modelando o LAL
A representação do LAL requer que, para cada símbolo, sejam descritos noções e
impactos. Noção é o quesignifica o símbolo, impacto descreve os efeitos do
uso/ocorrência do símbolo na aplicação, ou do efeito de algo na aplicação sobre o
símbolo. Esses efeitos, muitas vezes, caracterizam restrições impostas ao símbolo ou
que o símbolo impõe. A descrição de impactos e noções é orientada pelos princípios de
vocabuláriomínimo e circularidade.
O principio de vocabulário mínimo estabelece que ao descrever uma noção ou um
impacto, esta descrição deve minimizar o uso de símbolos externos `a linguagem, e que
quando estes símbolos externos são usados, devem procurar ter uma representação
matemática clara (p.ex. conjunto, união, interseção,função).
O principio de circularidade estabelece que as noções e os impactos devem ser descritos
usando símbolos da própria linguagem. As experiências têm demonstrado que, na
explicação da noção e do impacto, os atores da aplicação usam, naturalmente, do
princípio de circularidade. A obediência ao vocabulário mínimo é de responsabilidade
do engenheiro de software.
Os símbolos/termos do léxico são classificados em quatro categorias: objeto, sujeito,
estado e verbo. Símbolos/termos do tipo objeto definem um objeto em questão e os
relacionamento que mantêm com outros termos do léxico, sejam eles outros objetos,
sujeito, estado ou verbos. Os impactos de um termo do tipo objeto descrevem ações que
podem ser aplicadas ao objeto. Termos do tipo sujeito descrevem uma pessoa ou grupo
e quais ações executam. Termos do tipo estado definem o significado de um estado ou
situação e ações que precedem o mesmo. Os impactos de um termo do tipo estado
devem descrever outros estados e ações que podem ocorrer a partir do estado inicial. A
Tabela 1.1 abaixo resume as heurísticas a serem observadas na modelagem do LAL.
NOÇÃO
IMPACTO
Sujeito
Quem é o sujeito?
Quais ações são feitas?
Verbo
Quem faz, quando acontece e que
procedimentos estão envolvidos
Quais são os impactos da ação no
ambiente (UdI), isto é, que outras
ações também ocorrem, e quais
são os estados resultantes.
Objeto
Define o objeto e identifica outros
objetos com os quais ele se
relaciona.
Ações que são aplicadas ao
objeto.
Estado
O que significa e quais ações
levaram a este estado.
Identifica outros estados e ações
que podem ocorrer a partir do
estado aqui descrito.
Julio César Sampaio do Prado Leite
Tabela 1.1: Regras de Formação do LAL
1.4.5.
Analisando o LAL
O léxico pode ser analisado de diversas maneiras, utilizando ou não uma interação com
os atores do UdI que não os engenheiros de requisitos.
De uma maneira geral a análise por outros que não o engenheiro de software, dá-se por
meio de leitura “ad-hoc”.
No entanto existe um processo bem definido de inspeção de léxicos [Kaplan 00] que
pode ser utilizado para garantir-se a qualidade dos léxicos produzidos. Esse processo é
de responsabilidade dos engenheiros de requisitos.
Abaixo citamos um trecho de [Kaplan 00] que descreve sucintamente o processo. Vale
referir que o símbolo DEO utilizado refere-se a Discrepancias, Erros e Omissões.
“El método de inspección propuesto es similar al utilizado en (Porter et al.
1995).Porter denomina a su método “Scenario-based”. En el caso descripto en este
artículo, se dispone de una taxonomía de defectos, lo que a su vez permite utilizar
procedimientos específicos, los que están anclados en formularios que sirven de guía
para el inspector. Cada procedimiento está asociado a un formulario y cada formulario
se constituye en lo que Porter llama “scenario”.
La fase de planeamiento consiste en la selección del material a inspeccionar, la
elección de los participantes, la identificación de los roles (inspector, moderador y
escriba) y la preparación del material a inspeccionar: el LEL, los formularios de
inspección a completar y la guía de instrucciones.
La fase de preparación es realizada por el inspector una vez que recibe el material y
una copia del plan de inspección. La preparación consiste primero en la lectura
cuidadosa de las instrucciones y luego en completar los formularios de inspección,
registrando toda DEO detectada.
La fase de reunión apunta principalmente a confirmar o rechazar las DEO detectadas y
secundariamente a descubrir nuevas DEO. En la reunión participan un moderador, un
escriba, el inspector y los autores del LEL. Los autores convocados a la
reuniónrealizan posteriormente las correcciones necesarias al LEL.” Os Defeitos
foram classificados por Kaplan et. al. [Kaplan 00] como mostra a Tabela a seguir.
GRUPO
Descrição
DEFEITOS
 Símbolos mal descritos
 Símbolos incompletos
 Descrição incompatível com o tipo
Classificação

Classificação incorreta
Identificação





Símbolos omitidos
Sinónimos incorrectos
Referência
Tabela 1.2 Classificação de Defeitos [Kaplan 00]
Símbolos incorretamente incluidos
Falta de referencias a outros símbolos
Mal uso de símbolos
A retro-alimentação gerada pelo processo de análise torna possível um retorno às fontes
de informação, ajudando, portanto, ao correto esclarecimento de linguagem da
aplicação. Na Figura 1.8 podemos observar de maneira clara essa retro-alimentação
através do modelo SADT [Ross 77] para a construção de LAL através das setas de saída
Lista de DEO de Validação e Lista de DEO de Verificação que serão respectivamente
controle das atividades IDENTIFICAR LISTA DE TERMOS e DESCREVER
TERMOS. É importante, também, notar que essas setas tornam possível um “loop” de
análise, fundamental para um processo baseado em qualidade.
heurísticas de
validação
UdI
LAL
classificação e heurísticas
de identificação
UdI
técnicas de
elicitação
IDENTIFICAR
FONTES DE
INFORMAÇÃO
UdI
lista das
fontes de
informação
VALIDAR
LAL
lista DEO
de
validação
checklist
heurísticas de seleção
de termos
critério de
ordenação lista de
heurísticas de
verificação
LAL
termos
IDENTIFICAR
LISTA DE
TERMOS
classificação
geral critério de
VERIFICAR LAL
classificação
heurísticas de
representação
lista de
termos
CLASSIFICAR classificados
TERMOS
modelo
do LAL tipos
lista DEO de
verificação
lista das fontes de informação
UdI
DESCREVER
TERMOS
LAL
lista das fontes de informação
Figura 1. 8 - Processo de Construção do LAL
1.5
Construção de Ontologias
1.5.1 Introdução
Em nossa visão, a modelagem de ontologias deve ser realizada durante a fase de
requisitos. Para apoiar o desenvolvimento de ontologias, que já foi apontado como uma
arte ao invés de ciência, propomos um processo baseado no Léxico Ampliado da
Linguagem. A maior vantagem deste enfoque é poder contar com um método maduro
para auxiliar na tarefa de elicitação, modelagem e validação dos conceitos e
relacionamentos do Universo de Informação. O processo de construção do Léxico é
estruturado e segue princípios sólidos de engenharia de Software e técnicas já
estabelecidas para a captura, modelagem e posterior validação da informação modelada
[Kaplan00] . O LAL provê a linguagem comum para a comunicação informal entre os
interessados no processo de desenvolvimento de software, e.g.., clientes, usuários,
desenvolvedores enquanto que ontologias fornecem esta linguagem de modo mais
formal, permitindo o compartilhamento de informações entre máquinas e agentes de
software. Na próxima seção, detalhamos o processo que serve como ponte entre a
representação do LAL e ontologias. Na seção 2 revisamos algumas das definições de
ontologias presentes na literatura. No restante deste documento adotaremos a definição
proposta por Maedche [Maedche02].
C
rel
HC
R
AO
Lv Lo Lsj Lst
Ontologia
Léxico
Figura 1.9 - Processo de construção de ontologias
1.5.2 Processo Semi-automático para Construção de Ontologias
Por utilizar o LAL, o processo proposto em [Breitman03] leva em conta as tarefas de
elicitação, modelagem e análise para explicitar e comunicar o conhecimento do UdI.
Este processo mapeia os termos do LAL nos elementos da ontologia. Figura 1.7, a
seguir, ilustra a ídeia central do processo para a construção de ontologias proposto.
Neste processo, os termos do tipo objeto e sujeito são mapeados em conceitos;
os termos do tipo verbo são mapeados em propriedades; os termos do tipo estado são
mapeados em conceitos ou propriedades; a noção de cada termo é mapeada na
descrição do respectivo conceito; e através da lista de impactos de cada termo do
léxico mapeia-se o verbo em propriedades e o predicado em restrições dos conceitos.
A Tabela 1.3, a seguir, resume este mapeamento.
Elementos do LAL
Elementos da Ontologia
Termo (ou símbolo)
- Tipo
- Objeto e Sujeito
Conceitos
- Estado
Conceito ou axioma
- Verbo
Propriedade
- Noção
Descrição
- Impacto
- Verbo
Propriedade
- Predicado (termos)
Conceitos ou Axiomas
Tabela 1.3 – Mapeamento entre os elementos do LAL e os da Ontologia
O processo para construção de ontologias que utilizamos, é independente da
linguagem de implementação da ontologia. A ontologia resultante será expressa através
de suas primitivas básicas, i.e., conceitos, propriedades, hierarquia (de conceitos),
restrições (funções que relacionam dois ou mais conceitos utilizando propriedades) e
axiomas. O processo é ilustrado através da Figura 1.10 e detalhado a seguir, em seis
passos seqüenciais.
Checar
propriedade
R
Nova
propriedade R
R
ve
rb
o
C
HC
Nova
classe C
objeto
Listar
termos
Verificar
impactos
Nova rel
rel
sujeito
léxico
V
E
R
I
F
I
C
A
R
Identificar
hierarquia
ontologia
HC
estado
Analisar
impactos
Avaliar
importância
Identificar
classes
disjuntas
AO
Figura 1.10 - Detalhamento do processo de construção de ontologias [Breitman03]
1. Listar os termos alfabeticamente de acordo com seu tipo (verbo, objeto,
sujeito ou estado)
2. Fazer 3 listas: conceito (classe) (C), propriedade (R) e axiomas (AO). Na
lista de classes cada entrada terá um nome, descrição (linguagem natural) e
uma lista contendo zero ou mais rel ( função que relaciona o conceito em
questão a outros, de maneira não taxonômica). As entradas na lista de
axiomas terão nomes (labels) somente.
3. Utilizando a lista de símbolos do léxico classificados como sujeito ou
objeto, para cada termo:
3.1Adicione uma nova classe a lista de classes. O nome da classe é o
símbolo do léxico propriamente dito. A descrição da classe é a noção do
termo.
3.1.1Para cada impacto,
3.1.1.1Checar se já faz parte da lista de propriedades da
ontologia.
3.1.1.2Caso não faça parte da lista (a propriedade ainda não
existe),
adicione
uma
nova
propriedade
na
lista
(de
propriedades). O nome da propriedade deve ser baseado no verbo
utilizado para descrever o impacto
3.1.1.2.1Verificar consistência.
3.1.1.3Na lista de classes adicione uma nova rel para a classe em
questão. A rel é formada pela classe + a propriedade (definida
em 3.1.1.1) + a classe relacionada (esta classe é o objeto
direto/indireto do verbo utilizado no impacto do símbolo do
léxico. Usualmente é um termo do próprio léxico e aparece
sublinhado).
3.1.1.4Checar se existem indicativos de negação no vocabulário
mínimo que relacionem duas ou mais classes. Verificar se estas
classes possuem um relacionamento do tipo disjuntas (exemplo
macho e fêmea).
3.1.1.4.1Se verdadeiro, adicionar o disjoint a lista de
axiomas.
3.2Verificar consistência.
4.Utilizando a lista de símbolos classificados como tipo verbo, para cada
termo:
4.1.1Checar se já faz parte da lista de propriedades da ontologia.
4.1.1.1Caso não faça parte da lista (a propriedade não existe),
adicione uma nova propriedade na lista (de propriedades). O
nome da propriedade é o símbolo do léxico propriamente dito.
4.1.1.1.1Verificar consistência.
5. Utilizando a lista de símbolos classificados como tipo estado, para cada
termo:
5.1.1Para cada impacto
5.1.1.1Tentar identificar a importância relativa do termo para a
ontologia. Esta estratégia é similar a utilização de questões de
competência proposta em [Gruninger95]. Estas questões são
obtidas através do refraseamento dos impactos de cada símbolo
em perguntas inciadas por quando, onde, o quê, quem, porque, e
como.
5.1.1.2Checar se existem indicativos de negação no vocabulário
mínimo que relacionem duas ou mais classes. Verificar se estas
classes possuem um relacionamento do tipo disjunto (exemplo
macho e fêmea)
5.1.1.2.1Se verdadeiro, adicionar o disjoint a lista de
axiomas.
5.1.2 Caso o termo seja central a ontologia, classifique-o como
classe (C)).
5.1.3Caso contrário (o termo não é central para a ontologia)
classifique-o como propriedade (R).
5.14Verificar consistência.
6. Quando todos os termos tiverem sido adicionados à ontologia,
6.1Checar se existe conjuntos de conceitos que compartilham rel
idênticos
6.1.1Para cada conjunto de conceito que compartilha rel, construir
uma lista de conceitos separados
6.1.2Buscar na ontologia conceitos que fazem referência a todos os
membros desta lista
6.1.2.1Se não forem encontrados, busca na noção e no impacto
de cada membro da lista de conceitos tentando identificar um
termo comum do vocabulário mínimo
6.1.3Construir uma hierarquia de conceitos onde todos os membros
da lista de conceitos é um sub-conceito do conceito encontrado em
6.1.2.
6.1.4Verificar consistência
Os cinco primeiros passos da ontologia se referem ao processo de inclusão de
novos elementos na ontologia, a partir do LAL. Este processo é realizado para cada um
dos termos listados no LAL. Dependendo do tipo, o procedimento para inclusão é
diferenciado. Note que para alguns tipos, e.g., sujeito, a inclusão é automática - o termo
é classificado como conceito da ontologia e deve ser adicionado como tal. Para os
termos do tipo estado é necessária a intervenção do usuário para decidir se deve ser
modelado como conceito ou como propriedade. Repare que para cada etapa de inclusão
de novo elemento na ontologia, uma verificação de consistência é necessária.
A sexta etapa do processo consiste na análise da ontologia de modo a identificar
conceitos que possam estar relacionados hierarquicamente. A diferença essencial entre
as representações do LAL, ou qualquer outro dicionário, e a de ontologias é que o
primeiro não dispõe de hierarquias de forma explícita, diferenciando-se das ontologias,
que tem uma estrutura arborescente. Desta forma, durante o processo de mapeamento do
LAL para ontologia é necessário identificar manualmente estes tipos de relacionamento.
A Figura 1.11 a seguir exemplifica uma dos passos do processo. Neste exemplo
estamos construindo uma ontologia para um sistema de agendamento de reuniões. Na
Figura representamos o termo do LAL que designa um substituto, pessoa que pode ir a
uma reunião no lugar de outra, e o processo que sofreu de modo a ser incluído na
ontologia. Como o termo substituto é do tipo sujeito, o passo 3 foi aplicado sobre o
mesmo. Segundo as diretivas do processo, foi criada na ontologia uma nova classe
(conceito) sujeito e utilizamos a noção do mesmo para preencher o campo descrição da
classe. Na sequência iremos analisar cada um de seus impactos de modo a estabelecer
relacionamentos entre a nova classe sujeito e outras da ontologia.
Substituto
Noções:
tipo: sujeito
Pessoa que está presente na reunião no lugar de outra.
Ele ou ela foram escolhidos pela pessoa convidada para a
renião.
Símbolo do Léxico
Impactos:
Se não pode estar presente na reunião, manda notificação.
Se puder estar presente na reunião, manda confirmação.
É aprovado(a) pelo iniciador da reunião.
Processo
3.1
Adicione uma nova classe a lista de
classes. O nome da classe é o símbolo do
léxico propriamente dito. A descrição da
classe é a noção do termo.
3.1.1 Para cada impacto,
ontologia
Substituto
Descrição: (Documentação em DAML+ OIL):
Pessoa que está presente na reunião no
lugar de outra. Ele ou ela foram
escolhidos pela pessoa convidada
para a renião.
Figura 1.11 - Processo de construção de ontologias a partir do léxico.
Nesta seção apresentamos o processo para a construção de ontologias baseado no
LAL. Utilizamos o plug in de ontologias da ferramenta de software livre C&L, que
implementa o processo e, portanto, fornece apoio automatizado ao mesmo. No entanto o
processo proposto é independente da ferramenta de edição de ontologia. na seção 7
apresentamos uma discussão acerca de ferramentas similares ao plug in do C&L e
ilustramos alguns passos do processo utilizando a ferramenta OILed. No próxima seção
apresentamos um exemplo comentado do processo de geração da ontologia das
sobremesas.
1.6
Exemplo
1.6.1 Introdução
Nesta seção apresentaremos um exemplo de construção de uma ontologia a partir do
LAL das sobremesas oferecidas por um restaurante. Neste exemplo modelamos o
conjunto de sobremesas oferecidas por um restaurante da nossa Universidade. Este
restaurante oferece 4 tipos de sobremesas: tortas, pudins, musses e frutas. As tortas
podem ser de chocolate ou frutas. Podem ter um ou mais recheios e cobertura opcional.
Somente são servidas musses de frutas. As frutas, servidas naturais ou em forma de
compota são: morango, abacaxi, maça. Algumas sobremesas podem ser servidas
quentes.
A seguir apresentamos o LAL das sobremesas. Note que os termos refletem a
interpretação local do termo ao contrário da intuitiva. O termo fruta, por exemplo, é
composto pelas frutas morango, abacaxi, maça apenas.
Base
Biscoito/
Torta
biscoito/Biscoito/Biscoitos
tipo: objeto
de
Compota
tipo: objeto
Noções:
Sobremesa feita a partir de frutas.
Noções:
Sobremesa de corte cuja massa é
elaborada com biscoitos ao invés de
farinha de trigo.
Impactos:
Tem massa de biscoito.
Impactos:
É cozida.
Doce
tipo: estado
Noções:
Sensação gustativa
Base
Massa/
Massa/Massa
Torta
de
tipo: objeto
Impactos:
Todas as sobremesas são doces
Noções:
Sobremesa de corte cuja massa é
elaborada com farinha de trigo.
Impactos:
Tem massa de pao de ló.
Escolher sobremesa
verbo
tipo:
Noções:
Ato de selecionar a sobremesa desejada.
Impactos:
Escolha restrita a tortas, mousses, frutas
ou pudim.
Fria
tipo: estado
Pudim
tipo: objeto
Noções:
Noções:
Temperaturas entre 5° e 15°
Sobremesa láctea.
Impactos:
Impactos:
Sobremesas
geladeira.
frias
são
mantidas
na
É servido frio.
Tem calda de fruta.
Fruta/Frutas
tipo: objeto
Noções:
Quente
tipo: estado
Sobremesa natural perecível. Pode ser
maça, morangoe abacaxi.
Noções:
Impactos:
Temperaturas entre 15° e 30°
Serve de base para a elaboração de outras
sobremesas: musses e tortas.
Mousse
tipo: objeto
Impactos:
Sobremesas
microondas.
são
aquecidas
no
Para
Noções:
tipo: objeto
Sobremesa leve.
Torta Mousse
Impactos:
Noções:
Sabores de frutas.
Sobremesa leve feita de base de massa e
recheada de mousse.
É apresentada fria.
Impactos:
É apresentada fria.
Natural
tipo: estado
Noções:
Torta/Tortas
tipo: objeto
Estado da fruta quando nenhum processo
foi aplicado.
Noções:
Impactos:
Sobremesa de corte de sabores variados.
Servida fria
Impactos:
Pode ser de fruta ou chocolate.
Pode ter cobertura.
Pode ser servida fria ou quente.
Pode ter um ou mais recheios.
Na próxima seção introduzimos o plug in de ontologias para a ferramenta de
software livre C&L. Este plug in foi desenvolvido de modo a oferecer suporte
automatizado ao processo de construção de ontologias descrito na seção anterior.
Implementaremos o exemplo desta seção utilizando esta ferramenta. Não obstante, o
processo pode ser implementado utilizando-se qualquer ferramenta de edição de
ontologias. na seção 7 exemplificamos como o processo proposto poderia ser utilizado
em conjunto com a ferramenta OILEd.
1.6.2 Ferramenta C&L
De modo a prover apoio semi-automático ao processo de construção de ontologias a
partir do LAL, desenvolvemos um plug-in para a ferramenta C&L. C&L é uma
ferramenta de apoio à engenharia de requisitos e tem como objetivo principal a edição
de Cenários e LAL. O C&L foi desenvolvido a partir de um projeto de software livre
que vem sendo evoluído por um grupo de estudantes graduandos, mestrandos e
doutorandos do Departamento de Informática da PUC-Rio. Projetos desenvolvidos
segundo a filosofia de software livre disponibilizam seus sistemas gratuitamente e
colocam à disposição todos os códigos-fonte gerados para que sejam distribuídos e
alterados livremente.
Este tipo de software ganhou muita exposição com projetos como o Linux e
Apache, mas, a comunidade de software livre, não se restringe de maneira alguma a
apenas esses dois nomes. Existem diversos outros projetos famosos como o Mozilla,
Jboss ou mesmo o CVS e também milhares de outros que não tem a mesma divulgação,
mas, nem por isso, perdem em qualidade para seus concorrentes comerciais.
Atualmente, existem muitos projetos de software livre em andamento, dos quais
diversos com um nível de sucesso igual ou mesmo superior aos seus equivalentes
comerciais.
Todo o C&L é desenvolvido e disponibilizado utilizando software livre. A
linguagem PHP [PHP04] é a linguagem de implementação. O banco de dados escolhido
para armazenar as informações é o MySQL. O software do servidor Web é o Apache. O
software CVS é o responsável pelo controle de versão e gerenciamento dos códigosfonte do C&L.
As funcionalidades oferecidas pelo C&L estão resumidas na Tabela 1.4. O plugin desenvolvido para geração semi-automática de ontologias utiliza como dados de
entrada o léxico de um projeto já editado e, gera como saída, uma ontologia em um
arquivo do tipo daml, padrao W3C.
Funcionalidades Gerais:
- Criar projeto e seu administrador;
- Cadastrar usuário no projeto;
- Verificar e aprovar ou rejeitar pedidos de alterações nos cenários;
- Verificar e aprovar ou rejeitar pedidos de alterações nos termos do léxico;
- Verificar e aprovar ou rejeitar pedidos de alterações nos conceitos;
- Verificar e aprovar ou rejeitar pedidos de alterações nos relações;
- Gerar Ontologia do projeto.
Funcionalidades de edição do LAL:
- Edição: criar, alterar ou remover;
- Marcação automática dos termos do LAL, seus sinônimos e nomes dos cenários;
- Verificação de consistência em consequência da remoção de termos.
Funcionalidades de edição dos Cenários:
- Edição: criar, alterar ou remover;
- Marcação automática dos termos do LAL, seus sinônimos e nomes dos cenários;
- Verificação de consistência em consequência da remoção de cenários.
Funcionalidades de Entradas e Saídas:
- Gerar XML do projeto;
- Recuperar XML do projeto;
- Gerar DAML da ontologia do projeto;
- Histórico em DAML da ontologia do projeto.
Tabela 1.4 – Principais funcionalidades da ferramenta C&L
A ferramenta implementa dois níveis de acesso ao sistema: usuário e
administrador. Somente o administrador e usuários participantes de um projeto podem
visualizar, criar, alterar e remover termos do léxico e dos cenários de um projeto. Vale
ressaltar que, as operações de edição em um projeto pelos seus usuários, precisam ser
aprovadas pelo administrador do projeto antes de serem disponibilizadas no sistema
(efetivadas).
As seguintes funcionalidades exclusivas do administrador de projeto são citadas:
remover o projeto, verificar os pedidos de alteração dos cenários e dos termos do léxico,
adicionar novos usuários no projeto, gerar e recuperar o projeto descrito tanto na
linguagem XML quanto na linguagem DAML+OIL .
A ferramenta implementa a natureza de hipergrafo do léxico através da criação
de links (atalhos) entre os termos, tanto descritos no léxico quanto descritos nos
cenários. Esses links são criados automaticamente quando termos já cadastrados no
projeto são referenciados. Assim, a facilidade de navegabilidade entre os conceitos do
domínio, permite melhor compreensão dos seus relacionamentos.
A arquitetura modular do C&L prevê a adição de novos plug-ins no ambiente.
Um exemplo é o plug-in de ontologias, que fornece apoio semi-automático à geração de
ontologias tendo como base o Léxico Ampliado da Linguagem (LAL) [Leite93] e o
processo definido em [Breitman03]. As funcionalidades dos plug-ins no C&L são
disponibilizadas de forma transparente, ou seja, como se fossem funcionalidades do
sistema. Na próxima seção vamos mostrar a implementação da ontologia das
sobremesas utilizando o processo de construção de ontologias baseado no LAL.
Utilizaremos o léxico da seção 6.1 como ponto de partida.
1.6.3 Exemplo
Nesta seção exemplificamos a dinâmica do processo de construção de ontologias,
através da construção da ontologia de sobremesas. A seguir, apresentamos o processo
descrito na seção anterior, ilustrado pela Figura 1.8, mostrando como cada passo foi
implementado através do plug in de ontologias da ferramenta C&L. Tal plug-in
automatiza uma quantidade razoável das tarefas de geração de ontologias e oferece
sugestões para o usuário quando é necessária a sua intervenção.
1. Listar os termos alfabeticamente de acordo com seu tipo (verbo, objeto,
sujeito ou estado)
OBJETO
Base biscoito
VERBO
Escolher
sobremesa
ESTADO
Doce
Base massa
Fria
Compota
Fruta
Natural
Quente
Musse
Pudim
Sobremesa
Torta musse
Torta
2. Fazer 3 listas: conceito (classe) (C), propriedade (R) e axiomas (AO). Na
lista de classes cada entrada terá um nome, descrição (linguagem natural) e
uma lista contendo zero ou mais rel (função que relaciona o conceito em
questão a outros, de maneira não taxonômica). As entradas na lista de
axiomas terão nomes (labels) somente.
CLASSE
PROPRIEDADE
AXIOMA
Nome:
Nome:
Nome:
Nome:
Nome:
Nome:
lNome:
Descrição:
Restrições:
Nome:
Descrição:
Restrições:
Nome:
3
Descrição:
Utilizando a lista de símbolos do léxico classificados como sujeito ou
Restrições:
objeto, para
cada termo:
3.1 Adicione uma nova classe a lista de classes. O nome da classe é o
símbolo do léxico propriamente dito. A descrição da classe é a noção do
termo.
Os itens 1, 2 e 3 foram totalmente automatizados pelo plug-in de ontologia da
ferramenta C&L, sendo desnecessária a intervenção do usuário. Os itens 1 e 2
representam a fase inicial do processo em que são criadas as listas de conceitos, relações
e axiomas onde são inseridos os respectivos elementos da ontologia durante o restante
do processo. No item 3, inicia-se o processo de identificação dos elementos da
ontologia. Os termos do LAL classificados como objeto e sujeito são inseridos na lista
de conceitos e suas respectivas noções são inseridas como descrições de tais conceitos.
O processo inicia a verificação dos impactos de cada termo do LAL:
3.1.1. Para cada impacto,
3.1.1.1.Checar se já faz parte da lista de propriedades da
ontologia.
3.1.1.2.Caso não faça parte da lista (a propriedade ainda não
existe), adicione uma nova propriedade na lista (de
propriedades). O nome da propriedade deve ser baseado
no verbo utilizado para descrever o impacto
3.1.1.2.1. Verificar consistência.
3.1.1.3.Na lista de classes adicione uma nova rel para a classe
em questão. A rel é formada pela classe + a propriedade
(definida em 3.1.1.1) + a classe relacionada (esta classe é
o objeto direto/indireto do verbo utilizado no impacto do
símbolo do léxico. Usualmente é um termo do próprio
léxico e aparece sublinhado).
O verbo de cada um dos impactos do termo do léxico é cadastrado na lista de
propriedades da ontologia e o usuário deve identificar se no restante do impacto há
conceitos (ainda não cadastrados) que devem fazer parte da ontologia. A ferramenta
infere sobre esses novos conceitos quando encontra algum deles ou parte deles
cadastrado na lista de conceitos das ontologias ou na lista dos termos do LAL do tipo
sujeito ou objeto.
É importante ressaltar que se existir um conceito composto (conceito formado
por mais de uma palavra) em que apenas parte dele já foi cadastrada, o processo guia o
usuário a cadastrar apenas a sua parte faltante e não o conceito composto. Por exemplo,
se apenas o conceito massa estiver cadastrado no LAL e existir um impacto base de
biscoito tem massa de biscoito, então, o processo infere que apenas o termo massa é o
novo conceito e não massa de biscoito como seria o correto. Inferências errôneas
(sugestões errôneas) podem ser evitadas quando se utiliza às heurísticas definidas em
para escrever o LAL, vide seção 4.
Na Figura 1.10, ilustramos como o plug-in identifica cada termo do impacto.
Inicialmente, é identificado o conceito no impacto e inferido que o restante desse
impacto é a nova propriedade. Em seguida, tenta-se encontrar qual é o termo referente
à propriedade e qual é referente ao conceito do relacionamento descrito por este
impacto. Para isto, é verificado na lista de propriedades da ontologia se o primeiro termo
dessa nova propriedade já está cadastrado. Em caso afirmativo, a própria ferramenta
seleciona a propriedade cadastrada. Cabe ao usuário aceitar ou não as inferências da
ferramenta e conduzir o processo da forma correta.
Figura 1.10 – Interface do C&L quanto à extração dos elementos da ontologias
do Impacto dos termos do LAL – identificando conceitos e relações
O processo verifica a existência de termos disjuntos:
5.1.1.2Checar se existem indicativos de negação no vocabulário
mínimo que relacionem duas ou mais classes. Verificar se estas
classes possuem um relacionamento do tipo disjunto (exemplo
macho e fêmea)
5.1.1.2.1Se verdadeiro, adicionar o disjoint a lista de
axiomas.
5.1.2Caso o termo seja central a ontologia, classifique-o como classe
(C)).
5.1.3Caso contrário (o termo não é central para a ontologia)
classifique-o como propriedade (R).
5.14Verificar consistência.
Nos itens 3.1.1.4, 3.1.1.4.1 e 3.2, é descrito como o processo procede na análise
de algum termo disjunto do conceito em análise. Caso exista, o usuário pode selecionálo na lista de conceitos da ontologia (namespace próprio) ou referenciá-lo de uma outra
ontologia existente, bastando para isto, informar seu namespace de referência.
Ilustramos tais itens na Figura 1.11.
Figura 1.11 – Interface do C&L quanto à extração dos elementos da ontologias
do Impacto dos termos do LAL – identificando axiomas
O processo passa a classificar os termos do LAL do tipo verbo:
4 Utilizando a lista de símbolos classificados como tipo verbo, para cada
termo:
4.1.1 Checar se já faz parte da lista de propriedades da ontologia.
4.2.1.1Caso não faça parte da lista (a propriedade não existe),
adicione uma nova propriedade na lista (de propriedades). O
nome da propriedade é o símbolo do léxico propriamente dito.
4.1.1.1.1 Verificar consistência.
Normalmente, os termos do LAL do tipo verbo são classificados como
propriedades na ontologia gerada. No entanto, é necessário a intervenção do usuário
caso a propriedade ainda não esteja cadastrada. A Figura 1.12 ilustra essa situação. Será
preciso que o usuário clique em “Inserir Verbo” para o novo cadastro e para prosseguir
no processo.
Figura 1.12– Interface do C&L quanto à classificação dos termos do LAL do
tipo verbo
O processo passa a classificar os termos do LAL do tipo estado:
Utilizando a lista de símbolos classificados como tipo estado, para cada
termo:
5. Utilizando a lista de símbolos classificados como tipo estado, para cada
termo:
5.1.1Para cada impacto
5.1.1.1Tentar identificar a importância relativa do termo para a
ontologia. Esta estratégia é similar a utilização de questões de
competência proposta em [Gruninger95]. Estas questões são
obtidas através do refraseamento dos impactos de cada símbolo
em perguntas inciadas por quando, onde, o quê, quem, porque, e
como.
5.1.1.2Checar se existem indicativos de negação no vocabulário
mínimo que relacionem duas ou mais classes. Verificar se estas
classes possuem um relacionamento do tipo disjunto (exemplo
macho e fêmea)
5.1.1.2.1Se verdadeiro, adicionar o disjoint a lista de
axiomas.
5.1.2Caso o termo seja central a ontologia, classifique-o como classe
(C)).
5.1.3Caso contrário (o termo não é central para a ontologia)
classifique-o como propriedade (R).
5.14Verificar consistência.
Como dito nos itens 5.1.2 e 5.1.3, cabe ao usuário classificar o termo do LAL do tipo
estado como conceito ou propriedade. Realizado esse passo, a ferramenta o conduzirá
da mesma forma se o termo fosse originalmente sujeito ou objeto, isto é, caso o
classifique como um novo conceito, então, a ferramenta o conduzirá para o passo 3 do
processo; caso o classifique como um novo relacionamento, a ferramenta o conduzirá
para o passo 4.
Figura 1.13 – Interface do C&L quanto à classificação dos termos do LAL do
tipo Estado
Finalização do processo:
6. Quando todos os termos tiverem sido adicionados à ontologia,
6.1Checar se existe conjuntos de conceitos que compartilham rel
idênticos
6.1.1Para cada conjunto de conceito que compartilha rel, construir
uma lista de conceitos separados
6.1.2Buscar na ontologia conceitos que fazem referência a todos os
membros desta lista
6.1.2.1Se não forem encontrados, busca na noção e no impacto
de cada membro da lista de conceitos tentando identificar um
termo comum do vocabulário mínimo
6.1.3Construir uma hierarquia de conceitos onde todos os membros
da lista de conceitos é um sub-conceito do conceito encontrado em
6.1.2.
6.1.4Verificar consistência
Concluídos os passos de identificação dos conceitos, relações e axiomas da
ontologia a partir do LAL, é necessário que o usuário construa a hierarquia desses
conceitos. Na Figura 1.13, ilustramos a interface do C&L para criação de tal hierarquia.
Observamos duas listas idênticas contendo todos os conceitos cadastrados na ontologia.
O usuário deve relacionar cada conceito do tipo pai (mais abstrato) da lista a esquerda
com os conceitos do tipo filho (mais específico) na lista a direita.
Conforme descrito acima, a ferramenta foi construída de modo a minimizar o
número de intervenções do usuário. Isto acontece porque a medida em que o processo
vai avançando, novas informações são cadastradas e inferidas nos passos posteriores.
Mesmo na fase inicial, quando ainda não há conceitos nem propriedades cadastradas, a
ferramenta consegue fazer algumas inferências a partir do LAL e informações já obtidas.
Por exemplo, na identificação de uma nova classe e de seu relacionamento, a ferramenta
infere como nova propriedade o restante do predicado sem o conceito já identificado.
Inferências mais precisas são realizadas com o avanço do processo. É responsabilidade
do usuário apenas cadastrar a parte da propriedade inferida referente à nova propriedade
e o restante como a nova classe do relacionamento.
1.7
Ferramentas para construção de ontologias
Existe hoje no mercado uma série de ferramentas para a edição de ontologias, no
entanto, não encontramos nenhuma que forneça apoio a um processo completo de forma
que pessoas que não são especialistas possam desenvolver suas ontologias locais. A
maioria das ferramentas disponíveis guia o usuário apenas na modelagem do
conhecimento do domínio esquecendo que é necessário antes elicitar este conhecimento.
Tratam-se, basicamente, de editores de ontologias. A seguir, descrevemos brevemente
algumas destas ferramentas e, em seguida, apresentamos uma análise do plug-in de
ontologia desenvolvido para o C&L.
O OILEd [Berchofer01] é um simples editor, o “NotePad” dos editores de
ontologias. Ele utiliza as linguagens DAML+OIL. Sua intenção inicial é prover um
simples editor que facilite o uso e estimule o interesse na linguagem OIL. Sua versão
atual não provê suporte para nenhuma metodogia de desenvolvimento de
desenvolvimento de ontologias, como as apresentadas nas seções 3 e 5. O OILEd
também não oferece suporte a e integração, versionamento, argumentação entre
ontologias. Simplesmente, permite ao usuário escrever ontologias e demonstra como
usar o verificador FACT para checagem delas.
A obtenção de uma cópia do OILEd é fácil, basta se registrar no site
OILed.man.ac.uk para obter o editor e uma cópia do mecanismo de inferência, FaCT. A
construção de ontologias utilizando o método proposto na seção 5 é bastante simples
nesta ferramenta. Abaixo ilustramos a seqüência de passos relativos a inserção do termo
base biscoito, do exemplo das sobremesas descrito na seção 6, na ontologia.
3
Utilizando a lista de símbolos do léxico classificados como sujeito ou
objeto, para cada termo:
3.1 Adicione uma nova classe a lista de classes. O nome da classe é o símbolo
do léxico propriamente dito. A descrição da classe é a noção do termo.
Base Massa/ Torta de
Massa/Massa
tipo: objeto
Noções: Sobremesa de
corte cuja massa é
elaborada com farinha
de trigo.
Impactos: Tem massa
de pao de ló.
Está ilustrada a adição da nova classe base biscoito. Note que a descrição da
classe base biscoito da ontologia (documentation) contém exatamente a noção presente
no termo do LAL de mesmo nome. A seqüência desta ação, item 3.1.1.1 do processo,
exige que sejam analisados os impactos do termo do LAL. Caso o impacto utilize um
verbo que não pertence a lista de propriedades da ontologia, é necessário incluí-lo. É o
que reza o item 3.1.1.2 do processo, descrito e ilustrado a seguir.
3.1.1.1.Checar se já faz parte da lista de propriedades da
ontologia.
3.1.1.2.Caso não faça parte da lista (a propriedade ainda não
existe), adicione uma nova propriedade na lista (de
propriedades). O nome da propriedade deve ser baseado
no verbo utilizado para descrever o impacto.
Base Massa/ Torta de
Massa/Massa
tipo: objeto
Noções: Sobremesa de
corte cuja massa é
elaborada com farinha
de trigo.
Impactos: Tem massa
de pao de ló.
Note que a propriedade tem_massa teve de ser criada como parte da ação
necessária para incluir o equivalente ao impacto “tem massa de pão de ló". na ontologia.
Na seqüência veremos a finalização deste evento, através da criação da restrição. Esta
ação é definida no passo 3.1.1.3 do processo, a seguir.
3.1.1.3 Na lista de classes adicione uma nova rel para a classe em questão. A
rel é formada pela classe + a propriedade (definida em 3.1.1.1) + a classe relacionada
(esta classe é o objeto direto/indireto do verbo utilizado no impacto do símbolo do
léxico. Usualmente é um termo do próprio léxico e aparece sublinhado).
A verificação da consistência é realizada utilizando-se o mecanismo de
inferência FaCT, que possibilita a verificação automática ao mapear as ontologias para
uma linguagem de lógica de descrição (SHIQ-d). Os serviços oferecidos pela ferramenta
FaCT incluem detecção de inconsistências e identificação automática de
relacionamentos taxônomicos. FaCT foi implementado em LISP.
O OntoEdit [Erdmann02] é um ambiente de engenharia de ontologias em que as
fases de desenvolvimento são divididas da seguinte maneira: uma fase de especificação
de requisitos, uma fase de refinamento e uma fase de avaliação. Na fase de especificação
de requisitos, estes são coletados e devem descrever o que a ontologia dará suporte. Por
natureza, essa tarefa é realizada pelos especialistas do domínio acompanhados pelos
especialistas da modelagem. Essa fase também deverá gerar os subsídios que guiarão o
engenheiro de ontologia na decisão sobre os conceitos relevantes e sua estrutura
hierárquica na ontologia. Na fase de refinamento, uma ontologia madura é produzida e
orientada à aplicação de acordo com a especificação dada na fase anterior. O engenheiro
de ontologia pode desenvolver a hierarquia dos conceitos, relacionamentos e axiomas
tão independente quanto seja possível da linguagem de representação concreta.
No OntoEdit é armazenado o modelo conceitual da ontologia de forma que seja
possível fazer a transformação dessa representação conceitual para a maioria das
linguagens de representação de ontologias como RDF(s), XML, DAML+OIL ou FLogic. A fase de avaliação serve para provar a utilidade do desenvolvimento de
ontologias e de seu ambiente de software associado. Nela, o engenheiro de ontologia
checa se a ontologia corresponde às especificações do documento de requisitos.
O Protègè2000 é um ambiente de plataforma independente e extensível para
criação e edição de ontologias e bases de conhecimento. Permite a construção de
ontologias de domínio, formulários de entrada de dados customizados e a entrada de
dados. Possui uma biblioteca onde outros aplicativos podem acessar sua bases de
conhecimento.
O Chimaera [Chimaera03] é um sistema de software que apóia o usuário na
criação e manutenção de ontologias distribuídas na Web. Suas duas principais funções
são: combinações de múltiplas ontologias juntam e diagnóstico de ontologias
individuais ou múltiplas. Apóia o usuário nas tarefas de carregamento de bases de
conhecimento em diferentes formatos, reorganização taxionômica, resolução de
conflitos com nomes, busca de ontologias, edição de termos, etc. Sua intenção original
era combinar fragmentos de bases de conhecimento.
No ambiente de desenvolvimento C&L, temos o LAL como uma base madura
para o processo proposto em [Breitman03] de forma que uma quantidade razoável das
tarefas de geração de ontologias são automatizadas, tendo a intervenção do usuário
apenas naquelas em que haja absoluta necessidade. No entanto, ainda falta nesse
ambiente uma interface gráfica amigável para a visualização das ontologias geradas e
exportadores para as demais linguagens de representação. No entanto, não é necessário
utilizar o plug in da ferramenta C&L para implementar ontologias. Nesta seção
mostramos que o mesmo processo pode ser suportado por uma ferramenta de edição de
ontologias genérica, o OILEd, de distribuição gratuita. Na próxima seção colocamos
nossas conclusões.
1.8
Conclusão
Neste trabalho apresentamos o processo de construção de ontologias sob um
enfoque de Engenharia de Requisitos. Apresentamos as principais linguagens do tipo
mark up para ontologias e fizemos uma revisão das metodologias existentes para o
desenvolvimento de ontologias no contexto da Web semântica.
na seção 5
apresentamos a metodologia baseada no léxico apliado da linguagem (LAL). O Léxico
apoia a elicitação, modelagem e análise de conceitos e relacionamentos importantes no
Universo de Informação da aplicação. Porque a construção do léxico é baseada em um
processo bem definido, tem sido utilizado com sucesso por desenvolvedores e
especialistas em engenharia de requisitos. Termos do léxico são capturados utilizando
linguagem natural semi estruturada. Diferetemente de dicionários, que capturam
somente o significado das palavras (conotação), o léxico também captura os impactos
deste em outros termos do próprio léxico (denotação). Além disto os termos são
classificados utilizando quatro categorias pré definidas. Esta estrutura fornece o ponto
de partida para a construção de ontologias, pois algumas das categorias do léxico tem
um mapeamento direto para a ontologia.
A contribuição do método para construção de ontologias baseado no léxico, além
de fornecer um processo sistemático de construção de ontologias, é fornecer uma
solução para o problema de definição do escopo de ontologias. Definir o escopo de uma
ontologia, i.e., decidir quais termos serão incluídos e quais outros serão "emprestados"
de outra ontologia é, conhecidamente, uma difícil decisão de desenho [Goméz-Peréz04].
Nosso enfoque contribui neste sentido porque fornece uma separação clara entre os
termos que devem ser criados na ontologias (aqueles presentes no léxico) dos termos
que podem ser importados (aqueles que pertencem ao vocabulário mínimo).
Introduzimos uma ferramenta que automatiza o processo de geração de
ontologias baseadas no LAL apresentado na seção 5. Esta ferramenta está integrada no
projeto de software livre mantido pelo grupo de engenharia de requisitos da PUC-Rio.
Neste projeto, estamos investigando técnicas de engenharia de requisitos segundo as
premissas de desenvolvimento de software livre. Através dos softwares desenvolvidos
pelo grupo, pretendemos disponibilizar e divulgar métodos, técnicas e ferramentas de
qualidade a baixo custo.
Por ser uma ferramenta semi-automática, o plug-in desenvolvido permite que
usuários de um domínio escrevam suas ontologias sem, necessariamente, conhecer as
linguagens da tecnologia que lhes dá suporte. A tradução para o formato daml é
automática e transparente para o usuário, que lida todo o tempo com uma interface
gráfica, em linguagem natural.
Em nossa prática notamos que os usuários da ferramenta tiveram uma certa
dificuldade em identificar conceitos disjuntos entre termos do léxico. Acreditamos que
este seja o resultado da falta de familiaridade de alguns dos usuários com conceitos de
lógica de primeira ordem. Acreditamos poder facilitar este aspecto através de exemplos
concretos.
O plug-in desenvolvido continua em evolução. O próximo passo da
implementação será a criação de um tutorial on line do processo de construção de
ontologias. Estamos validando a ferramenta através de estudos de caso e dos
comentários e sugestões de mudança de código que temos recebido de vários usuários
da ferramenta. Conforme mencionado anteriormente, este plug in faz parte do projeto de
software livre para a criação de uma ferramenta de apoio a Engenharia de Requisitos.
Seu código pode ser solicitado através do site da ferramenta C&L.
Referências Bibliográficas
[Bechhofer01] - Sean Bechhofer, Ian Horrocks, Carole Goble, Robert Stevens. OILEd: a
Reason-able Ontology Editor for the Semantic Web. Proceedings of KI2001, Joint
German/Austrian conference on Artificial Intelligence, September 19-21, Vienna. SpringerVerlag LNAI Vol. 2174, pp 396--408. 2001.
[Berners-Lee02] – Berners-Lee, T.; Lassila, O. Hendler, J. – The Semantic Web –
Scientific American – May 2001 –
[Breitman03] - Breitman, K.K., Leite, J.C.S.P.: Ontology as a Requirements
Engineering Product, Proceedings of the International Conference on Requirements
Engineering, IEEE Computer Society Press, 2003.
[Caplan95] - Caplan, P. - You call it corn we call it syntax-independent metadata for
document like objects. The public access computer systems review 6 [on line]
[Chimaera03] – Chimaera ontology environment - www.ksl.stanford.edu/software/chimaera
[Daum02] - Daum, B.;Merten, U. - Arquitetura de Sistemas com XML - Campus, Rio
de Janeiro - 2002.
[Davies03] – Davies, J., Fensel, D.; Hamellen, F.V., editors – Towards the Semantic
Web: Ontology Driven Knowledge management – Wiley and Sons – 2003.
[Erdmann02] – Erdmann, M.; Angele, J.; Staab, S.; Studer, R. - OntoEdit: Collaborative
Ontology Development for the Semantic Web - Proceedings of the first International
Semantic Web Conference 2002 (ISWC 2002), June 9-12 2002, Sardinia, Italia
[Fensel01] – Fensel, D. – Ontologie: a silver bullet for knowledge management and
electronic commerce – Springer, 2001
[Gandon02] – Gandon, F. _ Ontology Engineering: a sinthesis – Project Acacia –
INRIA Technical Report 4396 – March 2002 – 181 pages
[Genesereth91] - M. R. Genesereth: Knowledge interchange format. In J. Allen, R.
Fikes, and E. Sandewall, editors, Principles of Knowledge Representation and
Reasoning: Proceedings of the Second International Conference (KR'91). Morgan
Kaufmann Publishers, San Francisco, California, 1991
[Geroimenko03] – Geroimenko, V.; Chen, C.; editors – Visualizing the Semantic Web:
XML Based Internet and Information Visualization – Springer, 2003.
[Godfrey00] - Godfrey, M.W., Tu, Q.: Evolution in Open Source Software: A Case
Study. ICSM2000 131-142.
[Goméz-Peréz04] - Goméz-Peréz, A.; Fernandéz-Lopéz, Corcho, O. - Ontology
Engeneering - Springer Verlag, 2004.
[Gómez-Pérez98] – Gómez-Pérez, A. – Knowledge sharing and reuse – in The
Handbook of Applied Expert Systems. CRC Press, 1998
[Gruber93] – Gruber, T.R. – A translation approach to portable ontology specifications
– Knowledge Acquisition – 5: 199-220
[Gruninger95] – Gruninger, M.; Fox, M. – Methodology for the Design and Evaluation
of Ontologies: Proceedings of the Workshop on basic Ontological Issues in
Knowledge Sharing – IJCAI-95 Canada, 1995.
[Guarino98] – Guarino, N. – Formal Ontology and information systems – In
Proceedings of the FOIS’98 – Formal Ontology in Information Systems, Trento –
1998.
[Heflin01] – Heflin, J.; Hendler, J. – A portrait of the Semantic Web in Action - IEEE
Intelligent Systems – March/April - 2001. pp.54-59.
[Heflin99] - Heflin, J.; Hendler, J.;Luke, S. - SHOE: A Knowledge Representation
Language for Internet Applications. Technical Report CS-TR-4078 (UMIACS TR99-71). 1999.
[Hendler01] - Hendler, J. – Agents and the Semantic Web – IEEE Intelligent Systems –
March/April - 2001. pp.30-37
[Hjelm01] – Hjelm, H. – Creating the Semantic Web with RDF – Wiley- 2001
[Jasper99] - Jasper, R.; Ushold, M. - A framework for understanding and classifying
ontology applications - Proceedings of the 12th International Workshop on
Knowledge Acquisition Modeling and Management (KAW´99) - Banff, Canada 1999.
[Kaplan 00] Inspección Del Lexico Extendido Del Lenguaje. Gladys N. Kaplan,
Graciela D.S. Hadad, Jorge H. Doorn, Julio C. S. P. Leite. Anais do WER00 Workshop em Engenharia de Requisitos, Rio de Janeiro-RJ, Brasil, Julho 13-14, 2000,
pp 70-91.
[Leite 01] Qualidade de Software: Teoria e Prática, Orgs. Rocha, Maldonado, Weber,
Prentice-Hall, São Paulo, 2001 Capítulo 17.
[Leite 90] Leite, J.C.S.P., Franco, A.P.M.: O Uso de Hipertexto na Elicitaçao de
Linguagens da Aplicaçao, Anais de IV Simpósio Brasilero de Engenharia de Software.
SBC, Brazil (1990) pp. 134-149.
[Leite93] - Leite, J.C.S.P., Franco, A.P.M.: A Strategy for Conceptual Model
Acquisition. First International Symposium on Requirements Engineering.
Proceedings. IEEE Computer Society Press, 1993. pp. 243-246.
[Maedche02] – Maedche, A. – Ontology Learning for the Sematic Web – Kluwer
Academic Publishers – 2002.
[PHP04] - PHP: Hypertext Preprocessor, disponível em: http://www.php.net, acesso
em Maio de 2004.
[Ross 77] Ross, D. Structured Analysis (SA): A Language forCommunicating Ideas. In
{\it Tutorial on Design Techniques\/}, Freemanand Wasserman, Eds., IEEE Computer
Society Press, Long Beach, CA 1980, pp. 107-125.
[Ushold96] - Ushold, M.; Gruninger, M. – Ontologies: Principles, Methods and
Applications. Knowledge Engineering Review, Vol. 11 No. 2 – 1996. pp. 93-136
http://info.lib.uh.edu/pr/v6/n4/capl6n4.html
Referências Adicionais
Livros
[Davies03] – Davies, J., Fensel, D.; Hamellen, F.V., editors – Towards the Semantic Web: Ontology
Driven Knowledge management – Wiley and Sons – 2003.
[Fensel01] – Fensel, D. – Ontologie: a silver bullet for knowledge management and electronic commerce
– Springer, 2001
[Fensel03] – Fensel, D.; Wahlster, W.; Berners-Lee, T.; editors – Spinning the Semantic Web – MIT
Press, Cambridge Massachusetts, 2003.
[Geroimenko03] – Geroimenko, V.; Chen, C.; editors – Visualizing the Semantic Web: XML Based
Internet and Information Visualization – Springer, 2003.
[Goméz-Peréz04] - Goméz-Peréz, A.; Fernandéz-Lopéz, Corcho, O. - Ontology Engeneering - Springer
Verlag, 2004.
[Hjelm01] – Hjelm, H. – Creating the Semantic Web with RDF – Wiley- 2001
[Maedche02] – Maedche, A. – Ontology Learning for the Sematic Web – Kluwer Academic Publishers –
2002.
[Sowa00] – Sowa, J. F. – Knowledge Representation: Logical, Philosophical and Computational
Foundations – Brooks/Cole Books, Pacific Grove, CA – 2000.
Ferramentas
[OILEd site] - http://OILed.man.ac.uk/
[Erdmann02] – Erdmann, M.; Angele, J.; Staab, S.; Studer, R. - OntoEdit: Collaborative Ontology Development for
the Semantic Web - Proceedings of the first International Semantic Web Conference 2002 (ISWC 2002), June 9-12
2002, Sardinia, Italia
[Bechhofer01] - Sean Bechhofer, Ian Horrocks, Carole Goble, Robert Stevens. OILEd: a Reason-able Ontology
Editor for the Semantic Web. Proceedings of KI2001, Joint German/Austrian conference on Artificial Intelligence,
September 19-21, Vienna. Springer-Verlag LNAI Vol. 2174, pp 396--408. 2001.
[McGuiness02] – McGuiness, D.; Fikes, R..; Rice, J.; Wilder, S. – An Environment for Merging and Testing Large
Ontologies – Proceedings of the Seventh International Conference on Principles of Knowledge Representation and
Reasoning (KR-2000), Brekenridge, Colorado, April 12-15, San Francisco: Morgan Kaufmann. 2002. pp.483-493.
[Chimaera00] – Chimaera ontology environment - www.ksl.stanford.edu/software/chimaera
[FaCT] – Fast Classification of Terminologies – TOOL - http://www.cs.man.ac.uk/~horrocks/FaCT/
[Noy01-b] – Noy, N.; Sintek, M.; Decker, S.; Crubezy, R.; Fergerson, R.; Musen, A. – Creating Semantic Web
Contents with Protégé 2000 – IEEE Intelligent Systems Vol. 16 No. 2, 2001. pp. 60-71
Métodos
[Fernandez-Lopez97]- M. Fernandez, A. Gomez-Perez, and N. Juristo. METHONTOLOGY: From Ontological Arts
Towards Ontological Engineering. In Proceedings of the AAAI97 Spring Symposium Series on Ontological
Engineering, Stanford, USA, pages 33--40, March 1997.
[Gómez-Pérez98] – Gómez-Pérez, A. – Knowledge sharing and reuse – in The Handbook of Applied Expert Systems.
CRC Press, 1998
[Gruninger95] – Gruninger, M.; Fox, M. – Methodology for the Design and Evaluation of Ontologies:
Proceedings of the Workshop on basic Ontological Issues in Knowledge Sharing – IJCAI-95 Canada,
1995.
[Noy01-a] – Noy, N.; McGuiness, D. – Ontology Development 101 – A guide to creating your first
ontology – KSL Technical Report, Standford University, 2001.
[Sure03] – Sure, Y.; Studer, R. – A methodology for Ontology based knowledge management in Davies,
J., Fensel, D.; Hamellen, F.V., editors – Towards the Semantic Web: Ontology Driven Knowledge
management – Wiley and Sons – 2003. pp. 33-46.
[Ushold96] - Ushold, M.; Gruninger, M. – Ontologies: Principles, Methods and Applications. Knowledge
Engineering Review, Vol. 11 No. 2 – 1996. pp. 93-136
Download

Ontologias: Como e Porque criá-las - PUC-Rio