System and method for personalizing and applying a post processing tool system6691104Abstract A system and method for associating a personalized application tool and/or service in response to data supplied by any number of search requests is disclosed. The present invention in some preferred embodiments integrates a Session Manager (0601), Registration Manager (0602), Result Analyzer (0603) Tool/Service Integrator (0604), Request Server (0605) in conjunction with a User Registration Profile Database (0606) and a DTD Search Engine Schema (0607). Several preferred embodiments of the present invention are configured to process user search requests (0611) comprising Internet search queries (0612) that are subsequently processed by an Internet Search Engine (0613) under control of a Session Manger (0601). The focus of the present invention is to automate the post-processing of search results by automatically applying a user-specified data analysis tool to the search results, thus improving the overall efficiency of the searching and data analysis functions by a given user. Claims What is claimed is: Description PARTIAL WAIVER OF COPYRIGHT
Tool: Java Compiler (Friendly name)
Filename: javac.exe
Local Path: C:.backslash.jdk1.2
Arguments: 1. [options]
2. URL
The information is stored on the server side in a database and associated with the user's profile. Once registered, the user is able to perform a search. In this example the user is searching for Java source code, which implements a heap sort algorithm. He/She fills out the jCentral search form and issue a query to the jCentral search engine. Note that the present invention could use a "Cookie" mechanism to store the tool information also on the client machine and retrieve the data as part of the search request. This is just another way of implementing the user profile. The present invention receives the search request and queries the database for the user profile (or extract the cookie data from the search request). It then forwards the search request to the actual search engine. Before sending back the result page it inserts the HTML markup for the user defined tool and/or service. As a result the search results contain a choice selection GUI where the user can activate a personalized tool and/or service. FIG. 5 illustrates an exemplary jCentral result page that was generated from the present invention. Note that the "Java compiler" choice box was generated from the present invention based on the registered user profile of the user. Exemplary Advantages Overall the present invention can in some exemplary embodiments provide one or more of the following advantages over the prior art: (1) By offering the user the possibility to link personalized tools and/or services with the search results of a search query, the user leverages convenience and a variety of other general benefits. Instead of downloading a requested document, saving it to a local hard drive, downloading and setting up a type specific software application, and then finally starting the application and provide the saved document as an input, the user registers a personalized application tool just once. After the registration the present invention adds the corresponding HTML markup to each search result item in the result set. This markup is interpreted by the user's web browser when activated by the user and invokes the user's tool and/or service with the correct syntax and the specific search result item as an input for further processing. This post-processing is fully automatic on the client side by the user's tool and/or service. (2) Instead of using tools and/or services provided from a service provider, such as an Internet search engine, the user is able to integrate personalized tools and/or services, and customize these as desired. The present invention is based on user profiles that provide a very flexible and customizable way to manipulate and process the search results. The present invention has wide application in the application of web-based services, and since these applications will become more dominant in the future, the present invention may provide for additional benefits other than described above. One skilled in the art will realize that these advantages may be present in some embodiments and not in others, as well as noting that other advantages may exist in the present invention that are not specifically listed above. BRIEF DESCRIPTION OF THE DRAWINGS The subject matter which is regarded as the invention is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other objects, features, and advantages of the invention will be apparent from the following detailed description taken in conjunction with the accompanying drawings. FIG. 1 illustrates a prior art system block diagram of how conventional application tool associations are performed within the Microsoft.RTM. Windows.TM. operating environment. FIG. 2 illustrates a prior art modal dialog box used within the Microsoft.RTM. Windows.TM. operating environment to define a filename extension to application activation link. FIG. 3 illustrates a prior art modal dialog box used within the Microsoft.RTM. Windows.TM. operating environment to define an activation function associated with triggering a file by filename extension. FIG. 4 illustrates a prior art Internet search results page. FIG. 5 illustrates an exemplary Internet search results page generated by the present invention. FIG. 6 illustrates a system block data flow diagram of an exemplary embodiment of the present invention. FIG. 7 illustrates a process flowchart of an exemplary embodiment of the present invention. DETAILED DESCRIPTION OF AN EMBODIMENT However, it should be understood that these embodiments are only examples of the many advantageous uses of the innovative teachings herein. In general, statements made in the specification of the present application do not necessarily limit any of the various claimed inventions. Moreover, some statements may apply to some inventive features but not to others. In general, unless otherwise indicated, singular elements may be in the plural and visa versa with no loss of generality. Definitions Throughout the discussion in this document the following definitions will be utilized. System Blocks/Procedural Steps Not Limitive--The present invention may be aptly described in terms of exemplary system block diagrams and procedural flowcharts. While these items are sufficient to instruct one of ordinary skill in the art the teachings of the present invention, they should not be strictly construed as limiting the scope of the present invention. One skilled in the art will be aware that system block diagrams may be combined and rearranged with no loss of generality, and procedural steps may be added or subtracted, and rearranged in order to achieve the same effect with no loss of teaching generality. Thus, it should be understood that the present invention as depicted in the attached exemplary system block diagrams and procedural flowcharts is for teaching purposes only and may be reworked by one skilled in the art depending on the intended target application. Personal Computer Not Limitive--Throughout the discussion herein there will be examples provided that utilize personal computer (PC) technologies to illustrate the teachings of the present invention. The term `personal computer` should be given a broad meaning in this regard, as in general any computing device may be utilized to implement the teachings of the present invention, and the scope of the invention is not limited just to personal computer applications. Additionally, while the present invention may be implemented to advantage using a variety of Microsoft.RTM. operating systems (including a variety of Windows.TM. variants), nothing should be construed to limit the scope of the invention to these particular software components. In particular, the system and method as taught herein may be widely implemented in a variety of systems, some of which may incorporate a graphical user interface. Internet/Intranet Not Limitive--Throughout the discussion herein the terms Internet and Intranet will be used generally to denote any network communication system or environment. Generally the term Intranet will denote communications that are local to a given system or user, and Internet will describe communications in a more distant local. One skilled in the art will recognize that these terms are arbitrary within the contexts of modern communication networks and in no way limitive of the scope of the present invention. Post-Processing Not Limitive--While the present invention has special application to situations in which search results data is to be post-processed by an application tool and/or service, nothing in the scope of the teachings of the present invention should be interpreted to limit the scope of application to this field. One skilled in the art will quickly recognize the applicability of the present invention to other data processing applications, including but limited to pre-processing of search results and filtering of search queries prior to or during the searching process. Web Browser Not Limitive--Throughout the discussion herein the present invention will be discussed in terms of applications involving a web browser. However, the scope of the present invention should not be limited to this specific application. Furthermore, while the present invention may incorporate means for activating the application tool and/or service, this function may be incorporated in some system components not a part of the invention as implemented. Furthermore, the application association need not result in a mandatory invocation of the target handling tool and/or service for the teachings of the present invention to apply. Exemplary System Architecture (0600) Referring to FIG. 6, the exemplary system (0600) comprises of the following components: (1) Session Manager (0601); (2) Registration Manager (0602); (3) Result Analyzer (0603); (4) Tool/Service Integrator (0604); (5) Request Server (0605); (6) User Registration Profile Database (0606); and DTD Schema for Search Engine (0607). These system elements will now be discussed in detail. Session Manager (0601) First, the Session Manager (0601) receives a request from the user, typically in the form of a query (0612) generated from some user interface (0611). The Session Manager (0601) coordinates user and session management. The main task of the Session Manager (0601) is to analyze the user request and to determine whether the request represents a user query or a tool/service registration for a specific URL. In case the request is a search request, the Session Manager (0601) forwards the request to the Search Engine (0613). Otherwise, it will forward the tool/service registration process to the Registration Manager (0602). Any status and error messages will be forwarded to the Request Server (0605) for dispatch to the User (0611). Registration Manager (0602) The Registration Manager (0602) receives a registration request from the Session Manager (0601) and manages the users of the Search Engine (0613), stores and retrieves user profiles, etc. In case of a registration for a new tool and/or service based upon a registration request, the Registration Manager (0602) adds the provided information about a new tool/service (e.g., Tool URL, Name, Parameters, etc.) to the User Registration Profile Database (0606) and associates it with the user's profile. The Result Analyzer (0603). The Result Analyzer (0603) receives search results from the Search Engine (0613) based upon a user's search request. Before it does any work it performs a lookup using the session/user ID of the user who issued and the search query to check whether there are any registered tools and/or services for this user. If not, the Result Analyzer (0603) simply forwards the search result page directly to the Request Server (0605). Otherwise Result Analyzer (0603) analyzes the search result page and extracts the URLs of the found external resources. It does this by applying the knowledge from the DTD Schema (0607) that provides information of how to extract key information and use the search result page. The DTD is the Document Type Definitions of the W3C XML 1.0 standard which provides a way to define the structure of an XML document through a document type definition. DTDs have widespread support in the industry and in the XML applications that are currently available. In simple terms, we use a DTD to define the structure of the XML file by using special characters that indicate pattern for these elements. For a more detailed description we refer to current literature about XML. The extracted URLs will be marked so that the Tool/Service Integrator (0604) can rapidly identify these items. As an example this markup might take the following form: <BEGIN_URL>http://www.ibm.com/e-business/</BEGIN_URL> When the URLs in the search results page are identified, the modified result page will be routed to the Tool/Service Integrator (0604) along with the Session/User ID. Tool/Service Integrator (0604) At this point the Tool/Service Integrator (0604) performs a lookup based on the session/user ID in the User Registration Profile Database (0606) to check what tools are registered, and which type of URL they are capable of processing. It then assigns all available tools matching a specific URL type to each result URL. This step is accomplished by inserting HTML markup tags that the user may later use to invoke the registered post-processing tool. Note that the Tool/Service Integrator (0604) erases the previous markup done by the Result Analyzer (0603). This markup is no longer required, and was just temporarily used by the Tool/Service Integrator (0604) to quickly identify the URLs in the search result page. When the Tool/Service Integrator (0604) has completed inserting the necessary markup in the result page it will forward the newly created result page to the Request Server (0605). Request Server (0605) The Request Server (0605) returns all the received data back to the user. It adds some header information (based on the HTTP protocol spec), integrates some style sheets for representation if necessary so that the user receives a proper search result that may be displayed in a standard search browser. Please note that with current browser technology, the Request Server (0605) also needs to send some binary code, such as a Java applet or ActiveX control, integrated in the result page back to the user. This component is needed on the client side (browser), to activate and run the user's registered program. Otherwise, the browser would have no access to the user's local machine and file system. For security reasons this binary code can be digitally signed by the provider/implementer of the present invention. These are implementation issues that while not discussed in detail here, are well within the scope of one skilled in the software arts to implement. Tool/Service Hosting It should be noted that the tools and/or services mentioned herein are not necessarily processed and/or hosted by the present invention. This is generally the responsibility of the user. The present invention typically provides only the registration mechanism of these tools and/or services and the corresponding user profile management, along with an optional means of activating the tool/service for a given search request. During a search query the present invention associates URLs of a user with personalized tools and/or services that have been registered by this user. Exemplary Application Tool Association Method An exemplary general present invention method may best be understood by referencing the system diagrams of FIG. 6 and the exemplary flowchart of FIG. 7. These diagrams will now be discussed in detail. Referencing FIG. 7, the exemplary Application Tool Association method (0700) involves the following steps: (1) Obtaining an input request (typically from a user) (0701) and submitting the search request to a session manager. (2) Determining if the user request is a search query (0702), and if so, submitting the request to a Search Engine (0703). (3) Otherwise, submitting the user request to a Registration Manager (0704). (4) Optionally processing errors from the Search Engine and Registration Manager with a Request Server (0705). (5) Optionally storing and/or retrieving user profiles (0706) in a User Registration Profile Database (0707). (6) Determining if a new tool and/or service is to be registered (0708), and if so, adding new tool/service information (0709) to the User Registration Profile Database (0707), then exiting the tool/service update (0710). (7) Otherwise, receiving Search Results from the Search Engine (0711). (8) Looking up (using the Session/User ID as an indexing key) registered tools (0712) in the User Registration Profile Database (0707). (9) Determining if there are registered tools (0713) in the User Registration Profile Database (0707), and if not, forwarding Search Results to a Request Server for display (0714) and exiting the tool mapping process (0715). (10) Otherwise, analyzing the Search Results page (0716) using a DTD Schema (0717) and Extracting URLs of the found resources. (11) Marking the Extracted URLs (0718). (12) Looking up applicable tools/services for URLs and assigning all available tools/services to the resulting URL (0719). (13) Formatting the Result Page and sending the result to the user (0720) via a browser or other means that may optionally be used to activate the applications associated with the search results by the Registration Manager. (14) Exiting the tool mapping process (0721). One skilled in the art will recognize that these steps may be rearranged and/or augmented with no loss of generality in the teachings of the present invention. Computer Software As would be known by one skilled in the art and as indicated in FIGS. 6-7, the system and method described herein and generally illustrated in FIGS. 6-7 may be reduced to computer instruction codes and embodied on a computer readable storage means. This may take the form of a wide variety of storage media well known in the art and/or contemplated for future use. Thus, the present invention specifically anticipates the incorporation of the system and methods discussed herein in the form of tangible computer software products. Furthermore, while not limiting the scope of the present invention, the present invention specifically anticipates that one or more components of the present invention may be implemented using the Microsoft.RTM. Windows.TM. operating environment in all its variations or its equivalent commercial embodiments, including but not limited to any system incorporating a graphical user interface. Conclusion A Application Tool Association system and method have been disclosed wherein information retrieved from a variety of search engine results may be automatically processed using tools selected by a user and maintained via references within a user registration profile database. As compared to the prior art, the present invention automates what was once a manual task, that of selecting and activating data analysis tools that operate on data sets obtained from conventional search engines. Although a specific embodiment of the invention has been disclosed, it will be understood by those having skill in the art that changes can be made to this specific embodiment without departing from the spirit and scope of the invention. The scope of the invention is not to be restricted, therefore, to the specific embodiment, and it is intended that the appended claims cover any and all such applications, modifications, and embodiments within the scope of the present invention.
|
Same subclass Same class Consider this |
||||||||||
