0% found this document useful (0 votes)
67 views16 pages

United States Patent: (10) Patent No.: (45) Date of Patent

The patent describes an online voting system that allows users to view survey questions and voting results. It includes a database to store surveys, a server to deliver surveys to users, and tools for editors to create surveys. Users' votes are collected and tallied in tables. The tallies are periodically updated in the survey database to display current results to users. Over time, surveys may be removed from the system and related voting data will be automatically deleted.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
67 views16 pages

United States Patent: (10) Patent No.: (45) Date of Patent

The patent describes an online voting system that allows users to view survey questions and voting results. It includes a database to store surveys, a server to deliver surveys to users, and tools for editors to create surveys. Users' votes are collected and tallied in tables. The tallies are periodically updated in the survey database to display current results to users. Over time, surveys may be removed from the system and related voting data will be automatically deleted.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

USOO6175833B1

(12) United States Patent (10) Patent No.: US 6,175,833 B1


West et al. (45) Date of Patent: Jan. 16, 2001

(54) SYSTEM AND METHOD FOR INTERACTIVE (74) Attorney, Agent, or Firm-Lee & Hayes, PLLC
LIVE ONLINE VOTING WITH TALLIES FOR
UPDATING WOTING RESULTS (57) ABSTRACT

(75) Inventors: Brenden West, Seattle; Sean An online Voting System provides a Standardized database
Anderson, Kirkland, both of WA (US) architecture that integrates editorial and production pro
cesses. The Voting System has a Survey database to Store
(73) Assignee: Microsoft Corporation, Redmond, WA multiple Surveys and a Server to Serve the Surveys over a
(US) network (e.g., the Internet) to readers. Each Survey consists
of one or more questions and multiple answer options per
(*) Notice: Under 35 U.S.C. 154(b), the term of this question. The Voting System includes an authoring tool to
patent shall be extended for 0 days. permit an editor to construct the Surveys. The Surveys are
Stored in a predefined Survey indeX tables. A display handler
(21) Appl. No.: 09/064,567 checks reader requests for pages that contain Surveys, to
(22) Filed: Apr. 22, 1998 determine whether the reader should receive a voting form
or Survey results. A vote handler processes votes cast by the
(51) Int. Cl." .................................................. G06F 17/30 readers in response to the SurveyS. Unique identifiers of
(52) U.S. Cl. .......................... 707/102; 707/505; 707/506; Voters who respond to the Surveys are collected in a votes
705/26; 434/323 table. This table is checked when each vote is received to
(58) Field of Search ..................................... 707/102,505, prevent readers from Voting multiple times for a single
707/506, 507,508; 705/10, 26; 434/323 Survey. The vote handler tallies the votes cast for the answer
options in a totals table. The Survey indeX table also has
(56) References Cited fields to hold voting results for corresponding Survey ques
U.S. PATENT DOCUMENTS
tions and answer options. The Vote handler periodically
updates these fields with the totals kept in the totals table.
5,180,309 : 1/1993 Egnor ................................... 434/323 This update is automatic without intervention from the
5,893,098 4/1999 Peters et al. ........................... 707/10 editors. The same index table holds the information to
5,950,172 * 9/1999 Klingman ............................... 705/26 present the Survey questions (to first time readers) and to
5,950,213 9/1999 Iida et al. ............................. 707/505 show the results to the Survey (to readers who have cast a
OTHER PUBLICATIONS vote). Over time, the editor may remove one or more
questions or the entire Survey from the Survey indeX table.
MSNBC Website (“Live Vote", http:www.msnbc.com/news/ The Surveys are archived, along with all of the Voting data
308310.asp), Oct. 28, 1999, pp 1-2).* from the three tables, in persistent Storage. After archival,
the Voting data for the removed Surveys is automatically
* cited by examiner deleted from all three tables.
Primary Examiner Thomas G. Black
ASSistant Examiner William Trinh 30 Claims, 6 Drawing Sheets
--—
Client Request D Receive Request - 150
^ - 154 --- ---- 152 orin
Assign GUID - k's
Y
First Time?)
No
s-- 156
No - Access Pages Yes

? Retrieve Content Check GUID 166


Page from File
System
168- --- --- Nd Retrieve Content
First Time Woting? Page from File 178
Retrieve Survey from 160
System
Yes
Survey Index Table in —V -
Survey Database 170 - Add vote to votes
Table Retrieve Survey from - 18O
Survey Index Table
insert Survey Without 162
Totals into Content
Page 172 - Adjust TotalsTable Insert Survey and
Totals into Content 182
} Page
| Serve Content Page 164 Update Survey Index
Table with New Totals
Serve Content Page 184
with Totals

Update Loop
U.S. Patent Jan. 16, 2001 Sheet 1 of 6 US 6,175,833 B1

ZZ
U.S. Patent Jan. 16, 2001 Sheet 2 of 6 US 6,175,833 B1

424
2

~99 ~–99
U.S. Patent Jan. 16, 2001 Sheet 3 of 6 US 6,175,833 B1

42
Votes Table /
70 - 72 74 - 76 - 78
Survey Question Selected
D GUID | Vote DateTime Stamp Option
1234 7034512 4/30/98 13:08:34 1 1

5678 8004500 4/30/98 13:11:54. 3 2

22, 5
44
Totals Table ?
84 86
Survey
D Totals
1234 4,352
1234 1,735
U.S. Patent Jan. 16, 2001 Sheet 4 of 6 US 6,175,833 B1

Editorial
PrOCeSS
Launch Authoring 100
Tool

Enter Question 102


Number and Text

Enter Option Text for 104


Ouestion

Assign Survey ID 106

Create Entry in 108


Survey Index Table

Store Question
110
Number, Text, and
Options Text in
Survey Index Table
/
Optional: Test 112
Survey Offline
— —

Replicate Survey 114


Table index to Live
Site

Delay Specified . 116

Replication Loop
U.S. Patent Jan. 16, 2001 Sheet 6 of 6 US 6,175,833 B1

Flushing
Process

Initiate Flush Procedure 200


in Conjunction with
Replication Cycle

Detect Survey Change in 202


Editor's Copy of Survey
Index Table

Archive Corresponding 204


Live Copy of Survey and
Results

Delete Vote 206


Information from All
Tables
US 6,175,833 B1
1 2
SYSTEMAND METHOD FOR INTERACTIVE relate those votes to the particular question(s). To Support
LIVE ONLINE VOTING WITH TALLIES FOR the MSNBC “Top 10" survey, for example, the MSNBC
UPDATING WOTING RESULTS producers defined a table with fields to hold a story ID, a
Voter ID, a date that the Vote is cast, and a response. The
TECHNICAL FIELD producers also defined a second table with fields for the story
This invention relates to online Voting Systems. More ID and vote totals. When a reader voted on a particular story,
the vote was recorded in the first table in correlation with
particularly, this invention relates to a database System that that Story and the totals for that Story were adjusted accord
trackS votes cast by Voters online over a network Such as the ingly in the Second table. These totals were then used to
Internet in response to interactive polls, and returns poll construct the “Top 10” list, which was presented back to the
results to the voters. USC.
BACKGROUND OF THE INVENTION Unfortunately, the program and data Structures are usually
built from Scratch for each Set of questions. The program and
The Internet provides a wonderful forum for mass distri data Structures are not portable from one Survey to another.
bution of news and other current information. Increasingly, 15 Moreover, Since the database Structures are rebuilt for each
more and more people are using the World Wide Web (or Survey, the production group must test the entire polling
simply “WWW” or “Web”) as their primary, or secondary, process in an offline environment each time a new Survey is
Source of news and current events. Web sites from MSNBC, produced. These tests ensure that the Votes are collected
CNN, ESPN, and ABC News are experiencing rapidly properly, Stored in the correct data locations, and tallied
increasing viewership. correctly, and that the results are returned in the desired
One reason for the growing popularity is that the online format to the reader's computer. If the tests prove Successful,
forum offers the user an interactive experience, Something the production group releases the content and Survey for live
that conventional television and newspapers cannot. Users presentation on the Web Site. This testing process takes time,
can go directly to Stories that interest them most. Content thereby increasing production costs for online content pro
editors can also take advantage of the interactive environ 25 viders.
ment by encouraging users to engage in further dialog or Accordingly, there is a need for a uniform approach that
react in Some manner to the content. For example, the integrates the editorial process with the production process
MSNBC Web site found at www.msnbe.com offers readers to Standardize and Streamline creation of online SurveyS.
the opportunity rate Stories on an individual basis. The Site SUMMARY OF THE INVENTION
then tallies the results and compiles a “Top 10” list of the
most enjoyed Stories. An online voting System for facilitating live interactive
Another opportunity for online content providers is to online voting provides a Standardized database architecture
conduct live voting polls. Online providers insert Survey that integrates the editorial and production processes. The
questions as part of their content and invite readers to Voting System has a Survey database to Store multiple
respond to the Survey by Submitting online votes. The 35 Surveys and a server to Serve the Surveys over a network
impromptu polls typically coincide with current topics of (e.g., the Internet) to readers. Each Survey consists of one or
interest featured in the Story running beside the poll. AS an more questions and multiple answer options per question.
example, a sports-related Web site, such as the ESPN site For instance, the Survey might consist of the Survey question
www.espn.sportZone.com might run an article on Michael “Do you think the Chicago Bulls will win the NBA title?”
Jordan. The content editors might ask the following question 40 and the two answer options “yes” and “no”.
in conjunction with the Story: The Voting System includes an authoring tool to permit an
Do you think Michael Jordan will return to Chicago for editor to construct the SurveyS. The Surveys are Stored in a
another Season? predefined database Structure, referred to as the "Survey
Yes index table'. The survey index table includes fields to hold
No 45 the Survey identifier, question number, the question text as
Readers respond by clicking one of the two options. This drafted by the editor (e.g., “Do you think the Chicago Bulls
action sends a response from the user's computer to the Web will win the NBA title'?”), and option text as drafted by the
server at the site. The Web server adds the votes to other editor (e.g., “yes” and "no"). The Survey index table is
votes and compiles the results. The Web server downloads replicated onto a live site periodically, allowing editors time
the results to the reader during a Subsequent interaction with 50 to preview their Surveys, and Served by the Site Server to
the user's computer. The poll results are posted as part of the interested readers over the network.
story for the reader to observe how other people voted in The online Voting System has a vote handler to process
comparison to his/her own vote. These real-time polls are Votes cast by the readers in response to the SurveyS. Unique
very popular. identifiers of voters who respond to the Surveys are collected
One problem with live online surveys concerns the under 55 in a Second database Structure, known as the “Votes table'.
lying production framework for creating real-tine interactive The votes table has fields to hold survey IDs, the
polls. Production of online Surveys requires a Substantial Voters' unique identifiers, and time Stamps indicating when
amount of programming and quality-assurance testing. the voters cast their votes. This table is checked when each
Typically, an editorial Staff writes one or more Survey Vote is received to prevent readers from Voting multiple
questions in any manner they choose, and to derive what 60 times for a Single Survey question.
ever kind of response they desire. The questions may be The vote handler tallies the votes cast for the answer
drafted as multiple choice, open ended, essay, and So forth. options in a third database Structure referred to as the “totals
After the questions are written, a production group writes table'. The totals table has fields to hold the Survey IDs, the
a dedicated Software program and constructs a Special question numbers, the answer options for the questions, and
database infrastructure to Support the automated Survey. For 65 the total votes cast per answer option.
instance, the production group might create one or more The Survey index table also has fields to hold voting
database Structures to hold votes cast by the readers and to results for corresponding Survey questions and answer
US 6,175,833 B1
3 4
options. The vote handler periodically updates these fields Server page technology from MicroSoft Corporation. An
with the totals kept in the totals table. This update is active Server page allows a user to write Web pages using a
automatic without intervention from the editors. combination of a hypertext language (e.g., HTML) and a
In this manner, the same indeX table holds the information Scripting language, Such as Visual Basic from MicroSoft
to present the Survey questions and to show the results to the Corporation or JavaTM from Sun Microsystems. Active
Survey. The online voting System presents the Survey form to Server pages are described in documentation available from
first time readers. However, once the reader has cast a vote, Microsoft's Web site “www.microsoft.com', currently
under the section Internet Information Services.
the online voting System returns the Survey with the Voting The Web pages 34 are transmitted using conventional
tallies (but without an opportunity to vote again) So the network protocols, such as TCP/IP (Transmission Control
reader can view the Survey results. Protocol/Internet Protocol), HTTP (Hypertext Transfer
Over time, as the Survey becomes Stale, the editor may Protocol) and DCOM (Distributed Component Object
remove one or more questions or the entire Survey from the Model). The client-based browser, or other application,
Survey indeX table. The removed Surveys are automatically renders the Web page into human-perceptible forms. The
archived, along with their vote totals and percentages, in 15 Web page might include text, images, Sound, Video, active
persistent Storage. After archival, the Voting data for the code, and So forth.
removed Surveys is automatically deleted from the votes and Of particular interest in this system 20 is a technique for
totals tables.
conducting live online votes. In this illustration, the Server
BRIEF DESCRIPTION OF THE DRAWINGS 28 is shown running a Software-based Survey authoring tool
36 that allows an editor to construct online Surveys. It is
FIG. 1 is a diagrammatic illustration of a simple computer noted that the authoring tool may be alternatively (and
network System having a client and a Web site. preferably in Some cases) run on a separate editor's
FIG. 2 is a diagrammatic illustration of a Survey indeX computer, with the Survey information being written into the
table maintained as a database data Structure at the Web site. database. In one implementation, the authoring tool 36 is an
FIG. 3 is a diagrammatic illustration of a votes table 25 application program written in Visual Basic that facilitates
maintained as a database data Structure at the Web Site. entry of one or more questions, and the multiple choice
answers that may be selected in response to the questions.
FIG. 4 is a diagrammatic illustration of a totals table To illustrate the context, consider the following Scenario,
maintained as a database data Structure at the Web Site.
which will be relied upon throughout this discussion. Sup
FIG. 5 is a flow diagram showing Steps in an editorial pose the Web site 26 contains content on current events, Such
proceSS for creating an online Survey. as news, Sports, weather, Stocks, etc. With the time of year
FIG. 6 is a flow diagram showing Steps in an online Voting nearing the completion of the NBA regular Season, attention
proceSS. is focused once again on which team will capture the
FIG. 7 is a flow diagram showing Steps in flushing process coveted NBA crown as world champions. The obvious
for archiving old SurveyS. 35 dilemma, at least in 1998, is whether the Chicago Bulls can
win it all again. The editorial staff at the Web site 26 is also
DETAILED DESCRIPTION intrigued by this issue and decides to post a Survey to See if
A computer network System, particularly one on the Scale the readership expects the Bulls to repeat as NBA champi
ons. The editorial Staff constructs the following question:
of the Internet, has many host network Servers connected to 40 Do you think the Chicago Bulls will win the NBA title'?
serve data to many clients over a network. FIG. 1 shows a Yes
Simple computer network System 20 representative of the No
familiar, large-scale Internet environment. The System 20 The authoring tool 36 enables the editor to enter the text
has a client computer 22 resident at a user's premises. of the question, to number the question, and to enter the
Although illustrated as a desktop PC, the client computer 22 45 “yes” and “no” responses. The information entered by the
is representative of many different types of computing editor is stored in a survey database 38. The Survey database
devices, including portable computers, hand held computers, 38 is preferably implemented using Structured query lan
pagers, Web-phones, set-top boxes for TVs, and so forth. guage (SQL) technology, Such as the SQL Server product
The client computer 22 connects to the Internet 24 via a from Microsoft.
modem, network card, or other type of interface. The client 50 The Survey database 38 has three database structures or
computer 22 runs a Web browser application (not shown) to tables: a survey index table 40, a votes table 42, and a totals
access content provided on the World Wide Web. The Web table 44. The questions drafted by the editor are stored as
content is maintained at a variety of Web Sites, as repre entries in the Survey indeX table 40. That is, according to an
sented by Web site 26. aspect of this invention, the questions drafted by the editor
The Web site 26 has one or more server computers, 55 are conformed to a predefined, Standardized table Structure
collectively referred to as server 28. The server computers that can be reused over and over for different surveys.
may be implemented in various ways, including Unix-based Moreover, the Survey index table 40 holds questions for
Sever computers or PC-based computers that run the many different Surveys, thereby eliminating the cost and
Microsoft Windows NT Server operating system. The server hassles of building a new and Separate database infrastruc
28 runs a Web server software program 30 that accepts 60 ture for every new survey. The authoring tool 36 effectively
requests from the client-based Web browser, accesses a file operates as a front end for adding an entry to the common
system 32 containing pre-stored content in the form of Web Survey index table 40.
pages 34, and returns the requested page(s) to the client 22. FIG.3 shows the Survey index table 40 in more detail. For
The Web pages are commonly written in HTML any given Survey question, the Survey index table 40 holds
(hypertext markup language) and XML (eXtensible markup 65 all of the information used to present the question and to
language). Additionally, the Web pages 34 may be written as display the results of the question. The Survey index table 40
active Server pages, or “...asp' text files, using the active contains a survey ID field 50 to hold a unique identifier for
US 6,175,833 B1
S 6
the Survey and a question number field 52 to list the number multiple-choice options for answering the question and a
of one or more questions contained within the Survey. The totals field 86 to hold the voting totals for corresponding
Survey index table 40 also has a question text field 54 to hold questions.
the question drafted by the editor, an option number field 56 Notice that the Survey ID serves to relate information
to identify the multiple-choice options for answering the from the same survey in the three different tables 40-44. A
question, and an option text field 58 to hold the option Survey ID field is maintained in each table to allow cross
language written by the editor. The survey index table 40 referencing among the tables. The three-table architecture is
further includes a total votes field 60 to hold the voting totals advantageous as it prevents read and write queries from
for corresponding questions and answer options and a per blocking each other. Data can be Simultaneously written into
centage field 62 to hold the Voting totals as a percentage. the votes table 42 and totals table 44 while results are being
Some of the fields are filled in automatically, while other read from the Survey indeX table. Background procedures
fields contain data entered by the editor. The Survey ID field continuously update the Survey indeX table with the latest
50 contains a number or other unique identifier that is chosen results from the totals table 44.
by the editor for each new survey. The ID may simply be the With reference again to FIG. 1, the server 28 runs a vote
unique identifier (URL) of the story in which the Survey will 15 handler 46 that facilitates live online voting. In this
be displayed, or a slug (e.g. spt 0205 jordanretire) that implementation, the Vote handler 46 is a collection of Small
allows editors to quickly identify the Survey. The question programs written in Scripting and database languages. The
number field 52, question text field 54, option number field vote handler 46 includes a server-side voting script 47 and
56, and option text field 58 are all filled in by the editor, via several stored procedures (SPs) 48 for manipulating data in
the authoring tool 36. The last two fields 60 and 62 are filled the database tables 40-44. The stored procedures 48 are
in automatically by Stored procedures in the Survey database implemented, for example, as programs written in SQL (e.g.,
38 (discussed below in more detail). SQL Server from Microsoft). Although the vote handler is
The fields in the Survey index table 40 can be segregated illustrated generally for convenience of discussion, in prac
into two types: an editorial type, which is filled in during the tice the programs are run on two Separate application
editorial phase, and a results type, which is filled in auto 25 servers. Namely, the script 47 is run on the Web server and
matically while the Survey is in operation on the live Web the stored procedures are run on a database server (e.g., SQL
Site. Server).
Each question consumes multiple rows in the table. There In this implementation, there are four Stored procedures:
is an initial row 64 that marks the beginning of the question. a display procedure, a vote procedure, a tally procedure, and
This row 64 is associated with the question via the Survey ID a flush procedure. The display Script obtains the reader's
and holds the Voting totals and percentage for the entire GUID and the Survey ID when a page containing this Script
question. In this example, the total “6,087 in the first row is processed by the Web server. The display script passes this
64 of the total votes column 60 is the Sum of the votes for information to the display procedure in the Survey database.
each option below. The display procedure checks whether the reader has already
There is a row for each answer option of the question. In 35 voted in this survey. If the reader has voted before, the
this example, the question has two options and thus the table display procedure returns Survey results for display to the
entry includes two rows 66 and 68, one for each option. The reader. If not, the display procedure returns the Survey
middle row 66 contains the text of the “yes” option in field information to present the reader with a voting form.
58, and the voting results for that option in the total votes The Voting Script 47 receives the reader's vote, and passes
field 60 and percentage field 62. The last row 68 contains the 40 the vote to the vote procedure. The voting script 47 also
text of the “no” option in field 58 and the voting results for redirects the reader back to the content where he/she voted.
that option. The vote procedure receives a reader vote and checks
With reference again to FIG. 1, the Survey database 38 whether the reader has already voted in this survey. If not,
also maintains the votes table 42 and the totals table 44. the vote procedure writes the vote into the votes table 42,
These tables are used to track voters who cast votes in the 45 and updates the totals table 44. If the reader has voted
online Survey and to Store tallies of the votes. before, the Vote procedure returns Survey results for display
FIG. 3 shows the votes table 42 in more detail. The votes to the reader.
table 42 tracks which readers have cast votes in the current The tally procedure calculates totals and percentages of
Survey. The votes table 42 contains a survey ID field 70 to each question and option, for each Survey, using the data
hold the unique identifier assigned to the Survey. The votes 50 from the totals table 44. The tally procedure writes the totals
table also contains a GUID field 72 to hold a global unique and percentages into the appropriate fields 60 and 62,
identifier (GUID) of the browser software that submitted the respectively, of the Survey index table 40. This procedure is
vote. The Web server assigns this identifier when the executed periodically, Such as once per minute.
browser first requests a page from the Web site. The GUID The flush procedure removes votes and totals for Surveys
remains associated with that browser from that point on. The 55 that have been removed from the Survey index table 40. For
votestable 42 has a vote date time stamp field 74 to hold the instance, an editor may decide to delete a poll that has run
date and time that the vote was cast by the browser. The it course. Any remaining data in the tables 40-44 that
votes table 42 also has a question number field 76 and a corresponds to the removed Survey needs to be likewise
selected option field 78 to hold the number of the option removed. The flush procedure archives the totals and per
selected by the reader. 60 centages for Surveys that are being removed from the current
FIG. 4 shows the totals table 44 in more detail. The totals index and then deletes the data from the tables. The flush
table 44 cumulates the total votes cast for each answer procedure runs periodically and preferably on the same
option for a give Survey question. The totals table 44 schedule as replication of the Survey index table to the live
contains a survey ID field 80 to hold the unique identifier Web site.
assigned to the Survey and a question number field 82 to hold 65 The editorial proceSS and live online Voting proceSS will
the question number of the Survey question (if any). The now be described in the context of the Chicago Bulls Survey.
table 44 also has an option number field 84 to identify the The processes are described with reference to the flow
US 6,175,833 B1
7 8
diagrams in FIGS. 5 and 6, along with additional reference whether the reader has voted on this particular Survey.
to the system of FIG. 1 and the tables of FIGS. 2-4. Depending on the reader's Status, the control displays either
For simplicity Sake, Suppose the Chicago Bulls Survey a Survey question or the Survey results.
consists of only one question. At step 100 in FIG. 5, the In one implementation, the control is contained in an
editor invokes the authoring tool 36 to draft the desired 5 include command inserted into the HTML file. An example
question. The editor enters the question number “1” and of this command is as follows:
types in the text of the question (step 102 in FIG. 5). The <% LV name="some survey name 76> <!--if include
editor may elect for presentation purposes to leave the virtual="/modules/livevote/display.asp’-->
number blank Since there is only one question, which is The “LVname” feature allows the producer to present the
acceptable to the system. At step 104 in FIG. 5, the editor Same Survey and results in multiple locations Simulta
types in the possible responses, which in this example are neously.
“yes” and “no”. At step 106, the editor assigns a survey ID, Assuming the reader has not voted, the Web server
say number “1234", to the Chicago Bulls survey. It is noted retrieves the appropriate Survey from the Survey indeX table
that these editor entry Steps may be rearranged and are not 40 in survey database 38 (step 160 in FIG. 6) and inserts it,
limited to the specific order shown in FIG. 5. At this point, 15 without the poll results, into the Web page (step 162). The
the editor completes data entry Web server downloads the Web page with Survey in HTML
The authoring tool 36 creates a new entry for the Survey format to the client computer (step 164 in FIG. 6). In this
index table 40 (step 108 in FIG. 5). At step 110, the survey initial presentation, only the Survey question and options are
ID, question number, and accompanying text are entered presented, and not the poll results. Thus, the totals and
into respective fields 50, 52 and 54 of the table 40. Also, the percentages in the respective fields 60 and 62 of the Survey
possible answers are added to the option number field 56 and index table are not displayed in the HTML document that is
option text field 58, respectively. ultimately rendered by the client-side browser.
The Survey can be optionally tested offline (step 112 in The Web browser on the client computer renders the Web
FIG. 5). An advantage of this system is that the Survey index page, as represented by page 90 in FIG.1. The rendered page
table is standardized and used multiple times for different 25 has an area for the Story and a poll? quote area 92 for the
Surveys. Accordingly, the Web site operator can develop an Survey question. In the continuing example, the poll/quote
assurance that the Structure will work each time, as new area 92 lists the question as follows:
Surveys are added. For Simple Surveys, the editor can be Do you think the Chicago Bulls will win the NBA title'?
reasonably assured that the Survey will work once posted to Yes
the Survey database. However, the editor may still like to run No
an offline test just to check for presentation and typographi The reader decides to cast a vote in this Survey by clicking
cal errors. on one of the two responses. This mouse action causes the
The Survey index table 40 is replicated to the live site browser to submit a vote request to the Web server 30.
(step 114 in FIG. 5). The replication phase occurs periodi Again, with reference to FIG. 6, the Web server 30 receives
cally at predetermined intervals (step 116 in FIG. 5). For 35 the request (step 150). However, this time the request is for
instance, the Web Site operator may choose to replicate the the same page and contains a vote. Hence, the process takes
Survey index table 40 every fifteen minutes. This keeps the the “yes” branch from step 156. In implementation, the vote
Site current, and allows the editor to change the Survey by request is Sent to the dedicated voting Script, which passes
adding or removing questions, add new Surveys or remove the vote information to the Survey database and redirects the
old ones, and So forth, as the events change. 40 client-side Web browser back to the originating page.
After the editorial process is complete, the live online The vote request includes the reader's Selection (i.e.,
Voting process is ready for real-time operation. At Step 150 option “yes” or option “no'), the reader's GUID, the URL
in FIG. 6, the Web server 30 receives a request from the (universal resource locator) of the content containing the
client 22. The Web server 30 determines initially whether it survey, and the LVname (if any). The Web server 30 transfers
has received a request from this particular user, or more 45 the information to the vote handler 37, which passes the
particularly, from this particular Web browser (step 152 in information to a SQL Stored procedure for processing.
FIG. 6). If not (i.e., the “yes” branch from step 152, the Web The voting procedure of the vote handler 46 evaluates
server 30 assigns a unique GUID to the Web browser used whether the GUID in the vote request is recorded in the
to submit the request (step 154). Thereafter, and for each votes table 42 in conjunction with the particular Survey. If
Subsequent request from that Web browser, the Web server 50 the same GUID for the same question is recorded in the
determines whether the request is for a particular page that votes table 42, the reader has voted before on this survey and
has been requested before by that browser, or a new page for the vote is ignored. This condition is discussed below.
that browser (step 156 in FIG. 6). ASSuming this is the first time the reader has tried to vote
In this first pass, assume that the user has requested the on this question (i.e., the “yes” branch from step 168), the
Sports Story discussing the upcoming NBA playoffs. The 55 vote handler 46 adds the vote as a new entry to the votes
Web server 30 recognizes that this page has not been table 42 to indicate that the person associated with the
requested by this browser (i.e., the “no” branch from step particular GUID has now voted (step 170). Additionally, the
156), and retrieves the Web page 34 (i.e., the ASP file) Votes table 42 reflects which answer options the person has
containing the story from the file system 32 (step 158 in selected in his/her vote For example, in FIG. 3, the vote
FIG.6). 60 handler 46 creates an entry indicating that a perSon associ
The Web server 30 processes the ASP file to form a Web ated with the GUID “7034512" responded to the survey with
page that is passed to the user's computer 22. The ASP file an ID “1234" at approximately 1:08 PM on Apr. 30, 1998,
contains the text for the Story and an in-story Voting control and that this perSon voted for answer option 1 in question 1.
for facilitating presentation of the Survey. The control is a This information reflects that the person voted “yes” to
combination HTML and server-side commands. When the 65 question 1 of the Chicago Bulls Survey.
Web page is loaded into the Web Server, the control queries The tally procedure of the vote handler 46 adjusts the
the Survey database 38 at the Web site 26 to determine voting totals for the Survey question in the totals table 44
US 6,175,833 B1
9 10
(step 172 in FIG. 6). In FIG. 4, a vote for the “yes” option Although the invention has been described in language
1 results in incrementing the value 4,352 by one vote. Specific to Structural features and/or methodological Steps, it
Alternatively, a vote for the “no” option 2 results in incre is to be understood that the invention defined in the
menting the value 1,735 by one vote. appended claims is not necessarily limited to the Specific
The survey index 40 table is updated periodically by the features or Steps described. Rather, the Specific features and
tally procedure with the most recent vote tallies (steps 174 StepS are disclosed as preferred forms of implementing the
and 176 in FIG. 6). As an example, the vote handler 46 claimed invention.
updates the Survey index table 40 every minute. More What is claimed is:
Specifically, for a given question, the Vote handler extracts 1. An online Voting System for facilitating live interactive
the totals for all answer options from the totals field 86 in the online voting, comprising:
totals table 44 and sums them together. The vote handler a Survey database to Store one or more Surveys, each
than computes corresponding percentages reflecting the per Survey having at least one question and answer options
centage of readers answering “yes” and the percentage of to the question;
readers answering “no”. The vote handler inserts the new a Server to Serve the Surveys over a network to users,
totals and percentages into the total votes field 60 and 15
a vote handler to proceSS votes cast by the users in
percentage field 62, respectively, of the Survey indeX table response to the Surveys,
40. Accordingly, these results type fields are automatically
updated in periodic fashion (e.g., once per minute). a Survey indeX table maintained in the Survey database to
Now, Suppose the reader returns to the page with the hold the Surveys, the Survey indeX table correlating the
Survey. In response to the user's action, the Web browser Survey questions, the answer options to the Survey
submits a request for the page to the Web server 30. The Web questions, and the Voting results of the Survey ques
server 30 receives the request (step 150). Since this request tions,
is not the first one for this page (i.e., the “yes” branch from a votes table maintained in the Survey database to track
step 156) and since the user has already voted for the Survey which users have cast the Votes and which options each
(i.e., the “no” branch from step 168), the Web server 30 25 Voter has Selected;
retrieves the Web page 34 (i.e., the ASP file) containing the a totals table maintained in the Survey database to hold
story from the file system 32 (step 178 in FIG.6). The Web tallies of the votes in correspondence with ones of the
server 30 processes the ASP file to form the ultimate Web answer options of the Survey questions, the tallies being
page presented to the reader. used to update the Voting results in the Survey indeX
This time the “include” command indicates that the table; and
Survey results are to be included with the survey. The Web wherein the Survey index table is used by the server to
Server retrieves the appropriate Survey from the Survey indeX either (1) present the Survey questions and correspond
table 40 (step 180 in FIG. 6) and inserts it, along with the ing answer options to the users, or (2) display the
totals and percentages, into the Web page (step 182). The Voting results in conjunction with the Survey questions.
Web server downloads the Web page with Survey in HTML 35 2. An online voting System as recited in claim 1, wherein
format to the client computer (step 184 in FIG. 6). the Survey index table holds multiple different Surveys.
This time, when the Web browser on the client computer 3. An online voting System as recited in claim 1, wherein
renders the Web page, the Survey question in the poll/quote the Survey index table has editorial fields to hold the Surveys
area 92 looks as follows: constructed by an editor and result fields to hold the voting
Do you think the Chicago Bulls will win the NBA title'? 40 results, the result fields being automatically updated from
Yes (71.5%) the tallies held in the totals table without intervention from
No (28.5%) the editor.
Total votes: 6,087 4. An online voting System as recited in claim 1, wherein
The method prevents users from voting twice. If the user the Survey indeX table comprises:
attempts to vote again, the vote handler 46 will recognize 45 a Survey ID field to hold unique identifiers for the Surveys;
that the GUID for that question is already recorded in the a question number field to list numbers of the Survey
votes table. As a result, the process is returned to step 178 questions,
for construction of the Survey with results included. a question text field to hold text of the Survey question as
FIG. 7 shows the steps in the Survey flushing procedure. drafted by an editor;
The flush procedure of the vote handler 46 wakes up 50
an option number field to identify the answer options for
periodically (step 200). Preferably, the flush procedure is answering the Survey questions,
initiated every replication cycle when the editors offline an option text field to hold text of the answer options as
copy of the table is replicated to the live site. At step 202 in drafted by the editor; and
FIG. 7, the flush procedure detects any change in the editor's a voting results field to hold the Voting results.
copy of the Survey index table. Over time, as the poll 55
5. An online voting System as recited in claim 4, wherein
becomes Stale, the editor may delete one or more questions the Voting results field comprises:
or the entire Survey from the Survey index table 40. The
corresponding totals and percentages in fields 60 and 62 a totals field to hold total votes cast for corresponding
remain, however, because the editor does not have access to ones of the Survey questions and the answer options,
and
these fields. Likewise, the data for the deleted question(s)/ 60
survey(s) in the votes and totals tables 42 and 44 remains. a percentage field to hold the percentage of votes cast for
The flush procedure of the vote handler 46 archives a copy corresponding ones of the answer options.
of the deleted question(s)/Survey(s), along with the totals 6. An online Voting System as recited in claim 1, wherein
and percentages contained in the online indeX table, in the totals table comprises:
persistent storage (step 204 in FIG. 7). After archival, the 65 a Survey ID field to hold unique identifiers for the Surveys;
flush procedure deletes the voting data from all three tables a question number field to list numbers of the Survey
(step 206 in FIG. 7). questions,
US 6,175,833 B1
11 12
an option number field to identify the answer options for answer options of the Survey questions, the tallies being
answering the Survey questions, and used to update the Voting results in the Survey indeX
a totals field to hold total votes cast for corresponding table; and
ones of the answer options. wherein the Survey index table is used by the server to
7. An online voting System as recited in claim 1 and 5 either (1) present the Survey questions and correspond
further comprising an authoring tool to permit an editor to ing answer options to the users, or (2) display the
construct the Surveys that are Stored in the Survey indeX Voting results in conjunction with the Survey questions.
table. 10. A standardized database structure stored in a
8. An online voting System comprising: computer-readable medium for facilitating interactive online
Survey database to Store one or more Surveys, each Survey Voting, comprising:
having at least one question and answer options to the editorial fields to hold content entered by an editor to
question; construct a Survey, the editorial fields holding written
a Server to Serve the Surveys over a network to users, text of the Survey and possible answer options as
a vote handler to proceSS votes cast by the users in 15
drafted by the editor;
response to the Surveys, at least one result field to hold voting results for the
a Survey indeX table maintained in the Survey database to Survey, and
hold the Surveys, the Survey indeX table correlating the wherein the database structure can be used to (1) present
Survey questions, the answer options to the Survey the survey to a reader without the voting results if the
questions, and the Voting results of the Survey ques reader has not previously answered the Survey, and (2)
tions, show the Voting results if the reader has previously
a votes table maintained in the Survey database to track answered the Survey.
which users have cast the Votes and which options each 11. A Standardized data Structure as recited in claim 10,
Voter has Selected; wherein the editorial and result fields hold multiple Surveys
a totals table maintained in the Survey database to hold 25 and correlate the multiple Surveys with corresponding Voting
tallies of the votes in correspondence with ones of the results.
answer options of the Survey questions, the tallies being 12. A Web site that supports interactive online voting,
used to update the Voting results in the Survey indeX comprising:
table; a Web server to serve the online survey and to receive
wherein the Survey index table is used by the server to Votes to the Survey,
either (1) present the Survey questions and correspond a database to Store the Survey and the Votes thereto, and
ing answer options to the users, or (2) display the a Standardized database Structure as recited in claim 10
voting results in conjunction with the Survey questions; Stored in the database.
and 13. A Standardized database Structure Stored in a
35
a flushing process to archive the Surveys automatically to computer-readable medium for facilitating interactive online
persistent Storage after an editor removes the Surveys Voting, comprising:
from online distribution. a Survey ID field to hold unique identifiers for one or more
9. An online voting System for facilitating live interactive Surveys,
online voting, comprising: 40 a question number field to list numbers of questions in the
a Survey database to Store one or more Surveys, each Surveys,
Survey having at least one question and answer options a question text field to bold text of the Survey questions as
to the question; drafted by an editor;
a Server to Serve the Surveys over a network to users, an option field to identify answer options for answering
a vote handler to proceSS votes cast by the users in 45 the Survey questions,
response to the Surveys,
a Survey indeX table maintained in the Survey database to an option text field to bold text of the answer options as
hold the Surveys, the Survey indeX table correlating the drafted by the editor; and
Survey questions, the answer options to the Survey a voting results field to hold voting results derived from
questions, and the Voting results of the Survey ques 50
multiple readers.
14. A Standardized database Structure as recited in claim
tions, 13, wherein the Voting results field comprises:
a votes table maintained in the Survey database to track a totals field to hold total votes cast for corresponding
which users have cast the Votes and which options each ones of the Survey questions and the answer options,
Voter has Selected, the votes table comprising: and
(a) a Survey ID field to hold unique identifiers for the 55
Surveys, a percentage field to hold the percentage of votes cast for
(b) voter ID field to hold unique identifiers for the users corresponding ones of the answer options.
who cast votes, 15. A Standardized database Structure as recited in claim
(c) a time Stamp field to hold times when corresponding 13, wherein the question number field, question text field,
users cast their respective votes, 60 option field, and option text field Store data entered by the
(d) a question number field to hold numbers of the editor, and the Voting results field Store the Voting results
Survey questions voted on by the users, and automatically without intervention from the editor.
(e) a Selected option field to hold the answer options 16. A Web site that supports interactive online voting,
Selected by the users for corresponding Survey ques comprising:
tions, 65 a Web server to serve the online survey and to receive
a totals table maintained in the Survey database to hold Votes to the Survey,
tallies of the votes in correspondence with ones of the a database to Store the Survey and the Votes thereto, and
US 6,175,833 B1
13 14
a Standardized database Structure as recited in claim 13 creating a Survey having one or more questions, each
Stored in the database. question having answer options from which readers are
17. A Standardized database architecture for facilitating to Select when casting a vote;
live online voting, the database architecture being embodied Storing the Survey in a Survey index table;
as multiple database table Structures Stored in a computer upon receipt of first time requests from readers, down
readable medium, comprising: loading the Survey from the Survey index table to the
a Survey indeX table to hold one or more Surveys, the readers,
Survey indeX table correlating Survey questions, answer tallying the votes to the Survey from the readers,
options to the Survey questions, and Voting results of
the Survey questions, 1O Storing the Voting results in the Survey index table in
a votes table to track which Voters have cast votes in correlation with the questions and answer options,
response to the Surveys and which options each voter upon receipt of non-first time requests from the readers,
has Selected; and downloading the Voting results from the Survey index
a totals table to hold tallies of the votes in correspondence table to the readers, and
with particular ones of the answer options of the Survey 15 removing the Survey from the Survey indeX table.
questions, the tallies being used to update the Voting 24. A method as recited in claim 23, further comprising
results kept in the Survey index table. the following Steps, prior to the removing Step:
18. A Standardized database architecture as recited in creating a Second Survey having one or more questions,
claim 17, wherein the Survey index table can be read each question having answer options from which read
concurrently while the votes table or the totals table is being ers are to Select when casting a vote;
written. Storing the Second Survey in the Survey indeX table along
19. A Standardized database architecture as recited in with the first Survey;
claim 17, wherein the survey index table comprises: upon receipt of first time requests from readers, down
a Survey ID field to hold unique identifiers for the Surveys; 25 loading the Second Survey from the Survey indeX table
a question number field to list numbers of the Survey to the readers,
questions, receiving votes to the Second Survey from the readers,
a question text field to hold text of the Survey question as tallying the votes to the Second Survey to derive voting
drafted by an editor; results for the Second Survey; and
an option field to identify the answer options for answer Storing the Voting results for the Second Survey in the
ing the Survey questions, Survey indeX table in correlation with the questions and
an option text field to hold text of the answer options as answer options in the Second Survey.
drafted by the editor; and 25. A method as recited in claim 24, further comprising
a voting results field to hold the Voting results. 35
the following Step:
20. A Standardized database architecture as recited in automatically archiving the Survey, along with the Voting
claim 19, wherein the voting results field comprises: results.
a totals field to hold total votes cast for corresponding 26. A method for operating an interactive online voting
ones of the Survey questions and the answer options, system in which a Web site provides Surveys inviting readers
and to cast votes using their computers, the Voting System having
40
a percentage field to bold the percentage of votes cast for a Survey database to Store one or more Surveys with each
corresponding ones of the answer options. Survey having at least one question and multiple answer
21. A Standardized database architecture as recited in options to the question and a Server to Serve the Surveys over
claim 17, wherein the votes table comprises: a network to the readers, the method comprising the fol
a Survey ID field to hold unique identifiers for the Surveys; 45
lowing Steps:
a voter ID field to hold unique identifiers for the users who Storing Survey questions and answer options for a Survey
cast Votes, in a Survey index table;
a time Stamp field to hold times when the users cast their receiving votes cast by the readers for individual answer
respective votes, options in response to the Survey,
a question number field to hold numbers of the Survey 50 recording identifiers associated with the individual read
questions voted on by the users, and ers who cast votes along with the answer options
a Selected option field to hold the answer options Selected Selected by the readers in a votes table;
by the users for corresponding Survey questions. cumulating the vote totals for the individual answer
22. A Standardized database architecture as recited in
55
options in a totals table;
claim 17, wherein the totals table comprises: tallying the vote totals for individual Survey questions,
a Survey ID field to hold unique identifiers for the Surveys; periodically recording the vote totals for the Survey ques
a question number field to list numbers of the Survey tions and the answer options in the Survey index
questions, table;and
an option field to identify the answer options for answer 60 removing the Survey from the Survey indeX table.
ing the Survey questions, and 27. A method as recited in claim 26 further comprising the
a totals field to hold total votes cast for corresponding Step of concurrently reading data from the Survey indeX table
ones of the answer options. while writing data to the votes table or the totals table.
23. A method for operating an interactive online vote in 28. A method as recited in claim 26 further comprising the
which a Web site provides Surveys inviting readers to cast 65 following Step:
Votes using their computers, the method comprising the automatically archiving the Survey, along with the Vote
following Steps: totals for the Survey.
US 6,175,833 B1
15 16
29. A data structure, Stored in a computer-readable 30. A method for operating an interactive online vote in
medium, forming a votes table for use in online Voting, the which a Web site provides Surveys inviting readers to cast
Votes table comprising: Votes using their computers, the method comprising:
a survey ID field to hold unique identifiers for the survey; presenting a Survey to the readers, the Survey having one
a voter ID field to hold unique identifiers for the user who or more questions, each question having answer
cast Votes, options from which the readerS Select to cast a vote;
a time Stamp field to hold times when corresponding users receiving votes for the Survey from the readers, and
cast their respective votes, correlating a time Stamp to each vote received which
a question number field to hold numbers of the Survey indicates the time when the reader cast that particular
questions voted on by the users, and VOte.
a Selected option field to hold the answer options Selected
by the users for corresponding Survey questions.
UNITED STATES PATENT AND TRADEMARK OFFICE
CERTIFICATE OF CORRECTION

PATENT NO. : 6,175,833 B1 Page 1 of 1


DATED : January 16, 2001
INVENTOR(S) : Brenden West et al.

It is certified that error appears in the above-identified patent and that said Letters Patent is
hereby corrected as shown below:

Column 1
Line 28, change “www.msnbe.com” to -- www.msnbc.com --.
Line 56, change “real-tine' to -- real-time --.
Column 11
Line 10, add -- a-- before “survey'.
Line 57, add -- a-- before “voter'.
Column 12
Lines 42 and 46, change “bold' to -- hold --.
Column 13
Line 41, change “bold' to -- hold --.

Signed and Sealed this


First Day of April, 2003

JAMES E ROGAN
Director of the United States Patent and Trademark Office

You might also like