Wednesday, July 7, 2010

Consciousness, language and my dictionary software

Previously, I had written some articles in Bulgarian on the Hierarchical Temporal Memory (HTM) model introduced by Jeff Hawkins. I really liked the idea of Hawkins to mimic the function of the neocortex and its aptitude for cause inference so I wanted to present it in my native language.

Currently, I'm designing my next version of the dictionary software (AEnglish Dictionary) that I have developed some years ago. At first there might not be an obvious link between the two subjects but whenever I think on how to store and use a dictionary database in a good way, I always end up with questions on how do we, humans, do it. In general I'm inclining to try to mimic some function of the neocortex.

If I'm allowed to cite Wikipedia's article on the neocortex:
"It is involved in higher functions such as sensory perception, generation of motor commands, spatial reasoning, conscious thought and language."
When I first got introduced with HTM, I instantly found that it should be capable of doing "sensory perception", "generation of motor commands" and "spatial reasoning". However, when I considered it as a model for my computer dictionary, I didn't find it that attractive. I started looking at graph databases and ditched Hawkins' model without paying attention to why my intuition said that I can't use it for "conscious thought and language".

Recently I was thinking about my dictionary graphs and language, and neocortex, and when I got to HTM, I realized that I understood how the model is supposed to do the cause inference but what I didn't see it do is thought (language). That voice mumbling in your head was not in the model. HTM's tree showed me how to create an idea or object that exists in our minds but besides observing and reacting, we have another function in our neocortex that in my opinions is like a separate impulse. It's not a neocortex input or output impulse to the other parts of the brain. It's an inner impulse. It's maybe a long running impulse that's overseeing a large part of the inputs and outputs, and is also the source of some of those.
Side note: I'm talking of course about the normal case, so for a better understanding of the subject, it's always good to refer to pathologies. I'm not a specialist but I consider that schizophrenia and dissociative identity disorder are the right starting point to look for thought disorder cases.
To come to the matter, I would like to return to the observable part of consciousness, thought and language: speaking and writing.
Side note (sorry ^^): It's interesting to mention that speaking and writing follow their own history. In all humans' history, people developed some language and then began to write. In an individual's history, a human starts to speak and then learns to write. I guess once we form our view of the world, we start to form our consciousness by speaking (a language). Although writing is the same as speaking, we learn it afterwards. That subject is interesting and maybe I should create another post. The case of speech-impaired people should also be covered.
So in the case of my dictionary software, I'm interested in language and its ability to encode and decode the information stored in our neocortex. Our consciousness helps in observing our thoughts' use of language. Here is what my consciousness found out:

Somebody once said: "I think, therefore I am". If I hear the sound, my neocortex (modeled by an HTM) can create a language representation of the words "I think" in my mind. I can also learn to say those words myself or to write them on a sheet of paper. What if I don't want to use an HTM to create, store and output a language? Let's mimic the whole "language thing"... What model or interface can I use to have people encode and decode language that is better than dictionaries, thesauri, etc.? We live in the digital age so I hope I can come up with something :)

Maybe I should become more conscious (aware) on the relation between HTM's top nodes and the following phrase from Wikipedia:
A language is a system of signs (indices, icons, symbols) for encoding and decoding information.

Tuesday, July 6, 2010

Java has it wrong since 2002

If you ever made the mistake in Windows 7 to move your Desktop folder from C:\Users\%username% to D:\ (or some other folder) you might notice that Java applications start to flood your D drive (the root of Desktop) with configuration folders with names like .myapp. The explanation: when Java provides the user profile path to applications, it simply looks for the Desktop's path and strips the folder name.

Why would I want to move the folder in first place? Simply because I want to have my data on my D drive. At last Microsoft have provided the means to do it and now Sun/Oracle are in the way of being absolutely free to decide where you want to store your data.

What's really annoying is that the issue with Java exists since December 2002. Although there are 3-4 bugs related to this one and a lot of comments have been posted on the Internet, the bug is prioritized as 4 (low)!?

I'm not sure if voting counts but I have given my voice here:

Please vote if you're registered!