This is a javascript version of the Copycat program developed by Douglas Hofstadter and Melanie Mitchell.
Copycat is a computer model of human analogy-making. It tries to solve letter puzzles of the form "abc is to abd as ijk is to what?"
Its internal workings are described in great detail in the books Fluid Concepts and Creative Analogies, and Analogy-Making as Perception.
I got interested in Copycat, and the Hofstadter group's other projects, after reading the Fluid Concepts and Creative Analogies book, but I couldn't find demos that were easy to get up and running. Hence this repo, and the related letter-spirit-examiner-js repo.
The original Copycat code was written in lisp, which I am not fluent in, so I based this port (except for the UI) mainly on the python version by Lucas Saldyt, occasionaly referring to the lisp version when something was unclear.
The look of the UI is based on that of James Marshall's Metacat (which is an extension of Copycat).