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
language interface with infinite memory.
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.
A good decision is based on knowledge and not on numbers.
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
Human behavior flows from three main sources: desire, emotion, and
To succeed in life, you need two things: ignorance and confidence.
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
"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.
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.
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.
I have decided to actual build a
compiler to generate machine code. The system will work directly at the
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
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.