Terminology without Technology:
Building the next level of technology requires a solid foundation, and a
clear approach. Our current terminology has vague meanings with
unfinished or partial solutions.
Technology can be built on "words" which communicate, in
the least confusing way, the actions to be performed for any given
An Infinitely Large Database:
Changing our view of databases: we currently store and retrieve data
from a permanent location and call it a database, then use SQL language
to access it. This requires software developers to create static
synthetic organizational schemes to group related values.
I changed this logic around to permit the system to organize
information based on usage and personal preferences. All the
relationships and information about a word are stored in a permanent
location that is optimized by the system for access speed and security.
The difference here is that everything that I know about a given piece
of information is known to the system. Every person who wants the system
to know something can have it permanently stored, organized, and
With an infinitely large database I will have to turn over all relationships,
security and content handling to the system. Most of what the
system knows is "common knowledge", this is information that is entered
once, rarely changes and is globally accessible. All other
information is "personal knowledge", information that is known to a
single individual or group of individuals. The system will accept and
treat all information as if there is a single structure.
"In the end, all business operations can be reduced to three
words: people, product, and profits." Lee Iacocca
"There's a great power in words, if you don't hitch too many of them
together." Josh Billings
"Without knowing the force of words, it is
impossible to know more."
"Don't use words too big for the subject. Don't say
infinitely when you mean very; otherwise you'll have no word left when
you want to talk about something really infinite." C.S. Lewis
"The limits of my language means the limits of my world."
"Words are cheap. The biggest thing you can say is 'elephant'."
Communicating with Adams, the end
of software development?
yet to begin to communicate with Adams. Not from lack of trying, but
rather from lack of understanding by the machine. If we ever do
communicate with the Adam then understanding is achieved and no more
software development would be needed.
Communication is the production and exchange of information by means of
signs and symbols. It involves encoding and sending messages, receiving
and decoding them, and interpreting the information and meaning.
Communication permeates all levels of human experience. We have yet to
communicate with Adams. We do not exchange information with the
Adam, the Adam simply performs predefined responses.
Natural language is our preferred method of communication. But, we
should not expect the Adam to learn all our words at once. The
difference between human learning and machine learning is in the method
of learning. The Adam simply needs a method to store words and
retrieve their meanings. I have devised a technology to do just this.
The foundation of my technology is to place all knowledge into the
Adam using human words. The Adam must comprehend at
There are three criteria for this technology. The first is speed, the
easiest of the technologies to build. It is some 70 years old and the
easiest to implement. The second is organization. It should be
natural and self improving. As the size of the system increases, it must
continually improve in speed, and knowledge. The third is
understanding, to insure the words that we communicate are understood
the same by both sides. Information context can be achieved through
experience weighting - a word's meaning in context depends on its use.
domain can be thought of as a single word or term that has a set of actions that
can be performed by or on it. A domain has values and characteristics. A
domain's scope should be defined as narrow as possible for every user.
domain can have any number of named sub-domains. A "school" domain can
have "department" as a named sub-domain. One action that can be performed
on a school domain would be "show teachers".
domain may have processes that require complex definitions or controls
which might require a language. The language should then be the easiest
possible form for humans to create without documentation. Often, no language is required for domains
since the system already has a general language that encompasses many
Domain Specific Language:
domain specific language is used to define and control an application.
The main problem with our current technology is the limited number of
domain specific languages.
few months ago I created the science of "Software Logic Management" to define a scientific method for creating logic. If we break an
application into "domains" and create a specific language for each
domain, then we can reduce our development time to a minimum.
created Common Ground 2000 (cg2) some 19 years ago as a common language
for transferring information between any two systems. Software Logic
Management seeks to create a set of domains and their language whereby
the least number of words are used and no documentation is required.
the core of current compilers, we have only three domains of
"Character", "Integer" and "Floating Point" which we
generally implement in
hardware. From these we have derived "Currency", "Date" and
"Boolean". It took social and economic changes and 51 years (1935 to
1986) for these to stabilize. Even today these have not been
control these 6 domains for every application written over the past 79
years. These "compilers" allow us to "Add", "Divide" "Print",
"Move" - maybe 10 basic operations. This is as far as we have taken our
system I am building has domains for words; such as "Phone
Number", "Address", "Menu", "Form", "Style", "Invoice", "Purchase Order"
and so on. Each word can have sub-domains. This reduces the
language down to just a few well chosen words to create and control all
aspects of the system.
DSL should rarely need documentation for most every-day human
interactions. A DSL for complex sub-domains can be described with little