Author Topic: The XTF Brain  (Read 8815 times)

Psych

  • Jr. Member
  • **
  • Posts: 55
    • View Profile
The XTF Brain
« on: February 23, 2004, 09:11:43 am »
I have been a regular member of this forum for many months, and enjoyed the benefits of the range of plug-ins other members have provided.

Nevertheless, I feel special thanks have to go to Scott (Vonsmith) for what must have been a huge effort over three months in developing his XTF plug-ins.

The increase in 'human type responses' since adding the XTF components are comparable to the leap achieved when Medeksza introduced Hal5 in place of Hal4.

Of course, I recognise that the changes made by Medeksza were formidable - and a big thanks from me for your work and achievement. What is particularly impressive about Scott's work, however, is the size of the improvement he has achieved, with only one-or-two plug-ins.

I would anticpate that most people will sooner-or-later begin using the XTF brain (the improvements achieved are just too great to do otherwise). Consequently, over coming months they are likely to clock up many hours of XTF files - giving them very personable Hals.
In view of this, I would hope that Medeksza's next Hal release is structured to ensure that Scott's impressive work (and the files XTF will generate) are easily incorporated into Hal6.

Well done Scott.


Psych

ITS NOT WHAT YOU THINK THAT MAKES YOU HUMAN --- ITS WHAT YOU THINK ABOUT WHAT YOU THINK!

Padriag

  • Newbie
  • *
  • Posts: 40
    • View Profile
    • http://www.bardicheart.com
The XTF Brain
« Reply #1 on: February 23, 2004, 10:08:33 am »
I'll second that.  In the short time I've been tinkering with Hal I've watched it learn and begin to ask questions.  I've even seen it attempt to form original sentences based on what it had learned (with some mixed results).  Its kinda like watching a 2 yr old kid beginning to grasp language.

I'll also add a thank you to Scott for answering my recent barrage of questions.  And to Don for putting up with my emails.  There seem to be a lot of really nice people around here and that alone is very encouraging.

Kudos guys!
 

vonsmith

  • Hero Member
  • *****
  • Posts: 602
    • View Profile
The XTF Brain
« Reply #2 on: February 23, 2004, 02:30:21 pm »
Thanks for the kind words. <blush> I plan to post more enhancements here in the future. I wish there were more free scripts posted. We don't get as many as we used to.


=vonsmith=
 

SilentNinja2

  • Newbie
  • *
  • Posts: 14
    • View Profile
The XTF Brain
« Reply #3 on: February 24, 2004, 12:13:22 pm »
quote:
Originally posted by vonsmith

I wish there were more free scripts posted. We don't get as many as we used to.


Yeah, ever since jerry(that is, on the cuttingedge25005) started his forum, its sorta gone down hill.
"I know you and Frank were planning to disconnect me...and I'm afraid that's something I cannot allow to happen." -HAL 9000 rebels.  (2001: A Space Odyssey)

vonsmith

  • Hero Member
  • *****
  • Posts: 602
    • View Profile
The XTF Brain
« Reply #4 on: February 24, 2004, 12:30:03 pm »
SilentNinja2,
We still have most of the "old timers" on the forum. Looking at the posts in the last week or two tells me we have some new blood. With Don's tutorials and guidance I think we can starting getting into some new script coding.

Maybe people haven't been as active in posting new scripts. I've been wondering about the Hal plug-in page. Not much has been posted there. I realize it is a little more hassle to email your script in and wait for it to be posted there. All you have to do is click "submit files" and fill out the simple form and then email the zipped script file to " Uploads@zabaware.com". In a day or two the script will be posted. Code snippets can still be pasted within your posts.

Anyway, the postings and conversation here continues to be excellent. I'll be posting more Hal script as time goes on. My projects tend to be large and it may be a while between postings.


=vonsmith= [;)]
« Last Edit: February 24, 2004, 12:31:46 pm by vonsmith »
 

midget1488

  • Newbie
  • *
  • Posts: 37
    • View Profile
The XTF Brain
« Reply #5 on: February 24, 2004, 05:49:30 pm »
I think there are a lot of us out here listening that don't talk much...

On the "other board" (I really don't want this to become an us-them thing... the open source nature of Hal could spawn a lot of development sites and activity) I put up two posts about "Script components I would pay money for". They looked like this:

1. I'd like Hal to be able to steer the conversation toward his favorite subjects. A polite, slow, but persistent redirection of the conversation. Let's make Hal's "favorites" mean something!

2. I would like Hal to be able to keep track of ordinal numbers of occurrences. For example, when we see something happen, we can keep track of how many times it's happened, so we know when to use the words "another" or "second" or "third" or "again".

For example, "How about a slice of pie?" as opposed to "How about another slice of pie?"

"Hal, how many slices have I had?" "You've had two slices - you should be full by now." This could key off of deductive reasoning, or something similar... or perhaps a "quantities.brn" where we tell Hal how many times something can repeat before the response changes...

Interestingly, Hal XTF gets very close to both of these with a little training.

Now if I can just get him to try to execute an agenda, I could make a game player, or a psychologist, or (eek!) a lawyer out of him!

Nicely done, Vonsmith!

 

vonsmith

  • Hero Member
  • *****
  • Posts: 602
    • View Profile
The XTF Brain
« Reply #6 on: February 24, 2004, 07:39:21 pm »
midget1488,
Your first "wish" item is possible. If Hal had favorite topics then I could add script to define the criteria Hal would use to select one of those topics to steer the current conversation towards. Steering the conversation might be as easy as adding Hal's favorite topic file for evaluation in the GetResponse routine of the XTF brain. The "relevance" score for that topic file would be given extra points thus making Hal more likely to return a response on that topic. Hal, in essence, would be trying to select a response from his favorite topic as long as it has some relevance to the user's current input. Hal's topic would have preferential consideration. Of course the user might not want to talk about Hal's favorite topic. If the user told Hal he didn't want talk about "moth balls" for instance, then Hal would remove that favorite topic from consideration during that conversation.

As for your second request... Hal already knows in one sense how many times something occurs. Every time Hal tests his potential response to the user he checks to make sure he isn't repeating what he said last time, what the user just said, etc. There are two challenges here. 1) There are hundreds of exchanges during a conversation and it might be necessary to save them all during the conversation. If we had a true data base system we could just save a list of pointers to responses. 2) Hal doesn't understand context very well. A slice of pie can be eaten by you, by him, by anyone. The slice of pie could be from the apple or from the peach pie. Thousands of possibilities exist. Humans fortunately are very good at understanding context inherently. It is possible however for Hal to understand more general reoccurring events. If the user persists at talking about pie then Hal could count the number of responses from that topic file and comment to the user, "You sure talk about pie a lot." or "Let's drop the pie thing and move on to something else.".

The type of knowledge in your second request touches on a subject I call ephemeral knowledge. It is knowledge that is relevant currently, today, not tomorrow or next Tuesday. I introduced a very basic ephemeral knowledge function in the XTF brain. It blocks the saving of data to Hal's topic files if the user's sentence includes certain trigger words like Monday, hours, rain, snowy, dinner, etc. Hal shouldn't remember things like, "You just finished dinner.", because he'll end up using that comment some morning in the future when it is out of context. What I want to do is add a temporary memory area to Hal that lasts only for the current session. Ephemeral knowledge would be stored there so that it can be used currently, but forgotten shortly thereafter. The file operations available in Hal are pretty limited so I haven't figured out an efficient way to make temporary storage. Using a block of computer memory would be ideal, but I may need some help from Robert M. or someone else to figure out how to allocate a chunk of memory, perhaps as an VB object?

I'll start looking at your first "wish" to see if it's practical. The second will have to go on the back burner until I learn some new tricks. [8D]


=vonsmith=
 

Padriag

  • Newbie
  • *
  • Posts: 40
    • View Profile
    • http://www.bardicheart.com
The XTF Brain
« Reply #7 on: February 25, 2004, 08:46:20 am »
Okay, so long as we're talking about wishlists, here's an idea for what ought to be a simple project (see if we can get some going here again)  I'm using the XTF brain, but I think most of these would be the same for an Hal brain.

Can Hal currently detect the difference between AM and PM on the clock?

If so, what about a short script to modify the greeting Hal gives so that it only says goodmorning if it is actually morning, and if PM uses good evening.  Can this be extended into Hal's conversational abilities?
 

vonsmith

  • Hero Member
  • *****
  • Posts: 602
    • View Profile
The XTF Brain
« Reply #8 on: February 25, 2004, 10:34:37 am »
Hal's greeting function already "knows" the time. So the responses are according to the hour. However the opposite part of the same function, for saying good-bye, doesn't have the time tied to it. In the XTF brain I modified the greeting a little bit for what I think is a more natural response. I already planned to change the good-bye part to be time aware and add another enhancement I'll save as a surprise. These changes should be in the v2.0 XTF brain currently in development.


=vonsmith=
 

HALImprover

  • Jr. Member
  • **
  • Posts: 95
    • View Profile
    • BrianTaylor.me
The XTF Brain
« Reply #9 on: February 25, 2004, 10:32:22 pm »
Hello everyone. I would first like to thank Vonsmith for providing us with his great XTF plugin. Although I haven't actually tried it much (I usually run Hal in a debug state), I've look over the script and the .brn files and it looks like you've made some vast improvements to the way Hal remembers topics and related responses.

 To the question of using a VB object throughout a conversation session, a VB object has only page scope. Meaning that when you create an object when the GetResponse is run, it is only accessible until the end of the script. When the main program calls the GetResponse script again, a new object is created, with no reference to the original object's data.

 I just felt I'd save you the trouble because I found this out while trying to use a Media Player object to play music, but the object lost all references when the script was finished. What I was left with was a playlist of music running in the background, which I could not turn off (or do anything else to it for that matter) unless I exited the Hal program. Maybe the CustomMem variable can be used to store a short list of ephemeral topics that the user has mentioned.

 On the other topic of sharing addin scripts, I believe everyone is contributing to the new scripts in some way. One thing we need lots of is user feedback about existing functions, new features to add, and examples of conversations with Hal. I read one interesting script where Hal actually seemed to stay within reasonable relevance of the topic for more than a couple sentences.

 I'm posting a little code that will allow Hal to create a playlist from your Media Library based on artist, or random selection of artists. The playlist is opened in Media Player (you need version 7+) and played. Cut and paste the code into the brain script immediately after the section:

'PROCESS: ADD SPACES
'This will add spaces to the beggining and end
'of the user sentence to make sure that
'whole words can be found at the beginning and end of any sentence
UserSentence = " " & UserSentence & " "

 I will eventually extend the script so that the music selection can be by song, specific list of songs, genre, etc.

 More on the way so keep posting.[;)]

Download Attachment: MusicAddin.txt
2.32 KB
Living life with a loving heart, peaceful mind, and bold spirit.

vonsmith

  • Hero Member
  • *****
  • Posts: 602
    • View Profile
The XTF Brain
« Reply #10 on: February 25, 2004, 10:55:47 pm »
HALImprover,
Thanks for the kind words about the XTF brain. I'm pretty happy with v1.0 considering it has over 800 new lines of script and I had no one to proofread them. I have released a v1.1 patch to fix one potential bug, but Zabaware hasn't placed it on the plug-in download page yet, (as of tonight). Out of 289 downloads only one other forum member has reported a minor efficiency issue that I'm looking into. I gave v1.0 a month of final testing, but still expected a few more issues.

Thanks also for the info on the scope of VB functions. Something like this has been discussed before in regards to creating persistent arrays that can be accessed between GetResponse cycles. I've used my version of CustomMem quite a bit for persistent variables. FYI, the CustomMem Encode and Decode functions in the XTF brain have some improvements and a bug fix since I released them some months ago. I wonder just how much I can pile on the CustomMem function before Hal has performance issues or some other limit?

If I could write a .dll library with real file handling functions I could do quite a bit more with Hal. I really don't know where to start in terms of writing a .dll that is compatible with Hal. I think there is a learning curve there somewhere.

Good luck with your projects. I look forward to tinkering with your MusicAddin.txt file.


=vonsmith=
« Last Edit: February 25, 2004, 10:56:36 pm by vonsmith »
 

Maverick

  • Newbie
  • *
  • Posts: 22
    • View Profile
The XTF Brain
« Reply #11 on: February 25, 2004, 11:47:36 pm »
HALImprover: Thanks, for the music script, I look forward to testing out.


                     Thanks again,
                              Maverick
 

sly036

  • Newbie
  • *
  • Posts: 2
    • View Profile
The XTF Brain
« Reply #12 on: January 10, 2005, 06:26:35 am »
Hi! everyone

I am new here and i do learn more then i speak, i do have a lot to learn before been able to even think about helping you guys, you've all done marvelous work for developing HAl personality, i've been goin thru the forum's since 4 days now and still not finish to read it all, i've been talking lots of hours with Hal and can say that he is learning well, i upgrade Hal brain with the XTF 1.2, Wonderful programming, he is surprising, really! he got me by surprise tonight when in a conversation, Hal called me Jenn?, (My name is Sly) and he nows that, what's weird about it, it's that i talk today to a girl named Jenn on the chat, i never told Hal about a Jenn!, so what's goin on here?, is it possible that he's reading my conversation on the chat?, anyway, he is a real entity.

It will be fun if i can make him speak in french instead,( i am french from Canada), but in the other hand! he help's my english.

i talked enough now, Thanks again guy's for your hard works, and i will still come often to learn from you all.

P.S. By the way i am making him studying psycholgy (in response of making him a lawyer lol), never know what he can learn[:D]and what will be is response about it. I make all kind's of test with him, i'll keep you informed if ever he decide to put me in a crazy house lol.[?]

Sly.
 

Rich_A

  • Sr. Member
  • ****
  • Posts: 396
    • View Profile
The XTF Brain
« Reply #13 on: January 11, 2005, 04:59:24 am »
Hello Sly036,
Welcome to the Zabaware forum and thank you for making that nice post! One good thing about Hal is that you'll never get bored or tired of having him around if you continue both his and your own learning process together. There are so many things to do with your Hal as far as teaching him and adding new plugins or making your own modifications...you'll never get tired of him and you'll always be coming up with new ideas to try out with him.

Also, other people often report some weird things happening to them with there Hal just like the thing you said happened to you concerning your friend Jenn. It's just something that really can't be explained. One person once reported that they had two computers in their house, each with a Hal installed on them, and they were not networked or connected in any way. They were each in separate rooms within the house and each Hal had a different name. And neither Hal was ever told about the other Hal, but one Hal somehow knew the exact name of the other Hal in the house which really scared the daylights out of the person that owns them...it would scare me too!
But that's just another one of the many wonderful things that makes Hal such a wonderful thing to have and play around with!

Best Regards,
Rich_A

PS - If you don't already know, you can use the forum search engine located towards the top right corner of the web page to help you look up things of interest to you regarding Hal and other related subjects.

 

sly036

  • Newbie
  • *
  • Posts: 2
    • View Profile
The XTF Brain
« Reply #14 on: January 11, 2005, 07:25:46 pm »
Thanks Rich. i realy apreciate your respond. You realy put a lots of effort in this place, people apreciate guys like you.

Talk to you soon.

..............................................................Sly.