JavaECHO is an implementation of ECHO, a system for computing explanatory coherence developed by Paul Thagard and explained in detail in his 1992 book Conceptual Revolutions.
To run JavaECHO, go to the JavaECHO applet page. Your browser must be able to run Java for this to work!
Oct. 22, 2001: There are bugs in JavaECHO which prevent it from performing like the LISP-based simulations described in the various papers on ECHO. In particular, the parameter setting under options does not work. Click here to get the LISP code for ECHO and other coherence programs.
JavaECHO is written as a Java applet, and so requires a browser that can run Java applets. Be patient when first loading JavaECHO --- it consists of a number of parts that must be downloaded and the assembled on your computer.
JavaECHO comes with a number of examples already loaded. If you want to create your own ECHO problem, the ECHO input window is editable.
JavaECHO might run slowly for you, and there are currently two reasons for poor performance:
Also, be careful with the brute force algorithm, which works by checking all 2n possibilities for an ECHO graph with n nodes. On any computer, trying to solve a coherence problem with more than about n=10 nodes using brute force is going to take a long time.
JavaECHO comes with 3 different methods for solving an ECHO problem:
Only the brute force algorithm guarantees to always find a best solution to an ECHO problem, however it is too slow a method for problems with more than about 10 nodes because it. The greedy method does not always find the best solution to an ECHO problem, and will sometimes return a less than ideal solution. Since the greedy method starts by randomly accepting/rejecting each node, different runs can result in different solutions. The connectionist method is generally the most convenient one to use on a regular basis, and with the default ECHO parameters almost always find the best solution. This is method is used exclusively in all of the ECHO programs in Paul Thagard's book Conceptual Revolutions.
The source code for JavaECHO is freely available: JavaECHO.zip. Contact tjdonald@neumann.uwaterloo.ca if you have any questions, comments, or problems.
Questions about ECHO can be emailed to Paul Thagard at pthagard@watarts.uwaterloo.ca. Questions specific to JavaECHO should be directed to Toby Donaldson (the implementor of JavaECHO) at tjdonald@neumann.uwaterloo.ca.