WhizQuest Home Site

WhizQuest Documentation For Authors

Questionnaires are created by writing a text file and uploading it to the WhizQuest server through a web interface. You must be a WhizQuest author to upload questionnaire files.
A quest file is a text file similar in format to an HTML document. It consists of tagged information for representing the questions, headers, banner, username, and other required data.

There are three types of information in the quest file

  • Author Information
  • Look-and-feel Information
  • Question Definitions

    Each piece of information is defined by an HTML-like TAG. Tags can appear anywhere in the quest file, but it is a good idea to keep tags for these three elements separated. Most tags are of the form,
      <TAG_NAME = "tag_value" [PARAM = "param_value" | ...]>
    Others are of the form, <TAG_NAME> ... </TAG_NAME>


    Quest File Format:
    1. Format for Author Information
    2. Format for Look-and-feel
    3. Format for Questions

    Information from/about the Questionnaire Author

    <AUTHOR="Author's Name">
    The author's name must appear within quotations marks, but can include spaces

    <EMAIL="author_email@mail_server">
    The email address is required and is used to enable people filling in the questionnaire to send email to the author.
    | Top | Author Info | Look-and-feel | Questions |

    Creating the Look and Feel of the Questionnaire

    <TITLE="The title of your questionnaire">
    The title is displayed at the top of the WWW browser window. So, the tag,
    "<TITLE = "WhizQuest Demonstration">, would result in the browser window looking like (in Netscape Navigator):

    If there is no banner specified with a <BANNER> tag, the title is printed at the top of the Questionnaire as well.

    <BASE="http://server.name/path...">
    The base tag value is used in the HTML header for all forms created by WhizQuest. This base is inserted before any URL's that appear in the page that do not begin with "http://". It is useful if you have images or links on a particular site, to use the BASE tag to point to that site and then to use relative addressing (e.g., IMG SRC="images/myGif.gif") in your BANNER, LEADER, and TRAILER.

    <BGCOLOR="#ffeecc"> or <BACKGROUND="http://server.name/path/image.gif">
    The background color or image is inserted in the HTML header of all forms and pages created by WhizQuest. This must be a complete URL reference, not a relative reference; that is, it must begin with "http://..."

    <BANNER> ... </BANNER>
    Everything between these two tags becomes the "banner" for this questionnaire. The banner appears at the top of all forms and pages created by WhizQuest, and it can include HTML tags. You may also use relative addressing within the banner.

    <LEADER> ... </LEADER>
    Everything between these two tags becomes the "leader" or "instructions" for this questionnaire. The instructions appear after the banner and before any questions in the questionnaire. You may use HTML tags and relative addressing within the leader.

    <LEADOUT> ... </LEADOUT>
    Everything between these two tags becomes the leading text printed before the output on the optional public output page. You may use HTML tags and relative addressing within this tag.

    <TRAILER> ... </TRAILER>
    Everything between these two tags becomes the "trailer" or "footer" for this questionnaire. The trailer appears at the bottom of all forms and pages created by WhizQuest, and it can include HTML tags. You may also use relative addressing within the trailer.

    <SUBMITTEXT = "Submit_button_text">
    This text will appear on the submit button if the tag is included, otherwise the button will say, "Submit". So, if your tag is, "<SUBMITTEXT = "Okay">", the button will look like

    otherwise it would be

    <SHOWMAIL = "YES" | "NO">
    By default, the program will show the information in the following box after the TRAILER:

    Send comments about this questionnaire to Author Name

    If you don't want an email link to your (the author's) email, you can turn this message off by setting the SHOWMAIL tag equal to "NO"

    <FOOTER = "YES" | "NO">
    WhizQuest normally displays a footer at the bottom of each questionnaire and result summary page. This includes a link back to the WhizQuest home page, information about how to contact developers, date and time of the generation of the page, etc., as in the following box:

    This page generated by WhizQuest v.1.0 on 2-Mar-1998 at 4:17 pm
    Developed at ISIS, Virginia Tech
    Send comments to Developers

    Copyright © 1997 Virginia Tech, All Rights Reserved.

    If you include this option, you can turn the footer off with the "NO" option, in which case, you will see only a limited footer like the following,

    This page generated by WhizQuest v.1.0 on 2-Mar-1998 at 4:16 pm
    Copyright © 1997-1998 Virginia Tech, All Rights Reserved.

    <QUESTPW = "a_password">
    If you include a questionnaire password, WhizQuest will not display the form unless the user first enters the correct password. The password will not be visible when typed. For example, if your tag is,
    "<QUESTPW = "myPassword">", the first question will be,

    Password: (Required)

    | Top | Author Info | Look-and-feel | Questions |

    Defining Questions

       Demographic Information and Single Questions

    Demographic information may be included by inserting "Label" tags in your file. These function like standard questions of various types (multiple choice, text, numeric, etc.) with two added features:
    1. They can be required
    2. They can be logged so that they can be easily correlated with other responses
    These demographic label-type questions include:

       Blocks of Similar Questions

    You can also define blocks of questions of three types, open-ended, multiple-choice, and Likert-style questions. Each of these allow you to define a single set of instructions, with like choices or options for responses.

    <LABEL = "Question_name" PROMPT="State_the_question" TYPE="NAME" LENGTH="a_Number" REQUIRED="YES" | "NO"> (that means "YES" or "NO", one or the other)
    Asking for the client's name: You may ask the client for a name by defining a question of type "NAME" as shown here. If you do NOT include one or more questions of type "NAME", WhizQuest will automatically include the question:

    Please enter your name:

    Otherwise, it will show the question as you've entered it.

    (Note, though, you may put up a questionnaire with NO name field by including the tag, <ANONYMOUS = "YES"> in the file and declaring no NAME labels)

    An example: the tag,
    <LABEL="q1" PROMPT="What is your surname?" TYPE="NAME" LENGTH="40" REQUIRED="YES">
    would produce:

    What is your surname? (Required)

    WhizQuiz uses the "NAME" tag in its response to the user, so if you are asking for first and last names, use a "NAME" tag for the first name and a "TEXT" tag for the last, to get a friendly response. Note: if the question is "required", WhizQuest will check that a value has been entered before processing the form.

    | Names | Specific text | Choice Lists | Pop-up Lists | Multi-select | Numeric |


    <LABEL = "Question_name" PROMPT="State_the_question" TYPE="TEXT" LENGTH="a_Number" REQUIRED="YES" | "NO" LOG="YES" | "NO"> (that means "YES" or "NO", one or the other)
    Asking for any specific TEXT value: You may ask the client for a a specific text value with this tag. It is exactly like the "NAME" tag, except that it does not replace the program's default request for a client's name.
    As an example, the tag,
    <LABEL="q2" PROMPT="Where were you born?" TYPE="NAME" LENGTH="30" REQUIRED="NO">
    would produce:

    Where were you born?

    If the "LOG" parameter is set to "YES" the client's response will be shown associated with any free-format question response the client gives. The default is "NO".

    | Names | Specific text | Choice Lists | Pop-up Lists | Multi-select | Numeric |


    <LABEL = "Question_name" PROMPT="State_the_question" TYPE="RADIO" CHOICES="enter,choices,separated by,commas" BREAK="YES" | "NO" (that means "YES" or "NO", one or the other) REQUIRED="YES" | "NO" LOG="YES" | "NO">
    Asking the client to pick one of a set (First way): You may create a set of mutually exclusive choices with this tag. It creates a set of radio buttons, labeled with your choices. Normally, each choice will appear on its own line. However if you set the "BREAK" tag to "NO", the choices will be listed on one line. For example, the tag,
    <LABEL="q4" PROMPT="How many times can a cannon ball fly?" TYPE="RADIO" CHOICES="one,two,skip a few,100" REQUIRED="NO">
    would produce:

    How many times can a cannon ball fly?
    one
    two
    skip a few
    100

    but with the added parameter, BREAK = "NO" inserted, it would show:

    How many times can a cannon ball fly?
    one two skip a few 100

    If the "LOG" parameter is set to "YES" the client's response will be shown associated with any free-format question response the client gives. The default is "NO".


    <LABEL = "Question_name" PROMPT="State_the_question" TYPE="POPUP" CHOICES="enter,choices,separated by,commas" BREAK="YES" | "NO" (that means "YES" or "NO", one or the other) REQUIRED="YES" | "NO" LOG="YES" | "NO">
    Asking the client to pick one of a set (Second way): You can use a popup list to get the client to select one from a set of mutually exclusive choices with this tag. For example, the tag,
    <LABEL="q6" PROMPT="How many times can a cannon ball fly?" TYPE="POPUP" CHOICES="one,two,skip a few,100" REQUIRED="NO">
    would produce:

    How many times can a cannon ball fly?

    If the "LOG" parameter is set to "YES" the client's response will be shown associated with any free-format question response the client gives. The default is "NO".
    NOTE: you can specify the text shown before the user has selected anything in the popup. The default is "(click here)". You can change this for all popups by including a tag in your quest file: <POPDEFAULT="text">. This can only be set once for the entire questionnaire.

    | Names | Specific text | Choice Lists | Pop-up Lists | Multi-select | Numeric |


    <LABEL = "Question_name" PROMPT="State_the_question" TYPE="CHECKS" CHOICES="enter,choices,separated by,commas" BREAK="YES" | "NO" (that means "YES" or "NO", one or the other) REQUIRED="YES" | "NO" LOG="YES" | "NO">
    Multiple Selections are also possible: You can ask the user to select any or all of a set of choices using this tag. It creates a set of check boxes, labeled with your choices. Normally, each box and choice will appear on its own line. However if you set the "BREAK" tag to "NO", the choices will be listed on one line. For example, the tag,
    <LABEL="q7" PROMPT="If I had a..." TYPE="RADIO" CHOICES="hammer,bell,song to sing" REQUIRED="YES">
    would produce:

    If I had a... (Required)
    hammer
    bell
    song to sing

    but with the added parameter, BREAK = "NO" inserted, it would show:

    If I had a... (Required)
    hammer bell song to sing

    If the "LOG" parameter is set to "YES" the client's response will be shown associated with any free-format question response the client gives. The default is "NO".

    | Names | Specific text | Choice Lists | Pop-up Lists | Multi-select | Numeric |


    <LABEL = "Question_name" PROMPT="State_the_question" TYPE="NUMERIC" LENGTH="size of entry box in characters" MAX="maximum acceptable value" MIN="minimum acceptable value" REQUIRED="YES" | "NO" LOG="YES" | "NO"> <LABEL = "Question_name" PROMPT="State_the_question" TYPE="INTEGER" LENGTH="size of entry box in characters" NUMDIGITS="required number of digits" MAX="maximum acceptable value" MIN="minimum acceptable value" REQUIRED="YES" | "NO" LOG="YES" | "NO">
    Asking for Numeric Information: You can ask the user to enter a number either as a numeric value (a percentage or decimal number) or as an INTEGER (for Student ID, for example) with this tag. If you provide a maximum and minimum, WhizQuest will check that the value provided is between those values. If you provide an absolute number of digits for an INTEGER (NUMDIGITS), it will ensure that the user enters the correct number of digits. LENGTH will default to 10 or to the number of digits plus 3. For example, the tag,
    <LABEL="q9" PROMPT="Enter your student ID number" TYPE="INTEGER" NUMDIGITS="9" REQUIRED="NO" LOG="YES">
    would produce:

    Enter your student ID number

    A value of "123-45-6789" would be acceptable, but "1234567890" would not (too many digits).

    If the "LOG" parameter is set to "YES" the client's response will be shown in the log file associated with any free-format question response the client gives. The default is "NO".

    | Names | Specific text | Choice Lists | Pop-up Lists | Multi-select | Numeric |

    Blocks of Similar Questions
    All blocks of questions have a beginning and an ending tag like <Likert>...</Likert>. Within the first tag, you may optionally add tags that let you define the format of the question block more precisely. Prompts for the individual questions in the group are introduced by <Topic> tags between the beginning and ending tags for the block.
    <QUESTIONS [ROWS="n"] [INST="Special instructions here"]> ... </QUESTIONS>
    Asking free-format questions: Within the <QUESTIONS> tags, you may include one or more free-format questions. Each question is defined by inserting a <TOPIC> tag followed by the question text. You may also specify the number of text rows for the response (default is five), e.g.,
    <QUESTIONS ROWS="3"> <TOPIC>How do open ended questions make you feel? <TOPIC>What other kinds of questions would you like to see? </QUESTIONS> These questions would appear on the questionnaire:

    1. How do open ended questions make you feel?

    2. What other kinds of questions would you like to see?

    If you had included instructions, as in,

    <QUESTIONS INST="Respond with the first thing that comes to mind."> <TOPIC>How do open ended questions make you feel? <TOPIC>What other kinds of questions would you like to see? </QUESTIONS> The questionnaire would have looked like (note the default 5 rows for the response):

    For the next 2 questions: Respond with the first thing that comes to mind.

    1. How do open ended questions make you feel?

    2. What other kinds of questions would you like to see?

    Finally, if you set the number of rows to one (ROWS="1"), the response will be requested on the same line as the prompt, e.g.,

    <QUESTIONS ROWS="1" INST="Do a word association. Enter the first word that pops into your head when you see the word on the left"> <TOPIC>Squash <TOPIC>Orange <TOPIC>Insects </QUESTIONS> Would become:

    For the next 3 questions: Do a word association. Enter the first word that pops into your head when you see the word on the left

    3. Squash

    4. Orange

    5. Insects

    | Questions | Multiple Choice | Likert |


    <MULTIPLE [NAME = "block_name"] [CHOICES = "first, second, third, ..."] [ABBREV = "fAbrev, sAbrev, thAbrev, ..."] [INST = "Special instructions here"] [MULTISELECT = "YES | NO"] [NOTAP = "ON | OFF"]> ... </MULTIPLE>
    Blocks of Multiple-Choice Questions: You can define a block of questions, each sharing the same options for responses using the <MULTIPLE> tags. As in the open-ended questions, you can also specify instructions to go along with the block. With multiple choice blocks, you also define the choices the user can select from and the abbreviations for the selections used to prompt the user. NB: Each abbreviation must be one word with no spaces within an abbreviation. The default behavior is a choice of Strongly Agree, through to Strongly Disagree, with numbers for abbreviations. You may make the choices in a block mutually exclusive (the default), or you can declare the block to be "multiselect"-able, in which case the user can pick any or all of the responses to each question. As in open-ended questions, the question prompts are identified by <TOPIC> tags. By default, mutually exclusive choice lists will have "n/a" added as an option. You can specify this text using the optional ZERO = "text" tag, or, if you like, you can set NOTAP = "OFF", and this choice will not be shown.
    Note: you must give each block a unique name used by the program to identify the block in the output.

    Here is an example from the Demo questionnaire:

    <multiple name = "ratings" choices = "very much, somewhat, a bit, not at all" abbrev = "VM,S,B,N" inst = "Indicate how you rate the following HTML Editing products. Choose N/A if you have no experience with them."> <topic>Front Page <topic>Home Page <topic>Page Mill <topic>BBEdit <topic>Composer </multiple> which produces...

    For the next 5 questions: Indicate how you rate the following HTML Editing products. Choose N/A if you have no experience with them.
    Choose from the following options:
    VM = very much
    S = somewhat
    B = a bit
    N = not at all

    1. Front Page
    VM S B N   n/a

    2. Home Page
    VM S B N   n/a

    3. Page Mill
    VM S B N   n/a

    4. BBEdit
    VM S B N   n/a

    5. Composer
    VM S B N   n/a

    | Questions | Multiple Choice | Likert |


    <LIKERT [NAME = "block_name"] [SCALE = "the top value of the numerical scale"] [LOWTEXT = "label for low end of the numerical scale"] [HIGHTEXT = "label for the high end of the numerical scale"] [ZERO = "label to replace 'n/a' selection"] [INST = "special instructions here"]> ... </LIKERT>
    Blocks of Questions scored on a Numerical or Likert Scale: WhizQuest lets you define blocks of questions, each of which is answered based on a numerical scale from 1 to any number you choose (the default is 5). The two ends of the scale can be labeled with your choice of wording (the default behavior is from agree to disagree) and you may also set the text of the 'not applicable' option to be whatever you like, using the ZERO = "n/a replacement" option. As with Question blocks and Multiple Choice blocks, you may add instructions using the INST = "..." option.
    For these questions, WhizQuest will keep a tally of responses and provide you with the means and standard deviations, as well as a percentage of respondants answering the question. Two examples illustrate the use of Likert blocks:

    Default behavior...

    <likert> <topic>A foreign language should be required of all college graduates <topic>I am more likely to be critical than sympathetic <topic>The Bulls are vulnerable in this year's NBA playoffs </likert> ...which produces:

    For the next 4 questions: Choose from a scale of 1 to 5, where 1 = "Agree" and 5 = "Disagree".

    1. A foreign language should be required of all college graduates
    Agree 1 2 3 4 5 Disagree   n/a

    2. I am more likely to be critical than sympathetic
    Agree 1 2 3 4 5 Disagree   n/a

    3. The Bulls are vulnerable in this year's NBA playoffs
    Agree 1 2 3 4 5 Disagree   n/a

    And a more involved example from the WhizQuest demonstration...
    <likert name="evaluation" scale = "6" lowText = "Extremely Useful" hightext = "Not at all Useful" zero = "no comment" inst = "Please rate the following features of WhizQuest according to how useful you think they would be."> <topic>Open-ended questions <topic>Question groups based on a scale (like this one) <topic>Numerical questions <topic>Multiple-choice questions </likert> ...which produces:

    For the next 4 questions: Please rate the following features of WhizQuest according to how useful you think they would be.
    Choose from a scale of 1 to 6, where 1 = "Extremely Useful" and 6 = "Not at all Useful".

    4. Open-ended questions
    Extremely Useful 1 2 3 4 5 6 Not at all Useful   no comment

    5. Question groups based on a scale (like this one)
    Extremely Useful 1 2 3 4 5 6 Not at all Useful   no comment

    6. Numerical questions
    Extremely Useful 1 2 3 4 5 6 Not at all Useful   no comment

    7. Multiple-choice questions
    Extremely Useful 1 2 3 4 5 6 Not at all Useful   no comment

    | Top | Author Info | Look-and-feel | Questions | Multiple Choice | Likert |

    Whizquest v1.1
    Developed at ISIS, Virginia Tech
    Send comments to the Developers

    Copyright © 1997-1999 Virginia Tech, All Rights Reserved.