Abdução é um tipo de inferência lógica que objetiva formular possíveis hipóteses para
explicar fatos observados considerando como fundamento uma teoria. O campo de
aplicação das técnicas para realizar raciocínio abdutivo por meio de computadores é
extenso e inclui diagnóstico médico, descoberta de falhas em sistemas, interpretação de
linguagem natural e planejamento, entre outras. Uma definição formal de raciocínio
abdutivo e exemplos de emprego deste tipo de raciocínio são apresentados em
Rodrigues, Oliveira & Oliveira (2014) e Rodrigues (2015).
Entre as diversas propostas para programação de raciocínio abdutivo destaca-se
hoje em dia a linguagem CHR (Constraint Handling Rules). O trabalho em
desenvolvimento descrito neste artigo se insere dentro de um contexto mais amplo do
desenvolvimento de uma linguagem para programação de raciocínios abdutivos dirigida
especialmente a não especialistas em programação lógica.
Particularmente, este artigo
descreve como a linguagem CHR pode ser utilizada na programação de raciocínios
adbtivos e conjectura as principais dificuldades do uso desta linguagem por não
especialistas em programação lógica.
O restante deste artigo está organizado da seguinte maneira.
A Seção 2 apresenta
a linguagem CHR e discute o funcionamento de um programa em CHR. A Seção 3
mostra como raciocínios abdutivos podem ser programados em CHR. Como
considerações finais, a Seção 4 levanta hipóteses sobre dificuldades do uso de CHR por
não especialistas em programação lógica.