Fog Creek Software
Discussion Board

DataStructure for Thoughts

Different datastructures have different uses and we invent new data structures or combine existing structures to accomodate new types of data for efficient usage.

For example: Dictionary, List, Stack, Queue, etc..

If we have to put our thoughts in structures what type of  Features you would like to have. ?  Implementation can be a  different issue.

Easy thought organizer could be efficient in meomory, disucssing, planning  etc..

A note helpful here:
There are many memory-aid techniques which actually help the purpose in memorizing the things. They try to organize the data for you in some structures.

Social Programmer.
Thursday, June 10, 2004

>> "If we have to put our thoughts in structures what type of  Features you would like to have?"

Who are you?  Why do you want to know?!?  You're planning on building a machine to read, analyze, and store our thoughts in a giant government database aren't you?!?  Come clean, brother; you're with the CIA or NSA or something aren't you?  You're automating the thought police!  Aaauuuugghh!

Thursday, June 10, 2004

Not ncecessarily I have to do something with computers.
Computers can be helpful, but here I am taking the concept of datastructre from computer and use it so that it can work effectively with the operation of mind.

Social Programmer.
Thursday, June 10, 2004

Might not be exactly what you are looking for but…

Some software tools used for brainstorm sessions try to organise not only one but many people’s ideas.  I think that these are called GSS group support systems or CSCW computer supported cooperative work.

Cecilia Loureiro
Thursday, June 10, 2004

Check out "mind mapping" on google.

I use Freemind (from sourceforge) pretty regularly.

The main weakness with most of these is that they are heirarchical, not usually web (node) based.

Many of these packages store the data in a simple xml file.

Thursday, June 10, 2004

I am really not looking for mind-mapping software (aka implementation).
I am looking for features of  datastructures for thoughts.

Data Structure :
        A collection of data elements whose organization is characterized by accessing operations that are used to store and retrieve the individual data elements.

Features of Data Structures :

      Logical arrangement of data element
      Can be decomposed into their component elements
      The set of operations to access the elements
      The arrangement of the elements is a feature of the structure that affects how each element is accessed
      The arrangement of the elements and the way they are accessed can be encapsulated.

Social Programmer.
Thursday, June 10, 2004


Look at it this way: Everything is a "concept."

Any one concept is associated with any number of other concepts.

The "association" itself is a concept.


example: "music" is a concept. It is associated with concepts such as "enjoyment", "pastime", etc.

These are in turn associated to "people" etc. There is no "root concept", they are all intertwined.


Thursday, June 10, 2004

There is a major difference between the way computers "think" and humans think.  Thus, data structures in a computer are good for arranging, storing, and accessing 'data', based on 'features' of the data (ascii sort order, record rows, related records) -- whether it 'means' anything or not.

I think humans relate meaning almost immediately -- that's my wife's phone number, that's my son's birthday -- and those relations are critical to being able to retrieve the information.

The human attention 'stack' seems very shallow.  If I get interrupted to pay attention to something else, I can do that once, maybe twice, but the third time I forget what I was originally working on. 

Maybe the idea of the 'Working Set' of related issues I can hold in my mind at one time, in order to do work, is helpful. 
Given the differences in machine versus human 'thought', I think the 'data structures' useful to human thought may be very different from those used in programming.

Thursday, June 10, 2004

Oh, I just remembered:  Hierarchy.

Hierarchy is the way humans tend to organize concepts.  Hierarchy lets us summarize un-important details so we can focus on the key aspects of an idea.

Thursday, June 10, 2004

By data structure do you mean a DBMS schema?

Captain McFly
Thursday, June 10, 2004

Thanks AllanL5 :

A very good answer and thinking in the right direction.
" 'Working Set' of related issue" may be a good DS to start with.  So in other words before you start the 'algorithm' ie.. the functions in the life, getting and reciting this data could be helpful.

Similarly "Working set of related Logic", could be helpful for let's say computer programming or other tasks. 

This stuructured data and logic can help us to do task faster. Example we may arrive at faster conclusion for learning, logical arguments, etc..

There could be other datastructure also which can be helpful.

Social Programmer.
Thursday, June 10, 2004

list of associated images
list of  associated sounds
list of associated  smells
list of associated  sensations
list of associated  words

list of directly associated thoughts

factual/logical information

Emotional content


Every image, smell, sound etc would also have a list of pointers to other thoughts so the the complete structure forms a web where one can climb from any given point to any other point. Recollection of any particular data comes down to finding the path between where you are and what you want to remeber.

Eric Debois
Thursday, June 10, 2004

Data Structure of Thoughts

  .naked women

Rammalamma Dingdong
Thursday, June 10, 2004

A thought isn't a data structure.

Its an event.

Its a message.

The message might packetise some kind of data but in effect it generates an event when the message is received.

Memory, now that's a different story.

Simon Lucy
Thursday, June 10, 2004

True.. my structure is about memory, not thought.

So consciousness might resemble an event loop.. =D

Eric Debois
Thursday, June 10, 2004

Simon Lucy:

Thought itself may not be a datastructure. But thoughts can be arranged in a datastructre.  Consider thought as a data in single cell in datastructure. 

You are right and I hadn't thought about it:
<i>The message might packetise some kind of data but in effect it generates an event when the message is received</i>

So one thought generates an event which can trigger another thought. 
Now that's interesting to put in datastructure.

I had seen that some time the integration (math problems) takes some time to arrive at , where as other time it was quick. Same goes for many math puzzles.. Same goes for arguments in the court. Now all of these events can be optimized with organized datastructure for thoughts.

Social Programmer.
Thursday, June 10, 2004

Woah.. I know Kung Fu

Thursday, June 10, 2004

> A thought isn't a data structure.

I think Skynet would disagree with you.

Thursday, June 10, 2004

A mathematician (don't recall who) described how he though about math problems. He described them as a huge vine with many branches he could follow until he got to leaves; then he could back up and follow another branch. But somehow he could see the entire vine and navigate it without getting lost.

Great chess players probably see the game like that as well. When asked how he could evaluate all of the millions of possible moves several plays ahead, one responded that he only considered the good moves. 

Anony Coward
Thursday, June 10, 2004

AI researchers have been working on a data structure for thoughts for decades.  If you had a data structure for thoughts, you'd be far closer to answering some fundamental questions of AI.

It's doubly hard when you realize that we barely know how the brain *really* works.  Sure you can make a guess about it, but folks have made some really bad guesses...

Flamebait Sr.
Thursday, June 10, 2004

Something on the order of the 6-degress theory.  Most of our thoughts/memories are based on association of different thoughts/memories.  Organize them in an associative way.  This way infrences can be made artifically.

Thursday, June 10, 2004

I am not trying to find out, how it works.

My primary idea is  what do we need out of thought system , so that we can be more efficient. 

Social Programmer.
Thursday, June 10, 2004

On the application would be in programming/developing etc..
you would not have to think 100 times about a variable. It would be quick if your datastructure of thoughts is right.

Social Programmer.
Thursday, June 10, 2004

This sounds like a senior thesis project or some such thing :)

Anytime I design a data structure, I begin by asking the question: What do I want to do with it?

Is your "thought network" purely for organizing and finding information?  Is it simply a sequential record logging system, like a diary or constantly running tape recorder?  Is it intended to extrapolate associations and make decisions based on past/existing items in the network ("What would Bob do if...")?  Should it draw conclusions from the data ("Bob's greatest fears in life are...")?

Without knowing the intended use of the structure ahead of time, it's all but impossible to decide how to organize it.

Thursday, June 10, 2004

>This sounds like a senior thesis project or some such thing :)
No it is not. I have finished my masters years ago..

>Anytime I design a data structure, I begin by asking the question: What do I want to do with it?

Exactly that is the question: What do you want to do with the thought system.  What are the desired features of the structures where thoughts will flow or can be stored.

>Is your "thought network" purely for organizing and finding information?... ... .....

What features are required from the thought system.?
Someone earlier pointed out that thought is not just a data It is an event.  Just like we plan the events, we can plan thoughts for the purpose. Datastructure for the same would help.

==: ===

Social Programmer.
Thursday, June 10, 2004

A single thought is like a node in a double linked list of thoughts that lead to some conclusion (the last thought).

Each thought is just a message that has a link to it's previous and next thought.  Each thought has a message type and the contents of the message (the sight, sound, smell, feeling (sensation), or any combination thereof).

I guess that each type of sense would have to have it's own structure.  Sight and Sound are obvious, though Smell and Touch would take a little knowledge of chemistry I suppose.

It would be cool if you could hook the computer to your brain to record/playback such things.  That would sell well.  Reminds me of a movie I like...can't remember the name of it though.

Friday, June 11, 2004

Still sounds to me like implementing a solution without a defined problem...oh well, sorry.

Friday, June 11, 2004

I think you want a mesh or net, not a hierarchy (not a tree): each concept is a node, and each node may be linked to any of one or more other nodes.

The link between (the relationship between) each node may be labeled (perhaps, I don't know, these labels are themselves "concepts").

Some (but not all) of these nodes may model or implement a group/set/hierachy: for example I may have one node for "all dogs that I have known" that is linked to the specific node for each specific dog.

In general though it can't be modeled as a hierarchy (there's no single "top": no way to specify whether A "contains" B or B contains A).

Christopher Wells
Friday, June 11, 2004

This is quite a rite way of thinking.....but u won't be human anymore...

Soumiya GMK
Thursday, June 24, 2004

*  Recent Topics

*  Fog Creek Home