Compare commits
11 Commits
85650b7acb
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 4788ffbc05 | |||
| 5593a109ab | |||
| c80329fea0 | |||
| 6b6155b501 | |||
| 12c81be128 | |||
| c766d446c5 | |||
| 50d6643bbb | |||
| 3b82892136 | |||
| 7d324e44e9 | |||
| 69a04a724b | |||
| bdbb964d5d |
26
README.md
26
README.md
@ -1,10 +1,10 @@
|
|||||||
co.py.cat
|
Copycat
|
||||||
=========
|
=========
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
An implementation of [Douglas Hofstadter](http://prelectur.stanford.edu/lecturers/hofstadter/)'s Copycat algorithm.
|
An implementation of [Douglas Hofstadter](http://prelectur.stanford.edu/lecturers/hofstadter/) and [Melanie Mitchell](https://melaniemitchell.me/)'s Copycat algorithm.
|
||||||
The Copycat algorithm is explained [on Wikipedia](https://en.wikipedia.org/wiki/Copycat_%28software%29), and that page has many links for deeper reading. See also [Farglexandria](https://github.com/Alex-Linhares/Farglexandria).
|
The Copycat algorithm is explained [on Wikipedia](https://en.wikipedia.org/wiki/Copycat_%28software%29), in Melanie Mitchell's Book [Analogy-making as perception](https://www.amazon.com/Analogy-Making-Perception-Computer-Modeling-Connectionism/dp/026251544X/ref=sr_1_5?crid=1FC76DCS33513&dib=eyJ2IjoiMSJ9.TQVbRbFf696j7ZYj_sb4tIM3ZbFbuCIdtdYCy-Mq3EmJI6xbG5hhVXuyOPjeb7E4b8jhKiJlfr6NnD_O09rEEkNMwD_1zFxkLT9OkF81RSFL4kMCLOT7K-7KnPwBFbrc9tZuhLKFOWbxMGNL75koMcetQl2Lf6V7xsNYLYLCHBlXMCrusJ88Kv3Y8jiPKwrEr1hUwhWB8vtwEG9vSYXU7Gw-b4fZRNNbUtBBWNwiK3k.IJZZ8kA_QirWQK1ax5i42zD2nV7XvKoPYRgN94en4Dc&dib_tag=se&keywords=melanie+mitchell&qid=1745436638&sprefix=melanie+mitchell%2Caps%2C206&sr=8-5#), and in [this paper](https://github.com/Alex-Linhares/FARGonautica/blob/master/Literature/Foundations-Chalmers.French.and.Hofstadter-1992-Journal%20of%20Experimental%20and%20Theoretical%20Artificial%20Intelligence.pdf). The wikipedia page has additional links for deeper reading. See also [FARGonautica](https://github.com/Alex-Linhares/Fargonautica), where a collection of Fluid Concepts projects are available.
|
||||||
|
|
||||||
This implementation is a copycat of Scott Boland's [Java implementation](https://archive.org/details/JavaCopycat).
|
This implementation is a copycat of Scott Boland's [Java implementation](https://archive.org/details/JavaCopycat).
|
||||||
The original Java-to-Python translation work was done by J Alan Brogan (@jalanb on GitHub).
|
The original Java-to-Python translation work was done by J Alan Brogan (@jalanb on GitHub).
|
||||||
@ -42,26 +42,31 @@ ppqqrs: 4 (avg time 439.0, avg temp 37.3)
|
|||||||
The first number indicates how many times Copycat chose that string as its answer; higher means "more obvious".
|
The first number indicates how many times Copycat chose that string as its answer; higher means "more obvious".
|
||||||
The last number indicates the average final temperature of the workspace; lower means "more elegant".
|
The last number indicates the average final temperature of the workspace; lower means "more elegant".
|
||||||
|
|
||||||
|
|
||||||
---------------------
|
|
||||||
Code structure
|
Code structure
|
||||||
|
---------------------
|
||||||
|
|
||||||
The Copycat system consists of 4,981 lines of Python code across 40 files. Here's a breakdown of the largest Core Components:
|
This Copycat system consists of 4,981 lines of Python code across 40 files. Here's a breakdown.
|
||||||
|
|
||||||
|
Core Components:
|
||||||
- codeletMethods.py: 1,124 lines (largest file)
|
- codeletMethods.py: 1,124 lines (largest file)
|
||||||
- curses_reporter.py: 436 lines
|
- curses_reporter.py: 436 lines
|
||||||
- coderack.py: 310 lines
|
- coderack.py: 310 lines
|
||||||
- slipnet.py: 248 lines
|
- slipnet.py: 248 lines
|
||||||
- Workspace Components:
|
|
||||||
|
Workspace Components:
|
||||||
|
|
||||||
- group.py: 237 lines
|
- group.py: 237 lines
|
||||||
- bond.py: 211 lines
|
- bond.py: 211 lines
|
||||||
- correspondence.py: 204 lines
|
- correspondence.py: 204 lines
|
||||||
- workspace.py: 195 lines
|
- workspace.py: 195 lines
|
||||||
- workspaceObject.py: 194 lines
|
- workspaceObject.py: 194 lines
|
||||||
|
|
||||||
Control Components:
|
Control Components:
|
||||||
- temperature.py: 175 lines
|
- temperature.py: 175 lines
|
||||||
- conceptMapping.py: 153 lines
|
- conceptMapping.py: 153 lines
|
||||||
- rule.py: 149 lines
|
- rule.py: 149 lines
|
||||||
- copycat.py: 144 lines
|
- copycat.py: 144 lines
|
||||||
|
|
||||||
GUI Components:
|
GUI Components:
|
||||||
- gui/gui.py: 96 lines
|
- gui/gui.py: 96 lines
|
||||||
- gui/workspacecanvas.py: 70 lines
|
- gui/workspacecanvas.py: 70 lines
|
||||||
@ -76,10 +81,11 @@ The system is well-organized with clear separation of concerns:
|
|||||||
- User interface (GUI components)
|
- User interface (GUI components)
|
||||||
|
|
||||||
The largest file, codeletMethods.py, contains all the codelet behavior implementations, which makes sense as it's the heart of the system's analogical reasoning capabilities.
|
The largest file, codeletMethods.py, contains all the codelet behavior implementations, which makes sense as it's the heart of the system's analogical reasoning capabilities.
|
||||||
---------------------
|
|
||||||
codeREADME.md Files
|
|
||||||
|
|
||||||
We've got an LLM to document every code file, so people can look at a particular readme before delving into the work.
|
{code.py}README.md Files
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
We've got an LLM to document every code file, so people can look at a particular readme before delving into the work (Here's one [Example](main_README.md)).
|
||||||
|
|
||||||
|
|
||||||
Installing the module
|
Installing the module
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user