A escolha das ferramentas foi feita com base nas vantagens da utilização de Linguagens de Engenharia de Conhecimento no lugar de Linguagens de Programação. As ferramentas escolhidas foram Protégé 2000 e Jess (FRIEDMANN-HILL, 2002 e 2003) devido à sua portabilidade, disponibilidade e eficiência. Outra das razões da escolha foi a possibilidade da integração (HENRIK, 2003a e 2003b) da Base de Conhecimento com o Sistema Especialista, que processa as informações contidas nela, na forma de regras de inferência.
Propostas utilizando estas ferramentas de forma individual ou combinadas foram realizadas por FREITAS (2002), SARTOR (2002), DE ALMEIDA (2003) e SILVA (2003).
É uma ferramenta integrada de software (Protégé, 2000) utilizada por peritos para desenvolver sistemas baseados no conhecimento de domínios específicos, que possibilita a modelagem de conhecimentos na forma de ontologia. Assim essas aplicações são usadas para a solução de problemas de tomadas de decisão dentro de um determinado domínio de conhecimento.
O editor de ontologia Protégé permite uma integração do (1) domínio de uma ontologia de classes descrevendo um tema determinado, (2) a criação de uma ferramenta de aquisição de conhecimento para coletar o conhecimento, (3) a entrada de instâncias específicas de dados e a criação de uma base de conhecimento, e finalmente (4) a execução de aplicações.
A ferramenta para a aquisição de conhecimentos é desenhada para ser específica ao domínio, permitindo aos peritos do domínio estabelecer de maneira fácil e natural a base de conhecimento da área.
O pressuposto principal do Protégé é que os sistemas baseados em conhecimento costumam ser muito caros de ser elaborados e mantidos, isto porque o desenvolvimento de um sistema baseado em conhecimento normalmente implica o esforço de uma equipe, incluindo tanto desenvolvedores quanto especialistas no domínio que poderão estar menos familiarizados com o
software de computadores.
O Protégé foi projetado para guiar os desenvolvedores e especialistas de domínio no processo de desenvolvimento do sistema, permitindo aos mesmos reutilizar as ontologias e os métodos para a resolução de problemas, encurtando o tempo requerido para isto.
O Jess foi escrito por Ernest Friedman-Hill no Sandia National Laboratories (FRIEDMANN-HILL, 2002 e 2003), como parte de um projeto interno de investigação. Esta é uma ferramenta para construir um tipo de software inteligente denominado Sistemas Especialistas.
O mecanismo de inferência do Jess utiliza uma forma melhorada do algoritmo Rete para aplicar as regras à base de conhecimento. Este algoritmo faz com que o Jess seja muito mais rápido do que um simples conjunto de declarações SE-ENTÃO, localizados em cascata dentro de um laço. Jess foi concebido originalmente como um clone Java do CLIPS, mas hoje possui muitas características que o fazem diferente.
Este arcabouço pode ser utilizado de duas maneiras. Primeiro pode ser uma máquina de regras. Um programa baseado em regras pode ter centenas ou mesmo milhares de regras que o Jess aplica aos dados na forma de uma base de conhecimentos. Muitas vezes as regras representam o conhecimento heurístico de um especialista em algum domínio, e a base de conhecimento representa o estado de uma situação em evolução (uma entrevista, uma emergência). Neste caso se diz que representam um sistema especialista.
O Jess também é usado para fins gerais e ainda pode acessar diretamente todas as classes e bibliotecas Java. Por este motivo, é usado freqüentemente como um ambiente de desenvolvimento de aplicação rápida. No entanto, o código Java tem que ser compilado antes de poder ser executado; uma linha de código Jess é executada imediatamente após ser digitada. Isto permite experimentar interativamente com APIs Java e construir grandes programas de maneira incremental. Também resulta muito fácil estender a aplicação Jess com novos comandos escritos em Java ou em Jess mesmo, de maneira que esta pode ser adaptada com alterações para aplicações específicas.
de problemas nos quais Jess pode ser aplicado, por ser uma biblioteca, ele é capaz de ser usado em muitas classes diferentes de programas Java. Jess pode ser usado em aplicativos de linha de comando, aplicações GUI, servlets, e
applets. Podem ser desenvolvidas aplicações Jess (com ou sem GUIs) sem
compilar uma única linha de código Java. Pode-se escrever aplicações Jess que são controladas totalmente pelo código Java escrito, com um mínimo de código em Jess.
O passo mais importante no desenvolvimento de uma aplicação Jess consiste na seleção de uma arquitetura dentro de uma faixa de possibilidades, como é mostrado abaixo. Uma maneira de organizar as possibilidades consiste em colocá-las na lista segundo a quantidade crescente de programação Java envolvida.
• Escritos na linguagem Jess pura, sem nenhum código Java. • Escritos na linguagem Jess pura, podendo acessar APIs Java.
• Grande parte escrito em Jess, mas algo de código Java sob a forma de novos comandos Jess escritos em Java.
• Parte escrita em Jess, com uma quantidade substancial de código Java fornecendo comandos especiais e APIs, sendo que o procedimento principal é controlado pelo Jess.
• Parte escrita em Jess, com uma quantidade substancial de código Java fornecendo comandos especiais e APIs, sendo que o procedimento principal é fornecido pelo próprio usuário.
• Preferencialmente código Java, que carrega menos procedimentos em Jess durante o tempo de execução do programa.
A seleção irá depender de muitos fatores, mas finalmente dependerá do que resulte mais cômodo ao usuário.