Information and advertising distribution system and method

Abstract: In summary, the present invention is an information and advertising distribution system. A data server stores and updates a database of information items and advertisements. The information items and advertisements are each categorized so that each has an associated information category. Workstations remotely located from the data server each include a display device, a communication interlace for receiving at least a subset of the information items and advertisements in the data server's database and local memory for storing the information items and advertisements received from the data server. An information administrator in each workstation establishes communication with the data server from time to time so as to update the information items and advertisements stored in local memory with at least a subset of the information items and advertisements stored by the data server. An information display controller in each workstation displays on the workstation's display device at least a subset of the information items and advertisements stored in local memory when the workstation meets predefined idleness criteria. At least a subset of the workstations include a profiler for storing subscriber profile data. The subscriber profile data represents subscriber information viewing preferences, indicating information categories for which the subscriber does and does not want to view information items. The information display controller includes a filter for excluding from the information items displayed on the display device those information items inconsistent with the subscriber profile data.

Description: The present invention relates generally to computer based information distribution systems, and particularly to a system for distributing to a set of subscribers' computers information matching each subscriber's interests as well as advertising, and for distributing the information and advertising to each subscriber's computer during time periods in which the subscriber's computer is otherwise inactive. BACKGROUND OF THE INVENTION The use of advertising revenues to pay for information dissemination is well established in domains such as television and radio in which end users are tuned to a continuous signal over a lengthy period of time. In such systems, due to the continuous nature of the signal being monitored by the end users, the end users are sufficiently similar to a "captive audience" that many or most end users remain tuned to the same signal even when the main program to which they are listening or viewing is interrupted by advertisements. Another example of advertising mixed with information dissemination is the use of scrolled text at the bottom of a television of computer screen, where the main program occupies most of the end user's visual field and a smaller portion is occupied by advertisements and the like on a "scroll bar" or similar visual device along the periphery of the screen. In some contexts, such as cable television channels that display a "stock ticker tape," this relationship is reversed: the information portion of the screen occupies a small part of the screen, such as horizontally scrolling image region at the top or bottom of the display and the remainder of the screen is occupied by advertisements, "infomercials" and the like. Yet another example of mixing advertisements with information dissemination are newspapers and magazines. Most, and perhaps all such examples of mixing advertisements with information content are based on systems in which the end user has actively elected to view or listen to a program or to otherwise receive information. Furthermore, in virtually all such systems or media, the juxtaposition or placement of advertisements and information content is explicitly programmed or determined by human beings working as "editors" or in a similar content and/or presentation editing capacity. Up until the present, distributing information via the Internet or other publicly accessible computer communication networks has been largely unsupported by advertising revenues due to the lack of good mechanisms for mixing advertising and information content in such a way as to be acceptable to both end users and advertisers. There are, of course, some exceptions where advertising/content mixtures from other contexts, such as newspapers and television, have been simply replicated on the Internet. For instance, some newspapers have been "published" at least in part on the Internet, and include advertisements along with information content. In fact, some newspapers sell advertising space on an associated World Wide Web (WWW) site, which often includes extensive listings of certain types of advertisements such as real estate advertisements, personal advertisements, and so on. Similarly, the scroll bar type advertisement at the bottom of a computer screen is based on similar advertising techniques used in cable television and other television contexts. There are also examples of computer programs which contain advertisements. In all such examples known to the inventors, the advertisements are either permanently embedded in the computer programs or reside permanently with computer programs such that they cannot be easily updated. The present invention addresses a problem prevalent in electronic information distribution systems. In particular, "on line" newspapers and magazines are notoriously difficult and and tedious to read. Graphics and animation and full motion video, all techniques widely used in television news programs, require substantial data transmission bandwidth. Such data transmission is expensive both in terms of communication bandwidth (capacity) and time. In non-computer publishing such as printed magazines and newspapers, graphics are often used to make reading less difficult and tedious. In television the majority of information is delivered with movement (animation), although graphics are also often used. The use of large bandwidth data transmission is not always economically practical in the context of data dissemination via the Internet and other computer networks, although the cost of such data transmissions will continue to decrease. As a result, graphics and animation have not yet received broad use in computer based information dissemination systems. WO-A-93/19427 (Murphy) discloses a system for the dissemination of advertising information, including compressed video information, in a computer system having a central computer and a plurality of remotely located terminals each of which includes a video display unit and a hard disc storage. The central computer transmits advertising information to the terminals for being stored on their hard disc storages at times determined by the user of the terminal. During waiting or dead times which are inherent to the operation of the terminal the advertising information stored on the hard disc is displayed on the video device of the terminal. The display will last for less than 15 seconds and the user selected function will continue at the conclusion of the advertising information display. The advertising information will be changed, updated and varied directly from the central computer. In this system the advertising information is determined at the place of the central computer and its display lasts only for a short period. Another system for the distribution of advertising information by means of a karaoke network is disclosed by GB-A-2281434 (Yamaha). In this system a central station down-loads into local terminals program data which sequentially prescribes spare events comprising advertising information. The spare events are sequentially presented at the monitor of a terminal according to the downloaded program data when the terminal is in an idling state so as to fill a blank period of the idling state. A similar system is described in JP-A-04 250591 (Hiroyuki), Patent Abstracts of Japan, vol. 017, no. 029 (P-1472), wherein a multi-purpose display device displays advertisements and other information during waiting time. Also in these known systems the advertising information to be presented is exclusively determined at the central station. Furthermore, USA patent 5283731 discloses a system and method for a computerized classification of advertising information according to property desired to purchase or lease, services and employment available. The classification is performed in a database of a server computer which may also store profile data of a customer and means for comparing the profile data to the advertising information contained in the database or newly stored therein. If a match is found, the system generates output delivery data for the matching information and transmits them to the terminal of the customer. The present invention mixes advertising and information content dissemination in a manner unlike the examples and known systems and methods mentioned above. It is a goal of the present invention to disseminate information and advertisements to subscribers' computers in a system where the information and advertisements are automatically displayed when the subscriber's computer is on but meets predefined idleness criteria. For example, the predefined idleness criteria could be the failure to receive any input for a period of at least five minutes. Another goal of the present invention is to automatically update each subscriber's local database of news stories at least once per day, and preferably multiple times per day so as to present subscribers with timely information. Another goal of the present invention is to present news stories and advertisements in a dynamic and easy to read manner. Another goal of the present invention is to categorize news stories and advertisements, and to display advertisements associated with each category at the same time that new stories associated with the same category are displayed, thereby providing a "targeted" audience for advertisers. Another goal of the present invention is to provide each subscriber with the ability to set up and change a user profile indicating categories and subcategories of topics which are of interest and not of interest to the subscriber, and to select the news stories displayed on the subscriber's computer accordingly. Yet another goal of the present invention is to divide news stories into at least two portions, a preliminary portion and a secondary portion, where the preliminary portions of the news stories are automatically displayed during idle periods, and the secondary portions are displayed only upon subscriber request. SUMMARY OF THE INVENTION In summary, the present invention is an information and advertising distribution and displaying system and method as defined in the claims. An information server stores and updates a database of information items and advertisements. The information items and advertisements are each categorized so that each has an associated information category. Workstations remotely located from the information server each include a display device, a communication interface for receiving at least a subset of the information items and advertisements in the information server's database and local memory for storing the information items and advertisements received from the information server. An information administrator in each workstation establishes communication with the information server from time to time so as to update the information items and advertisements stored in local memory with at least a subset of the information items and advertisements stored by the information server. An information display controller in each workstation displays on the workstation's display device at least a subset of the information items and advertisements stored in local memory when the workstation meets predefined idleness criteria. At least a some of the workstations include a profiler for storing subscriber profile data. The subscriber profile data represents subscriber information viewing preferences, indicating information categories for which a subscriber associated with the workstation does and does not want to view information items. The information display controller includes a filter for excluding from the information items displayed on the display device those information items inconsistent with the subscriber profile data. BRIEF DESCRIPTION OF THE DRAWINGS Additional objects and features of embodiments of the invention will be more readily apparent from the following detailed description and appended claims when taken in conjunction with the drawings, in which: Figure 1 is a block diagram of an information and advertising distribution system in accordance with an embodiments of the present invention. Figure 2 is a block diagram of a subscriber's computer in the information and advertising distribution system of Figure 1. Figure 3 schematically depicts the procedures and data structures in a set of category managers. Figure 4 schematically depicts a user profile data structure stored in a subscriber's computer to store status and configuration information for a particular subscriber and workstation. Figure 5 schematically depicts the dialog box used to define the user profile for one information category. Figure 6 schematically depicts a display generated on a subscriber's display device using the screen saver procedure in a preferred embodiment of the present invention. Figures 7A and 7B schematically depicts the dialog box used to define a display script and the resulting data structure. Figures 8 and 9 schematically depict data structures stored in a subscriber's computer to indicate advertisements and news stories available for display in various information categories. Figure 10 schematically depicts a display generated on a subscriber's display device using a data viewer procedure in a preferred embodiment of the present invention. Figure 11 depicts the relationships between various processes in the information server. Figure 12 is a flow chart depicting the procedure for updating the local database and software modules of a subscriber's computer. DESCRIPTION OF THE PREFERRED EMBODIMENTS Referring to Figure 1, there is shown a computer based information and advertising distribution system 100 having many client computers 102 and at least one information server computer 104. Client computers are often called "subscribers' computers" in the present document, and the terms "subscriber computer" and "client computer" will be used synonymously. In many instances, a set of subscribers 102 will be located within a common local area network (LAN) 106, and are connected to a LAN server 108. In the preferred embodiment, each subscriber's computer 102 is connected to the information server 104 via the Internet 119 for a small fraction of each day. Other forms of electronic communication connections, including private wide area networks similar to CompuServe, America OnLine or Prodigy, can be used to connect subscribers' computers to the information server 104 in alternate embodiments of the invention. While most client computers are desktop computers, such as IBM compatible computers and Macintosh computers, virtually any type of computer can be a client computer so long as it can support the "screen saver" mode of operation of the preferred embodiment. Information Server The information server 104 includes a central processing unit 110, primary memory 112 (i.e., fast random access memory) and secondary memory 114 (typically disk storage), a user interface 116, an Internet interface 118 for communication with the client computers 102 via the Internet 119, and one or more news wire interfaces 120 for receiving news feeds from information transmission services such as the AP news feed, the DOW news feed and various sports news feeds. An information editor 130 is used, typically under the direction of a person using the user interface 116, to select news stories received from the new feeds and to edit and format the news stories into a form suitable to dissemination to subscribers' computers using the present invention. The selected and edited news stories 132 are stored in an information database 134 in the information server 104. In the preferred embodiment, the information editor 130 is used to assign each news story to an information category and, where appropriate, to also assign the news story to one or more sub-categories. The information editor maintains a list of the currently defined categories and sub-categories. The category list can be updated by the personnel operating the information server, typically to add and delete special new categories associated with major news events such as a famous trial or event which generates many news stories. The category to which each news story is assigned is represented in one or more Data Access Tables 136. The information editor 130 is also used to divide most news stories into two components or portions: a primary component or portion and a secondary component or portion. The primary component is what is displayed on a subscriber's workstation when the subscriber's workstation is turned on but has been idle, while the secondary component is what is displayed, along with the primary components only upon a subscriber's request. For instance, as will be described below, there are number of ways in which a subscriber can request the display of the "full text" of a news item (which may include photographs and the like). For convenience, the primary component of each news story is sometimes herein called the "headline", even though it will often contain more information than just the headline of the news item, and the secondary component of each news story will sometimes be called the "body." Advertisements 138 are also stored in the information database 134 and each advertisement is assigned to at least one of the predefined information categories. Each advertisement is displayed on subscribers' workstations simultaneously with news items assigned to the same category as the advertisement. When an advertisement is assigned to multiple categories, it is treated in most respects as several advertisements each assigned to one category, except that only one copy of the advertisement is actually stored. Next, the information database in the server computer includes a set of images 140 used during the display of news items and advertisements. For instance, different "wallpaper" or background images may be useful when displaying news items in various types of information categories. As an example, the images 140 include three fixed images for indicating that the stock market has risen, fallen or stayed largely unchanged. Then, depending on what has happened to the stock market on any particular day, information concerning the amount of change in the stock market during the relevant time period, and sometimes other associated information, is superimposed on a selected one of those fixed images. Other images stored in the information database include various "actors" that can be moved around the display with the news items when the system is in screen saver mode. The information database 134 also stores a set of "display scripts" 142. A script controls the display of news items and advertisements, typically displaying a selected number of news items and one advertisement for a period of 30 seconds. A script determines the number of news items displayed, determines the positions of the news items and advertisement on the display, determines any movement of the news items around the displayed image, and determines what background image or images are displayed in conjunction with the news items. An important concept associated with the present embodiment is that constantly varying the presentation of news items and advertisements, through the use of a rotating set of scripts, makes it easier for subscribers to read the news headlines and advertisements being presented. In a preferred embodiment, at least two distinct scripts, and preferably three or more distinct scripts are provided for most information categories, with a total of at least ten different scripts being used. Most scripts can be used with multiple categories of news items. The procedure for defining display scripts and the associated data structure are described below with reference to Figure 7A. The information database 134 also stores software modules 144 for downloading to subscribers' computers. The information administration management procedures and information viewing procedures in subscribers' computers will need updating and upgrading from time to time. The new versions of these software procedures are stored in the information server's information database 134 for downloading into the computers of subscribers at the same time that the information items or advertisements in the subscriber computers' information database 184 is updated. Since numerous types of subscriber computers are supported, the server's information database 134 will typically store a set of updated software modules for each of the supported types of computers. Finally, the information database 134 includes advertising display statistics 148 and news item display statistics 149. The display statistics are collected from the subscribers' computers when the subscribers' computers call in for updated news stories and the like. Advertising display statistics indicate how many times each advertisement has been displayed on subscribers' computers. In a preferred embodiment, display statistics for each advertisement are divided into a display count for displaying during data viewer usage, a display count for other display instances, and an indication of each advertisement the user has interacted with, such as by "clicking" on the advertisement to connect to the advertiser's World Wide Web page. News item display statistics 149 concern how much time the subscriber spent viewing each non-advertising item in the data viewer as well as the amount of time the screen saver was active for each information category. Other procedures stored in the information server's secondary memory are a router procedure 150, application server procedures 152, and data server procedures 154. The utility of these procedures is explained below with reference to Figures 8 and 9. Subscriber's Workstation Figure 2 is a schematic representation of the subscriber's workstation or computer 102 that is not connected to the information server 104 via a LAN server. For subscribers' workstations connected to the information server 104 via a LAN server 108, Figure 2 is representative of the LAN server, but the display device used by each such subscriber's computer to view news items and advertisements is part of the subscriber's workstation rather than the LAN server 108. The subscriber workstation 102 includes a central processing unit 170, primary memory 172 (i.e., fast random access memory) and secondary memory 174 (typically disk storage), a user interface 176, and an Internet interface 178 for communication with the information server 104 via the Internet 119. In this document, whenever the phrase "clicking on X" is used, that phrase means a subscriber selecting the X image on a display device by positioning a pointer image over the X image, using the subscriber computer's mouse or trackball device, and then depressing a button or key to indicate selection of the X image. An administration manager 180 schedules and controls all communications with the information server 104. The administration manager 180 includes a connection scheduler 181 that initiates the execution of a connection manager 182 that handles communications with the information server as well as the integration of information and software procedures received from the information server into the information and software procedures stored in the client computer. The workstation's secondary memory is used to store a local information database 184 that includes news stories 183, advertisements 188, images 190 and display scripts 192. In each case the workstation's secondary memory stores at least a subset of the corresponding items stored in the information server 104. The amount of information stored in the workstation's secondary memory depends on the amount of secondary memory available for storing such information, as well as a user profile 194 for the subscriber that indicates which categories and subcategories of news stories are of interest to the subscriber. Data Access Tables 186, which are discussed in more detail below with reference to Figures 5 and 6, are used to access news stories, advertisements and display scripts associated with each of the categories of news items that are to be displayed on the subscriber's workstation. Screen Saver and Viewer Procedures 200 are a set of procedures for controlling the display of news stories and advertisements. These procedures include a main screen saver procedure 201, category managers 202, an animation engine 204, a profiler 206, a data viewer 208 and an advertisement display statistics generator 210. Each of the category managers 202 is a collection of programs and data associated with particular information categories. In the preferred embodiment there is a separate category manager for each information category, although in some cases it may be more efficient to use the same category manager for two or more information categories. Referring to Figure 3, each category manager 202 includes a category profiler 202A, a category profile data structure 202B, one or more display drivers 202C for viewing items in the corresponding information category with the data viewer, a sprite generator 202D generating images displayed by the screen saver procedure, and an update manager 202E. The category profiler in each category presents a category profile dialog to the subscriber to determine the subscriber's interest in receiving information relating to particular subcategories. Subcategories may relate to specific companies, geographic regions, specific sports and sports teams, and so on, depending on the category. The result of the decisions made by the subscriber during the category profile dialog is stored as a category profile data structure. The update manager in each category handles the process of updating the local information database with new items from the information server for that information category as well as the deletion of all items and the rebuilding of the portion of the data access tables used to control access to the information items, advertisements and display scripts in that information category. The display drivers in each category manager are customized to generate images specifically needed in the corresponding categories. For instance, in the category manager for the sports category, the display driver includes instructions for generating a simulated scoreboard which is automatically updated every few seconds to show a sequence of game scores or contest outcomes in various sporting events. In another example, the display driver for the weather category includes instructions specifically designed for efficiently displaying weather maps and other weather information. Referring once again to Figure 2, the animation engine 204 interprets a currently selected display script and controls the display of a selected set of news stories and an advertisement in accordance with the instructions in the currently selected display script. The profiler 206 is actually a set of procedures that define and update the subscriber's user profile 194. Referring to Figure 4, in the preferred embodiment, the user profile 194 includes: a subscriber identifier 212; a connection password 213 used in conjunction with the subscriber identifier when connecting to the information server to identify the calling computer as a registered subscriber; subscriber hardware and software configuration information 214 that identifies for the information server hardware and software information needed to determine the type of software and image files that are compatible with the subscriber's computer; a connection schedule 215 that specifies to the connection scheduler 181 within the administrative manager 180 how often the subscriber's computer should connect to the information server 104 to update its information database 184; category and subcategory preferences information 216 that identifies categories and subcategories of news stories that the subscriber does not want to view, as well as a list of "special categories" of news stories of special interest to the subscriber which override any categories noted as not being of interest to the subscriber; timestamps 217a - 217c indicating the time of the last updates to the subscriber computer's locally stored set of news stories, advertisements and administrative files (including scripts, images and software modules); advertising and news item display statistics 218; screen saver information 219 indicating the last displayed information category and the last displayed advertisement and news items in each information category which are stored in a portion of the user profile 194 not transmitted to the information server; and a screen saver exit mode indicator 220, indicating what actions cause the screen saver procedure to terminate and what actions cause the data viewer 208 to be executed. The default connection schedule is for the subscriber's computer to initiate a connection to the information server once during the middle of the night (e.g., a randomly selected time between 11 p.m. and 7 a.m. local time) for an "administrative update," and once every four hours during the rest of the day for "news story updates." During the administrative update connection, the set of advertisements, scripts and images in the subscriber computer's local information database are updated as necessary, and any software upgrades are also downloaded onto the subscriber's computer. During both "administrative update" and "news story update" connections, the news stories in the subscriber computer's local information database are updated. At the option of the information server's system operator, script and/or software updates can be made during "news story update" connections, especially when a malfunction has been detected in previously distributed scripts or software. In one preferred embodiment, the profiler 206 can be used to specify a connection schedule other than the default schedule. For instance, if the subscriber's computer is typically turned off at night, the administrative update connection may be scheduled to occur (A) during the subscriber's typical lunch time, or (B) once per day when the subscriber's computer has not received any user input for a specified minimum period of time (e.g., ten minutes) that indicates the subscriber is away from his/her computer. The downloading of advertisements (which are typically images), fixed images used by display scripts, and software modules is preferably performed during the night or long periods of user inactivity because images and software modules are typically much larger than the news items, which are primarily text data. Images, including advertisements, and software modules are compressed using well known data compression techniques to make the download transmissions as time efficient as possible. Even so, downloading images is a time consuming process. For instance, downloading two high resolution advertisement images having pixel sizes of, say, 400 x 300 pixels each, even when using data compression, will typically take over two minutes using conventional 14.4K baud modems. By way of contrast, downloading a dozen news stories and corresponding database base update instructions will typically take less than fifteen seconds of connection time using conventional 14.4K baud modems. Therefore, updating the local database's set of news items can be accomplished relatively unobtrusively even while the subscriber is using his/her workstation, while updates to the advertisements and fixed images in the local database take longer and are therefore more intrusive. It is noted that the secondary portions of news items can also include images, such as photographs that accompany the text of a news story. The transmission of such news story images can significantly increase the amount of connection time required for news item updates, and thus most news stories in the preferred embodiment do not use images, and every effort is made to transmit those news stories that have images to subscribers' computers during the overnight administrative update rather than during the daytime news item updates. The data viewer 208 is a program for viewing news items that the subscriber specifically wants to read. The data viewer 208 can be executed at the subscriber's explicit command, and can also be launched from the screen saver if the user indicates he/she wants to read a news story shown in the screen saver display. This is explained in more detail below. The display statistics generator 210 keeps tracks of how many times each advertisement in the local information database has been displayed since the last time advertisement display statistics have been transferred to the information server. The display statistics generator 210 also keeps track of how many times each news item has been displayed in the same time period. These display statistics are stored in the user profile 194 at 218. In the preferred embodiment, the advertisement display statistics, and news items display statistics, are transferred to the information server once per day during a connection also used to update the subscriber computer's information database. In alternate embodiments, the advertisement display statistics could be transferred more often (e.g., every time the subscriber's computer connects to the information server) or less often (e.g., once per week). Category Profiler Dialog As mentioned earlier, each of the category managers includes a profiler procedure for defining the subscriber's interest in receiving news items within each information category. An example of the profile definition dialog generated by a category profiler, for the Sports category, is shown in Figure 5. In this example, the Sports Definition Profile dialog box 222 includes, on the left side, a scroll box 223 in which the user can select and deselect subcategories of sports information by clicking on boxes next to the listed subcategories. A "Select All" button in the dialog box can be used (i.e., by clicking the subscriber computer's mouse or trackball device on the image of the box) to select all subcategories, and a "Deselect All" button can be used to indicate that the subscriber does not want to receive any news items for the Sports category. For each subcategory, either an "include only" or an "exclude" filter (but not both) can be defined where the user types in key words to be used to select (for the include only) or deselect news items within that subcategory. For instance, if the subscriber types in the words "49ers, Rams" in the box for the include only filter for the "football news" subcategory, only news items using either of those words will be shown to the subscriber. The category manager profile procedure generates a category profile data structure 202B that represents the subcategories of interest to the subscriber as well as any associated filters that have been defined. Display Script Definition Procedure Referring to Figure 6, there is shown in outline form a snapshot of typical display generated by the screen saver procedure of the present embodiment. On this particular exemplary display are shown three news story "headlines" 230a-230c and one advertisement image 232. Each of the headlines 230 is an image representing the text of the "primary component " of a news items, as explained above. While the image shown in Figure 6 appears static, in the preferred embodiment the display script that controls the display of the headlines and advertisement can and most often does contain instructions for continuously moving the headline images around the screen. The display scripts also mix fixed images with the headline images to create varied and interesting displays. In one example of a display script, cartoon characters appear to move the headlines around. In another example of display script, the background behind and surrounding the headlines is a sequence of fixed images such as pictures of peaceful landscapes, while the headlines gently float around the portions of the display not occupied by the advertisement image 232. Referring to Figure 7A, the preferred embodiment provides an easy to use dialog 234 for display script definition. A display script consists of definitions for two or more actors, plus an optional definition of a background image, called the wallpaper image. Each "actor" represents a sprite, which is a displayable image, that can move around the screen and whose size can vary dynamically. An new actor is initially defined by selecting the "new actor" command in the Actor menu, as shown in Figure 7A, and then entering a text string (shown in box 235) that specifies (A) the sprite generator procedure to use to generate the image for the actor, (B) the source of the information to be displayed, (C) the nominal width and height of the sprite (e.g., in units of pixels), and (D) any optional parameters that are specific to the specified sprite generator (e.g., a font may be specified for the News information category's sprite generator, whereas a font designation parameter may be meaningless for other ones of the sprite generators). In the preferred embodiment, the specified sprite generator must be either the static sprite generator that is part of the animation engine 204, or is any specified one of the sprite generators 202D in the category managers 202. In an alternate embodiment, additional sprite generators may be provided by the animation engine 204, such as an animated sprite generator for successively displaying a sequence of images to simulate a motion. The source of information to be displayed is either a static image, in the case of the static sprite generator, or information items in a specified information category. For instance, the parameter "NextHL" in an actor definition indicates that the information to be displayed in the corresponding sprite is the next headline in the information category corresponding to the specified sprite generator for the actor. In another example, the parameter "NextAd" in an actor definition indicates that the information to be displayed in the corresponding sprite is the next advertisement image for the information category corresponding to the specified sprite generator for the actor. The second stage of defining a sprite is to define its position and size at one second intervals, for 30 seconds in the preferred embodiment. The position of the sprite for a particular time can be defined by either typing in an X,Y, or by selecting a box representing the sprite with the user interface and then moving it to a position on a simulated display screen 236. The size specification for the sprite at each time is a percentage of the sprite's nominal size (e.g., "size=120" indicates the sprite is to be displayed at 120% of its nominal size). The full definition for a sprite includes thirty X,Y,size tuples for a thirty second screen saver display period. In a typical display script, nor more than one advertisement, three news items and two static images are used because the resulting display will be excessively busy, although the display script definition procedure allows a virtually unlimited number of sprites to be specified. The data structure 237 representing each display script is shown in Figure 7A: a header specifying the script's name, the number of actors defined in the script, an optional Wallpaper definition, and a list of all static images referenced by the script; plus a set of Actor definition arrays. The screen save procedures interpret each display script and generate an animated display for 30 seconds based on the script. During display, the image corresponding to each actor is moved and sized in a virtually continuous manner, where the position and size of each sprite is linearly interpolated between the instantaneous position and size specifications for each second. During the display definition process, the sequence X,Y,size parameters for a currently selected actor can be smoothed, to produce more fluid movement and size changes of the actor by selecting the "smooth path" command in the Actor menu. Referring to Figures 7A and 7B, the person preparing a display script using the display script definition dialog 234 can see the movement and sizing of the actors in the simulated display screen 236 by selecting the simulate command in the File menu, which cause the boxes in the simulated display screen 236 to move and be sized in accordance with the sequence of X,Y,size parameters for each specified actor. While in the preferred embodiment advertisements are always simultaneously displayed with news items, in other embodiments advertisements and news items could be displayed sequentially. Computer programmers of ordinary skill in the art could modify the script definition dialog of the preferred embodiment, as described above, to define display scripts with sequential display of advertisements and news items. Screen Saver Procedures In the preferred embodiment, the screen saver procedures for displaying news items and advertisements are invoked using the same types of criteria as are used by other types of screen saver procedures. Generally, whenever the system detects a lack of user inputs via either keyboard or pointer device (e.g., a mouse or trackball) for a user configurable or otherwise specified length of time (e.g., 5 minutes), the screen saver procedures of the present invention begin the display of news items and advertisements from the local information database. In the preferred embodiment, the screen saver procedures display news items and advertisements for a sequence of information categories in a sequence of 30 second time slots. More specifically, under the control of the screen saver procedures, news stories and an advertisement assigned to a first information category are displayed using a first display script for 30 seconds, then news stories and an advertisement assigned to a second information category are displayed using a second display script for the next 30 seconds, and so on until news stories and an advertisement have been displayed in all the information categories indicated in the subscriber's user profile 194 as being of interest to the subscriber, at which point the process repeats with the first information category. Referring to Figure 8, news stories, advertisements and display scripts are stored in files or similar data structures which have assigned unique file names. Each news story (herein usually called a news item) is usually assigned to a single information category, although nothing in the system of the preferred embodiment would prevent a news story from being assigned to multiple information categories. Advertisements can be assigned to multiple information categories as can display scripts. As shown in Figures 8 and 9, the advertisements assigned to each information category are organized, through the use of a set of data access tables 186, in a separate linked list so as to create a separate "queue" of advertisements for each information category. Similarly the news items and display scripts assigned to each information category are organized in separate linked lists so as to generate separate queues of news items and display scripts for each information category. Figure 8 includes an example of an advertisement (A001) assigned to two information categories (News and Sports). This advertisement is stored only once in the workstation's local hard disk, but is included in two of the linked lists of advertisements. The basic procedure for determining what display script, advertisement and news stories to display during each 30 second time slot is shown in pseudocode form in Table 1. Each time the Screen Saver procedure 201 is invoked, it starts with the next information category after the last one to have been used, and starts with the next advertisement and news stories after the last ones used in that information category. The screen saver status information 219 indicating the last displayed information category and the last displayed advertisement and news items in each information category are stored in a portion of the user profile 194 not transmitted to the information server. Execution of the Screen Saver procedure 201, like other screen savers, is terminated and the subscriber's computer's display is returned to whatever was being displayed before the Screen Saver was executed, upon detection of certain types of user input. In the preferred embodiment, the user can use the profiler to select one of at least two exit modes: in a first mode, the Screen Saver procedure is terminated by hitting any key on the subscriber computer's user interface keyboard or by moving the user interface's mouse or trackball; in a second mode, the Screen Saver procedure is terminated by hitting any key on the subscriber computer's user interface keyboard, but movement of the mouse or trackball does not cause the Screen Saver procedure to terminate. Rather, in the second screen saver exit mode, the subscriber can use the mouse or trackball to point to any of the news items being displayed and upon clicking one of the mouse or trackball's buttons, the data viewer 208 is executed with the news item selected by the subscriber being displayed. When using the second screen saver exit mode, if subscriber user clicks on an advertisement, the subscriber's computer is automatically connected to an associated World Wide Web page on the Internet that provides additional information from the advertiser. This is accomplished by World Wide Web connection and viewer procedures 211 (see Figure 2) stored on subscriber's computer. Each advertisement is stored on both the information server and subscriber computers as a C++ data structure that includes (A) an image data array, typically representing a "GIF" format image, as well as (B) a list of static images (such as corporate logos and legends), if any, incorporated into the advertisement, and (C) a Web site address that is used by the World Wide Web connection and viewer procedures 211 to connect the subscriber to the advertiser's specified Web page when the subscriber clicks on the image of the associated advertisement. Data Viewer Referring to Figure 10, the data viewer 208 is a program for viewing news items that the subscriber specifically wants to read. The data viewer 208 can be executed at the subscriber's explicit command, and as just described in the immediately preceding section of this document, the data viewer can also be launched from the screen saver when the subscriber indicates that he/she wants to read a news story shown in the screen saver display by "clicking" the subscriber's computer's mouse or trackball on that news story. The news stories shown in the center section 248 of the data viewer's display is selected by first selecting an information category by clicking on any of the category buttons 250 on the left margin of the display, and a subcategory button 252, if any, on the bottom margin of the display, and then clicking on the article advance backward and forward buttons 254 to scroll through the news items in the selected information category. When a news item has more than one photo image associated with it, the subscriber can click on the photo advance backward and forward buttons 256 to scroll through the photos. Each news item displayed in the center section 248 of the data viewer's display includes both the primary and secondary portions of the news item, thereby providing the subscriber in most instances with access to a fuller version of the news item than was shown by the screen saver. In the case of very short news items, the entire news item may be contained in its primary component. Furthermore, in client computers with very limited hard disk space available for storing news items, as indicated by the user profile 194 for the client computer, the secondary component of news items may not be stored in the local information database in order to conserve disk space. A portion of the data viewer screen is always occupied by an advertisement image 258. The advertisement image shown is selected on the basis of the information category associated with the news item being viewed. In a preferred embodiment, the advertisement shown in the data viewer screen is changed (A) every time the subscriber clicks on a category button 250 so as to select a different information category than the one previously selected, and (B) every 30 seconds when subscriber continues to view news items in a single information category for more than 30 seconds. The advertisements are selected in rotating order among the advertisements assigned to each information category, as described above for the screen saver procedure. When using the data viewer, if subscriber user clicks on the displayed advertisement, the subscriber's computer is automatically connected to the an associated World Wide Web page on the Internet that provides additional information from the advertiser. The Options button 260 is used to invoke dialog procedures in which the subscriber specifies general preferences, such as how quickly data scrolls in the scrolling windows, and which mode of screen-saver termination the subscriber prefers. Connecting the Subscriber's Computer to the Information Server Referring to Figures 11 and 12, the information server is preferably a set of computers interconnected by a local area network that each operate under a multi-tasking, multi-threading operating system such as Microsoft's Windows NT. The information server 104 has multiple "application servers" 272, which are processes run on one or more computers. Each application server 272 preferably has multiple threads, each of which can service one connection with a client computer at any one time. A primary concern with the architecture of the information server is that the information be able to handle a very large volume of connection requests from client computers. The information server may need to service thousands of connection requests per hour, and thus efficient handling of each connection request is important. In a preferred embodiment, during each connection of a subscriber computer to the information server, the information server sends a "next recommended download time" to the subscriber computer along with the other information being downloaded onto the subscriber computer. The server computer selects the next recommended download times sent to the various subscriber computers so as to spread their connection requests fairly evenly over time. In an alternate embodiment, connection requests are spread over time by having the subscriber computers randomly select connection times within the general boundaries of a specified schedule of connections (e.g., a randomly selected time anywhere within a half hour, plus or minus, of each scheduled connection time). When a client computer first initiates a connection to the information server, it sends a first message to the Internet address associated with a router process 270 in the information server. The router selects an application server 272 with at least one available thread and passes back to the client computer an Internet address associated with that application server. The client computer then sends a portion of its user profile to the assigned application server. If an administrative update is being requested, the locally accumulated advertising display statistics 218 (see Figure 4) are also sent to the application server. Based on the time of day and the information in the transmitted user profile, the application server determines (A) what type of update is to be performed (i.e., a news item update or an administrative update), and (B) what new information needs to be downloaded to the client computer and what items in the client computer's local information database should be deleted. The application server 272 then makes calls to one or more data servers 274 to collect all the information that needs to be sent to the client computer and then sends those items to the client computer, along with instructions on what items, if any, should be deleted from the client computer's local information database. The client computer then loads the received information into its local database, and replaces software modules with received software modules, if any. It also deletes the items, if any, specified for deletion by the information server. Finally, it updates its data access tables 186 to incorporate all the changes to the information database so that the client computer is ready to display news items and advertisements in each information category. A more detailed explanation of the local database update process is provided by a pseudocode representation of that process in Table 2. In one preferred embodiment, when the "client" that is connected to the information server for an update is itself a local area network server, the client downloads all news items into its local database. In a second preferred embodiment, the client/LAN server generates a group profile that represents the union of all news category and subcategory preferences of the subscribers connected to the client computer, and news items are downloaded into the client's local database based on that union group profile. In either embodiment, the screen saver procedures filter out news items in the LAN server's local information database that are not consistent with each subscriber's user profile, thereby showing each subscriber only the subset of news items corresponding to the subscriber's user profile. In the preferred embodiments, the subscriber level news item filtering is accomplished by setting up the subscriber's data access tables 186 to include only news items corresponding to the subscriber's user profile. In the computers of stand alone subscribers, the filtering of news stories is handled during the data download process, by only downloading news items corresponding to the subscriber's user profile. The subscriber level news item filtering function is also used to enable the information server to instruct the subscribers' computers to "black out" an advertisement, without deleting it from the local database. For example, a company may want to suspend its advertisements for a few days after a disaster involving the company. The black out function is achieved by simply removing the corresponding advertisement(s) from the advertisement queues in the data access tables. For this purpose, the information server and subscriber computers may temporarily define a "non-use" information category and a corresponding advertisement queue for keeping track of blacked out items. ALTERNATE EMBODIMENTS AND EXTENSIONS In an alternate embodiment of the present invention, the server's information database 134 also includes a client catalog which lists all subscribers authorized to receive news items and advertisements from the server, including a connection password that is checked whenever the subscriber's computer calls the information server for an update, and status information included the last time that each subscriber's computer received updated news items, advertisements, scripts, and software modules. In another alternate embodiment, the information server broadcasts information updates to all the subscriber computers, for example by sending an e-mail message or a sequence of e-mail messages containing all news item, advertising, display script and software updates to all the computers of registered subscribers.

Claims: An information and advertising distribution and displaying system including a plurality of computers (102, 104) each of which having a local storage device (112, 114, 172, 174) and a display device (116, 176), the computers being coupled to a network (119) wherein at least one of the computers is operating as a server and at least one of the computers is operating as a client, and including means for the transfer of advertising and news information from the server to the client via the network, the system comprising: (a) means (174, 184) for storing advertising information and news information downloaded from an information server (104) via the network in the local storage device of a client computer (102) and means (186) in said client computer for storing and maintaining a list of predefined information categories, wherein each of the advertising information and news information is associated with at least one category in the list of predefined categories, the list of predefined categories being based on user selected preferences; (b) means (201) for detecting a predefined idleness criteria for the client computer, wherein the predefined idleness criteria is met when the client computer fails to receive user input for a predetermined amount of time; (c) means (202) for selecting a first set of advertising information and a corresponding first set of news information from a first category in the list of predefined categories; and (d) means (180, 200) for displaying the first set of advertising information and the first set of news information in screen saver means on the display device of the client computer during a predetermined period of time. The system as recited in claim 1 wherein the means for displaying include means (202D) for displaying, with continuous movement on the display device, the first set of advertising information and the first set of news information in the screen saver on the display device of the client computer for a predetermined period of time. The system as recited in claim 2 wherein the means for displaying further include means (204) of displaying, with continuous movement on the display, an image together with said first set of advertising information and the first set of news information. The system as recited in claim 3 wherein the image is an animated character. The system as recited in claim 1, further comprising: (e) means (202-1 to 202-5) for selecting a second set of advertising information and a corresponding second set of news information from a second category in the list of predefined categories; (f) means for removing the first set of advertisement information and the first set of news information from the display; and (g) means (202C) for displaying the second set of advertisement information and the second set of news information in the screen saver on the display device of the client computer for the predetermined period of time. The system as recited in claim 1 wherein the information server comprising means (144) for periodically downloading updated advertising information and updated news information to the client computer. The system as recited in claim 1 comprising means (202E, 211) for updating the list of predefined categories based on changed information on the information server. The system as recited in claim 1 further comprising: (h) means (192) for providing a plurality of display scripts in the computer; and (i) means (234) for controlling with one of the display scripts the display of the advertising information and the news information in the categories selected by the user and the display of a background image. The system as recited in claim 8 additionally comprising means (202D) for rotating the plurality of display scripts to control the display of the advertising information and news information in the categories selected by the user and the display of the background images. The system as recited in claim 1 wherein the news information comprises a primary and a secondary component. The system as recited in claim 10 wherein the means for displaying the first set of advertisement information and the first set of news information include means for displaying the first set of advertisement information and the primary component of each of the first set of news information in the screen saver on the display device of the computer for a predetermined period of time (230a-230c, 232). The system as recited in claim 11 comprising means (208) for displaying the secondary component upon user request. The system as recited in claim 11 comprising means (220) for interrupting the displaying when the computer detects any user input on an input device coupled to the computer. The system as recited in claim 11 comprising means for interrupting the displaying when the computer detects user selection of one of the displayed advertising information and the primary portion of news information in the screen saver. The system as recited in claim 14 comprising means (211) responsive to selecting the advertising information for automatically connecting the computer to a Web page on the network corresponding to the selected advertising information. The system as recited in claim 14 comprising means (208) responsive to selecting the primary portion of the news information for automatically displaying the secondary portion of the news information. The system as recited in claim 1 wherein the network is the Internet. The system as recited in claim 1 wherein the network is the World Wide Web. The system as recited in claim 1 wherein the client computer is a personal computer. The system as recited in claim 1 wherein the client computer is any computer that supports a screen saver mode of operation. A computer-implemented method of displaying information on a computer having a local storage device and a display device, the computer being coupled to a network and receiving information from the network, the method comprising the steps of: (a) storing advertising information and news information downloaded from the network in the local storage device of the computer (174, 184), wherein each of the advertising information and the news information is associated with at least one category in a list of predefined categories, the list of predefined categories being based on user selected preferences; (b) detecting a predefined idleness criteria for the computer (201) wherein the predefined idleness criteria is met when the computer fails to receive user input for a predetermined amount of time; (c) selecting a first set of advertising information and a corresponding first set of news information from a first category in the list of predefined categories (202); and (d) displaying the first set of advertising information and the first set of news information in a screen saver on the display device of the computer for a predetermined period of time (180, 200). The computer-implemented method as recited in claim 21 wherein the step of displaying includes the steps of displaying, with continuous movement on the display device, the first set of advertising information and the first set of news information in the screen saver on the display device of the computer for a predetermined period of time (202D). The computer-implemented method as recited in claim 22 wherein the step of displaying further includes the step of displaying, with continuous movement on the display, an image together with said first set of advertising information and said first set of news information (204). The computer-implemented method as recited in claim 23 wherein the image is an animated character. The computer-implemented method as recited in claim 21, further including the steps of: (e) selecting a second set of advertising information and a corresponding second set of news information from a second category in the list of predefined categories (202-1 to 202-5); (f) removing the first set of advertisement information and the first set of news information; and (g) displaying the second set of advertisement information and the second set of news information in the screen saver on the display device of the computer for the predetermined period of time (202C). The computer-implemented method of claim 21 wherein the computer is coupled to an information server on the network, the computer-implemented method further comprising the step of periodically downloading updated advertising information and updated news information from the information server to the computer (144). The computer-implemented method of claim 21 wherein the list of predefined categories is automatically updated based on changed information on the information server (202E, 211). The computer-implemented method of claim 21 further comprising the steps of: (h) providing a plurality of display scripts in the computer (192); and (i) controlling (234) with one of the display scripts the display of the advertising information and the news information in the categories selected by the user and the display of a background image. The computer-implemented method of claim 28 additionally comprising the step of rotating the plurality of display scripts to control the display of the advertising information and news information in the categories selected by the user and the display of the background images (202D). The computer-implemented method as recited in claim 21 wherein the news information comprises a primary and a secondary component. The computer-implemented method as recited in claim 30 wherein the step of displaying the first set of advertisement information and the first set of news information includes the step of displaying the first set of advertisement information and the primary component of each of the first set of news information in the screen saver on the display device of the computer for a predetermined period of time (230a-230c, 232). The computer-implemented method as recited in claim 31 wherein the secondary component is displayed only upon user request (208). The computer-implemented method as recited in claim 31 wherein the step of displaying is interrupted when the computer detects any user input on an input device coupled to the computer (220). The computer-implemented method as recited in claim 31 wherein the step of displaying is interrupted when the computer detects user selection of one of the displayed advertising information and the primary portion of news information in the screen saver. The computer-implemented method as recited in claim 34 wherein if the advertising information is selected, the computer further automatically connects to a Web page on the network corresponding to the selected advertising information (211). The computer-implemented method as recited in claim 34 wherein if the primary portion of the news information is selected, the computer further automatically displays the secondary portion of the news information (208). The computer-implemented method as recited in claim 21 wherein the network is the Internet. The computer-implemented method as recited in claim 21 wherein the network is the World Wide Web. The computer-implemented method as recited in claim 21 wherein the computer is a personal computer. The computer-implemented method as recited in claim 21 wherein the computer is any computer that supports a screen saver mode of operation.

Inventors: HASSETT GREGORY P, REILLY JAMES P, HASSETT, GREGORY P., REILLY, JAMES P.
Applicants: POINTCAST INC, POINTCAST INC.
Application year: 1996
Main classification: G06F17
IPC codes: G06F13, G06F17, G06F3, H04N7, G09F27, G06Q30