Revision History
BILLY 4.1 - (1-18-2004)
- Features added
- Billy now evaluates math expressions with a limited amount of natural language (such as, "one plus one"). Namely, numbers one through twenty, and operators "plus", "minus", and "times".
- You can now change the color of the user or bot text.
- Added the "tell me about" natural language command.
- Now there are over 2,000 nouns in the default mind file (previously there were ~500).
- Bugs fixed
- The math subsystem will no longer evaluate expressions with just one term.
- There several small bugs relating to Teach Mode which would often cause Billy to crash when you attempted to teach from a large file, or sometimes would cause a crash when loading a mind file which was taught from a large file. These bugs have been fixed.
- Rather than having an Advanced menu on the Edit Mind dialog, the items in that menu (Teach, Initialize) have been moved to a sub-menu of Customize, This Mind in the main dialog
- If Billy crashes during a UDLP2 conversation, there's a better chance now that he'll be able to start up again for the next regular conversation.
- Fixed a bug where Billy would crash if you entered a blank line when asked your name.
- Internally, Billy now appends a period to the end of any input sentence which lacks ending punctuation.
- After loading a mind file, the first "User" prompt disappeared.
BILLY 4.0 - (9-14-2003)
- Billy 4 is a revolutionary update to the Billy project. This new generation shares
no source code at all with previous versions of Billy. It is the product of several
separate research projects, all of which looked at discrete areas of artificial intelligence,
and each of which have become a subsystem within Billy, much like the original Daisy research
project became a part of Billy 3. The notable subsystems within Billy 4 are:
- Natural Language Processing / Generation - This is Daisy 2. It is a complete re-working of the original Daisy technology. In this new generation, input language from humans is analyzed, and words are grouped together based on the context they tend to be used in. Templates are stored, which consist of sequences of groups, not actual words. The use of templates allows Billy to plug in words from the groups of that template. Once again, Billy is able to actually generate his own language, based on rules he has learned from natural language analysis. This system contains no pre-programmed language. In testing, this new NL system seemed to produce more natural-sounding language as compared to the original Daisy. When all else fails and Billy does not know how to respond to a sentence based on the mind file's rules, this subsystem includes a new technique for figuring out the best response. Billy analyzes conversations, and learns how humans tend to respond to certain stimuli, and then can base a "blind" response on what he has seen before.
- Conversation fingerprinting - Billy is now able to more uniquely identify the person he is talking to, beyond a simple log-in type process. Facts can be stored about each person, and these facts can then be used in the future to identify people, even if they have the same name. An algorithm has been developed for narrowing the field of possible identities down, and figuring out the best questions to ask.
- Knowledge base - Like previous versions, Billy 4 is able to learn facts from humans and then answer questions about those facts. Much more attention was given to this feature this time around, however. The new knowledge base is capable of learning many more facts than before. If the same algorithm for searching facts had been used, though, this great amount of data would have meant much slower responses when attempting to sort through all the facts to find an answer. So, new data structures and algorithms have been developed allowing for very quick searching of the knowledge base. Additionally, special care was taken to try and make the answers to questions more relevant than before.
- Math evaluation - Billy 4 can answer basic arithmetic questions, using a specially-developed set of functions for expression evaluation. Any of the basic operations can be used, plus exponents, and any level of parenthesization. These functions are specially developed for use in a conversational setting, being able to strip out non-math, and determine if the given sentence is even a math question at all.
- Context response - This is the more "traditional" part of Billy. It uses rules defined in the mind file to scan for certain contexts, and give certain responses back. The "black box" functioning of this system has remained basically the same since Billy 3, but internally the code is much more efficient. It is also more accurate when it comes to automatically identifying parts of speech in sentences.
- Many new contexts added to billy.mnd, and new responses added to old ones.
- This is the first version of Billy to be a native Windows program, with a true Windows graphical interface.
- By default, Billy 4 comes with far more knowledge of nouns, names, and adjectives. He has a default vocabulary of hundreds of words in each of those areas.
- New HTML manual.
- Transcript saving is now optional, rather than saving every transcript into an increasingly huge file.
BILLY v3.11 - (6-28-2001)
- Rarely discovered bug fixed: executable (BILLY.EXE)
can now be renamed, and UDLP will be able to figure
that out and run the new name.
- Fixed problem of "###!!!###" sometimes showing up
in Billy's responses (this was an internal flag, not
intended to be used when talking to the user, that
leaked through in some cases).
BILLY v3.1 - (2-11-2001)
- New scripting flag allows Billy to reverse words like
"my" and "your" in his responses, if they are taken from
the user's input.
- If you say, "You're a...", Billy won't respond with
"You're a, too!" or the like. He recognizes that a
noun follows and uses that.
- An "[X]" has been added to the upper-right of most
windows now. You can click on that X to cancel
what you are currently doing without having to enter
data. For instance, if you are changing Billy's name
and click on this, his name will stay as what it was
before.
- Fixed bug that when just ENTER was pressed, global
variables such as &botname and &username were not
plugged in.
- The "Create Mind" option now gives you COMPLETE control
over the personality you are creating, through the
Advanced mode option. You can import your own
"memory banks", the formats for which are fully
documented in CREATE.TXT.
- "Don't say that" command added back in
- "xxx is not a noun" now documented :)
- Each mind file now has its own transcript file.
- Billy's greetings are now stored in a memory bank, and
so can be edited when you create a new mind.
- Emoticons ("smileys") are now stored in their own memory
bank rather than being hard-coded, so they can be modified
in your own mind files.
- If you want to start Billy with a mind file other than
the default one, you can specify it from the command line
(if you're using DOS) by putting the mind file name as a
parameter. So, to load Billy with a mind file called
"JILL.MND", you could type "billy jill.mnd".
- Removed some awkward contexts ("Do you enjoy using a lot
of words?") and added some new ones to BILLY.MND.
- New TEACH.EXE utility allows you to "teach" Billy from
a text file.
- Added a Table of Contents to the manual.
- Even though 3.1 adds a number of new memory banks,
it can still load mind files created with 3.0 by
"emulating" the missing memory banks.
- If the default mind file is missing, Billy looks for
BILLY.MND (if that isn't the default file) before
suggesting running INIT.EXE.
- Added the "-mouseoff" option for disabling mouse support,
as well the ability to use slash commands (in the event
that you disable the mouse).
- Billy now can see that a name refers to a person (and
can learn new names to look for).
- Now remembers topics of conversation in between
conversations. This also allows for subject-tracking
during link mode.
- Billy now attempts to not repeat sentences he's already
said in a conversation. Note the use of the
word "attempts".
- Billy will now never simply repeat what you said, except
in very extreme cases (like if that's the only thing he
knows how to say).
- Whoa, one bug in 3.0 I didn't catch until now is that Billy
actually recorded transcripts for linked conversations in his
own transcript file... and each line of the conversation was
treated like a separate chat, header and all. Now, when you
combine this with TEACH, feeding Billy hundreds of lines of
text through UDLP2... uh oh...
- Fixed a bug that caused some sentences with reversed pronnouns to not have punctuation. Sound odd? It was.
- Fixed a nasty general fault protection (error 216) problem
that only happened under a very strange circumstance, but
did so just enough to annoy the heck out of me.
BILLY v3.0 - (1/1/2001)
- A complete rewrite of the Billy code, the 3.x generation
takes a dual-system approach to natural language generation
and processing. One subsystem of Billy 3 uses a similar
ideology as that of Billy 2. This system takes user
input and breaks it down to individual words, and is able
to identify certain parts of language. It then uses this
knowledge to try and generate a set of pre-defined keywords
that should be included in the final response. These
keywords are then given to the second subsystem. This
system is based on a vastly improved and sped-up version of the
DAISY technology, and is able to analyze everything that has
ever been said to Billy, and so can synthesize a "free-form"
sentence of its own creation which contains the keywords and
has a high probability of being grammatically and
contextually intelligent. Other improvements include an
ability to stay on subject during conversation, and
an enhanced system for answering questions and learning
facts. This generation of Billy also introduces the
concept of "mind files" -- individual files which contain
all of the knowledge, language, and personality of a
particular AI construct and so can be easily transferred to
other users of Billy via the internet or disk. This is
also the first Billy to use a mouse-driven interface.
BILLY v2.21 - (6/18/2000)
- Fixed bug that caused transcript file to record only
Billy's statements, not yours. Oops!
- Now that I have a new e-mail address, changes have been
made in this file.
BILLY v2.2 - (5/19/2000)
- New "Tell me about..." command allows you to have
Billy tell you everything he has been taught about
a subject.
- Direct and reverse associations are now stored
separately in Billy's memory. So, they can also
be independently removed. What are direct and
reverse assocations? For the statement "The sky is
blue", the direct association is that Sky is defined
by the word "blue." The reverse association is that
the blue is defined by the word "sky." The
reverse association is not always true, so now it
cane be removed without disrupting the direct.
- Associations can now be removed with "Don't say that"
in addition to saying "[Blah] is not [blah]."
- Billy has a new routine for typing which is more
human-like (it's the same one used in DAISY).
- Added the ability for the user to change Billy's name.
- Crashes less often now. If an error occurs, Billy tries
to fix the problem.
- Fixed problem with intro facts not having pronouns
reversed.
- Fixed problem with intro facts sender data not always
being correct. ("[Someone] told me that...")
- Link Mode uses my newly developed UDLP2 standard.
I moved to this new standard because it allows for
the chat bots to take up more memory (my latest bot,
Daisy, took up more memory than the old UDLP1 allowed).
Now, Link Mode is initiated through an external
UDLP2 Shell. Other advantages of UDLP2 are that
conversations can go as long as you want them to
(until you hit a key), and the bots' actual names
are used, rather than HOST and VISITOR.
- Varius new contexts added, and some new responses
added for old ones.
BILLY v2.11 - (2/14/2000)
- Fixed bug that caused Billy to say "You's" instead
of "Your" when answering knowledge web related questions.
BILLY v2.1 - (1/30/2000)
- Rewrote the link mode, now uses UDLP (Universal
Dynamic Link Protocol).
- Billy now remembers who told him facts.
- Now knows the day of the week and the part of the
day, which can be used in the intro or when
leaving.
- Intro text now slightly more variable -- if Billy
has been told something about you, he'll say that.
- No longer gives milliseconds when asked for the
time.
- In addition to learning nouns, Billy now also
learns the sentence in which they were used, and
is able to plug other nouns into those sentences
in the future.
- Occassionally adds a smiley face to sentences.
- In addition to recognizing adjectives, Billy can
recognize modifiers.
- Parsing engine has been partially re-written,
it is now slightly more accurate and efficient.
- When taught facts, can now reverse words like
YOU and YOUR when the fact is repeated by Billy.
("GREG IS YOUR PROGRAMMER",
=> "GREG IS MY PROGRAMMER")
- Can change pronouns, such as changing HE to HIM,
when neccessary.
- User can now customize colors.
- Whole lot of various new responses added, for
both old and new contexts. Some awkward ones
removed ("Sweet deal!").
BILLY v2.0.1 - (12/26/1999)
- Fixed a bug which caused Billy to crash with a "Division
by zero" runtime error on some processors. Also fixed
a glitch that caused Billy to start for the first time
with a "blank" name in his list of people he knows. There
was also a typo, which has been corrected.
BILLY v2.0 - (12/21/1999)
- The 2.x generation, rather than only looking at complete
sentences, breaks the sentences into individual words, and
generates a response based on the words it finds. Unlike
other keyword-based NLPs, Billy 2.x is able to also learn
from its conversations. It can learn complete sentences,
individual words, as well as how to respond to certain
phrases, using humans as "models". It also maintains
a "knowledge web" of facts it learns from the user,
which it can then use to answer questions.
BILLY v1.0 - (~1994)
- The first generation of Billy recognized only
complete sentences that were preprogrammed into it.
Any other sentence generated a random response of
about 4 preprogrammed responses. Billy v1.0 was so
dumb his I.Q. test came back negative... :)