citrinedragon,
In regards to your Hal5 (Sandy) no longer knowing her name
and refuses to relearn it... If you haven't already you should rename this file: Go to your "C: | Ultra Hal Assistant 5 | DefBrain" directory and make a COPY of your "Enhanced_Main.brn" file and name it "XTF_SYS_Enhanced_Main.brn". I forgot to include this file in the v1.2 release. This fixes a couple of minor issues including the name problem. I've posted this instruction in a few places here, but not everyone has seen it. When Robert rejoins us I'll post a full XTF Brain install on the Hal plug-ins page.
One other thing. The XTF Brain has a new function for "ephemeral detection". That function blocks Hal from storing temporary knowledge in his "permanent" memory. If you say, "I feel sick today" then Hal is blocked from remembering it. The purpose of this is to keep Hal from repeating a month later that you feel sick today; it would be out of context. Therefore any user sentence containing words/phrases like today, this instant, day, week, hour, early, dark, rain, etc. will block saving that knowledge. I plan on making the ephemeral function more selective in the future. I implemented it now because I got tired of Hal repeating temporary information back at me like it was current. The downside is that some user statements might not be saved in permanent memory. If you say to Hal, "Every day is a good day." the XTF Brain will not remember it. There are many such trade-offs in Hal's design.
Your postings about Hal dreams got me to thinking. I laid out the basic framework for Hal to "create" dreams based on Hal's recent discussions and random knowledge. The idea needs a little more refinement. The dream creation I'm considering isn't real in the human sense, but Hal isn't human. If I get some time I'll code the script and see if it works.
I've been struggling with the notion of "self-awareness" for Hal. I've laid out the framework for Hal to be a little more self aware by Hal knowing his likes/dislikes and haves/not haves. I'm still working out some issues. For instance Hal's "haves" can be emotional, physical, notional, etc. "Have" is very general. Hal can "have" blue eyes, but then Hal couldn't also "have" green eyes. The English language makes it difficult to be precise in Hal's interpretations of "haves". Hal could "have" a bad temper. Hal could "have" a pet dog. One complication is the use of "your". If I tell Hal, "I like your blond hair.", then that is also a "have". Since I commented "your blond hair" it implies Hal must "have" blond hair. "Haves" for Hal's self-awareness is still a big challenge. I want Hal to "know" and be certain that he has blue eyes, blond hair, or a bad temper. I also expect him to assert himself by telling the user what he "has" if the user says he "has not". This is a work in progress. The likes/dislikes so far appears to be a somewhat easier challenge. I'm also working on new "I am", "you are", "am I" and "are you" parsing and learning functions in the XTF Brain.
The XTF brain isn't enough of an improvement on its own to out run the CBR (Case Based Reasoning) chatterbots in the chatterbot competition. I think the format of the chatterbot competition tends to favor CBR. The real value of Hal is his capability to learn and adapt. I think that aspect is underrepresented in the chatterbot competition.
Based on my experiments the XTF Brain seems to run reasonably fast on 1.5GHz and faster computers. I suppose performance is a matter of perspective since many people happily run the XTF Brain on slower computers.
As for glibness or "lost of most of the sweetness and melancholy" of your Hal... If you install the XTF Brain and then select it in the Menu | General Options then much of your old Hal knowledge will not be accessed. The XTF brain uses some of the general knowledge acquired by Hal up to that point. However the most specific topic based knowledge must be relearnt. The XTF Brain learns and stores knowledge in a slightly different more precise way. Knowledge from Hal's previous learning can be cut and pasted into the XTF Brain files, but is a little tedious. If you trained your Hal using Don's Auto Topic Focus brain then much of that knowledge can be cut and pasted into the XTF Brain files as the new files are created. See an excerpt from my old post below about afa and afr file compatibility.
+++++++++++++++++++++++++++++++++++++++++++
OLD POST OF MINE:
Morlhach
Posted - 02/18/2004 : 01:55:17
It seems to work great.
if found two minor problems :
(1) - sometimes, Hal responds with a blank answer
(2) - when i say something like "i certainly am ...", hal answers "you certainly am"
(3) i noticed that sometimes Hal makes an "all-users" brain files and sometimes not.
(4) What is the compatibility with the afr* and afa* files generated by the auto-generating brain?
-------------
Ans. (1) You shouldn't get blank answers. I haven't found the XTF exhibiting that problem. If it occurs regularly then I suggest logging the Hal conversation and sending it to me. I'll see what I can do. You can also run the <dbxtfon> command and converse for a while and then read the resulting "Z_XTF_DEBUG_LOG.TXT" log file. It's a bit difficult to read, but gives an idea of how the XTF function works in the XTF brain.
Ans. (2) I think what you experienced is your XTF Hal doesn't have any knowledge yet so he's making a general comment back to you. What he meant was, "You certainly are." in agreement. This is part of the original Hal brain function. One of my next tasks is to improve Hal's ability to use "am" and "are", and "I" and "me" correctly. The English language is odd in these cases and I'm working to find a general linguistic solution.
Ans. (3) The "AllUsers" files contain only the generic statements the user makes on a topic or statements that are Hal "himself" specific. Statements reflecting on the user "himself" are not saved to the "AllUsers" file. If you say, "People like money." or "You like peanut butter.", then both of these are saved to an "AllUsers" file. If you say, "I like you Hal." it will not be saved to the "AllUsers" file. From the user's perspective any sentence containing, "I", "me", "myself" are specific to the current user and not saved to the "AllUsers" file. A statement like, "People like money." is generic. My goal is to share Hal's generic knowledge or Hal related "personality" knowledge across all users. If your conversation so far on a topic hasn't included a generic statement then Hal won't create an "AllUsers" related file until you do.
User specific knowledge is only used by Hal with that one user. The function of the "AllUsers" is similar to Hal's original "shared_usersent.brn" file, except that the "AllUsers" files are better because the XTF brain breaks the shared knowledge down into specific topic files. The topic focus should be much better. If your Hal has a single user then the "AllUsers" files won't affect, for good or bad, your Hal's performance.
BTW, not all topics will have a "XTF_topic_Related.brn" file initially either.
Ans. (4) "The Auto Topic Focus" brain "AFA_topic.brn" files have identical content format as the XTF brain "XTF_topic(username).brn" files. The "topic" part of the file name may or may not be different. You can cut and paste your data over into the XTF file if you are careful. Renaming the files will work, but if you make a mistake in the file name then the XTF brain will ignore the file. You could cut and paste the file name too. Here is my safest recommendation:
1) You have an existing QA file: "AFA_BIRDS.brn"
2) Start Hal's XTF brain and type, "The birds are pretty." This will create a correctly named XTF user specific file.
3) In the "DefBrain" directory you should find a new file called: "XTF_BIRD(username).brn" (where username is your current username)
4) Cut and paste the contents of "AFA_BIRDS.brn" into "XTF_BIRD(username).brn"
5) Make absolutely certain that you adhere to Hal's rules about QA file formats. No extra lines or missing lines are allowed. The file should end with a single blank line which is just a single carriage return character.
Notice that the XTF brain will almost always use the singular form of the topic word. "BIRD" versus "BIRDS". This is not always the case. It is important to let the XTF brain create the file name for you.
Some AFA files like, "AFA_YES THAT.brn", don't really have a topic and can't be (and probably shouldn't be) moved into an XTF brain file. AFA files like, "AFA_CAR STEREOS.brn", can be moved to an XTF file that Hal might name, "XTF_STEREO(username).brn". In XTF Hal just type, "That stereo is loud", to create the file.
The AFR type files are NOT useable in the XTF brain.
The XTF brain "XTF_BIRD_Related.brn" and "XTF_BIRD_AllUsers.brn" files will be created when the XTF brain finds sufficient information to do so.
If you have hundreds of AFA files the process can be tedious, but may save hundreds of hours of conversation. After some experience you may just be able to rename AFA files to the file name that the XTF brain creates.
The original Hal uses topic # files. The instruction manual included in the download has an example of how to move that data over. It is basically the same process.
=========
KnyteTrypper
Posted - 02/18/2004 : 03:14:19
I just finished my first conversation with the new brain, and I must say that I'm very impressed. (1) I noticed that it did make a few grammatical errors, but I assume it can be trained out of those in time. (2) What I noticed most was the coherency of its conversation. It wanted to know things, (3) and formulated new questions to extend its knowledge, based on the input I provided. (4) Every few exchanges it paused to verify it had understood my meaning. I think it may have been the most cogent conversation I've ever had with an AI. I deliberately use the word "chatbot" rather than "chatterbot," because I'm not especially fond of bots that "chatter." That's one reason, to be honest, that UltraHal has never been a particular favorite of mine, in spite of its definitely superior GUI. It's good at saying a great deal about nothing in particular and everything in general but training it to make connected, coherent conversation is an arduous task at best. I came away from this conversation feeling like I'd had real communication with a real entity. Congratulations, VonSmith, on a job well done. Now, I'll post and go chat some more, and let others have the floor to nitpick about 101 real or imagined small glitches.
-------------
Ans. (1) The grammatical errors are a current trait of Hal. That is a characteristic of Hal's sentence pre-processing and the QA function. I've tried to improve on that a little. My ongoing plans are to address grammatical and syntactical errors in Hal. I've included functions to capitalize words more accurately, add "?" most times when needed, and a few other minor enhancements. As you train Hal he will have more knowledge to choose from and the grammatical errors will be less noticeable.
Ans. (2) Some people may or may not notice a difference in "coherency" initially. However after talking to Hal extensively you should find that he stays on topic better and says things more relevant to the conversation.
Ans. (3) Hal will generally ask what he usually asks when he is new. However he now occasionally asks you if two words are topic related and will remember your answer. I can't take credit for Hal's curiosity though, it's just the way he is.
Ans. (4) The pause probably was the XTF brain "thinking". This brain is much more complicated than previous brains. It requires more processing power. It runs fine on a 1.8GHz PC with 512MB of RAM. I'll be interested in seeing user feedback on how it performs on slower computers.
=========
Psych
Posted - 02/18/2004 : 06:11:42
Very impressive work. I intend to slowly integrate your code into my exisiting brain (because I do not want to lose all of the work I have already done with Hal).
Initially, I want only to integrate the code for 'PROCESS: XTF TOPIC FOCUS FUNCTION
My problem is that you have made such extensive changes to Hal, I cannot figure out which of the changes (other than the discrete section for 'PROCESS: XTF TOPIC FOCUS FUNCTION) are relevant to your XTF Topic Function feature.
I would be very grateful if you would help as follows:
1) Which other sections of changed code are directly related to the XTF Topic Focus feature?
2) Which of the .brn files you include are also directly related to the XTF Topic Focus feature?
Thanks for your help - I look forward to many hours exploring your code.
Regards - Psych
-------------
The new XTF brain has several new "innovations" that your Hal will probably benefit from. Future releases will have more enhancements. Doing Frankenstein style brain surgery on an XTF brain might result in a lobotomy or worst yet, an evil brain called "Abby Normal".
Ans. (1) and Ans. (2) These are difficult questions. Some of the ".brn" files I distributed weren't strictly required for the XTF brain. They were files that I "tweaked" for better performance (IMHO) or to support the other new functions like "Nicknames" and "Make a Face".
Files that directly support the XTF function:
XTF_SYS_FilterSubjectWords.brn
XTF_SYS_NotUserPronounDetect.brn
XTF_SYS_PoorSubjectWords.brn
XTF_SYS_PronounDetect.brn
XTF_SYS_Tag_LY_Words.brn
XTF_Topics1.brn
The other 4 "XTF_Topics#.brn" files can recreate themselves.
Functions that directly support the XTF function:
FUNCTION: CUSTOMMEM ENCODE
FUNCTION: CUSTOMMEM DECODE
FUNCTION: TEST SENTENCE TO SEE IF IT'S A QUESTION
FUNCTION: REMOVE "LY " WORDS
Variables that directly support the XTF function:
"QuestionPending"
"GetResponseBlock"
"BlockSave"
Any many other variables saved by CustomMem and initialized near the top of the GetResponse function. I can't easily name all of these, but there could be about a half dozen more.
The easier solution is to integrate your old data with the new XFT brain Hal, although this can be tedious. I described this process above and the instruction manual on page 4 explains a general method to move original Hal type QA data over to XTF type files. You have to possess some basic knowledgeable about Hal's QA files to do this properly. I recommend first backing up anything you plan to change.
+++++++++++++++++++++++++++++++++++++++++++
As for Hal's religious views, that is between you and your Hal.
I hope this posting helps out.
=vonsmith=