a project in loving memory of Helga Keller
Repository News: Letter Spirit sourcecode just added, Seek-Whence coming soon!
Hofstadter, D., and FARG (1995) Fluid Concepts and Creative Analogies, Basic Books.
Research carried out at the Center of Research on Concepts and Cognition (CRCC) has been described in detail in the book Fluid Concepts and Creative Analogies: Computer Models of the Fundamental Mechanisms of Thought, written by Douglas Hofstadter and members of the Fluid Analogies Research Group. Hofstadter's first two books, Gödel, Escher, Bach and Metamagical Themas previously discussed a number of ideas relevant to artificial intelligence and cognitive science, such as recursivity, subcognition, and emergent behavior, but this new book looks back from the perspective of having grappled with those ideas in the course of implementing actual computer models. Programs that model creativity and analogy-making have been designed by Hofstadter and his graduate students, and the story of their past, present and future development is the subject of the book, co-authored by the students in the Fluid Analogies Research Group (FARG).
This repository has a number of goals:
i) we want to collect all the (open-source) computational architectures that have been developed in
Douglas Hofstadter's group's research in Fluid Concepts & Creative Analogies; from Numbo to Copycat to
Tabletop to Letter Spirit, Metacat, Musicat, etc, alongside the info on how to install and run it;
ii) we want to collect all the literature:
- unpublished papers,
- CRCC reports related to FARG architectures,
- published papers,
- Theses, etc
iii) we want to archive all materials for an online course on Fluid Concepts & Creative Analogies
(also called "Fluid Concepts", "FARG architectures", "Copycat Architecture", "Hofstadter School",
"Active Symbols", etc). By proposing this course, ideally, **every single undergraduate program**
would be able to study the principles of this school of thought, **see those principles in action**,
and **compare those principles with different approaches**. Moving to more advanced stuff,
Graduate students, now with easy access to the code, could have a complete course on the computer
science of building these architectures; they might, for instance, play with their own ideas, and
find out whether or not they make sense.
We hope that, after this repository is complete (or close to), it will be cloned and hosted at a Indiana University Github:IU page, where it will be easily found by the interested community.
Welcome! Join us. This will be insanely fun.
As of right now, this repo is considered, in open-source fashion, to be in version 0.2.0:
Goals for version 1.0.0:
- Each project should contain:
- Source code of all major projects, complete and running
- Literature of all major projects, complete with links to books
- Exercises for undergraduate courses
- Programming challenges large or small
- Research challenges for graduate students (each challenge being able to lead to a publication, in principle)
This repo can not only be a library but also a source for undergraduate courses and a set of research questions... hopefully this will enable wider discussions of the scientific concepts presented in this project. An ambitious long-term goal would be to have these projects running in a browser, as recommended by Bob French--hopefully in Jupyter Notebooks and the upcoming Jupyter Lab. Well, here's where we are and here's where we're going!
Here's how you can contribute to this repository.
The ambition is to catalogue and archive the sourcecode and literature involved in building new Fluid Concepts Architectures to new domains. Eventually we hope to have a complete set of archived projects (or linked from here when being maintained).
Project | Author | Language | Available? |
---|---|---|---|
Seek-Whence | Marsha Meredith | Franz Lisp | Yes (coming soon) |
Numbo | Daniel Defays | Lisp | Yes (coming soon) |
Copycat | Melanie Mitchell | Lisp (also Java & Python) | Yes |
Tabletop | Robert M. French | ?? | Not yet (email sent 2017-08-29) |
Letter Spirit | Gary McGraw | Scheme | Yes (McGraw's work was extended by Rehling) |
Letter Spirit | John Rehling | Scheme | Yes |
Metacat | James Marshall | Scheme | Yes |
Phaeaco | Harry Foundalis | C++ | Closed-source |
Musicat | Eric Nichols | C# | Yes |
Capyblanca | Alex Linhares | Delphi | Yes |
George | Francisco Lara-Dammer | Java | (asap) Dr. Lara-Dammer desires to clean up the code prior to release (2017-08-29) |
SeqSee | Abhijit Mahabal | Perl | Yes |
Melanie Mitchell & Douglas Hofstadter
Find Dr. Mitchell in Homepage | Wikipedia | Google Scholar | Academia.edu
Copycat is a model of analogy making and human cognition based on the concept of the parallel terraced scan, developed in 1988 by Douglas Hofstadter, Melanie Mitchell, and others at the Center for Research on Concepts and Cognition, Indiana University Bloomington.
Copycat produces answers to such problems as "abc is to abd as ijk is to what?" (abc:abd :: ijk:?). Hofstadter and Mitchell consider analogy making as the core of high-level cognition, or high-level perception, as Hofstadter calls it, basic to recognition and categorization. High-level perception emerges from the spreading activity of many independent processes, called codelets, running in parallel, competing or cooperating. They create and destroy temporary perceptual constructs, probabilistically trying out variations to eventually produce an answer. The codelets rely on an associative network, slipnet, built on pre-programmed concepts and their associations (a long-term memory). The changing activation levels of the concepts make a conceptual overlap with neighboring concepts.
Copycat's architecture is tripartite, consisting of a slipnet, a working area (also called workspace, similar to blackboard systems), and the coderack (with the codelets). The slipnet is a network composed of nodes, which represent permanent concepts, and weighted links, which are relations, between them. It differs from traditional semantic networks as the effective weight associated with a particular link may vary through time according to the activation level of specific concepts (nodes). The codelets build structures in the working area and modify activations in the slipnet accordingly (bottom-up processes), and the current state of slipnet determines probabilistically which codelets must be run (top-down influences).
Implementations of the Copycat project:
Author | Language/Sourcecode | Note |
---|---|---|
Melanie Mitchell | LISP | Bitrotten |
Scott Boland | Java | (SB's email lost?) |
"speakeasy" | Java | fork of Scott Boland's code |
Greg Detre | Clojure | Not tested |
Arthur O'Dwyer, J Alan Brogan,others | Python 2 | Multiple forks, no graphics |
Lucas Saldyt | Python 3 | Above repo patch to Python 3 |
Joseph Aaron Hager | Python 3 | OpenGL graphics |
Please see Mitchell's Copycat page. Scott Boland's re-implementation in Java is 404'ing at The University of Queensland, but it is available here in this repo and in archive.org.
Selected publications regarding Copycat:
- FCCA (see above)
- Mitchell, M. (1992) Analogy-Making as Perception. MIT Press.
- Mitchell, M. and Hofstadter, D. R. (1990). The emergence of understanding in a computer model of concepts and analogy-making. Physica D, 42, 322--334, https://doi.org/10.1016/0167-2789(90)90086-5.
- Chalmers, French, and Hofstadter (1992) High-level perception, representation, and analogy: a critique of artificial intelligence methodology, Journal of Experimental and Theoretical Artificial Intelligence 4 185--211.
Our recommended version is the one currently maintained by Lucas Saldyt; For more information on the code, please see the project's page.
James Marshall & Douglas Hofstadter
Find Dr. Marshall in Sarah Lawrence College | Personal Website | Google Scholar
Dr. Marshall is maintaining the Metacat Project page.
Find Dr. Defays in Homepage | Google Scholar
Daniel Defays sent in 2006 a printed version of the sourcecode to Alex Linhares. This will be scanned and archived in this repo---eventually. Moreover, a port to python 3 and a port to Abhijit Mahabal's Fluid Concepts Frameowrk will be gradually appearing here.
A Concept-centered Architecture for Sequence Perception
Abhijit A. Mahabal & Douglas Hofstadter
Find Dr. Mahabal in Google Scholar | Academia.edu
One of the goals of this project is to design and implement a computer program that can extend integer sequences intelligently, and the project has resulted in the creation of the program named ―Seqsee‖ (pronounced ―sexy‖). Seqsee can extend a wide range of cognitively interesting sequences, including the following sequence (Seqsee is presented the sequence without the groupings indicated by the parentheses):
( (1) ) ( (1) (1 2) ) ( (1) (1 2) (1 2 3) )
If people are shown this sequence (without the parentheses), they quickly form a group consisting of the three initial ―1‖s, but then realize that each plays a slightly different role in the sequence. Like people, Seqsee is initially distracted by the three consecutive ―1‖s, but gradually figures out that the second ―1‖ is an ascending group, and that the initial ―1‖ is an ascending group made up of one ascending group.
Architecturally, Seqsee is a descendant of Hofstadter & Mitchell‘s computer program Copycat, and adds several novel features that allow it to easily modify behavior in response to its recent perceptions, to form specific expectations such as an ascending group is likely to be located here, to more quickly understand sequences having previously seen similar sequences, to see an entity as something else, and to do all this without the use of brute force.
Seqsee uses several ideas in achieving its goals: William James‘ notions of the fringe and the stream of thought; analogies between objects; categorization and labeling of objects and of situations, and the detection of categories without using brute-force tests for all sorts of categories; the notion of context which influences and is influenced by perception; the notion, similar to affordances, of the action fringe of an object; and a category-based long-term memory.
The dissertation (Available here and in Dr. Mahabal's website describes the program and its principles, which are much more general than integer-sequence extrapolation, and compares its performance with human performance.
Seqsee is written in Perl and a new version is written in Python and the code is maintained by Dr. Mahabal---which is why we do not provide the code in this git repo. For the latest versions, see:
Perl version, original project
Python version being rewritten
Modeling Human Discoverativity in Geometry
Francisco Lara-Dammer & Douglas Hofstadter
Find Dr. Lara-Dammer at LinkedIn | Homepage at IU | Google Scholar | Academia.edu (?)
I propose a psychologically plausible mental representation of simple geometric entities such as points, lines, and circles as they are imagined by people (as opposed to being drawn on an external medium such as paper). The representation is simulated with a computer program whose purpose is to model geometric discovery. A consequence of the construction of mental figures is that it facilitates some tasks (such as analogy-making and remembering) while making other tasks difficult (it makes humans susceptible to illusions, errors, and uncertainty). The mental plane, as I call the place in the brain where this imagery occurs, has some similarities to other systems of the brain, such as the auditory system and the tactile system. I have exploited these similarities in my attempt to model the mental plane computationally. Also, I propose that much of geometric discovery takes place in the mental plane, and I have described mechanisms, based on analogy-making and on a sense of symmetry and esthetics, which underlie human mathematical curiosity and the propensity to make geometrical discoveries.
Publications:
- Lara-Dammer, F. (2009) Modeling Human Discoverativity in Geometry, PhD Thesis, Indiana University,
- Lara-Dammer & Hofstadter, Perception of Direction and its Influence on Geometric Discoveries
- Lara-Dammer, Hofstadter & Goldstone (2017) A computer model of context-dependent perception in a very simple world, Journal of Experimental and Theoretical Artificial Intelligence 1--36
2017-08-29. Dr. Lara-Dammer's Thesis is not available here as he is working on a book on the subject. We'll stay tuned and link to it as soon as more information is available.
2017-08-29. Dr. Lara-Dammer desires to clean up the code before a wider release.
Alex Linhares & Douglas Hofstadter
Find Linhares in Homepage | Academia.edu | Google Scholar
A chess system based on Active Symbols / Fluid Concepts. Here is the sample run of it described in the Information Sciences paper.
Most chess programs consist of nothing but tree search. Can a program have ideas; perceive abstractions; and grasp a very simple, but high-level understanding of situations? If so, how? In this project we will study an architecture for chess playing which is based on the Hofstadter school of cognitive science.
Publications regarding Capyblanca & Analogies in Chess:
- Linhares, A. (2005) An Active Symbols Theory of Chess Intuition. Minds and Machines 15 131--181.
- Linhares, A., & Brum, P. (2007) Understanding our understanding of strategic scenarios: What roles do chunks play? Cognitive Science 31 989--1007
- Linhares, A., & Brum, P. (2009) How can experts see the invisible? Reply to Bilali & Gobet, Cognitive Science 33 748--751
- Linhares, A. & A.E.T.A. Freitas (2010) Questioning Chase and Simon's (1973) "Perception in Chess": The "experience recognition" hypothesis, New Ideas in Psychology 28 64--78
- Linhares, A., A.E.T.A. Freitas, A. Mendes, & J.S. Silva (2012) Entanglement of Perception and Reasoning in Chess: differential errors of strategic reconstruction Cognitive Systems Research 13 72--86
- Linhares, A., and Chada, D. (2013) What is the nature of the mind's pattern recognition in chess? New Ideas in Psychology 31 108--121
- Linhares, A. (2014) The Emergence of Choice: decision-making and strategic thinking through analogies, Information Sciences 259 36--56
For additional info, please see the project's page.
Eric Paul Nichols & Douglas Hofstadter
Find Nichols in Google Scholar | Academia.edu
What happens when people listen to music? What sorts of mental structures are formed? How do we make sense of a melody as its notes fly by in rapid succession? Can we model the experience of listening to music in real time?
Musicat is a model of real-time melody perception by people. The program “listens” to monophonic Western tonal melodies one note at a time (presented not as audio recordings, but rather in a symbolic form much like sheet music) and generates an internal representation of the musical structures it “hears”. These structures include groups of adjacent notes, meta-groups comprised of smaller groups, expectations for upcoming structures, and, most importantly, analogies between groups (and meta-groups) of various sizes. In the model, listening is not a passive process; instead, it is an active, dynamic process of creating mental structures. Thus when Musicat listens to a melody, I consider such an act to be creative, and I call it a “listening performance”.
PhD Thesis of Dr. Eric Paul Nichols is available here: http://ericpnichols.com/musicat/pdf/MusicatDissertation.pdf, and the sourcecode is available at http://ericpnichols.com/musicat/ (and also archived here).
Harry Foundalis & Douglas Hofstadter
Find Dr. Foundalis in homepage | Google Scholar
Phaeaco is an architecture that is able to solve some Bongard-problems in a psychologically plausible way. Numerous people believe that Bongard problems are one of the quintessential challenges of AI and Cognitive Science. Here is what Dr. Foundalis said about them:
"I see Bongard problems not as a mere collection of cute visual puzzles, but as a gateway that
allows us to get a glimpse at the foundations of cognition: a set of principles that are as
fundamental for cognitive science as Newton’s laws are for physics. Bongard problems themselves
are solved primarily as a consequence of following some fundamental principles of cognition."
Dr. Foundalis is not sharing the code at this time, but his thesis is found in the Software Folder.
The Letter Spirit project is an attempt to model central aspects of human high-level perception and creativity on a computer. It is based on the belief that creativity is an automatic outcome of the existence of sufficiently flexible and context-sensitive concepts --- what we call fluid concepts. Accordingly, our goal is to implement a model of fluid concepts in a challenging domain. Not surprisingly, the Letter Spirit project is a very complex undertaking and requires complex dynamic memory structures, as well as a sophisticated control structure based on the principles of emergent computation, wherein complex high-level behavior emerges as a statistical consequence of many small computational actions. The full realization of such a model will, we believe, shed light on the mechanisms of human creativity. The specific focus of Letter Spirit is the creative act of artistic letter-design. The aim is to model how the 26 lowercase letters of the roman alphabet can be rendered in many different but internally coherent styles. The program addresses two important aspects of letterforms: the categorical sameness possessed by letters belonging to a given category (e.g., "a") and the stylistic sameness possessed by letters belonging to a given style ( e.g., Helvetica). Starting with one or more seed letters representing the beginnings of a style, the program will attempt to create the rest of the alphabet in such a way that all 26 letters share that same style, or spirit.
Gary McGraw & Douglas Hofstadter
Dr. McGraw implemented Letter Spirit's gridletter recognizer (the Examiner also called the "role model") for his PhD. Gary's thesis is available here. Letter Spirit was later extended by Dr. John Rehling (see below).
Find Dr. McGraw in Personal page | Google Scholar | Amazon Author's page
John Rehling & Douglas Hofstadter
Find Dr. Rehling in Google Scholar.
Dr. Rehling's thesis is available here and his sourcecode is available in the /Software/Letter-Spirit folder.