AUTOMATED POLLING SYSTEM AND METHOD

Abstract: A method of automated polling within a computer network, said computer network comprisinga central controller (11) and at least one terminal (2-4, 6-8) adapted for communication with the central controller, the method including the steps of: transmitting from the terminal to the central controller data (65) identifying one or more statements voted for by one or more users; maintaining a database (64) of the statements voted for by users; anddetermining in the central controller the frequency of voting for each statement maintained in the database.

Description: AUTOMATED POLLING SYSTEM AND METHOD The present invention relates generally to polling systems and methods for automatically determining information or opinions from a number of persons and relates in particular to computer or computer based systems and methods of this type. Market research companies, political parties and business organisations, frequently attempt to gauge public opinion and predominate trains of thought in the community. Currently, polling organisations attempt to measure public opinion by analysing responses to specific questions. This means that the issues canvassed are limited by the preconceptions of those producing the poll. Moreover, delays may exist between the development of a public issue and the production of a poll testing that issue. Further, the interpretation of these polls is often subject to interference. It would be desirable to measure public opinion in a manner which alleviates or overcomes one or more of these problems. It would also be desirable to provide a means of measuring public opinion which is simple, convenient and enables the participation of large number of individuals. With this in mind, one aspect of the present invention provides a method of automated polling within the computer network, the computer network comprising a central controller and at least one terminal adapted for communication within the central controller, the method including the steps of: transmitting from the terminal to the central data identifying one or more statements voted for by one or more users; maintaining a database of the statements voted for by users; and determining in the central controller the frequency of voting for each statement maintained in the database. An automated polling method having the steps enables individuals to vote for statements that express opinions on any issue, at any time and from any location without prompting. These statements are then analysed in order to determine the predominant issues of the individuals being polled. The method may further include the step of displaying at the terminal a list of one or more of the statements hierarchically arranged in order of frequency of voting. One or more statements may be voted for by each user from the displayed list. Alternatively, one or more statements voted for, for each user, may be composed by that user. Conveniently, one or more statements previously voted for by users that are similar to the statement initially composed by that user may be displayed at the terminal. These may then be enabled to substitute one of the statements previously voted for by users for the statement initially composed by that user, and data identifying the substituted statement transmitted to the central controller. A method may further include the step of displaying at the terminal one or more statements previously voted for by users that are similar to the statement composed by the user, enabling the user to associate one or more of the displayed statements previously voted for by users with the statement composed by the user, and transmitting the central controller data identifying the association of the statements. The list of statements displayed at the terminal may be at least partly selected from those statements voted for by users within a predetermined time period. The method may also comprise the step transmitting from the terminal to the central controller demographic information characterising the user having voted for each statement. The list of statements displayed at the terminal may be at least partly selected from those statements voted for by users that match one or more selected demographic criteria. Conveniently, that selected demographic criteria may be transmitted from the terminal to the central controller. For each displayed statement, aggregate demographic information characterising users having voted for that statement may be displayed at the terminal. The statements voted for by users may relate to predefined subject matter, in order that opinions on a variety of topics be ascertained. In one embodiment of the invention, a method may further include the step of notifying one or more users when the frequency of voting for one or more selected statements exceeds a predetermined threshold. The users may be notified, for example, by means of an electronic message, such as an email, SMS or WAP message. The central controller and the at least one terminal may be connected to a computer network, such as the Internet, Intranet or virtual private network. According to another aspect of the present invention, there is provided an automated polling system, comprising a central controller including a CPU and a memory operatively connected to the CPU; and at least one terminal, adapted for communication with the central controller, for transmitting to the central controller data identifying one or more statements voted for by one or more users, wherein the central controller maintains a database of statements voted for by users, and wherein the memory in the central controller contains a program, adapted to be executed by the CPU, for determining in the central controller the frequency of voting for each statement maintained in the database. In another aspect, the present invention provides a computer program element for an automated polling system, the system comprising a central controller including a CPU and a memory for storing the computer program element operably connected to the CPU, and at least one terminal, adapted for communication with the central controller, a computer program element comprising, computer program code means for causing the central controller to: received data, transmitted from the terminal, identifying one or more statements voted for by one or more users; maintain a database of the statements voted for by users; and determine the frequency of voting for each statement maintained in the database. In a further aspect of the present invention, there is provided a computer read all memory, encoded with data representing a computer program, for an automated polling system, the system comprising a central controller including a CPU and said computer readable memory operatively connected to the CPU, and at least one terminal, adapted for communication with the central controller, said computer program causing the central controller to: receive data, transmitted from the terminal, identifying one or more statements voted for by or more users. maintain a database of the statements voted for by the users; and determine the frequency of voting for each statement maintained in the database. The following description refers in more detail to the various features of the present invention. To facilitate an understanding of the invention, reference is made in the description to the accompanying drawings where the automated polling system and method is illustrated in a preferred embodiment. It is to be understood, however, that the method and system of the present invention are not limited to the preferred embodiment as illustrated in the drawings. In the drawings: Figure 1 is a schematic diagram illustrating a computer network in which one embodiment of an automated polling system according to the present invention is implemented; Figures 2 to 10 are graphic representations of information displayed on a terminal of the computer network of Figure 1 during polling; Figure 11 is a table illustrating the storing of data in a database within a central controller of the automated polling system of Figure 1 ; and Figures 12 to 14 are flow diagrams illustrating the operation of the automated polling system of Figure 1. Referring now to Figure 1, there is shown generally an automated polling system 1 comprising personal computers or like terminals 2, 3 and 4 connected to an Internet Service Provider 5. Similarly, terminals 6, 7 and 8 are connected to an Internet Service Provider 9. Internet Service Providers 5 and 6 are both connected to a network 10 of interconnected computers, such as the Internet, Corporate Intranet or like computer network. A server 11 forms part of the computer network 10 and includes a CPU 12 or like data processing means and a memory 13 for the storage of data and computer program code. The Internet Service Providers 5 and 9 enable end users of the terminals 2 to 4 and 6 to 8 to access and send information to the remote server 11 by means of Internet Protocol (IP) data packets. Data corresponding to one or more text documents embedded with Hyper Text Markup Language (HTML) tags, Java Scrips and graphics are hosted at IP addresses in the remote server 11. A World Wide Web (WWW) browser is installed at each of the terminals 2 to 4 and 6 and 8 in order that the text documents and graphics transmitted from the remote server 11 are able to be formatted - due to the embedded HTML tags and Java Scripts - for display at each terminal. Similarly, the web browser conveniently enables data to be entered by a user into fields displayed at each terminal, and then for this data to be transmitted to the remote server 11. The operation of the automated polling system will now be described with reference to Figure 12. At step 20, a user of, for example, terminal 2 establishes a connection with the Internet Service Provider 5 and is consequently provided with access to the computer network 10. At step 21, the user enters the Uniform Resource Locator (URL) that define the route to a file hosted in the memory 13 of the remote server 11 corresponding to the automated polling system. The Internet Service Provider 5 determines the Internet Protocol (IP) address of that file and establishes an IP session between that file and the terminal 2. At step 22, the text, HTML tags, Java Scripts and graphics of the home page associated with that file are sent to the terminal 2. At step 23, the web browser installed at the terminal 2 displays a corresponding web page to the user of the terminal 2. A representative web page 40 is shown in Figure 2. The web page 40 includes a "voting booth" section and a "tuner" section, the function of which will be explained below. A user may select to "create new placard" from the web page 40, in order for a user to compose a "placard" or statement consisting of one or more words corresponding to an issue of importance to that user at that time. In other embodiments, responses may be sought from users in relation to predefined subject matter. The web page 41 shown in Figure 5 is then displayed to the user. At step 24, the user is invited to create a new statement. Fields are also provided to enable the user to enter demographic information characterising that user at step 25. In the this example, fields enabling the user to enter their country, state, zip/post code, age and gender are provided. At step 26, the user, having firstly entered at new statement and demographic information activates a "submit" graphic button on the web page 41 so that the web browser causes the terminal 2 to transmit the entered information to the remote server 11. At step 27, the computer program in the memory 13 causes the CPU 12 to review the transmitted data to determine whether the submitted phrase includes one or more forbidding or censored words or phrases, and whether the maximum number of words in each phrase and total number of characters allowed in each phrase have been exceeded. The values for both these criteria are predetermined by the web master responsible for the hosting of the automated polling system web site. In addition, the number of times a user submits one or more phrases during a sample period may be determined by the computer program in order to avoid "stacking". This may be done using cookies or by recording the IP address. If any of the criteria examined in step 27 are not met, the remote server 11 sends, at step 28, error text and corresponding HTML tags to the terminal 2 for display, at step 29 of a corresponding error message to the user. Alternatively, the data submitted by the user is compared to previous statements voted for by users and maintained in a database in the memory 13 at the remote server 11. Figure 11 illustrates one example of such a database 60 comprising data table 61 to 69. The data tables comprise a history data table 61, a word data table 62, a word data phrase data table 63, a phrase data table 64, a votes data table 65, a country data table 66, a states data table 67, a city data table 68 and an age group data table 69. The phrase data table 64 and votes data table 65 are the only two tables in which data is able to be inserted. Each record in the phrase data table 64 includes a PhraselD field for storing an integer identifier of each phrase, a phrase field for storing the series of characters in each phrase, and a PhraseHash field for storing a hash value corresponding to the series of characters stored in the phrase field. A separate record is created in the phrase data table 64 for each unique phrase entered by users. The votes data table 65 includes separate records for each unique combination of PhraselD and CitylD, StatelD, CountrylD and AgeGroupID of a user voting for the phrase identified by that PhraselD. Each record also includes a VotelD field for recording the number of times that unique combination of phrase and demographic information have been input by users. In addition, the votes data table 65 includes a TotalVotes field for recording the total number of votes recorded, a TotalWeightedVotes field for recording the number of votes made for each phrase, a LastPeriodVotes field for recording the number of votes made during a pre-selected sample period, a LastPeriodWeightedVotes field for recording the total number of votes made for a selected phrase during the last sample period, an AverageAge field for recording the average age of users voting, a WeightedAverageAge field for calculating the average age of users voting for a selected phrase, a NumOfMale field for recording the total number of males voting and a weighted NumOfMale field for recording the number of males voting for a particular phrase. At step 30 in Figure 12, the statement composed by the user using the web page 41 is firstly verified in the phrase data table 64 to determine if the phrase already exists, and whether statements similar to those entered have also been stored in the phrase data table 64. Matching and similar statements are then transmitted from the server 8 to a remote terminal for display at step 31. Figure 6 shows one example of the manner in which these statements may be displayed. At step 32, the user may choose to select one or more of the phrases that are similar to the phrase initially composed by that user at web page 41, to enable substitution of that statement for the statement initially composed by the user. Alternately, at step 33, the user will be invited via web page 43 shown in Figure 7, to enter an explanation of the meaning of the new statement entered via web page 41. In addition, keywords may be entered at step 34 to enable the statement entered by the user to be more easily searched in the database stored in the memory 13 at the remote server 11. The information entered by the user at web page 43 shown in Figure 7 is then transmitted from a remote terminal to the server 11. At step 35, as a determination is made within the remote server 11 as to whether any possible associated statements having been previously vote for by users, and at step 36 these similar statements are transmitted to a remote terminal for display. An example of the manner in which these statements may be displayed is shown via web page 34 of Figure 8. By selection of one or more similar previously voted for statements, a user is able to associate the statement composed via the web page 41 with other similar statements or "placards", to create a "picket" of statements or expressing similar views. Following selection of any possible associated statements at step 37, the user may presented with a list of categories, via a web page 45, shown in Figure 9, that may categorise the nature of the statement entered at web page 41. At step 38, a user is able to select one or more of these categories to categorise that user's composed statement. The information selected and entered in steps 37 and 38 is then transmitted to the server 11. At step 139, a new PhraselD is generated for the statement composed by the user and all corresponding fields inserted into the phrase data table 64. A corresponding record is also created in the vote data table 65. The total votes field and total weighted votes field for that PhraselD are updated together with the corresponding age GroupID, CountrylD, StatelD and City ID fields. The AverageAge, WeightedAverageAge, NumOfMale and WeightedNumOfMale fields are then recalculated and updated. At step 140, the records stored in the database 60 are assessed to determine the frequency of voting for the phrases entered by the various users. A list of phrases previously voted for by users, arranged in hierarchical order of frequency of voting, may be determined from those phrases transmitted to the remote server 11, within a predefined time or sample period. At step 141, the hierarchically arranged list of phrases is incorporated in the web page text, HTML tags, Java Scripts and graphics and, at step 142, the web page is transmitted to the terminal 2. At step 143, the updated web page is displayed at the terminal 2. As can be seen in Figure 2, the hierarchically arranged phrase list is displayed, together with the number of votes or occurrences of each phrase within the sample period, the average age of voters for that phase, and the average number of males/females voting for that phrase. Conveniently, instead of composing a new phrase at step 24, a user may select one or more displayed phrases causing that phrase to be automatically typed in a window in the "voting booth" display on web page 40 of the web page. An example is shown in the web page 47 of Figure 3. In this example, the demographic information may be supplied by the user by entry of information in the appropriate fields of the "voting booth" display. The computer program stored in the remote server 11 is also adapted to notify users, authors or other entities when the frequency of occurrence of one or more selected phrases exceeds a predetermined threshold. As seen in Figure 13, upon establishment of a connection from the terminal 2 to the Internet at step 70, accessing the automated polling system file at step 71 , being sent the corresponding text, HTML tags, Java Scripts and graphics at step 72, and having displayed at step 73 the web page 40, a user may choose to activate a graphical button 50 (at step 74) to request such a notification ("Issue Alerts"). At step 75, the user is presented with an additional web page enabling them to enter a key word, words or phrase which is to be monitored. In addition, the user can enter a return email, facsimile or other address to which such notification is to be forwarded. The data is then submitted at step 77 to the remote server 8 and stored at step 78. At step 79, the frequency of occurrence of the entered key word, words or phrase is continuously monitored. If the frequency of occurrence of the selected word, words or phrase exceeds a predetermined threshold, an email or like notification is generated. In this example, at step 80, an email notification is forwarded to the Internet Service Provider 5 and then stored, at step 81 , for subsequent retrieval by the user of the terminal 2. In other embodiments of the invention, notifications may be provided when key word or words appear in popular phrases, disappear from popular phrases, is used by specified percentage of users, ceases to be used by specified percentage of users or other sorting or filtering criteria. Notifications can also be based on the occurrence of nominated phrases. Advantageously, a user, having firstly established connection with the Internet and had displayed at the terminal 2 the web page 40, in steps 90 to 93 of Figure 14, is able to conduct a search of the records in the database 60 according to selected demographic and other criteria. Accordingly, at step 94, a user selects the demographic criteria by which the records entered in the database 60 are to be filtered, and at step 95, submits this search criteria to the remote server 11. The relevant search criteria may be selected and entered by the user in a number of manners. For example, the web page 40 shown in Figure 2 includes a series of drop down menus in the "tuner" display enabling selection by a user of a particular country, state or zip/post code by which the records are to be filtered. Similarly, drop down windows are provided to enable a user to search for those statements voted for by users within a predetermined time period, and for those statements categorised by the various categories shown on the web page 45 of Figure 9. A search may also be conducted using a "placard search" window provided in the "tuner" display of web page 40 to enable a search to be conducted on the keywords entered by users in relation to the statements composed. Various other demographic and other search criteria will be easily envisaged by the skilled addressee. At step 96, the computer program in the remote server 11 causes the CPU 12 to filter records in the database 60 according to the entered search criteria. At step 97, a list of one or more of the phrases in the filtered records are hierarchically arranged in order of frequency of occurrence and, at step 98, included in the text and HTML tags sent to the terminal 2 for display at step 99. Typically, only those phrases voted for during a single sample period, such as the previous 24 hours or month. Users are typically able to vote for one or a limited number of phrases once only during any given sample period. Should a user wish to use the "tuner" display to view phrases voted for during more than one previous sample period, various means for viewing that data may be provided. For example, the user may presented with the cumulative number of votes recorded for each phrase during the selected sample periods. Alternatively, the average number of votes received for each phrase during each sample period within the total number of sample periods may be displayed. The number of unique voters having voted for each phrase during the selected sample periods may also be displayed. Other alternatives may easily be envisaged by the skilled addressee. A back office feature of the computer program enables a quality controller with authorised password access to view online all phrases prior to publication and delete any phrases that violate the published rules, (eg obscene phrases that get past the automatic filter). The webmaster has control over a delay switch that prevents publication of the popular phrases until the quality controller clicks an OK button. (As the bad word filter improves the delay switch may be switched off). A variation of the computer program in the remote server 11 enables authors to enter more than one phrase in a single sample period but these multi-phrase votes may be required to be submitted at the same time to prevent stacking. The maximum number of phrases is set by the webmaster. In the example shown in the "voting booth" of Figure 3, up to 5 phrases may be voted for at any one time by a user. Multi-phrase inputs may be weighted so that individual phrases are treated as fractional votes. The sum of the fractional votes adding to one. By default all phrases in a multi-phrase vote have the same weighting. For example, a 10-phrase vote will produce a default weighting of .1 vote for each phrase. This weighting is displayed for the author to see as they add phrases to the submit window. The weighting on individual phrases can be adjusted by the author prior to submitting (however no phrase can have a weighting greater than 1). For example in a 10 phrase vote if the weighting on the first phrase is adjusted from .1 to .2 the weighting on the remaining nine phrases is changed automatically to .8/9. The weighting on any phrases may be fixed prior to adjusting the weighting of another phrase. A phrase cannot be adjusted unless at least one other phrase in the group remains unfixed. An alternative multi-phrase input treats each phrase as one vote but records separately the total number of authors in the sample period. This version enables the total number of people interested in each phrase to be known directly from the frequency but may produce a less accurate measure of the leading issues. It is to be understood that various modifications and/or additions may be made to the automated polling system and method without departing from the ambit of the present invention as previously described. For example, the present invention is suitable for use in a variety of different contexts. Authors may be invited to enter a phrase that adds to a collective poem or story that unfolds in time. The phrases may be processed in a manner similar to the processing previously described, except that only the most popular phrase in each process period is retained and added to the developing story. The story may be divided into paragraphs. The most recent paragraph and the paragraph currently in development may be displayed on the main story web page. The number of words in each paragraph may be set by the webmaster. Previous paragraphs may be displayed in an archive web site linked to the story URL. Several developing stories may exist simultaneously. For example, each paragraph in a story may be seeded by the highest frequency phrase in the popular phrases taken from the most recent sample period. Another story may be unseeded. Other applications of the present invention may also be envisaged.

Claims: CLAIMS 1. A method of automated polling within a computer network, said computer network comprising a central controller and at least one terminal adapted for communication with the central controller, the method including the steps of: transmitting from the terminal to the central controller data identifying one or more statements voted for by one or more users; maintaining a database of the statements voted for by users; and determining in the central controller the frequency of voting for each statement maintained in the database. 2. A method according to claim 1, and further including the step of: displaying at the terminal a list of one or more of the statements hierarchically arranged in order of frequency of voting. 3. A method according to claim 2, wherein one or more statements are voted for by each user from said list. 4. A method according to any one of the preceding claims, wherein one or more statements voted for by each user are composed by that user. 5. A method according to claim 4, and further including the step of: displaying at the terminal one or more statements previously voted for by users that are similar to the statement initially composed by that user, enabling the user to substitute one of the displayed statements previously voted for by users for the statement initially composed by the user, and transmitting data identifying the substituted statement to the central controller. 6. A method according to either one of claims 4 or 5, and further including the step of: displaying at the terminal one or more statements previously voted for by users that are similar to the statement composed by that user, and enabling the user to associate one or more of the displayed statements previously voted for by users with the statement composed by the user, and transmitting to the central controller data identifying the association of said statements. 7. A method according to any one of claims 2 to 6, wherein the list of statements displayed at the terminal is at least partly selected from those statements voted for by users within a predetermined time period. 8. A method according to any one of claims 2 to 7, and further including the step of: transmitting from the terminal to the central controller demographic information characterising the user having voted for each statement. 9. A method according to claim 8, wherein the list of statements displayed at the terminal is at least partly selected from those statements voted for by users that match one or more selected demographic criteria. 10. A method according to claim 9, and further including the step of: transmitting from the terminal to the central controller said selected demographic criteria. 11. A method according to any one of claims 8 to 10, and further including the step of: for each displayed statement, displaying at the terminal aggregate demographic information characterising users having voted for that statement. 12. A method according to any one of the preceding claims, wherein the statements voted for by users relate to predefined subject-matter. 13. A method according to any one of the preceding claims, and further including the step of: notifying one or more users when the frequency of voting for one or more selected statements exceeds a predetermined threshold. 14. A method according to claim 13, wherein the one or more users are notified by electronic message. 15. A method according to any one of the preceding claims, wherein the central controller and the at least one terminal are connected to a computer network, such as the Internet. 16. An automated polling system, comprising a central controller including a CPU and memory operatively connected to the CPU; and and at least one terminal, adapted for communication with the central controller, for transmitting to the central controller data identifying one or more statements voted for by one or more users; wherein the central controller maintains a database of the statements voted for by users, and wherein the memory in the central controller contains a program, adapted to be executed by the CPU, for determining in the central controller the frequency of voting for each statement maintained in the database. 17. An automated polling system according to claim 16, wherein the program acts to display at the terminal a list of one or more of the statements hierarchically arranged in order of frequency of voting. 18. An automated polling system according to claim 17, wherein one or more statements are voted for by each user from said list. 19. An automated polling system according to any one of claims 16 to 18, wherein one or more statements voted for by each user are composed by that user. 20 An automated polling system according to claim 19, wherein the program acts to display at the terminal one or more statements previously voted for by users that are similar to the statement initially composed by that user, the terminal acting to enable the user to substitute one of the displayed statements previously voted for by users for the statement initially composed by the user, and to transmit data identifying the substituted statement to the central controller. 21. An automated polling system according to either one of claims 19 or 20, wherein the program acts to display at the terminal one or more statements previously voted for by users that are similar to the statement composed by that user, the terminal acting to enable the user to associate one or more of the displayed statements previously voted for by users with the statement composed by the user, and to transmit to the central controller data identifying the association of said statements. 22. An automated polling system according to any one of claims 17 to 21, wherein the list of statements displayed at the terminal is at least partly selected from those statements voted for by users within a predetermined time period. 23. An automated polling system according to any one of claims 17 to 22, wherein the terminal acts to transmit to the central controller demographic information characterising the user having voted for each statement. 24. An automated polling system according to claim 23, wherein the list of statements displayed at the terminal is at least partly selected from those statements voted for by users that match one or more selected demographic criteria. 25. An automated polling system according to claim 24, wherein the terminal acts to transmit to the central controller said selected demographic criteria. 26. An automated polling system according to any one of claims 23 to 25, wherein for each displayed statement, the program acts to display at the terminal aggregate demographic information characterising users having voted for that statement. 27. An automated polling system according to any one of claims 16 to 26, wherein the statements voted for by users relate to predefined subject-matter. 28. An automated polling system according to any one of claims 16 to 27, wherein the central controller acts to notify one or more users when the frequency of voting for one or more selected statements exceeds a predetermined threshold. 29. An automated polling system according to claim 28, wherein the one or more users are notified by electronic message. 30. An automated polling system according to any one claims 16 to 29, wherein the central controller and the at least one terminal are connected to a computer network, such as the Internet. 31. A computer program element for an automated polling system, said system comprising a central controller including a CPU and memory for storing the computer program element operatively connected to the CPU; and at least one terminal, adapted for communication with the central controller, said computer program element comprising computer program code means for causing the central controller to: receive data, transmitted from the terminal, identifying one or more statements voted for by one or more users; maintain a database of the statements voted for by users; and, determine the frequency of voting for each statement maintained in the database. 32. A computer readable memory, encoded with data representing a computer program, for an automated polling system, said system comprising a central controller including a CPU and said computer readable memory operatively connected to the CPU; and at least one terminal, adapted for communication with the central controller, said computer program causing the central controller to: receive data, transmitted from the terminal, identifying one or more statements voted for by one or more users; maintain a database of the statements voted for by users; and, determine the frequency of voting for each statement maintained in the database.

Inventors: MCKAY RALPH, MCKAY, RALPH
Applicants: MCKAY RALPH, UGON HOLDINGS PTY LTD, MCKAY, RALPH
Application year: 2000
Main classification: G06F17
IPC codes: G06Q30