• Nenhum resultado encontrado

CAPÍTULO 4 – TRABALHOS CORRELATOS COMBINANDO

5.3 HyFOM: Hybrid integration of Fuzzy Ontology and Mamdani reasoning

5.3.2 Abordagem de Integração

Os componentes da arquitetura de HyFOM são integrados de acordo com a abordagem descrita no Algoritmo 1. O processo é iniciado pela aplicação, que invoca HyFOM para verificar se uma instância ou conjunto de instâncias da ontologia possui alguma propriedade numérica cujo valor possa ser inferido com base em um sistema de inferência fuzzy. No caso do exemplo da Seção 5.2, a aplicação invocaria HyFOM para verificar a instância pedido1, cujo valor da propriedade precoFrete pode ser inferido a partir de regras fuzzy. Essa propriedade corresponde à propriedade de saída do sistema de inferência fuzzy, referente ao consequente das regras fuzzy (linha 2 do Algoritmo 1). HyFOM trabalha com regras contendo um atributo no consequente, por isso a função getOutputProperty retorna somente uma propriedade de saída.

Para cada instância, HyFOM primeiramente verifica se o valor da propriedade de saída pode ser obtido por meio do módulo raciocinador de ontologias, ao invocar a função getProp- Value(linha 3). Caso seja possível, a ontologia fuzzy é capaz de prover o valor da propriedade de saída sem a necessidade de envolver o raciocínio do SIF. Caso contrário, o SIF é acionado para realizar a inferência do valor de saída (linha 12), desde que os valores das propriedades de entrada estejam disponíveis. As propriedades utilizadas como entradas do SIF são obtidas pela função getInputProperties (linha 1) e os seus respectivos valores são obtidos da ontologia fuzzy (linhas 5 a 10) para cada instância listada pela aplicação.

5.3 HyFOM: Hybrid integration of Fuzzy Ontology and Mamdani reasoning 85 Algorithm 1: Abordagem de integração de HyFOM

input : Fuzzy ontology individualind;

result : Fuzzy ontology with a new property assertion; initialize:

fuzOnt← Fuzzy ontology;

fuzRuleBase← Fuzzy rule base;

crispOntR← Crisp Ontology Reasoner;

fuzOntR← Fuzzy Ontology Reasoner;

FIS← Fuzzy Inference System;

1 inputProperties←FIS.getInputProperties(fuzRuleBase);

2 outputProp←FIS.getOutputProperty(fuzRuleBase);

3 outputValue← getPropValue(ind,outputProp);

4 ifoutputValue=∅ then

5 for i ← 0 toinputProperties.size()−1 do

6 inputProp←inputProperties[i];

7 inputValue← getPropValue(ind,inputProp);

8 ifinputValue,∅ then inputValues[i] ←inputValue;

9 ;

10 else throw exception "missing input value for FIS";

11 ;

12 end

13 ifinputValues,∅ then

14 outputValue←FIS.getOutput(fuzRuleBase,inputValues);

15 expertAuthorization← expertSupervision(fuzOnt,ind,outputProp,outputValue);

16 ifexpertAuthorization= truethen

17 crispOntR.newAssertion(fuzOnt,ind,outputProp,outputValue);

18 end

19 end

20 end

getPropValue, apresentada no Algoritmo 2. De acordo com essa função, o raciocinador de ontologia crisp é primeiramente acionado para verificar se o valor da propriedade em questão está modelado explicitamente como uma asserção ou pode ser inferido a partir de definições crispda ontologia. Conforme mencionado anteriormente, o raciocinador de ontologia crisp foi considerado principalmente em função de seu acesso otimizado a asserções de propriedades numéricas e tarefas de raciocínio de ontologias convencionais que podem inferir valores de propriedades numéricas para instâncias da ontologia. Por exemplo, a definição de um conceito C =∃ prop1.{10} estabelece que instâncias do conceito C possuam uma restrição no valor da propriedade prop1 associada ao valor específico 10. Essa inferência pode ser obtida por raciocinadores de ontologias tradicionais, com base em regras de inferência envolvendo cons- trutores de conceito e restrições de valores de propriedades por nominais, isto é, indivíduos abstratos ou concretos. Neste exemplo, dada uma asserção C(a), o raciocinador de ontologias crispdeve considerar que existe pelo menos uma associação entre a instância a e o valor 10 pela

propriedade prop1.

Algorithm 2: Função getPropValue

input : Fuzzy ontology individualind, Propertyprop; output :propvalue forind

initialize:

fuzOnt← Fuzzy ontology;

crispOntR← Crisp Ontology Reasoner;

fuzOntR← Fuzzy Ontology Reasoner;

1 propValue←crispOntR.getPropValue(fuzOnt,ind,prop);

2 ifpropValue=∅ then

3 propValue←fuzOntR.getPropValue(fuzOnt,ind,prop);

4 end

5 returnpropValue

Se os valores de propriedades não puderem ser obtidos por asserções ou inferências do raciocinador de ontologias crisp, o raciocinador de ontologias fuzzy é acionado, pois algumas tarefas de raciocínio sobre definições de conceitos fuzzy e implicações podem prover valores de propriedades, conforme exemplificado na Seção 5.2. Portanto, mesmo que os valores das propriedades de entrada não estejam explícitos na ontologia fuzzy, eles podem ser inferidos com base em axiomas e definições fuzzy presentes na ontologia. Os valores inferidos podem ser valores numéricos específicos ou representados por conjuntos fuzzy, dependendo das pre- ferências da aplicação. Assim, as inferências da ontologia fuzzy são utilizadas para definir as entradas do SIF, representando a integração ontologia fuzzy → SIF.

A função getPropValue é acionada pelo algoritmo de integração de HyFOM em duas ocasiões:

1. para verificar se a ontologia fuzzy já provê o valor da propriedade de saída (linha 3 do Algoritmo 1);

2. para obter valores de propriedades de entrada que serão enviados ao SIF (linha 7 do Al- goritmo 1). Nesta situação, HyFOM pode ser configurado para tratar entradas numéricas ou fuzzy, caso sejam obtidas pelo raciocinador de ontologias fuzzy.

Os valores das propriedades de entrada obtidos com a função getPropValue são submetidos ao SIF para que o valor da propriedade de saída seja derivado com base em algum método de inferência sobre regras fuzzy (linha 12 do Algoritmo 1). O sistema de inferência fuzzy pode ser um sistema de Mamdani ou Larsen, ou outro tipo de SIF que seja adequado dependendo da semântica da aplicação. Para gerar o valor numérico da saída fuzzy inferida pelo processamento das regras fuzzy, diversos métodos de defuzificação podem ser usados, como o centro de área,

5.3 HyFOM: Hybrid integration of Fuzzy Ontology and Mamdani reasoning 87

método Moment, meio dos máximos, entre outros (Seção 2.5.3 do Capítulo 2). A base de regras fuzzy deve conter a especificação do método de inferência a ser usado e do método de defuzificação da propriedade de saída.

Depois do processo de inferência do SIF, o valor da propriedade de saída é retornado à ontologia fuzzy como uma nova asserção de propriedade, sob a supervisão de especialistas do domínio (linhas 13 a 16 do Algoritmo 1). Assim, os resultados do SIF são disponibilizados para outras tarefas de raciocínio da ontologia fuzzy, como a verificação de instâncias ou verificação de satisfazibilidade, atendendo à integração SIF → ontologia fuzzy. A supervisão dos especialistas pode ser realizada para uma instância específica como também para um conjunto de instâncias e suas respectivas saídas defuzificadas. A intervenção humana é necessária em virtude da adição de novas asserções na ontologia fuzzy, que devem ser realizadas com o aval dos especialistas de domínio pois modificam o estado da base de conhecimento. As saídas do SIF incorporadas à ontologia fuzzy são numéricas, resultantes de defuzificação, visto que as saídas fuzzy geradas pelo SIF podem ser de difícil interpretação para os especialistas.