• No results found

Para cada início de um protótipo, a Methontology propõe a execução do processo de gerenciamento, que contempla as atividades de: i) escalonamento; ii) controle e iii) garantia de qualidade. A atividade de escalonamento identifica as tarefas a serem executadas, a maneira como são organizadas e o período e os recursos necessários para a realização de cada uma delas. A atividade de controle garante que as tarefas escalonadas sejam completadas de modo adequado. E, finalmente, a atividade de garantia da qualidade busca assegurar que a ontologia, o software e a documentação sejam concluídos com a qualidade devida.

124 ROYCE W. M. Managing the Development of Large Software Systems. Proc. 9th International Conference Software Engineering. IEEE. Computer Society. 1987. pgs.328-338.

125 McCRACKEN; M A. JACKSON. Life Cycle Concept Considered Harmful. ACM Software Engineering notes. Abril 1982. Pags. 29-32.

desenvolvimento durante todo o ciclo de vida da ontologia (FERNANDEZ, GOMEZ-PEREZ e CORCHO, 2004), conforme pôde ser visualizado na Figura 55.

4.5.2 Especificação de Requisitos

Esta fase tem o objetivo de produzir um documento de especificação da ontologia em linguagem natural, usando um conjunto de representações intermediárias (GOMEZ-PEREZ, FERNANDEZ e VICENTE, 1996; FERNANDEZ, GOMEZ-PEREZ e CORCHO, 2004) ou usando questões de competência (GRUNINGER e FOX, 1995). Tal especificação deve ser concisa (termos sem duplicidade ou irrelevantes), parcialmente completa (cobertura dos termos e nível de granularidade) e consistente (sentido dos termos e seus significados para o domínio). Pelo fato de utilizar um ciclo de vida baseado na evolução de protótipos, a Methontology possibilita retornar à etapa de especificação de requisitos (processo iterativo) a qualquer momento do projeto e fazer os devidos ajustes a depender da necessidade. Sendo assim, a especificação pode resultar, em princípio, num documento parcialmente completo.

De acordo com Fernandez, Gomez-Perez e Juristo (1997), as informações necessárias para a especificação de requisitos seriam: i) o propósito da ontologia; ii) o grau de formalidade - desde o informal até o formal; e iii) o escopo. O propósito da ontologia abrange a intenção de seu uso, os possíveis cenários que demandam o uso e os usuários que irão utilizá-la. O grau de formalidade vai depender da formalização envolvida na codificação dos termos e seus significados, podendo ser desde o informal até o rigorosamente formal, conforme classificado por Uschold e Gruninger (1996). E, finalmente, o escopo vai incluir um conjunto de termos, suas características e sua granularidade. Um exemplo de escopo pode ser conferido na Figura 56, na qual apresenta uma especificação de requisitos no domínio da química.

Domínio: química Data: 15 de maio de 1996

Conceituado por: Assunción Gómez-Pérez Implementado por: Mariano Fernandez-Lópes Propósito:

Ontologia sobre substâncias químicas, a ser utilizada para obtenção de informações sobre elementos químicos, com fins de ensino e análise. Essa ontologia pode ser utilizada para conferências, por exemplo, o peso atômico do elemento sódio.

Nível de formalidade: semi-formal Escopo:

- Lista de 103 elementos de substâncias: lítio, sódio, cloro...

- Lista de conceitos: halogênios, gases nobres, semi-metais, metais...

- Ao menos informações sobre as seguintes propriedades: número atômico, peso atômico, volume atômico a 20 graus celsius, ponto de ebulição, densidade a 20 graus Celsius...

Fontes de conhecimento:

Manual de Química e Física, 65 Edição, CRC Press...

Figura 56 – Especificação de requisitos da ontologia no domínio da química

Fonte: Adaptado de Fernandez, Gomez-Perez e Juristo (1997, p.37)

A atividade de aquisição de conhecimento é conduzida na fase de especificação de requisitos no sentido de identificar os conceitos do domínio e elaborar o primeiro glossário de termos potencialmente relevantes que servirá à fase de modelagem conceitual. A aquisição de conhecimento é considerada uma atividade independente e, muitas das vezes, simultânea a outras atividades (especificação e modelagem conceitual) e diminui à medida que o desenvolvimento da ontologia avança, conforme discutido anteriormente e mostrado na Figura 55. As possíveis fontes de conhecimento são: especialistas do domínio, livros, manuais, figuras, tabelas, outras ontologias, dentre outras. E as possíveis técnicas para se obter conhecimento são: brainstorming, entrevistas estruturadas, análise informal e formal de documentos e ferramentas de aquisição de conhecimento. Os autores da Methontology dão ênfase à estratégia de identificação de termos proposta por Uschold e Gruninger (1996), os quais argumentam que a abordagem middle-out é excelente para identificar os conceitos primários da ontologia e posteriormente especializá-los ou generalizá-los, tornando os conceitos mais estáveis, além exigir menos esforço e re-trabalho.

A proposta da fase de modelagem conceitual é organizar e representar o conhecimento útil sobre um domínio. Para tal, a atividade de aquisição de conhecimento também é realizada nessa fase no sentido de refinar o glossário preliminar de termos desenvolvido na fase de especificação, e fornecer significados para os conceitos envolvidos. As técnicas de análise formal e informal de documentos em livros e manuais, em conjunto com entrevistas estruturadas e não estruturadas com especialistas, podem ser usadas para incluir ou remover termos no glossário de termos. Além disso, as entrevistas realizadas com especialistas podem ajudar na construção das árvores de classificações de conceitos (apresentadas adiante) de forma a confrontar com o que foi levantado nos documentos.

Após a construção do glossário de termos, o próximo passo seria agrupar os termos, como conceitos e como verbos. Em seqüência verificar as relações em comum entre os conceitos, bem como no caso dos verbos, de forma a direcioná-los para um conjunto apropriado de conceitos ou de verbos. Para tal, é importante identificar conjuntos de conceitos disjuntos, ou seja, conceitos que não possuem instâncias em comum. Finalmente, são construídas as árvores de classificação de conceitos, que organizam o domínio de conceitos em taxonomias e modularizam o domínio em ontologias independentes, e os diagramas de verbos, que organizam as relações entre os conceitos das taxonomias. Os autores da metodologia afirmam que após a construção da árvore de classificação de conceitos e do diagrama de verbos, o processo de desenvolvimento da ontologia pode ser dividido em diferentes equipes co-relacionadas. A Figura 57 apresenta de forma resumida as técnicas de representações intermediárias usadas na fase de modelagem conceitual para a concepção do modelo ou da conceitualização.

Figura 57 – Representações intermediárias na fase de conceitualização

relações taxonômicas, a saber: subclasse de (subclass-of), decomposição disjunta (disjoint- decomposition), decomposição exaustiva (exhaustive-decomposition) e partição (partition) ou partitiva.

A Figura 58 ilustra a taxonomia de conceitos sobre vôos, na qual aparecem relações de subclasse de como Vôo da American Airlines, Vôo da Ibéria e Vôo da British Airways sendo subclasses da classe Vôo. Isso implica em dizer que toda instância de Vôo da Ibéria, por exemplo, é também uma instância de Vôo. A Figura também mostra uma relação de decomposição disjunta do conceito Vôo da British Airways em que o conjunto de suas subclasses não possui instâncias em comum. A decomposição disjunta acontece nesse caso porque nenhum vôo pode ser simultaneamente um vôo BA0068, um vôo BA0066 e um vôo BA0069. Além disso, podem existir instâncias do conceito Vôo da British Airways que não sejam instâncias das três subclasses.

Figura 58 – Taxonomia de conceitos de vôos

Fonte: Adaptado de Fernandez, Gomez-Perez e Corcho (2004, p.134)

A Figura 59 ilustra a relação de decomposição exaustiva entre a classe Pacote de viagem e as subclasses Viagem econômica, Viagem executiva e Viagem de luxo. Tal relação implica em dizer que o conjunto de subclasses cobre o conceito de hierarquia superior, ou, em outras palavras, não existe instância na classe de hierarquia superior que não seja instância em pelo menos um dos conceitos na decomposição. Por exemplo, um pacote de viagem deve pertencer a uma das categorias de viagem (econômica, executiva ou luxo). Além disso, pode acontecer de conceitos possuírem instâncias em comum como, por exemplo, uma viagem executiva poderia ser econômica ou muito cara.

Figura 59 – Decomposição exaustiva na ontologia de viagem

Fonte: Adaptado de Fernandez, Gomez-Perez e Corcho (2004, p.135)

A Figura 60 ilustra a relação de partição ou partitiva envolvendo o conceito Vôo e suas subclasses Vôo Internacional e Vôo Doméstico. O conjunto de subclasses não compartilha instâncias em comum, mas cobrem o conceito de nível hierárquico superior, ou seja, não há instâncias em Vôo que não sejam instâncias de Vôo Internacional ou Vôo Doméstico.

Figura 60 – Relação partitiva na ontologia de viagem

Fonte: Adaptado de Fernandez, Gomez-Perez e Corcho (2004, p.135)

Gomez-Perez, Fernandez e Vicente (1996) descrevem de forma detalhada os métodos aplicados nas atividades de elaboração das representações intermediárias relacionadas à descrição de conceitos. As representações intermediárias são importantes no sentido de especificar um conjunto de compromissos ontológicos estabelecidos entre os participantes do processo de construção de ontologias. Tais compromissos são fundamentais para a construção de uma conceitualização de senso comum que poderá ser compartilhada em um domínio de interesse.

As atividades envolvendo tais representações seriam: a) criar um dicionário de dados, o qual descreve e agrupa todos os conceitos úteis do domínio, seus significados, atributos, instâncias, etc; b) criar árvores de classificação de conceitos, conforme já foram elucidadas anteriormente; c) criar tabelas de atributos de instância, as quais fornecem informações sobre atributos e sobre seus valores nas instâncias; d) criar tabelas de atributos de classe, as quais descrevem os próprios conceitos, mas não suas instâncias; e) criar tabelas de constantes, as quais especificam informações relacionadas ao domínio de conhecimento que sempre têm o mesmo valor; f) criar tabelas de

g) criar árvores ou diagramas de classificação de atributos, as quais apresentam graficamente a relação entre atributos e constantes na seqüência dedutiva de atributos de hierarquia superior, bem como a seqüência de fórmulas para tal dedução; e h) criar tabelas de instâncias, as quais definem as instâncias de conceitos.

A Tabela 16 (a, b e c) apresenta os métodos utilizados na condução das atividades envolvendo a construção das representações intermediárias e um conjunto de verificações em cada uma delas e entre elas, de forma a ajudar na detecção de inconsistências, redundâncias e omissão de conhecimento no domínio.

Representação

Intermediária Como construir Verificação

Dicionário de dados

Para cada conceito identificado no domínio é necessário preencher os seguintes campos do dicionário: nome do conceito; sinônimos e acrônimos de nomes de conceitos;

descrição, que fornece o significado de um

conceito; instâncias, que incluem as instâncias de um conceito; atributos de

classe, ou propriedades relevantes do

conceito, que descrevem o próprio conceito; atributos de instância, ou propriedades relevantes que descrevem as instâncias de um conceito.

Verificar o conhecimento inserido dentro do dicionário buscando: a) garantir a integralidade do conhecimento sobre os conceitos envolvidos; b) determinar a granularidade dos conceitos cobertos pela ontologia; c) consistência sobre os atributos de classes e instâncias, em que devem fazer sentido para os conceitos envolvidos; d) assegurar a ausência de redundância e imprecisão sobre nomes e descrições de conceitos.

Árvore de classificação de conceitos

Após todos os conceitos terem sido direcionados ao dicionário de dados, o próximo passado seria ligar tais conceitos através das relações: subclasse de,

decomposição disjunta, decomposição exaustiva e partitiva, conforme foram

ilustradas nas Figuras 57, 58 e 59 anteriormente. O ontologista deve ser então capaz de classificar os conceitos em suas respectivas classes. Cada árvore concebida resulta em ontologias independentes e modularizadas no domínio de aplicação.

1) Verificar o conhecimento inserido dentro da árvore de classificação de conceitos. Tal representação possibilita visualizar graficamente a hierarquia de conceitos do dicionário de dados, tornando-se possível assegurar: a) que nenhum conceito seja repetido; b) ausência de ciclos entre conceitos; c) nenhuma árvore isolada a respeito dos conceitos relacionados.

2) Verificação cruzada entre representações intermediárias: todos os conceitos mostrados na árvore devem ser definidos no dicionário de dados. Caso contrário, o conceito deve ser adicionado no dicionário ou removido da árvore.

Intermediária Tabelas de atributos de instância

1) Uma tabela deve ser criada para cada atributo de instância inserido no campo

atributos de instância do dicionário de

dados.

2) Para cada tabela incluir: nome do

atributo de instância; descrição para

fornecer o significado do atributo; tipo de

valor (float, boolean, string) para

determinar a restrição no momento do preenchimento do campo na classe; unidade

de medida para valores numéricos (o

símbolo “_” é usado para indicar campo sem valor e o símbolo “desconhecido” para campo desconhecido); precisão para valor numérico; faixa de valores para possíveis valores no atributo; valores padrão, caso sejam conhecidos; cardinalidade para especificar o número de valores do atributo;

atributos de instância inferidos, atributos de classe inferidos e constantes inferidas

(incluem o nome dos atributos de instância, de classe e constantes), que permitem inferir o valor do atributo em questão;

fórmula, que faz referência cruzada com as

tabelas de fórmulas, permitindo calcular o valor numérico do atributo; a inferir, que contém o nome dos atributos de instância cujos valores podem ser inferidos a partir do atributo em questão; e referência para registrar a fonte de informação (livro, especialista, etc).

1) Verificar o conhecimento dentro da tabela de atributos de instância de forma a garantir a consistência do conhecimento de senso comum para a ontologia construída. A saber: a) verificar a correspondência entre valores preenchidos nas tabelas de atributos de instância. Por exemplo: em uma tabela x, quando o campo atributos de

instância inferidos for preenchido, as

tabelas ou a tabela correspondente ao atributo indicado neste último campo deve possuir em seu campo a inferir o nome do atributo representado na tabela x; b) valores padrão devem ser preenchidos de acordo com o tipo de dado definido para o atributo. 2) Verificar o conhecimento entre representações intermediárias: a) verificar a correspondência entre as tabelas de atributos de instância criadas e os atributos

de instância listados no dicionário de

dados; b) verificar a correspondência de valores preenchidos nos campos atributos

de classe inferidos e constantes inferidas da

tabela de atributos de instância com o valor preenchido no campo a inferir das tabelas de atributos de classe e constantes.

Tabelas de atributos de classe

1) Uma tabela deve ser criada para cada conceito inserido no campo nome do

conceito do dicionário de dados.

2) Para cada tabela especificar os seguintes campos: nome do atributo de classe; nome

do atributo relação, que identifica o

atributo participante de um relacionamento;

relacionamento lógico, que uni dois

conceitos através de operadores lógicos;

valor do atributo de classe; unidade de medida para valores numéricos; a inferir,

que contém o nome dos atributos de instância cujos valores podem ser inferidos a partir do valor do atributo de classe em questão; referências para registrar a fonte de conhecimento.

1) Verificar o conhecimento dentro da tabela de atributos de classe de forma a evitar omissões.

2) Verificar o conhecimento entre representações intermediárias: a) para todos os conceitos definidos em atributos de

classe no dicionário de dados, deve existir

uma tabela de atributos de classe, e para cada tabela de atributos de classe, deve existir um conceito no dicionário; b) para todos os atributos de classe especificados no campo atributos de classe no dicionário, deve existir uma tabela de atributos de classe correspondente, e vice versa.

Intermediária Tabela de constantes

Para cada árvore de classificação de conceito, o ontologista deve identificar um conjunto de constante e descrevê-las a partir das seguintes propriedades: nome da

constante; descrição, que indica o

significado da constante; valor da

constante; unidade de medida para valores

numéricos; a inferir com a relação dos atributos de instância cujos valores podem ser inferidos a partir do valor da constante em questão; referências das fontes de conhecimento, nas quais as constantes foram identificadas.

1) Verificar o conhecimento dentro da tabela de constantes: se uma constante aparecer nas tabelas de atributos ou de fórmulas, deve também ser inserida na tabela de constantes.

2) Verificar o conhecimento entre representações intermediárias: conforme especificado na representação de tabelas de atributos de instância, constantes são usadas para inferir valores de atributos de instâncias. Nesse sentido, as verificações feitas em tal representação já seriam suficientes e válidas.

Tabelas de fórmulas

A definição padrão para fórmulas inclui:

nome da fórmula; atributo inferido, que

identifica o atributo de instância que é calculado a partir da fórmula; fórmula, que inclui a fórmula matemática para ser usada no cálculo do atributo inferido; descrição para incluir os fundamentos teóricos da fórmula; atributos de instância básicos, que inclui uma lista de atributos de instância usados na fórmula para calcular o atributo inferido; atributos de classe básicos, que inclui uma lista de atributos de classe usados na fórmula para calcular o atributo inferido; constantes, que inclui uma lista de constantes usadas na fórmula para calcular o atributo inferido; precisão com que o número deve ser calculado (ex.: dois números decimais); restrições para impor algumas condições às fórmulas; referências de fontes de conhecimento utilizadas na elucidação das fórmulas.

1) Verificar o conhecimento dentro da tabela de fórmulas: a) todos os atributos que aparecem no lado direito de uma fórmula devem aparecer nos campos atributos de

instância básicos, atributos de classe básicos e constantes; b) se a definição

especifica alguma restrição, outras fórmulas deveriam cobrir situações alternativas. 2) Verificar o conhecimento entre representações intermediárias: a) verificar se o campo fórmula especificado nas tabelas de atributos de instância corresponde à tabela de fórmula referenciada; b) verificar na tabela de fórmulas, se o campo atributo inferido encontra-se preenchido com o nome de um atributo de instância existente na tabela correspondente; c) verificar se o conteúdo dos campos atributos de instância

inferidos, atributos de classe inferidos e constantes inferidas na tabela de atributos

de instância corresponde com o conteúdo do campo fórmula da tabela de fórmulas. Tabela 16 (c) – Métodos para construção das representações intermediárias

Intermediária Árvore de classificação de atributos

Após o ontologista verificar a consistência e a integralidade das tabelas de atributos de instância, atributos de classe, constantes e fórmulas, o próximo passo é desenvolver as árvores de classificação de atributos. Usar os campos atributos de instância

inferidos, atributos de classe inferidos e constantes inferidas, a inferir e fórmula de

cada tabela de atributos de instância. Tais campos serão a base para desenvolver as árvores de classificação de atributos.

1) Verificar o conhecimento dentro da árvore de classificação de atributos: a) se alguns atributos e constantes na seqüência dedutiva de atributos de hierarquia superior estão ausentes, errados ou não estão sendo utilizados para inferir valores de outros atributos; b) se algumas fórmulas estão ausentes ou sendo usadas erroneamente; c) se não há ciclos na árvore, ou seja, um atributo de instância não é capaz de inferir ele próprio.

2) Verificar o conhecimento entre representações intermediárias: a) qualquer modificação (inserção, remoção) nas árvores deve-se modificar também as tabelas envolvidas, isto é, tabelas de atributos, constantes e fórmulas; b) se qualquer atributo for incluído na árvore e não estiver presente no dicionário de dados, faz-se necessário incluí-lo no mesmo e criar a sua tabela correspondente.

Tabelas de

instâncias 1) Criar uma tabela de instância para cada instância identificada no dicionário. 2) Os seguintes campos compõem a tabela:

nome da instância; descrição, que fornece o

significado da instância; atributos para preenchimento na instância em função das classes, nas quais as instâncias estão ligadas; valores desses atributos, que podem ser numérico, conjunto de valores, “desconhecido”.

1) Verificar o conhecimento dentro da tabela de instância: a) consistência entre atributos e seus valores; b) ler a descrição da instância de maneira cuidadosa para evitar redundâncias entre instâncias. 2) Verificar o conhecimento entre representações intermediárias: a) para todas as instâncias identificadas no campo

instância do dicionário de dados existe uma

tabela de instância correspondente e vice- versa; b) manter consistência entre os valores de atributo da instância e o campo

tipo de valor definido em sua tabela de

atributos de instância; c) manter consistência entre o número de valores declarado no atributo e o campo

cardinalidade definido em sua tabela de

atributos de instância; d) propagação de atributos usando herança de classes, ou seja, a instância seria preenchida com valores concretos de acordo com a árvore de classificação de conceitos.

Tabela 16 – Métodos para construção das representações intermediárias