I am going to continue this thread that I originally posted in the philosophy forum. The reason why I’m changing places is because I’m not at all interested in debating what “Artificial Intelligence” is or whether what I’m doing qualifies as such.
I merely want to share with the rest of the world what I am working on and I want to get feedback that is as constructive as possible.
As a recap, let me just say that I have taken upon myself the task of creating a viable entity that could qualify as having the characteristic of “intelligence”. What I mean by this is simply the entity’s ability to learn basic facts through everyday human language. It must then be able to demonstrate this knowledge by way of answering questions based on what it has been taught.
Let me reiterate something that popped up from the last thread, though. This “entity” is simply a computer program: nothing more and nothing less. There is no “ghost in the machine” nonsense happening here. I like the term “Artificial Intelligence” because the word “artificial” means fake. What I’m creating, then, is “Fake Intelligence”. It’s not real.
So, getting back to the task…
My real task is trying to capture meaning from strings of entered text. I can only do this by way of programming commonly used grammatical conventions into my code.
The first program that I created was only able to handle small chunks of texts, such as this sequence:
- There is a wild boy named Joe
- He is crazy
- There is a tall girl named Sally
- There is a pool
- Yesterday, Sally swam in it
- She did that because Joe is crazy
Then, you could ask questions, such as “Who do you know”, “What is Joe like”, “What did Sally do”, and “Why did she do that”, which it would correctly answer. Because my program was able to accomplish this task, I was happy with calling it a working example of “Artificial Intelligence”, albeit good for nothing but as a parlor trick.
I got to this level sometime around last August, at which time I put up the first post on the previous thread. But I felt I had hit a dead end because the overall design of the program was not very well worked out. I knew I was going to have to start over again from the ground up if I were ever going to create something that I could be truly proud of.
So, I took several months off without really thinking about the whole thing. But one morning a couple of weeks ago, I woke up and had the hunger to once again tackle this thing head on.
The first, and by far the most aspect of what I’m doing, is being able to parse and register everyday human logic. The help I could use from everyone concerns the forms of statements that I should be focusing on.
So far, I have focused on two forms of statements: instantiation and declaration. Before you can start to talk about any sort of thing, you have to explicitly declare an instance of it: “There is a wild and crazy boy named Joe Schmoe” or “There was an evil demigod named Zarquon”. The reason for this is simple: the computer cannot sense things outside of itself. It is totally deaf, blind, etc…
Then, you can start to declare characteristics and events about all of these objects that you have told it about. The first program could only able to handle a few basic kinds of simple statements. I realized that I needed to be able to reliably handle arbitrarily complex statements, such as:
“Joe and Sally ran and walked in and around the park and playground”
Also, this:
“They are wild and crazy swam in the pool and ate the pizza”
And finally, I have gotten to the point where it can break the following statement into logical chunks and parse each in turn:
“There is a boy girl and a pool the boy and girl are wild and crazy they swam in it because they were hot”
The final, and by far, the easiest part of the program, is answering questions and fashioning other sorts of responses. In my previous version, the response output was comingled within the main logic parsing section, and therefore, the responses were always of the same form. Now, however, I want to leave the response generation for the very end of the program. This last portion is also the most fun to do because you can be the most creative. Because of this, I could also use help from people who would like to write different sorts of responses.
In fact, you will be able to switch out different response generation sections, in effect allowing you to create different personalities. The thing that seperates this program from all of the other popular “chat bot” programs, is that those are not based upon the rigorous logic parsing and registering that mine is. Those “chat bots”, in other words, are all parts “personality” and no parts “intelligence”. Those other programs have no hope of being any sort of functioning Artificial Intelligence.
(The two most well known of these “chat bots” are Jabberwacky and A.L.I.C.E.)
To download my first version, just go to http://geocities.com/ai_project_1. I have more technical information there about how to get things working.