Ciclo do RBC segundo Agnar Aamodt

 
RBC

Introdução

Aplicações

Representação
de Casos

Recuperação de Casos

Similaridade

Laboratório 1:
CBR-Works

Reutilização e
Adaptação de
Casos

Laboratório 2:
CBR-Works na
Web

Bibliografia

2. Aplicações do Raciocínio Baseado em Casos

Há dois caminhos a seguir para se ensinar RBC e muitas outras coisas:

  • Fornecemos a teoria e depois explicamos para que serve ou
  • Apresentamos uma introdução rápida aos princípios técnicos e depois oferecemos uma série de domínios e exemplos de aplicação, para só então entrar em detalhes sobre o princípio de funcionamento.
Para um público exclusivamente de Ciência da Computação, o primeiro caminho seria o mais simples de se seguir. Como porém essa disciplina é voltada a um público multidisciplinar e oferecida também a alunos de Engenharia e Gestão do Conhecimento, vamos optar pela segunda forma de apresentar o assunto. Em função disso, este segundo capítulo apresentará as áreas de aplicação do RBC, trazendo uma série de exemplos e aplicações clássicas.

Para prover uma visão geral da aplicação de sistemas de RBC, faremos distinção, aqui, entre o domínio de aplicação e o tipo de tarefa a ser executado pelo sistema. Isto será explicado adiante.

2.1. Tarefas

A tarefa de um sistema de RBC descreve o tipo de ação para a qual o sistema será utilizado, como, por exemplo, diagnóstico, configuração, planejamento, etc. Isto determinará o tipo de problemas e de soluções, bem como a natureza das atividades a serem desenvolvidas pelo solucionador de problemas baseado em casos. Como discutimos em capítulos anteriores, tarefas podem ser classificadas em tarefas sintéticas e tarefas analíticas. 

Tarefas analíticas cobrem uma ampla faixa de aplicações que compartilham determinadas características. Geralmente um novo caso é comparado àqueles da base de casos para determinar a qual tipo, categoria ou classe pertence. A solução associada ao caso mais similar dentro da classe correspondente é então apresentada. Tarefas analíticas de sistemas de RBC típicas são:

  • Classificação
  • Diagnóstico
  • Suporte à decisão
  • Tutoriais
Tarefas de síntese, por outro lado, tentam criar uma nova solução por meio da combinação de partes de soluções prévias. Exemplos de tarefas sintéticas são:
  • Configuração
  • Planejamento
  • Projeto
Na prática, a maioria dos sistemas comerciais de RBC disponíveis suporta somente tarefas analíticas e é dedicada primordialmente à recuperação de casos.

2.2. Domínio de aplicação

O domínio de aplicação de um sistema de RBC é a área na qual o sistema é aplicado, por exemplo, medicina, arquitetura, administração, finanças ou engenharia mecânica. Cada domínio possui suas características próprias, que influenciam fortemente a escolha da forma de representação de conhecimento a ser utilizada. Daremos abaixo alguns exemplos de domínios, mas que não são exaustivos. Sugerimos a literatura no fim desta página para detalhes.

Classificação

O objetivo da tarefa de classificação é classificar uma nova situação ou problema em um contexto específico. Em aplicações de classificação, um problema é descrito por meio de um conjunto de sintomas ou observações e da solução para o problema; assim, o resultado da classificação é a seleção de uma ou mais classes ou categorias nas quais o problema poderia ser classificado. 

Em sistemas de classificação baseados em casos, um caso representa, portanto, uma descrição de problema e sua classificação. Uma forma pela qual um classificador baseado em casos trabalha é perguntando se o novo conceito ou problema é suficientemente similar a outro do qual se sabe que possui uma determinada classificação. O sistema de RBC tenta, então, adivinhar a categoria à qual o novo problema pertence olhando o quanto as EIs importantes do novo caso correspondem a EIs importantes de categorias armazenadas na base de casos. 

Diagnóstico

No diagnóstico, um conjunto de sintomas é dado e o objetivo é explicá-los. Ao contrário da classificação, o diagnóstico usualmente inclui o processo de levantamento de sintomas adicionais com o objetivo de melhorar a acurácia da solução do problema. Portanto, durante o processo de diagnóstico, testes podem ser realizados com o objetivo de obter-se valores de sintomas adicionais. Além disso, enquanto a tarefa principal continua sendo a de prover um diagnóstico, subtarefas podem objetivar encontrar diferenças entre conjuntos de observações para determinar qual teste deveria ser aplicado a seguir. 

Um sistema de RBC pode utilizar casos para oferecer explicações para sintomas e também alertar sobre explicações que se mostraram erradas no passado. O diagnóstico de um caso passado não necessariamente se adapta exatamente ao novo caso, podendo ser necessário adaptá-lo por meio de conhecimento baseado em modelos do domínio.

Projeto e Configuração

Projeto e configuração são geralmente compreendidos como a construção de um artefato a partir de um conjunto de componentes dados, de forma que certas condições sejam satisfeitas, podendo ser compreendido como um problema de satisfação de restrições. O projeto introduz certo nível de criatividade, pois alguns componentes ou elementos estruturais necessários podem não ter sido explicitados na descrição do problema.

Normalmente as restrições sub-restringem o problema, possibilitando a existência de várias soluções. Algumas vezes, no entanto, o problema se encontra super-restringido, fazendo com que nenhuma solução satisfaça todas as restrições. Nestes dois contextos, sistemas de RBC oferecem várias vantagens. 

Casos sugerem soluções satisfatórias para problemas sub-restringidos. As soluções podem não ser todas corretas, mas, como em problemas sub-restritos muitas soluções podem ser aplicadas e várias são apresentadas, uma delas poderá ser apropriada, e estratégias de adaptação podem ser usadas para adequá-la completamente. 

Em problemas super-restringidos, casos podem sugerir um conjunto alternativo de restrições que funcionou em combinação com problemas similares no passado. Enquanto alguma adaptação ainda tem de ser realizada, uma relaxação de restrições completa e computacionalmente complexa pode ser evitada. 

Suporte a Vendas

O objetivo do suporte a vendas é oferecer auxílio à venda de produtos, estimando custos ou realizando análises de mercado. Inclui também aplicações de comércio eletrônico inteligente. 

A área mais ativa em RBC é o comércio eletrônico. Comércio eletrônico pode ser definido como qualquer atividade de comunicação em forma eletrônica realizada para oferecer suporte a atividades comerciais [WLW98]. Isto pode se inserir em diferentes momentos da venda, da pré-venda à pós-venda. 

Durante a pré-venda, um cliente expressa um desejo e é provido com toda a informação solicitada sobre produtos e serviços. Isto geralmente é realizado com utilização de catálogos eletrônicos de produtos disponíveis pela Internet.
Durante a venda, um cliente e um agente de vendas negociam produtos e serviços, incluindo preços, descontos especiais, forma de entrega, etc. A tarefa é descobrir as necessidades do cliente e oferecer-lhe um produto ou serviço adequado. Geralmente este é um processo complexo, com muitas interações entre comprador e vendedor.

Situações de pós-venda ocorrem quando clientes enfrentam problemas com produtos ou serviços adquiridos anteriormente, ou quando necessitam de suporte adicional para efetivamente utilizarem o produto. O suporte a clientes é normalmente localizado nos call centers, em que o pessoal de atendimento oferece auxílio pelo telefone. Outras opções são as listas de FAQs na Internet. 

Neste contexto, o objetivo do RBC é oferecer ao cliente serviços e facilidades melhores de seleção. Por exemplo, durante a situação de pré-venda, o RBC pode ser aplicado para oferecer catálogos de produtos inteligentes (e não apenas listas de produtos estáticas), capazes de oferecer um produto ou serviço similar, caso o requisitado pelo cliente não esteja disponível, ou, então, capazes simplesmente de oferecer um produto com base em um conjunto de características dadas pelo usuário. 

2.3. Novos pacotes para aplicações industriais e comerciais

Orenge (Open Retrieval ENGinE)  é o nome da ferramenta que está se estabelecendo como o mais novo ambiente para desenvolvimento de sistemas de RBC. Orenge é uma ferramenta de desenvolvimento de aplicações de RBC recentemente lançada e desenvolvida em JAVA. Sua principal área de aplicação é servir para o desenvolvimento de aplicações de RBC na área de Raciocínio Baseado em Casos textual, servindo principalmente para desenvolver aplicações comerciais e industriais que lidam com grandes quantidades de texto. Orenge é uma infra-estrutura para o desenvolvimento de máquinas de busca multiconteúdo inteligentes para a gestão de conhecimento em JAVA e XML. Existe tanto para ambientes Linux como para Microsoft Windows.

Orenge foi desenvolvido pelo mesmo grupo de pesquisadores chefiado por Stefan Wess, que desenvolveu CBR-Works, tendo também sido desenvolvido na empresa tecInno/empolis Knowledge Management. Ao contrário de CBR-Works, Orenge é uma ferramenta exclusivamente para o desenvolvedor profissional, e não possui uma interface gráfica de usuário. É constituída por uma coleção de ferramentas de linha de comando, que devem ser usadas em conjunto com o editor de programas de escolha do desenvolvedor, no qual os modelos de casos, medidas de similaridade etc., são codificados seguindo a sintaxe definida por Orenge.

Como Orenge é um conjunto de ferramentas de possibilidades bastante extensas, vamos aqui descrever apenas suas características principais. Mais adiante, exemplificaremos os resultados produzidos, apresentando um site desenvolvido utilizando Orenge.

As principais ferramentas disponibilizadas por Orenge são:

  • tengerine: Tengerine é um ambiente de autoria para modelos Orenge. 
  • orenge:Profiler: Ferramenta para a personalização da aplicação desenvolvida.
  • orenge:Controller: Ferramenta para desenvolver interfaces de cliente em XML e controle de fluxo de operação.
  • orenge:CaseBaseBuilder: Pode gerar diferentes tipos de representação em XML de fontes de dados textuais. 
  • orenge:Connect/Model: Ferramenta integrável para importar dados de fontes externas diversas. 
  • orenge:Observer: Uma ferramenta para habilitar a resposta automática de emails.
  • orenge:Validator: Ferramenta para checagem de consistência de modelos de objetos e casos.
Orenge disponibiliza ainda ferramentas para a construção de clientes para a aplicação, estruturas de diretórios e configuração de servidores de aplicação e acesso a bancos de dados. 

Como se pode ver pela breve listagem acima, Orenge inicia uma nova geração de ferramentas de RBC: a das ferramentas complexas e maduras para o desenvolvimento de aplicações comerciais. Ao contrário de CBR-Works, Orenge é uma ferramenta complexa, voltada ao profissional, e não possui o enfoque acadêmico que CBR-Works ainda possuía.

  • Material da Aula em PDF
  •  
    The Cyclops Project
    German-Brazilian Cooperation Programme on IT
    CNPq GMD DLR