AI Zone Admin Forum Add your forum

NEWS: Chatbots.org survey on 3000 US and UK consumers shows it is time for chatbot integration in customer service!read more..

JAIL (TM) (JavaScript Artificial Intelligence Language)
 
 
  [ # 16 ]

Thanks Arthur,

I can anticipate such speech recognition, but the
foreign languages might present difficulties.

I actually think that foreign languages would be trivial. I would use an on-line translation service and convert between the languages while doing all the thinking in English.

German>English>Brain

Brain>English>German

 

 

 
  [ # 17 ]

Online (or indeed any automated) translation software makes for a shakey guide at best. There are too many instances in which context is necessary to correctly translate the meaning of a statement. And the further two languages are separated in grammar rules, the worse off translations are, even for fairly unambiguous text.

 

 
  [ # 18 ]

Online (or indeed any automated) translation software makes for a shakey guide at best.

CR,
That may be true, but if I look at the rapid progress that has been made in human language to language translation in the last few years it is apparent that an acceptable level of conversion has been achieved already.

To highlight just a few:

Google Translate

Freetranslation.com

Jibbigo

and one that has recently created a lot of buzz:

Word Lens

Word Lens not only does real-time translation but also image processing and augmented reality.

If I assume that the first AI has an “English to AI” input capability (some might say it will be Chinese), then it also has “Spanish to English to AI” capability. This would come virtually for free long before you could duplicate the same functionality in “Spanish to AI”. In the short term there will be a much greater resource of people who can check the quality of “Spanish to English” than “Spanish to AI”.

If I apply this to JAIL and Skynet-AI, Skynet thinks in English. The JAIL technology used can handle virtually any language internally.
The Skynet-AI responses could be translated, and the input patterns redone to handle the equivalent Spanish concept triggers. It would require someone fluent with the tools, English and Spanish. To be current, any new response would need to be duplicated across each language by an expert. More languages, more experts.

Support for such a process would require a huge effort and that has impacted my design philosophy. I don’t think “Spanish to AI” or “Speech to AI” will be as effective as using English as a common input format.


 

 
  [ # 19 ]

English and Dutch are about as close a languages as you can get (grammatically and vocabulary), yet I haven’t yet found any translator able to do this correctly.

 

 
  [ # 20 ]
Jan Bogaerts - Jan 7, 2011:

English and Dutch are about as close a languages as you can get (grammatically and vocabulary), yet I haven’t yet found any translator able to do this correctly.

Agreed. I used babylon the other day to translate a recipe from German, and you wouldn’t believe what it would have me do with my batter. wink

The only advantage of translation software would be implementation speed, as Merlin said. Using the software as a temporary patch until the chatbot could be expanded into the new language.

Actually, this is one avenue where I see chatbots being a great service to communication. A chatbot that has a thorough knowledge base in two languages could more accurately translate the meaning of a sentence between languages than a piece of software that translates word for word.

 

 
  [ # 21 ]
Merlin - Dec 31, 2010:

Your example where;
> an ant = an insect
Okay, an ant = an insect.

implies that they are identical. I think that breaks down because although all ants are insects, not all insects are ants.

Sure. “=” is an equivalence relation. The problem is that in English, sometimes “is” can express an equivalence relation and sometimes not. I’m testing the hypothesis that I can use the “=” relation in cases such as “a man = all men” or “an insect = an ant”, and then deal with the cases where it doesn’t hold true. There is a sense in which “an insect is an ant”; using the “=” operator is an attempt to capture that. It can also be thought of as “insects include ants”, “all men includes a man”. But my use of “=” is a hypothesis, which is working for most of the dialogs I’m testing the bot with so far; very likely though I will have to modify the model as the complexity of making it work for a wider range of examples grows smile

If I substitute different items into your example you will see what I mean.
[...]
If I asked it about a whale and told it a whale is a mammal wouldn’t it reply that a whale is smaller than a car?

I’ve modified the program to try to handle negative statements better:

> a man is smaller than a car
Okay, a man is smaller than a car.

> a man == a mammal
Okay, a man = a mammal.

> a whale = a mammal
Okay, a whale = a mammal.

> is a whale smaller than a car?
Yes, a whale is smaller than a car.

> a whale is not smaller than a car
Okay, a whale is not smaller than a car.

> a whale is bigger than a car
Okay, a whale is bigger than a car.

> is a whale smaller than a car?
No, a whale is not smaller than a car

> is a mammal bigger than a car?
Yes, a mammal is bigger than a car.

> “is bigger than” = “is larger than”
Okay, is bigger than = is larger than.

> is a mammal larger than a car?
Yes, a mammal is larger than a car.

—-

This is not quite where I want to be, but it’s getting there smile Instead of “is” the agent should use “can be”: “a mammal can be smaller/larger than a car”.

One of the things I am also looking at is how to handle/store exceptions to the rule.
If ALL (SOMETHING) ARE (SOMETHING)
This is a quick method to cover the general case. But for an individual case this might not be true.

> all metals are solid
Okay, all metals are solid.

> mercury is a metal
Okay, mercury is a metal.

> all metals includes a metal
Okay, all metals = a metal.

> is mercury solid?
Yes, mercury is solid.

> Mercury is not solid.
Okay, Mercury is not solid.

> Iron is a metal.
Okay, Iron is a metal.

> is Iron solid?
Yes, Iron is solid.

> is Mercury solid?
No, Mercury is not solid.

> is Mercury a metal?
Yes, Mercury is a metal.

> is iron a metal?
Yes, iron is a metal.

 

 
  [ # 22 ]
Jan Bogaerts - Jan 7, 2011:

English and Dutch are about as close a languages as you can get (grammatically and vocabulary), yet I haven’t yet found any translator able to do this correctly.

Jan,

does that mean that you will re-implement your Neural Network Designer with a Dutch paradigm?

With JAIL, I do think some AI’s will be implemented in native tongues. But, if I look at the Alice AIML AAA set, it was used as a base, but I believe the alternative language implementations have diverged from the base set and are no longer equivalent.

One interesting recent approach on this topic is Guile 3D’s Denise. In Guile’s case, he solicited the user community to do translations into a variety of target langauages. Guile provided an English version and a designated user did the translate. At this time all of the versions are more or less equal. It will be interesting to see how he does quality assurance and updates across languages.

 

 
  [ # 23 ]

does that mean that you will re-implement your Neural Network Designer with a Dutch paradigm?

Parse definitions, grammar rules, semantic rules,... need to be redefined, which can be added from within the designer. The core algorithms (thesaurus usage, parsing, frame recognition,...) are the same, no matter which type of input.
I’m hoping though that I can get the ‘learning’ algorithms good enough so that new languages can eventually be learned, based on proper translations and some guidance.

 

 
  [ # 24 ]

Sure. “=” is an equivalence relation. The problem is that in English, sometimes “is” can express an equivalence relation and sometimes not. I’m testing the hypothesis that I can use the “=” relation in cases such as “a man = all men” or “an insect = an ant”, and then deal with the cases where it doesn’t hold true. There is a sense in which “an insect is an ant”; using the “=” operator is an attempt to capture that. It can also be thought of as “insects include ants”, “all men includes a man”. But my use of “=” is a hypothesis, which is working for most of the dialogs I’m testing the bot with so far; very likely though I will have to modify the model as the complexity of making it work for a wider range of examples grows.

Robert,
I am testing some of the same things as I prototype some new functions in Skynet-AI.
Probably “is” is more equivalent to “Less Than or Equal to” sort of like a “subset” of a “set”.

Is there a reason that you are using “=” instead of “is”?
In your metal example:

mercury is a metal
Okay
mercury is a metal.

all metals includes a metal
Okay
all metals a metal

“includes” maps to “=”, but “is” maps to “is” and earlier “==” and “=” map to “=”.
Do you view all of these the same, or do they have distinction?

Maybe in training they should have different roles in the model.

 

 

 
  [ # 25 ]
Merlin - Jan 8, 2011:

Probably “is” is more equivalent to “Less Than or Equal to” sort of like a “subset” of a “set”.

Is there a reason that you are using “=” instead of “is”?
In your metal example:

mercury is a metal
Okay
mercury is a metal.

all metals includes a metal
Okay
all metals a metal

“includes” maps to “=”, but “is” maps to “is” and earlier “==” and “=” map to “=”.
Do you view all of these the same, or do they have distinction?

“is” is reflexive and transitive but not symmetric, “=” (and “==”) is reflexive, symmetric, and transitive. (In mathematical terminology “is” is a preorder and “=” is an equivalence relation.)

> Socrates is a man.
> All men are mortal.

Now I have to relate “a man” to “all men” somehow. If I use the following:

> All men is a man
> is Socrates mortal?
I have no knowledge that Socrates is mortal.

It doesn’t work. If I say instead:

> a man is all men
> is Socrates mortal?
Yes, Socrates is mortal.
> why is Socrates mortal?
Socrates is mortal because: socrates is a man, and a man is all men, and all men are mortal

Or I can do:

> reset graph
> Socrates is a man
> All men are mortal
> all men = a man
> is Socrates mortal?
Yes, Socrates is mortal.
> why is Socrates mortal?
Socrates is mortal because: socrates is a man, and a man = all men, and all men are mortal

So the “=” is a way to get transitivity to work without having to think too much about the relation. Sometimes “is” is symmetric in English (i.e., “a bachelor is an unmarried male”) and sometimes it isn’t (“the pope is a bachelor”):

> John is a bachelor
> the pope is a bachelor
> is John the pope?
I have no knowledge that John is the pope.

> reset graph
> John is a bachelor
> the pope = a bachelor
> is John the pope?
Yes, John is the pope.

So if I want to make sure transitivity applies between two nodes in the graph, I use “=” without worrying too much about whether it really is an equivalence relation. If it causes a problem, I can tell the bot:

> forget that the pope = a bachelor
> is John the pope?
I have no knowledge that John is the pope.

 

 

 
  [ # 26 ]

Now I have to relate “a man” to “all men” somehow. If I use the following:

> All men is a man
> is Socrates mortal?
I have no knowledge that Socrates is mortal.

It doesn’t work. If I say instead:

> a man is all men
> is Socrates mortal?
Yes, Socrates is mortal.
> why is Socrates mortal?
Socrates is mortal because: socrates is a man, and a man is all men, and all men are mortal

I was thinking you might use the form:
>All men includes a man

 

 

 
  [ # 27 ]

Yeah. Right now I’m trying to minimize the number of primitive relations (because it’s simpler), and so I’m using a synonym assignment to make “includes” point to “=”. If I run into problems, I’ll add another low-level relation that has its own hand-crafted method…

I think Roger Shanck defined 11 primitive relations. I’ll see how many I end up with smile

 

 
  [ # 28 ]

At http://cyborg.blogspot.com/2011/01/aiapp.html I have just released a white paper (linking back here to Chatbots.org grin proposing the conversion of the http://www.scn.org/~mentifex/AiMind.html JavaScript AI into an AiApp for devices like the iPad or the Android tablet computers.

 

 
  [ # 29 ]
Jan Bogaerts - Feb 1, 2011:

I am confused. I thought the JAIL platform that you are using for skynet-AI is based on regular expressions?

JAIL is the tool I use for building Skynet-AI. It is a framework that builds on what is in JavaScript to make it easier to do Natural Language Processing and Artificial Intelligence applications.

I have used the word “neuron” to describe a part of Skynet-AI. I’ll explain that reference here.

From Wikipedia:
A neuron (pronounced /ˈnjʊərɒn/ N(Y)OOR-on, also known as a neurone or nerve cell) is an electrically excitable cell that processes and transmits information by electrical and chemical signaling.

A neuron is the basic unit of the nervous system. In Skynet-AI, “neuron” is a good description of the basic unit that processes and transmits (or inhibits) information. For bot creators it is most equivalent to AIML’s “CATEGORY” tag although it is much more functional.

A neuron typically has two parts; an input side which gets “excited” if the input matches, and an output side, which transmits information to other parts of the system. The two sides can be linked in a variety of fashions.

Although the approach I took with Skynet-AI is not really the same as an Artificial Neural Network, in some ways, the AI part of Skynet-AI can be thought of as a simple neural network.

It has an input layer, a hidden layer (where the neurons reside) and an output layer.
Some of functions in JAIL make it easier to build and process “neurons”, thereby creating the illusion of intelligence. Skynet uses unsupervised learning during the conversation and can add new neurons on the fly. It has short and long term memory but learning from long term memory is only done under supervision.

 

 

 
  [ # 30 ]

So am I correct to presume that a neuron in your system is very similar to one of Minsky’s frames?

 

 < 1 2 3 4 > 
2 of 4
 
  login or register to react