This disclosure relates to an automated system and method for maintaining a list of personal contacts.
Many people, especially in professional life, have extensive lists of contacts (that is, people with whom they maintain contact approximately once per year). Information on a person's contact list is always subject to going out of date, as various changes (e.g. address, employment, etc.) occur in the lives of those on the list. A person may use a manual search on the world wide web in order to keep up with changes in his contacts' lives. However, this can be a very time-consuming process and often results in inaccuracies.
The present disclosure provides an automated system and method for periodically searching information relating to a person's contact list and updating an informational database.
In accordance with a first aspect of the disclosure, a method is provided which includes extracting a target name from a contact list of a user; searching for data related to the target name; and analyzing the data in accordance with categories of information in the contact list. A determination is then made whether a corresponding item in the contact list requires modification. The data is stored on a database, indexed with the target name. The method is performed periodically and automatically. The analysis of the data may include determining whether the data is relevant to a category of information on a predefined alert list. An alert message may be displayed to the user regarding an item of data, if that data is determined to be relevant to a category of information on the alert list.
In accordance with another aspect of the disclosure, a system includes a contact management engine configured to perform the method described above.
In accordance with a further aspect of the disclosure, a computer-readable medium is provided having computer-readable instructions for managing a contact list tangibly stored thereon; the computer-readable instructions, when executed by a computer, perform the method described above.
Additional features of the disclosure will be described hereinafter that form the subject of the claims of the disclosure. Those skilled in the art should appreciate that they can readily use the disclosed embodiments as a basis for designing or modifying other structures for carrying out the same purposes of the present disclosure and that such other structures do not depart from the spirit and scope of the disclosure in its broadest form.
A system including a contact management engine in accordance with the present disclosure is shown schematically in
A process 200 by which contact management engine 10 searches, retrieves, and analyzes contact information is shown schematically in
The engine 10 then collects the results of a query and filters them (step 205). The query results may be filtered in accordance with a set of rules regarding a name of a person, a city, or a company. Filtering the query results is particularly important if the name of the contact is a relatively common name, which generally yields a large number of irrelevant results. In an embodiment, this is done by assigning a “likelihood” score to each search result; a match between the individual's name and his last known city, employer, etc. causes a predetermined increase in the likelihood score. Search results with a likelihood score below a certain threshold are then discarded.
After the search results are filtered, the engine analyzes the search results (step 206) by looking for matches between the search results and information that is already on the contact list, to determine what information needs to be updated. The types of information to be analyzed will depend on categories of information already present in the contact list. For example, the contact list will typically have an employment location for every contact, and the engine 10 will accordingly examine each search result for new information regarding the contact's work address. If the contact list also has a category “Publications by this contact” or the like, the engine 10 will then examine each search result for new information regarding articles, books, etc. published by the contact.
The user may set up an alert list 27 with items that trigger an alert directed to the user if a particular type of search result is found. For example, the alert list could have an item directing the engine 10 to generate an alert to the user if a news article is found relating to a change in the contact's employment status. Accordingly, if the search results have a match with an item in the alert list (step 207), then an alert will be generated (step 208) to bring that news article to the attention of the user.
The engine 10 stores the results of the search in the informational database 3, indexed with the contact's name (step 209), and optionally updates the contact list without any intervention by the user. If the engine does not update the contact list automatically, the engine may cause a reminder to be displayed, informing the user that she should review the new results added to database 3 and update the contact list accordingly.
The search results may be advantageously stored in the database 3 as a formatted text result. These results may also include links to the original news articles found by the engine 10.
The process 200 is repeated periodically (step 210), preferably monthly but not more often than every two weeks. It should be noted that the process 200 is performed without being initiated by the user, and generally is not visible to the user unless an alert is displayed or a reminder of the update is desired.
Besides storing the search results in the database 3, the engine 10 may also prepare the results in a list to be displayed, such as shown in
An “engine” as referred to herein is meant to describe a software, hardware or firmware (or combinations thereof) system, process or functionality that performs or facilitates the processes, features and/or functions described herein (with or without human interaction or augmentation). It will be appreciated that the contact management engine 10 may be resident on the computing device of the user, or may be resident on a server accessible by the user. For the purposes of this disclosure a server is software, hardware, or firmware (or combinations thereof) capable of performing the receiving, processing and serving steps in the above-described method. A server may be a single server or a group of servers acting together. The server may or may not be embodied as one system or as multiple parts of a distributed system, or as sub-systems of one or the other engines or systems described herein. A number of program modules and data files may be stored on a computer readable medium of the server They may include an operating system suitable for controlling the operation of a networked server computer, such as the WINDOWS XP or WINDOWS 2000 operating systems from MICROSOFT CORPORATION.
For the purposes of this disclosure a computer readable medium stores computer data in machine readable form. By way of example, and not limitation, a computer readable medium may comprise computer storage media and communication media. Computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid state memory technology, CD-ROM, DVD, or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the computer.
In an embodiment the network 20 may be an intranet (a private version of the Internet). An intranet is a computer network allowing data transfer between computing devices on the network. Such a network may comprise personal computers, mainframes, servers, network-enabled hard drives, and any other computing device capable of connecting to other computing devices via an intranet. An intranet uses the same Internet protocol suit as the Internet. Two of the most important elements in the suit are the transmission control protocol (TCP) and the Internet protocol (IP).
For the purposes of this disclosure a computing device, including a computing device of the user maintaining his contact list, includes a processor and memory for storing and executing program code, data and software. Computing devices may be provided with operating systems that allow the execution of software applications in order to manipulate data. Personal computers, PDAs, wireless devices, cell phones, internet appliances, media players, home theater systems, and media centers are several non-limiting examples of computing devices.
Those skilled in the art will recognize that the methods and systems of the present disclosure may be implemented in many manners and as such are not to be limited by the foregoing exemplary embodiments and examples. In other words, functional elements being performed by single or multiple components, in various combinations of hardware and software or firmware, and individual functions, may be distributed among software applications at either the client or server or both. In this regard, any number of the features of the different embodiments described herein may be combined into single or multiple embodiments, and alternate embodiments having fewer than, or more than, all of the features described herein are possible. Functionality may also be, in whole or in part, distributed among multiple components, in manners now known or to become known. Thus, myriad software/hardware/firmware combinations are possible in achieving the functions, features, interfaces and preferences described herein. Moreover, the scope of the present disclosure covers conventionally known manners for carrying out the described features and functions and interfaces, as well as those variations and modifications that may be made to the hardware or software or firmware components described herein as would be understood by those skilled in the art now and hereafter.
While various embodiments have been described for purposes of this disclosure, such embodiments should not be deemed to limit the teaching of this disclosure to those embodiments. Various changes and modifications may be made to the elements and operations described above to obtain a result that remains within the scope of the systems and processes described in this disclosure. For example, the search results and/or alerts described herein may be formatted and/or displayed in a variety of ways to convey the desired information.
Numerous other changes may be made that will readily suggest themselves to those skilled in the art and which are encompassed in the spirit of the invention disclosed and as defined in the appended claims.