A method and system for adding annotations to content of a webpage provided by a content server includes identifying a portion of the content of the webpage and applying an annotation to the identified portion of the content. The annotation is associated with the identified portion. The annotation and its association with the identified portion is saved on an annotations server and a link is generated to an annotated webpage wherein the content for webpage is received from a content server and the annotation is received from the annotations server. The link is sharable so as to enable others to view the annotation associated with the identified portion of the content.
|
1. A method for adding annotations to content of a webpage provided by a content server, comprising:
identifying a portion of the content of the webpage;
applying an annotation to the identified portion of the content by associating the annotation to an element defining the identified portion of the content of the webpage, wherein the webpage includes one or more elements defining the contents within the webpage, wherein the element is a webpage element that defines location and rendering style of the content on the webpage and the association is enabled by graphically moving the annotation in close proximity to the element defining the identified portion;
saving the annotation and its association with the element defining the identified portion on an annotations server, wherein the applied annotation and data defining the element are saved on the annotations server independently from the webpage;
dynamically changing visual representation of the identified portion of the content of the webpage associated with the annotation, the change in visual representation indicative of a presence of annotation at the identified portion of the content of the webpage; and
generating a link to an annotated webpage, wherein the annotated webpage includes contents obtained from the content server and the annotation meta data for the annotation associated with the element defining the identified portion from the annotations server, wherein the link to the annotated webpage provides access to view the webpage with the annotation, wherein the link is sharable to enable accessing and viewing by others of the annotation being associated with the identified portion of the content,
wherein the annotation is transferable from the identified portion of the content of the webpage to a second portion of the content of the webpage, the second portion of the content defined by a second element that is distinct from the element defining the identified portion, the transferring of annotation includes,
graphically moving the annotation from the identified portion of the content of the webpage to a location in close proximity to the second portion of the content, the graphical movement resulting in disassociation of the annotation from the element defining the identified portion and application of the annotation to the second portion of content by re-associating the annotation to the second element of the webpage.
10. A computer implemented method for enabling addition of annotations to content of a webpage provided by a content server, comprising:
enabling application of an annotation to an identified portion of the content by associating the annotation to an element defining the identified portion within the content of the webpage, wherein the webpage includes one or more elements defining the contents of the webpage, wherein the element is a webpage element that defines location and rendering style of the content on the webpage and the association is enabled by graphically moving the annotation in close proximity to the element defining the identified portion;
upon application of the annotation, causing the annotation and its association with the element defining the identified portion to be saved on an annotations server, wherein the applied annotation and data defining the identified portion are saved on the annotations server independently from the webpage;
dynamically changing visual representation of the identified portion of the content of the webpage associated with the annotation, the change in visual representation indicative of a presence of annotation at the identified portion of the content of the webpage; and
generating a link to an annotated webpage, the annotated webpage includes content obtained from the content server and the annotation associated with the element of the identified portion obtained from the annotations server, wherein the link to the annotated webpage provides access to view the webpage with the annotation, wherein the link is sharable to enable accessing and viewing by others of the annotation associated with the identified portion of the content and
wherein the annotation is transferable from the identified portion of the content of the webpage to a second portion of the content of the webpage, the second portion of the content defined by a second element that is distinct from the element defining the identified portion, the transferring of annotation includes,
graphically moving the annotation from the identified portion of the content of the webpage to a location in close proximity to the second portion of the content, the graphical movement resulting in disassociation of the annotation from the element defining the identified portion and application of the annotation to the second portion of content by re-associating of the annotation to the second element of the webpage.
16. A system for implementing addition of annotations to content of a webpage provided by a content server, comprising:
a client device configured to execute an annotation processor script, the annotation processor script capable of:
identifying a portion of the content of the webpage;
applying an annotation to the identified portion of the content by associating the annotation to an element defining the identified portion of the content of the webpage wherein the webpage includes one or more elements defining the contents within the webpage, the element being a webpage element that defines location and rendering style of the content on the webpage and the association is enabled by graphically moving the annotation in close proximity to the element defining the identified portion;
transmitting the annotation associated with the element defining the identified portion of the content to a server; and
the server equipped with an annotation persistence program, the annotation persistence program configured to
receiving the annotation associated with the element defining the identified portion of the content of the webpage transmitted by the client;
saving the annotation and its association with the element defining the identified portion on an annotations server, wherein the applied annotation and data defining the identified portion are saved on the annotations server independently from the webpage;
dynamically changing visual representation of the identified portion of the content of the webpage associated with the annotation, the change in visual representation indicative of a presence of annotation at the identified portion of the content of the webpage; and
generating a link to an annotated webpage, the annotated webpage includes content obtained from the content server and the annotation for the annotation associated with the element of the identified portion obtained from the annotations server, wherein the link to the annotated webpage provides access to view the webpage with the annotation, wherein the link is sharable to enable accessing and viewing of the annotation associated with the identified portion by others,
wherein the annotation is transferable from the identified portion of the content of the webpage to a second portion of the content of the webpage, the second portion of the content defined by a second element that is distinct from the element defining the identified portion, the transferring of annotation includes,
graphically moving the annotation from the identified portion of the content of the webpage to a location in close proximity to the second portion of the content, the graphical movement resulting in disassociation of the annotation from the element defining the identified portion and application of the annotation to the second portion of content by re-associating the annotation to the second element of the webpage.
2. The method for adding annotations to content of a webpage provided by a content server of
3. The method for adding annotations to content of a webpage provided by a content server of
saving the annotation and its re-association with the second element in the annotations server; and
dynamically changing visual representation of both the first portion and the second portion of the content of the webpage associated with the annotation, the change in visual representation of the first portion indicative of an absence of the annotation at the first portion of the content of the webpage due to the removal of the association of the annotation with the element and the change in visual representation of the identified second portion indicative of a presence of annotation at the identified second portion of the content of the webpage;
wherein the annotated webpage reflects the change in the association of the annotation at the first portion and the second portion of the content of the webpage.
4. The method for adding annotations to content of a webpage provided by a content server of
5. The method for adding annotations to content of a webpage provided by a content server of
6. The method for adding annotations to content of a webpage provided by a content server of
7. The method for adding annotations to content of a webpage provided by a content server of
associating a unique key to a set of annotations defined on the webpage.
8. The method for adding annotations to content of a webpage provided by a content server of
receiving one or more share parameters associated with the annotation, wherein the share parameters define accessibility of a select set of annotations defined on the webpage to one or more users; and
saving the share parameters along with the annotation on the annotations server, wherein the share parameters used in restricting access to the select set of annotations to the one or more users,
wherein the share parameters include any one or more of name, group name, Email address, annotation URL, private access, private access password, public access, annotator identifier, webpage identifier and annotation data,
wherein annotation data further includes the element associated with the identified portion, annotation type, annotation content.
9. The method for adding annotations to content of a webpage provided by a content server of
11. The computer implemented method for enabling addition of annotations to content of a webpage provided by a content server of
wherein the annotation processor script makes one or more asynchronous requests for annotation meta data.
12. The computer implemented method for enabling addition of annotations to content of a webpage provided by a content server of
13. The computer implemented method for enabling addition of annotations to content of a webpage provided by a content server of
saving the annotation and its re-association with the second element in the annotations server; and
dynamically changing visual representation of both the first portion and the second portion of the content of the webpage associated with the annotation, the change in visual representation of the first portion indicative of an absence of the annotation at the first portion of the content of the webpage due to the removal of the association of the annotation with the element and the change in visual representation of the identified second portion indicative of a presence of annotation at the identified second portion of the content of the webpage;
wherein the annotated webpage reflects the change in the association of the annotation at the first portion and the second portion of the content of the webpage.
14. The computer implemented method for enabling addition of annotations to content of a webpage provided by a content server of
receiving one or more share parameters associated with the annotation, wherein the share parameters define accessibility of the annotation for one or more users; and
saving the share parameters associated with the annotation along with the annotation on the annotations server based on an unique identifier, wherein the share parameters and the unique identifier used in restricting access to the annotation to the one or more users.
15. The computer implemented method for enabling addition of annotations to content of a webpage provided by a content server of
17. The system for implementing addition of annotations to content of a webpage provided by a content server of
wherein the annotation persistence program is capable of generating the link to the annotated webpage based on the share parameters received.
|
1. Field of the Invention
The present invention relates generally to client-server computing systems, and more particularly to, a method and system for providing HTML page annotations on the client using AJAX.
2. Description of the Related Art
The Internet, also commonly referred to as the Web, provides a means for publishing documents (e.g. pages) and providing access to vast amounts of documents already published. A user may access a certain document on the Web and may want to share comments regarding the contents of the document with one or more users. A user, desiring to collaborate with a group of users regarding specific content of the document, has to do so by extracting the contents of the relevant document and sharing the contents with the group of users. This could be accomplished by accessing the document on the Web, scrolling down to the actual location of the specific content to be shared, extracting the specific content into a document along with a link to the webpage and sharing this document with other users through an email. The recipient(s) of the email will have to go to the webpage using the link provided in the document, scroll down to the location of the specific content, read the content and relate the content with the comments provided by the first user in the email. If the recipient needs to respond to the comments back to the first user or share his/her comments with the group of users, the recipient has to follow the steps outlined above and send the email with his/her comments back to other users including the first user. This sort of collaboration becomes cumbersome given the amount of the information available on the Web and length of some of the documents. Also, scrolling through pages of documents trying to locate the content is daunting.
In view of the foregoing, there is a need for a method and system that will overcome the aforementioned problems by providing a collaborating tool that can provide the user with greater flexibility to create, edit, and share comments about the contents of a document published on the Web, among a group of users.
The present invention fills the need by providing an annotation tool for annotating portions of a webpage. The annotation tool is used to collaborate with other users by allowing a user to enter a comment to a specific portion of the webpage and sharing the comment along with the relevant portion of the webpage with other users. These annotations are associated with a specific portion of the webpage and use asynchronous requests to receive and load the annotations. It should be appreciated that the present invention can be implemented in numerous ways such as a system or a method.
In one embodiment, the present invention provides a method for adding annotations to content of a webpage provided by a content server. The method includes identifying a portion of the content of the webpage and applying an annotation to the identified portion of the content. The annotation is associated with the identified portion of the content. The method further includes saving the annotation and its association with the identified portion on an annotations server. A link is generated to an annotated webpage, the annotated webpage obtaining the content from the server and the annotation from the annotations server. The link is made sharable to enable others to view the annotation associated with the identified portion of the content.
In another embodiment, a computer implemented method for enabling addition of annotations to content of a webpage is provided. The method includes enabling application of an annotation to an identified portion of the content. The annotation is associated with the identified portion of the content. The method further includes causing the annotation and its association with the identified portion to be saved on an annotations server upon application of the annotation. A link is generated to an annotated webpage, the annotated webpage obtaining the content from the server and the annotation from the annotations server. The link is made sharable to enable others to view the annotation associated with the identified portion of the content.
In yet another embodiment, a system for enabling addition of annotations to content of a webpage is described. The system includes a client equipped with an annotation processor script, the annotation processor script being associated with the webpage. The annotation processor script is capable of identifying a portion of the content of the webpage, applying an annotation to the identified portion of the content wherein the annotation is associated with the identified portion. The annotation processor script is further capable of transmitting the annotation associated with the identified portion of the content to a server. The system further includes a server equipped with a server side component in the form of an annotation persistence store script (APS), the APS is capable of receiving the annotation associated with the identified portion of the content of the webpage from the client, saving the annotation and its association with the identified portion on an annotations server, and generating a link to an annotated webpage. The annotated webpage obtains the content from the server and the annotation from the annotations server. The link is made sharable to enable others to view the annotation associated with the identified portion of the content of the webpage.
The present invention, thus, provides a method and system for adding annotations to a portion of the content of a webpage and allows the sharing of such annotations with others.
The invention may best be understood by reference to the following description taken in conjunction with the accompanying drawings. These drawings should not be taken to limit the invention to the preferred embodiments, but are for explanation and understanding only.
The present invention provides a tool for annotating portions of a webpage. The annotation tool is used to collaborate with other users by allowing a user to enter a comment to a specific portion of a webpage and to share the comment along with the relevant portion of the webpage with other users. Several embodiments for adding an annotation to selected content on a webpage are described. It should be appreciated that the present invention can be implemented in different ways such as a system or a method. It will be apparent to those skilled in the art that the present invention may be practiced without some or all of the specific details set forth herein.
To facilitate an understanding of the embodiments, the general architecture and operation of a client-server computing system will be described first. The process of the disclosed embodiments will then be described with reference to the general architecture.
A server 200, in the client-server computing system illustrated in
JavaServer Faces (JSF) used by APS 210 is a server side technology tool for developing rich user interface web applications. In accordance with one embodiment of the present invention, JavaScript logic is provided to enable the addition of annotations to content of a webpage and rendering of these annotations on the client 100 so as to enable sharing of these annotations with others that may want to see or collaborate on content of a webpage. In one embodiment, JavaScript is sometimes referred to in reference to the “ECMAScript”. ECMAScript is available as “Standard ECMA-262: ECMAScript Language Specification”, which is herein incorporated by reference.
A brief operational overview of an embodiment of the present invention is discussed with reference to
If no annotations are available for the content of the requested webpage 105, the content of the requested webpage 105 is returned to the client 100. The content of the requested webpage 105 is rendered on the client 100. An annotation tool made available at the client 100 is invoked upon rendering of the webpage 105 at the client 100. The annotation tool provides annotation options for creating and sharing new annotations to content of the requested webpage 105. The newly created annotations can be shared with a group of users by providing access to the annotations using a share option on the annotation tool.
If annotations are available for the content of the requested webpage 105, the content of the requested webpage 105 and the annotations associated with the content of the requested webpage 105 are linked together and returned by APS 210 as a “Shareable URL”, to the client 100. The annotated webpage is rendered at the client 100. An annotation processor script 105T embedded in the source code of the annotated webpage or available on the client 100 provides a user with the ability to view existing annotations. An annotation tool within the annotation processor script 105T available at the client 100 maybe invoked upon rendering of the annotated webpage. The annotation tool provides annotation options for creating additional annotations or modifying and sharing existing annotations to the content of the webpage 105. New annotations and modified annotations are saved on an annotations server 215 for later retrieval, upon commitment at the client 100. These annotations are transmitted by the client 100 and saved on the annotations server 215 using the servlet and APS 210 on server 200.
Allowing a user to add or modify annotations to any portion of a webpage 105 will provide others who may wish to view or discuss portions of a webpage 105 an efficient collaboration mechanism during critical development and/or launch of a webpage 105. This collaboration mechanism is especially useful when the users are geographically distant from one another but are accessible over the Internet.
It is noteworthy that the present invention is not limited to the architecture of
In the current application, browser, browser client and client are used interchangeably to refer to a client in a client-server computing system. A client is a computer or computing device that runs client software (referred to as a browser) to access the Internet.
The process details a technique for adding annotations to a portion or portions of content of a webpage 105. A JavaScript running on the server 200 and on the client 100 handle rendering and updating of the annotations and also provide options for allowing sharing of annotations with specific users. In an embodiment, specific annotations applied to a portion of content of a webpage 105 is linked to a particular HTML element which may be in location proximity to the portion of the content of the webpage 105 being annotated. During the update or addition process, the user can drag the annotation or associate the annotation to portions having an HTML element.
The requested webpage 105 contains, among other codes and data, JavaScript to enable rendering of the webpage 105 on the client 100. The JavaScript includes source code 105SRC, that may manipulate the HTML elements of page, alter the style, or format the appearance when rendering different portions of content on the webpage 105. As illustrated in
Initially, a user may wish to begin the process of sharing an annotation by first adding an annotation to some content of a webpage 105. To accomplish this, the client 100 requests a webpage 105 from a server 200. In this embodiment, for example, the webpage 105 requested by the client 100 does not have any annotations associated with any content of the webpage 105. A servlet 205 on the server 200 receives the request and forwards the request to an Annotations Persistence Store (APS) 210 on the server 200. The APS 210 interacts with a content server 300 to receive the content of the webpage 105. The webpage 105 requested in this embodiment does not contain any annotations. The webpage 105 is rendered on the client 100 using the JavaScript from the source code 105SRC associated with the webpage 105.
To add an annotation, a user accesses an annotation tool available at the client 100. In one embodiment of the invention, an annotation processor script 105T is installed on or is associated with the browser and the user may access the annotation tool 110 made available by the annotation processor script 105T from the browser's menu or an extension thereof. The annotation tool is shown in
The newly created annotation on the selected portion of the content of the requested webpage 105 rendered on the client 100 may then be shared with other users or with a select group of users. In one embodiment, the sharing of the newly created annotations can be made possible by selecting the appropriate share parameter option 120 on the annotation tool 110 and providing one or more share parameters. The share parameters identify the list of users that are allowed to view the annotations associated with the content of the webpage 105 and the key identifying the annotations that these users are allowed to view. Upon entry of the share parameters, the newly created annotations, the data associated with the newly created annotations and the associated share parameters are saved by server 200 as a “sharable URL.” A servlet 205 on the server 200 receives the save request and forwards the request to the APS 210. APS 210 saves the annotations associated with the content of the requested webpage 105, the data and the related share parameters associated with the annotations in an annotations database 215a on the annotations server 215. The shareable URL could be forwarded to the users that are allowed to view the annotations.
A sharable URL is a link, for the annotated webpage 105AWP, that can be accessed by all or by an authorized group of users based on the share parameters. The link is established by associating the data related to the annotation with the source code of the web page 105. An annotation processor script 105T associated with the annotation is applied to the source code 105SRC of the webpage 105AWP to enable viewing of the annotation.
In one embodiment of the invention where the content of the webpage 105 associated with the annotations has remained the same on the content server 300, the sharable URL would link the annotations from the annotations server 215 with the associated content of the webpage 105 from the content server 300 (based on the data in the annotations server 215). The source code 105SRC for the webpage renders the content of the webpage 105 on the client 100 and the annotation processor script 105T applies the annotations associated with the webpage 105 generating an annotated webpage 105AWP to enable appropriate users to view, modify and add annotations associated with the content of the annotated webpage 105AWP.
Upon adding an annotation to a webpage 105, one or more users can request to view the annotation associated with the webpage 105. When a request for an annotated webpage 105AWP is made from the client 100, the initial content of the webpage 105 is loaded. A content server 300 may be used to obtain contents of the webpage 105 requested by the client 100. The webpage 105 containing the annotated content includes a link to a client side annotation processor script 105T which, once initialized in the JavaScript runtime, manages the annotations in the webpage 105. The annotation processor script 105T uses XMLHttpRequest calls to interact with an Annotation Persistence Store (APS) 210, a JavaScript script resident on the server 200. A servlet 205 on the server 200 receives the request from the client 100 and forwards it to the APS 210. The APS 210 interacts with an annotations server 215 to receive annotation meta data associated with the webpage 105. The annotation meta data associated with the webpage 105 are in the form of JavaScript scripts or XML documents. The annotation meta data are applied to the webpage 105 using annotation processor script 105T generating a link to an annotated webpage 105AWP. The link to the annotated webpage 105AWP with annotations is provided as a “Sharable URL” that can be accessed by anyone authorized to view the annotations. It is to be noted that the contents of the webpage 105 on the content server 300 associated with the annotations have remained the same from the time the annotations were applied to the time a user requests to view the applied annotations. The annotations that are associated with specific portions of the annotated webpage 105AWP can now be shared amongst the authorized group of users. Of course, any number and type of annotations can be present on the annotated webpage 105AWP.
The term “XMLHttpRequest” was used above to define functionality regarding methods in accordance with one embodiment of the present invention. Although the format of the request should not limit the scope of the method, it should be noted that XMLHttpRequest is not part of ECMAScript standard. However, XMLHttpRequest is, in some respects, becoming a defacto standard that is commonly supported by currently available browsers. Of course, XMLHttpRequest may be standardized in the future, and it is known that the XMLHttpRequest may be standardized as part of a future rendition of World Wide Web Consortium standards.
The annotation meta data is returned by the APS 210 to the client 100 through the servlet 205 of the server 200. The annotation processor script 105T on the client 100 receives the annotation meta data, evaluates the annotation meta data and renders the webpage as an annotated webpage 105AWP on the client 100, in response to the webpage 105 request. The annotation processor script 105T available to the annotated webpage 105AWP at the client 100 allows the user to modify, add and view the annotations associated with portions of the annotated webpage 105AWP, when authorized.
An annotation tool 110 available to the annotated webpage 105AWP through the annotation processor script 105T provides annotation options for adding, updating, deleting or re-associating annotation(s) using one or more annotation options. Annotation options available through the annotation tool 110 provide different ways to visually mark a selected portion of a webpage 105 or provide text box option on which to record comments or criticisms about a selected portion of the webpage 105. Some of the annotation options to visually mark a selected portion of the webpage 105 or record comments that may be available on the client 100 may include Underline, Highlight, Anchor or Notes. It should be noted that the annotation options are not restricted to the ones listed above and that others may be included depending on the requirements and availability of such options.
Annotations can be added to the webpage 105 in one of two ways. In one embodiment, an annotation is added to a webpage 105 rendered on the client 100 by first identifying and selecting a portion of the content of the webpage 105 that needs to be annotated. An annotation option is then selected from an annotation tool 110 available to the webpage 105 and applied to the identified portion by associating the annotation option to a HTML element to which the identified portion of the content of the webpage 105 belongs. The annotation option so chosen provides visual marking to the identified portion of the content when applied and may include one of Highlight, Underline or Anchor.
In another embodiment, an annotation is added to a webpage 105 rendered on the client 100 by first identifying and selecting a portion of the content of the webpage 105 that needs to be annotated. An annotation option is then selected from an annotation tool 110 available to the webpage 105. A text box in the form of a comment box 101 is provided upon selection of the annotation option which enables a user to add comments or notes related to the selected portion of the content of the webpage 105. The comment box 101 is linked to the selected portion of the content of the webpage 105 by dragging and associating the comment box 101 to a corresponding HTML element to which the selected portion of the content belongs. The annotation option so chosen provides textual comments to the identified portion and may include option such as Note. The comment box 101 also provides the ability for a plurality of users to view and update the contents of the comment box 101, depending on the share parameters. The annotation, in this embodiment, is transferable. The annotation can be transferred by re-associating the annotation to a different portion of content under a different HTML element. The annotation can be re-associated by identifying a different portion of content and manually dragging the annotation and linking it to a new HTML element to which the identified portion belongs. In the case where the annotation is re-associated, the old association is deleted and the new association is activated. These updates are saved to annotations server 215 for future reference.
The annotation processor script 105T available on the webpage 105 rendered on the client 100 helps in tracking the location and position of the annotations in relation to a HTML element the annotation is associated with, and dynamically changing the visual representation of a selected content of the webpage 105 associated with the annotation, without refreshing the whole page. The annotation processor script 105T uses asynchronous communications for communicating meta data concerning the annotations including position data and associations with HTML elements with the Servlet 205 and APS 210 on the server 200 thereby providing a rich user interface. The client 100 also provides a graphic user interface (GUI) and a display device (not shown) connected to the client 100 for displaying annotated webpage 105AWP that includes an annotation.
Some of the options that may be available under share parameter option 120 to enable sharing of annotations, are share identification including annotation identification, private access, private access password and public access. The share parameters may include name, group name, Email address, annotation URL, private access, private access password, public access, annotator identifier, webpage identifier and annotation data which further may include HTML element associated with the identified portion, annotation type, and annotation content. The annotation type could be the annotation option that is used in providing the annotation such as Highlight, Anchor, Underline, Note to name a few examples.
The method for providing annotations on a webpage 105 is now described in detail with reference to flow charts illustrated in
The method begins at the client 100 when a webpage 105 is requested by a user, as shown in operation 301 of
The request is received by a servlet 205 on the server 200 and forwarded to an Annotation Persistence Store (APS) 210 on the server 200. APS 210 queries an annotations server 215 for any annotations available for the requested webpage 105, as illustrated in operation 302 of
In operation 304, the APS 210 checks to see if the requester (user) of the webpage 105 has access to the sharable URL by verifying one or more share parameters passed in the request received from the client 100 against the share parameters stored with the annotations associated with the webpage 105 in the annotations server 215. If the requester does not have access to view the annotations for that page a corresponding message will be presented to the client 100. The webpage 105 without annotations is rendered at the client 100. If the requester is permitted to see the annotations, the APS 210 will retrieve the corresponding annotation meta data from the annotations server 215 and return the annotation meta data as an XML document or JavaScript scripts to the annotation processor script 105T at the client 100 for rendering. The annotation processor script 105T will evaluate and apply the annotation meta data to the webpage 105 generating the annotated webpage 105AWP.
The rendered annotated webpage 105AWP can be shared using a sharable URL. The annotated webpage 105AWP is rendered at the client 100 using the JavaScript code 105SRC and the annotation processor script 105T. The annotation processor script 105T will also provide an annotation tool 110 at the client 100 to manage annotations on annotated webpage 105AWP. New annotations can now be added or existing annotations updated to any portion of the content of the annotated webpage 105AWP rendered on the client 100 by executing one or more annotation options provided in the annotation tool 110, as illustrated in operation 306 of
The annotation processor script 105T retrieves the annotated meta data for the corresponding key that was provided as a parameter with the URL to retrieve the webpage 105. The annotation processor script 105T on the client 100 uses the meta data retrieved from the server 200 to apply annotations to the webpage 105 generating an annotated webpage 105AWP. The annotation processor script 105T also provides an annotation tool 110 to enable one or more annotations to be added to content of the webpage 105. New annotations can be created or existing annotations modified, deleted or re-associated on the annotated webpage 105AWP at the client 100 using the available annotation tool 110. Annotations can be added by first identifying a portion of the content of the annotated webpage 105AWP that needs to be annotated, as illustrated in operation 404 of
The server-side operation begins with a request for a webpage 105 with one or more annotations associated with the webpage 105. The request, which includes a plurality of share parameters, is received at a servlet 205 on server 200 to which client 100 is mapped. The share parameters include a key such as an URL to link the request from the client 100 to the server 200. The servlet 205 forwards the request to an APS 210 on the server 200. An Annotation Persistence Store (APS) 210 obtains content for the webpage 105 from a server such as a content server 300 and annotations from an annotations server 215, in response to the request received from the client 100. The APS 210 retrieves the annotation metadata including a key or unique identifier representing the annotations applied to the webpage 105 and returns the link to the client 100 through the servlet 205 on the server 200, as illustrated in operation 502 of
An annotation tool 110 included in the annotation processor script 105T available at the client 100 enables addition or modifications of annotations to content of the webpage 105AWP by providing annotation options. When an annotation is added or modified on the webpage 105AWP at the client 100, an update request is initiated at the client 100. In one embodiment, the update request includes a plurality of share parameters associated with one or more annotations applied to one or more portions of content on the webpage 105. The update request with share parameters associated with the annotation applied to a content of the webpage 105AWP, is forwarded to the APS 210 on the server 200 for updating the annotations server 215, in an asynchronous communication, as illustrated in operation 503 of
The invention can also be embodied as a system with a server 200 connected to a client 100. The server includes a servlet 205 that receives requests from the client 100 and forwards the requests to a server-side component on the server 200. The server 200 also includes a server-side component in the form of an Annotations Persistence Store (APS) 210 to request and receive content for a webpage 105, and an annotations server 215, to store and retrieve annotations and share parameters associated with the content of the webpage 105. The APS 210 is implemented as a Java based server side component. The client 100 includes a JavaScript script in the form of an annotation processor script 105T that enables annotations to be added, modified and viewed on the webpage 105. The annotation processor script 105T may be installed on the browser and made available to any webpage 105 rendered on the client 100 or the annotation processor script 105T can be included in the source code of the webpage 105 that is rendered on the client 100. An annotation tool 110 is available to the webpage 105 through the annotation processor script 105T. The annotation processor script 105T is capable of tracking the location and position of the annotations in relation to a HTML element the annotation is associated with, and dynamically changing the visual representation of a content of the webpage 105 associated with the annotation without refreshing the whole page. The annotation processor script 105T uses asynchronous communications for communicating with the servlet 205 and APS 210 to which the client 100 is linked. The client 100 and server 200 are connected and communicate using network (not shown). The client 100 also provides a graphic user interface and a display device (not shown) connected to the client 100 to render and view the annotations associated with the webpage 105.
The invention may be practiced with other computer system configurations including hand-held devices, microprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers and the like. The invention may also be practiced in distributing computing environments where tasks are performed by remote processing devices that are linked through a network.
With the above embodiments in mind, it should be understood that the invention may employ various computer-implemented operations involving data stored in computer systems. These operations are those requiring physical manipulation of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. Further, the manipulations performed are often referred to in terms, such as producing, identifying, determining, or comparing.
Any of the operations described herein that form part of the invention are useful machine operations. The invention also relates to a device or an apparatus for performing these operations. The apparatus may be specially constructed for the required purposes or it may be a general purpose computer selectively activated or configured by a computer program stored in the computer. In particular, various general purpose machines may be used with computer programs written in accordance with the teachings herein, or it may be more convenient to construct a more specialized apparatus to perform the required operations.
The invention can also be embodied as computer readable code on a computer readable medium. The computer readable medium is any data storage device that can store data, which can thereafter be read by a computer system. Examples of the computer readable medium include hard drives, network attached storage (NAS), read-only memory, random-access memory, CD-ROMs, CD-Rs, CD-RWs, magnetic tapes, and other optical and non-optical data storage devices. The computer readable medium can also be distributed over a network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
It will be obvious, however, to one skilled in the art, that the present invention may be practiced without some or all of these specific details. In other instances, well known process operations have not been described in detail in order not to unnecessarily obscure the present invention.
Although the foregoing invention has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications can be practiced within the scope of the appended claims. Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.
Patent | Priority | Assignee | Title |
10031903, | Aug 04 2010 | COPIA INTERACTIVE, LLC | System for and method of annotation of digital content and for sharing of annotations of digital content |
10114810, | Dec 01 2014 | Workiva Inc. | Methods and a computing device for maintaining comments and graphical annotations for a document |
10175861, | Jun 21 2013 | TENCENT TECHNOLOGY (SHENZHEN) COMPANY LIMITED | Method and system for web page commenting, browser and storage medium |
10509853, | Sep 05 2014 | Microsoft Technology Licensing, LLC | Creating an annotation pane for a document by augmenting the document |
10585980, | Dec 01 2014 | Workiva Inc. | Methods and a computing device for maintaining comments and graphical annotations for a document |
10796073, | Jul 27 2015 | Alibaba Group Holding Limited | Network article comment processing method and apparatus, user terminal device, server and non-transitory machine-readable storage medium |
10895962, | Aug 15 2013 | Nokia Technologies Oy | Apparatus and method for facilitating browser navigation |
10984568, | Oct 18 2016 | SNOW CORPORATION | Methods, devices, and computer-readable media for sharing image effects |
11327625, | Jul 17 2019 | Truist Bank | Graphical user interface marking feedback |
11516300, | Nov 30 2016 | Hughes Network Systems, LLC; Hughes Network Systems LLC | System, method and program for localizing web page interfaces via asynchronous data and automatic binding |
11556223, | Aug 27 2020 | Ebay Inc. | Automatic feedback system using visual interactions |
11586335, | Jul 17 2019 | Truist Bank | Graphical user interface marking feedback |
11677805, | Oct 11 2019 | Microsoft Technology Licensing, LLC | Surfacing sharing attributes of a link proximate a browser address bar |
11853532, | Aug 27 2020 | Ebay Inc. | Automatic feedback system using visual interactions |
9563614, | Mar 16 2011 | ZTE Corporation | Browser and method for adding and displaying web picture comment |
9892104, | Aug 04 2010 | COPIA INTERACTIVE, LLC | System for and method of annotation of digital content and creation of collections of annotations of digital content |
Patent | Priority | Assignee | Title |
5790435, | Nov 12 1991 | EMA DESIGN AUTOMATION, INC | Automated development of timing diagrams for electrical circuits |
6571295, | Jan 31 1996 | Open Invention Network, LLC | Web page annotating and processing |
6687878, | Mar 15 1999 | IDX Investment Corporation | Synchronizing/updating local client notes with annotations previously made by other clients in a notes database |
7421448, | Dec 20 2004 | SAP SE | System and method for managing web content by using annotation tags |
7472341, | Nov 08 2004 | International Business Machines Corporation | Multi-user, multi-timed collaborative annotation |
7519901, | Jun 16 2003 | Fuji Xerox Co., Ltd. | Methods and systems for selecting objects by grouping annotations on the objects |
20020078088, | |||
20040163042, | |||
20040172595, | |||
20040205542, | |||
20040210833, | |||
20050138541, | |||
20050159882, | |||
20060015811, | |||
20060048047, | |||
20060080598, | |||
20060085735, | |||
20060136813, | |||
20060143560, | |||
20060150079, | |||
20060224950, | |||
20070061704, | |||
20070143694, | |||
20070294614, | |||
20080250311, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jul 09 2006 | MURRAY, GREGORY L | Sun Microsystems, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 018101 | /0562 | |
Jul 10 2006 | Oracle America, Inc. | (assignment on the face of the patent) | / | |||
Feb 12 2010 | ORACLE USA, INC | Oracle America, Inc | MERGER AND CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 037311 | /0233 | |
Feb 12 2010 | Sun Microsystems, Inc | Oracle America, Inc | MERGER AND CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 037311 | /0233 | |
Feb 12 2010 | Oracle America, Inc | Oracle America, Inc | MERGER AND CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 037311 | /0233 |
Date | Maintenance Fee Events |
Jul 13 2017 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Jul 14 2021 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Jan 28 2017 | 4 years fee payment window open |
Jul 28 2017 | 6 months grace period start (w surcharge) |
Jan 28 2018 | patent expiry (for year 4) |
Jan 28 2020 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jan 28 2021 | 8 years fee payment window open |
Jul 28 2021 | 6 months grace period start (w surcharge) |
Jan 28 2022 | patent expiry (for year 8) |
Jan 28 2024 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jan 28 2025 | 12 years fee payment window open |
Jul 28 2025 | 6 months grace period start (w surcharge) |
Jan 28 2026 | patent expiry (for year 12) |
Jan 28 2028 | 2 years to revive unintentionally abandoned end. (for year 12) |