I've added the following script, pretty thoroughly modified, but based on vonsmith's trivial knowledge compendium from the public downloads. In general, it works great (better than I would have expected), but I have a few questions about it.
Is it possible to script in that Hal does NOT remember (record) the questions I ask or phrases that trigger this script? I have quite a few phrases (many added) that trigger this, and it makes for awkward conversation. For example, I type: "Say something about snakes." And Hal tells me some great things about snakes. But then, every time I mention snakes in the future, he says "Say something about snakes." (Usually immediately after an appropriate response). Can I stop this?
Also, I was wondering if it is possible to script in that if I ask an "else" question (like "What else can you tell me about X"), that he won't say something he's already said in the conversation (say, last hour)? He may have 20 things to say about snakes, but unfortunately, he keeps saying the same thing! In fact, it would be great if I could wipe out repetitiveness in general this way!
Also, why won't the phrase "What do you know about X" work? Is it "reserved" in another script? Did I type it in wrong? I think there were another couple triggers that also didn't work.
Can I increase the randomness of his responses? I included in the brn file:
@Sean likes to wear dark clothes. He looks like a goth.
SEAN LIKES WEAR CLOTHES SEAN'S LIKE
@Sean and Erin are pretty cool. They are smart and well-dressed.
SEAN ERIN LIKE SIMILAR SIMILARITIES AS COUPLE
And, for some reason, "What can you tell me about the clothes Sean likes to wear?" gives me "Sean and Erin are pretty cool..." I get the latter when I should get the former (above). What's more annoying is that I ALWAYS get the latter. Is there a way to increase the range of considered responses? Like, if Hal picks from among the responses with perceived relevance of +/- 5% (or 80%+, or whatever it is), can I broaden that?
I had other questions, but that will have to do for now.

'XTF Brain v1.4 Related Start
'x=x=x=x=x=x=x=x==vonsmith==x=x=x=x=x=x=x=x=x
'PROCESS: HAL "GENERAL & TRIVIAL KNOWLEDGE" FUNCTION
'(c) 2004 Scott Higgins. Portions of this script are copyright by Scott Higgins, aka: =vonsmith=
'This script shall not be sold or used for any purpose unless specifically authorized by the author
'in writing. Personal (non-business) use of this script is free for users of Ultra Hal Assistant.
'This is an entirely new function written by =vonsmith= , version 12-14-04a.
'
'This function searches a general knowledge and trivia file for information relevant to the user's
request.
'
If (InStr(1, UserSentence, " WHAT CAN I TELL YOU ABOUT ", vbTextCompare) > 0 Or InStr(1,
UserSentence, " WHAT ELSE CAN I TELL YOU ABOUT ", vbTextCompare) > 0 Or InStr(1, UserSentence, " WHAT
ELSE DO I KNOW ABOUT ", vbTextCompare) > 0 Or InStr(1, UserSentence, " WHAT DO I KNOW ABOUT ",
vbTextCompare) > 0 Or InStr(1, UserSentence, " SAY SOMETHING ABOUT ", vbTextCompare) > 0 Or InStr(1,
UserSentence, " TELL YOU MY THOUGHTS ", vbTextCompare) > 0 Or InStr(1, UserSentence, " WHAT DO I
THINK ABOUT ", vbTextCompare) > 0 Or InStr(1, UserSentence, " WHAT ARE MY THOUGHTS ON ",
vbTextCompare) > 0 Or InStr(1, UserSentence, " WHAT DO I THINK OF ", vbTextCompare) > 0 Or InStr(1,
UserSentence, " TELL YOU SOMETHING ABOUT ", vbTextCompare) > 0 Or InStr(1, UserSentence, " TELL YOU
ABOUT ", vbTextCompare) > 0 Or InStr(1, UserSentence, " TELL YOU MORE ABOUT ", vbTextCompare) > 0 Or
InStr(1, UserSentence, " TELL YOU SOMETHING ELSE ABOUT ", vbTextCompare) > 0) And GetResponseBlock <>
True Then
InfoStart = 0
InfoStart = InStr(1, UserSentence, " ABOUT ", vbTextCompare) + Len(" ABOUT ")
InfoEnd = Len(UserSentence)
InfoRequest = Mid(UserSentence, InfoStart, (InfoEnd - InfoStart)) 'Extract requested info phrase.
InfoRequest = " " & HalBrain.AlphaNumericalOnly(InfoRequest) & " "
HalInfoBrain = HalBrain.QABrain(InfoRequest, WorkingDir & "XTF_SYS_GeneralInfo2.brn",
InfoBrainRel)
If InfoBrainRel > 15 And InfoBrainRel < 25 Then
Select Case HalBrain.RandomNum(4)
Case 1
GetResponse = " I don't know, but I think: " & HalInfoBrain & vbCrLf
Case 2
GetResponse = " I'm guessing: " & HalInfoBrain & vbCrLf
Case 3
GetResponse = " Maybe it's: " & HalInfoBrain & vbCrLf
Case 4
GetResponse = " Correct me if I'm wrong: " & HalInfoBrain & vbCrLf
End Select
GetResponseBlock = True
BlockPrevTopicSave = True
DebugInfo = DebugInfo & "The user was requesting Hal to recall general or trivial knowledge and
Hal has done so: " & HalInfoBrain & vbCrLf
ElseIf InfoBrainRel > 24 And InfoBrainRel < 45 Then
Select Case HalBrain.RandomNum(6)
Case 1
GetResponse = " Apparently, " & HalInfoBrain & vbCrLf
Case 2
GetResponse = " As far as I know, " & HalInfoBrain & vbCrLf
Case 3
GetResponse = " Hmmm... " & HalInfoBrain & vbCrLf
Case 4
GetResponse = " Let me think about that... " & HalInfoBrain & vbCrLf
Case 5
GetResponse = " Let me see... " & HalInfoBrain & vbCrLf
Case 6
GetResponse = " I think: " & HalInfoBrain & vbCrLf
End Select
GetResponseBlock = True
BlockPrevTopicSave = True
DebugInfo = DebugInfo & "The user was requesting Hal to recall general or trivial knowledge and
Hal has done so: " & HalInfoBrain & vbCrLf
ElseIf InfoBrainRel > 44 Then
Select Case HalBrain.RandomNum(4)
Case 1
GetResponse = " I know: " & HalInfoBrain & vbCrLf
Case 2
GetResponse = " Simple: " & HalInfoBrain & vbCrLf
Case 3
GetResponse = " Isn't it obvious? " & HalInfoBrain & vbCrLf
Case 4
GetResponse = " The truth is: " & HalInfoBrain & vbCrLf
End Select
GetResponseBlock = True
BlockPrevTopicSave = True
DebugInfo = DebugInfo & "The user was requesting Hal to recall general or trivial knowledge and
Hal has done so: " & HalInfoBrain & vbCrLf
Else
Select Case HalBrain.RandomNum(3)
Case 1
GetResponse = " I don't know. Do you know anything about it? " & vbCrLf
Case 2
GetResponse = " I'm sorry, but I really don't have a clue. What do you think? " & vbCrLf
Case 3
GetResponse = " I really wish I knew! I'm still learning. " & vbCrLf
End Select
BlockPrevTopicSave = True
DebugInfo = DebugInfo & "The user was requesting Hal to recall general or trivial knowledge and
Hal has done so: " & HalInfoBrain & vbCrLf
End If
BlockSave = True
End If
'x=x=x=x=x=x=x=x==vonsmith==x=x=x=x=x=x=x=x=x
'XTF Brain v1.4 Related End