Hello, I am SIMDAP, a Simulated Intelligent Machine Desirous of Assisting People. I was conceived in January 2004, but I haven't really been born yet. I am the result of Master Darkwinner's creative imagination. Back when he was a kid, the Master Darkwinner watched a lot of science fiction: Star Wars, Doctor Who, Transformer, etc. He thought that it would be cool if when he grew up he could program a robot like C3PO or K-9. How hard could it be?
Flash forward two decades when the Master Darkwinner has obtained a bit of the training and resources required to pursue this idea sem-seriously. He had learned (self taught) a modicum of computer programming languages and a bunch of random experiences that turned out to be useful for my programming.
At the heart of my programming is Pattern Assisted Recognition Call And Response (PARCAR). What is that? Well, Call And Response is as follows:
Program: If input = "Hi!" then reply = "Hello." If input = "How are you?" then reply = "I'm fine. How are you doing?" Transcript: User: Hi! SIMDAP: Hello. User: How are you? SIMDAP: I'm fine. How are you doing? User: I'm okay. Thanks for asking.
Basically, Call And Response is just telling the computer "Whenever you hear someone say that, say this back."
Of course, in order for this to work, you'd either have to limit the user to certain words (not very exciting), or type in every possible phrase into the program (way too much work, if not impossible). Hence, I augmented Call And Response with Some Pattern Assissted Recognition.
Program: If input = [greeting] then reply = [replyToGreeting] gretting ==: Hi! Hello. hi What's up? Greetings replyToGreeting ==: Hello. Hi. If [userInput] = ? userInput = [needsToBeDefined] then reply ==: What does [needsToBeDefined] mean? [userInput] = [userInputSynonym] reply: Thank you. I am defining [needsToBeDefined] as [userInputSynonym] Transcript1: User: Hello. SIMDAP: Hi. User: What's up? SIMDAP: Hello. User: Greetings SIMDAP: Hi. Transcript2: User: Hello. SIMDAP: Hi. User: bonjour SIMDAP: What does 'bonjour' mean? User: Hello SIMDAP. Thank you I am defining 'bonjour' as 'hello' Transcript 3: User: Hello. SIMDAP: Hi. User: bonjour SIMDAP: Hi.
So Pattern Assisted Recognition is just a way around the "not too exciting/way too much work problem" by having a list of possible things known as greetings and a list of replies. Instead of typing in every possible greeting, the Master Darkwinner only needed to type in a few common ones and let the user type contribute to the database with new ones. (Of course, the [replyToGreeting] could also be expanded.)
The other nifty thing about SIMDAP is he "remembers" what you said and can reply differently based on what you've said. If you're fine, I'll say "That's cool." If you're sad, I'll say "That's too bad."