EP1242948A1 - Method and apparatus for providing intelligent recommendations to users regarding online activities based on knowledge of data from a user's multiple web-services - Google Patents

Method and apparatus for providing intelligent recommendations to users regarding online activities based on knowledge of data from a user's multiple web-services

Info

Publication number
EP1242948A1
EP1242948A1 EP00978654A EP00978654A EP1242948A1 EP 1242948 A1 EP1242948 A1 EP 1242948A1 EP 00978654 A EP00978654 A EP 00978654A EP 00978654 A EP00978654 A EP 00978654A EP 1242948 A1 EP1242948 A1 EP 1242948A1
Authority
EP
European Patent Office
Prior art keywords
user
data
subscriber
portal
recommendation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP00978654A
Other languages
German (de)
French (fr)
Inventor
Sreeranga Rajan
Jonathan Wu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yodlee com Inc
Yodlee Inc
Original Assignee
Yodlee com Inc
Yodlee Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yodlee com Inc, Yodlee Inc filed Critical Yodlee com Inc
Publication of EP1242948A1 publication Critical patent/EP1242948A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Definitions

  • the present invention is in the field of Internet navigation including various communication means and connection technologies.
  • the present invention pertains more particularly to methods and apparatus, including software, for gathering summary information for users from user-subscribed WEB services, and aggregating the collected data such that a user, through a single interface, may receive intelligent recommendations regarding user-planned online purchases or other activities.
  • WWW World Wide Web
  • Anyone with a suitable Internet appliance such as a personal computer with a standard Internet connection may access (go online) and navigate to information pages (termed web pages) stored on Internet-connected servers for the purpose of garnering information and initiating transactions with hosts of such servers and pages.
  • One problem that is encountered by an individual who has several or many such subscriptions to Internet-brokered services is that there are invariably many passwords and/or log-in codes to be used. Often a same password or code cannot be used for every service, as the password or code may already be taken by another user. A user may not wish to supply a code unique to the user such as perhaps a social security number because of security issues, including quality of security, that may vary from service to service. Additionally, many users at their own volition may choose different passwords for different sites so as to have increased security, which in fact also increases the number of passwords a user may have.
  • Another issue that can plague a user who has many passworded subscriptions is the fact that they must bookmark many WEB pages in a computer cache so that they may quickly find and access the various services. For example, in order to reserve and pay for airline travel, a user must connect to the Internet, go to his/her book-marks file and select an airline page. The user then has to enter a user name and password, and follow on-screen instructions once the page is delivered. If the user wishes to purchase tickets from the WEB site, and wishes to transfer funds from an online banking service, the user must also look for and select the personal bank or account page to initiate a funds transfer for the tickets. Different user names and passwords may be required to access these other pages, and things get quite complicated.
  • a service known to the inventor and described in patent application S/N 09/208,740 entitled “Method and Apparatus for Providing and Maintaining a User- Interactive Portal System Accessible via Internet or other Switched-Packet- Network”, provides a WEB service that allows a user to store all of his password protected pages in one location such that browsing and garnering information from them is much simplified.
  • a feature of the above service allows a user to program certain tasks into the system such that requested tasks are executed by an agent (software) based on user instruction.
  • the service stores user password and log-in information and uses the information to log-in to the user's sites, thus enabling the user to navigate without having to manually input log-in or password codes to gain access to the links.
  • the above-described service uses a server to present a user-personalized application that may be displayed as an interactive home page that contains all of his listed sites (hyperlinks) for easy navigation.
  • the application lists the user's URL's in the form of hyperlinks such that a user may click on a hyperlink and navigate to the page wherein login, if required, is automatic, and transparent to the user.
  • the application described above also includes a software agent that may be programmed to perform scheduled tasks for the user including returning specific summaries and updates about user-account pages.
  • a search function is provided and adapted to cooperate with the software agent to search user-entered URL's for specific content if such pages are cached somewhere in their presentable form such as at the portal server, or on the client's machine.
  • patent application S/N 09/523,598 entitled “Method and Apparatus for Obtaining and Presenting WEB Summaries to Users” describes a software agent used in conjunction with a search function that is enabled to navigate to any URL or group of URL's, provided as input by a user or otherwise deemed appropriate by the service provider, for the purpose of providing summary information regarding updated content for each URL, which may be presented as an HTML information-page to the user.
  • Having all of his or her services available at one portal provides a convenience to a user in not having to remember a plurality of passwords, or to be required to physically log-on to each site.
  • the ability to obtain summary data associated with selected sites through one interface allows a user to greatly speed any decision making process related to his or her online activity.
  • summary information may not help a user with certain other concerns. For example, obtaining accurate financial information concerning his entire portfolio of banking and investments would require much user calculation depending on the exact nature of the result desired. Similarly compiling a trend that reflects a user's online activity at a plurality of shopping services may also be desired.
  • a system known to the inventor and disclosed in the co-pending patent application entitled "Method and Apparatus for Providing Calculated and Solution- Oriented Personalized Summary-Reports to a User through a Single User- Interface” provides a service that processes aggregated data from multiple WEB-sites to return calculated solutions based on user query. Such solution-oriented processing is accomplished through a unique database-reporting engine (DBRE) that has the required data processing means. Such a service can return many different kinds of solution-orientated reports to users on a scheduled or on-demand basis.
  • DBRE database-reporting engine
  • an Internet portal system for making intelligent recommendations to subscribers of the portal, comprising a data gathering system operating on the portal, gathering data from multiple Internet sites associated with the subscriber; a tracking system monitoring the subscriber's on-line activity; and a recommendation engine for transmitting recommendations to the subscriber.
  • the system is characterized in that the portal system monitors the subscriber's on-line activity, and transmits recommendations to the subscriber based on the subscriber's on-line activity and on subscriber information stored in the data repository.
  • recommendation engine prepares and transmits recommendations in both text and graphic formats.
  • the data relied upon in preparing a recommendation is derived entirely from the data repository.
  • at least a portion of the data relied upon in preparing a recommendation is retrieved at least in part from Internet sites associated with the subscriber.
  • a recommendation destination may specified in a subscriber's profile stored in the data repository, recommendations may be made in a wide variety of situations, such as on one or more of banking, investment, travel, or on-line purchasing activities.
  • a method of supporting a subscriber to a portal system during on-line activity comprising steps of (a) tracking the subscriber's on-line activity by the portal system; and (b) preparing and transmitting activity recommendations by a recommendation engine to the subscriber, based on the subscriber's on-line activity and upon subscriber information stored in a data repository associated with the portal system.
  • the recommendation engine prepares and transmits reports in both text and graphic formats.
  • Data relied in preparing a recommendation may be derived entirely from the data repository, or may be retrieved at least in part from Internet sites associated with the subscriber.
  • a recommendation destination is specified in a subscriber's profile stored in the data repository.
  • recommendations may be made in a wide variety of situations, such as on one or more of banking, investment, travel, or on-line purchasing activities.
  • Internet portal system is enabled to monitor subscriber's activities, and to make intelligent recommendations about that activity based on the real-time activity and on stored information about the subscriber's activities.
  • Fig. 1 is an overview of an Internet portal system and network according to an embodiment of the present invention.
  • Fig. 2 is an exemplary plan view of a personalized Portal home page application as it may be seen on a display monitor according to an embodiment of the present invention.
  • Fig. 3 is a flow diagram illustrating user interaction with the Internet portal of fig. 1.
  • Fig. 4 is a block diagram illustrating a summarization software agent and capabilities thereof according to an embodiment of the present invention.
  • Fig. 5 is a logical flow chart illustrating an exemplary summarization process performed by the software agent of Fig. 4 operating in a user-defined mode.
  • Fig. 6 is a logical flow chart illustrating an exemplary summarization process performed by the software agent of Fig. 4 in a User-independent smart mode with minimum user input.
  • Fig. 7 is an overview of a meta-summarization process according to an embodiment of the present invention.
  • Fig. 8 is a block diagram illustrating components and functions of the database-reporting engine of Fig. 7 according to an embodiment of the present invention.
  • Fig. 9 is a process flow diagram illustrating logical user and system steps for initialization to completion of a meta-summarized report according to an embodiment of the present invention.
  • Fig. 10 is a representative view actual screen shot of a meta-summarized report on display in a user's browser interface according to an embodiment of the present invention.
  • Fig. 11 is an overview of a personalized recommendation system according to an embodiment of the present invention.
  • Fig. 12 is a block diagram illustrating components of a purchase recommendation engine according to an embodiment of the present invention.
  • Fig. 13 is a process flow diagram illustrating an exemplary purchase recommendation process according to an embodiment of the present invention.
  • a unique Internet portal is provided and adapted to provide unique services to users who have obtained access via an Internet or other network connection from an Internet-capable appliance.
  • Such an interface provides users with a method for storing many personal WEB pages and further provides search function and certain task-performing functions.
  • the methods and apparatus of the present invention are taught in enabling detail below.
  • Fig. 1 is an overview of an Internet portal system 11 and Internet network 13 according to an embodiment of the present invention.
  • Portal system 11 in this embodiment, operates as an ISP in addition to a unique network portal, but may, in other embodiments be implemented as a stand-alone Internet server.
  • the service and apparatus described herein may also be provided by such as a search and listing service (AltaVistaTM, YahooTM) or by any other enterprise hosting a WEB-connected server.
  • Internet 13 is representative of a preferred use of the present invention, but should not be considered limiting, as the invention could apply in other networks and combinations of networks.
  • ISP 15 in this embodiment comprises a server 31, a modem bank 33, represented here by a single modem, and a mass storage repository 29 for storing digital data.
  • the modem bank is a convenience, as connection to the server could be by another type of network link.
  • ISP 15 provides Internet access services for individual subscribers.
  • ISP 15 also provides a unique subscription service as an Internet portal for the purpose of storing many WEB pages or destinations along with any passwords and or personal codes associated with those pages, in a manner described in more detail below. This unique portal service is provided by execution of Portal Software 35, which is termed by the inventors the Password-All suite.
  • the software of the invention is referred to herein both as the Portal Software, and as the Password-all software suite. Also, in much of the description below, the apparatus of the invention is referred to by the Password-All terminology, such as the Password-All Server or Password-All Portal.
  • ISP 15 is connected to Internet 13 as shown.
  • Other equipment known in the art to be present and connected to a network such as Internet 13, for example, IP data routers, data switches, gateway routers, and the like, are not illustrated here but may be assumed to be present.
  • Access to ISP 15 is through a connection-oriented telephone system as is known in the art, or through any other Internet/WEB access connection, such as through a cable modem, special network connection (e.g. Tl), ISDN, and so forth.
  • Tl special network connection
  • ISDN ISDN
  • a user has access to Internet Password-All Portal services by a user name and password as is well known in the art, which provides an individualized WEB page to the subscriber.
  • a user has other individuals that use his or her Internet account, then an additional password or code unique to the user may be required before access to portal 31 is granted.
  • Such personalized Portal WEB pages may be stored in repository 29, which may be any convenient form of mass storage.
  • Three Internet servers 23, 25, and 27, are shown in Internet 13, and represent Internet servers hosted by various enterprises and subscribed to by a user operating appliance 17.
  • server 23 may be a bank server wherein interactive online banking and account managing may be performed.
  • Server 25 may be an investment server wherein investment accounts may be created and managed.
  • Server 27 may be an airline or travel server wherein flights may be booked, tickets may be purchased, and so on.
  • all three servers are secure servers requiring user ID and password for access, but the invention is not necessarily limited to just secure services.
  • a subscribing user operating an Internet-capable appliance such as appliance 17, connects to Password- All Portal system 11 hosted by ISP 15, and thereby gains access to a personalized, interactive WEB page, which in turn provides access to any one of a number of servers on Internet 13 such as servers 23, 25, and 27, without being required to enter additional passwords or codes.
  • the software that enables this service is termed Password-All by the inventors.
  • Password-All may be considered to be a software suite executing on the unique server, and in some instances also on the user's station (client).
  • portal software 35 allows a connected user to search his listed pages for information associated with keywords, text strings, or the like, and allows a user to program user- defined tasks involving access and interaction with one or more Internet-connected servers such as servers 23, 25, and 27 according to a pre-defined time schedule. These functions are taught in enabling detail below.
  • Fig. 2 is an illustration of a personalized portal page as may be seen on a display monitor according to an embodiment of the present invention, provided by Password- All Portal software 35 executing on server 31, in response to secure access by a subscriber.
  • Page 32 presents an interactive listing 34 of user-subscribed or member WEB pages, identified in this example by URL, but which may also be identified by any convenient pseudonym, preferably descriptive, along with user name and typically encrypted password information for each page.
  • a scroll bar 35 is provided and adapted to allow a user to scroll up or down the list to enable viewing as is known in the art.
  • Items listed in list 34 in this example may be considered destinations on such as servers 23, 25, and 27 of Fig. 1.
  • the URL associated with an item on this list will not take a user to a server, per se, but to a page stored on a server.
  • User names and password data associated with each item in list 34 are illustrated in respective columns labeled user name, and password, to the right of the column labeled destination.
  • Each listing, or at least a portion of each listing is a hyperlink invoking, when selected, the URL to that destination.
  • a particular service may have more than one associated URL.
  • My Bank.com may have more than one URL associated for such as different accounts or businesses associated also with a single subscriber.
  • one page 33 may be shared by more than one user, such as a husband and wife sharing a common account and subscription. An instance of this is illustrated herein with respect to the server labeled Mortgage.com wherein both a John and a Jane Doe are listed together under the column labeled user name.
  • a network of individuals perhaps business owners, authorized co-workers, investment parties, or the like may share one application. In this way, system 11 may be adapted for private individuals as well as business uses.
  • a user may scroll, highlight, and select any URL in his or her list 34 for the purpose of navigation to that particular destination for further interaction.
  • Application 33 already has each password and user name listed for each URL. It is not necessary, however, that the password and user name be displayed for a user or users. These may well be stored transparently in a user's profile, and invoked as needed as a user makes selections. Therefore, a user is spared the need of entering passwords and user names for any destinations enabled by list 34.
  • each list 34 is built, configured and maintained by a subscribing user or users, and an editing facility is also provided wherein a user may edit and update listings, including changing URL's adding and deleting listings, and the like.
  • new listings for a user's profile may be added semi-automatically as follows:
  • a user opens a new account with an enterprise through interaction with a WEB page hosted by the enterprise, the user is required to provide certain information, which will typically include such as the user's ID, address, e-mail account, and so forth, and typically a new user name and password to access the account.
  • the user will be interacting with the enterprise's page from his/her browser.
  • a Password-All plug-in is provided wherein, after entering the required information for the new enterprise, the user may activate a pre-determined signal (right click, key stroke, etc.), and the Password-All suite will then enter a new passthrough in the user's Password. All profile at the Password-All Portal server.
  • the enterprise hosting the Password-All Portal may, by agreement with other enterprises, provide log-in and sign-up services at the Password-All Portal, with most action transparent to the user.
  • a selectable browser list of cooperating ente ⁇ rises such as banks, security services, and the like
  • a user having a Password-All Portal subscription and profile may select among such cooperating ente ⁇ rises and open new accounts, which will simultaneously and automatically be added to the Password-All Portal page for the user and to the server hosted by the cooperating ente ⁇ rise.
  • a user's complete profile is never stored on a single server, but is distributed over two or more, preferably more, servers, so any problem with any one server will minimize the overall effect for any particular user.
  • Password-All allows a user to access a complete list of the user's usual cyberspace destinations, complete with necessary log-on data, stored in an encrypted fashion, so a user may simply select a destination (a hyperlink) in the Password-All list, and the user's browser then invokes the URL for the selected destination.
  • Password-All may display banner ads and other types of advertisement during the navigation time between a hyperlink being invoked and the time the destination WEB page is displayed.
  • a user/subscriber need not access the Password-All page to enjoy the advantages of the unique features provided.
  • a Plug-In is provided for the subscriber's WEB browser. If the subscriber navigates by use of the local browser to a WEB page requiring a secure log-in, such as his/her on-line banking destination, when the subscriber is presented with an input window for ID and Password, the plug in may be activated by a predetermined user input, such as a hot key or right click of the mouse device. The plug-in then accesses, transparently, the Password-All page (which may be cached at the client), and automatically accesses and provides the needed data for log-on.
  • a search option 37 allows a user to search list 34 for specific URL's based on typed input such as keywords or the like.
  • the number of URL's stored in list 34 can be extensive making a search function such as function 37 an attractive option.
  • a criteria dialog box 51 illustrated as logically separated from and below list 34 is provided and adapted to accept input for search option 37 as is known in the art.
  • search option 37 may bring up a second window wherein a dialog box such as box 51 could be located.
  • the search function may also be configured in a window invoked from window 33, and caused to search all or selected ones of listed destinations, and to return results in a manner that may be, at least to some extent, configured by a user.
  • a dialog box may be presented wherein a user may enter a search criteria, and select among all of the listed destinations. The search will then be access each of the selected destinations in turn, and the result may be presented to the user as each instance of the criteria is found, or results may be listed in a manner to be accessed after the search.
  • the search function is a part of the Password-All Portal software, available for all users, and may be accessed by hyperlinks in user's personal pages.
  • users may create highly individualized search functions that may be stored in a manner to be usable only by the user who creates such a function.
  • the Password-All suite is structured to provide periodic reports to a user, in a manner to be structured and timed by the user, through the user's profile. For example, reports of changes in account balances in bank accounts, stock purchases, stock values, total airline travel purchases, frequent-flier miles, and the like may be summarized and provided to the users in many different ways. Because the Password-All Portal server with the Password-All software site handles a broad variety of transactional traffic for a user, there is an opportunity to summarize and collect and process statistics in many useful ways. In preferred embodiments of the invention such reports may be furnished and implemented in a number of different ways, including being displayed on the user's secure personal WEB page on the Password-All Portal.
  • task results including reports, and hard documents such as airline tickets may be sent over the Internet or other data packet-networks to user-defined destinations such as fax machines, connected computer nodes, e-mail servers, and other Internet-connected appliances. All tasks may be set-up and caused to run according to user-defined schedules while the user is doing something else or is otherwise not engaged with the scheduled task.
  • a facility is provided in a user's profile to automatically track transactions made at various destinations, and to authorize payment either on a transaction-by-transaction basis, or after a session, using access to the user's bank accounts, all of which may be pre-programmed and authorized by the user.
  • Other functions or options illustrated as part of application 35 include a last
  • URL option 41 allows a user to immediately navigate to a last visited URL.
  • Update function 43 provides a means of updating URL's for content and new address.
  • An add function enables a user to add additional URL's to list 34.
  • function 45 may also provide a means to delete entries. Other ways to add accounts are described above. It should be noted that the services provided by the unique Password-All Portal in embodiments of the present invention, and by the Password-All software suite are not limited to destinations requiring passwords and user names. The Password-All Portal and software in many embodiments may also be used to manage all of a user's bookmarks, including editing of bookmarks and the like.
  • bookmarks will typically be presented in indexed, grouped, and hierarchical ways.
  • Password-All There are editing features provided with Password-All for adding, acquiring, deleting, and otherwise managing bookmarks.
  • bookmarks may be downloaded from a user's Password-All site, and loaded onto the same user's local browser. In this manner, additions and improvements in the bookmark set for a user may be used without the necessity of going to Password-All. Further, bookmarks may be uploaded from a user's local PC to his/her home page on the Password- All site by use of one or more Password-All plug-ins.
  • Password-All only an ability to point-and-click is needed for all navigation.
  • a limited apparatus such as an appliance without a keyboard or keypad, a Smartcard or embedded password may be used, or some other type of authentication.
  • an interactive application such as application 33 may be provided in a form other than a WEB page without departing from the spirit and scope of the present invention.
  • an application such as application 33 may be provided as a downloadable module or program that may be set-up and configured off-line and made operational when online.
  • Fig. 3 is a flow diagram illustrating user interaction with the Internet
  • Password- All Portal of fig. 1 The following process steps illustrated, according to an embodiment of the present invention, are intended to illustrate exemplary user-steps and automated software processes that may be initiated and invoked during interaction with an Internet portal of the present invention such as portal 31 of Fig. 1.
  • a user connects to the Internet or another previously described switched-packet network via a compatible appliance such as Internet appliance 17 of Fig. 1.
  • a user enters a user-name and password, which, in one embodiment, may simply be his ISP user name and password. In another embodiment, a second password or code would be required to access an Internet portal such as portal server 31 of Fig. 1 after logging onto the Internet through the ISP. In some cases, having a special arrangement with the ISP, there may be one password for both Internet access through the ISP and for Password- All.
  • a personal WEB page such as page 32 of Fig. 2 is displayed via Internet portal server 31. At minimum, the personalized WEB page will contain all user configured URL's, and may also be enhanced by a search function, among other possibilities.
  • step 58 a user will, minimally, select a URL from his or her bookmarked destinations, and as is known by hyperlink technology, the transparent URL will be invoked, and the user will navigate to that destination for the pu ⁇ ose of normal user interaction.
  • the Password- All Portal software transparently logs the user on to the destination page, if such log-on is needed.
  • the user invokes a search engine by clicking on an option such as described option 37 of Fig. 2.
  • the user inputs search parameters into a provided text field such as text field 51 of Fig. 2.
  • the user starts the search by a button such as button 52.
  • the search engine extracts information in step 64.
  • Such information may be, in one option, of the form of URL's fitting the description provided by search parameters.
  • a searched list of URL's may be presented in a separate generated page in step 66 after which a user may select which URL to navigate to.
  • the user may provide search criteria, and search any or all of the possible destinations for the criteria.
  • information extracted in step 64 may include any information contained in any of the stored pages such as text, pictures, interactive content, or the like.
  • one displayed result page may provide generated links to search results that include the URL associated with the results. Perhaps by clicking on a text or graphic result, the associated WEB page will be displayed for the user with the result highlighted and in view with regards to the display window.
  • a software agent termed a gatherer by the inventors, is adapted to gather and return summary information about URL's according to user request or ente ⁇ rise discretion. This is accomplished in embodiments of the present invention by a unique scripting and language parsing method provided by the inventor wherein human knowledge workers associated with the service provide written scripts to such a gatherer according to subscriber or ente ⁇ rise directives.
  • a software gatherer and capabilities thereof, is described in enabling detail below.
  • FIG. 1 there is illustrated an exemplary architecture representing a portal service-network which, in this case is hosted by ISP 15.
  • Portal software 35 in this embodiment executes on portal server 31 set-up at the ISP location.
  • Mass repository 29 is used for storing subscriber information such as passwords, login names, and the like.
  • Internet servers 23, 25, and 27 represent servers that are adapted to serve WEB pages of ente ⁇ rises patronized by a subscriber to the portal service such as one operating Internet appliance 17.
  • the main pu ⁇ ose of portal software 35 as described above with reference to Fig. 2 is to provide an interactive application that lists all of the subscriber's WEB sites in the form of hyperlinks.
  • software 35 uses the subscriber's personal information to provide an automatic and transparent login function for the subscriber while jumping the subscriber to the subject destination.
  • an interactive list 34 containing user-entered hyperlinks and a set of interactive tools is displayed to a subscriber by portal software 35 of Fig. 1.
  • agent software
  • Agent 39 may be programmed to perform certain tasks such as obtaining account information, executing simple transactions, returning user- requested notification information about upcoming events, and so on.
  • Search function 37 and update function 43 may be integrated with agent 39 as required to aid in functionality.
  • agent 39 may, in some embodiments, search for and return certain summary information contained on user- subscribed WEB pages, such as account summaries, order tracking information and certain other information according to user-defined parameters. This feature may be programmed by a user to work on a periodic time schedule, or on demand.
  • enhancements are provided to agent 39.
  • Such enhancements may be integrated into agent 39 of portal software 35 (Fig.'s 1 and 2); and may be provided as a separate agent or gatherer to run with portal software 35; or may, in some embodiments, be provided as a standalone service that is separate from portal software 35.
  • Fig. 4 is a block diagram illustrating a summarization software agent 67 and various capabilities and layers thereof according to an embodiment of the present invention.
  • Summarization agent 67 hereinafter termed gatherer r 67, is a programmable and interactive software application adapted to run on a network server. Gatherer 67 may, in one embodiment, be integrated with portal software 35 of Fig. 1 and be provided in the form of a software module separate from agent 39 (Fig. 2). In another embodiment, gatherer 67 may be a part of agent 39 as an enhancement to the function of that agent as previously described. In still another embodiment, gatherer 67 may be provided as a parent or client-side application controlled by a separate service from the portal service described above.
  • gatherer 67 is a multi-featured software application having a variety of sub-modules and interface modules inco ⁇ orated therein to provide enhanced function.
  • Gatherer 67 has a client/service interface layer 69 adapted to enable directive input from both a client (user) and a knowledge worker or workers associated with the service.
  • a browser interface 77 is provided in layer 69, and adapted to provide access to application 67 from a browser running on a client's PC or other Internet or network appliance.
  • Interface 77 facilitates bi-directional communication with a user's browser application (not shown) for the pu ⁇ ose of allowing the user to input summary requests into gatherer 67 and receive summary results.
  • Interface 77 supports all existing network communication protocols such as may be known in the art, and may be adapted to support future protocols.
  • Layer 69 also comprises a unique input scripting module 79 that is adapted to allow a human knowledge worker to create and supply directive scripts containing the site logic needed by gatherer 67 to find and retrieve data from a WEB site.
  • gatherer 67 executes and runs on a network server such as server 31 of Fig. 1.
  • gatherer 67 is part of the portal software suite 35 running on server 31 of Fig. 1. Gatherer 67 may be provided as several dedicated agents, or as one multi-functional agent without departing from the spirit and scope of the present invention. For example, one gatherer 67 may be scripted and programmed to execute a single user request with additional gatherers 67 called upon to perform additional user-requests. Alternatively, one gatherer 67 may be dedicated and assigned to each individual user and adapted to handle all requests from that user.
  • Interface layer 69 facilitates exchange of information from both a client and a knowledge worker.
  • a client operating a WEB browser with an appropriate plug-in is enabled to communicate and interact with gatherer 67.
  • gatherer 67 For example, a user may enter a request to return a summary of pricing for all apartments renting for under $1000.00 per month located in a given area (defined by the user) from apartments.com (one of user's registered WEB sites). The just mentioned request would be categorized as either a periodic request, or a one time (on demand) request.
  • the communicated request initiates a service action wherein a knowledge worker associated with the service uses module 79 to set-up gatherer 67 to perform it's function. Module 79 is typically executed from a network-connected PC operated by the knowledge worker.
  • a unique scripting method facilitated by module 79 is provided to enable gatherer 67 to obtain the goal information requested by a user.
  • gatherer 67 the above mentioned example of
  • WEB-site apartments.com has a specific HTML (hyper-text-markup-language) logic that it uses to create its site and post its information.
  • site logic is relatively standard fare for a majority of different sites hosted by different entities.
  • a knowledge worker creates a site-specific script or template for gatherer 67 to follow.
  • Such a template contains descriptions and locations of the appropriate fields used, for example, at apartments.com. Apartment description, location, deposit information, rental information, agent contact information, and other related fields are matched in terms of location and label description on the template created with module 79.
  • Completed templates are stored in a database contained in a storage facility such as, perhaps, repository 29 of Fig. 1. Such templates may be reused and may be updated (edited) with new data.
  • one script may contain site logics for a plurality of WEB pages, and instructions for specific navigational instruction and password or login information may be contained therein and executed serially, such as one site at a time. It is important to note that the knowledge worker or workers may perform much of their scripting via automatic controls such as by object linking and embedding (OLE) and a minor portion of scripting may be performed manually in an appropriate computer language, many of which are known in the art).
  • OLE object linking and embedding
  • Gatherer 67 also has a process layer 71 adapted for internal information gathering and parameter configuration.
  • An optional portal server interface 81 is provided and adapted to allow gather 67 to provide updated information to a user's list of hyperlinks and also to obtain data from portal server 31 if required.
  • required hyperlinks may be mirrored from a user's home page to a scripting template for navigational pu ⁇ oses.
  • gatherer 67 is part of a standalone service, a convention for providing user login information may be supplied at the client's end when a request is made. For example, an encrypted password may be supplied by a client plug-in and gatherer 67 may temporarily borrow the user's encryption key when auto login is performed.
  • An appliance configuration module 83 is provided and adapted to allow a user to define and configure an Internet appliance to communicate with the service and receive summary information.
  • Such appliances may include but are not limited to palm top PC's, lap top PC's, cellular telephones, WEB TV's, and so on.
  • a user will be presented a configuration WEB page from a network server that displays in his browser window on his desktop PC.
  • the page contains an interface for communicating device parameters and communication protocol types to module 83.
  • a user may configure a preferred device for receipt of summary information.
  • Device parameters and communication protocols inherent to such a device are inco ⁇ orated into the scripting of the site template and are used as instructions for WEB summary delivery.
  • a navigation layer 73 is provided and adapted to perform the function of external site navigation and data gathering for gatherer 67.
  • a communication interface/browser control module 85 is provided and adapted to function as a WEB browser to access WEB sites containing WEB data. Control 85 receives it's instruction from the scripted template created by the knowledge worker.
  • a parsing engine 87 is provided and adapted to parse individual WEB sites according to a template created via scripting module 79. Parsing engine 87 may be a
  • parsing engine 87 gathers current data in the appropriate field, and returns that data to the service for further processing such as data conversion, compression and storage, and the like.
  • this logic may be used by the summarization service to instruct control 83 and parsing engine 87.
  • the inventor provides herein an exemplary script logic for navigating to and garnishing data from amazonTM.com.
  • the hyperlinks and/or actual URLs required for navigation are not shown, but may be assumed to be included in the template script.
  • a company name Yodlee (known to the inventors) is used in the script for naming object holders and object containers, which are in this case Active XTM conventions.
  • JavaTM script or another object linking control may be used.
  • $#rows ⁇ select_row( $i );
  • the above example is a script that instructs control 85 and parser 87 to navigate to and obtain data from AmazonTM.com, specifically that data that reflects the user's current order status.
  • Scripts may also be written to obtain virtually any type of text information available from any site. For example, a user may wish to obtain the New York Times headlines, the top ten performing stocks, a comparative list of flights from San Francisco to New York, etc.
  • metadata may be associated with and used in-place of the actual scripted language for the pu ⁇ ose of reducing complication in the case of many scripts on one template.
  • a data processing layer 75 is provided and adapted to store, process, and present returned data to users according to ente ⁇ rise rules and client direction.
  • a database interface module 89 is provided and adapted to provide access for gatherer 67 to a mass repository such as repository 29 of Fig. 1, for the p pose of storing and retrieving summary data, templates, presentation directives, and so on. Gatherer agent 67 may also access data through interface 89 such as profile information, user account and URL information, stored site logics and so on. Data scanned from the WEB is stored in a canonical format in a database such as repository 29, or in another connected storage facility. All stored data is, of course, associated with an individual who requested it, or for whom the data is made available according to ente ⁇ rise discretion.
  • a summarization page module 91 is provided and adapted to organize and serve a WEB summary page to a user.
  • Module 91 may immediately push a WEB summary to a user, or module 91 may store such summarized pages for a user to access via a pull method, in which case a notification may be sent to the user alerting him of the summary page availability.
  • Summarization module 91 includes an HTML Tenderer that is able to format data into HTML format for WEB page display. In this way, e-mail messages and the like may be presented as HTML text on a user's summarization page.
  • any summary data from any site may include an embedded hyperlink to that site. In this way, a user looking at an e-mail text in HTML may click on it and launch the appropriate e-mail program. Other sites will, by default, be linked through the summary page.
  • the renderer is capable of formatting and presenting the summary data into a number of formats specific to alternative devices. Examples of different known formats include, but are not limited to XML, plain text, VoxML, HDML, audio, video, and so on.
  • gather 67 is flexible in such a way as it may act according to ente ⁇ rise rules, client directives, or a combination of the two.
  • a knowledge worker provides a template (if one is not already created for that site) that contains the "where to go” and “what to get” information according to site logic, user input, and known information.
  • a user requests a summary about data on one of his sites such as, perhaps, current interest rates and re-finance costs at his mortgage site
  • the service may at it's own discretion provide an additional unsolicited summary from an alternate mortgage site for comparison.
  • This type of summarization would be designed to enhance a user's position based on his profile information. In this case, updated data about latest interest rates, stock performances, car prices, airline ticket discounts, and so on would be stored by the service for comparative pu ⁇ oses. If a user request for a summary can be equaled or bettered in terms of any advantage to the user, such summary data may be included.
  • created templates may be re-used unless a WEB site changes it's site logic parameters, in which case, the new logic must be accessed and any existing templates must be updated, or a new template may be created for the site.
  • the templates contain site-specific script obtained from the site and stored by the knowledge workers.
  • companies hosting WEB pages automatically provide their site logics and any logic updates to the service by virtue of an agreement between the service and the WEB hosts.
  • gatherer 67 may be implemented as a client application installed on a user's PC.
  • a user would not be required to supply log-in or password codes.
  • Summarization scripts may be sent to the client software and templates may be automatically created with the appropriate scripts using log-in and password information encrypted and stored locally on the user's machine.
  • gatherer 67 may also be used to provide such as automatic registration to new sites, and for updating old registration information to existing sites. For example, if a user whishes to subscribe, or register at a new site, only the identification of the site is required from the user as long as his pertinent information has not changed.
  • gatherer 67 through control module 73 may present login or password codes from a list of alternative codes provided by a user.
  • a database (not shown) containing a wealth of password options may be accessed by gatherer 67 for the pu ⁇ ose of trying different passwords until one is accepted by the site. Once a password or log-in code is accepted, it may be sent to a user and stored in his password list and at the network level.
  • a software application such as gatherer 67 may be implemented in many separate locations connected in a data network. For example, a plurality of gatherer applications may be distributed over many separate servers linked to one or more mass repositories. Client applications include but are not limited to a WEB-browser plug-in for communicating to the service. Plug-in extensions may also be afforded to proxy servers so that auto-login and data access may still be performed transparent to a user.
  • plug-ins enabling communication with gatherer 67 may be provided and configured to run on other network devices for the pu ⁇ ose of enabling such a device to initiate a request and get a response without the need for a desktop computer.
  • a user operating a desktop PC will order a one time or periodic summary related to some or all of his subscribed WEB sites.
  • a logical flow of an exemplary request/response interaction is provided below.
  • Fig. 5 is a logical flow chart illustrating an exemplary summarization process performed by the software agent of Fig. 4 operating in a user-defined mode.
  • a user has initiated a new request for a summary (summary order). It is assumed for the pu ⁇ ose of discussion, that the request of step 93 involves a site wherein no template has been created.
  • the request is received and analyzed. A knowledge worker will likely perform this step.
  • the new request may be posted to the user's portal home page, sent directly to gatherer 67, or even communicated through e-mail or other media to the service.
  • a knowledge worker accesses particular site logic associated with the request URLs. For example, if the request involves a plurality of URLs, then all site logics for those URLs are accessed. Logic may be available in a repository such as repository 29 of Fig. 1 if they were obtained at the time of user registration to a particular URL, or sent in by WEB-site hosts shortly after registration. If it is a completely new URL, then the logic must be obtained from the site. In most cases however, the logic will be known by virtue of a plurality of users accessing common
  • cross-linking in a database of logic/user associations may be performed to access a logic for a site that is new to one particular user, but not new to another.
  • step 99 the knowledge worker creates a template by virtue of scripting module 79 (Fig. 4) containing all site logic, URLs, log-in and password information, and the user request information.
  • templates may be re-used for a same request.
  • scripting may be mostly automated with minimum manual input performed by the knowledge worker.
  • an existing template will match a new request exactly, and may be re-used. In that case steps 97, 99, and 101 would not be required.
  • step 101 the template is stored and associated with the requesting user.
  • the stored template may now be retrieved at a scheduled time for performing the summary gathering.
  • a browser control such as module 85 of Fig. 4 is activated to access the stored template and navigate to specified URLs for the pu ⁇ ose of gathering summary data. If a timing function is attributed to the template stored in step 101, then the template may self execute and call up the browser function. In another embodiment, the knowledge worker may notify the browser control to get the template for it's next task. In some embodiments, a plurality of controls may be used with one template as previously described.
  • step 105 automatic log-in is performed, if required, to gain access to each specified URL.
  • step 107 a specified WEB-page is navigated to and parsed for requested data according to the logic on the template. If there are a plurality of WEB -pages to parse, then this step is repeated for the number of pages.
  • a variety of parsing engines may be used for this process such as an IETM parser, or a PearlTM parser. Only the requested data is kept in step 107.
  • a request may be an on-demand request requiring immediate return, or a scheduled request wherein data may be posted.
  • data may be posted.
  • step 109 such logic is confirmed. If the data is to be presented according to a periodic schedule, then summary data parsed in step 107 is stored for latter use in step 111.
  • step 113 the summary data is rendered as HTML if not already formatted, and displayed in the form of a summary
  • the summary page may be posted for access by a user at a time convenient to the user (pull), or may be pushed as a WEB-page to the user and be made to automatically display on the user's PC. Notification of summary page availability may also be sent to a user to alert him of completion of order.
  • the summary data is from a one-time on-demand request and required immediately by a user, then a network appliance and data delivery method (configured by the user) is confirmed, and the data is rendered in the appropriate format for delivery and display in step 117.
  • the summary data is delivered according to protocol to a user's designated appliance.
  • a user receives requested information in the appropriate format.
  • step 105 may in other embodiments include sub-steps such as getting an encryption key from a user.
  • part of a request may be rendered as HTML as in step 113 while certain other portions of the same request data might be rendered in another format and delivered via alternative methods. There are many possibilities.
  • the method and apparatus of the present invention may be used to present summaries to users without user input. Process logic such as this is detailed below.
  • Fig. 6 is a logical flow chart illustrating an exemplary summarization process performed by the software agent of Fig. 4 in a User-independent smart mode with minimum or no user input.
  • an ente ⁇ rise-initiated summary process begins.
  • the ente ⁇ rise may be assisting a user in finding a better deal or, perhaps presenting the individual with summaries from and links to alternative pages not yet subscribed to by a user.
  • a database containing user information and parameters is accessed and reviewed. Certain information specific to a user may be required to initiate an ente ⁇ rise-sponsored summary report.
  • the knowledge worker accesses the site logic specific to the specified target site or sites for summarization.
  • the knowledge worker modifies an existing user template, or creates a new one if necessary.
  • the template is stored in a repository such as repository 29 and associated with the user.
  • the template either self-executes according to a timed function and invokes a browser control such as control 85 (Fig. 4), or is accessed by control 85 as a result of task notification.
  • the browser control begins navigation. Auto logins are performed, if required, in step 129 to gain access to selected sites. If the WEB pages are new to a user, and the user has no registration with the WEB site, then through agreement, or other convention, the service may be provided access to such sites. Such an agreement may be made, for example, if the host of the WEB site realizes a possibility of gaining a new customer if the customer likes the summary information presented.
  • step 131 all sites are parsed for summary data and stored in canonical fashion in step 133.
  • step 135 the data is compiled and rendered as HTML for presentation on a summary page.
  • step 137 a WEB summary containing all of the data is made available to a user and the user is notified of it's existence.
  • Providing certain information not requested by a user may aid in enhancing a user's organization of is current business on the WEB. Moreover, unsolicited WEB summaries may provide better opportunities than the current options in the user's profile. Of course, assisting a user in this manner will require that the ente ⁇ rise (service) have access to the user's profile and existing account and service information with various WEB sites on the user's list. A user may forbid use of a user's personal information, in which case, no ente ⁇ rise-initiated summaries would be performed unless they are conducted strictly in an offer mode instead of a comparative mode.
  • the method and apparatus also may be practiced in a language and platform independent manner, and be implemented over a variety of scalable server architectures. Presenting Meta-Summarized Reports
  • a method is provided largely through unique software wherein summary reports may be ordered and presented to users, the reports reflecting calculated and solution-orientated results.
  • This type of summarizing is termed meta-summarization by the inventors, because it is a summarization over a plurality of data sources. Such a method is described in enabling detail below.
  • Fig. 7 is an overview of a meta-summarization process according to an embodiment of the present invention.
  • the term "meta-summary" is used by the inventor in this embodiment also to distinguish the meta-summary process taught herein from the summary process taught above in this specification; in that meta- summarizing involves inte ⁇ reting and calculating data for reporting a solution- orientated result derived from data retrieved from multiple network sources.
  • a portal station 151 is provided and adapted by virtue of software and hardware, to perform WEB-summary and presentation services according to embodiments described in the co-patent applications listed above.
  • Station 151 may be an ISP, a main Internet server, or other network connected server or interface station.
  • portal station 151 is continuously connected to a source network, which is in this embodiment, the Internet network represented by Internet cloud 139.
  • the above-described network connection is afforded by an Internet-connection line 149 from station 151 to an Internet backbone 147.
  • Internet backbone 147 represents all lines and connections, including sub-nets that make up a global Internet 139.
  • Portal station 151 has a means provided therein for maintaining a portal interface 153.
  • Portal interface 153 is a file-server interface in this example, however in other embodiments, differing types of network-interface hardware may be substituted therefor.
  • Interface 153 provides hyper-text-transfer protocol (HTTP) pages over an Internet-connection such as path 161 to subscribing users operating such as an illustrated network-adapted PC 163.
  • HTTP hyper-text-transfer protocol
  • a user operating PC 163 may go online, in this case by such as a dial-up connection, and communicate with portal interface 153 over connection path 161.
  • Connection path 161 may be a normal telephone line, an ISDN line, or another known type of Internet-connection link including wireless connection.
  • a dial-up connection is illustrated herein only as a more common connection method.
  • a data repository 157 is provided within station 151 and adapted to warehouse aggregated data on behalf of and about a user. Data repository 157 may be part of the same hardware supporting portal interface 153 or it may be a separate hardware implementation connected by a data link.
  • Repository 157 may be of the form of optical storage, or any other known implementation used for storing large amounts of digital data. Repository 157 may be assumed to support varied database programs as may be required to manipulate and organize data or metadata stored therein.
  • a data gathering sub-system GSS 159 is provided within station 151 and is adapted as a software and hardware implementation capable of navigating data-packet networks, such as Internet 139, upon instruction.
  • GSS 159 represents automated browser control/navigation as described in co-pending patent application S/N 09/523,598.
  • GSS 159 is analogous to navigation layer 73 described in Fig. 4 above.
  • a plurality of network-connected data sources represented herein by file/data servers 141-145 are illustrated in Internet 139.
  • Servers 141-145 are user-subscribed servers known to portal station 151.
  • servers 141-145 may represent one user's collective WEB-services for banking and investment. Such options include banking, stock trading, retirement account servers, insurance servers, and so on.
  • servers 141-145 are assumed to represent separate WEB-based services subscribed to by one user and are not affiliated with one another. For example, a user operating such as PC 163 would do all of his on-line banking, trading, and investing using servers 141-145 in this example.
  • servers 141-145 may represent all of a user's frequented on-line shopping services.
  • the fact that all of servers 141-145 are topically related but not affiliated with one another in this example serves only to aid in explanation of the present invention as will be seen below. It is taught in the co-pending patent application entitled "Method and
  • Apparatus for Obtaining and Presenting WEB Summaries to Users that site navigation, parsing data, and returning data to users or storage is enabled, in part, by site-logic templates provided typically by knowledge workers.
  • This aspect is represented herein by a PC 167 adapted for a knowledge worker (KW).
  • a KW working from a station such as PC 167 provides site-logic scripts for navigation to data requested by a user and stored in any one of or all of servers 141-145. Such scripts are provided to GSS 159 over a data link 165.
  • Summary data stored in such as repository 157 is stored for user access. In some cases wherein a user requests immediate data return, data is sent directly to such as portal interface 153 where a user may then access the data immediately.
  • a novel database- reporting engine DBRE 155 is provided and adapted to perform formulative processes to aggregated data on behalf of a user.
  • DBRE 155 is in itself a database utility and is in a preferred embodiment a part of the software environment of repository 157. In another embodiment DBRE 155 may be part of the software environment of portal interface 153.
  • DBRE 155 acts as a first "gathering agent" and checks repository 157 first for user requested data upon request.
  • User-history records of all user transactions at all of his registered WEB-based services are preferably maintained in repository 157 and are accessible to DBRE 155.
  • services such as those represented by servers 141-145 may provided complete transaction histories that may be obtained and stored in repository 157 and updated periodically. In some cases however, such services may not retain history records for users.
  • a user accessing such services through his or her portal interface 153 may track each transaction over a normal course of time resulting in a history record for transactions at that service that is maintained in repository 157.
  • server 141 may represent a banking service where a user has a savings account.
  • Server 142 may represent a banking service where the user has a checking account.
  • Server 143 may represent an on-line investment company maintaining a fast-changing portfolio of investments and losses for the particular user.
  • Server 144 may represent a banking company where the user has an individual retirement account (IRA).
  • Server 145 may represent a mortgage company holding data about the users property portfolios.
  • Each site presumably holds current account-status information and a financial history of transactions performed by a particular user. To illustrate, assume that all financial data particular to one user is provided by or obtained from servers 141-145, aggregated in data repository 157, and updated periodically.
  • a user operating PC 163 may access portal interface 153 by way of Internet connection 161 and request a specific result that involves some or all of the data across multiple servers 141-145.
  • One example would be a user-initiated command "calculate my current net- worth”.
  • the resulting meta-summarized report would inform a user of his or her calculated net- worth with all financial data from all financial data-sources (servers 141-145) analyzed in the process of answering the user query.
  • DBRE 155 utilizes only data that is already aggregated in repository 157. Therefore, it is not specifically required that GSS 159 navigate on behalf of the user in a case where data held in aggregation is current and sufficient to satisfy a user request. However, if a user's particular request, such as the one stated in the above example, requires navigation to one or more of servers 141-145, GSS 159, using site logic provided by KW 167, would navigate to each required site and retrieve the required data. After the required data is aggregated in repository 157, DBRE 155 may analyze the aggregated data and generate an accurate report from the aggregated data based on a user's request.
  • Fig. 8 is a block diagram illustrating additional detail, components and functions of DBRE 155 of Fig. 7 according to an embodiment of the present invention.
  • DBRE 155 is a functional interface capable of obtaining, analyzing, and preparing data for presentation to a user. As such, it contains certain sub-modules responsible for performing certain required functions. For example, a control-logic module 171 is provided as part of DBRE 155 and adapted to parse and confirm a user's request as well as to insure that a user-selected presentation format is available and appropriate for the type of data result requested by a user. Such options are contained in an options database 173 illustrated as connected to control module 171 by a double arrow representing bi-directional communication.
  • Options database 173 may be part of DBRE 155 as illustrated herein, or part of repository 157 and made accessible to DBRE 155.
  • DBRE 155 maintaining its own databases such as options database 173, and a previously described database containing user histories across multiple accounts, then DBRE 155 would be resident in a machine having enough storage memory to hold all required data.
  • Such a machine could be a processor/server.
  • all stored data is held in repository 157.
  • DBRE 155 also has a runtime engine 177, which performs data analyzing and calculation in order to form specific data results or solutions for users based on user request.
  • Engine 177 has access to all of the mathematical tools and system knowledge required to perform its objectives which can vary considerably.
  • a knowledge base (not shown) may be used as a source of intelligence for engine 177 as is generally known in the art of configuration models.
  • Engine 177 performs a wide variety of mathematical functions including such as statistical analysis, summing, averaging, and so on.
  • algebraic, geometric, and trigonometric functions are also provided for performing more complex calculations.
  • user requests will be geared more toward averaging, summing, predicting probabilities, deriving percentages, and so on.
  • summing multiple bank balances would be a common task.
  • Analyzing on-line spending trends across multiple on-line shopping services would be another example of a common task.
  • a more complicated report might compare shopping trends with income potential and produce a ratio figure along with recommended ways to improve on the ratio without sacrificing needed goods. There are many possibilities.
  • GUI graphics user interface
  • DBRE 155 A graphics user interface (GUI) module 181 is provided within DBRE 155 and adapted to prepare data according to requested format and a requesting display type.
  • GUI module 181 has knowledge of which presentation option was selected from options database 173, and knowledge of the parameters (hardware and software platform) of a particular device or station that will receive a report. It is not required that a report be directed back to an originating device.
  • a user may direct a meta-summary report to alternative receiving devices over different mediums. This assumes, of course, that the receiving devices and data networks are known to the system.
  • a user initiates a request illustrated herein as an arrow labeled input to a pre-configured request 169 from such as his or her browser interface.
  • Request 169 is parsed for meaning in control-logic module 171. If there is an error detected in the original request 169, such as missing information or an option selection that is not available, then an error report is immediately sent back to that user as illustrated by the arrow labeled error report.
  • Control-logic module 171 may check options database 173 to determine if an unavailable option was selected and present an alternative available option back with the error report.
  • module 171 accesses a guard (Gl) 175 resident on the client side of such as repository 157 of Fig. 7 to see if there is enough current data stored therein to enable formulation of a valid result.
  • Data obtained from repository 157 of Fig. 1 by way of database interaction is included in guard 175 and passed to engine 177 for processing. If however, a required portion of data is missing from repository 155, GSS 159 of Fig. 7 may be invoked to retrieve the requested data. An error message may, in this case, be sent back to a user informing him of a requirement to navigate for a portion of required data. All of the data required to return a requested report is funneled into runtime engine 177. All of the appropriate calculations are performed and the resulting data illustrated herein as raw data-results 177 is passed into GUI module 181.
  • GUI module 181 then prepares the result data for presentation to a user illustrated herein as an arrow labeled output.
  • a report may be very simple or quite complex, including text and graphical elements as well.
  • all of the process steps performed on included data may be broken down and reported to a user along with a final result.
  • Presentation options may include spreadsheets, graphs, text reports, pie charts, and so on.
  • DBRE 155 is a multi-functional module that may be broken down into cooperating sub-modules. However, this is not required to practice the present invention.
  • DBRE 155 may interface directly with GSS 159 (Fig. 7) instead of being enhanced for gathering from aggregated data.
  • GSS 159 would first check repository 157 before determining if navigation is required.
  • navigation may be required by default to insure that all data in aggregation is current. There are many possibilities.
  • Fig. 9 is a process flow diagram illustrating logical user and system steps from initialization to completion of a meta-summarized report according to an embodiment of the present invention.
  • a user initiates a meta-summary report request from such as PC 163 of Fig. 7 using a browser/portal interface.
  • a request might be to sum all of my interest earnings from all of my interest bearing accounts over a 1-year period and return a monthly average. In a preferred embodiment such a request may be made in a "natural language" understood by the portal software.
  • control logic registers and confirms feasibility of the original request. This step includes parsing the request, confirming a presentation option, confirming presentation delivery parameters (software, hardware, medium) and so on.
  • a data gatherer accesses the database, such as in repository 157 (Fig. 7) for required data.
  • a gatherer termed a bot by the inventor, may be part of DBRE 155 as illustrated in Fig. 8, or part of GSS 159 of Fig. 7.
  • the required data is extracted from the database (DB) in step 191.
  • the extracted data is processed according to tools that accomplish the user's request, which is a solution- orientated result. Text records of processing may also be forwarded to a user if requested. In this way a user might review several steps taken to arrive at a solution- oriented result.
  • the raw result data is prepared according to user-requested presentation options in such as GUI module 181 of Fig. 8.
  • a presentation option may consist of simple text results appearing on a user's portal home page.
  • a separate WEB page may be constructed that displays varied versions of the same result such as a time chart, a text paragraph explaining the chart, and a table reflecting result values.
  • a meta-summary dealing with an averaged interest rate, as described in an example above, may be presented in a variety of ways. For example, each account and individual result may be listed, followed by a summed result over a particular time span, followed by an average figure over a smaller increment of time. There are no limits to presentation possibilities as long as the appropriate software containers are supported at both ends of the interaction.
  • step 197 the prepared GUI data is sent to a requesting user such as one operating PC 163 of Fig. 7 over an Internet connection such as connection 161. It should be noted here again that many devices are capable of effecting an interface with DBRE 155 of Fig. 8 and receiving result data. The success of configuring varied devices to the system will depend on provided network and data interfaces. If in step 189 it is determined that there is not enough data or the right kind of data already in aggregation to complete a request, then the request is passed over to a GSS, such as GSS 159 of Fig.7 in step 199. In one embodiment gathering is the sole responsibility of GSS 159 as has already been described.
  • step 201 site logic templates are obtained from such as a KW operating a PC such as PC 167 of Fig. 7. If the navigation templates required are the same as templates that have been previously used, then such templates may be obtained from a connected data store.
  • a GSS such as GSS 159 of Fig. 8 navigates to and extracts data from required WEB sites in order to complete the aggregated data store on behalf of the requesting user.
  • the data is passed into aggregation in a database assigned for the pu ⁇ ose in such as repository 157. After all of the required data has been aggregated in step 205, steps 191 through 197 are repeated.
  • Fig. 10 is a representative view of an actual screen shot 207of a meta- summarized report 209 on display in a user's browser interface according to an embodiment of the present invention.
  • a user interfaces with such as a portal server by utilizing a common browser interface, many brands of which are known in the art and readily available.
  • a MicrosoftTM browser application known as the Internet ExplorerTM (IE) is used.
  • IE Internet ExplorerTM
  • Summary report 209 consists of individual bank, investment and account listings complete with the names of the institutions. Summaries of the individually reported information for both bank accounts and stock accounts are found beneath each group listing.
  • Report 209 is a rather simplified example of many graphical possibilities and presentation methods.
  • a meta-summarized report may contain virtually any type of presentation mediums. Some examples include, but the invention is not limited to limited to, Gant charts, time graphs, pie charts, flow charts, text summaries, and so on.
  • a summarized report may contain interactive options for looking at the same data in different ways, or even calculating further results from the results presented. A user has many options when accomplishing interface with the system of the present invention through a fully functional browser application installed on a powerful PC.
  • Interface through other devices such as personal digital assistant's, cellular telephones, and the like will obviously limit presentation options, however, the use of such devices for interface is possible and may, in some situations, be preferred. Such situations may be business meetings, interviews, and other situations wherein a user may need to access some summary data, but does not have access to his personal computer station. Moreover, such data may be previously ordered and sent to a place other than at his or her personal computer. With appropriate interface to telephony networks, such information may, if directed by a user, be faxed to a meeting place, e-mailed to an associate's e-mail address, and so on. There are many diverse applications, many of which have already been stated.
  • a means for gathering data from multiple user sites and using the data to provide an intelligent recommendation to a user regarding an impending user activity. Such a means is described in enabling detail below.
  • Fig. 11 is an overview of a personalized recommendation system according to an embodiment of the present invention.
  • a recommendation system is provided and adapted to provide advice concerning user- initiated purchases and other online activities.
  • Such a recommendation system is integrated with architecture and software environments that have been described with reference to co-related patent applications described in the cross-reference to related documents section. Therefore, several components described herein will be analogous to previously described components although they may be given new element numbers.
  • a wide-area network (WAN) 211 which in this case is the well-known Internet, is connected to a portal station 213 preferably by way of a continuous Internet connection path 231.
  • Connection parth 231 is adapted to enable automated data gathering on behalf of users by system components as will be described further below.
  • Connection path 231 is connected to an Internet backbone 215, which represents all of the lines and interconnections making up the global Internet 211.
  • Shown connected to backbone 215 are file servers 217, 219, and 221.
  • Servers 217-221 represent WEB services that are subscribed to by a user practicing the present invention. Such services may represent travel services, banking services, shopping services, and the like.
  • Internet 211 may be another type of WAN such as a co ⁇ orate or a private WAN without departing from the spirit and scope of the present invention.
  • the inventor chooses to illustrate Internet 211 herein solely because of the wide public- access availability afforded.
  • Internet-portal station 213 comprises all of the equipment and components to enable WEB-based data gathering and summary return as discussed in co-related patent applications listed above.
  • station 213 may be implemented at an ISP location, as a standalone center, or distributed in Internet 211.
  • station 213 can be assumed to be a stand-alone center hosted by a company providing various WEB-gathering services.
  • a portal interface 223 is provided within portal station 213 and adapted as an interface to users subscribing to the service of the present invention.
  • Interface 223 is, in a preferred embodiment, a file server adapted as a portal and task interface for user's doing business online with their registered sites.
  • a mass-storage data repository 227 is provided within portal station 213 and stores data about users subscribing to the service and data comprising aggregated information obtained from user- frequented WEB services represented by servers 217-211, which are accessible through Internet 211.
  • Repository 227 may be an online or off-line facility of any form capable of storing the required data and providing interface through appropriate database software for the pu ⁇ ose of accessing and manipulating such data according to ente ⁇ rise rules.
  • user profile information including a list of registered WEB-services is provided and stored in repository 227 as described with reference to application S/N 09/208,740 entitled "Method and Apparatus for Providing and Maintaining a User-Interactive Portal System Accessible via Internet or other Switched-Packet-Network".
  • data collected from user services is aggregated on behalf of users and stored on a user-directed basis. Such data is obtained from various WEB sites subscribed to by such users.
  • An exemplary user illustrated herein as a PC icon labeled with element number 233, establishes connection with portal interface 223 over an Internet access path 239.
  • Access path 239 may be a normal telephone line such as with a modem/dial-up connection. In other embodiments, ISDN lines, cable/modem connections, or wireless connections may be used.
  • User 233 uses his browser interface to interact with the portal system supported by portal station 213.
  • portal interface 223 has an Internet connection path 226 adapted for direct and automated browsing through interface 223 by proxy (system components).
  • GSS 229 is a system of software components adapted to navigate to user- frequented sites by way of system architecture and obtain data from various WEB sites for aggregation in repository 227 associated with individual users, and eventual presentation to requesting users.
  • GSS 229 is analogous to GSS 159 of Fig. 7 and includes such as automated browser controls and software agents, termed bots by the inventors, that are capable of parsing and obtaining data from WEB-sites among other functions.
  • a knowledge worker (KW) illustrated herein as a PC icon labeled with element number 235 is provided for the pu ⁇ ose of supplying site-logic templates to GSS 229 for navigation pu ⁇ oses.
  • KW 235 is connected to GSS 229 by a data link 237, which may be a LAN or WAN connection.
  • Site-logic templates that may be re- used are stored in such as repository 227 along with user profile data and aggregated data.
  • a user wishes to make a decision regarding an impending activity, which he or she will execute regarding one of WEB-servers 217-221.
  • Such an activity may be,for example, to purchase an airline ticket, in which case servers 217-221 might represent separate travel services through which such tickets may be purchased, including sites specific to major airlines.
  • servers 217-221 would represent separate WEB services through which user 233 has obtained and maintains an active credit account.
  • a first method is through a query initiated by a user, such as user 233, through his or her browser interface.
  • a second method involves automatic system monitoring of a user's activity and automatically initiating a recommendation based on detection of a user's activity.
  • Web servers 217 and 219 may be credit-card- account servers and server 221 may be an online shopping service. If user 233, while browsing shopping pages held in server 221 clicks on an item for immediate purchase with a credit card, then a decision must be made by user 233 concerning which of two cards (servers 217 and 219) to use for the purchase at server 221.
  • engine 225 monitors the online activity of user 233 is so that interface 223 is aware of the impending purchase. It will be apparent that this function may be provided by software executing anywhere on portal station 213. The system thus recognizes when a user has activated a buy link on any WEB page he is currently browsing. Therefore, when a user activates such a purchase link, interface 223 automatically initiates a recommendation process, which in this case, will be what card to use for payment.
  • interface 223 immediately contacts repository 227 (illustrated by a bracketed double-arrow connection) to see if the service that the user is buying from requires a credit card. If so, then interface 233 looks for registered credit- account services through which user 233 has one or more cards. If there are more than one, such as is the case herein with services 217 and 219, then interface 233 activates recommendation engine 225 (illustrated by a straight double-arrow connection).
  • a system notification may be sent to user 233 in the form of an audible alert or screen pop asking him or her to pause momentarily while a recommendation is prepared. There may also be a choice presented to user 233 of whether or not to continue with a recommendation.
  • recommendation engine 225 may simply pull the required data from repository 227 (illustrated by straight double arrow connection) and compile a recommendation report without activating GSS 229.
  • Required information may include interest rate, account balance, accumulated bonus points for repeated card use, and any other company policy information that may be connected to enhancing user convenience through use of a card.
  • engine 225 activates GSS 229 (illustrated by a bracketed double-arrow connection) with a command-order to navigate and update data.
  • GSS 229 illustrated by a bracketed double-arrow connection
  • a specific data request is supplied to GSS 229 and becomes part of the site-logic template used to navigate to servers 217 and/or 219.
  • Such templates may already exist due to repeated recommendations and navigation to sites.
  • KW 235 may (if required) provide a new template inco ⁇ orating the information supplied by engine 225. In most cases the process can be completely automated.
  • GSS 229 navigates to site 217 and/or site 219 on behalf of user
  • GSS 229 aggregates the data into repository 227 (illustrated by a straight single-arrow connection) and passes same data to recommendation engine 225 for comparison.
  • Recommendation engine 225 has all of the required tools needed for data processing and comparison as well as tools for preparing a recommendation report for a user such as user 233.
  • Engine 225 passes a complete recommendation to interface 223, which forwards the report to user 233 over connection line 239.
  • Such a report may be a text report, an audible report, a graphical report, or a combination thereof.
  • Such a report may appear in a current browser window displaying the target WEB page, or in a side bar area.
  • Recommendations made by engine 225 may be of many sorts and based on diverse criteria. If a user is purchasing an item on-line, the system may recommend a credit card based on such criteria as existing balance, interest rate, perks such as frequent-flyer miles, and the like. If the user is buying an airline ticket, the system may recommend an airline based on known user preference for avoiding certain stopover points and the like. There are many, many possibilities.
  • the first method introduced above is accomplished through user query. In this case, assume a user such as user 233 has intentions of purchasing such as an airline ticket for a pre- scheduled business appointment. However the user does not wish to browse his registered travel services represented in this case by servers 217-221 looking for a deal.
  • a query interface may be personalized to a user and include entry fields for a user to check or click.
  • Such fields may include such as airline tickets, destination, desired time of departure, desired time of arrival, and so on.
  • There may be an additional entry field for listing specific registered services (two or more) or include all services.
  • interface 223 checks repository 227 for listed services as described previously.
  • Recommendation engine 225 is then activated and checks repository 227 for sufficient updated data. If there is enough data to complete an intelligent recommendation, then recommendation engine 225 processes and passes the information to interface 223, which forwards the report to user 233 without requiring navigation.
  • services such as travel agencies and the like update information almost continually. Therefore, it is likely that navigation would be preferred in many cases.
  • recommendation engine 225 activates GSS 229 with an order to navigate to sites 217, 219, and 221, which represent travel services frequented by user 233.
  • GSS 229 navigates by way of connection path 231 to sites 217, 219, and 221, obtains specified data according to site logic and user directive.
  • GSS 229 passes obtained data to recommendation engine 225 for processing and aggregates the same into repository 227.
  • Engine 225 generates a report based on obtained data and submits the report to interface 223.
  • Interface 223 makes the report accessible to user 233 over connection 239.
  • Such a report may appear on a user's portal home page, or be sent in the form of e-mail or any other supported media and form. In this case, the report would include identification and URL of the service that is best able to serve, the prices and parameters for the available tickets, any reasoning why the selected service is a preferable choice, and so on.
  • recommendations may be ordered in a piggyback fashion. For example, consider the case of a user such as user 233 submitting a query to obtain a recommendation as to which service he should use. By default, the system may present a second recommendation concerning which credit card should be used to pay for the ticket offered by the recommended travel service.
  • the two described methods may be combined such that some recommendations are always performed by default through monitoring and some may be ordered by query.
  • a user such as user 233 may configure the service to allow a query method to obtain a recommendation such as which service would be more beneficial for purchasing an item.
  • a second default recommendation advises the user how to pay for the purchase.
  • Recommendation engine 225 obtains it's knowledge by system programming such as with the use of a knowledge base.
  • a point system may be used to equate certain parameters. For example, interest rates particular to credit cards, may be equated to points-for-comparison. Other constant factors may be likewise equated.
  • Variable factors Facts that may change frequently
  • the card with the lowest balance may earn one point whereas the one with the lowest interest rate may earn 1.5 points and so on.
  • user's that have special deals or programs associated with thresholds of purchase activity for certain credit cards, bonus programs associated with specific shopping sites or the like may program such personalized information into repository 227 so that the information may be considered and inco ⁇ orated by recommendation engine 225.
  • recommendation engine 225 may be personalized to one user and updated periodically so that the user's current non-standard data is always considered. In this case, a separate knowledge base resource might be provided to each subscribing user. It will be apparent to one with skill in the art that the method and apparatus of the present invention may be accomplished through user query, by default or a combination thereof. Much of the scope of this specification and those listed in the cross-reference section lends to personalization of services in order to provide enhanced user satisfaction.
  • Fig. 12 is a block diagram illustrating components of purchase recommendation engine 225 according to one embodiment of the present invention.
  • Recommendation engine 225 comprises three functional software layers. These are an Interface layer 241, a data processing layer 243 and a report generation layer 245.
  • Engine 225 executes on a machine having a suitable processor for computing and processing data. Such a machine may be a same machine supporting portal interface 223 of Fig. 11, or a separate processor-based machine dedicated to processing recommendation data for clients.
  • recommendation engine 225 is personalized to each individual as much as possible through programming. That is to say that each individual has his or her own database wherein personal, profiling, and aggregated WEB data is held.
  • Interface layer 241 has a portal interface module 247 providing input/output (I/O) communication capability with portal interface 223 of Fig. 11.
  • Engine 225 may be activated through I/O interface 247 and returns completed recommendation data through I/O interface 247.
  • a GSS interface module 249 is provided and adapted to enable I/O data communication capability with GSS 229 of Fig. 11. Module 249 functions in the event that navigation is required to return sufficient data for recommendation processing.
  • a personalization agent module 252 is provided and adapted to issue commands through GSS interface 249 for dispatching of gathering agents or "bots", to navigate on behalf of a client. In one embodiment, personalization agent 252 is part of GSS 229 of Fig. 12.
  • An advantage of integrating personalization module 252 into recommendation engine 225 is that module 252 contains logic and built-in intelligence required to personalize bots (gatherers) to perform according to personalized client rules.
  • a database interface module 251 is provided and adapted to enable I/O communication capability with repository 227 of Fig.11 using appropriate database software.
  • engine 225 may request access to personal information stored on behalf of any client and receive requested data through the same interface.
  • a default initialization module 253 is provided and adapted to enable automatic initialization of engine 225 based on monitored WEB activity on behalf of any subscribing client.
  • module 253 is an input mechanism that accepts the required data for initializing a recommendation return process. Notification to module 253 resulting from WEB activity activates engine 225 and provides all the required data to initialize an automatic recommendation sequence on behalf of the monitored user.
  • Interface layer 241 accomplishes all of the interface capability of engine 225 to the rest of the system components as described above.
  • Administrative programming of various modules comprising engine 225 may be accomplished through portal interface module 247.
  • a separate programming interface module (not shown) may be provided for administrators or knowledge workers to access and program various modules contained in engine 225.
  • Data processing layer 243 comprises all of the required modules to enable successful processing of input and acquired data for a recommendation sequence.
  • a programmable rules library (database) 255 is provided and adapted to contain ente ⁇ rise rules related to general processing parameters. Such rules may also contain special personalized rules that may apply to certain clients.
  • An example of a general rule would be "always initiate secondary recommendations when possible". Such a rule applies to a situation wherein a purchase recommendation is followed by an automatic "method of payment" recommendation or the like.
  • An example of a personalized rule may be an added recommendation routine for client X wherein an automatic "bid ceiling" is recommended every time client X is bidding on an item in an auction based on an average going price for similar items client X has purchased at other auctions.
  • a programmable knowledge base 257 is provided and adapted to hold system knowledge related to what types of general recommendations are possible using engine 225. For example, if recommendation possibilities include intelligent purchasing of airline tickets, car rentals, books, movies, software, computers, stocks, and the like, then related constants and equaters would be included in knowledge base 247. In a query-based method described in Fig. 11, such options may appear along with the query such that a user may check which options he wishes to perform.
  • a runtime engine 259 is provided and adapted to equate acquired and input data with constant data in knowledge base 257 according to rules listed in library 255.
  • knowledge base 257 may be personalized for each client such that a particular knowledge base is specific to only one individual. In this way, special recommendation routines may be processed for a particular client that otherwise are not common routines.
  • a raw data store 261 is provided and adapted to temporarily store all processed data generic to a completed recommendation routine.
  • Data store 261 uses system memory or cache wherein "chunks" of raw data are tagged to requesting clients.
  • a client chunk of data may consist of one or more separate recommendation routines. However, in a preferred embodiment, by the time a second recommendation is completed on behalf of a single user, the first chunk representing the initial recommendation has already been delivered to the client and has been purged from data store 261.
  • a personal programming module 263 is provided and adapted to allow personalization of rules library 255 and knowledge base 257 on behalf of a client.
  • personal programming module 263 is activated whenever recommendation engine 225 is invoked on behalf of a client.
  • personalized data in the form of added rules and knowledge base data is stored in such as repository 227 of Fig. 11 and applied to (otherwise generic) rules library 255 and knowledge base 257.
  • a multitaskable generic recommendation engine may be used in the above-described case.
  • agent 263 is invoked periodically to apply personal rules and parameters to both library 255 and knowledge base 257 wherein such rules remain applied on behalf of a requesting user.
  • a personal recommendation engine is created and stored for each subscriber and may only be used by it's owner. There are many possibilities.
  • Generation layer 245 handles converting raw result data into a presentable format and specific media on behalf of a user.
  • a data writer 265 is provided and adapted to convert or rewrite raw data results, which in some cases may not be human-readable, into legible information according to a user or system-specified format.
  • a media library 267 is provided and adapted to contain various media options for presenting data. One option may be E-mail. Another option may be an ICQTM message. Still another form may be an MPEG or .WAV message. A typical option would be to return data as hypertext markup language (HTML) to a user's active WEB browser for text display.
  • HTML hypertext markup language
  • An applications module 269 is provided and adapted to insert data into desktop applications used by a client such as a word document, a draw document, a spreadsheet, or the like.
  • a client such as a word document, a draw document, a spreadsheet, or the like.
  • a user/client may receive system reports in desired formats and through desired vehicles. For example, a series of recommendations may be ordered for a planned vacation trip wherein specific parameters such as vacancy pricing, car rental, restaurants and the like are targets of recommendations.
  • Such businesses must have an online WEB page (URL) registered in a user's profile in order to be considered.
  • URL online WEB page
  • a user may program automatic recommendations to execute when he or she begins a session that is planned for a later date. For example, a user may plan to participate at a scheduled online auction or fashion show wherein hot buttons are provided for entering a bid or purchasing an item.
  • engine 225 operates by default and provides recommendations related to the activity. For example, if a user enters a bid for an auction item, a recommendation as to whether he should continue to bid higher or stop bidding may be received based on an average going price of that or a similar item through another site or sites.
  • a recommendation associated with a purchase-now button may provide competitive pricing information from other sites, quality comparison information and a recommendation to purchase or not.
  • a recommendation engine such as engine 225 may be a self-contained module with appropriate interface capability (as shown here), or a plurality of distributed components without departing from the spirit and scope of the present invention.
  • layer 241 and 243 may be part of one implementation running on a single processor whereas layer 245 (report generation) may execute at a machine supporting portal interface 223 of Fig. 11.
  • Runtime engine 225 is enhanced, in this embodiment, with common object modeling (COM) functionality.
  • COM object modeling
  • FIG. 13 is a process flow diagram illustrating an exemplary purchase recommendation process according to an embodiment of the present invention.
  • a client or user invokes a recommendation query process from his or her WEB browser while online with the portal service. Such a query is designed to inform other system components of the parameters required to provide an intelligent recommendation based on a user's planned activity.
  • a client or user selects from presented options, which reflect different types of recommendation possibilities. It is assumed for this example that a client or user has had target URLs summarized by the service such that if a client selects "intelligent airline ticket purchasing" his or her profile information will include at least two URLs of travel sites from which he or she purchases tickets.
  • profile information is extracted from a user's data profile at step 274. Such information would include a list of URLs related to the request, any special rules a user has programmed into his or her profile, and other data as may be required.
  • a recommendation engine is activated in step 275. In this case, a user has not navigated to any WEB site in order to make a purchase. He or she has used the query method in order to get a recommendation before personal navigation.
  • a means such as a hyperlink may be provided with recommendation data to enable a user to make the recommended purchase without navigating to the recommended WEB- service site.
  • a user may by-pass the query process described in steps 271, 273 and 274. That is, he may navigate through portal interface 233 (Fig. 11) to one of his or her summarized WEB services and initiate a purchase process by activating a hot button (purchase now link) contained in one of the visited WEB pages in step 272.
  • a recommendation engine such as engine 225 of Fig. 12 is automatically activated by virtue of a monitoring process at step 275.
  • a monitoring process may be activated either from a user's WEB browser, or from portal interface 233 as previously described.
  • Such a monitoring process recognizes a user's mouse click on a purchase link and inco ⁇ orates URL, item identification, pricing, and any other information associated with the activated hot button.
  • Click monitoring technology is known in the art and practiced with such as download-assist programs designed to speed up or aid a user in completing a download.
  • the software is adapted to recognize a download now link.
  • the plug-in would be written to recognize a purchase link.
  • step 275 represents recommendation engine activation in both of the circumstances described above. Step 275 is illustrated as such for convenience in drawing only.
  • recommendation engine 225 checks a database holding aggregated data such as in repository 227 of Fig. 11.
  • Engine 225 looks for data that matches or is related to query and profile information in the case of a query method.
  • engine 225 looks for data including URLs that relate to information (data) about the URL and hot-button parameters describing the purchase item and price (if included).
  • recommendation engine 225 decides if navigation will be required based in part on data found in aggregation, nature of recommendation, user directive, and other possible factors. If navigation is not required, then data is acquired from such as repository 227 to complete an intelligent recommendation process in step 285.
  • the data is processed as described in Fig. 12 regarding processing layer 243 and associated modules. During this process, user specified rules that have been pre-programmed may apply. If no such rules have been added then ente ⁇ rise rules and limitations apply.
  • raw result data is used to generate an intelligent recommendation report according to user-selected platform, media and delivery method (application) as described in Fig. 12 regarding report generation layer 245 and associated modules. A completed report is returned to interface 233 where it may be accessed by a requesting user or delivered to a requesting user in step 291.
  • data in aggregation will be sufficiently current for producing an intelligent recommendation.
  • navigation may be required in many cases.
  • agents bots
  • agents are dispatched over the Internet to each required site to obtain data needed to complete an intelligent recommendation.
  • such data is returned to recommendation engine 225 for processing by such as layer 243 (Fig. 12) and associated modules.
  • collected data is processed for raw results as described above.
  • Steps 289 and steps 291 cover report generation and delivery to an interface such as interface 233 (Fig. 11) as described above. It will be apparent to one with skill in the art that the process steps described above may be altered somewhat in order and number without departing from the spirit and scope of the present invention.
  • step 273 may resolve to step 275 bypassing step 274.
  • Step 274 may be integrated with step 277.
  • the inventor intends that the process flow diagram of Fig. 13 is only exemplary of two such possible process flows that explain the query method of obtaining a recommendation, and the automatic method of obtaining a recommendation.
  • both methods described in the flow diagram presented herein may be programmed to execute in combination if so directed by a user.
  • a query method may be preferred for an initial recommendation about where to purchase an item.
  • An automatic recommendation about the best way to pay for the item may be generated when a user activates a hot button to purchase the item.
  • statistical profiles reflecting a user's recommendation history are kept by the recommendation service of the present invention. Such profiles may be used to generate still further recommendations to users. Such system-generated recommendations may advise a user to drop a particular WEB service based on prolonged inactivity and may even suggest a more competitive service to replace it with.
  • new WEB services may be introduced to a user who demonstrates a recommendation history that logically supports their introduction. For example, if a user exhibits a recommendation history of repeated stock purchasing through several separate brokerages, then a new brokerage may be introduced that culminates the user's stock choices offered by two or more of the original brokerages. In this way, a user may streamline services and possibly save money in commissions.

Abstract

An Internet portal system for providing recommendations to subscribers of the portal has a data gathering system operating on the portal system, gathering data from multiple Internet sites (23, 25, 27) associated with the subscriber (17), a tracking system (35) monitoring the subscriber's on-line activity; and a recommendation engine for transmitting recommendations to the subscriber. The system is characterized in that the portal system monitors the subscriber's on-line activity, and transmits recommendations to the subscriber based on the subscriber's on-line activity and on subscriber information stored in the data repository. The system can make recommendations in a variety of situations, such as when a subscriber is shopping on-line, making investment decisions, or making banking decisions, for example.

Description

Method and Apparatus for Providing Intelligent Recommendations to Users Regarding Online Activities Based on Knowledge of Data from a User's Multiple
Web-services
Field of the Invention
The present invention is in the field of Internet navigation including various communication means and connection technologies. The present invention pertains more particularly to methods and apparatus, including software, for gathering summary information for users from user-subscribed WEB services, and aggregating the collected data such that a user, through a single interface, may receive intelligent recommendations regarding user-planned online purchases or other activities.
Background of the Invention
The information network known as the World Wide Web (WWW), which is a subset of the well-known Internet, is arguably the most complete source of publicly accessible information available. Anyone with a suitable Internet appliance such as a personal computer with a standard Internet connection may access (go online) and navigate to information pages (termed web pages) stored on Internet-connected servers for the purpose of garnering information and initiating transactions with hosts of such servers and pages.
Many companies offer various subscription services accessible via the Internet. For example, many people now do their banking, stock trading, shopping, and so forth from the comfort of their own homes via Internet access. Typically, a user, through subscription, has access to personalized and secure WEB pages for such functions. By typing in a user name and a password or other personal identification code, a user may obtain information, initiate transactions, buy stock, and accomplish a myriad of other tasks.
One problem that is encountered by an individual who has several or many such subscriptions to Internet-brokered services is that there are invariably many passwords and/or log-in codes to be used. Often a same password or code cannot be used for every service, as the password or code may already be taken by another user. A user may not wish to supply a code unique to the user such as perhaps a social security number because of security issues, including quality of security, that may vary from service to service. Additionally, many users at their own volition may choose different passwords for different sites so as to have increased security, which in fact also increases the number of passwords a user may have.
Another issue that can plague a user who has many passworded subscriptions is the fact that they must bookmark many WEB pages in a computer cache so that they may quickly find and access the various services. For example, in order to reserve and pay for airline travel, a user must connect to the Internet, go to his/her book-marks file and select an airline page. The user then has to enter a user name and password, and follow on-screen instructions once the page is delivered. If the user wishes to purchase tickets from the WEB site, and wishes to transfer funds from an online banking service, the user must also look for and select the personal bank or account page to initiate a funds transfer for the tickets. Different user names and passwords may be required to access these other pages, and things get quite complicated.
Although this preceding example is merely exemplary, it is generally known that much work related to finding WEB pages, logging in with passwords, and the like is required to successfully do business on the WEB.
A service known to the inventor and described in patent application S/N 09/208,740 entitled "Method and Apparatus for Providing and Maintaining a User- Interactive Portal System Accessible via Internet or other Switched-Packet- Network", provides a WEB service that allows a user to store all of his password protected pages in one location such that browsing and garnering information from them is much simplified. A feature of the above service allows a user to program certain tasks into the system such that requested tasks are executed by an agent (software) based on user instruction. The service stores user password and log-in information and uses the information to log-in to the user's sites, thus enabling the user to navigate without having to manually input log-in or password codes to gain access to the links.
The above-described service uses a server to present a user-personalized application that may be displayed as an interactive home page that contains all of his listed sites (hyperlinks) for easy navigation. The application lists the user's URL's in the form of hyperlinks such that a user may click on a hyperlink and navigate to the page wherein login, if required, is automatic, and transparent to the user.
The application described above also includes a software agent that may be programmed to perform scheduled tasks for the user including returning specific summaries and updates about user-account pages. A search function is provided and adapted to cooperate with the software agent to search user-entered URL's for specific content if such pages are cached somewhere in their presentable form such as at the portal server, or on the client's machine.
In addition to the features described above, patent application S/N 09/523,598 entitled "Method and Apparatus for Obtaining and Presenting WEB Summaries to Users" describes a software agent used in conjunction with a search function that is enabled to navigate to any URL or group of URL's, provided as input by a user or otherwise deemed appropriate by the service provider, for the purpose of providing summary information regarding updated content for each URL, which may be presented as an HTML information-page to the user.
Users who subscribe to many online services generally do all of their banking, investing, travel arranging, shopping, and so on while online with the Internet.
Having all of his or her services available at one portal provides a convenience to a user in not having to remember a plurality of passwords, or to be required to physically log-on to each site. Similarly, the ability to obtain summary data associated with selected sites through one interface allows a user to greatly speed any decision making process related to his or her online activity. However, summary information may not help a user with certain other concerns. For example, obtaining accurate financial information concerning his entire portfolio of banking and investments would require much user calculation depending on the exact nature of the result desired. Similarly compiling a trend that reflects a user's online activity at a plurality of shopping services may also be desired. A system known to the inventor and disclosed in the co-pending patent application entitled "Method and Apparatus for Providing Calculated and Solution- Oriented Personalized Summary-Reports to a User through a Single User- Interface" provides a service that processes aggregated data from multiple WEB-sites to return calculated solutions based on user query. Such solution-oriented processing is accomplished through a unique database-reporting engine (DBRE) that has the required data processing means. Such a service can return many different kinds of solution-orientated reports to users on a scheduled or on-demand basis.
It has occurred to the inventor that another often overlooked area of WEB - based services is online-purchase counseling, recommendation, or advice. Many WEB services practice recommendation techniques with customers who frequent their sites. However, existing recommendation engines produce results based only on information gained through the user's interaction on that particular service. As a result, recommendations may be inaccurate if data from other similar user-frequented services is not considered. For example, if a user is a frequent traveler and generally patronizes several separate travel companies when looking for airline tickets, such information as a user's total frequent flyer miles with any one airline would be fragmented. A recommendation engine associated with any one site might lack information about a user's usage patterns and personalized data available at other services. Prior art WEB services available through the Internet do not offer personalized purchasing recommendations based on a user's past activity as profiled across multiple user-frequented sites.
What is clearly needed is a method and apparatus that can return intelligent purchasing and other recommendations to users based on user query, in some cases automatically, using data obtained from multiple user-subscribed sites. Such a system would enhance user purchasing power and elevate economic standing by providing recommendations that tend to the user's advantage. Summary of the Invention
In a preferred embodiment of the present invention an Internet portal system for making intelligent recommendations to subscribers of the portal is provided, comprising a data gathering system operating on the portal, gathering data from multiple Internet sites associated with the subscriber; a tracking system monitoring the subscriber's on-line activity; and a recommendation engine for transmitting recommendations to the subscriber. The system is characterized in that the portal system monitors the subscriber's on-line activity, and transmits recommendations to the subscriber based on the subscriber's on-line activity and on subscriber information stored in the data repository.
In some cases recommendation engine prepares and transmits recommendations in both text and graphic formats. Also in some embodiments the data relied upon in preparing a recommendation is derived entirely from the data repository. In others at least a portion of the data relied upon in preparing a recommendation is retrieved at least in part from Internet sites associated with the subscriber. A recommendation destination may specified in a subscriber's profile stored in the data repository, recommendations may be made in a wide variety of situations, such as on one or more of banking, investment, travel, or on-line purchasing activities.
In another aspect of the invention a method of supporting a subscriber to a portal system during on-line activity is provided, comprising steps of (a) tracking the subscriber's on-line activity by the portal system; and (b) preparing and transmitting activity recommendations by a recommendation engine to the subscriber, based on the subscriber's on-line activity and upon subscriber information stored in a data repository associated with the portal system.
In some embodiments of the method disclosed and taught, in step (b), the recommendation engine prepares and transmits reports in both text and graphic formats. Data relied in preparing a recommendation may be derived entirely from the data repository, or may be retrieved at least in part from Internet sites associated with the subscriber. In some cases a recommendation destination is specified in a subscriber's profile stored in the data repository. Also recommendations may be made in a wide variety of situations, such as on one or more of banking, investment, travel, or on-line purchasing activities.
In preferred embodiments of the present invention taught in enabling detail below, for the first time, and Internet portal system is enabled to monitor subscriber's activities, and to make intelligent recommendations about that activity based on the real-time activity and on stored information about the subscriber's activities.
Brief Description of the Drawing Figures
Fig. 1 is an overview of an Internet portal system and network according to an embodiment of the present invention. Fig. 2 is an exemplary plan view of a personalized Portal home page application as it may be seen on a display monitor according to an embodiment of the present invention.
Fig. 3 is a flow diagram illustrating user interaction with the Internet portal of fig. 1. Fig. 4 is a block diagram illustrating a summarization software agent and capabilities thereof according to an embodiment of the present invention.
Fig. 5 is a logical flow chart illustrating an exemplary summarization process performed by the software agent of Fig. 4 operating in a user-defined mode.
Fig. 6 is a logical flow chart illustrating an exemplary summarization process performed by the software agent of Fig. 4 in a User-independent smart mode with minimum user input.
Fig. 7 is an overview of a meta-summarization process according to an embodiment of the present invention.
Fig. 8 is a block diagram illustrating components and functions of the database-reporting engine of Fig. 7 according to an embodiment of the present invention. Fig. 9 is a process flow diagram illustrating logical user and system steps for initialization to completion of a meta-summarized report according to an embodiment of the present invention.
Fig. 10 is a representative view actual screen shot of a meta-summarized report on display in a user's browser interface according to an embodiment of the present invention.
Fig. 11 is an overview of a personalized recommendation system according to an embodiment of the present invention.
Fig. 12 is a block diagram illustrating components of a purchase recommendation engine according to an embodiment of the present invention. Fig. 13 is a process flow diagram illustrating an exemplary purchase recommendation process according to an embodiment of the present invention.
Description of the Preferred Embodiments
According to a preferred embodiment of the present invention, a unique Internet portal is provided and adapted to provide unique services to users who have obtained access via an Internet or other network connection from an Internet-capable appliance. Such an interface provides users with a method for storing many personal WEB pages and further provides search function and certain task-performing functions. The methods and apparatus of the present invention are taught in enabling detail below. Fig. 1 is an overview of an Internet portal system 11 and Internet network 13 according to an embodiment of the present invention. Portal system 11 , in this embodiment, operates as an ISP in addition to a unique network portal, but may, in other embodiments be implemented as a stand-alone Internet server. In yet other embodiments the service and apparatus described herein may also be provided by such as a search and listing service (AltaVista™, Yahoo™) or by any other enterprise hosting a WEB-connected server. Internet 13 is representative of a preferred use of the present invention, but should not be considered limiting, as the invention could apply in other networks and combinations of networks.
ISP 15 in this embodiment comprises a server 31, a modem bank 33, represented here by a single modem, and a mass storage repository 29 for storing digital data. The modem bank is a convenience, as connection to the server could be by another type of network link. ISP 15, as is typical in the art, provides Internet access services for individual subscribers. In addition to well-known Internet access services, ISP 15 also provides a unique subscription service as an Internet portal for the purpose of storing many WEB pages or destinations along with any passwords and or personal codes associated with those pages, in a manner described in more detail below. This unique portal service is provided by execution of Portal Software 35, which is termed by the inventors the Password-All suite. The software of the invention is referred to herein both as the Portal Software, and as the Password-all software suite. Also, in much of the description below, the apparatus of the invention is referred to by the Password-All terminology, such as the Password-All Server or Password-All Portal.
ISP 15 is connected to Internet 13 as shown. Other equipment known in the art to be present and connected to a network such as Internet 13, for example, IP data routers, data switches, gateway routers, and the like, are not illustrated here but may be assumed to be present. Access to ISP 15 is through a connection-oriented telephone system as is known in the art, or through any other Internet/WEB access connection, such as through a cable modem, special network connection (e.g. Tl), ISDN, and so forth. Such connection is illustrated via access line 19 from Internet appliance 17 through modem bank 33.
In a preferred embodiment a user has access to Internet Password-All Portal services by a user name and password as is well known in the art, which provides an individualized WEB page to the subscriber. In another embodiment wherein a user has other individuals that use his or her Internet account, then an additional password or code unique to the user may be required before access to portal 31 is granted. Such personalized Portal WEB pages may be stored in repository 29, which may be any convenient form of mass storage.
Three Internet servers 23, 25, and 27, are shown in Internet 13, and represent Internet servers hosted by various enterprises and subscribed to by a user operating appliance 17. For example, server 23 may be a bank server wherein interactive online banking and account managing may be performed. Server 25 may be an investment server wherein investment accounts may be created and managed. Server 27 may be an airline or travel server wherein flights may be booked, tickets may be purchased, and so on. In this example, all three servers are secure servers requiring user ID and password for access, but the invention is not necessarily limited to just secure services.
In a preferred embodiment of the present invention, a subscribing user operating an Internet-capable appliance, such as appliance 17, connects to Password- All Portal system 11 hosted by ISP 15, and thereby gains access to a personalized, interactive WEB page, which in turn provides access to any one of a number of servers on Internet 13 such as servers 23, 25, and 27, without being required to enter additional passwords or codes. In a preferred embodiment the software that enables this service is termed Password-All by the inventors. Password-All may be considered to be a software suite executing on the unique server, and in some instances also on the user's station (client). Additional interactivity provided by portal software 35 allows a connected user to search his listed pages for information associated with keywords, text strings, or the like, and allows a user to program user- defined tasks involving access and interaction with one or more Internet-connected servers such as servers 23, 25, and 27 according to a pre-defined time schedule. These functions are taught in enabling detail below.
Fig. 2 is an illustration of a personalized portal page as may be seen on a display monitor according to an embodiment of the present invention, provided by Password- All Portal software 35 executing on server 31, in response to secure access by a subscriber. Page 32 presents an interactive listing 34 of user-subscribed or member WEB pages, identified in this example by URL, but which may also be identified by any convenient pseudonym, preferably descriptive, along with user name and typically encrypted password information for each page. Listed in a first column under destination, are exemplary destinations LBC.com, My Bank.com, My Stocks.com, My shopping.com, Mortgage.com, and Airline.com. These are but a few of many exemplary destinations that may be present and listed as such on page 33. In order to view additional listings listed but not immediately viewable from within application 33, a scroll bar 35 is provided and adapted to allow a user to scroll up or down the list to enable viewing as is known in the art.
Items listed in list 34 in this example may be considered destinations on such as servers 23, 25, and 27 of Fig. 1. Typically the URL associated with an item on this list will not take a user to a server, per se, but to a page stored on a server. User names and password data associated with each item in list 34 are illustrated in respective columns labeled user name, and password, to the right of the column labeled destination. Each listing, or at least a portion of each listing, is a hyperlink invoking, when selected, the URL to that destination. In some instances a particular service may have more than one associated URL. For example, My Bank.com may have more than one URL associated for such as different accounts or businesses associated also with a single subscriber. In this case there may be a sub-listing for different destinations associated with a single higher-level listing. This expedient is not shown, but given this teaching the mechanism will be apparent to those with skill in the art.
In some embodiments one page 33 may be shared by more than one user, such as a husband and wife sharing a common account and subscription. An instance of this is illustrated herein with respect to the server labeled Mortgage.com wherein both a John and a Jane Doe are listed together under the column labeled user name. In another embodiment, a network of individuals, perhaps business owners, authorized co-workers, investment parties, or the like may share one application. In this way, system 11 may be adapted for private individuals as well as business uses.
After gaining access to application 33 which is served via Internet portal server 31 of Fig. 1 , a user may scroll, highlight, and select any URL in his or her list 34 for the purpose of navigation to that particular destination for further interaction. Application 33 already has each password and user name listed for each URL. It is not necessary, however, that the password and user name be displayed for a user or users. These may well be stored transparently in a user's profile, and invoked as needed as a user makes selections. Therefore, a user is spared the need of entering passwords and user names for any destinations enabled by list 34. Of course, each list 34 is built, configured and maintained by a subscribing user or users, and an editing facility is also provided wherein a user may edit and update listings, including changing URL's adding and deleting listings, and the like.
In another aspect of the invention new listings for a user's profile, such as a new passthrough to a bank or other enterprise page, may be added semi-automatically as follows: Typically, when a user opens a new account with an enterprise through interaction with a WEB page hosted by the enterprise, the user is required to provide certain information, which will typically include such as the user's ID, address, e-mail account, and so forth, and typically a new user name and password to access the account. In this process the user will be interacting with the enterprise's page from his/her browser. A Password- All plug-in is provided wherein, after entering the required information for the new enterprise, the user may activate a pre-determined signal (right click, key stroke, etc.), and the Password-All suite will then enter a new passthrough in the user's Password. All profile at the Password-All Portal server.
In a related method for new entries, the enterprise hosting the Password-All Portal may, by agreement with other enterprises, provide log-in and sign-up services at the Password-All Portal, with most action transparent to the user. For example, there may be, at the Password-All Portal, a selectable browser list of cooperating enteφrises, such as banks, security services, and the like, and a user having a Password-All Portal subscription and profile may select among such cooperating enteφrises and open new accounts, which will simultaneously and automatically be added to the Password-All Portal page for the user and to the server hosted by the cooperating enteφrise. There may be some interactivity required for different accounts, but in the main, much information from the user's profile may be used directly without being re-entered. The inventors have anticipated that many potential users may well be suspicious of providing passwords and user names to an enteφrise hosting a Password-All Portal Server executing a service like Password-All according to embodiments of the present invention. To accommodate this problem, in preferred embodiments, it is not necessary that the user provide the cleartext password to Password. All. Instead, an encrypted version of each password is provided. When a user links to his passthrough page in Password-All at the Password-All Portal server, when he/she invokes a hyperlink, the encrypted password is returned to the user's system, which then, by virtue of the kept encryption key or master password, invokes the true and necessary password for connection to the selected destination. It is thus not necessary that cleartext passwords be stored at the Password-All Portal server, where they may be vulnerable to attack from outside sources, or to perceived misuse in other ways as well.
In a related safety measure, in a preferred embodiment of the invention, a user's complete profile is never stored on a single server, but is distributed over two or more, preferably more, servers, so any problem with any one server will minimize the overall effect for any particular user.
Password-All, as described above, allows a user to access a complete list of the user's usual cyberspace destinations, complete with necessary log-on data, stored in an encrypted fashion, so a user may simply select a destination (a hyperlink) in the Password-All list, and the user's browser then invokes the URL for the selected destination. In an added feature, Password-All may display banner ads and other types of advertisement during the navigation time between a hyperlink being invoked and the time the destination WEB page is displayed.
In yet another embodiment of the invention, a user/subscriber need not access the Password-All page to enjoy the advantages of the unique features provided. In this variation, a Plug-In is provided for the subscriber's WEB browser. If the subscriber navigates by use of the local browser to a WEB page requiring a secure log-in, such as his/her on-line banking destination, when the subscriber is presented with an input window for ID and Password, the plug in may be activated by a predetermined user input, such as a hot key or right click of the mouse device. The plug-in then accesses, transparently, the Password-All page (which may be cached at the client), and automatically accesses and provides the needed data for log-on. In yet another aspect of the invention a search option 37 allows a user to search list 34 for specific URL's based on typed input such as keywords or the like. In some cases, the number of URL's stored in list 34 can be extensive making a search function such as function 37 an attractive option. A criteria dialog box 51 illustrated as logically separated from and below list 34 is provided and adapted to accept input for search option 37 as is known in the art. In one embodiment, search option 37 may bring up a second window wherein a dialog box such as box 51 could be located.
In another aspect of the invention the search function may also be configured in a window invoked from window 33, and caused to search all or selected ones of listed destinations, and to return results in a manner that may be, at least to some extent, configured by a user. For example, a dialog box may be presented wherein a user may enter a search criteria, and select among all of the listed destinations. The search will then be access each of the selected destinations in turn, and the result may be presented to the user as each instance of the criteria is found, or results may be listed in a manner to be accessed after the search.
Preferably the search function is a part of the Password-All Portal software, available for all users, and may be accessed by hyperlinks in user's personal pages. In some embodiments users may create highly individualized search functions that may be stored in a manner to be usable only by the user who creates such a function.
In many aspects of the present invention, knowledge of specific WEB pages, and certain types of WEB pages, is highly desirable. In many embodiments characteristics of destination WEB pages are researched by persons (facilitators) maintaining and enhancing Password-All Portal software 35, and many characteristics may be provided in configuration modules for users to accomplish specific tasks. In most cases these characteristics are invoked and incoφorated transparent to the user.
In yet another aspect of the present invention, the Password-All suite is structured to provide periodic reports to a user, in a manner to be structured and timed by the user, through the user's profile. For example, reports of changes in account balances in bank accounts, stock purchases, stock values, total airline travel purchases, frequent-flier miles, and the like may be summarized and provided to the users in many different ways. Because the Password-All Portal server with the Password-All software site handles a broad variety of transactional traffic for a user, there is an opportunity to summarize and collect and process statistics in many useful ways. In preferred embodiments of the invention such reports may be furnished and implemented in a number of different ways, including being displayed on the user's secure personal WEB page on the Password-All Portal.
In addition to the ability of performing tasks as described above, task results including reports, and hard documents such as airline tickets may be sent over the Internet or other data packet-networks to user-defined destinations such as fax machines, connected computer nodes, e-mail servers, and other Internet-connected appliances. All tasks may be set-up and caused to run according to user-defined schedules while the user is doing something else or is otherwise not engaged with the scheduled task.
In another embodiment of the present invention, recognizing the increasing use of the Internet for fiscal transactions, such as purchasing goods and services, a facility is provided in a user's profile to automatically track transactions made at various destinations, and to authorize payment either on a transaction-by-transaction basis, or after a session, using access to the user's bank accounts, all of which may be pre-programmed and authorized by the user. Other functions or options illustrated as part of application 35 include a last
URL option 41, an update function 43, and an add function 45. Function 41 allows a user to immediately navigate to a last visited URL. Update function 43 provides a means of updating URL's for content and new address. An add function enables a user to add additional URL's to list 34. Similarly, function 45 may also provide a means to delete entries. Other ways to add accounts are described above. It should be noted that the services provided by the unique Password-All Portal in embodiments of the present invention, and by the Password-All software suite are not limited to destinations requiring passwords and user names. The Password-All Portal and software in many embodiments may also be used to manage all of a user's bookmarks, including editing of bookmarks and the like. In this aspect, bookmarks will typically be presented in indexed, grouped, and hierarchical ways. There are editing features provided with Password-All for adding, acquiring, deleting, and otherwise managing bookmarks. As a convenience, in many embodiments of the invention, bookmarks may be downloaded from a user's Password-All site, and loaded onto the same user's local browser. In this manner, additions and improvements in the bookmark set for a user may be used without the necessity of going to Password-All. Further, bookmarks may be uploaded from a user's local PC to his/her home page on the Password- All site by use of one or more Password-All plug-ins.
It will be apparent to the skilled artisan, given the teaching herein, that the functionality provided in various embodiments of the invention is especially applicable to Internet-capable appliances that may be limited in input capability. For example, a set-top box in a WEB TV application may well be without a keyboard for entering IDs and Passwords and the like. In practice of the present invention keyboard entry is minimized or eliminated. The same comments apply to many other sorts of Internet appliances.
In preferred embodiments of the invention, once a subscriber-user is in
Password-All, only an ability to point-and-click is needed for all navigation. To get into the Password-All site, using a limited apparatus, such as an appliance without a keyboard or keypad, a Smartcard or embedded password may be used, or some other type of authentication.
It will be apparent to one with skill in the art that an interactive application such as application 33 may be provided in a form other than a WEB page without departing from the spirit and scope of the present invention. For example, an application such as application 33 may be provided as a downloadable module or program that may be set-up and configured off-line and made operational when online.
Fig. 3 is a flow diagram illustrating user interaction with the Internet
Password- All Portal of fig. 1. The following process steps illustrated, according to an embodiment of the present invention, are intended to illustrate exemplary user-steps and automated software processes that may be initiated and invoked during interaction with an Internet portal of the present invention such as portal 31 of Fig. 1. In step 53 a user connects to the Internet or another previously described switched-packet network via a compatible appliance such as Internet appliance 17 of Fig. 1.
At step 55, a user enters a user-name and password, which, in one embodiment, may simply be his ISP user name and password. In another embodiment, a second password or code would be required to access an Internet portal such as portal server 31 of Fig. 1 after logging onto the Internet through the ISP. In some cases, having a special arrangement with the ISP, there may be one password for both Internet access through the ISP and for Password- All. At step 57 a personal WEB page such as page 32 of Fig. 2 is displayed via Internet portal server 31. At minimum, the personalized WEB page will contain all user configured URL's, and may also be enhanced by a search function, among other possibilities.
In step 58 a user will, minimally, select a URL from his or her bookmarked destinations, and as is known by hyperlink technology, the transparent URL will be invoked, and the user will navigate to that destination for the puφose of normal user interaction. In this action, the Password- All Portal software transparently logs the user on to the destination page, if such log-on is needed.
At step 60 the user invokes a search engine by clicking on an option such as described option 37 of Fig. 2. At step 62, the user inputs search parameters into a provided text field such as text field 51 of Fig. 2. After inputting such parameters, the user starts the search by a button such as button 52. The search engine extracts information in step 64. Such information may be, in one option, of the form of URL's fitting the description provided by search parameters. A searched list of URL's may be presented in a separate generated page in step 66 after which a user may select which URL to navigate to. In an optional search function, the user may provide search criteria, and search any or all of the possible destinations for the criteria.
In another embodiment wherein WEB pages are cached in their presentable form, information extracted in step 64 may include any information contained in any of the stored pages such as text, pictures, interactive content, or the like. In this case, one displayed result page may provide generated links to search results that include the URL associated with the results. Perhaps by clicking on a text or graphic result, the associated WEB page will be displayed for the user with the result highlighted and in view with regards to the display window.
Enhanced Agent for WEB Summaries
In another aspect of the present invention, a software agent, termed a gatherer by the inventors, is adapted to gather and return summary information about URL's according to user request or enteφrise discretion. This is accomplished in embodiments of the present invention by a unique scripting and language parsing method provided by the inventor wherein human knowledge workers associated with the service provide written scripts to such a gatherer according to subscriber or enteφrise directives. Such a software gatherer, and capabilities thereof, is described in enabling detail below.
Referring now to Fig. 1, there is illustrated an exemplary architecture representing a portal service-network which, in this case is hosted by ISP 15. Portal software 35 in this embodiment executes on portal server 31 set-up at the ISP location. Mass repository 29 is used for storing subscriber information such as passwords, login names, and the like. Internet servers 23, 25, and 27 represent servers that are adapted to serve WEB pages of enteφrises patronized by a subscriber to the portal service such as one operating Internet appliance 17.
The main puφose of portal software 35 as described above with reference to Fig. 2, is to provide an interactive application that lists all of the subscriber's WEB sites in the form of hyperlinks. When a user invokes a hyperlink from his personal list, software 35 uses the subscriber's personal information to provide an automatic and transparent login function for the subscriber while jumping the subscriber to the subject destination.
Referring again to Fig. 2, an interactive list 34 containing user-entered hyperlinks and a set of interactive tools is displayed to a subscriber by portal software 35 of Fig. 1. One of the tools available to a subscriber interacting with list 34 is agent (software) 39. Agent 39 may be programmed to perform certain tasks such as obtaining account information, executing simple transactions, returning user- requested notification information about upcoming events, and so on. Search function 37 and update function 43 may be integrated with agent 39 as required to aid in functionality.
It is described in the above disclosure that agent 39 may, in some embodiments, search for and return certain summary information contained on user- subscribed WEB pages, such as account summaries, order tracking information and certain other information according to user-defined parameters. This feature may be programmed by a user to work on a periodic time schedule, or on demand.
In the following disclosure, enhancements are provided to agent 39. Such enhancements, described in detail below, may be integrated into agent 39 of portal software 35 (Fig.'s 1 and 2); and may be provided as a separate agent or gatherer to run with portal software 35; or may, in some embodiments, be provided as a standalone service that is separate from portal software 35.
Fig. 4 is a block diagram illustrating a summarization software agent 67 and various capabilities and layers thereof according to an embodiment of the present invention. Summarization agent 67, hereinafter termed gatherer r 67, is a programmable and interactive software application adapted to run on a network server. Gatherer 67 may, in one embodiment, be integrated with portal software 35 of Fig. 1 and be provided in the form of a software module separate from agent 39 (Fig. 2). In another embodiment, gatherer 67 may be a part of agent 39 as an enhancement to the function of that agent as previously described. In still another embodiment, gatherer 67 may be provided as a parent or client-side application controlled by a separate service from the portal service described above.
In this exemplary embodiment gatherer 67 is a multi-featured software application having a variety of sub-modules and interface modules incoφorated therein to provide enhanced function. Gatherer 67 has a client/service interface layer 69 adapted to enable directive input from both a client (user) and a knowledge worker or workers associated with the service. A browser interface 77 is provided in layer 69, and adapted to provide access to application 67 from a browser running on a client's PC or other Internet or network appliance. Interface 77 facilitates bi-directional communication with a user's browser application (not shown) for the puφose of allowing the user to input summary requests into gatherer 67 and receive summary results. Interface 77 supports all existing network communication protocols such as may be known in the art, and may be adapted to support future protocols.
Layer 69 also comprises a unique input scripting module 79 that is adapted to allow a human knowledge worker to create and supply directive scripts containing the site logic needed by gatherer 67 to find and retrieve data from a WEB site. In this case, gatherer 67 executes and runs on a network server such as server 31 of Fig. 1.
However, this is not required in order to practice the present invention.
It is assumed in this example that gatherer 67 is part of the portal software suite 35 running on server 31 of Fig. 1. Gatherer 67 may be provided as several dedicated agents, or as one multi-functional agent without departing from the spirit and scope of the present invention. For example, one gatherer 67 may be scripted and programmed to execute a single user request with additional gatherers 67 called upon to perform additional user-requests. Alternatively, one gatherer 67 may be dedicated and assigned to each individual user and adapted to handle all requests from that user.
Interface layer 69 facilitates exchange of information from both a client and a knowledge worker. A client operating a WEB browser with an appropriate plug-in is enabled to communicate and interact with gatherer 67. For example, a user may enter a request to return a summary of pricing for all apartments renting for under $1000.00 per month located in a given area (defined by the user) from apartments.com (one of user's registered WEB sites). The just mentioned request would be categorized as either a periodic request, or a one time (on demand) request. The communicated request initiates a service action wherein a knowledge worker associated with the service uses module 79 to set-up gatherer 67 to perform it's function. Module 79 is typically executed from a network-connected PC operated by the knowledge worker.
According to an embodiment of the present invention, a unique scripting method facilitated by module 79 is provided to enable gatherer 67 to obtain the goal information requested by a user. For example, the above mentioned example of
WEB-site apartments.com has a specific HTML (hyper-text-markup-language) logic that it uses to create its site and post its information. Such site logic is relatively standard fare for a majority of different sites hosted by different entities. Using this knowledge, a knowledge worker creates a site-specific script or template for gatherer 67 to follow. Such a template contains descriptions and locations of the appropriate fields used, for example, at apartments.com. Apartment description, location, deposit information, rental information, agent contact information, and other related fields are matched in terms of location and label description on the template created with module 79. Completed templates are stored in a database contained in a storage facility such as, perhaps, repository 29 of Fig. 1. Such templates may be reused and may be updated (edited) with new data.
In one embodiment, one script may contain site logics for a plurality of WEB pages, and instructions for specific navigational instruction and password or login information may be contained therein and executed serially, such as one site at a time. It is important to note that the knowledge worker or workers may perform much of their scripting via automatic controls such as by object linking and embedding (OLE) and a minor portion of scripting may be performed manually in an appropriate computer language, many of which are known in the art).
Gatherer 67 also has a process layer 71 adapted for internal information gathering and parameter configuration. An optional portal server interface 81 is provided and adapted to allow gather 67 to provide updated information to a user's list of hyperlinks and also to obtain data from portal server 31 if required. For example, required hyperlinks may be mirrored from a user's home page to a scripting template for navigational puφoses. In an embodiment wherein gatherer 67 is part of a standalone service, a convention for providing user login information may be supplied at the client's end when a request is made. For example, an encrypted password may be supplied by a client plug-in and gatherer 67 may temporarily borrow the user's encryption key when auto login is performed.
An appliance configuration module 83 is provided and adapted to allow a user to define and configure an Internet appliance to communicate with the service and receive summary information. Such appliances may include but are not limited to palm top PC's, lap top PC's, cellular telephones, WEB TV's, and so on. Typically, a user will be presented a configuration WEB page from a network server that displays in his browser window on his desktop PC. The page contains an interface for communicating device parameters and communication protocol types to module 83.
In this way, a user may configure a preferred device for receipt of summary information. Device parameters and communication protocols inherent to such a device are incoφorated into the scripting of the site template and are used as instructions for WEB summary delivery.
A navigation layer 73 is provided and adapted to perform the function of external site navigation and data gathering for gatherer 67. To this end, a communication interface/browser control module 85 is provided and adapted to function as a WEB browser to access WEB sites containing WEB data. Control 85 receives it's instruction from the scripted template created by the knowledge worker.
A parsing engine 87 is provided and adapted to parse individual WEB sites according to a template created via scripting module 79. Parsing engine 87 may be a
Pearl engine, an IE HTML engine, or any other or combination of known parsing engines. The template (not shown) tells control 85 and parsing engine 87 where to go and what fields at the destination site to look for to access desired data. Once the data fields are located, parsing engine 87 gathers current data in the appropriate field, and returns that data to the service for further processing such as data conversion, compression and storage, and the like.
Because WEB sites use tools that use consistent logic in setting up their sites, this logic may be used by the summarization service to instruct control 83 and parsing engine 87. The inventor provides herein an exemplary script logic for navigating to and garnishing data from amazon™.com. The hyperlinks and/or actual URLs required for navigation are not shown, but may be assumed to be included in the template script. In this example, a company name Yodlee (known to the inventors) is used in the script for naming object holders and object containers, which are in this case Active X™ conventions. In another embodiment, Java™ script or another object linking control may be used. The scripted template logic example is as follows: # Site amazon.orders.x - shows status of orders from Amazon login( 7 ); get( "/exec/obidos/order-list/" ); my @tables = get_tables_containing_text( "Orders:" ); my $order_list = new Yodlee::ObjectHolder( 'orders' ); $order_list->source( 'amazon' ); $order_list->link_info( get_link_info() ); my @href_list; my @container_list; foreach my Stable ( @tables ) { my @rows = get_table_rows(); foreach my $i ( 0 .. $#rows ) { select_row( $i ); my $text = get_text( $rows[ $i ] ); next if $text =~ /Orders :| Status/; my @items = get_row_items(); next unless @items >= 4; my( Sorder num, $date, Sstatus ); select_cell( 1 );
$order_num = get_cell_text(); my $href = get_url_of_first_href( get_cell() ); select_cell( 2 ); $date = get_cell_text(); select_cell( 3 ); $status = get_cell_text();
next unless defined $order_num and defined $date and defined $status; my $order = new Yodlee::Container( Orders' ); $order->order_number( $order_num );
$order->date( $date ); $order->status( Sstatus );
$order_list->push_object( $order );
if( defined $href ) { push( @href_list, $href ); push( @container_list, $order ); foreach my $i ( 0 .. $#href_list ) { get( $href_list[ $i ] ); @tables = get_tables_containing_text( "Items Ordered:" ); foreach my Stable ( @tables ) { my @rows = get_table_rows(); foreach my $j ( 0 .. $#rows ) { select_row( $j ); my $href = get_url_of_first_href( get_row() ); next unless defined $href; my @child_list = get_children( get_row(), 'a' ); next unless defined $child_list[ 0 ]; my $text = get_text( $child_list[ 0 ] );
$container_list[ $i ]->description( $text ); }
} } result( $order_list );
The above example is a script that instructs control 85 and parser 87 to navigate to and obtain data from Amazon™.com, specifically that data that reflects the user's current order status. Scripts may also be written to obtain virtually any type of text information available from any site. For example, a user may wish to obtain the New York Times headlines, the top ten performing stocks, a comparative list of flights from San Francisco to New York, etc. In one embodiment, metadata may be associated with and used in-place of the actual scripted language for the puφose of reducing complication in the case of many scripts on one template.
A data processing layer 75 is provided and adapted to store, process, and present returned data to users according to enteφrise rules and client direction. A database interface module 89 is provided and adapted to provide access for gatherer 67 to a mass repository such as repository 29 of Fig. 1, for the p pose of storing and retrieving summary data, templates, presentation directives, and so on. Gatherer agent 67 may also access data through interface 89 such as profile information, user account and URL information, stored site logics and so on. Data scanned from the WEB is stored in a canonical format in a database such as repository 29, or in another connected storage facility. All stored data is, of course, associated with an individual who requested it, or for whom the data is made available according to enteφrise discretion.
A summarization page module 91 is provided and adapted to organize and serve a WEB summary page to a user. Module 91, in some embodiments, may immediately push a WEB summary to a user, or module 91 may store such summarized pages for a user to access via a pull method, in which case a notification may be sent to the user alerting him of the summary page availability. Summarization module 91 includes an HTML Tenderer that is able to format data into HTML format for WEB page display. In this way, e-mail messages and the like may be presented as HTML text on a user's summarization page. Moreover, any summary data from any site may include an embedded hyperlink to that site. In this way, a user looking at an e-mail text in HTML may click on it and launch the appropriate e-mail program. Other sites will, by default, be linked through the summary page.
Many users will access their summary data through a WEB page as described above, however, this is not required in order to practice the present invention. In some embodiments, users will want their summary information formatted and delivered to one of a variety of Internet-capable appliances such as a palm top or, perhaps a cell phone. To this end, the renderer is capable of formatting and presenting the summary data into a number of formats specific to alternative devices. Examples of different known formats include, but are not limited to XML, plain text, VoxML, HDML, audio, video, and so on. In a preferred embodiment of the present invention, gather 67 is flexible in such a way as it may act according to enteφrise rules, client directives, or a combination of the two. For example, if a user makes a request for summary data about a user/subscribed WEB page to be periodically executed and presented in the form of a HTML document, then gather 67 would automatically access and analyze the required internal information and user provided information to formulate a directive. Using scripting module 79, a knowledge worker provides a template (if one is not already created for that site) that contains the "where to go" and "what to get" information according to site logic, user input, and known information.
Alternatively, if a user requests a summary about data on one of his sites such as, perhaps, current interest rates and re-finance costs at his mortgage site, the service may at it's own discretion provide an additional unsolicited summary from an alternate mortgage site for comparison. This type of summarization would be designed to enhance a user's position based on his profile information. In this case, updated data about latest interest rates, stock performances, car prices, airline ticket discounts, and so on would be stored by the service for comparative puφoses. If a user request for a summary can be equaled or bettered in terms of any advantage to the user, such summary data may be included.
In many cases, created templates may be re-used unless a WEB site changes it's site logic parameters, in which case, the new logic must be accessed and any existing templates must be updated, or a new template may be created for the site. The templates contain site-specific script obtained from the site and stored by the knowledge workers. In one embodiment, companies hosting WEB pages automatically provide their site logics and any logic updates to the service by virtue of an agreement between the service and the WEB hosts.
In an alternative embodiment gatherer 67 may be implemented as a client application installed on a user's PC. In this embodiment, a user would not be required to supply log-in or password codes. Summarization scripts may be sent to the client software and templates may be automatically created with the appropriate scripts using log-in and password information encrypted and stored locally on the user's machine. In addition to providing WEB summary information, gatherer 67 may also be used to provide such as automatic registration to new sites, and for updating old registration information to existing sites. For example, if a user whishes to subscribe, or register at a new site, only the identification of the site is required from the user as long as his pertinent information has not changed. If a new password or the like is required, gatherer 67 through control module 73 may present login or password codes from a list of alternative codes provided by a user. In another embodiment, a database (not shown) containing a wealth of password options may be accessed by gatherer 67 for the puφose of trying different passwords until one is accepted by the site. Once a password or log-in code is accepted, it may be sent to a user and stored in his password list and at the network level. It will be apparent to one with skill in the art that a software application such as gatherer 67 may be implemented in many separate locations connected in a data network. For example, a plurality of gatherer applications may be distributed over many separate servers linked to one or more mass repositories. Client applications include but are not limited to a WEB-browser plug-in for communicating to the service. Plug-in extensions may also be afforded to proxy servers so that auto-login and data access may still be performed transparent to a user.
In another embodiment, plug-ins enabling communication with gatherer 67 may be provided and configured to run on other network devices for the puφose of enabling such a device to initiate a request and get a response without the need for a desktop computer.
In most embodiments a user operating a desktop PC will order a one time or periodic summary related to some or all of his subscribed WEB sites. A logical flow of an exemplary request/response interaction is provided below.
Fig. 5 is a logical flow chart illustrating an exemplary summarization process performed by the software agent of Fig. 4 operating in a user-defined mode. In step 93, a user has initiated a new request for a summary (summary order). It is assumed for the puφose of discussion, that the request of step 93 involves a site wherein no template has been created. In step 95, the request is received and analyzed. A knowledge worker will likely perform this step. The new request may be posted to the user's portal home page, sent directly to gatherer 67, or even communicated through e-mail or other media to the service.
In step 97 a knowledge worker accesses particular site logic associated with the request URLs. For example, if the request involves a plurality of URLs, then all site logics for those URLs are accessed. Logic may be available in a repository such as repository 29 of Fig. 1 if they were obtained at the time of user registration to a particular URL, or sent in by WEB-site hosts shortly after registration. If it is a completely new URL, then the logic must be obtained from the site. In most cases however, the logic will be known by virtue of a plurality of users accessing common
URLs. Therefore cross-linking in a database of logic/user associations may be performed to access a logic for a site that is new to one particular user, but not new to another.
In step 99, the knowledge worker creates a template by virtue of scripting module 79 (Fig. 4) containing all site logic, URLs, log-in and password information, and the user request information. As described previously, templates may be re-used for a same request. In most cases, scripting may be mostly automated with minimum manual input performed by the knowledge worker. In many cases, an existing template will match a new request exactly, and may be re-used. In that case steps 97, 99, and 101 would not be required.
In step 101 the template is stored and associated with the requesting user. The stored template may now be retrieved at a scheduled time for performing the summary gathering. At step 103, a browser control such as module 85 of Fig. 4 is activated to access the stored template and navigate to specified URLs for the puφose of gathering summary data. If a timing function is attributed to the template stored in step 101, then the template may self execute and call up the browser function. In another embodiment, the knowledge worker may notify the browser control to get the template for it's next task. In some embodiments, a plurality of controls may be used with one template as previously described.
In step 105, automatic log-in is performed, if required, to gain access to each specified URL. In step 107, a specified WEB-page is navigated to and parsed for requested data according to the logic on the template. If there are a plurality of WEB -pages to parse, then this step is repeated for the number of pages. A variety of parsing engines may be used for this process such as an IE™ parser, or a Pearl™ parser. Only the requested data is kept in step 107.
A request may be an on-demand request requiring immediate return, or a scheduled request wherein data may be posted. At step 109, such logic is confirmed. If the data is to be presented according to a periodic schedule, then summary data parsed in step 107 is stored for latter use in step 111. In step 113, the summary data is rendered as HTML if not already formatted, and displayed in the form of a summary
WEB-page in step 115. The summary page may be posted for access by a user at a time convenient to the user (pull), or may be pushed as a WEB-page to the user and be made to automatically display on the user's PC. Notification of summary page availability may also be sent to a user to alert him of completion of order.
If the summary data is from a one-time on-demand request and required immediately by a user, then a network appliance and data delivery method (configured by the user) is confirmed, and the data is rendered in the appropriate format for delivery and display in step 117. In step 119, the summary data is delivered according to protocol to a user's designated appliance. In step 121 a user receives requested information in the appropriate format.
It will be apparent to one with skill in the art that there may be more or fewer logical steps as well as added sub-steps than are illustrated in this example. For example, step 105 may in other embodiments include sub-steps such as getting an encryption key from a user. In still another embodiment, part of a request may be rendered as HTML as in step 113 while certain other portions of the same request data might be rendered in another format and delivered via alternative methods. There are many possibilities.
The method and apparatus of the present invention may be used to present summaries to users without user input. Process logic such as this is detailed below.
Fig. 6 is a logical flow chart illustrating an exemplary summarization process performed by the software agent of Fig. 4 in a User-independent smart mode with minimum or no user input. In step 117 an enteφrise-initiated summary process begins. In this case, the enteφrise may be assisting a user in finding a better deal or, perhaps presenting the individual with summaries from and links to alternative pages not yet subscribed to by a user.
In step 119, a database containing user information and parameters is accessed and reviewed. Certain information specific to a user may be required to initiate an enteφrise-sponsored summary report. At step 121, the knowledge worker accesses the site logic specific to the specified target site or sites for summarization. In step 123, the knowledge worker modifies an existing user template, or creates a new one if necessary. At step 125 the template is stored in a repository such as repository 29 and associated with the user.
As described in Fig. 5, the template either self-executes according to a timed function and invokes a browser control such as control 85 (Fig. 4), or is accessed by control 85 as a result of task notification. In step 127, the browser control begins navigation. Auto logins are performed, if required, in step 129 to gain access to selected sites. If the WEB pages are new to a user, and the user has no registration with the WEB site, then through agreement, or other convention, the service may be provided access to such sites. Such an agreement may be made, for example, if the host of the WEB site realizes a possibility of gaining a new customer if the customer likes the summary information presented. In many other situations, no password or login information is required to obtain general information that is not personal to a client. In step 131, all sites are parsed for summary data and stored in canonical fashion in step 133. At step 135, the data is compiled and rendered as HTML for presentation on a summary page. In step 137, a WEB summary containing all of the data is made available to a user and the user is notified of it's existence.
Providing certain information not requested by a user may aid in enhancing a user's organization of is current business on the WEB. Moreover, unsolicited WEB summaries may provide better opportunities than the current options in the user's profile. Of course, assisting a user in this manner will require that the enteφrise (service) have access to the user's profile and existing account and service information with various WEB sites on the user's list. A user may forbid use of a user's personal information, in which case, no enteφrise-initiated summaries would be performed unless they are conducted strictly in an offer mode instead of a comparative mode.
The method and apparatus also may be practiced in a language and platform independent manner, and be implemented over a variety of scalable server architectures. Presenting Meta-Summarized Reports
In another aspect of the present invention, a method is provided largely through unique software wherein summary reports may be ordered and presented to users, the reports reflecting calculated and solution-orientated results. This type of summarizing is termed meta-summarization by the inventors, because it is a summarization over a plurality of data sources. Such a method is described in enabling detail below.
Fig. 7 is an overview of a meta-summarization process according to an embodiment of the present invention. The term "meta-summary" is used by the inventor in this embodiment also to distinguish the meta-summary process taught herein from the summary process taught above in this specification; in that meta- summarizing involves inteφreting and calculating data for reporting a solution- orientated result derived from data retrieved from multiple network sources. In this embodiment, a portal station 151 is provided and adapted by virtue of software and hardware, to perform WEB-summary and presentation services according to embodiments described in the co-patent applications listed above. Station 151 may be an ISP, a main Internet server, or other network connected server or interface station. In this example, portal station 151 is continuously connected to a source network, which is in this embodiment, the Internet network represented by Internet cloud 139. The above-described network connection is afforded by an Internet-connection line 149 from station 151 to an Internet backbone 147. Internet backbone 147 represents all lines and connections, including sub-nets that make up a global Internet 139. Portal station 151 has a means provided therein for maintaining a portal interface 153. Portal interface 153 is a file-server interface in this example, however in other embodiments, differing types of network-interface hardware may be substituted therefor. Interface 153 provides hyper-text-transfer protocol (HTTP) pages over an Internet-connection such as path 161 to subscribing users operating such as an illustrated network-adapted PC 163. A user operating PC 163 may go online, in this case by such as a dial-up connection, and communicate with portal interface 153 over connection path 161. Connection path 161 may be a normal telephone line, an ISDN line, or another known type of Internet-connection link including wireless connection. A dial-up connection is illustrated herein only as a more common connection method. A data repository 157 is provided within station 151 and adapted to warehouse aggregated data on behalf of and about a user. Data repository 157 may be part of the same hardware supporting portal interface 153 or it may be a separate hardware implementation connected by a data link. Repository 157 may be of the form of optical storage, or any other known implementation used for storing large amounts of digital data. Repository 157 may be assumed to support varied database programs as may be required to manipulate and organize data or metadata stored therein.
A data gathering sub-system GSS 159 is provided within station 151 and is adapted as a software and hardware implementation capable of navigating data-packet networks, such as Internet 139, upon instruction. GSS 159 represents automated browser control/navigation as described in co-pending patent application S/N 09/523,598. GSS 159 is analogous to navigation layer 73 described in Fig. 4 above.
A plurality of network-connected data sources represented herein by file/data servers 141-145 are illustrated in Internet 139. Servers 141-145 are user-subscribed servers known to portal station 151. For example, servers 141-145 may represent one user's collective WEB-services for banking and investment. Such options include banking, stock trading, retirement account servers, insurance servers, and so on. It is noted here that servers 141-145 are assumed to represent separate WEB-based services subscribed to by one user and are not affiliated with one another. For example, a user operating such as PC 163 would do all of his on-line banking, trading, and investing using servers 141-145 in this example.
In another embodiment, servers 141-145 may represent all of a user's frequented on-line shopping services. The fact that all of servers 141-145 are topically related but not affiliated with one another in this example serves only to aid in explanation of the present invention as will be seen below. It is taught in the co-pending patent application entitled "Method and
Apparatus for Obtaining and Presenting WEB Summaries to Users" that site navigation, parsing data, and returning data to users or storage is enabled, in part, by site-logic templates provided typically by knowledge workers. This aspect is represented herein by a PC 167 adapted for a knowledge worker (KW). A KW working from a station such as PC 167 provides site-logic scripts for navigation to data requested by a user and stored in any one of or all of servers 141-145. Such scripts are provided to GSS 159 over a data link 165. Summary data stored in such as repository 157 is stored for user access. In some cases wherein a user requests immediate data return, data is sent directly to such as portal interface 153 where a user may then access the data immediately. According to an embodiment of the present invention, a novel database- reporting engine DBRE 155 is provided and adapted to perform formulative processes to aggregated data on behalf of a user. DBRE 155 is in itself a database utility and is in a preferred embodiment a part of the software environment of repository 157. In another embodiment DBRE 155 may be part of the software environment of portal interface 153.
In this embodiment, DBRE 155 acts as a first "gathering agent" and checks repository 157 first for user requested data upon request. User-history records of all user transactions at all of his registered WEB-based services are preferably maintained in repository 157 and are accessible to DBRE 155. In some cases, services such as those represented by servers 141-145 may provided complete transaction histories that may be obtained and stored in repository 157 and updated periodically. In some cases however, such services may not retain history records for users. In this case, a user accessing such services through his or her portal interface 153 may track each transaction over a normal course of time resulting in a history record for transactions at that service that is maintained in repository 157.
In the case of servers 141-145, each contains some form of financial portfolio data connected to one user. For example, server 141 may represent a banking service where a user has a savings account. Server 142 may represent a banking service where the user has a checking account. Server 143 may represent an on-line investment company maintaining a fast-changing portfolio of investments and losses for the particular user. Server 144 may represent a banking company where the user has an individual retirement account (IRA). Server 145 may represent a mortgage company holding data about the users property portfolios. Each site presumably holds current account-status information and a financial history of transactions performed by a particular user. To illustrate, assume that all financial data particular to one user is provided by or obtained from servers 141-145, aggregated in data repository 157, and updated periodically. A user operating PC 163 may access portal interface 153 by way of Internet connection 161 and request a specific result that involves some or all of the data across multiple servers 141-145. One example would be a user-initiated command "calculate my current net- worth". The resulting meta-summarized report would inform a user of his or her calculated net- worth with all financial data from all financial data-sources (servers 141-145) analyzed in the process of answering the user query.
In this case DBRE 155 utilizes only data that is already aggregated in repository 157. Therefore, it is not specifically required that GSS 159 navigate on behalf of the user in a case where data held in aggregation is current and sufficient to satisfy a user request. However, if a user's particular request, such as the one stated in the above example, requires navigation to one or more of servers 141-145, GSS 159, using site logic provided by KW 167, would navigate to each required site and retrieve the required data. After the required data is aggregated in repository 157, DBRE 155 may analyze the aggregated data and generate an accurate report from the aggregated data based on a user's request.
It will be apparent to one with skill in the art that providing a unique engine such as DBRE 155 on a user-side of repository 157 saves precious bandwidth resource required by individual site navigation and return of data ordered by a user. Added storage space is required in repository 157 for the puφose of storing complete activity histories from multiple WEB services on behalf of users. However, adding such resource and saving bandwidth represents an intelligent implementation in light of the many techniques known in the art for compressing and archiving data. More detail about the function of DBRE 155 is presented below. Fig. 8 is a block diagram illustrating additional detail, components and functions of DBRE 155 of Fig. 7 according to an embodiment of the present invention. DBRE 155 is a functional interface capable of obtaining, analyzing, and preparing data for presentation to a user. As such, it contains certain sub-modules responsible for performing certain required functions. For example, a control-logic module 171 is provided as part of DBRE 155 and adapted to parse and confirm a user's request as well as to insure that a user-selected presentation format is available and appropriate for the type of data result requested by a user. Such options are contained in an options database 173 illustrated as connected to control module 171 by a double arrow representing bi-directional communication.
Options database 173 may be part of DBRE 155 as illustrated herein, or part of repository 157 and made accessible to DBRE 155. In the case of DBRE 155 maintaining its own databases such as options database 173, and a previously described database containing user histories across multiple accounts, then DBRE 155 would be resident in a machine having enough storage memory to hold all required data. Such a machine could be a processor/server. In another embodiment, all stored data is held in repository 157.
DBRE 155 also has a runtime engine 177, which performs data analyzing and calculation in order to form specific data results or solutions for users based on user request. Engine 177 has access to all of the mathematical tools and system knowledge required to perform its objectives which can vary considerably. A knowledge base (not shown) may be used as a source of intelligence for engine 177 as is generally known in the art of configuration models.
Engine 177 performs a wide variety of mathematical functions including such as statistical analysis, summing, averaging, and so on. In one embodiment, algebraic, geometric, and trigonometric functions are also provided for performing more complex calculations. In most cases however, user requests will be geared more toward averaging, summing, predicting probabilities, deriving percentages, and so on. For example, summing multiple bank balances would be a common task. Analyzing on-line spending trends across multiple on-line shopping services would be another example of a common task. A more complicated report might compare shopping trends with income potential and produce a ratio figure along with recommended ways to improve on the ratio without sacrificing needed goods. There are many possibilities.
A graphics user interface (GUI) module 181 is provided within DBRE 155 and adapted to prepare data according to requested format and a requesting display type. GUI module 181 has knowledge of which presentation option was selected from options database 173, and knowledge of the parameters (hardware and software platform) of a particular device or station that will receive a report. It is not required that a report be directed back to an originating device. In some embodiments, a user may direct a meta-summary report to alternative receiving devices over different mediums. This assumes, of course, that the receiving devices and data networks are known to the system.
In practice of the present invention, a user initiates a request illustrated herein as an arrow labeled input to a pre-configured request 169 from such as his or her browser interface. Request 169 is parsed for meaning in control-logic module 171. If there is an error detected in the original request 169, such as missing information or an option selection that is not available, then an error report is immediately sent back to that user as illustrated by the arrow labeled error report. Control-logic module 171 may check options database 173 to determine if an unavailable option was selected and present an alternative available option back with the error report.
Once module 171 has confirmed a request and confirmed a presentation option, it accesses a guard (Gl) 175 resident on the client side of such as repository 157 of Fig. 7 to see if there is enough current data stored therein to enable formulation of a valid result. Data obtained from repository 157 of Fig. 1 by way of database interaction is included in guard 175 and passed to engine 177 for processing. If however, a required portion of data is missing from repository 155, GSS 159 of Fig. 7 may be invoked to retrieve the requested data. An error message may, in this case, be sent back to a user informing him of a requirement to navigate for a portion of required data. All of the data required to return a requested report is funneled into runtime engine 177. All of the appropriate calculations are performed and the resulting data illustrated herein as raw data-results 177 is passed into GUI module 181. GUI module 181 then prepares the result data for presentation to a user illustrated herein as an arrow labeled output.
As described above, a report may be very simple or quite complex, including text and graphical elements as well. In one embodiment, all of the process steps performed on included data may be broken down and reported to a user along with a final result. Presentation options may include spreadsheets, graphs, text reports, pie charts, and so on.
In the example presented above, DBRE 155 is a multi-functional module that may be broken down into cooperating sub-modules. However, this is not required to practice the present invention. One with skill in the art will recognize that there are other orders of modules and distribution paths that may be utilized to accomplish the same function. For example, DBRE 155 (Fig. 7) may interface directly with GSS 159 (Fig. 7) instead of being enhanced for gathering from aggregated data. In this case GSS 159 would first check repository 157 before determining if navigation is required. In another embodiment navigation may be required by default to insure that all data in aggregation is current. There are many possibilities.
Fig. 9 is a process flow diagram illustrating logical user and system steps from initialization to completion of a meta-summarized report according to an embodiment of the present invention. At step 183, a user initiates a meta-summary report request from such as PC 163 of Fig. 7 using a browser/portal interface. A request might be to sum all of my interest earnings from all of my interest bearing accounts over a 1-year period and return a monthly average. In a preferred embodiment such a request may be made in a "natural language" understood by the portal software. At step 185, control logic registers and confirms feasibility of the original request. This step includes parsing the request, confirming a presentation option, confirming presentation delivery parameters (software, hardware, medium) and so on. Once a request is approved for action, a data gatherer at step 187 accesses the database, such as in repository 157 (Fig. 7) for required data. Such a gatherer, termed a bot by the inventor, may be part of DBRE 155 as illustrated in Fig. 8, or part of GSS 159 of Fig. 7. At step 189 it is determined whether or not there is sufficient data available in aggregation to complete the request. If the decision is yes, then the required data is extracted from the database (DB) in step 191. At step 193 the extracted data is processed according to tools that accomplish the user's request, which is a solution- orientated result. Text records of processing may also be forwarded to a user if requested. In this way a user might review several steps taken to arrive at a solution- oriented result.
At step 193, the raw result data is prepared according to user-requested presentation options in such as GUI module 181 of Fig. 8. A presentation option may consist of simple text results appearing on a user's portal home page. In one embodiment, a separate WEB page may be constructed that displays varied versions of the same result such as a time chart, a text paragraph explaining the chart, and a table reflecting result values. A meta-summary dealing with an averaged interest rate, as described in an example above, may be presented in a variety of ways. For example, each account and individual result may be listed, followed by a summed result over a particular time span, followed by an average figure over a smaller increment of time. There are no limits to presentation possibilities as long as the appropriate software containers are supported at both ends of the interaction. In most cases, a browser interface supporting full interactive function will be utilized. In step 197, the prepared GUI data is sent to a requesting user such as one operating PC 163 of Fig. 7 over an Internet connection such as connection 161. It should be noted here again that many devices are capable of effecting an interface with DBRE 155 of Fig. 8 and receiving result data. The success of configuring varied devices to the system will depend on provided network and data interfaces. If in step 189 it is determined that there is not enough data or the right kind of data already in aggregation to complete a request, then the request is passed over to a GSS, such as GSS 159 of Fig.7 in step 199. In one embodiment gathering is the sole responsibility of GSS 159 as has already been described. In step 201 site logic templates are obtained from such as a KW operating a PC such as PC 167 of Fig. 7. If the navigation templates required are the same as templates that have been previously used, then such templates may be obtained from a connected data store. At step 203, a GSS such as GSS 159 of Fig. 8 navigates to and extracts data from required WEB sites in order to complete the aggregated data store on behalf of the requesting user. At step 205, the data is passed into aggregation in a database assigned for the puφose in such as repository 157. After all of the required data has been aggregated in step 205, steps 191 through 197 are repeated.
It will be apparent to one with skill in the art that the process steps described above represent a mostly automated or completely automated process. Moreover, there may be other sub-routines added without departing from the spirit and scope of the present invention such as adding a user notification step in the event that in step 189, data is insufficient.
It will also be apparent to one with skill in the art that a process routine such as the one described herein may be altered according to an alternate operating environment without departing from the spirit and scope of the present invention. For example, if a user is interfacing from a wireless device through such as a data center network interface, then added steps may be required to convert data to a format understood on a different network. There are many diverse applications.
Fig. 10 is a representative view of an actual screen shot 207of a meta- summarized report 209 on display in a user's browser interface according to an embodiment of the present invention. In a more common implementation of the present invention, a user interfaces with such as a portal server by utilizing a common browser interface, many brands of which are known in the art and readily available. In this particular example, a Microsoft™ browser application known as the Internet Explorer™ (IE) is used. However the system of the present invention works with any software interface capable of navigating a data packet network. Summary report 209 consists of individual bank, investment and account listings complete with the names of the institutions. Summaries of the individually reported information for both bank accounts and stock accounts are found beneath each group listing. Report 209 is a rather simplified example of many graphical possibilities and presentation methods. Depending on the complexity of a request, a meta-summarized report may contain virtually any type of presentation mediums. Some examples include, but the invention is not limited to limited to, Gant charts, time graphs, pie charts, flow charts, text summaries, and so on. In another embodiment, a summarized report may contain interactive options for looking at the same data in different ways, or even calculating further results from the results presented. A user has many options when accomplishing interface with the system of the present invention through a fully functional browser application installed on a powerful PC. Interface through other devices such as personal digital assistant's, cellular telephones, and the like will obviously limit presentation options, however, the use of such devices for interface is possible and may, in some situations, be preferred. Such situations may be business meetings, interviews, and other situations wherein a user may need to access some summary data, but does not have access to his personal computer station. Moreover, such data may be previously ordered and sent to a place other than at his or her personal computer. With appropriate interface to telephony networks, such information may, if directed by a user, be faxed to a meeting place, e-mailed to an associate's e-mail address, and so on. There are many diverse applications, many of which have already been stated.
Personalized Recommendations
In another aspect of the present invention, a means is provided for gathering data from multiple user sites and using the data to provide an intelligent recommendation to a user regarding an impending user activity. Such a means is described in enabling detail below.
Fig. 11 is an overview of a personalized recommendation system according to an embodiment of the present invention. In a preferred embodiment, a recommendation system is provided and adapted to provide advice concerning user- initiated purchases and other online activities. Such a recommendation system is integrated with architecture and software environments that have been described with reference to co-related patent applications described in the cross-reference to related documents section. Therefore, several components described herein will be analogous to previously described components although they may be given new element numbers.
In this example, a wide-area network (WAN) 211, which in this case is the well-known Internet, is connected to a portal station 213 preferably by way of a continuous Internet connection path 231. Connection parth 231 is adapted to enable automated data gathering on behalf of users by system components as will be described further below. Connection path 231 is connected to an Internet backbone 215, which represents all of the lines and interconnections making up the global Internet 211. Shown connected to backbone 215 are file servers 217, 219, and 221. Servers 217-221 represent WEB services that are subscribed to by a user practicing the present invention. Such services may represent travel services, banking services, shopping services, and the like.
Internet 211 may be another type of WAN such as a coφorate or a private WAN without departing from the spirit and scope of the present invention. The inventor chooses to illustrate Internet 211 herein solely because of the wide public- access availability afforded.
Internet-portal station 213 comprises all of the equipment and components to enable WEB-based data gathering and summary return as discussed in co-related patent applications listed above. As such, station 213 may be implemented at an ISP location, as a standalone center, or distributed in Internet 211. In this particular example, station 213 can be assumed to be a stand-alone center hosted by a company providing various WEB-gathering services.
A portal interface 223 is provided within portal station 213 and adapted as an interface to users subscribing to the service of the present invention. Interface 223 is, in a preferred embodiment, a file server adapted as a portal and task interface for user's doing business online with their registered sites. A mass-storage data repository 227 is provided within portal station 213 and stores data about users subscribing to the service and data comprising aggregated information obtained from user- frequented WEB services represented by servers 217-211, which are accessible through Internet 211. Repository 227 may be an online or off-line facility of any form capable of storing the required data and providing interface through appropriate database software for the puφose of accessing and manipulating such data according to enteφrise rules. For example, user profile information including a list of registered WEB-services is provided and stored in repository 227 as described with reference to application S/N 09/208,740 entitled "Method and Apparatus for Providing and Maintaining a User-Interactive Portal System Accessible via Internet or other Switched-Packet-Network". In addition to user profile information, data collected from user services is aggregated on behalf of users and stored on a user-directed basis. Such data is obtained from various WEB sites subscribed to by such users.
An exemplary user, illustrated herein as a PC icon labeled with element number 233, establishes connection with portal interface 223 over an Internet access path 239. Access path 239 may be a normal telephone line such as with a modem/dial-up connection. In other embodiments, ISDN lines, cable/modem connections, or wireless connections may be used. User 233 uses his browser interface to interact with the portal system supported by portal station 213. In turn, portal interface 223 has an Internet connection path 226 adapted for direct and automated browsing through interface 223 by proxy (system components).
In this embodiment, a service enhancement that allows a user to obtain an intelligent purchase or other type of recommendation regarding an impending activity is illustrated herein by inclusion of a recommendation engine 225 (largely a software component), and a gathering-sub-system (GSS) 229 provided within portal station 213. GSS 229 is a system of software components adapted to navigate to user- frequented sites by way of system architecture and obtain data from various WEB sites for aggregation in repository 227 associated with individual users, and eventual presentation to requesting users. GSS 229 is analogous to GSS 159 of Fig. 7 and includes such as automated browser controls and software agents, termed bots by the inventors, that are capable of parsing and obtaining data from WEB-sites among other functions. Disclosure pertaining to hardware used to implement GSS 229 is available in the co-related specification S/N 09/362,914 entitled "scalable Architecture for Distributed Job Processing". A knowledge worker (KW) illustrated herein as a PC icon labeled with element number 235 is provided for the puφose of supplying site-logic templates to GSS 229 for navigation puφoses. KW 235 is connected to GSS 229 by a data link 237, which may be a LAN or WAN connection. Site-logic templates that may be re- used are stored in such as repository 227 along with user profile data and aggregated data.
In this example, a user wishes to make a decision regarding an impending activity, which he or she will execute regarding one of WEB-servers 217-221. Such an activity may be,for example, to purchase an airline ticket, in which case servers 217-221 might represent separate travel services through which such tickets may be purchased, including sites specific to major airlines. If the activity involves such as using a credit card to pay for a service or product, then servers 217-221 would represent separate WEB services through which user 233 has obtained and maintains an active credit account. There are two methods by which a system recommendation may be initiated on be-half of a user, through engine 225. A first method is through a query initiated by a user, such as user 233, through his or her browser interface. A second method involves automatic system monitoring of a user's activity and automatically initiating a recommendation based on detection of a user's activity. Referring first to the second method stated above, assume that user 233 is online and actively browsing, connected to server 221 of WEB services 217-221 through interface 223. In this case, Web servers 217 and 219 may be credit-card- account servers and server 221 may be an online shopping service. If user 233, while browsing shopping pages held in server 221 clicks on an item for immediate purchase with a credit card, then a decision must be made by user 233 concerning which of two cards (servers 217 and 219) to use for the purchase at server 221.
In the above example engine 225 monitors the online activity of user 233 is so that interface 223 is aware of the impending purchase. It will be apparent that this function may be provided by software executing anywhere on portal station 213. The system thus recognizes when a user has activated a buy link on any WEB page he is currently browsing. Therefore, when a user activates such a purchase link, interface 223 automatically initiates a recommendation process, which in this case, will be what card to use for payment.
Assuming that a purchase link has been activated according to the parameters described above, then interface 223 immediately contacts repository 227 (illustrated by a bracketed double-arrow connection) to see if the service that the user is buying from requires a credit card. If so, then interface 233 looks for registered credit- account services through which user 233 has one or more cards. If there are more than one, such as is the case herein with services 217 and 219, then interface 233 activates recommendation engine 225 (illustrated by a straight double-arrow connection). A system notification may be sent to user 233 in the form of an audible alert or screen pop asking him or her to pause momentarily while a recommendation is prepared. There may also be a choice presented to user 233 of whether or not to continue with a recommendation.
If all of the required information is already entered into repository 227 in the form of updated and aggregated data, then recommendation engine 225 may simply pull the required data from repository 227 (illustrated by straight double arrow connection) and compile a recommendation report without activating GSS 229. Required information may include interest rate, account balance, accumulated bonus points for repeated card use, and any other company policy information that may be connected to enhancing user convenience through use of a card.
If navigation is required to obtain data from sites 217 and/or 219 in order to complete an intelligent recommendation, then engine 225 activates GSS 229 (illustrated by a bracketed double-arrow connection) with a command-order to navigate and update data. A specific data request is supplied to GSS 229 and becomes part of the site-logic template used to navigate to servers 217 and/or 219. Such templates may already exist due to repeated recommendations and navigation to sites. KW 235 may (if required) provide a new template incoφorating the information supplied by engine 225. In most cases the process can be completely automated.
In this case GSS 229 navigates to site 217 and/or site 219 on behalf of user
233 by way of Internet connection line 231 and obtains the required data. GSS 229 then aggregates the data into repository 227 (illustrated by a straight single-arrow connection) and passes same data to recommendation engine 225 for comparison. Recommendation engine 225 has all of the required tools needed for data processing and comparison as well as tools for preparing a recommendation report for a user such as user 233. Engine 225 passes a complete recommendation to interface 223, which forwards the report to user 233 over connection line 239. Such a report may be a text report, an audible report, a graphical report, or a combination thereof. Such a report may appear in a current browser window displaying the target WEB page, or in a side bar area. There are many possibilities. The inventor intends that the entire process should take only at most a few seconds and streamlines the process where possible such as by tapping data already stored if such data is sufficient to provide an intelligent recommendation.
Recommendations made by engine 225 may be of many sorts and based on diverse criteria. If a user is purchasing an item on-line, the system may recommend a credit card based on such criteria as existing balance, interest rate, perks such as frequent-flyer miles, and the like. If the user is buying an airline ticket, the system may recommend an airline based on known user preference for avoiding certain stopover points and the like. There are many, many possibilities. The first method introduced above is accomplished through user query. In this case, assume a user such as user 233 has intentions of purchasing such as an airline ticket for a pre- scheduled business appointment. However the user does not wish to browse his registered travel services represented in this case by servers 217-221 looking for a deal. Instead, user 233 may enter a query through such a browser interface that reflects his or her intention. For example, a query interface may be personalized to a user and include entry fields for a user to check or click. Such fields may include such as airline tickets, destination, desired time of departure, desired time of arrival, and so on. There may be an additional entry field for listing specific registered services (two or more) or include all services.
When the query is submitted, interface 223 checks repository 227 for listed services as described previously. Recommendation engine 225 is then activated and checks repository 227 for sufficient updated data. If there is enough data to complete an intelligent recommendation, then recommendation engine 225 processes and passes the information to interface 223, which forwards the report to user 233 without requiring navigation. However, it is known that services such as travel agencies and the like update information almost continually. Therefore, it is likely that navigation would be preferred in many cases.
If navigation is in order, then recommendation engine 225 activates GSS 229 with an order to navigate to sites 217, 219, and 221, which represent travel services frequented by user 233. GSS 229 navigates by way of connection path 231 to sites 217, 219, and 221, obtains specified data according to site logic and user directive. GSS 229 passes obtained data to recommendation engine 225 for processing and aggregates the same into repository 227. Engine 225 generates a report based on obtained data and submits the report to interface 223. Interface 223 makes the report accessible to user 233 over connection 239. Such a report may appear on a user's portal home page, or be sent in the form of e-mail or any other supported media and form. In this case, the report would include identification and URL of the service that is best able to serve, the prices and parameters for the available tickets, any reasoning why the selected service is a preferable choice, and so on.
In another embodiment of the present invention, recommendations may be ordered in a piggyback fashion. For example, consider the case of a user such as user 233 submitting a query to obtain a recommendation as to which service he should use. By default, the system may present a second recommendation concerning which credit card should be used to pay for the ticket offered by the recommended travel service.
In still another embodiment, the two described methods may be combined such that some recommendations are always performed by default through monitoring and some may be ordered by query. For example, a user such as user 233 may configure the service to allow a query method to obtain a recommendation such as which service would be more beneficial for purchasing an item. When the user navigates to and activates a recommended purchase, a second default recommendation advises the user how to pay for the purchase. There are many possible combinations. Recommendation engine 225 obtains it's knowledge by system programming such as with the use of a knowledge base. A point system may be used to equate certain parameters. For example, interest rates particular to credit cards, may be equated to points-for-comparison. Other constant factors may be likewise equated. Variable factors (factors that may change frequently) may be summed and compared (if mathematical) and equated. For example, if three separate credit cards are considered, then the card with the lowest balance may earn one point whereas the one with the lowest interest rate may earn 1.5 points and so on.
In a preferred embodiment user's that have special deals or programs associated with thresholds of purchase activity for certain credit cards, bonus programs associated with specific shopping sites or the like may program such personalized information into repository 227 so that the information may be considered and incoφorated by recommendation engine 225. Moreover, recommendation engine 225 may be personalized to one user and updated periodically so that the user's current non-standard data is always considered. In this case, a separate knowledge base resource might be provided to each subscribing user. It will be apparent to one with skill in the art that the method and apparatus of the present invention may be accomplished through user query, by default or a combination thereof. Much of the scope of this specification and those listed in the cross-reference section lends to personalization of services in order to provide enhanced user satisfaction. Therefore, personalization where possible is preferred. Fig. 12 is a block diagram illustrating components of purchase recommendation engine 225 according to one embodiment of the present invention. Recommendation engine 225 comprises three functional software layers. These are an Interface layer 241, a data processing layer 243 and a report generation layer 245. As a software implement, engine 225 executes on a machine having a suitable processor for computing and processing data. Such a machine may be a same machine supporting portal interface 223 of Fig. 11, or a separate processor-based machine dedicated to processing recommendation data for clients. As described with reference to Fig. 11, recommendation engine 225 is personalized to each individual as much as possible through programming. That is to say that each individual has his or her own database wherein personal, profiling, and aggregated WEB data is held. Each individuals data is stored centrally such as in repository 227 of Fig. 11. Interface layer 241 has a portal interface module 247 providing input/output (I/O) communication capability with portal interface 223 of Fig. 11. Engine 225 may be activated through I/O interface 247 and returns completed recommendation data through I/O interface 247. A GSS interface module 249 is provided and adapted to enable I/O data communication capability with GSS 229 of Fig. 11. Module 249 functions in the event that navigation is required to return sufficient data for recommendation processing. A personalization agent module 252 is provided and adapted to issue commands through GSS interface 249 for dispatching of gathering agents or "bots", to navigate on behalf of a client. In one embodiment, personalization agent 252 is part of GSS 229 of Fig. 12. An advantage of integrating personalization module 252 into recommendation engine 225 is that module 252 contains logic and built-in intelligence required to personalize bots (gatherers) to perform according to personalized client rules.
A database interface module 251 is provided and adapted to enable I/O communication capability with repository 227 of Fig.11 using appropriate database software. For example, engine 225 may request access to personal information stored on behalf of any client and receive requested data through the same interface. A default initialization module 253 is provided and adapted to enable automatic initialization of engine 225 based on monitored WEB activity on behalf of any subscribing client. In this sense, module 253 is an input mechanism that accepts the required data for initializing a recommendation return process. Notification to module 253 resulting from WEB activity activates engine 225 and provides all the required data to initialize an automatic recommendation sequence on behalf of the monitored user. Interface layer 241 accomplishes all of the interface capability of engine 225 to the rest of the system components as described above. Administrative programming of various modules comprising engine 225 may be accomplished through portal interface module 247. In one embodiment, a separate programming interface module (not shown) may be provided for administrators or knowledge workers to access and program various modules contained in engine 225. Data processing layer 243 comprises all of the required modules to enable successful processing of input and acquired data for a recommendation sequence. A programmable rules library (database) 255 is provided and adapted to contain enteφrise rules related to general processing parameters. Such rules may also contain special personalized rules that may apply to certain clients. An example of a general rule would be "always initiate secondary recommendations when possible". Such a rule applies to a situation wherein a purchase recommendation is followed by an automatic "method of payment" recommendation or the like. An example of a personalized rule may be an added recommendation routine for client X wherein an automatic "bid ceiling" is recommended every time client X is bidding on an item in an auction based on an average going price for similar items client X has purchased at other auctions.
A programmable knowledge base 257 is provided and adapted to hold system knowledge related to what types of general recommendations are possible using engine 225. For example, if recommendation possibilities include intelligent purchasing of airline tickets, car rentals, books, movies, software, computers, stocks, and the like, then related constants and equaters would be included in knowledge base 247. In a query-based method described in Fig. 11, such options may appear along with the query such that a user may check which options he wishes to perform. A runtime engine 259 is provided and adapted to equate acquired and input data with constant data in knowledge base 257 according to rules listed in library 255. In one embodiment, knowledge base 257 may be personalized for each client such that a particular knowledge base is specific to only one individual. In this way, special recommendation routines may be processed for a particular client that otherwise are not common routines.
A raw data store 261 is provided and adapted to temporarily store all processed data generic to a completed recommendation routine. Data store 261 uses system memory or cache wherein "chunks" of raw data are tagged to requesting clients. A client chunk of data may consist of one or more separate recommendation routines. However, in a preferred embodiment, by the time a second recommendation is completed on behalf of a single user, the first chunk representing the initial recommendation has already been delivered to the client and has been purged from data store 261.
A personal programming module 263 is provided and adapted to allow personalization of rules library 255 and knowledge base 257 on behalf of a client. In one embodiment, personal programming module 263 is activated whenever recommendation engine 225 is invoked on behalf of a client. In this case, personalized data in the form of added rules and knowledge base data is stored in such as repository 227 of Fig. 11 and applied to (otherwise generic) rules library 255 and knowledge base 257. A multitaskable generic recommendation engine may be used in the above-described case.
In another embodiment, agent 263 is invoked periodically to apply personal rules and parameters to both library 255 and knowledge base 257 wherein such rules remain applied on behalf of a requesting user. In this case, a personal recommendation engine is created and stored for each subscriber and may only be used by it's owner. There are many possibilities.
Generation layer 245 handles converting raw result data into a presentable format and specific media on behalf of a user. A data writer 265 is provided and adapted to convert or rewrite raw data results, which in some cases may not be human-readable, into legible information according to a user or system-specified format. A media library 267 is provided and adapted to contain various media options for presenting data. One option may be E-mail. Another option may be an ICQ™ message. Still another form may be an MPEG or .WAV message. A typical option would be to return data as hypertext markup language (HTML) to a user's active WEB browser for text display. An applications module 269 is provided and adapted to insert data into desktop applications used by a client such as a word document, a draw document, a spreadsheet, or the like. In this way, a user/client may receive system reports in desired formats and through desired vehicles. For example, a series of recommendations may be ordered for a planned vacation trip wherein specific parameters such as vacancy pricing, car rental, restaurants and the like are targets of recommendations. Such businesses must have an online WEB page (URL) registered in a user's profile in order to be considered.
In one embodiment, a user may program automatic recommendations to execute when he or she begins a session that is planned for a later date. For example, a user may plan to participate at a scheduled online auction or fashion show wherein hot buttons are provided for entering a bid or purchasing an item. When a user interacts, engine 225 operates by default and provides recommendations related to the activity. For example, if a user enters a bid for an auction item, a recommendation as to whether he should continue to bid higher or stop bidding may be received based on an average going price of that or a similar item through another site or sites. A recommendation associated with a purchase-now button may provide competitive pricing information from other sites, quality comparison information and a recommendation to purchase or not.
It will be apparent to one with skill in the art that a recommendation engine such as engine 225 may be a self-contained module with appropriate interface capability (as shown here), or a plurality of distributed components without departing from the spirit and scope of the present invention. For example, layer 241 and 243 may be part of one implementation running on a single processor whereas layer 245 (report generation) may execute at a machine supporting portal interface 223 of Fig. 11. There are many possibilities. Runtime engine 225 is enhanced, in this embodiment, with common object modeling (COM) functionality. In this way, user- friendly programming tool-kits (not shown) may be provided with instructions to guide a user or client in setting-up personal aspects of the recommendation service. Fig. 13 is a process flow diagram illustrating an exemplary purchase recommendation process according to an embodiment of the present invention. At step 271, a client or user invokes a recommendation query process from his or her WEB browser while online with the portal service. Such a query is designed to inform other system components of the parameters required to provide an intelligent recommendation based on a user's planned activity. At step 273, a client or user selects from presented options, which reflect different types of recommendation possibilities. It is assumed for this example that a client or user has had target URLs summarized by the service such that if a client selects "intelligent airline ticket purchasing" his or her profile information will include at least two URLs of travel sites from which he or she purchases tickets. The scope of options is limited only by system programming and a user's summarized WEB services. For example, if a user has only one summarized travel page then a recommendation cannot be performed unless the service keeps a database of WEB pages from which information may be tapped and offered to a user through advertisement.
Once a user has completed a recommendation query in step 273, profile information is extracted from a user's data profile at step 274. Such information would include a list of URLs related to the request, any special rules a user has programmed into his or her profile, and other data as may be required. Assuming that a user has completed a recommendation query, and profile data supports continuing, a recommendation engine is activated in step 275. In this case, a user has not navigated to any WEB site in order to make a purchase. He or she has used the query method in order to get a recommendation before personal navigation. In some cases, a means such as a hyperlink may be provided with recommendation data to enable a user to make the recommended purchase without navigating to the recommended WEB- service site. In another embodiment of the present invention, a user may by-pass the query process described in steps 271, 273 and 274. That is, he may navigate through portal interface 233 (Fig. 11) to one of his or her summarized WEB services and initiate a purchase process by activating a hot button (purchase now link) contained in one of the visited WEB pages in step 272. In this case, a recommendation engine such as engine 225 of Fig. 12 is automatically activated by virtue of a monitoring process at step 275. Such a monitoring process may be activated either from a user's WEB browser, or from portal interface 233 as previously described. Such a monitoring process recognizes a user's mouse click on a purchase link and incoφorates URL, item identification, pricing, and any other information associated with the activated hot button. Click monitoring technology is known in the art and practiced with such as download-assist programs designed to speed up or aid a user in completing a download. In the case of downloading, the software is adapted to recognize a download now link. In the case of this example, the plug-in would be written to recognize a purchase link. It is noted herein that step 275 represents recommendation engine activation in both of the circumstances described above. Step 275 is illustrated as such for convenience in drawing only.
At step 277, recommendation engine 225 checks a database holding aggregated data such as in repository 227 of Fig. 11. Engine 225 looks for data that matches or is related to query and profile information in the case of a query method. In the case of a hot-button method, engine 225 looks for data including URLs that relate to information (data) about the URL and hot-button parameters describing the purchase item and price (if included).
If a user has all URLs of a WEB service summarized, then aggregated data will hold matching information to the specific URL that is active, as well as other data belonging to related WEB services that are also summarized. It is important to note here that all data including profile, identification, summary data, and so on is centralized and maintained by the recommendation service on behalf of all subscribers. However, it may be that some data has not been updated to "current status" or is missing for one reason or another. In a case such as this navigation for current data is required. Moreover, many types of data that may be considered for recommendation processing is updated continuously making navigation preferable by default in many cases.
At step 279, recommendation engine 225 decides if navigation will be required based in part on data found in aggregation, nature of recommendation, user directive, and other possible factors. If navigation is not required, then data is acquired from such as repository 227 to complete an intelligent recommendation process in step 285. At step 287, the data is processed as described in Fig. 12 regarding processing layer 243 and associated modules. During this process, user specified rules that have been pre-programmed may apply. If no such rules have been added then enteφrise rules and limitations apply. At step 289, raw result data is used to generate an intelligent recommendation report according to user-selected platform, media and delivery method (application) as described in Fig. 12 regarding report generation layer 245 and associated modules. A completed report is returned to interface 233 where it may be accessed by a requesting user or delivered to a requesting user in step 291.
In some cases, data in aggregation will be sufficiently current for producing an intelligent recommendation. However, navigation may be required in many cases. If it is determined at step 279 that navigation is required due to insufficient or non- current data, then agents (bots) are dispatched over the Internet to each required site to obtain data needed to complete an intelligent recommendation. At step 283, such data is returned to recommendation engine 225 for processing by such as layer 243 (Fig. 12) and associated modules. At step 287 collected data is processed for raw results as described above. Steps 289 and steps 291 cover report generation and delivery to an interface such as interface 233 (Fig. 11) as described above. It will be apparent to one with skill in the art that the process steps described above may be altered somewhat in order and number without departing from the spirit and scope of the present invention. For example, step 273 may resolve to step 275 bypassing step 274. Step 274 may be integrated with step 277. The inventor intends that the process flow diagram of Fig. 13 is only exemplary of two such possible process flows that explain the query method of obtaining a recommendation, and the automatic method of obtaining a recommendation.
It will also be apparent to one with skill in the art that both methods described in the flow diagram presented herein may be programmed to execute in combination if so directed by a user. For example, a query method may be preferred for an initial recommendation about where to purchase an item. An automatic recommendation about the best way to pay for the item may be generated when a user activates a hot button to purchase the item.
In one embodiment of the present invention, statistical profiles reflecting a user's recommendation history are kept by the recommendation service of the present invention. Such profiles may be used to generate still further recommendations to users. Such system-generated recommendations may advise a user to drop a particular WEB service based on prolonged inactivity and may even suggest a more competitive service to replace it with. In some cases, new WEB services may be introduced to a user who demonstrates a recommendation history that logically supports their introduction. For example, if a user exhibits a recommendation history of repeated stock purchasing through several separate brokerages, then a new brokerage may be introduced that culminates the user's stock choices offered by two or more of the original brokerages. In this way, a user may streamline services and possibly save money in commissions.

Claims

What is claimed is:
1. An Internet portal system for providing recommendations to subscribers of the portal, comprising: a data gathering system operating on the portal, gathering data from multiple
Internet sites associated with the subscriber; a tracking system monitoring the subscriber's on-line activity; and a recommendation engine for transmitting recommendations to the subscriber; characterized in that the portal system monitors the subscriber's on-line activity, and transmits recommendations to the subscriber based on the subscriber's on-line activity and on subscriber information stored in the data repository.
2. The system of claim 1 wherein the recommendation engine prepares and transmits recommendations in both text and graphic formats.
3. The system of claim 1 wherein data relied upon in preparing a recommendation is derived entirely from the data repository.
4. The system of claim 1 wherein at least a portion of the data relied upon in preparing a recommendation is retrieved at least in part from Internet sites associated with the subscriber.
5. The system of claim 1 wherein a recommendation destination is specified in a subscriber's profile stored in the data repository.
6. The system of claim 1 wherein recommendations are made on one or more of banking, investment, travel, or on-line purchasing activities.
7. A method of supporting a subscriber to a portal system during on-line activity, comprising steps of:
(a) tracking the subscriber's on-line activity by the portal system; and (b) preparing and transmitting activity recommendations by a recommendation engine to the subscriber, based on the subscriber's on-line activity and upon subscriber information stored in a data repository associated with the portal system.
8. The method of claim 7 wherein, in step (b), the recommendation engine prepares and transmits reports in both text and graphic formats.
9. The method of claim 7 wherein data relied upon in preparing a recommendation is derived entirely from the data repository.
10. The method of claim 7 wherein at least a portion of the data relied upon in preparing a recommendation is retrieved at least in part from Internet sites associated with the subscriber.
11. The method of claim 7 wherein a recommendation destination is specified in a subscriber's profile stored in the data repository.
12. The method of claim 7 wherein recommendations are made on one or more of banking, investment, travel, or on-line purchasing activities.
EP00978654A 1999-12-14 2000-11-13 Method and apparatus for providing intelligent recommendations to users regarding online activities based on knowledge of data from a user's multiple web-services Withdrawn EP1242948A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US46151599A 1999-12-14 1999-12-14
US461515 1999-12-14
PCT/US2000/031307 WO2001045005A1 (en) 1999-12-14 2000-11-13 Method and apparatus for providing intelligent recommendations to users regarding online activities based on knowledge of data from a user's multiple web-services

Publications (1)

Publication Number Publication Date
EP1242948A1 true EP1242948A1 (en) 2002-09-25

Family

ID=23832869

Family Applications (1)

Application Number Title Priority Date Filing Date
EP00978654A Withdrawn EP1242948A1 (en) 1999-12-14 2000-11-13 Method and apparatus for providing intelligent recommendations to users regarding online activities based on knowledge of data from a user's multiple web-services

Country Status (4)

Country Link
EP (1) EP1242948A1 (en)
JP (1) JP2004501411A (en)
AU (1) AU1609401A (en)
WO (1) WO2001045005A1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7177916B2 (en) * 2003-06-26 2007-02-13 Fmr Corp. Methods and systems for selecting and managing network-accessible accounts
US9432472B2 (en) 2014-02-24 2016-08-30 Microsoft Technology Licensing, Llc Accelerated training of personal daemons
US9473944B2 (en) 2014-02-24 2016-10-18 Microsoft Technology Licensing, Llc Local personal daemon
US9218497B2 (en) 2014-02-24 2015-12-22 Microsoft Technology Licensing, Llc Incentive-based app execution
US9560055B2 (en) 2014-04-30 2017-01-31 Microsoft Technology Licensing, Llc Client-side integration framework of services
US10528228B2 (en) 2017-06-21 2020-01-07 Microsoft Technology Licensing, Llc Interaction with notifications across devices with a digital assistant

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5890152A (en) * 1996-09-09 1999-03-30 Seymour Alvin Rapaport Personal feedback browser for obtaining media files
US6327574B1 (en) * 1998-07-07 2001-12-04 Encirq Corporation Hierarchical models of consumer attributes for targeting content in a privacy-preserving manner
US6334127B1 (en) * 1998-07-17 2001-12-25 Net Perceptions, Inc. System, method and article of manufacture for making serendipity-weighted recommendations to a user
US6321221B1 (en) * 1998-07-17 2001-11-20 Net Perceptions, Inc. System, method and article of manufacture for increasing the user value of recommendations
JP2002539531A (en) * 1999-03-05 2002-11-19 アクセンチュア・リミテッド・ライアビリティ・パートナーシップ Systems, methods, and articles of manufacture for advanced mobile communications
US6356905B1 (en) * 1999-03-05 2002-03-12 Accenture Llp System, method and article of manufacture for mobile communication utilizing an interface support framework
JP2002543510A (en) * 1999-05-03 2002-12-17 ストリートスペイス・インコーポレーテッド Method and system for providing personalized online services and advertisements in public space

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO0145005A1 *

Also Published As

Publication number Publication date
WO2001045005A1 (en) 2001-06-21
AU1609401A (en) 2001-06-25
JP2004501411A (en) 2004-01-15

Similar Documents

Publication Publication Date Title
US7178096B2 (en) Method and apparatus for providing calculated and solution-oriented personalized summary-reports to a user through a single user-interface
US7930411B1 (en) Network-based verification and fraud-prevention system
US7672879B1 (en) Interactive activity interface for managing personal data and performing transactions over a data packet network
US7991673B2 (en) Portfolio synchronizing between different interfaces
US9116763B2 (en) Interactive transaction center interface
US7734541B2 (en) Interactive funds transfer interface
US8224747B2 (en) Interactive funds transfer interface
US20070130347A1 (en) Method and Apparatus for Providing Calculated and Solution-Oriented Personalized Summary-Reports to a User through a Single User-Interface
US8560450B2 (en) Interactive bill payment center
US20060136595A1 (en) Network-based verification and fraud-prevention system
US20010051907A1 (en) Interactive financial portfolio tracking interface
US20010023414A1 (en) Interactive calculation and presentation of financial data results through a single interface on a data-packet-network
US20100169168A1 (en) Categorization of Summarized Information
WO2001045005A1 (en) Method and apparatus for providing intelligent recommendations to users regarding online activities based on knowledge of data from a user's multiple web-services

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20020624

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR

AX Request for extension of the european patent

Free format text: AL;LT;LV;MK;RO;SI

RIN1 Information on inventor provided before grant (corrected)

Inventor name: RAJAN, SREERANGA

Inventor name: WU, JONATHAN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN WITHDRAWN

18W Application withdrawn

Effective date: 20030304