Home

Awesome

FARGonautica

a project in loving memory of Helga Keller


Repository News: Numbo source-code just added, Seek-Whence should really be coming soon now!

FCCA

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.

REPOSITORY VERSION & HOW YOU CAN CONTRIBUTE

As of right now, this repo is considered, in open-source fashion, to be in version 0.2.1:

Goals for version 1.0.0:

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.

PROJECTS TO JOIN HERE (desiderata)

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).

ProjectAuthorLanguageAvailable?
Seek-WhenceMarsha MeredithFranz LispYes (coming soon)
NumboDaniel DefaysLispYes (Finally!)
CopycatMelanie MitchellLisp (also Java & Python)Yes
TabletopRobert M. French??Not yet (email sent 2017-08-29)
Letter SpiritGary McGrawSchemeYes (McGraw's work was extended by Rehling)
Letter SpiritJohn RehlingSchemeYes
MetacatJames MarshallSchemeYes
PhaeacoHarry FoundalisC++Closed-source
MusicatEric NicholsC#Yes
CapyblancaAlex LinharesDelphiYes
GeorgeFrancisco Lara-DammerJava(asap) Dr. Lara-Dammer desires to clean up the code prior to release (2017-08-29)
SeqSeeAbhijit MahabalPerlYes

PROJECT: COPYCAT

Watch

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:

AuthorLanguage/SourcecodeNote
Melanie MitchellLISPBitrotten
Scott BolandJava(SB's email lost?)
"speakeasy"Javafork of Scott Boland's code
Greg DetreClojureNot tested
Arthur O'Dwyer, J Alan Brogan,othersPython 2Multiple forks, no graphics
Lucas SaldytPython 3Above repo patch to Python 3
Joseph Aaron HagerPython 3OpenGL 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:

Our recommended version is the one currently maintained by Lucas Saldyt; For more information on the code, please see the project's page.

PROJECT: METACAT

Metacat

James Marshall & Douglas Hofstadter

Find Dr. Marshall in Sarah Lawrence College | Personal Website | Google Scholar

Dr. Marshall is maintaining the Metacat Project page.

PROJECT: NUMBO

Find Dr. Defays in Homepage | Google Scholar

Daniel Defays sent in 2006 a printed version of the sourcecode to Alex Linhares. This has been just scanned and archived in this repo, and a digitized version is now available.

Moreover, a port to python 3 and a port to Abhijit Mahabal's Fluid Concepts Framework will be gradually appearing, in a repo to be announced.

PROJECT: SEQSEE

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

PROJECT: George

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:

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.

PROJECT: CAPYBLANCA

Capyblanca

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:

For additional info, please see the project's page.

PROJECT: MUSICAT

Musicat

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).

PROJECT: PHAEACO

Phaeaco

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 Literature Folder.

PROJECT: LETTER SPIRIT

Letter-Spirit Letter-Spirit

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.

PART I

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

LETTER SPIRIT, PART II

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.