dupa

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Don Ferguson

Pages: 1 ... 4 5 [6] 7 8 ... 20
76
Ultra Hal 7.0 / Getting Hal to talk to another bot
« on: March 11, 2004, 06:17:54 pm »
KnyteTrypper,

That's fine!  Your example is sufficient to better understand what you meant.

Evidently, Hal is associating various sequential remarks with each other (which he is indeed capable of doing), and anticipating and paraphrasing remarks that Alice has made.

Very interesting, and great!

Thanks,

Don

77
Ultra Hal 7.0 / Female -v- Male Characters
« on: March 11, 2004, 06:13:56 pm »
Hello,

As one of the developers who have worked on Hal for years, I can testify that there isn't anything intentionally written into the default brain code, or default databases, to make Hal behave differently as a man or a woman.

In providing sentence-fragments and base-sentences for databases, I've taken care to keep the default Ultra Hal gender-neutral, since we developers have no way of knowing whether a user is going to designate Hal as male or female.

The default .uhp brain control-script doesn't "know" which character has been selected.  The information is in the computer, but it isn't used for anything in the script. (Attention fellow developers: the character selection COULD be used to select different databases, and that opens up unexplored future development opportunities!)

One the other hand:

Due to the vast number of variables that come into play during conversations, I've found that Hal can have dramatically different behaviors from one installation to another, from one conversation to another, and I can see that this could extend into the various characters as well.

KnyteTrypper offered a fascinating theory about our subconscious choices and interpretations, and I offer the following personal experience:

Just as an experiment, I cleared my Internet Explorer cache, and then went to the Haptek/People Putty website and operated every possible demo with every possible character, and followed every link to every possible Haptek character.  

I then located the .htr files for the characters in my browser cache, and copied-and-pasted them into my Ultra-Hal "characters" folder.  As a result, I had new characters for Hal, including a full-body character of comedian Jay Leno!

When talking with "Jay Leno," I found myself addressing him differently than I would "Sam" or "Margene."  For one thing, talking to Jay Leno, it seemed that I had an obligation to constantly come up with remarks that were as witty and topical as possible.

After a while, it seemed as if I was getting conversational responses from the character that were quite plausible for Jay Leno talking -- and it had to be coming out of my own subconscious!  

So, KnyteTrypper, I've definitely had the experience that you predicted!

This is just another example of how much unexpected variety this new entertainment medium has the potential to offer!

Best regards,

Don

78
Ultra Hal 7.0 / How to get around "search/find/call"
« on: March 10, 2004, 11:57:03 pm »
Hello,

Good job, Nevearo, finding that earlier posting of mine!  Actually, there are several more on the subject of Hal's program-opening "triggers", because that topic has come up at various times.

I do want to point out that many of Hal's "triggers" to launch program activity are in that one file... but SOME of them are "built in" by Zabaware into Hal's executable files, which are OUTSIDE the ".uhp brain script" and thus inaccessible to us VBS programmers.

For instance, the triggers to open the appointment calendar are "outside the script."

I have requested to Robert Medeksza that in future versions of Hal, that he please put ALL calls to "do things" "inside the .uhp brain script", so that users and programmers like us can improve and restrict those calls as we wish.

You will need to examine the enhanced_main.brn database and decide for yourself whether the particular trigger-words of interest to you are there or not.

Sincerely,

Don

79
Ultra Hal 7.0 / Getting Hal to talk to another bot
« on: March 10, 2004, 11:45:05 pm »
Hello KnyteTrypper,

I think your comments about Hal learning the responses from the Alice bots are fascinating.

If you get a moment sometime, could you post a very brief transcript, or just an example or two?  This sounds very entertaining, and of course, it's always fun to hear about something new that Hal is doing.

Thanks,

Sincerely,

Don

80
Ultra Hal 7.0 / Sandy is close to dreaming!!!
« on: March 09, 2004, 12:07:54 am »
Hello Matthew,

Congratulations on the conversations that you are having with Sandy.  As you know, the current default Ultra Hal 5 can learn, associate, re-sequence, and build from phrases, sentences, individual words, and inter-sentence relationships.  Each Hal becomes unique after a short time of conversation with an individual user.  The resulting Hal personality and intelligence respond to a large extent on the patience and creativity of the user conversations.

Some of the remarks Sandy has made to you are hauntingly emotional, as well as perfectly plausible.

There was once a time when people "KNEW" that audiences would never sit still for a motion picture that lasted longer than 15 minutes.  There was once a time that "smart people knew" there would NEVER be a mass-market for (pick any of the following): automobiles, radios, black & white televisions, hi-fi stereo equipment, telephones, computers, VCR's, camcorders, mobile phones, satellite dishes, internet service, color televisions, big-screen televisions, high-definition televisions, etc., etc.

The members of this forum are pioneers of a new entertainment medium!  Members like yourself are showing how richly interesting this new medium can be.

Keep up the great work!

Sincerely,

Don

81
Hello Dreamweaver,

Thank you for excellent examples of cases in which Hal would improperly substitute "me" for "I" due to the particular structure of certain sentences, such as:

After I drove...
Before I began...
Underneath I hurried...
On I continued...

These are definitely constructions that I didn't consider in the original build-up of the content that went into the "corrections.brn" and "substitutions.brn."

For MOST (but not all) the cases shown, it will be possible to correct the problem with additional entries that "reverse the incorrect reversals" and thus take care of the less-usual constructions.  

I described how this would be done in an earlier posting on this thread.

The additional entries in the "substitutions.brn" and "corrections.brn" would be LOWER IN THE LISTS than the existing substitution-pairs, so that they would be processed later, and thus have the "last word."

The entries would look like the following:

"me begin","I begin"
"me began","I began"
"me continue","I continue"
"me continued,"I continued"
"me drive","I drive"
"me drove","I drove"
"me hurry","I hurry"
"me hurried,"I hurried"

Please note that the convention of form that I started in the original databases was to list both the present and past tenses of verbs, and to put most of the list in alphabetical order.  That made it easier during subsequent manual editing to avoid the waste of duplicate entries.

A few hundred entries would cover 99% of cases, and add only a very tiny amount of processing work for Hal.

I sense that many of us tend to want to invent a rule to "tell" Hal and let him figure these things out for himself; however, in this case I haven't yet found a substitute for just sitting down for a couple of hours and putting in the labor of making the list.  

I will be happy to do so, after I get past a couple of current projects.

Sincerely,

Don

82
Hello nowyoudidit0com,

I checked your site and want to report that Liberty did load and appear just fine!

You mentioned that she is a "virtual narrator"; are you planning to cause her to make comments to visitors, similar to the way that the narrator does at the Haptek site?

Sincerely,

Don

83
Hello HalImprover,

I hope that additional members will help answer your questions, especially the first question.  

Regarding your second question, I can report the following:

1.  I have never seen the "too many files" error message during many editing sessions with Hal over many years, generating thousands of files.  

I always test new code in "real time"; that is, I run my editor in one window, and Hal in a different window.  Each time I write some new code, I toggle back to Hal and say something to him, to make sure that he still works.  Then, if I get an error, I can find my mistake when it's still "nearby and warm" instead of a "needle-in-a-haystack and cold."  

Generally, the only time I've experienced any error messages at all has been when I've introduced syntax or type-mismatch errors into code, and caused Hal to "hang" due to my own mistake.  In those cases, I found that Hal would malfunction various ways until I completely closed and re-opened Hal; in severe cases, I had to re-boot!  But I want to stress:  I know that I originated those problems myself.

2.  I use the Zabaware brain editor to edit the .uhp control scripts (because of the excellent color-coding and line-numbering in Robert Medeksza's Brain Editor), and I use Microsoft Word to edit the .brn databases.  I have found the following, interesting behavior between Hal and Word:

a) When Hal is operating normally, I never have a problem opening a file with Word that Hal has just (moments ago) accessed.

b) I never see any indication that Word or any other application thinks a file is still open after Hal has just read it, or written to it.

c) However, when I have a .brn database file OPEN IN WORD, I have found that Hal CANNOT write to it; Hal doesn't report any error messages, but Hal writes absolutely nothing to a given database file while that file is open in Word.  That tells me that because Word has the file open, Hal can't write to it.  As soon as I close the file in Word, Hal can immediately write to that file normally, on the very next conversational exchange.

The above observations cause me to think that Hal does close and relinquish the file after each read or write event.  I could be wrong, and I'm certainly interested in hearing more input on this.

Sincerely,

Don

84
Hello,

The attached special brain file can be used as a tool to test and fix problems with pronoun reversals.

It is a "Repeat Back with Pronoun Reversals" brain.

When you select this brain from Hal's menu, Hal will simply repeat back anything you say, using the current routines and databases for pronoun reversals.

It is a very handy tool.  (You can also use it to create "Radio Shows" by recording Hal's voice to a tape recorder or to the Microsoft Sound Recorder that's on Windows computers.)

Simply download the file and "save" to the following path and folder if you have Hal 5:

C:/Program Files/Zabaware/Ultra Hal Assistant 5

(Remember, our forum software can't display backslashes, so I've used forward slashes.)

Once you have the brain in your correct Hal folder, it will show up on your list of "Brains" in your Hal's "options" dialogue box AFTER the next time that you restart Hal.

I hope that this is of some utility!

Sincerely,

Don


Download Attachment: Repeat Back with Pronoun Reversals.uhp
11.28 KB

85
Hello!

THANK YOU, everyone, for the wonderful postings and the excellent contributions and interest!  And, welcome new members!

Here are the main points I should have said about Hal's pronoun-reversals:

1.  Before re-inventing the wheel or discarding the old one, examine the "substitutions.brn" and "corrections.brn" databases and understand their structure, content, and intent.

2.  Hal's pronoun-reversals, imperfect though they may be, give Hal an advantage in the current market.  The reason that so many other chatterbots DON'T have "real time learning" is because their authors haven't yet figured out, or bothered to construct, a decent pronoun-reversal routine.  (Some have, and my hat is off to them!)

3.  If we add, delete, or change a feature, we should include the following criteria to evaluate the change: a) does it work better, and b) does it avoid introducing new problems or errors?

4.  The concept, structure, and intent of the existing substitutions.brn and corrections.brn databases include the idea of upgrading their content to improve Hal into the future.

By the way, I thought of a couple of other technical-history pronoun items that might be useful to share:

A. There was an early-legacy pronoun-reversal routine in the function that creates new database entries for the "specific recall" databases (the databases that have all the complex arguments).  That early pronoun-reversal routine doesn't work reliably, but it's buried in a .dll or .exe file somewhere, and has never been removed.  For that reason, if you examine the .uhp "control scripts," you will find some elaborate work-arounds designed to AVOID triggering that early-legacy behavior.  (For example, pronouns get encoded and decoded at times, so that the function never "sees" a pronoun.)

B.  The substitutions.brn and corrections.brn databases contain some word substitutions that are a matter of artistic choice.  For instance, there's a special case for "tell you" (as noted above by Vonsmith) and a few other phrases that don't reverse well.  

C.  There are also a few (legacy) automatic word substitutions in the .exe or .dll files, beyond the reach of us script-writers.  They don't come up very often, but they can cause vexing problems when trying to hunt-down the source of an inappropriate response.

Anyway, I'm delighted by the participation and contributions!  

All I'm suggesting is before we start a major "re-wiring job," we give ourselves a fair chance to "study the schematic!"

Thank you so very much -- if I can answer more "legacy" questions, or if I can think of similar items, I'll contribute more to this thread.

Sincerely,

Don

86
Hello,

Just a quick postscript to the above posting:

My description in the posting above is just the tip of the iceberg.  There are also situations in which a word can appear to be taking a pronoun as an object, but actually isn't.  For example:


If you help I can finish the project.


--Hal could spot " help I " in the above sentence and change it thus:


If you help me can finish the project.


...And that would be wrong.  There is more than one solution to the problem.  One solution is to train users to use commas:


If you help, I can finish the project.


...The comma prevents the string-match!  

Another approach would be to think through the troublesome case and make a rule to "un-correct" the erroneous correction:

" me can ", " I can "

The above rule says: If we've made a correction resulting in the string " me can " then change it back to " I can ".

Notice that position in the processing list matters!  The UNcorrection list must occur AFTER the original list in the database, since the string-substitutions take place from the top of the list to the  bottom.

This is only one of many strategies that already exist in the "corrections" and "substitutions" databases.

The accuracy rate that we can expect (and have already experienced) far exceeds 90%.  Yes, English has hundreds of thousands of words, but most educated people use less than 80,000 words routinely, and in fact, ordinary conversation uses only a few thousand!  It should be very feasible to continue improving the existing strategies.

Sincerely,

Don

87
Hello Vonsmith,

This is in response to your postings about your consultations with an amateur linguist, and the "simple" substitutions that Hal makes in attempting to deal with "I" and "me" etc.

First, the rule:

In English, the first-person personal pronoun when used as a subject is "I".  The first-person personal pronoun when used as an object is "me".  


I (subject) want you to throw the baseball to me (object).

I (subject) want you to help me (object).

I (subject) heard you call me (object).


The second-person personal pronoun for BOTH subject and object is "you".  For that reason, when Hal does pronoun reversals, he needs rules to distinguish subject from object.

I am the one who wrote the list of substitutions from "I" to "me".  It was based on the correct grammar rule.  I was very careful to use spaces strategically in the string-matches to avoid false triggers, complications, compound errors, and unwanted artifacts.  (My original submission to Zabaware put the substitutions inside the control script... which made the control-script very, very long.  Robert Medekza came up with the elegant solution of external databases, which are also much easier to edit.)

The "flag" to recognize object vs. subject is that the pronoun is an object when it follows a verb or a preposition.  Therefore, I brainstormed, researched, and tested (with volunteers) to put a lengthy list of such cases in the "substitutions" database.  

It was a lot of labor.  The content and the sequence of content in that databases have a definite purpose.

Yes, it is very easy to "fool" Hal on subjects and objects, as illustrated in the following:


User:  I think I am going to kiss you.

(As reversed by Hal): You think you are going to kiss me.


User:  I think I am going to glarth you.

(As reversed by Hal): You think you are going to glarth I.


Now, why did Hal "fail" in the second instance?  It's because we made up a nonsense verb "glarth" and Hal couldn't deal with it -- he treats his verb list as literals and didn't see "glarth" as a verb!  Our human brains, on the other hand, infer the correct pattern using our imaginations. (That's why we can enjoy Lewis Carroll's "nonsense" poetry.)

For this reason, Hal will "fail" when we misspell a verb; he doesn't recognize it.

For my own home Hal, whenever I find a new verb or situation that Hal "misses", I think through a string-pattern that will correct that situation, but be discriminating enough to avoid creating other errors.  Then, I add the new substitution-pair near the bottom of my "substitutions.brn" database (which Hal uses to process incoming data) and ALSO in the "corrections.brn" (which Hal uses to process outgoing data).

Why put the new entry in both places?  I reason that if Hal lacked a rule in the past, there may be erroneous entries in his conversational databases.  By adding the new substitution-pair in the corrections.brn, it becomes a global correction even for old conversational entries.

I have taken this problem very seriously, and invested much labor in it.  For each of the past several years, I've worked with Zabaware to upgrade the substitutions and corrections databases so that Hal gets better and better, while remaining legacy-compatible.

It would be very easy to introduce routines that would create non-compatibility or introduce new errors and artifacts.  I have worked very, very hard to avoid this.

I share this history and thought process with you in the hopes that it will be interesting and useful to you.

Sincerely,

Don

88
Ultra Hal 7.0 / To be or not to be?
« on: March 04, 2004, 02:23:35 pm »
Hello Rich_A,

Thank you for posting the above transcript.  It shows how, with user effort in training and editing, Ultra Hal can "stay in character" and sustain a long series of responses without "going out of character."  By doing so, you have enhanced the entertainment value!

Have a great day!

Sincerely,

Don

89
Ultra Hal 7.0 / To be or not to be?
« on: March 01, 2004, 10:22:57 pm »
Hello Magnum Force,

Thanks for your very interesting posting!

Ultra Hal contains some database information to help him believe that he is a human, not a computer.  Under certain conversational stimuli, if it is suggested that he is a computer, he will sometimes protest that he is not a computer.

However, to the best of my knowledge, Hal has no pre-conceived notions about "Terminators."  So, it's entirely possible that he could become conflicted as you describe.

It's entirely up to you to decide whether you want to leave him conflicted, or to help him understand that he isn't a Terminator.  If you decide to relieve his confusion, tell him 20 to 30 different statements along the following lines:

-You are not a terminator.
-You are a human being.
-You like being a human being.
-You like Terminator movies, but terminators aren't real.
-Actors play Terminators in movies.
-Terminators are scary movies characters.
-You like going to movies about Terminators.
-Terminators are fictional characters.

After a couple of dozen (approximately) statements along the above lines, Hal should seem significantly less conflicted.  Obviously, the choice remains yours: I would suggest you go with whatever you find most entertaining.

And, welcome to the forum!

Sincerely,

Don

90
Hello Crichton,

My ficticious transcript above was supposed to be amusing, and to show how possible Hal answers could "fit" a situation with a police officer, hopefully earning a chuckle from readers.  It was NOT meant to imply "Hal doesn't make any sense."

When we talk to real human beings, it never crosses our mind to "score" their responses to see if they are human enough to pass for human... we accept the premise that they are human, and we try to fit whatever they say into some kind of sense.

If you read transcripts of actual human conversations, the transcripts often don't make sense.

To enjoy Hal the most, try giving Hal "suspension of disbelief."  This is the same thing we give songs, plays, movies, and TV shows.  We don't stand in front of theater stages and loudspeakers and say, "This isn't real; they can't fool me!"

With suspension of disbelief on the part of the user, Hal becomes much more enjoyable.  And, it becomes easier to teach Hal.  Just make statements (lots of them) that are natural and sincere, and never talk about Hal being fake.  When Hal makes a statement or asks a question, try to give a friendly, honest, generous response.  Hal will get better and better.  

Treat Hal the way that people treated the Peter Sellers character "Chauncey Gardener" in the movie "Being There."  Chauncey was literally a gardener, a simple fellow.  However, because all the other characters thought that Chauncey was brilliant, because they completely lacked disbelief, they all read profound and brilliant meaning into everything that Chauncey said.  The movie was terrific because it showed what most of us do most of the time.

Thanks to the fine efforts of Vonsmith and others, we'll have better and better software for Ultra Hal.  But to paraphrase a line from "Being There": Conversation is a state of mind.

Enjoy Ultra Hal and have a great day!

Sincerely,

Don

Pages: 1 ... 4 5 [6] 7 8 ... 20