AI Goals
Goals
- Create a simple method of chatting with the AI.
- The AI learning to read and create games of the content would be the first step toward intelligence.
- Early goals would include building class and object databases.
- Experiments, logical reasoning, probabilities etc would come much after the above.
- 3 year old children don't know much about predicate logic or Bayesian logic etc
- Crawl, then walk, then run : an AI can’t start out in University!!!
Order of programming
- Build a simple dictionary (word, type (noun, verb, adverb), tense (past, present, future), plurality (singular, plural))
- Build a simple universe : includes only physical objects (what is contained in what) eg: galaxies-milky way-solar system-Earth-Canada-Alberta
- Make procedures for drawing models of elemental shapes (point, line, square, rectangle, triangle, circle, ellipse, sphere, pyramid, and 3d boxes)
- Make model of AI timeline.
- Make perspectives (top down, front face etc) for viewing a model composed of 3d objects.
- Handle scaling of model to see more and less detail of the objects.
- Define common objects.
- Physical objects would all have a an x, y, z “bounding box” defined.
- The “bounding box” would totally enclose (as closely as possible) the object regardless of it’s actual shape.
- An approximate stick figure description would be defined in terms of sphere, pyramid, and boxes to characterize each object.
- Provision would be made for a “jpeg” picture in the future.
- Parse commands into where, what, when, who, why, how and actions.
- Create object handler for each of the above domains.
- Create a context for the conversation.
- Remember who you are talking to.
- Recall what they previously talked about (including other sessions).
- Build a database of information about the person you are talking to.
- Some teachers would have changes made to the AI database immediately and others would be suggestions that would be screened before inclusion into the database.
Where?
- Build a database of objects where each object contains all the objects that are physically contained in it.
- Only physical objects would be included.
- eg: Universe-galaxy-solar system-Earth-Canada-Alberta-Okotoks-31 Maple St-David Clark
- Object database would have a class index therefore a query of class “human” and location “31 Maple St” would only contain the 3 people that live there.
- In general, the whole physical database (I call the universe) would not normally be scanned from top to bottom.
- Once you've got to the object in other ways (by using it’s class and name
for eg), this database would tell you what else was physically located near
by.
Who?
- Build database of specific people.
- Build database of previous interactions with each person.
- Normal lookups would be by name but location would differentiate for the same name.
What?
- Build an object database and put them into groups (build group database).
- “What” would normally do lookups on the “object class” table. Examples of
typical, big, small, male, female etc examples would be then looked up in
the object table. (eg What is the sky? Lookup the class for “sky”.)
- eg: What is David. This would cause a lookup in the object table which would
say that David is a “human”. The class table for “human” would then be queried
for “human” to describe “what” a human is.
- The class would describe the properties of a human. The objects would be
particular humans and also human templates. These templates would be examples
of different types of humans and could be used to compare a particular human
to a big one, a small one, on old one, a young one etc.
- This idea of putting templates of classes into the object database would
be a basic feature of all classes of objects.
When?
- Build database of AI personal history. (What did it do from time A to time B)
- Build chronological database of times and events.
- This is a long term project and highly domain specific. (It takes many years in school to learn about world history and events.)
- Hopefully most of the history of people, places and events could be read and organized from web encyclopedias and other sources automatically after the AI has some ability to read.
- The most important thing is for the history to be more than just words. The AI would have to be able to visualize (create a game of) the events and relate them to other known concepts.
- Schedule future research and projects on the AI’s timeline.
- Create lists of projects to do : short term, medium, long term.
- Give each project a priority level.
- Limit length of time on a project at one time unless at the highest priority (prevent hard looping without human intervention).
Why?
- Major areas would be "including humans" and "not". Eg: Why did someone murder another person? Why do countries go to war?
- Explaining human behavior would require modeling how a human sees and interacts with the world.
- The “Why” having to do with human behavior would be a long term project.
- Most animals’ motivation for their actions comes down to food and sex. Human motivations are a little more complicated.
- “Why” could also refer to the laws of gravity and other scientific rules of how matter should behave. These are probably the easiest to teach the AI.
How?
- Database of procedures for getting things accomplished.
Actions
- Actions require resources (bill of materials and labor).
- Material that is consumed.
- Tools that are not appreciably worn.
- Tools that are significantly worn.
- Labor used (internal).
- Outside labor required.
- Computer processing time.
- Disk space used.
- Sequence of actions
- These include if conditions
- and while conditions (indeterminate length : should have some override on time so that hard looping is eliminated).
Decisions
- Determine possible options (There could be many ways to generate alternatives scenarios and this part of the AI will expand as the AI gets smarter.).
- Calculate importance (use $ to determine the relative importance. I am going to try and monetize the relative importance of things even if you wouldn’t normally put a $ value on them).
- Multiply by probability (50% if totally unknown).
- Subtract negatives from positives (create a list for both positive and negative consequences for each scenario.).
- Highest value is best guess.
- If result is below a certain level then you just don't know the answer. Sometimes you must decide and in this case, the highest number would be best.
- I have recently discovered that the above algorithm has a name.
- (You mean I didn’t invent it???)
- I personally have made decisions using the above method for at least 40 years and so even though I don’t take credit for inventing it, I won’t give credit to anyone else either.
- To take credit or give credit for such a human and obvious algorithm is plain nonsense.
Strategy
- Create simple games
- The game board would consist of (normally) a 100x100 cell playing field.
- The players would occupy a single cell.
- Obstacles would take a single cell or multiple cells.
- Different players would be a different color.
- Compile a list of game goals.
- Seek a certain position in as little moves as you can.
- Avoid a moving opponent.
- Capture an opponent.
- Number of players.
- Just AI.
- Just AI and opponent.
- AI against multiple opponents.
- AI and team against another team.
- Game spaces (100x100 matrix) wouldn't be stored : just the data and algorithms
to create them.
- Obstacles you must avoid would be included.
- Players can be multi shaded to represent degrees of success or distress
etc.
- Each kind of game would be coded into a database so that a search could
be made and strategies from other areas could be reused in a different context.
- Each strategy would be a different method and each game would create it's
own playing field.
- Which strategy worked better in what context would be stored so that it
could be retrieved when needed.
- As much as possible, all concepts would have an associated game. eg: death
would be a game with 1 player on a middle cell, running the game would remove
that cell. That cell would be correlated to whatever had died.
- When I tell you something and you nod your head, I might not be sure that
you understand what I just said to you. If I ask you to explain to me what
I just told you, you would probably paint a simple picture of what you understood.
If you just repeated the same words I said to you, I might not be convinced
you understood. However, if you painted a picture (with your words) that showed
something I might think up, then I would have some confidence that you really
do understand the concept I was trying to communicate. I think the idea of
grounding concepts in a simple visual picture is important proof that the
AI really does "understand" what you are actually saying.
Classes and Objects
- Build a class library of properties and abilities/actions (methods) of real world objects.
- Build an object database (individual objects have a name).
- Abilities/actions would be programmed by methods and properties would define properties
- Common features with some importance would make a property in the class and all other comments would be contained in a notes field for each object.
- Include examples of typical, young, male/female, and odd versions of an object to compare specific objects of the same class against.
- Define classes always associated with a parent class in that class eg: a
human arm class would be defined inside the human class. (In HAL, classes
can be defined "inside" a parent class. This is not the same as
inheritance which is also included.)
- Make a simple description (stick figure) of all physical objects in terms of lines, squares and circles.
- Status information would be stored in a property but a method would determine at any time what that status should be. (Status of a tool might be: available, being used, broken but fixable, dead etc).
Groups
- Build a group database.
- This database would include objects in groups where the group would have criteria for inclusion and criteria for exclusion.
- eg: mammal group, local wildlife expected in a certain area, etc
Assets
- Create database of assets that can be used by the AI.
- Initially this would be it's own memory and hard drive space.
- Could include other processing versions of the same AI with each having main memory and disk space.
- Would include sensors and actuators as they were placed under the control of the AI.
- Some tasks could be off loaded onto other copies of the AI (copies in this case would include the HAL system but not all the databases necessarily).
Sensors and actuators
- Sensors/actuators should be locally programmed to provide at least a conditioned data stream and more idealized version of the outside world.
- As sensors/actuators are added under the AI's assets, the AI would exercise these sensors/actuators so as to determine the extent of usefulness of each and it's full abilities.
- After the above conditioning, the AI would be able to incorporate these assets into solving some problems (doing things or making things).
- Creating vision, speech recognition and manipulators is not an easy task, however, these tasks can be upgraded and enhanced without major upgrade to the AI (under this implementation).
- These subsystems could be created concurrently or added as they are developed
by anyone around the world.
- Once the subsystem was attached, the AI would still have to be taught how
it works.