Abstract:
A method and apparatus for user selectable content linking in internet applications. The usability of downloaded content may be modified for specific users by allowing a user to select the content in which and how their content data is linked. Particular text may be selected, and when content is downloaded from an origin service including the particular text, the text may be automatically linked to a service or database. The service or database is independent of the origin service and may be provided by a third party.

Description:
FIELD OF THE INVENTION 
     The present invention relates to information presentation and retrieval in wireless and internet applications, and more particularly with a method and apparatus for providing user selectable automatic content linking in internet applications. 
     BACKGROUND OF THE INVENTION 
     A user of the Internet typically accesses and uses the Internet by establishing a network connection through the services of an Internet Service Provider (ISP). An ISP provides computer users with the ability to establish a connection to a remote computer owned or managed by the ISP. This remote computer then makes services available to the users Internet access device. These services include the retrieval and display of WEB pages and electronic documents on the users Internet access device. Electronic documents on the World-Wide-Web are typically stored in files that include text, hypertext, references to graphics, animation, audio, video and other electronic data. The structure of hypertext documents is defined by document markup languages such as Standard Generalized Markup Language (“SGML”), Hyper Text Markup Language (“HTML”), Compact Hyper Text Markup Language, eXtensible Markup Language (“XML”), Virtual Reality Markup Language (“VRML”), Voice eXtensible Markup Language, (“VoxML”) and others. 
     As is known in the art, a hypertext document includes markup codes called “tags”. Tags define the structure of a hypertext document and typically include at least a “begin” tag name enclosed by a delimiter and, in many instances, an “end” tag name enclosed by a delimiter. For example, the markup tag “&lt;H1&gt;” signifies the beginning of a Hyper Text Markup Language first level header, and the markup tag “&lt;/H1&gt;” signifies the end of a Hyper Text Markup Language first level header. However, the Hyper Text Markup Language image tag “&lt;IMG . . . &gt;” ends with the closing tag delimiter “&gt;” and does not use an end tag in the format “&lt;/IMG&gt;”. Other markup languages have similar tags used to create hypertext documents. 
     Markup languages allow references to additional content besides text including graphics, animation, audio, video and other electronic data. For example, the Hyper Text Markup Language allows use of graphical images in a hypertext document with an image “&lt;IMG&gt;” tag. An exemplary Hyper Text Markup Language image tab &lt;IMG SRC=“logo.jpg”&gt; allows a graphical logo image stored in a Joint Pictures Expert Group file “logo.jpg”, to be displayed. 
     Hypertext documents from the World-Wide-Web are typically displayed for a user with a software application called a “browser” such as Internet Explorer, by Microsoft Corporation of Redmond Wash., Netscape Navigator, by Netscape Communications of Mountain View, Calif., and others. A browser typically parses a hypertext document and converts hypertext, including markup tags, into a visual display of text, graphics, animation, audio, video, etc., for display on a device such as a personal computer display. 
     Additional content is retrieved in a hypertext document from other sources using “hyperlink” references within hypertext documents. For example, an exemplary Hyper Text Markup Language hyperlink tag “&lt;A HREF=“http://www.spyglass.com/logo.mov”&gt;” provides a hyperlink to a movie file “logo.mov”. When a user selects the link (e.g., with a mouse click) in a hypertext document, the movie file “logo.mov” is located using a Uniform Resource Locator (“URL”) from the location “www.spyglass.com”. Hyper Text Transfer Protocol (e.g., “HTTP”) is used as the transfer protocol. 
     Transfer protocols such as Hyper Text Transfer Protocol (“HTTP”), File Transfer Protocol (“FTP”), Gopher, and others provide a means for transferring hypertext documents or additional content from other locations on the World-Wide-Web. Hyper Text Transfer Protocol is one primary protocol used to transfer information on the World-Wide-Web. Hyper Text Transfer Protocol is a protocol that allows users to connect to a server, make a hypertext request, get a response, and then disconnect from the server. 
     File Transfer protocol is a protocol that provides access to files on remote systems. Using File Transfer Protocol, a user logs onto a system, searches a directory structure and downloads or uploads a file. Gopher is a protocol similar to File Transfer Protocol. Gopher provides a series of menus linked to files containing actual hypertext. 
     Wireless devices, such as wireless phones, now have data capabilities in addition to voice capabilities. The data capabilities allow a wireless device to receive an electronic document from the World-Wide-Web. To optimize performance, and to provide an electronic document in a format useable on wireless devices, a Wireless Application Protocol (“WAP”) is typically used. The Wireless Application Protocol includes several protocols and standards designed to provide wireless devices with access to an electronic document and was developed as an alternative to other markup languages and protocols developed for the World-Wide-Web. More information on the Wireless Application Protocol can be found on the World-Wide-Web at the URL “http://www.wapforum.org”. 
     One component of the Wireless Application Protocol is a Wireless Markup Language (“WML”), which includes markup tags, and provides control over formatting and layout of an electronic document. The Wireless Markup Language is often more appropriate to use for wireless devices such as wireless phones than other markup languages such as Hyper Text markup Language. 
     Wireless Markup Language data is structured as a collection of “cards”. A single collection of cards is referred to as a “deck”. Each card includes structured content and navigation specifications. Logically, a user of a wireless device navigates through a series of cards, reviews the content of each card, enters requested information, selects options, and navigates to and from other cards in the deck. 
     Current Internet applications that provide information in HTML or WML form do not provide uniform user preferences as to linking of information. Users do not have a choice of options to force usability over different kinds of applications and extend the information in a way specific to the user. In some instances, excess user interaction is required in order to obtain information or obtain a service related to text in an HTML or WML document. For example, in order to translate a word in a document, a separate application must usually be involved. 
     SUMMARY OF THE INVENTION 
     The present invention provides a method and apparatus for user selectable automatic contact linking in Internet applications. In the method and apparatus, the usability of downloaded content may be modified for specific users by allowing a user to select and specify the context in which and how their content data is linked. Particular text may be selected and when content is downloaded from an origin service, including the particular, text, the text may be automatically linked to a service or database. The service or database may be independent of the origin service and may be provided by a third party. 
     In an embodiment of the invention, selected content may be linked inline or externally linked to an information retrieval database. For example, users may specify that all text including a company name or stock symbol be automatically externally linked to that company&#39;s stock information so that the user may click on the text and retrieve the information. Alternatively, the text, including a particular company name or stock symbol may be automatically linked inline to that company&#39;s stock information so that the information is displayed along with the text to the user. As another example, all proper names may be inline linked or externally linked to a telephone or address database. 
     In another embodiment of the invention, selected content may be linked to a service application. For example, a user may specify that each word of the text in a document be linked to a translation service to translate the document into a particular language. 
    
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         FIG. 1  is a client server model of portions of a system including a proxy server implementation of an embodiment of the invention; 
         FIG. 2  is a client server model of portions of a system including a Wireless Gateway implementation of an embodiment of the invention; 
         FIG. 3  is a client server made of portions of a system including a client based implementation of an embodiment of the invention; and 
         FIG. 4  is a flow diagram of process steps performed according to an embodiment of the invention. 
         FIGS. 5   a - 5   c  illustrate original, inline and externally linked content according to one embodiment of the invention; 
         FIGS. 6   a  and  6   b  illustrate original content and externally linked content according to an alternative embodiment of the invention; and 
         FIGS. 7   a  and  7   b  illustrate original content and externally linked content according to another alternative embodiment of the invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Referring now to  FIG. 1 , therein is a client server of portions of a system  100  including a proxy server implementation of an embodiment of the invention. System  100  includes proxy server  102 , client  104 , external database  106 , and origin application server  108 . Proxy server  102  includes request handler  118 , response handler  116 , rule engine  114 , user preference database  112  and context database  110 . Client  104  includes a browser function  120 .  FIG. 2  illustrates an embodiment of the invention in which the method and apparatus is implemented in proxy server  102 . 
     Referring now to  FIG. 4 , therein is a flow chart showing process steps performed in system  100  according to the embodiment of the invention. The process begins (step  400 ) at step  402  where a request  1  to obtain data is generated to Server  102  in client  104 . Client  104  may be a computer, such as a personal computer, that has client software installed as browser  120 , that generates a request  1  that allows a user to request access to an Internet URL address. The request  1  is received in request handler  118  of server  102 . Request handler  118  then sends a request  2  to the origin application service  108  that hosts the requested URL page at step  404 . Next, at step  406 , a response including a hyper text markup language (HTML) web page is returned to response handler  116  of server  102 . Next, at step  408 , response handler  116  determines if the user based preference linking of the embodiment is to be invoked to process the response including the retrieved HTML web page. In the process of the embodiment, after determining that the user based preference linking is to be involved at step  410 , response handler  116  passes the response  4  to rule engine  114 . Next, at step  412 , rule engine  114  functions according to the embodiment to modify the response by checking the HTML web page and adding linking content or modifying linking content according to preferences of the user. In step  414 , the rule engine  114  sends the modified data  7  to the response handler  116 . In step  416 , the response handler sends the modified data  8  to the browser  120 . If content linking is not needed (step  408 =NO), data  8  is sent to the requester in step  418 . The method ends in step  420 . 
     Rule engine  114  includes functionality that operates according to user defined preferences. Those preferences may be defined by a user, for example through use of a home page and password provided by the provider of the user based preference linking service. The user may enter data through the home page that is processed by server  102  to configure rule engine  114  functionality for the particular user. The user preferences and context in which rule engine  114  modifies an HTML web page may be stored in user preference database  112  and context database  110  and accessed via  5  and  6 , respectively. Alternatively, rule engine  114  could be configured by other methods, for example by the service provider itself. 
     The functionality of rule engine  114  may be defined, for example, to modify the response so that data retrieval or a service may be invoked for particular words or phrases included in the HTML web page of the response  3  sent from origin application service  108 . For example, names of a particular company or companies included in response  3  may be linked to financial data so that financial data is automatically displayed with the name in the modified HTML web page. Alternatively, a company name may be displayed with a hyper link, which allows the user to click on and display company data through the modified HTML web page. 
       FIGS. 5   a ,  5   b , and  5   c  illustrate original content, inline linked content and externally linked content, respectively, according to an embodiment of the invention. In  FIG. 5   a , the original content as it would appear in an HTML web page retrieved in request  3  from origin application server  108  is shown.  FIG. 5   b  shows the same content of  FIG. 5   a  as it would appear after the HTML web page is modified by rule engine  114  according to one embodiment of the invention. In  FIG. 5   b , inline financial content has been linked to the text “Nok” appearing in the original content.  FIG. 5   c  shows the original content of  FIG. 5   a  as it would appear after the HTML web page is modified by rule engine  114  according to another embodiment of the invention. In  FIG. 5   c , financial content has been externally linked to the text “Nok” appearing in the original content. 
       FIGS. 6   a  and  6   b  illustrate original content and externally linked content, respectively, according to an alternative embodiment of the invention.  FIG. 6   b  shows the original text “John Smith” externally linked to a user information page. The embodiment of  FIG. 6   b  may be most useful, for example for a company intranet page. 
       FIGS. 7   a  and  7   b  illustrate original content and externally linked content, respectively, according to another alternative embodiment of the invention.  FIG. 7   b  shows that all Finnish language text in the page has been externally linked to a translation database for translation into English. 
     Rule engine  114  may be configured to function according to user preferences using various programs and programming tools to modify and make decisions about how to modify the HTML web page. 
     Referring now to  FIG. 2 , therein is a client server model of portions of a system including a wireless gateway implementation of an embodiment of the invention. System  200  functions in a manner similar to system  100  of  FIG. 1  with the exception that the WAP client  204  is a wireless device with request  21  and response  28  being sent over the air interface, and rule engine  214  functions by working on a wireless markup language (WML) version of a web page that is obtained from origin application server  208 , included in response  23  processed in response handler  216 , and then sent  24  to rule engine  214  for processing. In the embodiment of  FIG. 2 , a modified version  27  of the WML web page is created in rule engine  214  and sent to client  204  as response  28 . The rule engine  214  is coupled to the user preferences database  212  and context database via  25  and  26 , respectively. 
     Referring now to  FIG. 3 , therein is a client server model of portions of a system including a client-based implementation of an embodiment of the invention. System  300  functions in a similar manner to the embodiment of  FIG. 2 , with the difference being that the functionality of response handler  216 , rule engine  214 , user preferences database  212  and content context database  210  are implemented in ha WAP client  304 . In  FIG. 3 , the contents of the user preferences database  312  and the context database  310  may be implemented in permanent memory or removable modules within the WAP client  304 . Requests  31 ,  32  are communicated through the request handler  318  of the wireless gateway  302  to the external database  306  and the origin application service  308 . Responses  33   a  are communicated from the origin application service  308  to the wireless gateway  302 , which communicates the responses  33   b  to the response handler  316  of the WAP client  304 . The response handler  316  communicates responses  34  to the rule engine  314 , which is coupled  35 ,  36 , respectively, to the user preferences database  312  and the context database  310 . The rule engine  314  communicates modified data  37  to the response handler  316 , which then communicates the response  38  to the browser  320 . 
     In the embodiments of  FIGS. 1 ,  2  and  3 , the method and apparatus may be implemented as more than one computer program. The programs are used where software applications retrieve data in response to a users request, perform some type of processing on the retrieval data and format the data that is to be returned to the user for display. According to the embodiment, one program will be responsible for data modification and formatting according to the invention. Preferably, the programs are implemented as stand alone code, whereby one program implements only data retrieved and another implements data modification. Alternatively, the data retrieval and equivalently, the data modification and formatting may be implemented as one or more modules (code subroutines or objects) which are incorporated along with other modules to form complete programs, where the data retrieval is isolated to one-or-more modules. As shown in  FIGS. 1 ,  2  and  3 , the programs will typically execute on a computer functioning as a server, or a wireless gateway or at a client, providing services in response to requests from a client using a Web browser connected to the Internet. Alternatively, the connection may be to a corporate intranet of which the client is a component, where this corporate intranet provides service in a similar manner to the Internet. Use of the term “Internet”, herein, when discussing processing associated with the users request, includes processing that occurs in the intranet. While the embodiments contemplate that the data retrieval is implemented in a different program from the data modification and formatting, the two different functions may be implemented in a single program without deviating from the scope of the present invention. 
     The method and apparatus of the invention has application to any system and configuration of a system providing text and Internet type services. For example, while the embodiment has been shown using HTML and WML text, the method and apparatus may be applied to use of any markup language, including next generation markup languages such as Extensible Hypertext Markup Language (XHTML). Thus, although the method and apparatus of the present invention has been illustrated and described with regard to presently preferred embodiments thereof, it will be understood that numerous modifications and substitutions may be made to the embodiments described, and that numerous other embodiments of the invention may be implemented without departing from the spirit and scope of the invention as defined in the following claims