1. Field of the Invention
This invention concerns a method, apparatus and computer program product relating to delivering survey questions, and more particularly to delivering on-line surveys that dynamically present questions responsive to answers received.
2. Related Art
On-line surveys suffer from some problems. First, they are not interactive. That is, conventionally all possible questions are displayed in a survey form, irrespective of answers that a user gives when filling out the form. Therefore, even if a certain answer precludes a certain following set of questions, the certain questions are still displayed after the user selects the certain answer. Also, on-line survey forms are conventionally created individually, one-by-one. That is, the survey exists on a server as a collection of (possibly numerous) forms, each for individual delivery to a client. It is problematic that if a new question has to be added to the survey its addition may affect many or even all the existing survey forms, so that may or all the forms have to be modified. Therefore, a need exists for improvements in delivery and handling of surveys.
The foregoing need is addressed in the present invention by providing a survey document on a server for delivery to a client on a network having questions and potential answers in a format defining branches of the questions. That is, the format defines whether a first one of the questions branches to a second one of the questions, or instead to a third one of the questions, and so on, depending on an answer for the first question.
According to one aspect, the format of the survey document defines the questions and answers as data elements that are included in the survey document as strings of text surrounded by text markups, including tags. The text markups describe the data elements. The question branches are defined by the markups as associations among the data elements. In one embodiment, the format is an extensible markup language format.
In another aspect, programming instructions, such as in a Java applet associated with an HTML document, are provided for delivery to the client on the network. The instructions are for causing the client to render questions on a user interface from the survey document. The questions initially rendered include the first one of the questions. The instructions are also for causing the client to branch to and render on the user interface the second or third one of the questions responsive to the survey document and an answer received for the first question.
It is advantageous that the programming instructions and survey document provide the ability to branch based on a previous answer, according to which the survey will display new sub-questions (and potential answers) for the newly answered question, depending on the answer given. Moreover, first sub-questions can themselves branch to second sub-questions, which can branch to third sub-questions, and so on.
It is also advantageous that the survey document resides in the above described form on the server because the single survey document may be easily revised, without having to revise numerous forms on the server. Then the applet, running on a client's browser, for example, will render the survey in browser frames.
In another aspect, the programming instructions include instructions for causing the client to parse the data elements from the survey document into data arrays. The data arrays include cross-references defining associations among questions and answers. The arrays provide an efficient data structure by which the applet can follow a chain of cross references and compile, for adding to the survey, branches of sub-questions for particular answers received from a user.
In yet another aspect, a data type definition file is also provided for delivery to the client on the network. According to this aspect, the programming instructions include instructions for causing the client to validate the data elements responsive to the document type definition file.
In a still further aspect, the programming instructions include instructions for causing the client to return the survey results to the server as a document defining the answers as data elements that are included in the survey document as strings of text surrounded by text markups, including tags. The text markups describe the data elements. This is advantageous because this document format is widely known and well supported, so that it permits the survey results to be interpreted and manipulated by a wide variety of applications.
Other objects and advantages of the invention will become apparent upon reading the following detailed description and upon reference to the accompanying drawings.
The claims at the end of this application set out novel features which applicants believe are characteristic of the invention. The invention, a preferred mode of use, further objectives and advantages, will best be understood by reference to the following detailed description of an illustrative embodiment read in conjunction with the accompanying drawings.
Referring now to
The HTML document 131 includes an applet 120, which has instructions in a Java format. (Java is a trademark of Sun Microsystems, Inc.) The Java applet is a non-standalone application in Java code that runs inside a browser such as browser 160. Among other aspects, Java is an object oriented, interpreted, dynamic programming language. This means that data and methods that operate on that data are collected as classes. The classes describe the state and behavior of respective objects and are arranged in a hierarchy so a subclass can inherit behavior from its superclass. Being an interpreted language, the Java applet is compiled as byte codes for a Java virtual machine, rather than native machine code. In this manner the applet is less platform dependent, since the applet can run on any platform to which the Java virtual machine has been ported. Being dynamic, classes of the applet 120 can be loaded into a running Java interpreter at anytime and then dynamically instantiated.
XML is a hierarchical data format, according to which data elements can be nested within other data elements and can have associated attributes. The XML document 133 in this embodiment is a survey document in which survey questions and answers are defined as XML data elements. That is, the XML file contains all the survey questions along with information about what type of answers are expected and if the answers are dependent on previous answers to previous questions. The questions and answers are included in the survey XML document 133 as strings of text surrounded by text markups, including tags that describe the data elements, and attributes that define associations among the data elements, e.g., questions and answers. These association define, among other things, question branches, which will be described further in connection with
The DTD document 132 defines what elements may appear in the XML document 133, and defines contents and attributes for the elements. The applet 120 has Java functions 122 that parse data elements of the XML document 133 into a number of data arrays 126 stored in the client 150 memory 157, which will be described further in connection with
Responsive to receiving user inputted survey answers the applet 120 updates the survey data, creating a document object model (“DOM”) data structure 124 in memory 157. Then the applet 120 creates a responding XML document 128 in memory 157. The responding XML document 128 is for survey results and includes the user inputted answers. The responding XML document 128 is then sent back to the server 110.
Referring now to
The questions and answers for each of these categories 212 through 218 are for displaying in respective frames of the browser window 165 (
Associated with the processor heading is a first row 232 and a second row 234 of questions and answers. The question 236 for the first row 232 is “architecture's supported?” The first possible answer 238 is “Power PC.” The second possible answer 240 is “X86.” The third possible answer 242 is “68K.” All the possible answers for question 236 are check boxes. The question 244 for the second row 234 is “Browser used most?” The answer 246 is a text box, in which the client 150 (
One of the answers, answer 238, branches to a row 248 of sub-questions and answers. That is, answer 238 has associated with it the row 248 of sub-questions and answers. The first sub-question 250 is “Is the chip an IBM designed chip?” The first possible answer 252 to this question 250 is a radio button representing “yes.” The second possible answer 254 to this question 250 is a radio button representing “No.”
There are two rows 256 and 258 of questions and answers associated with the answer 252 “Yes.” There is one row 258 of questions and answers associated with the answer 254 “No.” The question 260 for the first row 256 is “What is the name of it?” The associated answer 262 is a text box. The question 264 for the second row 258 is “What is its speed?” The associated answer 266 is a text box.
Referring now to
Referring now to
Referring now to
Referring now to
Thus,
Referring now to
Referring now to
If the user has not quit, then at step 850 the applet 120 determines from the user's selections and text box entries whether an answer given leads to another branch of questions. This is done by the applet 120 looking at the entry for an answer in the hash table portion of one of the arrays 126 (
It is important to note that while the present invention has been described in the context of a fully functioning data processing system, those of ordinary skill in the art will appreciate that the processes of the present invention are capable of being distributed in the form of a computer readable medium of instructions in a variety of forms and that the present invention applies equally regardless of the particular type of signal bearing media actually used to carry out the distribution. Examples of computer readable media include RAM, flash memory, recordable-type media, such a floppy disk, a hard disk drive, a ROM, and CD-ROM, and transmission-type media such as digital and analog communications links, e.g., the Internet.
The description of the present embodiment has been presented for purposes of illustration, but is not intended to be exhaustive or to limit the invention to the form disclosed. Many additional aspects, modifications and variations are also contemplated and are intended to be encompassed within the scope of the following claims. For example, the embodiment has depicted the survey being rendered on a visual display device, but it should be understood that the survey could be rendered in other media, such as audio. It should also be understood that the client could take many forms, such says a desktop computer, laptop computer, notebook computer, personal digital assistant having a visual display and an audio player, or a more simple device having primarily, or even solely, an audio playback function. The client is depicted with a keyboard and mouse for user input, but other input devices are also contemplated, such as a microphone, for example.
This application is a continuation of application Ser. No. 09/925,585, filed Aug. 9, 2001, and issued on Jan. 6, 2009 as U.S. Pat. No. 7,475,339.
Number | Name | Date | Kind |
---|---|---|---|
5893098 | Peters et al. | Apr 1999 | A |
6826540 | Plantec et al. | Nov 2004 | B1 |
6895405 | Choi et al. | May 2005 | B1 |
6993495 | Smith et al. | Jan 2006 | B2 |
7158988 | Kirkpatrick et al. | Jan 2007 | B1 |
7475339 | Holloway et al. | Jan 2009 | B2 |
20020007303 | Brookler et al. | Jan 2002 | A1 |
20020029154 | Majoor | Mar 2002 | A1 |
20020119433 | Callender | Aug 2002 | A1 |
20020120491 | Nelson | Aug 2002 | A1 |
20020128898 | Smith, Jr. et al. | Sep 2002 | A1 |
20020184265 | Gupta | Dec 2002 | A1 |
20030033193 | Holloway et al. | Feb 2003 | A1 |
20030088452 | Kelly | May 2003 | A1 |
20040230989 | Macey et al. | Nov 2004 | A1 |
20080010351 | Wardhaugh et al. | Jan 2008 | A1 |
Number | Date | Country | |
---|---|---|---|
20090132904 A1 | May 2009 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 09925585 | Aug 2001 | US |
Child | 12325700 | US |