Oct 2014
Issue

Apr 2015
Issue
Memory and Language:

I have started on the memory portion of my system. I did not expect a great deal of progress in the first few months. After 2 days of work it seems that I was wrong. 

An infinitely large system must run on an infinitely large database. I changed the term database to Memory; the part of the system that stores and recalls information. Memory has a direct relationship to language, the things we store are addressed by the use of words and terms, these values are then provided back as values and knowledge about those values. Language is then used to organize and communicate this information. 

I found that the language interpreter is a major part of the memory system. To be able to perform actions on the values and the know-how to use these values will require a new compiler tied directly to memory. How we do something is in memory, information that we work on is in memory, so everything that we use  should be in memory, and therefore it is really just one system that I am building. A single natural language interface with infinite memory.


Words:

The system should only create a new word only if one does not exist.  Software systems, manage real world objects and activities which all have names and very specific definitions.

My expectations for the system is that every word  used is real and has a known definition.  That no word will ever have to be made up in writing software or in communication.


The true sign of intelligence is not knowledge but imagination. Albert Einstein

A good decision is based on knowledge and not on numbers. Plato

To acquire knowledge, one must study; but to acquire wisdom, one must observe. Marilyn vos Savant

To know what you know and what you do not know, that is true knowledge. Confucius

Human behavior flows from three main sources: desire, emotion, and knowledge. Plato

To succeed in life, you need two things: ignorance and confidence. Mark Twain
 

Knowledge:

The accumulation of facts in Adams will require some change to our view of knowledge. In communication it is the facts we know about each word or term that helps each party to understand the meaning of what is being said.

Human's memory is limited. We limit one set of knowledge to the facts that we can recall at conversational speeds, and other knowledge we limit to what the brain can store for our recall upon demand at a much slower rate. Much of our memory is based on repetitive use and the lapse of time since last accessed.

"A tree has ___" is easy to fill in.
"My age is ___" might take a few seconds
"Our anniversary date is ____" will take me 3 weeks

The Adam does not have our limitation on recall. Creating knowledge in the Adam should be a combination of, emulating the human memory process to help in our communication with the Adam, and by taking advantage of the Adam's enhanced recall capabilities. 

Adding knowledge to the Adam should be as complete as human knowledge. Everything a human knows about a subject we should have that same knowledge capability in the Adam's memory. Some knowledge is common knowledge, facts that cannot be altered, ("daughter" is a female child of parents). Some knowledge could be Metaphors ("The test was a breeze"), Oxymoron ("Original copies"), Hyperbole ("chair weighs a ton"). Some knowledge is calculated ("Easter, April 5, 2015"). Some knowledge we forget, ("My first grade teacher's name is ???").

We should expand our concept of a Adam database to that of memory, a place to store and retrieve knowledge, not just as a place for values.


Computer Imagination:

The left side, of the system, is language, the right side will be to perform actions on the Adam hardware. A balanced division of effort by two equal sized systems.

Imagination is a right side activity of knowing how to do things, remembering past activities and their results, and then finally running similar and un-similar activities looking only at their results to suggest alternate solutions to problems.

 

Expectations:

I would expect software to always work, to be obvious to run, to be easily changed, have no limits, and to have the software know as much about doing a given task as possible.

I would expect software development to take the minimum amount of instructions, to be self organizing, and to be accumulative.

To meet these expectations I will have to first get rid of our current technology. Or at least I need to determine what does any technology really do for us, and where does it fail. A few of our most devastating technologies are databases, fonts, character sets, image and video handling, general information handling, and compilers.


Compiler:

I have decided to actual build a compiler to generate machine code. The system will work directly at the hardware level.

What my idea on an ideal compiler is as that it should minimize the syntax and the human knowledge needed to define actions. Looking over all the compilers that exist, I find COBOL is a great compiler. It defined the structures it needed, and then it worked on them. I like the syntax of JavaScript, it works by allowing dynamic structures, I like FORTRAN to define substrings. Each language has its own unique strengths. I will take all the strengths of all these languages and include them in my language.

The compiler is the language of the system. All software written will have complete access to the compiler and to memory and therefore will reduce the knowledge required to implement any new action by the system.

My expectations for the compiler is that it will reduce coded lines by 1000 times. A ten thousand line program will be reduces to ten lines.

 

Author: Clif Collins
http://CollinsSoftware.com
Houston, Texas

Jan 24, 2015

email: c2@CollinsSoftware.com