WO2001009738A1 - Method and system for accessing annotation web pages related to primary web pages over the internet - Google Patents

Method and system for accessing annotation web pages related to primary web pages over the internet Download PDF

Info

Publication number
WO2001009738A1
WO2001009738A1 PCT/US2000/020201 US0020201W WO0109738A1 WO 2001009738 A1 WO2001009738 A1 WO 2001009738A1 US 0020201 W US0020201 W US 0020201W WO 0109738 A1 WO0109738 A1 WO 0109738A1
Authority
WO
WIPO (PCT)
Prior art keywords
annotation
page
client computer
primary file
annotator
Prior art date
Application number
PCT/US2000/020201
Other languages
French (fr)
Inventor
Edwin Schlossberg
Original Assignee
Annotate.Net, 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 Annotate.Net, Inc. filed Critical Annotate.Net, Inc.
Priority to AU63725/00A priority Critical patent/AU6372500A/en
Publication of WO2001009738A1 publication Critical patent/WO2001009738A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9558Details of hyperlinks; Management of linked annotations

Definitions

  • This invention relates to third-party annotation of primary content pages over a computer network such as the Internet, for example by providing means for linking annotation pages to primary content pages .
  • the world-wide web is essentially an open forum.
  • the unrestricted, all- inclusive nature of the world-wide web heaps a bounty of information upon the average person browsing the Internet.
  • the problem for the Internet user becomes one of sorting the wheat from the chaff. That is, how does one know what is good (or accurate) on the web?
  • Keyword enhanced search software such as GuruNet , FlySwat, ThirdVoice, and Nano, provide a navigational technology based on keywords found on websites.
  • the technology focuses on providing deeper navigation based on individual words or phrases such as "New York,” tigers, or "Derek Jeter.”
  • a navigational menu appears which gives the user the ability to go to auctions, related news or commerce opportunities about the underlined subject.
  • Some of the competitors change the appearance of the website presented to the user. It also takes the user off of the page they are on if the key word navigation is employed. Instead of giving the users contextual relevance to the page, these competitors focus on the words and phrases on the page.
  • Desktop portals are applications that may be considered the next evolution of "push technology" . They provide users with a steady stream of Web content across categories.
  • the present invention is an annotation system and method that allows annotators to post annotations that are related to primary web pages, in a unique and novel way that provides numerous advantages over the prior art as explained herein.
  • the present invention adds a robust, scalable, and appealing annotation capability to the world wide web.
  • the annotation system enables annotators, or annotation providers (for example, respected critics and authoritative sources) to publish commentaries about specific web pages that pertain to their areas of expertise, and subscribers (users who use their client computers to browse the Internet) to read these commentaries as they view the primary web pages.
  • annotation system described herein will allow annotation of web content in a very broad sense, since any type of annotation may be linked back to any web content with this system.
  • the annotation may be strictly commercial in nature, it may offer public interest commentary, etc.
  • This system may be used as a way of generating traffic to a web site by linkage to an annotation.
  • the system may be configured to serve a web page that advertises a patent law firm whenever a user accesses the U.S. Patent and Trademark Office web site, so that potential patent applicants will be driven to the patent lawyers' web site if they need further support than is provided by the Patent Office web site.
  • a proxy server's function is to re-serve web pages, which were originally hosted on another server.
  • the proxy server works as follows. When a person browsing the web clicks on a link to an annotated page, the annotation proxy server retrieves the page on his or her behalf, creates a copy of the page from the original web server, and adds indicators ("dits") to the original web page in order to show that the page has been annotated and by whom. The proxy server then re-serves the web page to the user.
  • the inventors herein have created a different approach for providing web annotations. Instead of copying, altering, and re-serving web pages, the present system maintains a referenced list of annotated pages and their annotations.
  • the annotations, created as web pages themselves, are served directly from the annotators' web hosting servers.
  • the central element in this system is the List Of Annotated Pages Server (LOAPS) , which maintains and serves the referenced list of annotations.
  • LOAPS List Of Annotated Pages Server
  • the other major components of the system consist of custom annotation authoring software, an annotation service provider web site, and a custom web browser helper application and plug- in for viewing annotations, which users download from the annotation service provider web site.
  • the present invention enables publishers to annotate a given page by using the authoring software to create and post a text and/or graphical commentary, advertisements, related content, etc.
  • individuals visit the annotation service provider web site and download a helper application and plug- in that works with their web browser.
  • the annotation service provider web site provides a list of annotators; users subscribe to those that interest them.
  • LOAPS notifies them if one or more of their annotators has written a commentary about that page.
  • LOAPS maintains a list of annotated pages rather than the actual web pages, it requires minimal data storage capacity. Designed to run on standard Unix- and Windows NT- based servers, LOAPS is easily expandable. A root LOAPS server (maintained by the annotation service provider) retains the authoritative database. Multiple secondary servers maintain copies of the database and refer to higher level servers when their database is incomplete or outdated. Because LOAPS is designed to operate on multiple servers concurrently, Internet Service Providers (ISPs) can easily keep a copy of it on their web servers to allow quick response time to annotations for their customers.
  • ISPs Internet Service Providers
  • LOAPS can build a tracking database that details users browsing behavior.
  • a method and system for providing an annotation page associated with a primary file comprises the steps of requesting access to the primary file by a client computer and then determining at a list of annotated page server (LOAPS) computer if at least one annotation page has been previously associated with the requested primary file. If at least one annotation page has been previously associated with the requested primary file, then an annotation index associated with each annotation page determined to be associated with the requested primary file is downloaded from the LOAPS to the client computer, and the client computer utilizes the annotation index to request access to an annotation page associated with the requested primary file.
  • LOAPS annotated page server
  • the client computer may be programmed to utilize the annotation index to request access to an annotation page in several ways.
  • the client computer may display an annotation page label associated with each annotation index downloaded from the LOAPS, and then the user selects a desired annotation page label to indicate the annotation page for which access is requested.
  • one annotation index is downloaded to the client computer and the client computer automatically requests access to the associated annotation page.
  • a plurality of annotation indexes may be downloaded to the client computer, and the client computer can request access to all the associated annotation pages or to a subset of all the associated annotation pages by reference to a predetermined rule.
  • the requested annotation page is then transferred to the client computer, and typically will have visual elements that are displayed at the client computer in a popup window that covers a substantially smaller portion of the client computer display than does the display of the visual elements of the primary file.
  • the annotation page may also have audible elements which are played by a software routine at the client computer.
  • the determination of whether an annotation page has been previously associated with the requested primary file is carried out by determining the URL or other identifying characteristic of the requested primary file. For example, the URL of the requested primary file may be detected, and then at least a portion of the primary file URL is transmitted to the LOAPS for analysis.
  • the analysis is carried out at the LOAPS by comparing the portion of the primary file URL and/or other identifying characteristics of the requested primary file to a database table and extracting any associated annotation indexes (including annotation page ID and an annotator ID) found in the database table.
  • the annotator ID is then compared to a client subscription table to determine if the client computer has previously subscribed to an annotator associated with the annotator ID.
  • the annotation page ID and the annotator ID are transmitted to the client computer only if the client computer has subscribed to the annotator associated with the annotator ID.
  • the client computer utilizes the annotator ID to determine the network address of the annotation content server on which the annotation page is located.
  • the client computer requests access to the annotation page by sending a message comprising the network address of the annotation content server on which the annotation page is located, the requested primary file URL, and the annotation page ID.
  • the annotation content server utilizes the annotation page ID to retrieve the annotation page to the client computer.
  • the client computer prior to determining if at least one annotation page has been previously associated with the requested primary file, the client computer first determines an identification of the primary content server computer associated with the requested primary file, then determines if a no-annotation flag has been set to indicate that no annotation files exist for any primary file on the associated primary content server, and only communicates with the LOAPS to determine if at least one annotation page has been previously associated with the requested primary file if the no-annotation flag has not been set.
  • the no- annotation flag may be set by a field in a message returned by the LOAPS as a result of a prior query by the client computer to the LOAPS for an annotation page associated with the required primary file.
  • the client subscription table comprises a plurality of client subscription records, each having a user ID field and at least one annotator ID that a user associated with the user ID has subscribed to.
  • Each client subscription record is received by the LOAPS computer from a corresponding client computer during a client registration process in which the client computer selects at least one desired annotator from a list of a plurality of available annotators which has been made available to the client computer by an annotation service provider computer, the client computer stores the annotation content server name of the selected annotators along with an associated annotator provider ID and a label suitable for display to the user, and the user is assigned a user ID.
  • Client subscription information is cached on each LOAPS server and does not need to be centrally maintained in the system.
  • An annotation provider registration process is carried out in order to register an annotator with the annotation service.
  • the annotator sends to the annotation service provider the name of the annotation content server on which annotation pages will be stored and other information associated with annotator.
  • the annotation service provider assigns an annotator ID to the annotator and stores the annotator ID in association with the annotation content server name.
  • An annotation page registration process is executed between the annotation content server and the LOAPS in order to inform users of the existence of an annotation page.
  • the annotator locates an annotation page associated with a primary file at the annotation content server, and then the annotator sends a URL associated with the primary file and its annotator ID to the LOAPS.
  • the LOAPS associates the primary file URL with a page ID which is unique, stores in a page table the primary file URL and the page ID, stores the page ID with the annotator ID, and then sends the page ID to the annotation content server for storage in association with the primary file URL.
  • the system of the present invention is designed to execute all the steps of the method as described above in order to utilize an annotation index to request access to an annotation page associated with a requested primary file.
  • the system includes at least one primary content server, at least one annotation content server computer, at least one client computer, an annotation service provider computer, and a list of annotated pages server computer (LOAPS) , ail of which are interconnected over a computer network such as the Internet .
  • LOAPS annotated pages server computer
  • the primary content server computer has means for storing a primary file located at a primary file URL.
  • the annotation content server computer has means for storing an annotation page located at an annotation page URL.
  • the client computer has means for requesting access to the primary file utilizing an associated URL, means for detecting a URL of the requested primary file, means for transmitting at least a portion of the primary file URL to the LOAPS for analysis thereat, means for displaying an annotation page label associated with each annotation index downloaded from the LOAPS, means for inputting a selection by the user of a desired annotation page label to indicate the annotation page for which access is requested, and means for utilizing an annotation index associated with the primary file URL to request access to an annotation page associated with the requested primary file.
  • the list of annotated pages server computer has means for determining if at least one annotation page has been previously associated with the requested primary file, and means for downloading to the client computer an annotation index associated with each annotation page determined to be associated with the requested primary file.
  • the means for determining if at least one annotation page has been previously associated with the requested primary file includes database means for storing a plurality of records associating a primary file URL with an annotation index, means for comparing the portion of the primary file URL to the records of the database table, and means for extracting annotation indexes associated with the primary file URL from the database means.
  • the LOAPS also has a client subscription table and means for comparing the annotator ID found to be associated with the primary file URL to the client subscription table to determine if the client computer has previously subscribed to an annotation content server associated with the annotator ID.
  • the annotation page ID and the annotator ID are transmitted to the client computer only if the client computer has subscribed to the annotator associated with the annotator
  • the client computer has means for utilizing the annotator ID to determine the network address of the annotation content server on which the annotation page is located.
  • the means for utilizing an annotation index to request access to an annotation page associated with the requested primary file operates by sending a message comprising the network address of the annotation content server on which the annotation page is located, the requested primary file URL, and the annotation page ID.
  • the annotation content server has means for utilizing the annotation page ID to retrieve the annotation page to the client computer.
  • the client computer also has means for determining an identification of a primary content server computer associated with the requested primary file, means for determining if a no-annotation flag has been set to indicate that no annotation files exist for any primary file on the associated primary content server, and means for only communicating with the LOAPS if the no-annotation flag has not been set .
  • Figure 1 is a top level block diagram of the preferred embodiment of the annotation system of the present invention.
  • Figure 2 is a data flow diagram illustrating the data flow between computers in the present invention.
  • Figure 3 is a top level flowchart of the annotation system of Figure 1.
  • FIGS. 4A and 4B illustrate a detailed flowchart of the operation of the preferred embodiment.
  • FIG. 5 is a flowchart of the client registration process.
  • Figure 6 is a flowchart of the annotation content server registration process.
  • Figure 7 is a flowchart of the annotation page registration process.
  • Figure 8 illustrates a display at the client computer of a primary file accompanied by an annotation list.
  • Figure 9 illustrates a sample annotation window overlaying the display of a primary file.
  • Figure 10 illustrates the display of a user subscription list.
  • the goal of the present invention is to add a robust, scalable, and appealing annotation capability to the World Wide Web.
  • annotation system 2 comprises an annotation service provider computer (ASP) 4, at least one LOAPS 6 (list of annotated pages server) , both of which are interconnected via the annotation service provider computer (ASP) 4, at least one LOAPS 6 (list of annotated pages server) , both of which are interconnected via the annotation service provider computer (ASP) 4, at least one LOAPS 6 (list of annotated pages server) , both of which are interconnected via the annotation service provider computer (ASP) 4, at least one LOAPS 6 (list of annotated pages server) , both of which are interconnected via the LOAPS 6 (list of annotated pages server) , both of which are interconnected via the annotation service provider computer (ASP) 4, at least one LOAPS 6 (list of annotated pages server) , both of which are interconnected via the annotation service provider computer (ASP) 4, at least one LOAPS 6 (list of annotated pages server) , both of which are interconnected via the annotation service provider computer (ASP) 4, at least one LOAPS 6 (list of annotated pages
  • Internet 14 to a plurality of users' client computers 8 and a plurality of primary content server (PCS) computers 10. Also interconnected to the Internet 14 in accordance with this invention are a plurality of annotation content server (ACS) computers 12, which operate as described herein to serve annotation pages 22 to a client computer 8 which are related to primary files 20 accessed by a user over the Internet 14 .
  • ACS annotation content server
  • the primary content server 10 may be a standard web server that serves web pages as well known in the prior art.
  • the PCS 10 need not be adapted or configured in any particular way in order to operate with the annotation system 2, since annotation pages 22 are usually linked to primary files 20 served from the PCS 10 without knowledge of such linking on the part of the PCS 10.
  • the web pages served by the PCS 10 are referred to herein as primary files 20 having a primary file URL (uniform resource locator) 21 that is used as well known in the prior art as a means for accessing the primary file 20 over the Internet 14.
  • the PCS 10 has means for storing, generating, and serving a primary file 20 as determined by a primary file URL 21.
  • the annotation content server computer 12 may also include a standard web server that has means for storing an annotation page 22 located at an annotation page URL 23.
  • the annotation page 22 may be as simple as a static HTML page offering commentary regarding the primary file 20 to which it is linked (via an annotation index) .
  • the annotation page 22 linked to the primary file URL 21 may include a review and opinion of the clock (i.e. a product rating, safety review, price comparison, etc.) offered by a third party annotator such as Product Opinions, Inc.
  • the annotation age 22 in this example is located at the annotation page
  • an annotation refers to any file that is associated with a primary content file.
  • the annotation may be commercial in nature or it may serve a public interest function. Any file can be defined as an annotation in this invention and be "invisibly” linked to any other primary content file as explained herein.
  • the client computer 8 is a typical computer utilized for accessing Internet content, for example by utilizing a web browser such as NETSCAPE or MICROSOFT EXPLORER, which is configured to operate in conjunction with the annotation system 2 to obtain annotation pages 22 related to primary files 20 it has requested.
  • the client computer 8 requests access to the primary file 20 via entry of a primary file URL 21, and a program running with the browser detects entry of the primary file URL 21.
  • the URL may be made available to the detector software as soon as it is entered (or clicked) by a user, or the browser may wait until the file has loaded before handing off the URL. In either case, the primary file URL
  • an annotation index associated with each annotation page 22 determined to be associated with the requested primary file 20 is downloaded from the LOAPS 6 to the client computer 8, and the client computer 8 utilizes the annotation index to request access to an annotation page 22 associated with the requested primary file 20.
  • the analysis is typically carried out at the LOAPS 6 by comparing the primary file URL 21 (or a portion thereof, such as the domain name alone) to a set of database tables and extracting any associated annotation indexes (including an annotation page ID 25 and an annotator ID 26) found in the database tables.
  • the annotator ID 26 is then compared to a client subscription table 28 to determine if the client computer 8 has previously subscribed to an annotator associated with the annotator ID 26.
  • the annotation page ID 25 and the annotator ID 26 are transmitted to the client computer 8 only if the client computer 8 has subscribed to the annotator associated with the annotator ID 26.
  • the primary content file once served to the web browser, may be analyzed or parsed to determine certain fields (e.g. HTML, XML and the like) that may have context-specific data) , which may serve to identify the location of the primary file.
  • the detector may also use URLs that are referenced by a frameset; i.e. the URL in a target frame, in the alternative to the main pa e URL.
  • An annotator that desires to make commentary available to any user over the Internet 14 will first register with the annotation service provider 4 as shown by the flowchart in Figure 6 and the data flows of Figure 2.
  • the annotator e.g. Product Opinions, Inc.
  • the name of the ACS 12 is www.productopinions . com .
  • the annotation service provider 4 assigns an annotator ID 26 to the annotator and stores the annotator ID 26 in association with the annotation content server name as shown Figure 2.
  • the annotator ID 26 (1234 in this example) is also sent back to the ACS 12 for storage therein and utilization by subsequent processes .
  • a graphical (or textual) label file is also sent by the annotator to the ASP 4 for storage in the database 32.
  • the label will typically be an icon that is associated with the annotator, and will be displayed to the user during the annotation selection process to enable him to select an annotator in a simple fashion.
  • Figure 8 illustrates a list 54 of annotator labels 56 (with optional text 58) that are shown to the user during the annotation request process as described below. For example, an annotation provided by merrillynch.com would have associated therewith the familiar Merrill Lynch logo as its label 56.
  • the ASP 4 will then add the newly registered annotator as an available annotator to which a user may subscribe as described below.
  • the newly available annotator may be provided as part of the initial user/client registration process, and it may also be provided to the user as an annotator update process after the user has already initiated its initial annotator subscription.
  • a message such as "Product Opinions, Inc. is now an available annotator. Would you like to add this to your subscription list?" may be provided to a registered user to allow subscription modifications.
  • annotator as registered with the ASP 4, it can undergo the process of registering with the LOAPS 6 an annotation page 22 located at an ACS 12, in order to inform users of the existence of a particular annotation page 22.
  • the annotator generates and locates at the ACS 12 an annotation page 22 such as http : //www.productopinions . com/clockopinion.html .
  • the ACS 12 sends a request over the Internet 14 to the LOAPS 6 for a page ID 25 by providing its annotator ID 26 (1234) and the primary file URL 21 with which the annotation page 22 is associated (http: //www.products .com/clockad) .
  • the LOAPS 6 will receive the request and generate a page ID 25 which uniquely identifies the annotation page 22.
  • the page ID 25 (678 in this example) is stored at the LOAPS 6 in a page table 24 along with the primary file URL 21 as shown in Figure 2.
  • the page ID 25 (678 in this example) is stored at the LOAPS 6 in a page
  • LOAPS 6 will also send the page ID 25 back to the ACS 12, and the ACS 12 will store the page ID 25 (678) along with the annotation page URL 23 (http: //www.productopinions . com/clockopinion.html) in a database table 34.
  • This process may be executed by an authoring tool that will make the process streamlined and user friendly.
  • the authoring tool functions as a database with a visual reference to the annotation pages that the annotator has generated or defined, a list of the primary files with which the annotations have been previously associated, and a list of other web sites that are provided by the ASP that the annotator may be interested in linking with. For example, if the annotator is a product review magazine web site, the ASP may provide in the authoring tool software a list of web sites that sell products that may be desirable to review.
  • This tool will help annotators build a database of annotations, edit the associations, and view the current status, in an easy to use graphical user interface format.
  • a user's client computer 8 will also have to undergo a registration process with the ASP 4 and LOAPS 6 in order to utilize the annotation system 2 (the LOAPS registration is transparent to the user and may be done "on the fly") .
  • a client subscription table 28 is stored at the LOAPS 6, which has a plurality of client subscription records, each having a user ID 29 field and at least one annotator ID 26 that a user associated with the user ID 29 has subscribed to.
  • Each client subscription record is received by the LOAPS 6 computer from a corresponding client computer 8 during the client registration process in which the client computer 8 selects at least one desired annotator from a list 54 of a plurality of available annotators which has been made available to the client computer 8 by an annotation service provider 4 computer.
  • the client computer 8 stores the annotation content server name of the selected annotators along with an associated annotator ID 26 and a label (56, 58) suitable for display to the user in a client subscription list 30.
  • a client computer 8 seeking to register with the ASP 4 may send requested user data (i.e. name, email, etc.) to the ASP 4 for logging therein.
  • the client computer 8 will then download a URL detection program that will execute with the client's browser to detect the entry of a primary file URL 21 and pass the URL on to the LOAPS 6 for subsequent processing and annotation access.
  • the ASP 4 will also send to the client a list of available annotators (i.e. already registered) to the client.
  • the user will select the desired annotators to indicate which ones he would like to obtain annotations from. For example, if the user has no interest in annotations from a certain annotator, he would not select it from the subscription list.
  • the client computer 8 then stores a list of selected annotators and the associated ACSs, annotator IDs 26, and graphical labels as its subscription list 30.
  • the client computer 8 is provided with a user ID 29 from the ASP 4 for future references.
  • the client computer 8 will then send to the LOAPS 6 its subscription list 30 records, and the LOAPS 6 will update its client subscription table 28 to include these records. This will provide the LOAPS 6 with the needed information to provide to a given client computer 8 a list of annotation page IDs 25 only associated with those annotators desired by the user.
  • a primary file URL 21 is entered by a user into a browser on the client computer 8 by conventional means (i.e. by typed entry, hyperlink selection, etc.)
  • the detection software previously acquired by the client computer 8 from the ASP 4 during registration will observe this URL entry and formulate an annotation query directed at the LOAPS 6, which will include all or a part of the primary file URL 21.
  • the annotation request will also include the user ID 29.
  • identifying characteristics of the requested primary file may be used by the system to determine an associated annotation, as explained previously.
  • the LOAPS 6 receives the annotation query from the client computer 8 and begins the process of analyzing it to determine if an annotation exists for that primary file URL 21 from an annotation content server 12 to which the user has subscribed. First, the LOAPS 6 parses the annotation query to determine the primary file URL 21, and compares the primary file URL 21 against the page table 24. If no records are found that include the primary file URL 21, then a "no annotation" message is returned to the client computer 8 and a message is displayed on the client computer display to inform the user of that there are no annotations for that primary file URL 21.
  • the LOAPS 6 extracts the associated annotation page ID 25 for each record and compares the extracted page ID(s) 25 against the annotation table 27 to determine the author of each respective annotation, i.e. the annotator ID(s) 26.
  • the annotator ID(s) 26 are then compared to the subscription table 28, along with the user ID 29 received in the annotation query, to check that the user has in fact subscribed to those annotators. If the user has not subscribed to any of the annotators found, then a "no annotation" message is returned to the client computer 8 and a message is displayed on the display of the client computer 8 to inform the user of that there are no annotations for that primary file URL 21. If, however, a match is found between the user subscription table 28 and the annotator ID 26, then each page ID 25 found and the associated annotator ID 26 are transmitted back to the client computer 8.
  • the client computer 8 receives the list of page IDs 25 and associated annotator IDs 26 and accesses its database to determine the name of the appropriate ACS 12 and retrieve an associated label 56, 58 for display to the user. If several annotations are available, a list 54 of associated labels is provided in a popup window (see Figure 8) . The user selects the desired annotation (s) , and the client software then uses the associated ACS name and page ID 25 to formulate an HTTP request to the ACS 12 and retrieve the appropriate annotation.
  • the HTTP request sent to the ACS 12 includes the page ID 25 and the user ID 29.
  • the page ID 25 is used to lookup in the database 34 the associated annotation URL 23, and the annotation page 22 is then served back to the client computer 8 for display on the monitor.
  • the display of the annotation page 22 will be in a window 62 that is smaller than the window 50 in which the primary file 20 is displayed as shown in Figure 9, but of course the choice of display parameters may be left to the option of the user.
  • the user may opt to select all (or even none) of the annotations for retrieval and display with the primary file 20 as described above.
  • the client computer 8 may also be configured to automatically request all available annotations; or if only one is available, to automatically request that annotation, etc.
  • Other selection schemes may be implemented in accordance with this invention, such as by reference to a predetermined rule such as "always download annotations from www. trustedsource . com" , etc .
  • annotation page 22 is an HTML page having text and optional graphics, ad banners, etc.
  • annotation page 22 may also be a multimedia file encompassing sound and/or video files as well, which would be displayed or played to the user by the client computer 8 in accordance with techniques well known in the art .
  • the LOAPS system topology will now be described in further detail.
  • the technical implementation of the LOAPS system involves two areas; the database (used to hold the annotation information) and the message protocol (used to transmit information between the client computer 8 and the LOAPS and between various LOAPS computers in the LOAPS hierarchy) .
  • LOAPS is modeled after DNS and is distributed in the same manner.
  • a root LOAPS server will exist (maintained by the ASP 4) and will maintain the authoritative database. Secondary servers will maintain copies of the database and refer to higher level servers when their database is incomplete or outdated.
  • the system can run multiple root servers that are peers, and each keep a canonical copy of the LOAPS database.
  • the message protocol supports the peer root servers keeping each other up to date. It is also possible to use the synchronization features built into third party database systems to keep the peers database identical .
  • any client computer 8 will "point" to a primary LOAPS. They may also have a pointer to a secondary LOAPS should their primary server be unavailable. Each LOAPS itself will also point to a primary LOAPS, until the root LOAPS is reached.
  • the scheme can be extended so that the processing load can scale up to a very large number of users. Additionally, as with DNS, if required by traffic, more than one primary LOAPS can be deployed.
  • LOAPS servers implement load balancing to manage the large amount of traffic the system 2 must handle. All of the root LOAPS monitor the system load of all other LOAPS and have the ability to direct clients to LOAPS with a lower load than they do. Importantly, the logic for determining whether or not this switch is required is entirely implemented m LOAPS and not m the client software. This allows tuning of the load balancing algorithm without changing the client code.
  • the message protocol includes a mechanism for LOAPS to exchange information specific to each user when switching servers, allowing optimization of each users connection to the LOAPS network.
  • the first version of the LOAPS software was developed under Unix, specifically Red Hat Linux release 5.
  • LOAPS The actual database format used by LOAPS is internal to each LOAPS implementation.
  • the public interface to LOAPS is the message protocol. As long as the LOAPS server fully and correctly implements the message protocol, it will not matter what form the internal database is stored in.
  • the first version of LOAPS was developed using PostgreSQL on Red Hat Linux. This is important because a future implementation of the root LOAPS server may be required, for example, to utilize high performance database software like Oracle .
  • an entry When no annotation is available for a primary file 20, an entry will be created in the LOAPS page table 24. This indication of no annotation will expire in some set amount of time. To determine how long the time is, a back-off strategy was devised as follows. The first time a primary file 20 is marked as not annotated the expiration time will be set to a minimum value, for example 5 minutes. If the primary file entry expires and the primary file 20 is then requested again and not found to be annotated, the expiration time will be doubled (ten minutes in this example) . This will continue until the primary file entry reaches some maximum (perhaps 24 hours) . The objective of this scheme is to reduce the amount of traffic between secondary and root LOAPS .
  • the actual minimum and maximum time may be determined by heuristic experimentation during the development of the software.
  • the LOAPS will implement the following database tables:
  • Page or Root Variable Length Character Field. This is the URL of a page which annotation data is available for. Page ID, 16 Bytes. GUID, assigned by Authoring Software. Flag, 4 Bytes. Bit 0: 1-Anotated, O-Not annotated.
  • Bit 1 1-Site Annotated, O-Site Not annotated.
  • Bit 0 1-Anotated, O-Not annotated.
  • Bit 1-3 Expiration Scheme.
  • GUID assigned by annotation system Annotator ID, 16 Bytes. GUID, assigned by annotation system
  • the message protocol has now been converted to XML.
  • XML has been chosen to facilitate the use of the client software behind firewall's and proxies.
  • the message protocol is transmitted using HTTP 1.1 for the same reason.

Abstract

A method and system for providing an annotation page (22) associated with a primary file (20) that is accessed over the Internet (14). The method executes the steps of requesting access to the primary file (20) by a client computer (8) and then determining at a list of annotated page server (LOAPS) (6) computer if at least one annotation page (22) has been previously associated with the requested primary file (20). If at least one annotation page (22) has been previously associated with the requested primary file (20), then an annotation index associated with each annotation page (22) determined to be associated with the requested primary file (20) is downloaded from the LOAPS (6) to the client computer (8), and the client computer (8) utilizes the annotation index to request access to an annotation page (22) associated with the requested primary file (20).

Description

METHOD AND SYSTEM FOR ACCESSING ANNOTATION WEB PAGES RELATED TO PRIMARY WEB PAGES OVER THE INTERNET
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is based on and claims filing priority of co-pending U.S. provisional patent applications serial number 60/146,560 filed on July 30, 1999, and 60/154,301 filed on September 16, 1999, each of which is incorporated by reference herein.
TECHNICAL FIELD
This invention relates to third-party annotation of primary content pages over a computer network such as the Internet, for example by providing means for linking annotation pages to primary content pages .
BACKGROUND ART
The world-wide web is essentially an open forum. Anyone can contribute anything they please to the web by simply posting web pages to a web server that is then accessible by anyone on the web. The unrestricted, all- inclusive nature of the world-wide web heaps a bounty of information upon the average person browsing the Internet. The problem for the Internet user becomes one of sorting the wheat from the chaff. That is, how does one know what is good (or accurate) on the web?
Keyword enhanced search software such as GuruNet , FlySwat, ThirdVoice, and Nano, provide a navigational technology based on keywords found on websites. The technology focuses on providing deeper navigation based on individual words or phrases such as "New York," tigers, or "Derek Jeter." When the user clicks (or right-clicks), a navigational menu appears which gives the user the ability to go to auctions, related news or commerce opportunities about the underlined subject. Some of the competitors change the appearance of the website presented to the user. It also takes the user off of the page they are on if the key word navigation is employed. Instead of giving the users contextual relevance to the page, these competitors focus on the words and phrases on the page.
Shopping agent web sites such as ClickTheButton, iChoose, EventBetter (DealTime) , and Eboodle are desktop shopping bots that provide pricing and commerce information based on products on a page. When the user arrives at a product page on the side, the shopping agent informs him that it could do a search for the best price. The information is limited to shopping and often can only be accessed when there is only one product on a page.
Community and side chat applications such as Gooey, SideTalk, uTok, Cahoots, and Od go, instantaneously provide context-sensitive community services and information integrated into the surfing activity. Users have tools for chatting about, ranking, and exchanging information about the sites they are visiting. Some are integrating voice, as well. The goal is to enable users to build a community of Web commentary, separate from the Web at large, where users can share opinions and guidance on the content of Web sites.
Desktop portals are applications that may be considered the next evolution of "push technology" . They provide users with a steady stream of Web content across categories.
Although they help users quickly access Web information by launching from the desktop, it is not relevant to where the user is surfing. The present invention is an annotation system and method that allows annotators to post annotations that are related to primary web pages, in a unique and novel way that provides numerous advantages over the prior art as explained herein. The present invention adds a robust, scalable, and appealing annotation capability to the world wide web. The annotation system enables annotators, or annotation providers (for example, respected critics and authoritative sources) to publish commentaries about specific web pages that pertain to their areas of expertise, and subscribers (users who use their client computers to browse the Internet) to read these commentaries as they view the primary web pages.
The annotation system described herein will allow annotation of web content in a very broad sense, since any type of annotation may be linked back to any web content with this system. The annotation may be strictly commercial in nature, it may offer public interest commentary, etc.
This system may be used as a way of generating traffic to a web site by linkage to an annotation. For example, the system may be configured to serve a web page that advertises a patent law firm whenever a user accesses the U.S. Patent and Trademark Office web site, so that potential patent applicants will be driven to the patent lawyers' web site if they need further support than is provided by the Patent Office web site.
Existing web annotation products are based on the concept of creating annotations through the use of a proxy server. A proxy server's function is to re-serve web pages, which were originally hosted on another server. In the existing annotation products, the proxy server works as follows. When a person browsing the web clicks on a link to an annotated page, the annotation proxy server retrieves the page on his or her behalf, creates a copy of the page from the original web server, and adds indicators ("dits") to the original web page in order to show that the page has been annotated and by whom. The proxy server then re-serves the web page to the user.
This approach to annotation has a couple of serious drawbacks. First, since this method requires channeling all annotations and all requests for annotated pages through the proxy server, the capacity and performance of the proxy server must be continuously expanded as the number of and requests for annotated pages increase in order to avoid delays in serving the requested pages. Theoretically, if all web pages were annotated and all Internet browsers wanted to view the available annotations, an annotation proxy server would require the speed and power of all of the web servers in the world combined. Second, the proxy server, by adding dits to the original web page, alters the look and layout of the page from the way the page ' s author intended it to appear. The more dits added to a page, the greater the distortion. Re- serving altered web pages without permission from the original author may raise serious objections from an etiquette, as well as an ethical and legal viewpoint .
DISCLOSURE OF THE INVENTION
Thus, the inventors herein have created a different approach for providing web annotations. Instead of copying, altering, and re-serving web pages, the present system maintains a referenced list of annotated pages and their annotations. The annotations, created as web pages themselves, are served directly from the annotators' web hosting servers.
The central element in this system is the List Of Annotated Pages Server (LOAPS) , which maintains and serves the referenced list of annotations. The other major components of the system consist of custom annotation authoring software, an annotation service provider web site, and a custom web browser helper application and plug- in for viewing annotations, which users download from the annotation service provider web site.
The present invention enables publishers to annotate a given page by using the authoring software to create and post a text and/or graphical commentary, advertisements, related content, etc. To subscribe, individuals visit the annotation service provider web site and download a helper application and plug- in that works with their web browser. The annotation service provider web site provides a list of annotators; users subscribe to those that interest them. Then, when a subscriber loads a web page, LOAPS notifies them if one or more of their annotators has written a commentary about that page. To view an annotation, the subscriber clicks on a link that takes them to the annotation stored on the annotator's web server.
Since LOAPS maintains a list of annotated pages rather than the actual web pages, it requires minimal data storage capacity. Designed to run on standard Unix- and Windows NT- based servers, LOAPS is easily expandable. A root LOAPS server (maintained by the annotation service provider) retains the authoritative database. Multiple secondary servers maintain copies of the database and refer to higher level servers when their database is incomplete or outdated. Because LOAPS is designed to operate on multiple servers concurrently, Internet Service Providers (ISPs) can easily keep a copy of it on their web servers to allow quick response time to annotations for their customers.
Additionally, since LOAPS is queried by the detector application for each page a user visits, LOAPS can build a tracking database that details users browsing behavior.
Thus, in accordance with the invention, provided is a method and system for providing an annotation page associated with a primary file. The method comprises the steps of requesting access to the primary file by a client computer and then determining at a list of annotated page server (LOAPS) computer if at least one annotation page has been previously associated with the requested primary file. If at least one annotation page has been previously associated with the requested primary file, then an annotation index associated with each annotation page determined to be associated with the requested primary file is downloaded from the LOAPS to the client computer, and the client computer utilizes the annotation index to request access to an annotation page associated with the requested primary file.
The client computer may be programmed to utilize the annotation index to request access to an annotation page in several ways. The client computer may display an annotation page label associated with each annotation index downloaded from the LOAPS, and then the user selects a desired annotation page label to indicate the annotation page for which access is requested. Alternatively, one annotation index is downloaded to the client computer and the client computer automatically requests access to the associated annotation page. In addition, a plurality of annotation indexes may be downloaded to the client computer, and the client computer can request access to all the associated annotation pages or to a subset of all the associated annotation pages by reference to a predetermined rule.
The requested annotation page is then transferred to the client computer, and typically will have visual elements that are displayed at the client computer in a popup window that covers a substantially smaller portion of the client computer display than does the display of the visual elements of the primary file. The annotation page may also have audible elements which are played by a software routine at the client computer.
The determination of whether an annotation page has been previously associated with the requested primary file is carried out by determining the URL or other identifying characteristic of the requested primary file. For example, the URL of the requested primary file may be detected, and then at least a portion of the primary file URL is transmitted to the LOAPS for analysis. The analysis is carried out at the LOAPS by comparing the portion of the primary file URL and/or other identifying characteristics of the requested primary file to a database table and extracting any associated annotation indexes (including annotation page ID and an annotator ID) found in the database table. The annotator ID is then compared to a client subscription table to determine if the client computer has previously subscribed to an annotator associated with the annotator ID. Typically, the annotation page ID and the annotator ID are transmitted to the client computer only if the client computer has subscribed to the annotator associated with the annotator ID.
The client computer utilizes the annotator ID to determine the network address of the annotation content server on which the annotation page is located. The client computer then requests access to the annotation page by sending a message comprising the network address of the annotation content server on which the annotation page is located, the requested primary file URL, and the annotation page ID. The annotation content server utilizes the annotation page ID to retrieve the annotation page to the client computer.
Optionally, prior to determining if at least one annotation page has been previously associated with the requested primary file, the client computer first determines an identification of the primary content server computer associated with the requested primary file, then determines if a no-annotation flag has been set to indicate that no annotation files exist for any primary file on the associated primary content server, and only communicates with the LOAPS to determine if at least one annotation page has been previously associated with the requested primary file if the no-annotation flag has not been set. The no- annotation flag may be set by a field in a message returned by the LOAPS as a result of a prior query by the client computer to the LOAPS for an annotation page associated with the required primary file.
The client subscription table comprises a plurality of client subscription records, each having a user ID field and at least one annotator ID that a user associated with the user ID has subscribed to. Each client subscription record is received by the LOAPS computer from a corresponding client computer during a client registration process in which the client computer selects at least one desired annotator from a list of a plurality of available annotators which has been made available to the client computer by an annotation service provider computer, the client computer stores the annotation content server name of the selected annotators along with an associated annotator provider ID and a label suitable for display to the user, and the user is assigned a user ID. Client subscription information is cached on each LOAPS server and does not need to be centrally maintained in the system.
An annotation provider registration process is carried out in order to register an annotator with the annotation service. The annotator sends to the annotation service provider the name of the annotation content server on which annotation pages will be stored and other information associated with annotator. Then the annotation service provider assigns an annotator ID to the annotator and stores the annotator ID in association with the annotation content server name. An annotation page registration process is executed between the annotation content server and the LOAPS in order to inform users of the existence of an annotation page. The annotator locates an annotation page associated with a primary file at the annotation content server, and then the annotator sends a URL associated with the primary file and its annotator ID to the LOAPS. The LOAPS associates the primary file URL with a page ID which is unique, stores in a page table the primary file URL and the page ID, stores the page ID with the annotator ID, and then sends the page ID to the annotation content server for storage in association with the primary file URL.
The system of the present invention is designed to execute all the steps of the method as described above in order to utilize an annotation index to request access to an annotation page associated with a requested primary file. In particular, the system includes at least one primary content server, at least one annotation content server computer, at least one client computer, an annotation service provider computer, and a list of annotated pages server computer (LOAPS) , ail of which are interconnected over a computer network such as the Internet .
The primary content server computer has means for storing a primary file located at a primary file URL. The annotation content server computer has means for storing an annotation page located at an annotation page URL. The client computer has means for requesting access to the primary file utilizing an associated URL, means for detecting a URL of the requested primary file, means for transmitting at least a portion of the primary file URL to the LOAPS for analysis thereat, means for displaying an annotation page label associated with each annotation index downloaded from the LOAPS, means for inputting a selection by the user of a desired annotation page label to indicate the annotation page for which access is requested, and means for utilizing an annotation index associated with the primary file URL to request access to an annotation page associated with the requested primary file.
The list of annotated pages server computer (LOAPS) has means for determining if at least one annotation page has been previously associated with the requested primary file, and means for downloading to the client computer an annotation index associated with each annotation page determined to be associated with the requested primary file.
In the LOAPS, the means for determining if at least one annotation page has been previously associated with the requested primary file includes database means for storing a plurality of records associating a primary file URL with an annotation index, means for comparing the portion of the primary file URL to the records of the database table, and means for extracting annotation indexes associated with the primary file URL from the database means. The LOAPS also has a client subscription table and means for comparing the annotator ID found to be associated with the primary file URL to the client subscription table to determine if the client computer has previously subscribed to an annotation content server associated with the annotator ID. The annotation page ID and the annotator ID are transmitted to the client computer only if the client computer has subscribed to the annotator associated with the annotator
ID.
The client computer has means for utilizing the annotator ID to determine the network address of the annotation content server on which the annotation page is located. The means for utilizing an annotation index to request access to an annotation page associated with the requested primary file operates by sending a message comprising the network address of the annotation content server on which the annotation page is located, the requested primary file URL, and the annotation page ID. The annotation content server has means for utilizing the annotation page ID to retrieve the annotation page to the client computer.
The client computer also has means for determining an identification of a primary content server computer associated with the requested primary file, means for determining if a no-annotation flag has been set to indicate that no annotation files exist for any primary file on the associated primary content server, and means for only communicating with the LOAPS if the no-annotation flag has not been set .
BRIEF DESCRIPTION OF THE DRAWING
Figure 1 is a top level block diagram of the preferred embodiment of the annotation system of the present invention. Figure 2 is a data flow diagram illustrating the data flow between computers in the present invention.
Figure 3 is a top level flowchart of the annotation system of Figure 1.
Figures 4A and 4B illustrate a detailed flowchart of the operation of the preferred embodiment.
Figure 5 is a flowchart of the client registration process.
Figure 6 is a flowchart of the annotation content server registration process.
Figure 7 is a flowchart of the annotation page registration process. Figure 8 illustrates a display at the client computer of a primary file accompanied by an annotation list.
Figure 9 illustrates a sample annotation window overlaying the display of a primary file.
Figure 10 illustrates the display of a user subscription list.
BEST MODE FOR CARRYING OUT THE INVENTION
The goal of the present invention is to add a robust, scalable, and appealing annotation capability to the World Wide Web.
Referring to Figure 1, the preferred embodiment annotation system 2 comprises an annotation service provider computer (ASP) 4, at least one LOAPS 6 (list of annotated pages server) , both of which are interconnected via the
Internet 14 to a plurality of users' client computers 8 and a plurality of primary content server (PCS) computers 10. Also interconnected to the Internet 14 in accordance with this invention are a plurality of annotation content server (ACS) computers 12, which operate as described herein to serve annotation pages 22 to a client computer 8 which are related to primary files 20 accessed by a user over the Internet 14 .
The primary content server 10 may be a standard web server that serves web pages as well known in the prior art. Notably the PCS 10 need not be adapted or configured in any particular way in order to operate with the annotation system 2, since annotation pages 22 are usually linked to primary files 20 served from the PCS 10 without knowledge of such linking on the part of the PCS 10. The web pages served by the PCS 10 are referred to herein as primary files 20 having a primary file URL (uniform resource locator) 21 that is used as well known in the prior art as a means for accessing the primary file 20 over the Internet 14. Thus, the PCS 10 has means for storing, generating, and serving a primary file 20 as determined by a primary file URL 21.
The annotation content server computer 12 may also include a standard web server that has means for storing an annotation page 22 located at an annotation page URL 23. The annotation page 22 may be as simple as a static HTML page offering commentary regarding the primary file 20 to which it is linked (via an annotation index) . For example, if a primary file 20 located at primary file URL 21 http: //www,products . com/clockad is an advertisement for a clock available for sale over the Internet 14, the annotation page 22 linked to the primary file URL 21 may include a review and opinion of the clock (i.e. a product rating, safety review, price comparison, etc.) offered by a third party annotator such as Product Opinions, Inc. The annotation age 22 in this example is located at the annotation page
URL 23 http : //ww . product opinions . com/clockopinion . html . I n addition, an annotation refers to any file that is associated with a primary content file. For example, the annotation may be commercial in nature or it may serve a public interest function. Any file can be defined as an annotation in this invention and be "invisibly" linked to any other primary content file as explained herein.
Referring also to Figure 2 and 3, the client computer 8 is a typical computer utilized for accessing Internet content, for example by utilizing a web browser such as NETSCAPE or MICROSOFT EXPLORER, which is configured to operate in conjunction with the annotation system 2 to obtain annotation pages 22 related to primary files 20 it has requested. The client computer 8 requests access to the primary file 20 via entry of a primary file URL 21, and a program running with the browser detects entry of the primary file URL 21. Depending on the operation of the browser, the URL may be made available to the detector software as soon as it is entered (or clicked) by a user, or the browser may wait until the file has loaded before handing off the URL. In either case, the primary file URL
21 (and/or other identifying characteristics of the primary file) is sent via an HTTP request over the Internet 14 to the LOAPS 6, which will then detect if at least one annotation page 22 has been previously associated with the requested primary file 20. If at least one annotation page
22 has been previously associated with the requested primary file 20, then an annotation index associated with each annotation page 22 determined to be associated with the requested primary file 20 is downloaded from the LOAPS 6 to the client computer 8, and the client computer 8 utilizes the annotation index to request access to an annotation page 22 associated with the requested primary file 20. The analysis is typically carried out at the LOAPS 6 by comparing the primary file URL 21 (or a portion thereof, such as the domain name alone) to a set of database tables and extracting any associated annotation indexes (including an annotation page ID 25 and an annotator ID 26) found in the database tables. The annotator ID 26 is then compared to a client subscription table 28 to determine if the client computer 8 has previously subscribed to an annotator associated with the annotator ID 26. Typically, the annotation page ID 25 and the annotator ID 26 are transmitted to the client computer 8 only if the client computer 8 has subscribed to the annotator associated with the annotator ID 26.
In addition to using the URL to link to an annotation page, other identifying characteristics of the primary file may be used. For example, the primary content file, once served to the web browser, may be analyzed or parsed to determine certain fields (e.g. HTML, XML and the like) that may have context-specific data) , which may serve to identify the location of the primary file. The detector may also use URLs that are referenced by a frameset; i.e. the URL in a target frame, in the alternative to the main pa e URL. Various combinations of the foregoing are also contemplated by the present invention.
An annotator that desires to make commentary available to any user over the Internet 14 will first register with the annotation service provider 4 as shown by the flowchart in Figure 6 and the data flows of Figure 2. The annotator (e.g. Product Opinions, Inc.) opens an account with the ASP 4 by providing registration data such as company name, types of annotations that will be offered, etc., and sends to the annotation service provider 4 the name of the annotation content server 12 from which annotation pages 22 will be served. In this example, the name of the ACS 12 is www.productopinions . com . The annotation service provider 4 assigns an annotator ID 26 to the annotator and stores the annotator ID 26 in association with the annotation content server name as shown Figure 2. The annotator ID 26 (1234 in this example) is also sent back to the ACS 12 for storage therein and utilization by subsequent processes .
A graphical (or textual) label file is also sent by the annotator to the ASP 4 for storage in the database 32. The label will typically be an icon that is associated with the annotator, and will be displayed to the user during the annotation selection process to enable him to select an annotator in a simple fashion. Figure 8 illustrates a list 54 of annotator labels 56 (with optional text 58) that are shown to the user during the annotation request process as described below. For example, an annotation provided by merrillynch.com would have associated therewith the familiar Merrill Lynch logo as its label 56.
The ASP 4 will then add the newly registered annotator as an available annotator to which a user may subscribe as described below. The newly available annotator may be provided as part of the initial user/client registration process, and it may also be provided to the user as an annotator update process after the user has already initiated its initial annotator subscription. Thus, a message such as "Product Opinions, Inc. is now an available annotator. Would you like to add this to your subscription list?" may be provided to a registered user to allow subscription modifications.
Referring now to Figure 7, once an annotator as registered with the ASP 4, it can undergo the process of registering with the LOAPS 6 an annotation page 22 located at an ACS 12, in order to inform users of the existence of a particular annotation page 22. The annotator generates and locates at the ACS 12 an annotation page 22 such as http : //www.productopinions . com/clockopinion.html . The ACS 12 sends a request over the Internet 14 to the LOAPS 6 for a page ID 25 by providing its annotator ID 26 (1234) and the primary file URL 21 with which the annotation page 22 is associated (http: //www.products .com/clockad) . The LOAPS 6 will receive the request and generate a page ID 25 which uniquely identifies the annotation page 22. The page ID 25 (678 in this example) is stored at the LOAPS 6 in a page table 24 along with the primary file URL 21 as shown in Figure 2. The
LOAPS 6 will also send the page ID 25 back to the ACS 12, and the ACS 12 will store the page ID 25 (678) along with the annotation page URL 23 (http: //www.productopinions . com/clockopinion.html) in a database table 34.
This process may be executed by an authoring tool that will make the process streamlined and user friendly. The authoring tool functions as a database with a visual reference to the annotation pages that the annotator has generated or defined, a list of the primary files with which the annotations have been previously associated, and a list of other web sites that are provided by the ASP that the annotator may be interested in linking with. For example, if the annotator is a product review magazine web site, the ASP may provide in the authoring tool software a list of web sites that sell products that may be desirable to review. This tool will help annotators build a database of annotations, edit the associations, and view the current status, in an easy to use graphical user interface format.
A user's client computer 8 will also have to undergo a registration process with the ASP 4 and LOAPS 6 in order to utilize the annotation system 2 (the LOAPS registration is transparent to the user and may be done "on the fly") . A client subscription table 28 is stored at the LOAPS 6, which has a plurality of client subscription records, each having a user ID 29 field and at least one annotator ID 26 that a user associated with the user ID 29 has subscribed to. Each client subscription record is received by the LOAPS 6 computer from a corresponding client computer 8 during the client registration process in which the client computer 8 selects at least one desired annotator from a list 54 of a plurality of available annotators which has been made available to the client computer 8 by an annotation service provider 4 computer. The client computer 8 stores the annotation content server name of the selected annotators along with an associated annotator ID 26 and a label (56, 58) suitable for display to the user in a client subscription list 30.
With particular reference to Figure 5, a client computer 8 seeking to register with the ASP 4 may send requested user data (i.e. name, email, etc.) to the ASP 4 for logging therein. The client computer 8 will then download a URL detection program that will execute with the client's browser to detect the entry of a primary file URL 21 and pass the URL on to the LOAPS 6 for subsequent processing and annotation access. The ASP 4 will also send to the client a list of available annotators (i.e. already registered) to the client. The user will select the desired annotators to indicate which ones he would like to obtain annotations from. For example, if the user has no interest in annotations from a certain annotator, he would not select it from the subscription list.
The client computer 8 then stores a list of selected annotators and the associated ACSs, annotator IDs 26, and graphical labels as its subscription list 30. The client computer 8 is provided with a user ID 29 from the ASP 4 for future references.
The client computer 8 will then send to the LOAPS 6 its subscription list 30 records, and the LOAPS 6 will update its client subscription table 28 to include these records. This will provide the LOAPS 6 with the needed information to provide to a given client computer 8 a list of annotation page IDs 25 only associated with those annotators desired by the user.
After a user registers as described above, he may utilize the annotation system 2 in order to obtain annotation pages 22 associated with primary files 20, as shown in detail in Figures 2, 4A and 4B . First, a primary file URL 21 is entered by a user into a browser on the client computer 8 by conventional means (i.e. by typed entry, hyperlink selection, etc.) The detection software previously acquired by the client computer 8 from the ASP 4 during registration will observe this URL entry and formulate an annotation query directed at the LOAPS 6, which will include all or a part of the primary file URL 21. The annotation request will also include the user ID 29.
In addition to or instead of the primary file URL, other identifying characteristics of the requested primary file may be used by the system to determine an associated annotation, as explained previously.
The LOAPS 6 receives the annotation query from the client computer 8 and begins the process of analyzing it to determine if an annotation exists for that primary file URL 21 from an annotation content server 12 to which the user has subscribed. First, the LOAPS 6 parses the annotation query to determine the primary file URL 21, and compares the primary file URL 21 against the page table 24. If no records are found that include the primary file URL 21, then a "no annotation" message is returned to the client computer 8 and a message is displayed on the client computer display to inform the user of that there are no annotations for that primary file URL 21. If, however, at least one record is found that includes the primary file URL 21, then the LOAPS 6 extracts the associated annotation page ID 25 for each record and compares the extracted page ID(s) 25 against the annotation table 27 to determine the author of each respective annotation, i.e. the annotator ID(s) 26. The annotator ID(s) 26 are then compared to the subscription table 28, along with the user ID 29 received in the annotation query, to check that the user has in fact subscribed to those annotators. If the user has not subscribed to any of the annotators found, then a "no annotation" message is returned to the client computer 8 and a message is displayed on the display of the client computer 8 to inform the user of that there are no annotations for that primary file URL 21. If, however, a match is found between the user subscription table 28 and the annotator ID 26, then each page ID 25 found and the associated annotator ID 26 are transmitted back to the client computer 8.
The client computer 8 receives the list of page IDs 25 and associated annotator IDs 26 and accesses its database to determine the name of the appropriate ACS 12 and retrieve an associated label 56, 58 for display to the user. If several annotations are available, a list 54 of associated labels is provided in a popup window (see Figure 8) . The user selects the desired annotation (s) , and the client software then uses the associated ACS name and page ID 25 to formulate an HTTP request to the ACS 12 and retrieve the appropriate annotation.
The HTTP request sent to the ACS 12 includes the page ID 25 and the user ID 29. At the ACS 12, the page ID 25 is used to lookup in the database 34 the associated annotation URL 23, and the annotation page 22 is then served back to the client computer 8 for display on the monitor. Typically, the display of the annotation page 22 will be in a window 62 that is smaller than the window 50 in which the primary file 20 is displayed as shown in Figure 9, but of course the choice of display parameters may be left to the option of the user. If more than one annotation is available, the user may opt to select all (or even none) of the annotations for retrieval and display with the primary file 20 as described above. The client computer 8 may also be configured to automatically request all available annotations; or if only one is available, to automatically request that annotation, etc. Other selection schemes may be implemented in accordance with this invention, such as by reference to a predetermined rule such as "always download annotations from www. trustedsource . com" , etc .
Although in the preferred embodiment the annotation page 22 is an HTML page having text and optional graphics, ad banners, etc., the annotation page 22 may also be a multimedia file encompassing sound and/or video files as well, which would be displayed or played to the user by the client computer 8 in accordance with techniques well known in the art .
The LOAPS system topology will now be described in further detail. The technical implementation of the LOAPS system involves two areas; the database (used to hold the annotation information) and the message protocol (used to transmit information between the client computer 8 and the LOAPS and between various LOAPS computers in the LOAPS hierarchy) . LOAPS is modeled after DNS and is distributed in the same manner. A root LOAPS server will exist (maintained by the ASP 4) and will maintain the authoritative database. Secondary servers will maintain copies of the database and refer to higher level servers when their database is incomplete or outdated. Alternatively, the system can run multiple root servers that are peers, and each keep a canonical copy of the LOAPS database. The message protocol supports the peer root servers keeping each other up to date. It is also possible to use the synchronization features built into third party database systems to keep the peers database identical .
As with DNS, any client computer 8 will "point" to a primary LOAPS. They may also have a pointer to a secondary LOAPS should their primary server be unavailable. Each LOAPS itself will also point to a primary LOAPS, until the root LOAPS is reached. The scheme can be extended so that the processing load can scale up to a very large number of users. Additionally, as with DNS, if required by traffic, more than one primary LOAPS can be deployed.
LOAPS servers implement load balancing to manage the large amount of traffic the system 2 must handle. All of the root LOAPS monitor the system load of all other LOAPS and have the ability to direct clients to LOAPS with a lower load than they do. Importantly, the logic for determining whether or not this switch is required is entirely implemented m LOAPS and not m the client software. This allows tuning of the load balancing algorithm without changing the client code. The message protocol includes a mechanism for LOAPS to exchange information specific to each user when switching servers, allowing optimization of each users connection to the LOAPS network. The first version of the LOAPS software was developed under Unix, specifically Red Hat Linux release 5.
The actual database format used by LOAPS is internal to each LOAPS implementation. The public interface to LOAPS is the message protocol. As long as the LOAPS server fully and correctly implements the message protocol, it will not matter what form the internal database is stored in. The first version of LOAPS was developed using PostgreSQL on Red Hat Linux. This is important because a future implementation of the root LOAPS server may be required, for example, to utilize high performance database software like Oracle .
When no annotation is available for a primary file 20, an entry will be created in the LOAPS page table 24. This indication of no annotation will expire in some set amount of time. To determine how long the time is, a back-off strategy was devised as follows. The first time a primary file 20 is marked as not annotated the expiration time will be set to a minimum value, for example 5 minutes. If the primary file entry expires and the primary file 20 is then requested again and not found to be annotated, the expiration time will be doubled (ten minutes in this example) . This will continue until the primary file entry reaches some maximum (perhaps 24 hours) . The objective of this scheme is to reduce the amount of traffic between secondary and root LOAPS .
The actual minimum and maximum time may be determined by heuristic experimentation during the development of the software.
Since the system should not have to check for an annotation for every primary files URL 21 entered by a user, the following solution was devised. The first time a client visits a new site it is returned a flag for entire site. Since most sites will not be annotated this should greatly reduce network traffic. Sites like members.aol.com or Geocities may be handled as a special case (i.e. handle each user page as a separate site) . The results of queries to the LOAPS server are cached on the client to reduce network traffic .
The LOAPS will implement the following database tables:
Page Table 24
Page or Root, Variable Length Character Field. This is the URL of a page which annotation data is available for. Page ID, 16 Bytes. GUID, assigned by Authoring Software. Flag, 4 Bytes. Bit 0: 1-Anotated, O-Not annotated.
Bit 1: 1-Site Annotated, O-Site Not annotated.
Bits 2-31 Reserved, should be set to zero. Expiration Date (only used for not annotated) , 64 Bit Integer. Seconds elapsed since midnight (00:00:00), January 1, 1970, coordinated universal time (UTC) . Request Count : 64 Bit Integer
Annotation Table 27
Page ID, 16 Bytes. GUID, assigned by Authoring Software. Annotator ID, 16 Bytes. GUID, assigned by Annotate.net. Flags, 4 Bytes.
Bit 0: 1-Anotated, O-Not annotated. Bit 1-3: Expiration Scheme.
000 - When page content changes. 001 - Time (as specified in expiration date field.)
010 - Content change or time. All other combinations reserved. Bit 4-31: Reserved, should be set to zero. Annotator Hit Count, 8 Bytes
Checksum or other identifying scheme, 16 Bytes. Expiration Date, 64 Bit Integer. Seconds elapsed since midnight (00:00:00), January 1, 1970, coordinated universal time (UTC) . Request Count: 64 Bit Integer.
User Cache (Subscription Table 28)
User ID, 16 Bytes. GUID, assigned by annotation system Annotator ID, 16 Bytes. GUID, assigned by annotation system
LOAPS Message Protocol
The message protocol has now been converted to XML.
XML has been chosen to facilitate the use of the client software behind firewall's and proxies. The message protocol is transmitted using HTTP 1.1 for the same reason.
# Sent from Detector to LOAPS
# Is this page annotated <LOAPS MSG="QUERY" VERSION="l"> <UGUIDx/UGUID>
<URLx/URL>
<LASTTIMEx/LASTTIME>
<DATAx/DATA>
<SERIALNUMx/SERIALNUM> </LOAPS>
# Sent from LOAPS to Detector
# Page annotated results
<LOAPS MSG="QUERY-RESP" VERSI0N="1"> <UGUIDx/UGUID> <PGUIDx/PGUID> <AGUID-LIST>
<AGUIDx/AGUID> </AGUID-LIST> <NEXTSERVER>
<SERVERx/SERVER> <DATA></DATA> </NEXTSERVER> </LOAPS>
# Sent from LOAPS to Detector
# LOAPS does not have uptodate Subscription List <LOAPS MSG="UNK-USER" VERSION="l">
<UGUIDx/UGUID> <NEXTSERVER>
<SERVERx /SERVER> <DATAx /DATA> < /NEXTSERVER> </ LOAPS > # Sent from Detector to LOAPS
# List of subscribers
<LOAPS MSG="ANTLIST" VERSION="l"> <UGUIDx/UGUID> <SERIALNUMx/SERIALNUM> <LAΞTTIMEx/LASTTIME> <ANNOTATOR-LIST> <ANNOTATOR>
<AGUIDx/AGUID> <SERIALNUMx/SERIALNUM>
</ANNOTATOR> </ANNOTATOR-LIST> </LOAPS>
# Send from LOAPS to Detector
<LOAPS MSG="ANTUPDATE" VERSION="l"> <ANNOTATOR-LIST> <ANNOTATOR>
<AGUIDx/AGUID> <SERIALNUMx/SERIALNUM>
<NAMEx/NAME> <SERVER></SERVER> <MODEx/MODE> <XPx/XP> <YPx/YP>
<WPx/WP> <HPx/HP> <PNGx/PNG> </ NNOTATOR> </ANNOTATOR-LIST> <NEXTSERVER>
<SERVERx/SERVER> <DATAx/DATA> </NEXTSERVER> </LOAPS>
# Sent from LOAPS to Detector <LOAPS MSG= "DISPLAY" VERSION="l">
<MSG TYPE= " INFO | LINK | RECUPGRADE | FORCEUPGRADE " x/MSG> <URLx/URL> <NEXTSERVER>
<SERVERx/SERVER> <DATAx/DATA> </NEXTSERVER> </LOAPS>
# Sent from Authoring Tool to LOAPS <LOAPS MSG="UPDATE-TOOL" VERSION="l"> <AGUIDx/AGUID> <FLAG></FLAG> <CHECKSUMx/CHECKSUM> <EXPIRESx/EXPIRES> <EXPIRES-START></EXPIRES-START> <URLx/URL> </LOAPS>
# Sent from LOAPS to Authoring Tool <LOAPS MSG= "REPLY-TOOL" VERSION="l">
<PGUIDx/PGUID> <FLAGx/FLAG> </LOAPS>
# Sent from Authoring Tool to LOAPS <LOAPS MSG="RETRACT" VERSION="l"> <AGUIDx/AGUID> <URLx/URL> </LOAPS>
# Sent from Detector to LOAPS <LOAPS MSG="TRACK-DUMP3 " VERSION="l">
<LASTTIMEx/LASTTIME> <DATAx/DATA> <UGUIDx/UGUID> <TRACK-LIST> <TRACK-ENTRY>
<PGUIDx/PGUID> <AGUIDx/AGUID> <WHENx/WHEN>
</TRACK-ENTRY> <SEARCH-ENTRY> <STRx/STR> <WHEN></WHEN> </SEARCH-ENTRY>
<PAGE-ENTRY> <STRx/STR> <WHENx/WHEN> </PAGE-ENTRY> </TRACK-LIST> </LOAPS>
111 III I II 11111 II Below Depriciated
# Sent from Detector to LOAPS
<LOAPS MSG="TRACK-DUMP" VERSION="l"> <UGUIDx/UGUID> <TRACK-LIST> <TRACK-ENTRY>
<PGUIDx/PGUID> <AGUIDx/AGUID> <WHEN></WHEN> </TRACK-ENTRY>
</TRACK-LIST> </LOAPS>
//////////////////////////// <LOAPS MSG=" PATCH" VERSION="l"> <VERSIONx/VERSION> <DATAx/DATA> </LOAPS>
<LOAPS MSG="GET-LOAPS-LIST" VERSION="l"> <UGUIDx/UGUID>
<VERSIONx/VERSION> <DATAx/DATA> </LOAPS>
<LOAPS MSG="LOAPS-LIST" VERSION="l"> <LOAPS-LIST>
<LOAPSx/LOAPS> </LOAPS-LIST> </LOAPS>

Claims

I CLAIM :
1. A method of providing an annotation page associated with a primary file comprising the steps of: a) requesting access to the primary file by a client computer; b) determining at a list of annotated page server (LOAPS) computer if at least one annotation page has been previously associated with the requested primary file; c) if at least one annotation page has been previously associated with the requested primary file, then : i) downloading from the LOAPS to the client computer an annotation index associated with each annotation page determined to be associated with the requested primary file, and ii) the client computer utilizing the annotation index to request access to an annotation page associated with the requested primary file.
2. The method of claim 1 wherein the step of requesting access to an annotation page comprises the steps of
A) displaying at the client computer an annotation page label associated with each annotation index downloaded from the LOAPS; and
B) selecting by the user a desired annotation page label to indicate the annotation page for which access is requested.
3. The method of claim 1 wherein one annotation index is downloaded to the client computer and the client computer automatically requests access to the associated annotation page .
4. The method of claim 1 wherein a plurality of annotation indexes are downloaded to the client computer and the client computer requests access to at least one associated annotation page.
5. The method of claim 4 wherein the annotation pages requested are determined by reference to a predetermined rule .
6. The method of claim 1 wherein a plurality of annotation indexes are downloaded to the client computer and the client computer requests access to all the associated annotation pages .
7. The method of claim 1 further comprising the step of transferring the requested annotation page to the client computer.
8. The method of claim 7 wherein the annotation page comprises visual elements that are displayed at the client computer .
9. The method of claim 8 wherein the requested primary file comprises visual elements and is transferred to the client computer for display thereon.
10. The method of claim 9 wherein the displayed visual elements of the annotation page are in a popup window that covers a substantially smaller portion of the client computer display than does the display of the visual elements of the primary file.
11. The method of claim 7 wherein the annotation page comprises audible elements which are played by a software routine at the client computer.
12. The method of claim 1 wherein the step of determining if at least one annotation page has been previously associated with the requested primary file comprises the steps of:
i) detecting an identifying characteristic of the requested primary file; and ii) transmitting at least a portion of the detected identifying characteristic to the LOAPS for analysis thereat.
13. The method of claim 12 wherein the identifying characteristic of the requested primary file comprises a URL associated with the requested primary file.
14. The method of claim 12 wherein the identifying characteristic of the requested primary file comprises a field contained within with the requested primary file.
15. The method of claim 13 wherein the LOAPS analyzes the portion of the primary file URL by the steps of :
A) comparing the portion of the primary file URL to a database table; and B) extracting any associated annotation indexes found in the database table .
16. The method of claim 15 wherein the annotation index comprises an annotation page ID and an annotator ID.
17. The method of claim 16 wherein the annotator ID is compared to a client subscription table to determine if the client computer has previously subscribed to an annotator associated with the annotator ID.
18. The method of claim 17 wherein the annotation page ID and the annotator ID are transmitted to the client computer only if the client computer has subscribed to the annotator associated with the annotator ID.
19. The method of claim 18 wherein the client computer utilizes the annotator ID to determine the network address of the annotation content server on which the annotation page is located.
20. The method of claim 19 wherein the client computer requests access to the annotation page by sending a message comprising the network address of the annotation content server on which the annotation page is located, the requested primary file URL, and the annotation page ID.
21. The method of claim 20 wherein the annotation content server utilizes the annotation page ID to retrieve the annotation page to the client computer.
22. The method of claim 1 wherein, prior to the step of determining at the LOAPS, the client computer executes the steps of :
determining an identification of a primary content server computer associated with the requested primary file, determining if a no-annotation flag has been set to indicate that no annotation files exist for any primary file on the associated primary content server, and only carrying out the step of determining at the LOAPS if at least one annotation page has been previously associated with the requested primary file if the no-annotation flag has not been set.
23. The method of claim 22 wherein the no-annotation flag is set by a field in a message returned by the LOAPS as a result of a query by the client computer to the LOAPS for an annotation page associated with the required primary file.
24. The method of claim 18 wherein the client subscription table comprises a plurality of client subscription records, each of said client subscription records comprising a user ID field and at least one annotator ID that a user associated with the user ID has subscribed to.
25. The method of claim 24 wherein each client subscription record is received by the LOAPS computer from a corresponding client computer during a client registration process.
26. The method of claim 25 wherein the client registration process further comprises the steps of :
the client computer selecting at least one desired annotator from a list of a plurality of available annotators which has been made available to the client computer by an annotation service provider computer,
the client computer storing the annotation content server name of the selected annotators along with an associated annotator provider ID and a label suitable for display to the user; and
the user is assigned a user ID.
27. The method of claim 26 further comprising an annotation provider registration process comprising the steps of :
the annotator sending to the annotation service provider the name of the annotation content server on which annotation pages will be stored,
the annotation service provider assigning an annotator ID to the annotator and storing the annotator ID in association with the annotation content server name.
28. The method of claim 27 further comprising an annotation page registration process comprising the steps of : the annotator locating an annotation page associated with a primary file at the annotation content server,
the annotator sending a URL associated with the primary file and its annotator ID to the LOAPS,
the LOAPS associating the primary file URL with a page ID which is unique,
the LOAPS storing in a page table the primary file URL and the page ID,
the LOAPS storing the page ID with the annotator ID, and
the LOAPS sending the page ID to the annotation content server for storage in association with the primary file URL.
29. A computer system comprising a plurality of computers interconnected to a network, said computers comprising:
(a) a primary content server computer comprising means for storing a primary file located at a primary file URL;
(b) an annotation content server computer comprising means for storing an annotation page located at an annotation page URL; (c) a client computer comprising: means for requesting access to the primary file utilizing a URL associated therewith, means for detecting an identifying characteristic of the requested primary file, means for transmitting at least a portion of the primary file identifying characteristic to the LOAPS for analysis thereat, means for utilizing an annotation index associated with the primary file identifying characteristic to request access to an annotation page associated with the requested primary file; and
(d) a list of annotated pages server computer (LOAPS) comprising: means for determining if at least one annotation page has been previously associated with the requested primary file; and means for downloading to the client computer an annotation index associated with each annotation page determined to be associated with the requested primary file;
whereby the client computer utilizes the annotation index to request access to the annotation page associated with the requested primary file.
30. The system of claim 29 wherein the client computer further comprises: means for displaying an annotation page label associated with each annotation index downloaded from the LOAPS; and means for inputting a selection by the user of a desired annotation page label to indicate the annotation page for which access is requested.
31. The system of claim 29 wherein one annotation index is downloaded to the client computer and the client computer automatically requests access to the associated annotation page.
32. The system of claim 29 wherein a plurality of annotation indexes are downloaded to the client computer and the client computer requests access to at least one associated annotation page.
33. The system of claim 32 wherein the annotation pages requested are determined by reference to a predetermined rule .
34. The system of claim 29 wherein a plurality of annotation indexes are downloaded to the client computer and the client computer requests access to all the associated annotation pages.
35. The system of claim 29 wherein the annotation content server computer further comprises means for transferring the requested annotation page to the client computer.
36. The system of claim 35 wherein the client computer comprises means for displaying visual elements of an annotation page.
37. The system of claim 36 wherein the client computer comprises means for displaying visual elements of the requested primary file.
38. The system of claim 37 wherein the means for displaying visual elements of an annotation page comprises a popup window that covers a substantially smaller area than the means for displaying visual elements of the requested primary file.
39. The system of claim 35 wherein the client computer further comprises means for playing audible elements of the annotation page.
40. The system of claim 29 wherein the identifying characteristic is a URL associated with the requested primary file.
41. The system of claim 29 wherein the identifying characteristic is a field contained within with the requested primary file.
42. The system of claim 40 wherein the means for determining if at least one annotation page has been previously associated with the requested primary file comprises:
database means for storing a plurality of records associating a primary file URL with an annotation index, and means for comparing the portion of the primary file URL to the records of the database table; and means for extracting annotation indexes associated with the primary file URL from the database means.
43. The system of claim 42 wherein the annotation index comprises an annotation page ID and an annotator ID.
44. The system of claim 43 wherein the LOAPS further comprises a client subscription table and means for comparing the annotator ID found to be associated with the primary file URL to the client subscription table to determine if the client computer has previously subscribed to an annotation content server associated with the annotator ID.
45. The system of claim 44 wherein the annotation page ID and the annotator ID are transmitted to the client computer only if the client computer has subscribed to the annotator associated with the annotator ID.
46. The system of claim 45 wherein the client computer comprises means for utilizing the annotator ID to determine the network address of the annotation content server on which the annotation page is located.
47. The system of claim 46 wherein the means for utilizing an annotation index to request access to an annotation page associated with the requested primary file operates by: sending a message comprising the network address of the annotation content server on which the annotation page is located, the requested primary file URL, and the annotation page ID.
48. The system of claim 47 wherein the annotation content server comprises means for utilizing the annotation page ID to retrieve the annotation page to the client computer.
49. The system of claim 29 wherein the client computer further comprises means for executing the following steps: determining an identification of a primary content server computer associated with the requested primary file, determining if a no-annotation flag has been set to indicate that no annotation files exist for any primary file on the associated primary content server, and only communicating with the LOAPS if the no- annotation flag has not been set.
50. The system of claim 49 wherein the no-annotation flag is set by a field in a message returned by the LOAPS as a result of a query by the client computer to the LOAPS for an annotation page associated with the required primary file.
51. The system of claim 45 wherein the client subscription table comprises a plurality of client subscription records, each of said client subscription records comprising a user ID field and at least one annotator ID that a user identified by the user ID and associated with the client computer has subscribed to.
52. The system of claim 51 further comprising an annotation service provider computer which comprises means for executing a client registration process with the client computer, and wherein the client computer further comprises means for executing the client registration process with the annotation service provider computer, and wherein each client subscription record is sent to the LOAPS computer from a corresponding client computer during the client registration process.
53. The system of claim 52 wherein:
the client computer means for executing the client registration process with the annotation service provider computer further comprises:
means for selecting at least one desired annotator from a list of a plurality of available annotators which has been made available to the client computer by the annotation service provider computer,
means for storing the name of each annotation content server associated with the selected annotators along with an associated label suitable for display to the user; and wherein
the annotation service provider computer means for executing a client registration process with the client computer further comprises means for providing the client computer with a user ID.
54. The system of claim 53 wherein the annotation service provider computer further comprises means for executing an annotation provider registration process with the annotator, comprising: means for obtaining from the annotator the name of the annotation content server on which annotation pages will be stored,
means for the assigning an annotator ID to the annotator and
means for storing the annotator ID in association with the annotation content server name.
55. The system of claim 54 wherein the annotator further comprises means for executing an annotation page registration process with the LOAPS comprising:
means for locating an annotation page associated with a primary file at the annotation content server,
means for sending its annotator ID and a URL associated with the primary file to the LOAPS,
and wherein the LOAPS further comprises means for executing the annotation registration process with the annotator comprising:
means for associating the primary file URL with an annotation page ID which is unique,
means for storing in a page table the primary file URL and the annotation page ID,
means for storing in an annotation table the annotation page ID and the annotator ID, and
means for sending the annotation page ID to the annotation content server for storage in association with the primary file URL.
56. A client computer comprising: means for requesting access to a primary file located at a primary content server computer by utilizing a URL associated therewith, means for detecting an identifying characteristic of the requested primary file; means for transmitting at least a portion of the primary file identifying characteristic to a list of annotated pages server computer (LOAPS) for analysis thereat; means for downloading from the LOAPS an annotation index associated with each annotation page determined by the LOAPS to be associated with the requested primary file, and means for utilizing a downloaded annotation index to request access to an annotation page associated with the requested primary file.
57. The client computer of claim 56 further comprising: means for displaying an annotation page label associated with each downloaded annotation index; and means for inputting a selection by a user of a desired annotation page label to indicate an annotation page for which access is requested.
58. The client computer of claim 56 wherein the means for utilizing a downloaded annotation index to request access to an annotation page associated with the requested primary file automatically requests access to a single associated annotation page.
59. The client computer of claim 56 wherein the means for utilizing a downloaded annotation index to request access to an annotation page associated with the requested primary file automatically requests access to one of a plurality of available associated annotation pages by reference to a predetermined rule.
60. The client computer of claim 59 further comprising means for displaying visual elements of an annotation page.
61. The client computer of claim 60 further comprising means for displaying visual elements of the requested primary file.
62. The client computer of claim 61 wherein the means for displaying visual elements of an annotation page comprises a popup window that covers a substantially smaller portion of the means for displaying visual elements of the requested primary file.
63. The client computer of claim 60 further comprising means for playing audible elements of the annotation page.
64. The client computer of claim 56 wherein the annotation index comprises an annotation page ID and an annotator ID.
65. The client computer of claim 64 further comprising means for utilizing the annotator ID to determine the network address of the annotation content server on which the annotation page is located.
66. The client computer of claim 65 wherein the means for utilizing an annotation index to request access to an annotation page associated with the requested primary file operates by sending a message comprising the network address of the annotation content server on which the annotation page is located, and the annotation page ID.
67. The client computer of claim 65 wherein the means for detecting an identifying characteristic of the requested primary file comprises means for detecting the URL.
68. The client computer of claim 65 wherein the means for detecting an identifying characteristic of the requested primary file comprises means for detecting a field contained within the requested primary file .
69. A list of annotated pages server (LOAPS) computer adapted to operate in conjunction with an annotation content server computer to assist a client computer in obtaining an annotation page associated with a primary file having an associated identifying characteristics requested by the client computer, the LOAPS comprising: means for receiving from the client computer at least a portion of the primary file identifying characteristics ; means for determining if at least one annotation page has been previously associated with the requested primary file by analyzing the portion of the primary file identifying characteristics; and means for sending to the client computer an annotation index associated with each annotation page determined to be associated with the requested primary file.
70. The LOAPS of claim 69 wherein the means for determining if at least one annotation page has been previously associated with the requested primary file comprises:
database means for storing a plurality of records associating a primary file identifying characteristic with an annotation index, means for comparing the portion of the primary file URL to the records of the database table; and means for extracting annotation indexes associated with the primary file identifying caracteristic from the database means .
71. The LOAPS of claim 70 wherein the identifying characteristic is a URL associated with the requested primary file.
72. The LOAPS of claim 70 wherein the identifying characteristic is a field in the requested primary file.
73. The LOAPS of claim 71 wherein the annotation index comprises an annotation page ID and an annotator ID.
74. The LOAPS of claim 73 further comprising a client subscription table and means for comparing the annotator ID found to be associated with the primary file URL to the client subscription table to determine if the client computer has previously subscribed to an annotation content server associated with the annotator ID.
75. The LOAPS of claim 74 wherein the annotation page ID and the annotator ID are transmitted to the client computer only if the client computer has subscribed to the annotator associated with the annotator ID.
76. The LOAPS of claim 75 wherein the client subscription table comprises a plurality of client subscription records, each of said client subscription records comprising a user ID field and at least one annotator ID that a user identified by the user ID and associated with the client computer has subscribed to.
77. The LOAPS of claim 76 further comprising means for executing an annotation page registration process with an annotation content server computer comprising:
means for receiving from the annotation content server computer a URL associated with the primary file and its annotator ID,
means for associating the primary file URL with an annotation page ID which is unique,
means for storing in a page table the primary file URL and the annotation page ID,
means for storing in an annotation table the annotation page ID with the annotator ID, and means for sending the annotation page ID to the annotation content server for storage in association with the primary file URL.
78. An annotation service provider computer adapted to operate, in conjunction with an annotation content server computer associated with an annotator and a list of annotated pages server (LOAPS) computer, to assist a client computer in obtaining an annotation page associated with a primary file requested by the client computer, the annotation service provider computer comprising:
means for executing an annotation provider registration process with the annotator, comprising: means for obtaining from the annotator the name of the annotation content server on which annotation pages will be stored, means for the assigning an annotator ID to the annotator, means for storing the annotator ID in association with the annotation content server name, and means for sending to the annotator the annotator ID; and
means for executing a client registration process with the client computer comprising: means for providing to the client computer a list of available annotators for selection thereof by the client computer, means for receiving a set of selected annotators from the client computer, means for providing to the client computer the annotation content server names of the selected annotators along with an associated annotator provider ID and a label suitable for display to the user; and means for providing the client computer with a user ID.
PCT/US2000/020201 1999-07-30 2000-07-25 Method and system for accessing annotation web pages related to primary web pages over the internet WO2001009738A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU63725/00A AU6372500A (en) 1999-07-30 2000-07-25 Method and system for accessing annotation web pages related to primary web pages over the internet

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US14656099P 1999-07-30 1999-07-30
US60/146,560 1999-07-30
US15430199P 1999-09-16 1999-09-16
US60/154,301 1999-09-16

Publications (1)

Publication Number Publication Date
WO2001009738A1 true WO2001009738A1 (en) 2001-02-08

Family

ID=26844057

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/020201 WO2001009738A1 (en) 1999-07-30 2000-07-25 Method and system for accessing annotation web pages related to primary web pages over the internet

Country Status (2)

Country Link
AU (1) AU6372500A (en)
WO (1) WO2001009738A1 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100312771A1 (en) * 2005-04-25 2010-12-09 Microsoft Corporation Associating Information With An Electronic Document
US8751559B2 (en) 2008-09-16 2014-06-10 Microsoft Corporation Balanced routing of questions to experts
WO2014145362A2 (en) * 2013-03-15 2014-09-18 Incentives Iq, Inc. System and method for associating electronic content on a computer network
US9170989B2 (en) 2006-06-15 2015-10-27 Social Commenting, Llc System and method for facilitating posting of public and private user comments at a web site
US9195739B2 (en) 2009-02-20 2015-11-24 Microsoft Technology Licensing, Llc Identifying a discussion topic based on user interest information
JP2016177849A (en) * 2016-06-29 2016-10-06 富士通株式会社 Annotation control method, annotation control program, annotation control system, display program, display method, and display control device
CN109712674A (en) * 2019-01-14 2019-05-03 深圳市泰尔迪恩生物信息科技有限公司 Annotations database index structure, quick gloss hereditary variation method and system
US11797752B1 (en) 2022-06-21 2023-10-24 Dropbox, Inc. Identifying downloadable objects in markup language

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5231578A (en) * 1988-11-01 1993-07-27 Wang Laboratories, Inc. Apparatus for document annotation and manipulation using images from a window source
US5581682A (en) * 1991-06-28 1996-12-03 International Business Machines Corporation Method for storing and retrieving annotations and redactions in final form documents
US5625833A (en) * 1988-05-27 1997-04-29 Wang Laboratories, Inc. Document annotation & manipulation in a data processing system
US5663748A (en) * 1995-12-14 1997-09-02 Motorola, Inc. Electronic book having highlighting feature
US5826025A (en) * 1995-09-08 1998-10-20 Sun Microsystems, Inc. System for annotation overlay proxy configured to retrieve associated overlays associated with a document request from annotation directory created from list of overlay groups
US5931907A (en) * 1996-01-23 1999-08-03 British Telecommunications Public Limited Company Software agent for comparing locally accessible keywords with meta-information and having pointers associated with distributed information
US6081829A (en) * 1996-01-31 2000-06-27 Silicon Graphics, Inc. General purpose web annotations without modifying browser

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5625833A (en) * 1988-05-27 1997-04-29 Wang Laboratories, Inc. Document annotation & manipulation in a data processing system
US5680636A (en) * 1988-05-27 1997-10-21 Eastman Kodak Company Document annotation and manipulation in a data processing system
US5231578A (en) * 1988-11-01 1993-07-27 Wang Laboratories, Inc. Apparatus for document annotation and manipulation using images from a window source
US5581682A (en) * 1991-06-28 1996-12-03 International Business Machines Corporation Method for storing and retrieving annotations and redactions in final form documents
US5826025A (en) * 1995-09-08 1998-10-20 Sun Microsystems, Inc. System for annotation overlay proxy configured to retrieve associated overlays associated with a document request from annotation directory created from list of overlay groups
US5663748A (en) * 1995-12-14 1997-09-02 Motorola, Inc. Electronic book having highlighting feature
US5931907A (en) * 1996-01-23 1999-08-03 British Telecommunications Public Limited Company Software agent for comparing locally accessible keywords with meta-information and having pointers associated with distributed information
US6081829A (en) * 1996-01-31 2000-06-27 Silicon Graphics, Inc. General purpose web annotations without modifying browser

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100312771A1 (en) * 2005-04-25 2010-12-09 Microsoft Corporation Associating Information With An Electronic Document
US9170989B2 (en) 2006-06-15 2015-10-27 Social Commenting, Llc System and method for facilitating posting of public and private user comments at a web site
US8751559B2 (en) 2008-09-16 2014-06-10 Microsoft Corporation Balanced routing of questions to experts
US9195739B2 (en) 2009-02-20 2015-11-24 Microsoft Technology Licensing, Llc Identifying a discussion topic based on user interest information
WO2014145362A2 (en) * 2013-03-15 2014-09-18 Incentives Iq, Inc. System and method for associating electronic content on a computer network
WO2014145362A3 (en) * 2013-03-15 2014-12-24 Incentives Iq, Inc. System and method for associating electronic content on a computer network
JP2016177849A (en) * 2016-06-29 2016-10-06 富士通株式会社 Annotation control method, annotation control program, annotation control system, display program, display method, and display control device
CN109712674A (en) * 2019-01-14 2019-05-03 深圳市泰尔迪恩生物信息科技有限公司 Annotations database index structure, quick gloss hereditary variation method and system
CN109712674B (en) * 2019-01-14 2023-06-30 深圳市泰尔迪恩生物信息科技有限公司 Annotation database index structure, and method and system for rapidly annotating genetic variation
US11797752B1 (en) 2022-06-21 2023-10-24 Dropbox, Inc. Identifying downloadable objects in markup language

Also Published As

Publication number Publication date
AU6372500A (en) 2001-02-19

Similar Documents

Publication Publication Date Title
US6564217B2 (en) Data communication system that transmits the selected contents and menu onto the network for delivery to the client computer
US7702675B1 (en) Automated categorization of RSS feeds using standardized directory structures
US8458161B2 (en) Method, product, and apparatus for enhancing resolution services, registration services, and search services
AU2007332917B2 (en) Method and system for intellegent processing of electronic information
US6760746B1 (en) Method, product, and apparatus for processing a data request
US6636854B2 (en) Method and system for augmenting web-indexed search engine results with peer-to-peer search results
US6212522B1 (en) Searching and conditionally serving bookmark sets based on keywords
US6895430B1 (en) Method and apparatus for integrating resolution services, registration services, and search services
JP3307625B2 (en) Electronic bulletin board system and mail server
US7107264B2 (en) Content bridge for associating host content and guest content wherein guest content is determined by search
EP0848338A1 (en) Server providing documents according to user profiles
US20040059793A1 (en) Method and system for virtual website domain name service
EP0848339B1 (en) Server with automatic loading of menus
JP2004511932A (en) Method and system for communicating selected search results between first and second entities over a network
JP2002073678A (en) System and method for sharing retrieval engine inquiry web base
US20050182677A1 (en) Method and/or system for providing web-based content
US20090089245A1 (en) System and method for contextual commands in a search results page
WO2001009738A1 (en) Method and system for accessing annotation web pages related to primary web pages over the internet
EP0848336A1 (en) Server with automatic update tracking
US8996514B1 (en) Mobile to non-mobile document correlation
US20060031118A1 (en) Method and system for locating a service by an electronic device
US20040267748A1 (en) System for accessing web page using real name and method thereof
JP5155130B2 (en) Category presentation device
JP2003271647A (en) Browsing file data providing method, browsing frequency data providing method, relay device therefor, program and storage medium
KR100336115B1 (en) Method for lower domain service and system for the same

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP