Copyright: Grupo SINTA - 1996, 1996


Expert SINTA

O que é o Expert SINTA

A finalidade do Expert SINTA e suas

facilidades.

Criando uma base de conhecimentos

Os passos necessários para que um especialista humano

possa modelar o seu conhecimento e fazê-lo funcionar

em uma máquina.

Executando e depurando uma base de conhecimentos

Como detectar erros através do acompanhamento passo a passo

da máquina de inferência do Expert SINTA e colocar a base de

conhecimentos em funcionamento.

Entendendo o modo como se realizam os cálculos de fatores de confiança

O porquê de utilizar fatores de confiança e a descrição das fórmulas utilizadas

pelo Expert SINTA.

Criando textos explicativos para a sua base de conhecimentos

Um modo de tornar a sua base mais didática e útil para os usuários.

Entendendo os resultados apresentados

Como usufruir das informações que o Expert SINTA

calcula para você.

Serviço de suporte

Tire suas dúvidas e

apresente sugestões.


Visão geral
O que é o Expert SINTA

Sistemas especialistas são programas de computador que procuram atingir soluções em determinados problemas do mesmo modo que especialistas humanos, se estiverem sob as mesmas condições. Apesar das limitações das máquinas, é possível, hoje, a construção de sistemas especialistas com alto grau de desempenho, dependendo da complexidade de sua estrutura e do grau de abrangência desejado, sendo a arquitetura de sistemas especialistas mais comum a que envolve regras de produção (production rules).

Mas, como um sistema de bom tamanho tem em torno de mil regras (considerando aqueles que utilizam regras), e muito da tecnologia que o faz funcionar é encontrada em diversos sistemas, foram criadas ferramentas, shells, que possuem realizam muito do trabalho necessário para transpor um sistema especialista para um computador. Essas ferramentas permitem que o criador do sistema preocupe-se somente com a representação do conhecimento do especialistas, deixando para a shell a tarefa de interpretar o conhecimento representado e executá-lo em uma máquina, além de permitir depurações e explicações de como o computador chegou àquela(s) conclusão(ões). A principal função de uma shell é simplificar ao máximo o trabalho de implementação de um sistema especialista e permitir seu uso por qualquer pessoa sem conhecimentos de informática.

O Expert SINTA é uma ferramenta computacional (shell) que utiliza técnicas de Inteligência Artificial para geração automática de sistemas especialistas. Esta ferramenta utiliza um modelo de representação do conhecimento baseado em regras de produção e probabilidades, tendo como objetivo principal simplificar o trabalho de implementação de sistemas especialistas através do uso de uma máquina de inferência compartilhada, da construção automática de telas e menus, do tratamento probabilístico das regras de produção e da utilização de explicações sensíveis ao contexto da base de conhecimento modelada.

Um sistema especialista baseado em tal tipo de modelo é bastante útil em problemas de classificação. O usuário responde a uma seqüência de menus, e o sistema encarrega-se-á de fornecer respostas que se encaixem no quadro apontado pelo usuário. Como exemplos, temos sistemas de diagnósticos médicos e configuração de redes de computadores.

Entre outras características inerentes ao Expert SINTA, temos:

 utilização do encadeamento para trás (backward chaining);

 utilização de fatores de confiança;

 ferramentas de depuração;

 possibilidade de incluir ajudas on-line para cada base.

O Expert SINTA procura ser uma ferramenta de criação geral. Dúvidas e sugestões podem ser enviadas ao serviço de suporte.


Shell

Um shell é uma ferramenta genérica para implementação de bases de conhecimento. De tal modo, o desenvolvedor não se preocupa com a máquina de inferência, apenas com o conjunto de regras que modelam o conhecimento desejado.


Regras de produção

Das diversas representações que existem para a criação de bases de conhecimento, as regras de realização são as mais comuns. São simplesmente um conjunto de regras no estilo SE... ENTÃO..., com a possibilidade de inclusão de conectivos lógicos relacionando os atributos no escopo da base, como vemos no exemplo a seguir:

SE carne = vermelha E

     cor preferida = tinto OU

     temperatura = ambiente

ENTÃO

    melhor vinho = exemplo CNF 70;


encadeamento para trás

O encadeamento para trás é o modo mais comum de utilização de um Sistema Especialista. O desenvolvedor deve incluir na definição da base quais os atributos que devem ser encontrados (ou seja, os objetivos - goals - do Sistema Especialista). A máquina de inferência encarrega-se de encontrar uma atribuição para o atributo desejado nas conclusões das regras (após o ENTÃO...). Obviamente, para que a regra seja aprovada, suas premissas devem ser satisfeitas, obrigando à máquina a encontrar os atributos das premissas para que possam ser julgadas, acionando um encadeamento recursivo. Caso o atributo procurado não seja encontrado em nenhuma conclusão de regra, uma pergunta direta é feita ao usuário.


encadeamento para frente

O encadeamento para frente consiste em definir explicitamente a ordem na qual os valores de determinados atributos serão encontrados, podendo ainda examinar todas as regras seqüencialmente. Para a máquina de inferência, não há nenhum objetivo inicial, apenas uma tentativa em concluir o máximo possível de informações que aquele conjunto de regras tem a oferecer. Por exemplo, um sistema especialista poderia apresentar um imenso formulário com todas as informações necessárias para o usuário preencher e, em seguida, consultar as regras seqüencialmente e decidir quando uma regra vale ou não de acordo com as respostas do usuário.


O que há de novo na versão 1.1?
O que há de novo na versão 1.1a?

Veja as novas características do Expert SINTA 1.1a:

 é possível definir (na janela de edição de variáveis) a ordem na qual os valores aparecem em uma pergunta;

 quando um objetivo é alcançado, o projetista pode decidir se os resultados serão mostrados ou não. Bastante útil para simular encadeamento para frente;

 pode-se decidir se uma pergunta vai ou não permitir a entrada do grau de confiança das respostas;

 novas opções no editor de regras permitem a digitação rápida e confortável de regras.

 é possível personalizar as funções que calculam os fatores de confiança das regras.

 uma caixa de diálogo Dica do Dia traz informações úteis para o usuário do Expert SINTA.

 uma nova ferramenta para avaliar as dependências entre as variáveis.


digitação, como acelerar
Como posso acelerar a digitação de regras?

O ambiente do Expert SINTA permite a criação de regras sem grandes esforços. Basta que se sigam as seguintes dicas:

 procure definir de antemão todas as variáveis antes de iniciar as regras. Mas nada impede que uma regra seja iniciada e novas variáveis sejam definidas com a regra aberta. Apenas não esqueça de fechar a janela de variáveis com o botão OK antes de prosseguir;

 use as duas mãos. Enquanto uma usa o mouse para selecionar um item na listas com as variáveis e seus valores, é possível acelerar digitando a primeira ou as primeiras letras que formam o nome de uma variável ou valor. Assim, as listas irão abrir próximas ao item desejado;

 nessa ocasião, também é possível utilizar as setas do teclado “para cima” e “para baixo” para selecionar um item de uma lista. Digite a primeira ou as primeiras letras de um nome de uma variável/valor e, em seguida, use a seta “para baixo” até aparecer o nome desejado. Mesmo em bases grandes, esse é um método mais eficaz que digitar todo o nome;

 se você digitar a regra na ordem, ou seja, todas as premissas na ordem desejada, seguida de todas as conclusões, nem é necessário abrir mais de uma vez a janela de edição de itens. Use o botão Alternar (aquele botão verde na janela de edição de itens - NÃO na janela da regra - ao lado direito das opções de conectivo) para alternar entre premissas e conclusões;

 use e abuse dos modelos. Eles existem para diminuir ao máximo seu trabalho. É muito comum em sistemas especialistas aparecerem regras derivadas de outras, portanto muito comum também será o uso de modelos;

 o botão “Nova...” na janela de edição de regras não está lá apenas para ocupar espaço. Quando você terminar a digitação de regra e desejar criar uma nova, aperte esse botão para uma nova surgir e a antiga ser fechada, tudo em um passo só;


encadeamento para frente, simulando
Simulando encadeamento para frente

O Expert SINTA trabalha naturalmente com encadeamento para trás, mas é possível manipular a máquina de inferência de modo a simular encadeamento para frente. Basta que as variáveis que se deseja encontrar naturalmente sejam colocadas na lista de objetivos. Obviamente, como não é desejado que uma janela de resultados apareça a cada variável encontrada, é possível desabilitar essa exibição simplesmente desmarcando a caixa “Mostrar resultados” relativo à variável desejada na janela de edição de objetivos.


quando a consulta trava
Evitando conflitos

Uma consulta pode travar pelo excesso de encadeamento da base de conhecimento, ou seja, quando uma determinada variável, para ser inferida, necessita do valor de outra, e esta, por sua vez, de outras, e assim por diante até esgotar os recursos da máquina. Se isso ocorrer, procure diminuir a profundidade de dependências entre variáveis reestruturando algumas de suas regras. As dependências podem ser examinadas através do menu Depurar|Dependências.

Porém, antes de medidas como esta, verifique se não há dependências circulares entre suas variáveis. Como assim? Vejamos o seguinte exemplo:

REGRA 30

SE    a = 1

ENTÃO b = 2

REGRA 31

SE    b = 3

ENTÃO a = 4

Se, em determinado momento da consulta, desejássemos inferir o valor de b, poderíamos ir até à regra 30. Mas, para determinar a validade da regra 30, necessitamos do valor de a . Provavelmente a máquina de inferência iria avaliar a regra 31. Porém, como ainda não sabemos o valor de b, a máquina voltaria para a regra 30 e assim encadearia um círculo vicioso que travaria o sistema.

É possível identificar dependências circulares facilmente com o uso da ferramenta Dependências. Quando identificar o ponto de conflito, reestruture suas regras de modo a gerar um sistema especialista consistente.


Sobre o Expert SINTA

O Expert SINTA foi criado pelo Grupo SINTA (Sistemas INTeligentes Aplicados), um projeto UFC / UECE. A presente ferramenta foi o fruto do primeiro ano de trabalho desse grupo. Ainda em versão experimental, o SINTA espera receber várias críticas e sugestões da versão até o momento apresentado. Comentários podem ser enviados para os e-mails:

bezerra@lia.ufc.br

helano@lia.ufc.br

jnando@lia.ufc.br

rafael@fortal.uece.br

Grupo SINTA - Sistemas INTeligentes Aplicados

Coordenação geral: José Helano Matos Nogueira

Integrantes:

João Fernando Lima Alcântara

Rafael Castro de Andrade

Ricardo Bezerra de Andrade e Silva

Expert SINTA - idéia original de Ricardo Sousa Silvestre, ex-integrante, 1995

SECAJU - Sistema especialista em  pragas e doenças do cajueiro - é de autoria dos seguintes membros do CNPAT:

Quélzia Maria Silva Melo  (Doutora em Entomologia)

Antonio Lindemberg M. Mesquita (Mestre em Entomologia)

Lianna Maria Saraiva Teixeira (Mestre em Fitossanidade)

Francisco das Chagas O. Freire (Doutor em Fitopatologia).

SECAJU © CNPAT, 1988 - 1997

Agradecimentos especiais:

Genaro França - EMBRAPA

Marcelino Pequeno - UFC

Tarcísio Pequeno - UFC

Expert SINTA © 1995 - 1997 Laboratório de Inteligência Artificial/LIA-UFC

Projeto financiado pela CAPES e CNPq.


Arquitetura de sistemas especialistas no Expert SINTA

Os sistemas especialistas gerados no Expert SINTA seguem a arquitetura abaixo (passe o mouse sobre a figura para maiores detalhes):

O objetivo do Expert SINTA é simplificar ao máximo as etapas de criação de um SE completo. Para tanto, já oferece uma máquina de inferência básica, fundamentada no encadeamento para trás (backward chaining).

O encadeamento para trás destaca-se em problemas nos quais há um grande número de conclusões que podem ser atingidas, mas o número de meios pelos quais elas podem ser alcançadas não é grande (um sistema de regras de alto grau de fan out), e em problemas nos quais não se pode reunir um número aceitável de fatos antes de iniciar-se a busca por respostas. O encadeamento para trás também é mais intuitivo para o desenvolvedor, pois é fundamentada na recursão, um meio elegante e racional de programação, para onde a própria Programação em Lógica se direcionou. Em nenhum momento, porém, deixa-se de reconhecer que o encadeamento para frente (foreward chaining) possui vantagens em determinadas ocasiões.

A base de conhecimentos é armazenada em diversas estruturas de árvore binária. Como será visto na seção a seguir, a própria interface do programa armazena diretamente as regras e demais dados nas citadas estruturas, sem recorrer a um analisador sintático (muitas shells exigem que o usuário digite sua base em uma pseudo-linguagem, a qual é posteriormente interpretada, quando a máquina de inferência é acionada). As árvores criadas utilizam o paradigma da orientação a objetos, incluindo, principalmente, o conceito de polimorfismo, com o qual nós que representam estruturas tão diferentes como uma variável e uma cabeça de regra são tratados por um mesmo método. Como se vê, nem sempre é necessário recorrer a uma linguagem fundamentada em Lógica para criação de aplicações de Inteligência Artificial.


Base de conhecimento

É a informação que um especialista utiliza, representada computacionalmente.


Editor de bases

Meio pelo qual a shell permite a implementação das bases desejadas


Máquina de inferência

Parte do sistema especialista responsável pelas deduções sobre a base de conhecimento.


Banco de dados global

Representa as evidências apontadas pelos usuários do sistema especialista durante uma consulta.


Porque regras de produção

As regras de produção são populares por possuírem as seguintes vantagens:

 Modularidade: cada regra, por si mesma, pode ser  considerada como uma peça de  conhecimento independente;

 Facilidade de edição (uma conseqüência da modularidade): novas regras podem ser acrescentadas e antigas podem ser modificadas com relativa independência;

 Transparência do sistema: garante maior legibilidade da base de conhecimentos.

Portanto, é preciso ter em mente que a modularidade de um sistema baseado nessa arquitetura permite a construção passo-a-passo da base de conhecimentos, ou seja, é possível realizar vários testes com apenas um subconjunto de regras concluído. Obviamente, sabe-se que menos regras implicam geralmente em um menor número de casos abrangidos.


Estrutura das regras
Estrutura das regras no Expert SINTA

Vejamos o seguinte exemplo ( tirado da base SECAJU, um exemplo que você irá encontrar completo junto com o Expert SINTA ):

SE	galerias nos ramos ou inflorescências

OU	inflorescências = murchas ou secas

E	brotações novas murchas

E	orifícios laterais nos ramos ou inflorescências

ENTÃO	praga = broca das pontas [90%]

Denomina-se os conseqüentes de uma regra como as cabeças da regra e os antecedentes, caudas. Esta notação é proveniente da linguagem PROLOG, na qual as conclusões encabeçam as cláusulas.

Para o projetista do conhecimento que cria bases utilizando o Expert SINTA, o seguinte critério para definições de assertivas deve ser seguido:

( I ). A estrutura de cada cauda (premissa) deve obedecer ao seguinte modelo:

Arraste o cursor do mouse sobre a figura e clique para saber maiores detalhes.

( II ). A estrutura de cada cabeça (conclusão) deve obedecer ao seguinte modelo:

Arraste o cursor do mouse sobre a figura e clique para saber maiores detalhes.


conectivo é um dos seguintes elementos utilizados na lógica clássica: NÃO, E, OU. Sua função é unir a sentença ao conjunto de premissas que formam a seção de antecedentes de uma regra.


atributo é uma variável capaz de assumir uma ou múltiplas instanciações no decorrer da consulta à base de conhecimentos. Cabe ao desenvolvedor definir o tipo de atributo. Um atributo é uma entidade totalmente abstrata, capaz de armazenar listas de valores cujo significado depende do contexto da base. Por exemplo, um atributo doença, no SECAJU, é capaz de ser instanciado a qualquer um ou vários elementos da lista de valores pré-definida [mofo preto, oidio, antracnose]. Números também podem ser atribuídos a variáveis;


operador é um elo de ligação entre o atributo e o valor da premissa que define o tipo de comparação a ser realizada. São operadores relacionais: =, >, <=, <>, entre outros;


valor é um item de uma lista a qual foi previamente criada e relacionada a um atributo. Como veremos posteriormente, a interface visual do Expert SINTA foi idealizada de modo a minimizar o trabalho do responsável pela implementação da base de conhecimentos. Para tanto, o Expert SINTA exige que os atributos sejam definidos antes de criarmos uma regra que o utilize. No momento da criação de um atributo, também é possível que seja definida uma lista de valores que constituirá o universo ao qual suas instanciações devem necessariamente pertencer. As listas criadas podem ser utilizadas para construção de menus, caso o Sistema Especialista necessite efetuar uma pergunta ao usuário referente àquele determinado atributo. Um valor também pode ser um número, caso o atributo o permita.


atributo eqüivale ao mesmo atributo usado em caudas;


“=” é um operador de atribuição e não de igualdade. Ou seja, o atributo, nas cabeças de regra, é sempre instanciado a um valor. Dependendo se a variável pode ou não acumular múltiplas instanciações, o novo valor substituíra o antigo ou será empilhado com os demais.


valor equivale ao mesmo valor utilizado em caudas;


CNF (confidence factor, grau de confiança) é uma porcentagem indicando a confiabilidade daquela conclusão específica da regra. O grau de confiança varia de 0% a 100%.


Conhecimento procedural x conhecimento declarativo

Quando uma pessoa tem conhecimento de algum fato, certamente ela poderá extrair tudo o que souber sobre aquele fato quando bem entender. Porém, na Inteligência Artificial, existe um problema a mais quanto ao uso do conhecimento.

Supõe-se que o conhecimento por si só já é o suficiente para a resolução de problemas. Essa é a idéia por trás do conhecimento declarativo: não há preocupações quanto ao seu uso, somente quanto à sua posse e especificação, e ela já garantirá o alcance dos objetivos desejados.

Porém, a realidade é bem mais problemática. Um computador não é capaz de decidir qual a próxima informação que ele utilizará para o desenvolvimento de uma atividade. Faltam às máquinas um modo menos metódico e linear de ação. É necessário que especifiquemos uma estratégia de uso do seu “saber”. Mas, qual é o problema, quando a máquina possui o potencial necessário? Vejamos um exemplo:

Todos nós sabemos calcular o fatorial de um número. O fatorial de zero é um, e o fatorial dos demais números positivos é simplesmente ele multiplicado pelo fatorial do seu antecessor (como quando dizemos que o fatorial de 5 é 5 vezes o fatorial de 4). Ao colocarmos essa representação no computador, podemos representar simbolicamente por

Fatorial (n) = n x Fatorial(n - 1)

Ah, e é claro: Fatorial(0) = 1

O conhecimento está aí: agora devemos ditar ao computador o meio pelo qual ele utilizará tais afirmativas. Uma estratégia bastante comum é simplesmente percorrer as informações na ordem: inicialmente, a primeira; depois, se necessário a seguinte, e assim vai. Mas, se desejarmos calcular o prosaico fatorial de 2? Para a máquina, fatorial(2) = 2 x fatorial(1). E quanto é o fatorial de 1? Nesse caso, devemos voltar à primeira informação de como se calcula o fatorial, Fatorial (n) = n x Fatorial(n - 1). Assim chegamos que fatorial(1) é 1 vezes fatorial de zero. E o fatorial de zero? Observe que, como temos um mecanismo fixo de extração de dados, não podemos avaliar a segunda informação enquanto não terminarmos a primeira. Assim, simplesmente o computador calcularia que o fatorial de zero é zero vezes o fatorial de menos um! E continuaria eternamente com essa regra.

Esse tipo de conhecimento que depende de uma regra de extração chamamos de conhecimento procedural. Nota-se que, se simplesmente invertêssemos a ordem das informações, chegaríamos a um resultado (sempre antes de calcular um fatorial de um número, a máquina verificaria se esse número é zero)! Por isso, o uso do conhecimento é uma questão maior que simplesmente uma descrição do saber.


O método de extração procedural do Expert SINTA
O método de extração procedural de conhecimento do Expert SINTA

O Expert SINTA utiliza o encadeamento para trás, o modo mais comum de utilização de um sistema especialista. O projetista deve incluir na definição da base quais os atributos que devem ser encontrados (ou seja, os objetivos - goals - do sistema especialista). A máquina de inferência encarrega-se de encontrar uma atribuição para o atributo desejado nas conclusões das regras (após o ENTÃO...). Obviamente, para que a regra seja aprovada, suas premissas devem ser satisfeitas, obrigando à máquina a encontrar os atributos das premissas para que possam ser julgadas, acionando um encadeamento recursivo. Caso o atributo procurado não seja encontrado em nenhuma conclusão de regra, uma pergunta direta é feita ao usuário.


Exemplo de encadeamento para trás

Sejam as seguintes regras um sistema especialista para “decidir se devo ou não ir à praia amanhã”.

REGRA 1

SE  	amanhã pode chover = Não

E	tenho dinheiro suficiente = Sim

E	tenho tempo suficiente = Sim

ENTÃO devo ir à praia = Sim

REGRA 2

SE  	amanhã pode chover = Sim

OU	tenho dinheiro suficiente = Não

OU	tenho tempo suficiente = Não

ENTÃO devo ir à praia = Não

REGRA 3

SE	o serviço de meteorologia disse que vai chover amanhã = Sim

ENTÃO	amanhã pode chover = Não

REGRA 4

SE	não vou sair hoje = Sim

E	nenhuma emergência ocorrer = Sim

ENTÃO	tenho dinheiro suficiente = Sim

REGRA 5

SE	minha namorada ligar = Sim

ENTÃO	não vou sair hoje = Não

REGRA 6

SE	meu patrão passar trabalho extra = Sim

ENTÃO	tenho tempo suficiente = Não

Obs.: Observa-se que as regras acima já estão na sintaxe de regras aceita pelo Expert SINTA, o que demonstra a sua facilidade de entendimento. Os valores atribuídos não precisam ser somente Sim e Não. Para maiores detalhes sobre a criação de sistemas especialistas no Expert SINTA, consulte a visão geral sobre criação de bases.

Examinando o pequeno sistema especialista acima, claramente distinguimos que o seu objetivo é determinar o valor da variável devo ir à praia. Então, iniciamos a busca por ela. O Expert SINTA procura as regras nas quais a variável sendo procurada no momento pode receber um valor se a regra for aceita (ou seja, quando ela aparece após o ENTÃO). Em seguida, a máquina de inferência verifica se a regra vale ou não. No exemplo dado, o sistema avalia a regra 1 para poder determinar se devo ir à praia ou não.

Mas, para isso, temos que determinar se todas as premissas (amanhã pode chover = Não, tenho dinheiro suficiente = Sim, tenho tempo suficiente = Sim) são verdadeiras. Para descobrir se amanhã pode chover, tenho que repetir o processo, avaliando a regra 3. Agora tenho que saber se a meteorologia disse sobre a possibilidade de chuva amanhã. Como não existe nenhuma regra que possa concluir o que a meteorologia disse, o Expert SINTA realiza uma pergunta ao usuário, do tipo “A meteorologia afirmou se amanhã pode chover (Sim/Não)?” (claro, o computador não irá criar uma frase, essa é uma das tarefas do criador da base de conhecimento - veja o capítulo 3, Implementando o sistema, para maiores detalhes).

Se a meteorologia disser que amanhã vai chover, então primeira premissa da regra 1 passará no teste (quem confia nos serviços meteorológicos?). Avaliando a segunda premissa e repetindo o processo do encadeamento para trás, chegamos à regra 4. Mas, para descobrir se eu vou sair hoje ou não, é preciso recorrer à regra 5 (observa-se a forte idéia de recursão no backward chaining). A regra 5 leva a uma pergunta, pela qual concluiremos se tal regra vai ser aprovada. Se realmente for aprovada, a primeira premissa da regra 4 é verdadeira, fazendo com que verifiquemos agora a segunda premissa. Quando todas as premissas da primeira regra forem avaliadas, podemos determinar se a regra 1 foi aprovada ou não. Caso contrário, passamos para a próxima regra que possa concluir um valor para a variável devo ir à praia.


Variáveis univaloradas e multivaloradas

Outra questão deve ser levada em conta durante o acompanhamento da execução de um sistema especialista. Uma única variável pode receber vários valores em uma única consulta ao sistema. É muito comum em sistemas de diagnóstico médico, onde o paciente pode apresentar mais de uma doença. Portanto, é importante saber lidar com variáveis que podem ter apenas uma instanciação (univalorada) ou múltiplas (multivaloradas). Para saber como indicar ao Expert SINTA quais são as variáveis multivaloradas e univaloradas, clique aqui.

Quando a máquina de inferência está atrás de encontrar instanciações para uma variável univalorada, ela irá procurar até encontrar um valor ou até esgotar todas as possibilidades da base de conhecimento. Se, por algum motivo, durante a busca de uma outra variável, uma variável univalorada receber um valor quando já possuía outro, esse valor antigo será descartado e o novo vigorará.

A busca de valores para variáveis multivaloradas prossegue até que toda a base de conhecimento seja explorada. Os valores permanecem acumulados. É nessa hora que é preciso ter cuidado com contradições presentes na base. O Expert SINTA, na presente versão, não faz verificações de inconsistências lógicas.

Obs.: variáveis numéricas são tratadas como univaloradas, sempre.


Operadores e o cálculo de premissas
Operadores e a avaliação de premissas

O Expert SINTA, salvo seja especificado o contrário, procurará aceitar ou rejeitar um regra analisando o mínimo de premissas possível. Por exemplo:

SE

   PREMISSA 1

E  PREMISSA 2

ENTÃO

   CONCLUSÃO 1

Nesse caso, se a premissa 1 for falsa, a premissa 2 não será avaliada. Do modo inverso, temos o exemplo a seguir:

SE

   PREMISSA 1

OU PREMISSA 2

ENTÃO

   CONCLUSÃO 1

Sendo verdadeira a premissa 1, a premissa 2 não será avaliada e a regra, aprovada.


Leitura adicional: conhecimento monotônico x conhecimento não-monotônico

Digamos que você estacionou o seu carro em frente ao local de trabalho. Evidentemente, ao retornar, você saberá o local onde deixou o seu carro e saberá que o utilizará para voltar para casa. Mas, em um intervalo de trabalho, alguém lhe diz que seu carro foi roubado! Agora você sabe que não o encontrará onde o tinha deixado.

No dia-a-dia, enfrentamos situações que modificam as nossas certezas. O que antes tínhamos por certo agora estamos convictos que não são mais realidade. Isso porque nós pensamos em um tipo de lógica não-monotônica, ou seja, podemos receber informações que contrarie as que já possuímos.

No tratamento tradicional de informações da Inteligência Artificial, o conhecimento monotônico, ou seja, aquele que ao acrescentarmos novas informações nunca fica contraditório, inconsistente, é o comumente usado. O Expert SINTA trata o conhecimento de forma essencialmente monotônica.


Bases de conhecimento no Expert SINTA
Visão geral de uma base de conhecimento no Expert SINTA

O Expert SINTA foi criado de modo a permitir ao próprio analista de conhecimentos implementar a base desejado. O usuário do Expert SINTA não necessita do menor conhecimento de programação, apenas de como interagir em ambientes visuais.

Na gerência de uma base de conhecimentos, deve-se fornecer ao sistema as seguintes informações:

 Variáveis

 Regras

 Perguntas

 Objetivos

 Informações adicionais

Todos esses elementos podem ser controlados pela janela KIB. Ao término de tais definições, é possível a execução a base.

Obs1.: O Expert SINTA, até a presente versão, não é capaz de identificar erros de inconsistência lógica. Por isso, erros (como “estouro de pilha”, no caso em que a base entra em recursão infinita) podem vir a ocorrer em bases mal implementadas.

Obs2.: É necessário que se possua ao menos uma variável objetivo definida. Informações adicionais são dispensáveis.


Gerenciando de uma base de conhecimentos
Gerenciando bases de conhecimento

Como padrão, O Expert SINTA grava as bases de conhecimento geradas em arquivos *.BCM. Para abrir bases pré-existentes em seus discos, utilize o menu Arquivo|Abrir. Consulte a ajuda do Windows se precisar de maiores informações de como trabalhar com a caixa de diálogo Abrir Arquivo. Para criar uma base totalmente nova, use o menu Arquivo|Novo. Imediatamente, uma nova base de conhecimento, vazia, será criada para você.

Finalmente, quando desejar salvar uma base na qual se está trabalhando para posterior uso, utiliza-se o menu Arquivo|Salvar. Quando você estiver salvando a base pela primeira vez, uma caixa de diálogo aparecerá para que seja indicado o nome do arquivo na qual a base será gravada e a pasta na qual ele será encontrada. Consulte a ajuda do Windows se precisar de maiores explicações sobre o uso da caixa de diálogo Salvar Arquivo.

A impressão se dá através do menu Arquivo|Imprimir. Uma caixa de diálogo de configuração de impressoras aparecerá. Consulte a ajuda para detalhes de como usar a caixa de diálogo de configuração de impressoras.

Muitas das opções dos menus encontram-se também na barra de ferramentas, inicialmente presente no topo da área de trabalho do Expert SINTA. É possível mudar a posição da barra de ferramentas clicando sobre ela e arrastando a moldura que surge para a posição desejada. Clique nos diferentes botões abaixo para saber a quais menus são referenciados por quais botões.


Arquivo|Novo

Essa opção, a primeira do menu Arquivo, permite a criação de uma nova base de conhecimento vazia. O nome da base e o local onde ela é gravada são definidos somente na gravação do arquivo. Sempre que se desejar criar uma base do começo, utilize essa opção.


Arquivo|Abrir

Quando se desejar utilizar um sistema especialista previamente criado, deve-se informar onde o mesmo se encontra no seu computador. Para isso, utilize o menu Abrir, o segundo do menu Arquivo. Uma caixa de diálogo aparecerá, onde será necessário que se informe qual o arquivo contendo uma base de conhecimento se deseja abrir.


Arquivo|Salvar

Sempre que se desejar armazenar uma base de conhecimento para posterior uso, é necessário que a mesma seja salva em disco. Para isso, utilize o menu Salvar (localizado sob o menu Arquivo). Se esta for a primeira vez que o sistema é salvo, uma caixa de diálogo aparecerá, e será necessário que se indique o nome da base e o local onde ela será gravada. Bases já anteriormente salvas são gravadas automaticamente. Para salvar uma base com outro nome, utilize o menu Salvar Como, localizado imediatamente abaixo do menu Salvar.


Consulta|Iniciar

Inicia uma consulta ao sistema especialista desenvolvido no Expert SINTA.


Consulta|Interromper a consulta

Paralisa uma consulta ao sistema especialista, permitindo que se veja em que ponto da base de conhecimento a máquina de inferência se situa.


Consulta|Finalizar

Aborta uma consulta ao sistema especialista antes do seu término.


Consulta|Voltar pergunta

Volta para a última pergunta realizada pelo sistema em uma consulta, permitindo modificar uma resposta.


Depurar|Passo

Executa passo a passo uma consulta que estiver paralisada.


Depurar|Ver variáveis

Exibe as variáveis que estão sendo acompanhadas durante uma consulta.


Depurar|Adicionar variáveis...

Adiciona variáveis a uma lista de acompanhamento.


Arquivo|Imprimir

Imprime a base de conhecimento, com todas as regras, variáveis, objetivos e perguntas. Em alguns casos pode ser mais vantajoso salvar o sistema em um arquivo texto e depois, utilizando um editor de textos, fazer as alterações desejadas. Para isso, utilize o menu Arquivo|Exportar...


?|Conteúdo

Exibe a presente ajuda.


Sistema|Nova regra...

Cria uma nova regra para o sistema especialista.


Sistema|Abrir regra

Abre uma regra selecionada na janela KIB.


Sistema|Exclui regra

Exclui uma regra selecionada na janela KIB.


Sistema|Visualizar

Exibe todas as regras do sistema especialista.


Sistema|Variáveis

Abre a janela de edição de variáveis.


Sistema|Objetivos

Define os objetivos do sistema especialista.


SistemaIInterface

Define a interface do sistema especialista com o usuário final.


Sistema|Informações

Permite a inclusão de informações complementares sobre o sistema especialista.


A barra de ferramentas

A barra de ferramentas permite acionar diversas opções do menu de modo mais direto. Arraste o cursor do mouse sobre a figura abaixo para saber mais sobre cada botão.


A janela KIB
A janela Knowledge In a Box (KIB)

Essa janela traz todas as opções de edição de base, além de uma lista com todas as regras presentes até o momento. Tais opções, e outras, encontram-se repetidas na barra de ferramentas, inicialmente presente no topo da área de trabalho do Expert SINTA.


Clique aqui para criar uma nova regra. Veja também: gerenciando regras.


Abre a regra que está selecionada na lista ao lado. Veja também: gerenciando regras.


Exclui a regra que está selecionada na lista ao lado. Veja também: gerenciando regras.


Exibe todas as regras em conjunto.


Chama a janela de edição de variáveis.


Define os objetivos da base de conhecimento.


Chama a janela de edição de interface.


Permite a inclusão de informações extras sobre a base.


Fecha a base de conhecimento. Somente uma pode estar aberta por vez.


Lista de regras: um duplo-clique abre a regra. É possível arrastar o nome da regra até a posição desejada, para alterar a ordem na qual elas aparecem. Veja também: gerenciando regras.


Como criar variáveis e valores
Criando variáveis e valores

Antes de podermos criar regras, é necessário que todas as variáveis utilizadas, bem como seus respectivos valores, sejam criados. Através desse mecanismo, a base fica organizada, fácil de manter e as regras podem ser criadas visualmente. A janela de edição de variáveis é exibida abaixo. Para saber mais sobre cada item da janela, arraste o mouse sobre o ponto desejado e clique.

Vejamos os passos necessários para criação e edição de variáveis e valores:

 Na janela KIB, clique o botão Variáveis;

 A janela de variáveis é aberta, e duas caixas de listagem podem ser vistas. A caixa da esquerda representa as variáveis já existentes, enquanto à da direita, os valores relativos à variável que está atualmente selecionada (clique em determinado item da lista de variáveis para exibir os valores correntes);

 Adicionar variáveis é simples: basta que pressione o botão Adicionar Variável e, em seguida, digitemos um valor na caixa de texto Variável. Atenção: Para confirmarmos o novo valor é necessário que tecle <ENTER> imediatamente após a digitação ou cliquemos o pequeno botão à direita (o que possui a marca de verificação). Para cancelar a inserção, é só clicar em qualquer outro controle da janela (incluindo os botões OK e Cancelar, os quais fecham a janela).

 Adicionar valores é um procedimento análogo, só é necessário que uma variável esteja selecionada;

 Para indicar se uma determinada variável é numérica, multivalorada ou univalorada, primeiro selecionamos uma variável e, em seguida, o tipo desejado entre os botões de opção localizados no canto inferior direito da janela

 Variáveis numéricas não podem ter valores pré-definidos. Nesse caso, a lista de valores passa atuar como lista de intervalo, ou seja, nela é exibido o intervalo de valores aceitáveis para aquela variável. Intervalos são incluídos de maneiras idênticas a valores, mas é necessário obedecer a certas regras:

- Os intervalos devem ser da forma a;b ou ;b ou a;, onde a e b representam números reais . Assim sendo

a;b representa um número entre a e b;

;b um número maior ou igual a b;

a; um número menor ou igual a a;

- Somente um intervalo pode ser incluído por variável numérica;

Para definir a ordem na qual os valores aparecerão nas janelas criadas durante uma pergunta, clique na variável desejada, em seguida clique e segure o cursor sobre o valor desejado e arraste-o até a posição certa.

Observação: Mudar de variável não numérica para numérica pode implicar perda de valores.

Observação 2: apagar uma variável ou valor encontrado em uma regra ou mais regras implica que as mesmas também devem ser eliminadas. O Expert SINTA efetua uma confirmação antes de eliminá-las.


variável multivalorada

Uma variável é dita multivalorada quando pode assumir mais de um valor. Se durante a consulta um novo valor é inferido a tal variável, ele é acumulado junto com os anteriores. Isso é muito comum em variáveis objetivo, pois diversas soluções podem ser alcançadas para um determinado quadro de consulta.


variável univalorada

Uma variável é dita univalorada quando pode assumir somente um valor. Se durante a consulta um novo valor é inferido a tal variável, o valor antigo é descartado.


Todas as variáveis já incluídas aparecerão aqui.


Nessa caixa aparecerão os valores relacionados à variável selecionada na lista à esquerda.


Sempre que uma variável for selecionada na lista acima, seu nome aparecerá aqui. Utilize essa caixa de texto para indicar um nome para uma variável já existente ou criar uma nova variável.


Sempre que um valor for selecionado, seu nome aparecerá aqui. Utilize essa caixa de texto para indicar um nome para um valor já existente ou criar um novo valor.


Clique aqui para efetuar uma modificação realizada na caixa de texto à esquerda, tanto para modificar uma variável/valor existente para incluir novos. Possui o mesmo efeito que apertar a tecla <ENTER>. Não confundir com o botão OK abaixo.


Clique aqui para desfazer quaisquer modificações na caixa de texto à esquerda. Possui o mesmo que apertar a tecla <ESC>. Não confundir com o botão Cancelar abaixo.


Aperte esse botão sempre antes de incluir uma variável. A caixa de texto Variável será limpa e o cursor nela aparecerá, indicando que o nome da nova variável deve ser digitado. Após incluir uma nova variável, o cursor irá para a caixa de texto relativo a valores. Você não é obrigado a incluir valores para aquela nova variável, embora essa ação seja comum quando da sua criação.


Aperte esse botão para excluir a variável que estiver selecionada na lista de variáveis. Se nenhuma estiver marcada, o botão estará em cinza, indicando que a ação não é possível. Importante: se alguma regra estiver utilizando essa variável, ela será apagada. O Expert SINTA lhe avisá se isso poder ocorrer e pedirá sua confirmação.


Aperte esse botão sempre antes de incluir um valor. A caixa de texto Valor será limpa e o cursor nela aparecerá, indicando que o nome da nova variável deve ser digitado. Na realidade, ao se incluir uma nova variável, o Expert SINTA imediatamente entra em um modo de inserção de valores. Você só precisará utilizar essa opção se quiser associar um valor a uma variável tempos depois de criá-la.


Aperte esse botão para excluir o valor que estiver selecionada na lista de variáveis. Se nenhum estiver marcada, o botão estará em cinza, indicando que a ação não é possível. Importante: se alguma regra estiver utilizando esse valor, ela será apagada. O Expert SINTA lhe avisá se isso poder ocorrer e pedirá sua confirmação.


Marque esse botão se a variável referente for numérica.


Marque esse botão se a variável referente for multivalorada.


Marque esse botão se a variável referente for univalorada.


Pressione OK para fechar essa janela e confirmar as alterações feitas, não para efetuar uma única alteração. Para isso, use o botão pequeno marcado com um “V” verde. Eqüivale a fechar a janela com o botão de sistema do Windows ou com <CTRL> + F4.


Pressione Cancelar para fechar essa janela sem confirmar as alterações feitas, não para desfazer uma única alteração. Para isso, use o botão pequeno marcado com um “X” vermelho.


Caixa de diálogo "Nova regra"
Nova Regra

Essa caixa de diálogo surge sempre antes da criação de uma nova regra. Ela tem como utilidade inicializar uma regra nova com alguma informações, como a sua posição em relação às outras (a ordem das regras tem importância), bem como um “modelo” no qual ela pode se basear.

Arraste o mouse sobre a figura e clique para maiores informações:


Se a regra que você está criando é muito parecida com outra, é possível reaproveitá-la. Indique aqui uma regra e todos os seus itens serão copiados para a nova regra criada, poupando o seu trabalho. Para criar um regra do zero, deixe marcado o item NENHUM.


Indique a posição da regra (lembre-se que, em conhecimento procedural, a ordem das regras é importante). Se desejar, mude sua posição depois.


Clique aqui para iniciar a edição de uma nova regra.


Clique aqui para cancelar a edição da regra.


Como criar regras
Trabalhando com regras

O Expert SINTA utiliza regras de produção para modelar o conhecimento humano, o que o torna ideal para problemas de seleção, no qual uma determinada solução deve ser atingida a partir de um conjunto de seleções.

Para abrir uma regra, selecione-a na janela KIB e pressione o botão Abrir.

Para excluir uma regra, selecione-a na janela KIB e pressione o botão Excluir.

Para criar uma nova regra, selecione-a na janela KIB e pressione o botão Nova Regra. Para maiores detalhes sobre a criação de novas regras, clique aqui.

Veja abaixo um exemplo de uma janela contendo uma regra. Para saber mais sobre cada item, arraste o mouse sobre a figura e clique onde quiser.

Para editar uma regra, acompanhe o seguinte esquema:

 Para inserir uma premissa, marque o local na caixa de listagem na qual se desejar inserir a sentença e clique o botão Inserir. Uma outra janela aparecerá com várias listas.

 Para inserir uma conclusão, proceda de modo análogo, escolhendo um item a partir do conectivo ENTÃO na sua regra. Em conclusões, somente o operador de atribuição (“=“) pode ser utilizado. A última lista presente indica o grau de confiança daquela atribuição. Deixar a lista vazia indica uma confiança de cem por cento.

 Para editar uma sentença, selecione-a e clique o botão Alterar (ou dê um duplo clique sobre ela). Para eliminar uma sentença, selecione-a e clique o botão Excluir.

 Se a variável relativa à sentença for uma variável numérica, a caixa de valores não exibirá uma lista, apenas um espaço vazio para a entrada de um valor numérico ou uma fórmula.

Observação: também é possível visualizar regras em conjunto.


É aqui que aparecem as sentenças da sua regra. A sentença selecionada será aquela que sofrerá alterações. Ao se inserir um novo item, o mesmo aparecerá imediatamente após a sentença selecionada.


Crie um nome para regra, a fim de facilitar a sua localização e esclarecer sua importância.


Indica a posição da regra em relação às demais. Também pode ser mudada arrastando o nome da regra para a posição desejada na janela KIB.


Edita o item selecionado na lista acima.


Insere um novo item de regra imediatamente após ao item selecionado na lista acima.


Apaga a sentença selecionada na lista acima.


Clique aqui para fecha a regra e confirmar as alterações. É necessário que a regra possua pelo menos uma premissa e uma conclusão.


Fecha a regra sem levar em consideração as modificações.


Clicando aqui, uma nova regra será criada, fechando-se a atual.


Indica qual a variável que será comparada a um valor nesse item de regra.


Identifica o tipo de relação: igualdade (“=“), diferença (“<>“), outros (“>“, “>=“, “<“, “<=“ - somente para variáveis numéricas).


Indica qual o valor que será comparada a uma variável nesse item de regra.


Caso a premissa não seja a primeira da regra, você deverá indicar o tipo de conectivo (E ou OU, conjunção ou disjunção) pelo qual a premissa se liga à anterior. Também é possível avaliar esse item por sua negação, marcando a caixa Não.


Aperte aqui para confirmar a mudança do item. Esta janela será fechada.


Aperte aqui para inserir uma nova premissa ou conclusão. Você poderá inserir várias sem necessidade de fechar esta janela, contanto que as premissas/conclusões inseridas sejam consecutivas.


Aperte aqui para cancelar a mudança do item.


Aperte aqui quando terminar de inserir os itens desejados.


Se você estiver inserindo uma premissa e desejar agora inserir uma conclusão, aperte aqui. As novas conclusões inseridas aparecerão ao final da regra. No caso contrário, se você houver iniciado a inserção de uma conclusão e agora desejar uma premissa, aperte aqui. As novas premissas aparecerão ao final das já existentes.


Indica qual a variável que receberá um valor nesse item de regra.


Atenção: o símbolo de igual está indicando aqui uma atribuição e não uma comparação.


Indica qual o valor que será atribuído a uma variável nesse item de regra.


Indica o grau de confiança (CNF) dessa regra em relação a uma determinada sentença, em porcentagem. Deixar a lista em branco eqüivale a 100 por cento de confiança.


Entre aqui um número ou uma fórmula matemática.


Clique aqui para exibir o conteúdo da caixa ao lado em uma janela maior.


Inserindo fórmulas matemáticas em uma regra

Quando se utiliza variáveis numéricas, é comum que queiramos atribuir a elas valores extraídos de fórmulas matemáticas, ou compará-las a valores equivalentes. Se você já sabe como criar regras, já deve saber como inserir uma sentença de regra contendo uma variável numérica e um valor. Para inserir uma função ou expressão, simplesmente digite-a no lugar reservado ao valor. Deve-se, porém, seguir as seguintes regras:

 Os operadores matemáticos válidos são: + (adição), - (subtração), * (multiplicação), / (divisão), + (sinal unário indicando que um número é positivo), - (sinal unário indicando que um número é negativo);

 As seguinte funções podem ser utilizadas:

- Min(a, b): retorna o menor valor entre a e b;

- Max(a, b): retorna o maior valor entre a e b;

- Sqr(x): raiz quadrada de x;

- Exp(x): exponencial de x;

- Pot(a, b): retorna a elevado a b;

- Log(a, b): logaritmo de a na base b;

- Ln(x): logaritmo natural de x;

- Abs(x): módulo (valor absoluto) de x;

- Sen(x): seno de x, x em radianos;

- Cos(x): cosseno de x, x em radianos;

- Tan(x): tangente de x, x em radianos;

 Variáveis podem ser utilizadas nas expressões. Para atribuir a raiz de uma variável a outra, pode-se fazer algo do tipo a = sqr(b). A diferença entre maiúsculas e minúsculas não é considerada. Atenção: se o nome da variável contiver espaços em branco ou símbolos, coloque-a na expressão entre aspas. Por exemplo: Min(“juros de dezembro”, “juros de janeiro”);

 Se o valor da expressão for desconhecido, uma variável que esteja recebendo o valor retornado também será instanciada para desconhecido;

 É possível utilizar parênteses e aninhar funções.

 ATENÇÃO! Use como separador decimal o ponto, nunca a vírgula!


Personalizando perguntas
Personalizando interface

Na versão atual, o Expert SINTA não apresenta grande flexibilidade no desenho da interface do sistema especialista com o usuário final. O Expert SINTA gera automaticamente telas com perguntas dirigidas ao usuário baseado nas regras e variáveis.

Além disso, embora não seja necessário, é bastante útil que as perguntas que o sistema realiza ao usuário tenham um texto claro. Sempre que o Expert SINTA procura o valor de uma variável v e não encontra uma regra capaz de inferir um valor, ele realiza uma pergunta direta ao usuário. Caso o desenvolvedor tenha criado um texto para a pergunta relativa àquela variável, ele aparecerá. Caso contrário, uma pergunta genérica e pouco esclarecedora aparecerá: “Qual o valor de v?”.

Portanto, vale a pena que o desenvolvedor facilite a vida daqueles que utilizarão seu sistema. Além disso, é possível incluir os motivos pelos quais aquela pergunta é necessária, deixando ainda mais claro quais os objetivos do sistema.

Para criar perguntas, realizemos os seguintes passos:

 Na janela da base de conhecimentos, clique o botão Perguntas;

 Na parte superior direita da janela de Perguntas, encontra-se uma lista das variáveis que já possuem perguntas prontas. Para visualizá-las, clique em alguma. Para modificar a pergunta ou o motivo, simplesmente rescreva o conteúdo das caixas de texto. As mudanças são automáticas. Para eliminar uma pergunta, simplesmente mova o item selecionado para a lista da esquerda, pressionando o botão correspondente;

 Na lista superior esquerda, aparecem as variáveis que ainda não possuem nenhuma pergunta pronta. Para criar uma nova pergunta, selecione a variável desejada e mova-o para a lista da direita, pressionando o botão correspondente, e digite o conteúdo das caixa de texto. As mudanças são automáticas.

Arraste o mouse sobre a figura abaixo para conhecer os itens da janela de definição de interface e clique quando desejar.

Observação: Não faz sentido criar perguntas para variáveis que podem ser inferidas a partir das conclusões de uma regra. O Expert SINTA ignorará esse tipo de pergunta.

Observação 2: É possível selecionar várias variáveis ao mesmo tempo. Use a tecla <CONTROL> ou a tecla <SHIFT> simultaneamente ao ato de clicar sobre o item.


Nessa lista estão todas as variáveis que ainda não possuem nenhuma pergunta a ela associada.


Clicando aqui, a variável que estiver selecionada à esquerda irá agora fazer parte da lista de variáveis que possui uma pergunta relacionada.


Apaga a pergunta relacionada à variável selecionada à direita, devolvendo-a à lista da esquerda.


Nessa lista se encontram todas as variáveis que possuem alguma pergunta relacionada. A pergunta (e o motivo) correspondentes sempre aparecem nas caixas abaixo.


Sempre um item é selecionado na lista de variáveis com perguntas, essa caixa de texto é relacionada a essa pergunta. Para modificar alguma pergunta, basta reescrever o seu conteúdo. A atualização é automática.


Sempre um item é selecionado na lista de variáveis com perguntas, essa caixa de texto é relacionada ao motivo correspondente àquela pergunta. Para modificar algum motivo, basta reescrever o seu conteúdo. A atualização é automática. Para inserir uma quebra de linha, simplesmente aperte <ENTER> quando o cursor estiver na posição desejada.


Aperte aqui para fechar essa janela e confirmar as alterações. Eqüivale a fechar a janela utilizando o menu de sistema ou as teclas <CTRL> + <F4>.


Aperte aqui para fechar essa janela sem confirmar as alterações. Todas as modificações feitas desde a última vez que a janela foi aberta serão perdidas.


Com essa opção marcada, o usuário poderá, durante a pergunta, indicar o grau de confiança de suas respostas.


Definindo os objetivos

O objetivo de uma consulta a um especialista é encontrar a resposta para um determinado problema. Assim também o é um Sistema Especialista. A diferença é que, aqui, os “problemas” são representados por variáveis. Antes de podermos executar nosso sistema pela primeira vez, é preciso que definamos quais são as variáveis (chamadas variáveis objetivo) que irão controlar o modo como a máquina de inferência se comporta.

Sigamos o seguinte esquema para determinação de objetivos:

 Na janela de base de conhecimentos, cliquemos o botão Objetivos. Aparecerá uma janela com duas listas: a lista das variáveis comuns e a das variáveis objetivo;

 Para fazer de uma variável comum uma variável objetivo e vice-versa, selecione e variável desejada e clique no botão correspondente, aquele que aponta para a lista de destino. A lista com uma seta dupla (seja para a esquerda ou para direita) move todos os items de uma lista para outra. Para mudar a ordem dos elementos da lista de objetivos, clique em um item e arraste-o até a posição desejada.

Arraste o mouse sobre a figura abaixo para maiores detalhes sobre cada item da janela.

Observação: caso o sistema seja posto em funcionamento sem nenhum objetivo definido, nada acontecerá (seria como falar com um especialista sem ter nada para descobrir!)


Se essa caixa estiver marcada, o Expert SINTA mostrará uma janela com os resultados do objetivo sempre que todas as conclusões sobre ele tiverem sido efetuadas.


Lista todas as variáveis que não são variáveis objetivos.


Lista todas as variáveis que são objetivos. Importante: a máquina de inferência realizará a busca na ordem na qual os objetivos aqui aparecem. Para mudar a ordem, simplesmente clique e segure o cursor do mouse sobre um dos itens desta lista e arraste-o (o cursor mudará) até a nova posição desejada.


Transforma a variável que está selecionada na lista à esquerda em uma variável objetivo.


Transforma todas as variáveis criadas até o momento em variáveis objetivo do sistema especialista.


Retira a variável seleciona à direita da lista de variáveis objetivo.


Limpa a lista de variáveis objetivo.


Criando textos explicativos para sua base de conhecimentos
Criando textos explicativos

Um bom Sistema Especialista não deve saber somente encontrar respostas, mas também fazer o usuário utilizar a resposta com fins práticos. Para isso, o Expert SINTA possibilita a inclusão de tópicos de ajuda para os valores possíveis de determinados atributos, associando a um arquivo no formato Ajuda do Windows a sua base. Explicações sobre a criação de arquivos de ajuda fogem ao escopo do presente documento, mas existem diversas documentações fornecidas por terceiros. O Expert SINTA também não distribui o compilador necessário para a criação do arquivo final.

A idéia desses textos explicativos não é somente ativar uma ajuda on-line quando o usuário estiver utilizando o sistema, mas ir diretamente ao tópico explicativo de uma resposta, quando o Expert SINTA atinge um determinado objetivo. Para isso, o desenvolvedor deve, na janela “Informações” ativada a partir da janela de base de conhecimentos, escolher os valores das variáveis-objetivo que irão possuir um número de contexto de ajuda. Quando o usuário final ativar a ajuda on-line, ela aparecerá diretamente no tópico referente à solução específica. O desenvolvedor também deve incluir o nome do arquivo de ajuda na caixa de texto nome do arquivo de ajuda, na mesma janela.

Por exemplo, no caso da configuração de redes de computadores, o protocolo ideal sugerido pelo sistema foi o TCP/IP. Então, bastará ao usuário selecionar esse item e acionar a ajuda que imediatamente aparecerão informações sobre tal protocolo.

Maiores informações sobre números de contexto de ajuda e compiladores de Windows Help  (como o HC31) podem ser conseguidas através de terceiros. Para saber mais sobre a implementação de contextos de ajuda no Expert SINTA, clique aqui.


Adicionando informações sobre a base

Após a implementação do sistema, nada mais natural que desejemos incluir vários tipos de informação complementar, como, por exemplo, o nome da base, os autores, um texto de abertura e textos didáticos relativos às soluções encontradas.

Na janela de Informações (acionada através do botão Informações da janela da base de conhecimentos), todos esses dados podem ser incluídos. A janela é dividida em duas guias:

Geral

Aqui, informações iniciais sobre o sistema são incluídas, tais como o nome da base, os autores e um texto de abertura. Todo os dados aparecerão em uma tela de abertura quando a base é posta em funcionamento. Para permitir a exibição dos dados, deixe marcada a caixa de verificação Exibir tela de abertura.

Arquivo de Ajuda

Para garantir melhor aproveitamento da sua base, textos didáticos podem ser relacionados a cada solução encontrada. Para tanto, crie um arquivo de ajuda no formato Ajuda do Windows e defina os contextos de ajuda relativos a cada valor (se desejado) de cada variável objetivo.


Digite aqui o nome do sistema especialista para identificação.


Digite aqui os nomes dos criadores da base de conhecimento.


Digite aqui um resumo informativo sobre o sistema especialista, que pode ser, inclusive, exibido no início de uma consulta. Dica: esse campo pode ser usado para exibir também a licença de uso do sistema.


Deixe a caixa marcada caso queira que cada consulta comece com uma tela de abertura exibindo as informações aqui digitadas.


Entre com o nome do arquivo de ajuda que contiver informações extras sobre a base. Obviamente, ele não é necessário, mas aumenta em muito a utilidade do sistema especialista.


Lista todas as variáveis objetivo. A idéia é incluir explicações sobre as conclusões. Como as conclusões se relacionam principalmente a variáveis objetivo, não seria útil a criação de contextos para as demais variáveis. Ao selecionar um item nessa caixa, seus respectivos valores possíveis aparecerão na lista ao lado.


Lista todos os valores possíveis da variável selecionada na lista à esquerda.


Entre aqui o número do contexto de ajuda daquele determinado valor selecionado na lista à esquerda. Para maiores detalhes sobre arquivos de ajuda, consulte documentação de terceiros. Para eliminar um contexto de ajuda, digite 0 nessa caixa.


Clique aqui para confirmar mudanças no contexto de ajuda em edição. Eqüivale a pressionar a tecla <ENTER>. Não confundir com o botão OK, o qual fecha a janela.


Clique aqui para desfazer mudanças no contexto de ajuda em edição. Eqüivale a pressionar a tecla <ESC>. Não confundir com o botão Cancelar, o qual fecha a janela.


Dependências entre variáveis

Como se sabe, para que a máquina de inferência defina o valor de uma variável, esta deve ser inferida pelo encadeamento para trás embutido no Expert SINTA. Isto implica que uma variável, para ser determinada, necessita das instâncias (valores) de outras variáveis, ou de indicação direta do usuário.

Com o crescimento da base de conhecimento, o número de variáveis pode aumentar de forma a dificultar sua gerência. Para melhor organização, é sempre bom que se saiba de que modo as variáveis estão unidas, seja para verificar conflitos, seja para verificar redundâncias.

A ferramenta Dependências do Expert SINTA auxilia nesta tarefa. Clicando-se no menu Depurar|Dependências, a seguinte janela aparecerá:

Observe que os pontos de partida da “árvore” exibida acima são os objetivos do sistema, enquanto os nós terminais são sempre requisições ao usuário final. Se conflitos ocorrerem, será exibida uma mensagem de erro.


Este painel exibe as dependências de forma hierarquizada. As variáveis trazem incluídas dentro de seu domínio todos os seus pré-requisitos: outras variáveis ou a indicação do usuário. Se houver uma dependência circular entre variáveis, o conflito será indicado.


Fecha esta caixa de diálogo.


Expande todos os itens da “árvore” acima.


Fecha todos os itens da “árvore” acima.


O que são fatores de confiança

Sabemos que o conhecimento humano não é determinístico. Não há especialista que sempre se encontre em condições de afirmar determinada conclusão com certeza absoluta. Graus de confiança são freqüentemente atribuídos às suas respostas,  principalmente quando existe mais de uma. Este, sem dúvida, é um dos mais fortes pontos críticos na elaboração de uma representação computacional do saber humano.

Vejamos a dificuldade em representar a confiabilidade das informações:

 Especialistas humanos não se sentem confortáveis em pensar em termos de probabilidade. Suas estimativas não precisam corresponder àquelas definidas matematicamente;

 Tratamentos rigorosamente matemáticos de probabilidade utilizam informações nem sempre disponíveis ou simplificações que não são claramente justificáveis em aplicações práticas.

Na verdade, existem duas correntes de pensamento: aquela que utiliza fórmulas estatísticas rigorosas e aquela que utiliza uma abordagem ad hoc sobre os fatores de certeza, ou seja, mais generalizada e sem uma base matemática forte. O Expert SINTA utiliza atualmente uma abordagem não-estatística, mas baseada na Teoria dos Conjuntos.


Como se calculam os fatores de confiança no Expert SINTA
Os fatores de confiança no Expert SINTA

Vejamos como se atribuem fatores de confiança na presente versão do Expert SINTA:

Caso 1: Quando queremos saber o valor final atribuído às variáveis na conclusão de um regra.

Caso 2: Cálculo do grau de confiança com o operador E.

Caso 3: Cálculo do grau de confiança com o operador OU.

Caso 4: Quando uma variável recebe duas vezes o mesmo valor em pontos diferentes da consulta.

Obs.1: O sistema admite 50% como valor mínimo de confiança para que uma igualdade seja considerada verdadeira, mas esse valor pode ser mudado. O intervalo de grau de confiança varia de 0 a 100.

Obs.2: O operador E tem precedência sobre o OU.


Seja c1 o grau de confiança atribuído ao resultado final da premissa de uma regra r. Na conclusão de r, devemos ter expressões como var = value CNF c2, onde var é uma variável, value é um termo qualquer que pode ser atribuído a uma variável, c2 é um real pertencente ao intervalo [0; 100] que representa o grau de confiança da atribuição. Mas, c2 é apenas uma referência, pois o valor final é dependente do resultado da premissa. Assim sendo, realizar-se-á a operação var = value CNF c1. c2.

Exemplo de aplicação:

SE fumagina = sim

ENTÃO suspeita de praga = mosca branca,

grau de confiança (CNF) 70%.

Assim sendo, supondo que o grau de confiança da igualdade fumagina = sim é 80%, teremos que à variável suspeita de praga será atribuído o valor mosca branca, com o respectivo grau de confiança 0.80 * 0.70 = 0.56 = 56%.


Se possuímos duas igualdades var1 = value1 e var2 = value2, com os respectivos graus de confiança c1 e c2, temos que a sentença var1 = value1 E var2 = value2 retornará como valor de confiança c1. c2.

Exemplo de aplicação:

SE estados das folhas = esfarelam facilmente

E   presença de manchas irregulares = sim...

Se o grau de confiança da igualdade estados das folhas = esfarelam facilmente é 80% e o grau de confiança da igualdade presença de manchas irregulares = sim é 70%, temos que a conjunção das duas sentenças retornará um valor CNF de 56%, pois esse é o produto dos dois valores.


Se possuímos duas igualdades var1 = value1 e var2 = value2, com os respectivos graus de confiança c1 e c2, temos que a sentença var1 = value1 OU var2 = value2 retornará como valor de confiança c1 + c2 - c1 . c2.

Exemplo de aplicação:

SE  besouros vermelhos = sim

OU larvas marrons = sim ...

Se o grau de confiança da igualdade besouros vermelhos = sim é 80% e o grau de confiança da igualdade larvas marrons = sim é 70%, temos que a disjunção das duas sentenças retornará um valor CNF de 0.70 + 0.80 - 0.70 * 0.80 = 1.50 - 0.56 = 0.94 = 94%.


Em momentos diferentes de uma consulta, uma mesma variável var pode receber o mesmo valor v, sendo que até à penúltima instanciação ela possuía grau de confiança c1, e a última atribuiu um CNF c2. Sendo assim, temos que o valor final de confiança para var = v será dado pela fórmula ca + cn - ca * cn, onde ca representa o grau de confiança antes da última mudança e cn o último grau de confiança atribuído.

Exemplo de aplicação:

A variável doença possuía valor mofo preto com grau de confiança 60%. Após a aplicação de outras regras chegou-se a uma outra atribuição doença = mofo preto, desta vez com CNF 50%.

O cálculo se dá de maneira semelhante à aplicação da regra OU: doença terá como um dos valores mofo preto, com respectivo grau de confiança 0.60 + 0.50 - 0.60 * 0.50 = 1.10 - 0.30 = 0.80 = 80%.


O valor DESCONHECIDO
Lidando com o desconhecido

Vejamos o seguinte exemplo.

REGRA 1

SE  	amanhã pode chover = Não

E	tenho dinheiro suficiente = Sim

E	tenho tempo suficiente = Sim

ENTÃO devo ir à praia = Sim

REGRA 2

SE  	amanhã pode chover = Sim

OU	tenho dinheiro suficiente = Não

OU	tenho tempo suficiente = Não

ENTÃO devo ir à praia = Não

REGRA 3

SE	o serviço de meteorologia disse que vai chover amanhã = Sim

ENTÃO	amanhã pode chover = Não

REGRA 4

SE	não vou sair hoje = Sim

E	nenhuma emergência ocorrer = Sim

ENTÃO	tenho dinheiro suficiente = Sim

REGRA 5

SE	minha namorada ligar = Sim

ENTÃO	não vou sair hoje = Não

REGRA 6

SE	meu patrão passar trabalho extra = Sim

ENTÃO	tenho tempo suficiente = Não

Se respondermos que o serviço de meteorologia disse que amanhã VAI chover, então a regra 3 irá falhar. Mas, observe que isso NÃO quer dizer que a variável amanhã pode chover irá receber o valor “Sim”. Muito pelo contrário, essa variável não vai ser instanciada, permanecendo sem instanciações. Portanto, a regra 2 também vai falhar, e o sistema simplesmente responderá que não conseguiu atingir nenhuma conclusão. Quando se projeta um sistema especialista, deve-se levar em conta o maior número de possibilidades possível, para evitar mensagens desagradáveis como “Nenhum valor encontrado...”

Obs.: O Expert SINTA não apresenta a opção SENÃO, mas futuras versões poderão apresentá-la.

Além do uso de graus de confiança para tratamento de incertezas, e da “não-instanciação” de variáveis, o Expert SINTA permite o uso de um valor especial, passível de ser usado por todas as variáveis. É o DESCONHECIDO, que representa uma indeterminação total sobre as instanciações de uma variável. Este valor pode ser tanto incluído nas regras como dado como resposta pelo usuário.


Opções

Para permitir maior flexibilidade na construção de um sistema especialista, o Expert SINTA oferece diversas opções de configuração. Para acessá-las, abra o arquivo da base de conhecimento desejada e, em seguida, utilize o menu Exibir|Opções. Uma caixa de diálogo com três guias aparecerá.

Máquina de inferência

Permite pequenas modificações no comportamento da máquina de inferência, como o modo pelo qual as premissas são avaliadas.

Fatores de confiança

Após avaliar todas as premissas de uma regra, o Expert SINTA pode aceitá-la ou rejeitá-la. Se, ao calcular o fator de confiança final ele for maior que o mínimo estipulado, a regra será aceita. É nessa janela que se define o valor mínimo. Também é aqui que se pode personalizar as funções de cálculo de fatores de confiança.

Senhas

Um sistema especialista não deixa de ser um programa de computador. Portanto, pode se fazer necessário algum tipo de proteção sobre este software. O Expert SINTA permite três níveis de proteção, exibidos na figura abaixo. Para maiores detalhes, arraste o cursor do mouse sobre a figura e clique no item desejado.


Aperte aqui para fechar essa janela e confirmar as alterações. Eqüivale a fechar a janela utilizando o menu de sistema ou as teclas <ALT> + <F4>.


Defina aqui qual a precedência dos operadores lógicos E e OU. Lembre-se da diferença: na expressão A e B ou C, se mantivermos a precedência no E, ela pode ser interpretada como (A e B) ou C. Se a precedência for do OU, A e (B ou C).


Dependendo do modo como a precedência for organizada ou como os fatores de confiança forem definidos, a máquina de inferência pode saber que uma regra não vai atingir o grau mínimo de confiança para ser aceita antes mesmo de avaliá-la por completo. Se você desejar que as regras sejam sempre avaliadas completamente, mesmo quando já se sabe se serão aceitas ou não, marque esta caixa. Veja também: avaliação de premissas.


Aqui é definido o valor de confiança mínimo para que uma regra seja aceita. Coloque na escala percentual: mínimo 0 e máximo 100.


O Expert SINTA utiliza algumas funções para calcular fatores de confiança em determinados eventos. Estes eventos podem ser uma conjunção, uma disjunção ou uma regra aceita. Pode-se usar as funções padrões do Expert SINTA ou criar novas. Cada função apresenta dois parâmetros implícitos, cnf1 e cnf2 (ou seja, o grau de confiança do primeiro termo da conjunção e o grau de confiança do segundo termo da conjunção, respectivamente). Para, por exemplo, mudar a função da conjunção para o mínimo entre os dois valores (aperte o botão Alterar se a fórmula padrão estiver sendo utilizada) ao lado da função de conjunção e digite Min(cnf1, cnf2). Para retorna à forma padrão, aperte o botão respectivo.

Veja também: usando fórmulas


Clique aqui para chamar a caixa de diálogo de definição de senhas para criar ou apagar uma senha que esteja protegendo o sistema especialista.


Define diferentes níveis de acesso que uma pessoa que não dispõe de senha tem direito em relação ao sistema especialista. Para maiores detalhes, clique aqui.


O uso de senhas para proteção da base de conhecimento só se efetivará de verdade quando esta caixa de verificação estiver marcada.


Caixa de diálogo Senhas

Essa caixa de diálogo é exibida a partir da janela de opções (menu Exibir|Opções). Sua função é permitir a criação de senhas para proteção da base de conhecimento. Para maiores detalhes sobre cada item desta caixa de diálogo, arraste o cursor do mouse sobre a figura abaixo e clique onde desejar.


Digite aqui a senha que irá proteger seu sistema. Note que ela não irá aparecer na tela.


Repita a senha que foi digitada acima para sua maior segurança, já que não se está vendo qual a palavra-chave.


Se você não quiser mais nenhuma senha no seu sistema, clique esse botão.


Como proteger seu sistema especialista

É possível associar uma senha às bases de conhecimento criadas. Quando uma base protegida é aberta, o Expert SINTA pedirá a senha. Se for digitada corretamente, será dado nível de acesso completo àquele usuário (ele poderá modificar, visualizar, executar e imprimir a base). Também é possível não entrar com uma senha e ficar sujeito a restrições. O Expert SINTA permite três níveis de restrição:

Permitir execução e visualização

O usuário do seu sistema especialista não tem permissão para modificar a base, mas pode executá-la, depurá-la e imprimi-la. É uma opção para evitar que estranhos modifiquem a base, fazendo com que perca sua consistência.

Permitir somente execução

Um pouco mais polêmica, essa opção permite que o usuário sem senha apenas possa executar o sistema especialista, mas não pode modificá-la e menos ainda visualizá-la. Porém, um sistema especialista que não exibe o conteúdo de suas regras, não permite acompanhar sua execução e verificar como atingiu o resultado exibido não merece a mesma confiabilidade de um sistema que permite o completo acesso às suas regras. O principal motivo que levaria um projetista a escolher essa opção de restrição é o perigo de pirataria do conteúdo do sistema especialista. Mas, recomenda-se esquecer o risco e dar prioridade à confiabilidade de seu trabalho. Além disso, um sistema especialista que não é protegido por nenhuma lei de direitos autorais dá sempre a impressão de não ser tão profissional quanto deveria.

Nenhuma permissão

Somente pessoas com senha podem utilizar esse sistema especialista.


Confirmação de uso

Esse sistema especialista está protegido por senha. Para podê-lo usar por completo é necessário saber a senha. Porém, geralmente o sistema proibirá apenas modificações e/ou exibição das suas regras. Experimente deixar a caixa de entrada em branco para usar o sistema com restrições.


Visão geral de consultas
Visão geral de uma consulta

O Expert SINTA mantém uma interface uniforme para a consulta de qualquer base de conhecimento criada em seu ambiente. Existem dois modos pelos quais podem ser efetuadas consultas:

 a execução usual, na qual o usuário acompanha uma seqüência de menus de múltipla (ou única) escolha, nos quais deve-se indicar informações que resultarão nas conclusões atingidas pelo sistema especialista;

 o modo de acompanhamento, pelo qual é possível examinar o conteúdo das regras que formam o sistema, bem como acompanhar a execução passo a passo e as instâncias (valores) que cada variável possui em determinado momento. Para utilizar este modo, é preciso que o projetista da base não tenha protegido o acesso às regras por meio de uma senha.

Um sistema especialista procura atingir conclusões para determinados objetivos. Sempre que um desses objetivos é atingido, ou quando se esgotam todas as possibilidades, o Expert SINTA apresentará uma janela com os resultados e o acompanhamento de como se chegou àquela conclusão (também é necessário que o projetista não tenha restringido o acesso).

Alguns sistemas também devem trazer um sistema de ajuda on-line, pelo qual serão dadas maiores informações de como se deve melhor utilizar as respostas conseguidas, bem como explicações mais detalhadas sobre as funções daquele determinado sistema especialista.

Existem dois modos pelos quais se pode acompanhar uma consulta no Expert SINTA. Utilizando o menu da janela principal ou a barra de ferramentas. As operações de execução/depuração podem ser:

 iniciar a consulta;

 interromper a execução para saber que regra está utilizando naquele ponto;

 executar passo a passo;

 adicionar elementos da base (variáveis) para acompanhar os valores que eles recebem durante a consulta;

 ver esses valores escolhidos;

 abandonar a consulta.


Visualizando regras

Na caixa de diálogo de visualização de regras (acionada a partir do botão Visualizar, na janela da base de conhecimentos), estão disponíveis dois modos de visualização:

Todas as regras

Assinale essa opção para ver todas as regras em ordem de criação.

Regras que contenham as seguintes variáveis na conclusão

Como o próprio nome diz, acrescente variáveis à lista logo através dos botões localizados entre as listas. Somente regras que contenham tais variáveis em suas conclusões aparecerão.

Para maiores detalhes, arraste o ponteiro do mouse sobre a figura abaixo e clique quando desejar.


Selecionando essa opção, serão exibidas todas as regras.


Selecionando essa opção, deve-se escolher abaixo variáveis de modo que somente as regras que contiverem essas variáveis em suas conclusões (após a cláusula ENTÃO) serão exibidas.


Nessa lista estão todas as variáveis do sistema especialista. Pode-se escolher algumas para que somente as regras que as contiverem em suas respectivas conclusões (após a cláusula ENTÃO) serão exibidas. Também é necessária que a opção acima esteja marcada (Regras que contenham as seguintes variáveis...).


Clique aqui para adicionar a variável selecionada à esquerda para a lista das variáveis que determinam as regras a serem exibidas.


Clique aqui para adicionar todas as variáveis para a lista das variáveis que determinam quais regras serão exibidas.


Clique aqui para retirar a variável selecionada na lista à direita da lista das variáveis que determinam quais regras serão exibidas.


Clique aqui para limpar a lista à direita.


Se a opção Regras que contenham as seguintes variáveis na conclusão estiver marcada, somente serão exibidas as regras que contiverem alguma variável presente nessa lista nas suas conclusões (após a cláusula ENTÃO).


Clique aqui para exibir as regras de acordo com as opções escolhidas.


Clique aqui para fechar essa janela sem exibir as regras.


Uma consulta típica

Iniciando-se a consulta, seja no modo de execução ou acompanhamento, o sistema especialista geralmente apresentará uma tela de abertura, com informações sobre seu funcionamento, os autores e casos aos quais ele se aplica. Leia atentamente esse texto de abertura, pois poderá trazer informações úteis. Se o botão de ajuda estiver disponível (aquele situado no canto inferior direito), aperte-o se desejar informações mais detalhadas.

Para iniciar a consulta, pressione o botão OK. O botão Cancelar abandona a execução do sistema especialista. O botão Ajuda chama a ajuda da base, se ela estiver disponível.

A consulta se desenvolve por meio de menus de múltipla (ou única escolha). Um menu típico é mostrado na figura abaixo. Arraste o cursor do mouse sobre a figura para maiores detalhes.

A próxima figura mostra um menu para entrada de valores numéricos.

Escolha a(s) opção(ões) desejadas marcando as respectivas caixas de verificação, localizadas sempre  à esquerda de cada alternativa. Observe, à direita, a possibilidade de entrar com o grau de confiança da sua resposta. Graus de confiança são utilizados quando não se possui certeza absoluta sobre um fato. Assim sendo, você pode expressar sua dúvida por meio de um número percentual, ou seja, a sua resposta terá validade no intervalo de zero a cem por cento. Cada resposta assinalada pode ter o seu próprio grau de confiança.

Caso realmente não saiba responder àquela pergunta, simplesmente deixe todas as alternativas em branco. O Expert SINTA entenderá que você não sabe como responder ao questionamento apresentado.

No caso de valores numéricos, se for necessário usar o separador decimal, use o ponto ou a vírgula dependendo da configuração de idioma de seu computador.

Não esqueça que, a qualquer momento, é possível mudar o modo de execução da base ou interrompê-la usando o menu ou a barra de ferramentas.


Aqui aparecerá uma pergunta que deve ser respondida utilizando-se as opções abaixo.


Uma pequena informação surgirá aqui, indicando se é possível marcar mais de uma alternativa das opções abaixo.


Aqui estão as opções que devem ser marcadas para responder a pergunta em questão. Em alguns casos, é possível assinalar mais de um item. Caso não saiba o que responder, simplesmente não assinale nenhuma. O sistema interpretará sua resposta como sendo algo desconhecido. Para saber como criar essas opções, clique aqui.


Entre aqui a confiança que cada resposta respectiva merece, em porcentagem (até 100%). Obviamente, é necessário que o item ao lado esteja marcado para que se possa entrar algum dado aqui.


Após a entrada de sua resposta, clique aqui para confirmá-la e prosseguir na consulta. Para cancelar uma consulta, utilize o menu Consulta|Finalizar ou a combinação de teclas <ALT>+F4.


Algumas perguntas trazem explicações sobre a sua importância. Se elas estiverem disponíveis, é possível clicar nesse botão para visualizá-las. O Expert SINTA gera uma explicação caso o criador da base não tenha definido nenhuma. Essa explicação exibe a importância daquela pergunta para a conclusão de algum fato. Ela não irá aparecer se o sistema não disponibilizar a exibição das regras.


Se você não souber realmente informar a resposta, deixe a caixa de texto abaixo em branco. Para maiores informações sobre valores desconhecidos, clique aqui.


Entre aqui um valor numérico que seja uma resposta aceitável para a pergunta acima. Para saber mais sobre variáveis numéricas, clique aqui.


A janela de acompanhamento

Quando se está no modo de acompanhamento, uma nova janela sempre estará aberta, o depurador.

O depurador exibe, em sua caixa de listagem, todas as regras da base de conhecimento. A sentença em destaque é aquela que está sendo analisada no momento pela máquina de inferência. Observe que é possível rolar a lista para cima e para baixo, exibindo o resto da base, mas somente a linha representando o ponto de parada pode ser selecionada.

Utilize o menu Depurar|Passo, ou o botão respectivo da barra de ferramentas, ou ainda a tecla F8 para continuar a acompanhar, passo a passo, a execução do sistema. Se o sistema estiver realizando uma pergunta para você, primeiro responda antes de executar um passo, ou nada acontecerá.

Fechar o depurador eqüivale a voltar ao modo de execução. Se você deseja abandonar a consulta utilize o menu Consulta|Finalizar ou o botão respectivo na barra de ferramentas.


Acompanhando variáveis

Para melhor depuração da base de conhecimentos, é possível monitorar o valor de cada variável existente. Para isso, utilize a opção Depurar|Adicionar Variáveis... e selecione as variáveis desejadas para monitoração (é possível selecionar várias ao mesmo tempo). Arraste o cursor do mouse sobre a figura abaixo para aprender maiores detalhes sobre cada item dessa caixa de diálogo.

Para visualizar o(s) valor(es) das variáveis, selecione o menu Depurar|Ver Variáveis durante uma consulta. Clique em qualquer item da lista e o(s) seu(s) respectivo(s) valor(es) aparecerão. Arraste o cursor do mouse sobre a figura abaixo para aprender maiores detalhes sobre cada item dessa caixa de diálogo.

Observação 1: obviamente, se a base não estiver sendo executada, de nada servirá abrir a janela de visualização;

Observação 2: para apagar um item da lista de visualização, selecione-o e pressione a tecla DELETE;

Observação 3: note que somente as variáveis ainda não incluídas aparecem na caixa de diálogo Adicionar Variáveis...


Selecione uma ou mais variáveis dessa lista para acompanhar durante a execução. Mantenha a tecla CTRL pressionada enquanto clica para selecionar várias.


Pressionando esse botão, as variáveis selecionadas acima serão adicionadas à lista de variáveis em acompanhamento.


Clique nesse botão para fechar essa janela sem adicionar nenhuma variável extra.


Clique sobre qualquer item dessa lista para exibir os respectivos valores aos quais a variável foi instanciada.


Aqui são exibidas as instâncias (valores) da variável selecionada acima. Se a base de conhecimento não estiver sendo executada, uma mensagem de erros aparecerá aqui. Se a variável não houver sido instanciada naquele momento, nada aparecerá nessa caixa.


Fecha a janela de acompanhamento de variáveis.


Guia rápido de execução

Essa seção tem como objetivo mostrar rapidamente os comandos de execução e depuração na barra de ferramentas e menus do Expert SINTA.

Para iniciar a execução de uma base de conhecimentos, selecione Iniciar no menu Consulta, ou aperte F9.

Eqüivale ao botão [image] na barra de ferramentas.

A qualquer momento a execução pode ser interrompida para que se observe a base de conhecimentos e o ponto no qual a máquina de inferência está posicionada. Para isso, selecione Interromper a consulta, no menu Consulta, ou aperte F5. Com isso, pode ser feita a execução passo a passo.

Eqüivale ao botão [image] na barra de ferramentas.

No modo de execução passo a passo, a máquina de inferência só reage quando o usuário aciona um passo. Para acionar um passo, selecione Passo no menu Depurar, ou aperte F8. Também é possível iniciar uma sessão de consulta a partir da inferência passo a passo.

Eqüivale ao botão [image] na barra de ferramentas.

Para abortar uma consulta, selecione Finalizar no menu Consulta.

Eqüivale ao botão [image] na barra de ferramentas.

Para voltar a uma pergunta anterior e modificar sua resposta, selecione Voltar pergunta no menu Consulta.

Eqüivale ao botão [image] na barra de ferramentas.

Para a exibição das variáveis instanciadas até o momento, selecione Ver no menu Depurar.

Eqüivale ao botão [image] na barra de ferramentas.


Entendendo os resultados obtidos
Ententendo os resultados apresentados

O Expert SINTA apresenta uma janela de resultados divididas em quatro guias:

Resultados

Aqui, é apresentada uma caixa de listagem com todos os valores encontrados para o atributo objetivo do presente ponto da sessão de consulta, com os respectivos graus de confiança. Caso o desenvolvedor tenha construído um arquivo de ajuda, o mesmo poderá ser acionado a partir dessa janela com a tecla F1.

Os resultados aparecem em ordem decrescente de valor de confiança.

Histórico

Quando o usuário clica nessa guia, uma árvore no formato texto é exibida com todos os passos e instanciações realizados pela máquina de inferência. É um maneira rápida de visualização geral sobre possíveis erros de transposição do raciocínio humano para a base. Esta página só está disponível livremente se o projetista da base não houver protegido a base de conhecimento.

Todos os valores

Serão exibidos todos os valores atribuídos a todos os atributos. É uma generalização da primeira página. Exibe todos os valores de todas as variáveis. Dê um clique duplo na figura indicando a variável para exibir ou esconder todos os seus valores. Também só está disponível com permissão do projetista

O Sistema

Exibe as todas as regras do sistema especialista. Útil também para entender como o sistema chegou àquela(s) conclusão(ões), em conjunto com o Histórico.


Aqui aparece o nome do objetivo que estava sendo procurado.


Se o sistema especialista possuir um arquivo de ajuda relacionado, esse botão estará visível. Ao clicarmos esse botão, um tópico de ajuda com maiores explicações sobre a solução selecionada na lista à direita aparecerá.


É uma lista com todas as soluções alcançadas para aquele determinado objetivo, em ordem decrescente de grau de confiança. Se o sistema possuir um arquivo de ajuda (nesses casos, aparecerá um botão azul ao lado, com um ponto de interrogação), clique duas vezes sobre um item para que maiores explicações apareçam.


Fecha essa janela, continuando com a consulta se outros objetivos existirem, ou simplesmente encerrando-a.


Expande todos os itens da “árvore” ao lado.


Fecha todos os itens da “árvore” ao lado.


Exibe todos os passos feitas pela máquina de inferência até a conclusão daquele determinado objetivo. Os itens com uma pequena lupa ao lado podem ser abertos ou fechados com um clique duplo.


Lista com todos os valores de todas as variáveis. Para abrir ou fechar os valores de cada variável, dê um clique duplo no pequeno fichário vermelho ao lado de cada variável.


Aqui estão as regras que compõem o sistema especialista consultado.