Main
Main
Artwork
Artwork
Books
Books
Donate
Donate
Licenses
Licenses
Shorts
Shorts
Software
Software
Source
Source

Candice, Version 0.1 Officially Released

05-17-2016

So, I'm officially releasing my "Candice" project to the public. You can check it out here. Candice is classified as a "chatter bot." Many programmers consider chatter bots to be a type of artificial intelligence (incorrectly). I wrote Candice to learn more about processing language. I did certainly do that!

The clearest I can define a "chatter bot" is to say that a chatter bot replies to user input. Although technically, that would make EVERY program a chatter bot. I suppose I should add a modifier, like "A chatter bot responds intuitively to language." But then again, so do text editors and word processors. A user should be able to speak to Candice and experience a two way conversation. All the chatter bots I've encountered respond to only one string at a time. Candice is no different. This is not like texting a person. A person might send YOU six separate strings as a greeting. Then, you send two. Then, the person might stop responding. Candice is much more predictable.

Candice is NOT intelligent! I'm not interested in carrying on a "philosphical" discussion about intelligence or (worse) artificial intelligence. I have already defined artificial intelligence clearly. So, you can save your breath. And I can assure you, an artificially intelligent system has never been developed before. I intend to write the first. But unfortunately, this is not it. I'm releasing Candice in her current state in the hope of receiving feedback from users. I would like to improve the Candice page and release new versions periodically. My only goal with this project is to learn how to condense language into a collection of standardized concepts.

Some of Candice's features and limitations:

> Candice sessions are ANONYMOUS. Nothing you say to Candice is stored on a server. And, she has no capacity to remember who you are.

> Users can enter a user name. The default is "user." Type whatever you want. Sometimes, Candice will spit it back at you.

> User strings are limited to 256 characters. User names are limited to 64.

> You can enter straight html code when speaking to Candice and changing your user name. For example, '<font color="ff0000">Michael</font>' will give you the user name "Michael" in red letters. The string 'I <font face="Sans Serif" color="ff00ff">love</font> you.' will print 'I love you.' with 'love' written in magenta colored letters. Candice parses language inside html tags as if they are not there. Keep in mind, there is a limit on the string sizes (256 characters when speaking and 64 characters for a user name).

> Candice stores data in a javascript cookie on a client's machine. Therefore if you visit Candice today then revisit her a week from now, what you said last time and your user name may still be stored. If you would like to clear data from your last visit, you'll need to delete all your cookies. I recommend private web browsing, anyway. You could just do that!

Some suggestions for speaking to Candice:

> Candice breaks "words" into strings on a per space basis. She stores the strings in an array. After that, she breaks up additional "words" on a per symbol basis. She stores words and symbols independently. For example, 'son-of-a-gun' is stored as 'son' '-' 'of' '-' 'a' '-' 'gun'. And, '4&&6%all^the*(time***%.' is stored as '4' '&' '&' '6' '%' 'all' '^' 'the' '*' '(' 'time' '*' '*' '*' '%' '.'. At times, Candice may also consider a user's original string. It depends on what she needs. If you're trying to understand how Candice will interpret your input, think about how it is stored.

> Candice responds to common greetings like, 'hello, hi, howdy, and aloha.' She always responds to them as if you just began speaking to her.

> Candice responds in a similar manner to 'bye.' Notice, Candice breaks up the word 'good-bye' into 'good' '-' and 'bye.' She stores the strings in an array and considers them independently.

> When Candice doesn't have a response to a user's string, she retrieves a response from a collection of canned responses. She stores the retrieved response in a variable. And, she has responses for user input related to canned responses stored in a variable. This gives the illusion of intelligent conversation. But remember if Candice doesn't respond to your string, it's not personal. She just didn't know how to respond.

> Candice likes showing off her Origami skills. So if she asks to show you some, it would be polite of you to oblige. Otherwise, she tends to get upset! You can also just ask Candice to do Origami. Or, you can ask her to show a specific Origami sequence she showed before. For example, if you tell Candice 'Do the Origami box.' or 'Show me the Origami pidgeon.' or even just 'do origami,' she will respond by printing from an org_box.txt file, an org_pdg.txt file, or a random org file respectively. Right now, Candice only has three Origami files to print from. I'll add more when I get time.

> Candice likes cookies. If she asks for one, you'd better give her one! Otherwise, she takes it the wrong way. She usually has responses for strings like 'I already gave you one' or similar (if you catch my drift). Technically, she responds to "i*already give" which is parsed by the prt_snt() function (partial sentence).

> Pay attention when Candice says a random string (if you can even tell she did). Try to respond intuitively. She has hundreds of pre-programmed responses to possible input. I will add more when I have time.

> Candice responds negatively to swear words. But, her responses got kind of annoying to me after a while. So now, she only does that 50% of the time.

If you would like to send me feedback about the Candice project (I would greatly appreciate it if you would!), you can contact me at thedictator2@gmail.com. So, don't be shy!

Back

______________________________________________

Random Fact: Slackware (a GNU/Linux system maintained under an emphasis of function over form) is the official operating system used to host Insanely Witty Stupidity. Many packages are compiled using various Slackware systems for the purpose of developing the site. And, Insanely Witty Stupidity happily shares those precompiled packages with its users (because-- people may find them useful).

html revised 2022-07-01 by Michael Atkins.

The maintainer of insanelywittystupidity.com does not care if people duplicate this page or any part of it-- as long as this notice remains intact.