Standard Question Categories
 Each question is classified as one of the main question types, listed below. Certain "statements" that are really questions, e.g. "Tell me about Neuromedia" are also classified as being one of the question types. Really weird inputs that end with a question mark, e.g. "The sofa?" are classified as ?OtherQuestion.
All of the question types (except ?OtherQuestion and ?AnyQuestion) attempt to include only the subject of the question by stripping out extra words that add no information. For instance, for the question "What is a bot?" the attribute ?DescriptionQuestion has value "a bot", while for the input "Tell me about Neuromedia", ?DescriptionQuestion has value "Neuromedia".
There is of course some ambiguity among the question types; there are some questions for which there are legitimate arguments for two or more categories. In addition, there are certain questions that would only be classified correctly with a deep understanding of their meaning, which bots generally don't have. In practice, these issues have not turned out to be much of a problem for us when writing bots. If you need to find out what type of question some particular question is considered to be by the StandardQuestion library, NeuroStudio provides a way of testing through the "Debug->Check Attribute Values" menu selection.
Brief overview of main question types:
Question Type | Explanation |
?CanQuestion | Questions that can be phrased starting with "Can"; basically asking for a Yes/No answer plus a Method. Questions starting with "Can you tell me" are normally not ?CanQuestions as they are looking for some other information. (See below) |
?DescriptionQuestion | Any other question that is clearly a question but does not fit any of the above categories; most "What" questions fit in this category. |
?FactQuestion | Any question other than Can or Should that is looking for a yes/no answer. Questions starting with "Are", "Is", "Do", etc. are usually ?FactQuestions. Questions such as "Do you know X" are usually not ?FactQuestions. |
?LocationQuestion | Questions asking for a location; basically "Where" questions |
?MethodQuestion | Questions asking for the method of doing something, often "How" questions |
?ReasonQuestion | Questions asking for a reason; basically "Why" questions |
?ShouldQuestion | Questions that can be phrased starting with "Should"; basically asking for a Yes/No answer plus a Reason. |
?TimeQuestion | Questions asking for a specific time (not duration); basically "When" questions |
?WhatIfQuestion | Questions asking for the result of some action |
?WhoQuestion | Questions asking specifically for the identity of a person, usually start with "Who" |
The intent of the Standard Question library is to classify the questions according to what they are asking rather than how they are phrased. Thus, "Can you tell me where Neuromedia is?" is a ?LocationQuestion rather than a ?CanQuestion, while "Do you know what a lemur is?" is a ?DescriptionQuestion rather than a ?FactQuestion. In order to determine what type a question is, think of its simplest possible phrasing. For instance, "Can you tell me where Neuromedia is?" becomes "Where is Neuromedia?" while "Do you know what a lemur is?" becomes "What is a lemur?".
 Some questions may also be classified as one of several secondary question types. These are not exhaustive categories; many questions will not be any of the secondary question types. For instance, "What is the cost of a bot?" is a ?CostQuestion as well as a ?DescriptionQuestion, while "When does the movie start?" is just a ?TimeQuestion. In addition, some statements that are not otherwise classified as questions are classified as one of the secondary question types. For instance, "I want a bot." is an ?ObtainQuestion but is not classified as any of the main question types, and therefore is not an ?AnyQuestion. (The definition of ?AnyQuestion is subject to change in the future.)
Question Type | Explanation |
?CompareQuestion | Questions that are asking for a comparison of two things |
?ConfirmQuestion | Questions that are asking for confirmation, such as "Are you sure?" |
?CostQuestion | Questions that are asking about the cost of an object |
?DirectionsQuestion | Questions that are asking for directions to some place |
?DoHaveQuestion | Questions that take the form "Do you have X" |
?ExampleQuestion | Questions that are asking for an example of something |
?MoreQuestion | Questions that are asking for more information, such as "Tell me more." |
?ObtainQuestion | Questions that are asking for information as to how to obtain something, for instance "How do I get a bot", "Where do I get a bot", "Can I get a bot" |
In addition, some requests that are not questions fall into one of the above categories, much like "Describe Neuromedia" is a ?DescriptionQuestion although not really a question. For instance, "Give me an example of a bot" is an ?ExampleQuestion even though it is not strictly a question.
 The ?AnyQuestion attribute is used for all inputs that fit any of the other 11 main types of questions, i.e. ?CanQuestion, ?DescriptionQuestion, ?FactQuestion, ?LocationQuestion, ?MethodQuestion, ?ReasonQuestion, ?ShouldQuestion, ?TimeQuestion, ?WhatIfQuestion, ?WhoQuestion, or ?OtherQuestion. Note that it also includes certain inputs that aren't really questions, e.g. "Tell me about Neuromedia".
Unlike most question types, the value of ?AnyQuestion is the entire input.
"What are you?" "Tell me about Neuromedia." "When were you born?" "You are?" "The sofa?"
"I like you." "I want a bot." 
The ?CanQuestion attribute is generally used for questions that are asking for a yes/no answer plus a method. They can all be answered yes or no, but the user is also asking for further information. As a general rule, if the question can reasonably be restated beginning with the word "Can", it is a ?CanQuestion.
IMPORTANT EXCEPTION: Questions beginning with phrases such as "Can you tell me" are not generally "Can" questions because the real intent of the question is not to find out whether the bot can in fact tell the user the information, but to find out the information itself. For instance, "Can you tell me where Neuromedia is?" is a ?LocationQuestion.
"Can I get Star Trek information on-line?" "Can Neuromedia build a bot for me?" "Can you pay taxes late?" "Am I allowed to pay taxes late?" "Are you able to help me?" "Is it possible for me to get a receipt?" "Can we get a reservation?" "Can she borrow the car?"
"Is it possible to get more information?" (?FactQuestion) "Can you tell me how to get to San Jose?" (?MethodQuestion) "Can you explain why the generator exploded?" (?ReasonQuestion) "Can you tell me when?" (?TimeQuestion) 
The ?DescriptionQuestion attribute is used for questions that ask for a description, identification, or property of something AND is not covered by any other category. A ?DescriptionQuestion can never be appropriately answered yes or no.
Note that certain questions are both ?DescriptionQuestion and ?WhoQuestion.
"What is a virtual robot?" "What color is the sky?" "What do lemurs eat?" "Tell me about penalties." "Describe Neuromedia" "Which movie did you see?" "What can you tell me about hydrogen bombs?" "What can an acute case of rapid hair growth be treated with?" "What kind of mushrooms can I eat?" "What are the rules?" "How is your job going?" "How are your children doing?" "How is he doing at work?" "What can you tell me about the engine?" "What's new at Neuromedia?" "How long have you been working there?" "How tall is she?"
"How are they going to do that?" (?MethodQuestion) "What can I do with the sword?" (?MethodQuestion) "Do you like fish?" (?FactQuestion) "Are your products available now?" (?FactQuestion) 
The ?FactQuestion attribute is generally used for questions that are asking for a yes/no answer without necessarily any other information. Most questions beginning with "Can" or "Should" are not considered to be a ?FactQuestion but are instead ?CanQuestion or ?ShouldQuestion. ?FactQuestion includes most questions starting with "Is", "Are", "Do", "Will", and so on. Also note that complete non-question sentences that end in a question mark ("You are the president?") are usually ?FactQuestion.
"Is acid rain really bad for fish?" "Are you a bot?" "Are Lemurs allergic to buttered popcorn?" "Are there any Star Trek sites on-line?" "Do you like ice cream?" "Do I mail the forms to POX?" "Did it rain yesterday?" "Have you seen the movie yet?" "Will this graphics card work with my setup?" "You are a bot?"
"Do I have to mail my forms to POX?" (?ShouldQuestion) "Can I help you?" (?CanQuestion) "Can pigs really fly?" (?CanQuestion) "Am I allowed to go?" (?CanQuestion) "Are you able to?" (?CanQuestion) 
The ?LocationQuestion attribute is generally used for any questions that are asking for a location. This is basically the same as "Where?".
"Where is Neuromedia located?" "Where do I send my taxes?" "Can you tell me where Neuromedia is?" "Do you know where the watermelon seeds I was collecting went?" "Where?" "Tell me where it is." "What city are you from?"
"What is the capital of California? (?DescriptionQuestion) "How do I get to the supermarket?" (?MethodQuestion) "What is your address?" (?DescriptionQuestion) 
The ?MethodQuestion attribute is generally used for questions that are asking for a way of doing something. Most ?MethodQuestions begin with "How".
"How do I change a tire?" "How does the IRS know how much money I make?" "How should I get my W2 form" "How can I get my W2 form?" "How did that happen?" "How are they going to get to California?" "What is the right way to clean LCD screens?" "What can I do about the grass in my lawnmower bag?" "What can I do with a bot?" "What should I do next?" "How?"
"How are you doing, Robot?" (?DescriptionQuestion - this is a special case) "What can you tell me about the engine?" (?DescriptionQuestion) "How is it going?" (?DescriptionQuestion - another special case) "Is that when I should sell my stock?" (?TimeQuestion) "Should I do the dishes?" (?ShouldQuestion) "Can you pass the salt?" (?CanQuestion) 
The ?OtherQuestion attribute is only used for those inputs that are clearly questions but do not fall into any other category of the main question types. Most commonly, these are fragments of some sort, ending with a question mark. Unlike most of the other types of questions, the value of the ?OtherQuestion attribute is the entire user input.
"Yesterday?" "The best company?" "On the sofa?"
"You are?" (?FactQuestion) "Tell me when the movie starts?" (?TimeQuestion) 
The ?ReasonQuestion attribute is generally used for questions that are asking for a reason why something happened or a reason to do something. Most commonly these questions begin with "Why" or can easily be restated to begin with "Why".
"Why do I have to pay taxes?" "What is the reason for that" "Is that why the Chinese built the Great Wall?" "Tell me why the government collects taxes." "Is there a reason that you are asking for my social security number?" "How come I need a password?" "Tell me why." "Why?" 
The ?ShouldQuestion attribute is generally used for questions that are asking for a yes/no answer plus a reason. They can all be answered yes or no, but the user is also asking for further information. Normally, a ?ShouldQuestion is any question that does or should begin with "Should".
"Should I take the train to work?" "Do I have to pay taxes?" "Must I file by April 15?" "Oughtn't I take a bath?" "Don't you think I should stuff the chicken?"
"What should I do about the game?" (?MethodQuestion) "Why do I have to do my homework?" (?ReasonQuestion) 
The ?TimeQuestion attribute is generally used for questions that are asking for a specific time. A question that is asking for a length of time are not considered a?TimeQuestion, but is instead classified as a ?DescriptionQuestion.
"When does the movie start?" "When were you born?" "Can you tell me when the movie starts?" "What's the timing of the rollout?" "How long until I get my tax refund" (this is really asking for a specific time) "When will I get my tax refund" "Is there a time that is good for you?" "When?"
"How long is the movie?" (?DescriptionQuestion) "Will my watch ever be found?" (?FactQuestion) "Is it going to happen soon?" (?FactQuestion) "Is there going to be a party this weekend?" (?FactQuestion) "What if the sky falls when my ship sinks to the river bottom?" (?WhatIfQuestion) "What do I do when it hits?" (?MethodQuestion) 
The ?WhatIfQuestion attribute is generally used for questions that are asking for the result of some action.
"What if I don't pay my taxes on time?" "What happens when you mix acid and water?" "What if the sky falls when my ship sinks to the river bottom?"
"What happened yesterday?" (?DescriptionQuestion) "What do I do when I get there?" (?MethodQuestion) 
The ?WhoQuestion attribute is generally used for questions that are asking who a specific person is. Basically, this category pretty much only includes questions that involve the word "who". (There is no way to tell whether a general question refers to a specific person, e.g. "Tell me about the president.")
All questions that are classified as a ?WhoQuestion are also classified as a ?DescriptionQuestion.
"Who is Walter?" "Who is the president of Neuromedia?" "Who is the biggest star in Hollywood?" "Tell me who to call." "What person did that?"
"What is the president's name?" "What is his name?" "Tell me about Walter." "Is Rico the bologna king?" "Tell me about your father." 
The ?CompareQuestion attribute is used for all questions that are asking for the difference between two items, or for a direct comparison between two items. Questions that ask about a specific attribute (e.g. "Are lions bigger than tigers?") are not classified as a ?CompareQuestion; there is no way to detect these questions without an exhaustive list of comparative adjectives such as "bigger." A ?CompareQuestion will also be classified as one of the main types of questions, usually a ?DescriptionQuestion or ?FactQuestion.
"What is the difference between a gerbil and a rat?" "How is San Francisco like LA?" "Can you compare apples and oranges?"
"Are lions bigger than tigers?" (?FactQuestion) "What is the tallest tree?" (?DescriptionQuestion) "What is San Francisco like?" (?DescriptionQuestion) 
The ?ConfirmQuestion attribute is used for a special case of questions that are asking for confirmation of a previous statement. Questions that are asking for confirmation of a new statement are not classified as a ?ConfirmQuestion. A ?ConfirmQuestion will also be classified as one of the main types of questions, usually a ?FactQuestion.
"Are you sure?" "Really?" "Do you really think so?"
"oh." (Not a question) "Are you sure that you don't have any money?" (?FactQuestion) 
The ?CostQuestion attribute is used for all questions that are asking how much something costs. A ?CostQuestion will also be classified as one of the main types of questions, usually a ?DescriptionQuestion or ?FactQuestion.
"How much is a bot?" "What does a bot cost?" "How expensive are the meals there?" "Are bots expensive?" "What is the price of a bot?"
"I want to buy a bot." (?ObtainQuestion) "Is that free?" (?FactQuestion) "What products do you have for under $100" (?DescriptionQuestion) 
The ?DirectionsQuestion attribute is used for all questions that are asking for directions to some place. A ?DirectionsQuestion will also be classified as one of the main types of questions, usually a ?DescriptionQuestion or ?MethodQuestion.
"How do I get to the theater?" "Can you give me directions to your house?" "I need directions to Neuromedia?" "I need to know how to get to the theater."
"Where is the theater?" (?LocationQuestion) "Do I make a right turn on Main Street?" (?FactQuestion) 
The ?DoHaveQuestion attribute is a relatively specific question type used for special cases in which case the user is asking a "Do you have" question. A ?DoHaveQuestion will normally also be classified as a ?FactQuestion.
"Do you have any bananas?" "Do you have more information about that?"
"Does he have any money?" (?FactQuestion) "Do you have to?" (?FactQuestion) 
The ?ExampleQuestion attribute is used for all questions that are asking for an example of something. An ?ExampleQuestion can either be asking for an example of a specific thing or can be a general request with no subject, such as "Give me an example." Many times, an ?ExampleQuestion will also be classified as one of the main types of questions, usually a ?DescriptionQuestion, but will not necessarily be one; many ?ExampleQuestion inputs are not really questions. Oftentimes an ?ExampleQuestion will also be an ?ObtainQuestion.
"Like what?" "Show me an example." "Give me an example of a bot." "What is an example of a bot."
"Tell me about it." (?DescriptionQuestion) "What is the best bot?" (?DescriptionQuestion) "What bots do you have?" (?DescriptionQuestion) 
The ?MoreQuestion attribute is used for all questions that are asking for further information or clarification. A ?MoreQuestion can either be asking for more information about a specific subject or can be asking for more information in general. Some inputs that are classified as a ?MoreQuestion will be classifeid as a ?DescriptionQuestion or ?FactQuestion.
"Go on." "And so?" "Tell me more." "What else?" "Tell me more about yourself." "What else do you know about lemurs?" "More"
"Tell me about Neuromedia." (?DescriptionQuestion) "Tell me something about it." (?DescriptionQuestion) "What is that?" (?DescriptionQuestion) 
The ?ObtainQuestion attribute is used for all questions that are asking how to obtain some item. ?ObtainQuestion is probably the most frequenly used of the secondary question types. Most ?ObtainQuestions will also be classified as one of the main types of questions, usually a ?MethodQuestion or ?FactQuestion.
"How do I get a bot?" "Where can I get a new car?" "Can you buy software there?" "Will you sell me tickets?" "I need some money." "Can you give me some advice?"
"How much does a bot cost?" (?CostQuestion) "Is that free?" (?FactQuestion) "What products do you have for under $100" (?DescriptionQuestion) 
?MeaningQuestion: "What does that mean?"
Please make suggestions regarding other categories of questions to Neuromedia.