• Nenhum resultado encontrado

5.2 Processos do Framework

5.2.3 Detecção de mudanças DM

A fase de detecção de mudanças (Figura 23) possui como objetivo identificar e analisar as mudanças que foram efetivamente aplicadas de modo a verificar se as mesmas estão em conformidade com o relatório de mudanças especificadas. É nesse subprocesso que a equipe responsável pela curadoria de mudanças verifica se as mesmas foram aplicadas corretamente, se alguma mudança indevida foi aplicada ou se alguma mudança requerida não foi realizada. Um log contendo todas as mudanças aplicadas deve ser obtido para que a análise das mudanças possa ser realizada.

A Detecção de Mudanças é um pré-requisito para a realização do Tratamento de Inconsistências, assim, apenas em evoluções por mudança de foco, ou mudanças nas diretrizes do domínio da ontologia será necessária a realização dessa fase do framework. Evoluções ocasionadas por mudanças relativas à terminologia de referência da ontologia não precisarão passar por tratamento de inconsistências, tendo em vista que o modelo lógico da ontologia não deverá sofrer alterações em evoluções decorrentes desse motivo.

Fonte: Autoria própria.

Conforme a Definição 18 (seção 5.1) uma mudança m é detectada quando comparando-se a versão anterior Va de uma ontologia com a sua nova versão Vn são identificadas mudanças, sejam elas requeridas ou induzidas, em uma ou mais entidades da ontologia em evolução. O processo de detecção de mudanças pode ser representado por meio do Algoritmo 6.

Algoritmo 6. DetectaMudancas(Ov1, Ov2)

for all e 1∈Ov 1 do for all e 2∈Ov 2 do if e 1≠e 2 then

returns true end if

end for end for

Fonte: Autoria própria.

Conforme no Algoritmo, todas as entidades da versão anterior Va de uma ontologia O são comparadas às entidades da versão alterada Vn. Caso sejam identificas diferenças nas entidades comparadas, o algoritmo retorna true assumindo a existência de mudanças entre as versões comparadas.

O subprocesso DM auxilia na identificação de inconsistências causadas pelas mudanças realizadas. Após a aplicação das mudanças requeridas, as entidades da ontologia podem sofrer alterações induzidas por essas mudanças e passar a não satisfazer uma ou mais condições de consistência às quais estão vinculadas. A Comparação Entre as Versões e a Aceitação ou Rejeição de Mudanças são as tarefas que deverão ser realizadas na fase de Detecção de Mudanças.

5.2.3.1 Comparação entre Versões (CV)

Na atividade de Comparação entre Versões (Figura 24), a versão alterada da ontologia em evolução, fornecida como saída da fase de Implementação das Mudanças é comparada à sua versão sem alterações. A comparação da versão anterior da ontologia com a sua versão atual deve ser realizada com o apoio de uma ferramenta diff (seção 4.2.3), pois geralmente ontologias do domínio biomédico possuem tamanhos consideravelmente grandes quando comparadas a ontologias de outros domínios o que dificulta a identificação de mudanças (GROSS, PRUSKI e RAHM, 2016). O uso de uma ferramenta diff ajudará a reduzir custos com tempo e com recursos humanos, por exemplo. Ferramentas diff também auxiliam na visualização das mudanças. Algumas alterações podem passar desapercebidas quando é feita apenas a visualização da hierarquia de conceitos.

A visualização de todas as mudanças ocorridas entre as versões da ontologia em processo de evolução facilita a identificação das inconsistências pois permite que os responsáveis pela evolução possam ter acesso às entidades afetadas e consequentemente aos possíveis erros causados por essas mudanças. Após a comparação, um relatório de diferenças deve ser produzido contendo todas as mudanças realizadas, para ser analisado pela curadoria na atividade de Aceitação/Rejeição de Mudanças ou ARM (Figura 25).

Fonte: Autoria própria.

Na Figura 25 pode ser observado um exemplo de log de mudanças fornecido pelo

plug-in OWL Differences, ferramenta diff criada para ser utilizada no Protégé. Nesse

exemplo, duas versões de uma ontologia sobre a DRC em evolução por mudança de foco são comparadas. O log de mudanças fornece, além das entidades afetadas, a operação que foi realizada nessas entidades bem como todas as mudanças decorrentes dessas alterações. Figura 25. Descrição da remoção da classe "Nefrologista" no plug-in OWL Differences da ferramenta Protégé

Fonte: OWL Differences - Protégé.

Como pode ser visualizado na Figura, a remoção do conceito “Nefrologista” causou a remoção de todas as suas referências na ontologia. Esses impactos são detalhadamente exibidos no log de mudanças de uma ferramenta diff. A partir desse log, o relatório de diferenças para apoiar a tarefa de análise das mudanças para aceitação ou rejeição das mesmas poderá ser criado. Os ontologistas poderão decidir se criarão um relatório de diferenças ou se utilizarão o log de mudanças fornecido pela ferramenta diff para a realização dessa tarefa, tendo em vista que a criação do relatório poderá ser uma tarefa trabalhosa dependendo da quantidade de alterações realizadas na ontologia. Entretanto, o relatório de mudanças poderá ser útil para análises durante o processo de evolução, caso seja necessário, ou poderá ser utilizado em evoluções posteriores.

5.2.3.2 Aceitação/Rejeição de Mudanças

O relatório contendo as mudanças especificadas fornecido como saída do primeiro subprocesso do framework (PE) bem como o relatório de diferenças entre a versão anterior e a versão de comparação fornecido pela atividade de Comparação entre Versões são elementos essenciais para a execução da atividade de aceitação ou rejeição de mudanças (Figura 26). Por meio do uso desses relatórios será possível verificar se as mudanças sofridas pela ontologia estão em conformidade com aquelas que foram requeridas. A análise das mudanças é uma tarefa de alto nível, tendo em vista que a análise considerará apenas a conformidade das mudanças aplicadas com as requeridas para evitar que aquelas que não foram especificadas permaneçam na ontologia. Assim, durante o processo não serão exigidos detalhamentos, relacionados ao tipo de mudanças dos conceitos nos quais deverão ser feitas as análises, por exemplo.

Após a análise, um relatório das atividades realizadas nessa tarefa deverá ser apresentado como saída. Nele deverá conter informações sobre os envolvidos no processo de aceite ou rejeite e, em caso de aceite de todas as mudanças, uma observação acerca desse fato; em caso de rejeição de alguma mudança, as mesmas deverão estar detalhadamente descritas com informações sobre as entidades cujas mudanças foram rejeitadas com vistas a facilitar o processo de reimplementação das mesmas.

Caso todas as mudanças sejam aceitas a versão alterada da ontologia estará pronta para ser encaminhada para a fase onde as inconsistências consequentes das alterações realizadas

que foram detectadas em seu conteúdo serão tratadas no subprocesso nomeado Tratamento de Inconsistências ou TI. Caso haja rejeição de mudanças, o processo de evolução deverá voltar para o subprocesso IM, onde as mudanças aplicadas incorretamente deverão ser reimplementadas, as indesejadas desfeitas e as requeridas mas não aplicadas, aplicadas conforme solicitado no plano de evolução. De modo que o retorno a esse subprocesso não cause um aumento tão signficativo no tempo necessário para a realização de todo o processo evolutivo, um relatório de atividades, contendo todas as mudanças rejeitadas e cujo intuito é direcionar o desenvolvedor para o local exato onde os problemas foram encontrados, deverá ser fornecido como entrada para esse subprocesso.

Fonte: Autoria própria