Desenvolvendo um sistema especialista - Parte I - A
Bem, dando a continuidade à nossa discussão, vamos pegar o assunto por onde ele tem maior "sensibilidade". Como montar um sistema especialista genérico?
Bem, vamos a algumas características que tem que ser consideradas:
O sistema tem que ser flexivel o suficiente para suportar uma grande quantidade de regras e fatos, de modo a permitir que a base de conhecimento seja consistente;
O sistema deve ter uma interface intuitiva e natural ao usuário. Ele não precisa ser um especialista para alimentar o sistema (um desafio para a matéria de I.H.C. - Interface Homem-computador);
O sistema não pode ser generalista demais, nem determinístico de menos (algo como: você não pode ser aberto demais para dar respostas de menos);
O sistema tem que consistir regras e fatos (uma etapa das mais penosas, como veremos mais na frente).
Com base nestas características, você se pergunta: "Como modelar uma base de dados desstas?"
Para modelar corretamente esta base de dados, você tem que entender primeiro o que é uma regra e o que é um fato. Regras são condições lógicas para uma verdade. Traduzindo em uma linguagem mais amigável, entenderemos por regra algo como um conjunto de frases ordenadas logicamente, de forma a atingirem a verdade. Algo como na filosofia "Eu tomo água e me alimento, então eu como"
Esta parte é uma das mais racionais e detalhistas do projeto. Sua base de regras tem que ser flexível o suficiente para permitir uma gama de "SE...E...ENTÃO" que permita a entrada e comparação lógica dos dados sem exigir demais do esforço de alimentar esta regra.
Uma das formas que resolvi fazer neste trabalho foi de criar uma condição máxima para a base de regras - elas não poderão passar de três "E".
Feito isto, você tem que identificar as regras, ou seja, você tem que dar o nome às regras.
Feito as regras, você tem que partir para a parte de fatos, que vai ser a próxima etapa da construção do nosso sistema especialista.
O meu objetivo aqui não é apenas mostrar o meu projeto, mas demonstrar passo a passo aquilo que tive que desenvolver e conhecer para poder concretizar este projeto. Acho que a maioria do pessoal aqui é acadêmico, então, querendo ou não, vai passar ou já passou por isto, e como o The Spoke é uma "blogsfera" de TI, compartilhar as experiências sempre ajuda!
Conto com o comentário de todos!