Writing an age using the D'ni Art is a tricky process. It requires a full understanding of the D'ni language, knowledge of forces, interactions between forces, detail, nuances, and so much more. Writing knowledge for OHBot is a similar process, albeit simpler.
At the most basic level, knowledge is just questions and answers. But, beyond that is designing conversations, creating emotion and personality, encouraging interaction, and ensuring consistency.
So, here is basic guidelines:
- Write questions that you expect to be asked
- Write questions that you don't expect to be asked
- Write answers that are interesting, engaging, informational, and personable
- When an answer is long, split it up. Allow the user to ask for more
- Anticipate responses to answers
- When appropriate, utilize current circumstances to provide a better answer
- Always user proper spelling, grammar, and punctuation
Write questions that you expect to be asked
Code: Select all
Question: What is your favorite color?
Answer: Orange.
This one is always tricky, but imaging other ways people might ask the same question...or other questions that people might ask surrounding the same topic.
Code: Select all
Question: Is your favorite color orange?
Answer: Yes.
Question: Is your favorite color ___?
Answer: No, my favorite color is orange.
Write answers that are interesting, engaging, informational, and personable
The goal here is to add some spice...to have fun and liven things up a little. So let's make some changes.
Code: Select all
Question: Is your favorite color ___?
Answer 1: ___? I can't stand that color! Guess again!
Answer 2: Nope! Come on now...it shouldn't be hard to guess!
Answer 3: Wow you're still wrong! Perhaps it would just be quicker to ask me what it is.
Question: What is your favorite color?
Answer 1: Orange!
Answer 2: It's still orange!
Answer 3: You keep asking me that. I can tell you now that it is now and will always be: ORANGE! :)
When an answer is long, split it up. Allow the user to ask for more
Code: Select all
Question: Why is orange your favorite color?
Answer: Well, there are several reasons. First, [...]. Second, [...], not to mention that [...]. And as John Doe one said [...], so in the end I asked myself [...] and I decided that [...]. In conclusion [...]. And that's why I like orange.
Anticipate responses to answers
Designing and building knowledge isn't as cut and dry as questions and answers...you're designing a conversation. Part of this means you can answer follow-up questions. There are two ways to do that, and here's an example of each:
First I'm going to add a new question/answer.
Code: Select all
Question: I hate orange!
Question: I dislike orange!
Answer: Really? Don't let OHB hear you say that!
Let's modify a question we created earlier:
Code: Select all
Question: Is your favorite color orange?
Answer: Yes! Was that a guess?
Question: Yes
Answer: I thought so!
Question: No
Answer: Smarty pants!
When appropriate, utilize current circumstances to provide a better answer
When OHBot is conversing with someone, the entire conversation is separated from other conversations he is having with others. There is no information cross-over. However, there are some bits of information that OHBot can always access. This includes: the name, location, and date of last contact of everyone he has seen, and sometimes their gender and ki number; OHBot's location; and the current mode of communication (public or private). So, let's put that to use!
Code: Select all
Question: I hate orange!
Question: I dislike orange!
If user's location = OHB's location then:
If mode of communication is public then:
Answer: Don't listen to [him/her/name] OHB! [He/She/They] [doesn't/don't] know what [he's/she's/they're] saying!!!
Otherwise:
Answer: It's a good thing you didn't say that out-loud!
Otherwise:
Answer: Don't let OHB hear you say that!
So, let's put it all together!
Code: Select all
Question: What is your favorite color?
Answer 1: Orange!
Answer 2: It's still orange!
Answer 3: You keep asking me that. I can tell you now that it is now and will always be: ORANGE! :)
Question: Is your favorite color orange?
Answer: Yes! Was that a guess?
Question: Yes
Answer: I thought so!
Question: No
Answer: Smarty pants!
Question: Is your favorite color ___?
Answer 1: ___? I can't stand that color! Guess again!
Answer 2: Nope! Come on now...it shouldn't be hard to guess!
Answer 3: Wow you're still wrong! Perhaps it would just be quicker to ask me what it is.
Question: I hate orange!
Question: I dislike orange!
If user's location = OHB's location then:
If mode of communication is public then:
Answer: Don't listen to [him/her/name] OHB! [He/She/They] [doesn't/don't] know what [he's/she's/they're] saying!!!
Otherwise:
Answer: It's a good thing you didn't say that out-loud!
Answer: Really? Don't let OHB hear you say that!
Otherwise:
Answer: Don't let OHB hear you say that!
No elaboration needed here...just do it!
Final Thoughts
So, with that short introduction you've got everything you need to get started. The format I've used is a good one you can stick to. I'll take completed knowledge and convert it to the format that OHBot uses (which is much more complicated than that). I'll also give it a once-over for consistency, spelling, grammar, etc.
Remember, all written knowledge should be sent to the Project Lead for the project you're working on. The Project Lead can pass it along to me when they have approved it. However, I am available to answer questions. So, if you have questions about the methodology outlined here, please contact me. If you have questions specifically pertaining to the subject matter you are working on, contact your Project Lead.