• Nenhum resultado encontrado

Resolução de inconsistências

5.2 Processos do Framework

5.2.4 Tratamento de Inconsistências TI

5.2.4.3 Resolução de inconsistências

A última atividade da fase de tratamento de inconsistências (Figura 30) apresenta estratégias de correção dos problemas identificados e classificados conforme abordado nas seções anteriores. Essas estratégias devem ser definidas com base nos tipos de erros por meio dos quais as inconsistências podem ser classificadas bem como com base no domínio representado na ontologia em evolução. Ainda que o framework definido seja voltado para ontologias Biomédicas, sabe-se que tal área detém diversas subáreas de amplitudes diferentes e que exigem maneiras distintas de representação por meio dos recursos ontológicos. Esse fato define a complexidade da ontologia e consequentemente ajuda na definição dos métodos de resolução das inconsistências. O processo de remoção de inconsistências de uma ontologia pode ser realizado por meio da busca e correção das inconsistências detectadas.

Fonte: Autoria própria

O processo de resolução está representado no Algoritmo 9, onde para todas as inconsistências i∈α detectadas em uma ontologia O, deve-se verificar todas as entidades

e∈E∈O e uma(s) solução(ões) necessária(s) (representada(s) pelo método

removeInconsistencias(e,i)) deve(m) ser aplicada(s) àquelas onde existam inconsistências de acordo com o domínio da ontologia em processo de tratamento de inconsistências. Conforme a Definição 23 (seção 5.1), α é igual a um conjunto de entidades E que por terem sofrido mudanças, detêm inconsistências devido as quais não é possível satisfazer a qualquer condição de consistência da ontologia em processo evolutivo.

Conforme o Algoritmo 9, para todas as entidades de uma ontologia O verifica-se a ocorrência de alguma das inconsistências identificadas. Caso a entidade verificada tenha sido afetada por inconsistências, uma solução direcionada para o tipo de erro ocorrido e para o domínio da ontologia, deverá ser aplicada. Tal solução deverá ser aplicada até que a entidade volte a satisfazer a condição ou condições de consistência às quais pertence.

Essa atividade apenas será necessária para ontologias em evolução por mudança de foco ou por alterações nas suas diretrizes de domínio. Ontologias em evolução por mudanças relativas à sua terminologia de referência não sofrem alterações que venham a afetar as regras que determinam a sua consistência, portanto, não será necessário tratar inconsistências em ontologias em evolução por esse motivo.

Algoritmo 9. removerInconsistencias(O, α) for all i∈α do

for all e∈O do if i∈e then

repeat

removeInconsistencias(e, i)

until verificarConsistencia(e) returns false end if

end for end for

Fonte: Autoria própria

Nesta atividade recomenda-se fortemente o acompanhamento especializado, pois durante o processo de resolução das inconsistências o desenvolvedor de ontologias pode ter dúvidas relativas ao domínio da ontologia em evolução por não possuir conhecimento especializado o suficiente para determinar a correção de problemas cuja solução depende de conhecimentos profundos sobre o domínio abordado, e que não poderão ser conhecidas apenas por meio do uso do relatório de inconsistências classificadas, que é um documento técnico com a finalidade de apresentar as inconsistências sem detalhamentos relativos a como resolvê-las. O estudo de caso descrito no capítulo 6, que aborda a evolução de uma ontologia sobre a DRC, teve o acompanhamento de uma médica especialista em Nefrologia, que compõe o grupo de pesquisadores do laboratório onde esta pesquisa foi realizada. Além do relatório de inconsistências e do acompanhamento especializado, nessa fase pode ser necessário o uso das fontes de conhecimento da ontologia.

As estratégias de correção de inconsistências estão diretamente relacionadas aos tipos de erros causados por elas. Desse modo, neste trabalho, as formas de correção dos problemas que comprometeram a consistência da ontologia serão abordadas levando em conta os três tipos de erros que causam inconsistências e ambiguidades na ontologia em processo evolutivo. Conforme Fahad e Qadir (2008), esses erros são chamados de erros circulatórios, erros de partição e erros de inconsistências semânticas. A partir da identificação desses erros nos problemas ocorridos na ontologia, pode-se definir formas de correção dos mesmos. Dessa forma, antes de aplicar as correções é importante que se identifique em qual dos tipos de erros, dentre os três abordados no framework, o problema ocorrido se encaixa.

Conforme a Definição 27 (seção 5.1), os erros circulatórios ocorrem quando uma classe de uma ontologia é definida como subclasse de si mesma em qualquer nível da

hierarquia dessa ontologia. Para resolver inconsistências relacionadas a esse erro, será necessária a análise da hierarquia da ontologia iniciando pela classe base. A presença do especialista do domínio representado na ontologia durante esse processo é essencial pois a taxonomia dos conceitos de uma ontologia reflete a taxonomia desses conceitos no domínio do discurso ou de interesse. Assim, tendo em vista que os ontologistas podem não conhecer o domínio abordado o suficiente para estabelecer a estrutura hierarquica correta da ontologia, torna-se imprescindível a presença do especialista de domínio para auxiliar nesse processo. A correção dos erros da ontologia deverá ser feita por meio da edição da mesma após a identificação correta do local onde ocorreu o problema. A resolução dos erros circulatórios poderá ser feita seguindo-se a ordem: análise – identificação – correção.

De acordo com a Definição 28 (seção 5.1), os erros de partição dependem do tipo de decomposição de superclasses em subclasses. A decomposição citada nessa definição pode ser classificada como disjunta ou exaustiva. Considerando o exposto na Definição 31 (seção 5.1), os erros de partição advindos da decomposição disjunta ocorrem quando são definidos conceitos como subconceitos de conceitos disjuntos, essa definição é aplicável a classes e instâncias de uma ontologia em evolução (FAHAD e QADIR, 2008).

A solução para esse problema pode ser feita seguindo-se dois caminhos distintos e dependentes do domínio representado. A primeira solução possível envolve desfazer a relação de disjunção entre os conceitos que detêm subconceitos comuns, assim, tais conceitos não serão mais disjuntos e portanto poderão compartilhar os mesmos subconceitos. Entretanto, caso a relação de disjunção entre os conceitos não possa ser desfeita, pode-se aplicar a segunda solução possível, a qual está relacionada à análise da hierarquia dos conceitos partindo do conceito base ou raiz com a finalidade de corrigir as decomposições das superclasses em subclasses e estabelecer a organização taxonômica correta dos conceitos representados de acordo com o domínio de interesse. A decisão sobre qual caminho deverá ser seguido para corrigir os erros de partição ocasionados pela decomposição disjunta deverá ser acompanhada da opinião do especialista do domínio da ontologia, pois as ligações corretas entre os conceitos estão diretamente relacionadas ao domínio abordado.

Os erros de partição também podem ser advindos da decomposição exaustiva. Conforme a Definição 32 (seção 5.1), esses erros ocorrem quando são feitas decomposições ou partições exaustivas de uma classe em muitas subclasses porém nem todas as instâncias da

classe raiz pertencem às suas subclasses (FAHAD e QADIR, 2008). Para resolver inconsistências ocasionadas por esse tipo de erro existem duas soluções possíveis.

A primeira exige a remoção da instância ou das instâncias pertencentes à classe raiz que não são instâncias de todas as suas subclasses. Essa solução fará com que não mais existam na classe base, instâncias que não podem estar vinculadas às suas subclasses. Caso a remoção das instâncias não possa ser realizada, a segunda solução possível envolve a revisão da hierarquia dos conceitos que possuem esse erro a partir do conceito raiz com a finalidade de identificar quais subconceitos não podem estar vinculados a uma ou mais instâncias do conceito base e assim, decidir entre a remoção ou a aplicação de uma operação de mover sobre o subconceito que não pode utilizar as mesmas instâncias da classe raiz. Essa solução possui como finalidade redefinir a hierarquia à qual pertencem os conceitos afetados e reestabelecer a completude da decomposição ou particionamento.

Conforme na Definição 33, os erros de inconsistências semânticas ocorrem quando um conceito é classificado como subclasse de outro ao qual ele não pertence. Ou seja, o significado de um conceito é incorretamente interpretado fazendo com que a sua organização hierarquica seja estabelecida de forma incorreta. O primeiro passo para solucionar esse problema é a identificação, na ontologia, de todos os locais onde o mesmo ocorreu. Para auxiliar nessa tarefa poderá ser usado o relatório de inconsistências identificadas e classificadas (FAHAD E QADIR, 2008).

A correção poderá ser seguida da identificação e poderá considerar dois caminhos possíveis. O primeiro envolve a realização de uma operação de mover sobre o subconceito com o intuito de colocá-lo no local correto considerando a similaridade do seu significado com a do conceito destino. A segunda alternativa de resolução desse problema é a deleção do conceito e será realizada apenas caso não se consiga encaixar o conceito em uma nova hierarquia de classes. Ou seja, a segunda alternativa de correção será aplicada como solução residual.