The present teachings relate to the field of digital documents, and computer-implemented systems and methods for annotating digital documents.
While approaches exist for reviewer comments for digital documents, there is still an unmet need to provide a simple and convenient markup mechanism. Further, in various circumstances, there can be advantages to be realized from a markup mechanism that approximates the way a copy-editor comments on a physical printed document with a pen or pencil.
Various aspects of the present teachings provide systems and methods providing for annotation of digital documents, such as html and xml documents. In various embodiments, virtual note-paper can be generated with a background-image that comprises a facsimile of a reviewer-selected portion of a digital document. Annotations can be made on the facsimile and attached to the digital document in a location chosen by the reviewer. The annotations can be typed (e.g., via keyboard input device) or drawn (e.g., via mouse, finger, trackball, touchpad, stylus, and the like) on the virtual note-paper.
In various aspects, the present teachings provide methods for annotating digital documents. According to various embodiments, methods of the present teachings can comprise, for example: (i) providing an original digital document; (ii) selecting a first portion of the original digital document to be annotated, thereby creating a selected original first portion; (iii) transcribing the selected original first portion to a format permitting annotation, thereby creating a converted first portion, while preserving the selected original first portion; (iv) annotating the transcribed (converted) first portion, thereby creating an annotated first portion; (v) associating the annotated first portion with a location of the selected original first portion, thereby creating an associated annotated first portion; (vi) persistently storing the associated annotated first portion, thereby creating a stored associated annotated first portion; (vii) retrieving the stored associated annotated first portion, thereby creating a retrieved associated annotated first portion; and, (viii) displaying the retrieved associated annotated first portion adjacent the selected original first portion or a previously retrieved associated annotated first portion, if any.
According to various embodiments, steps (ii) through (viii) can be repeated. In various embodiments, the original digital document comprises an html or xml document. In various embodiments, the format permitting annotation comprises a raster graphics image format, such as GIF, TIFF, JPEG, BIFF, bmp, PICT, Clear, FITS, IFF, NFF, OFF, PCX, PNG, TGA, XBM, and the like.
Various aspects of the present teachings relate to computer-implemented methods for annotating digital documents. In an exemplary embodiment, such a method according to the present teachings can comprise, for example: (i) transmitting over a network, such as a PAN, LAN, WAN, and/or the Internet, instructions (e.g., software code), executable at a remote computing device (e.g., a PC, smart phone, laptop, tablet, and the like), providing functionality for annotating a digital document (e.g., an html or xml document), including encoding into raster graphics image format a user-selected portion of the digital document; (ii) receiving from the remote computing device, over the network, a raster graphics image comprising a facsimile of the user-selected portion of the digital document and one or more user annotations; (iii) associating the annotated image with a location of the user-selected portion within the digital document; (iv) placing the annotated image in persistent storage, such as a database; (v) receiving from the remote computing device, over the network, a request for the stored annotated image; and (vi) transmitting to the remote computing device over the network, the retrieved annotated image; whereby, when the user-selected portion of the digital document is displayed at the remote computing device, the retrieved annotated facsimile can be displayed proximate thereto.
In various embodiments, the method steps are carried out by one or more server computing systems. In some embodiments, the method steps are carried out by no more than one server computing system.
According to various embodiments, the method can further comprise assigning a unique identifier to the annotated image. In some embodiments, the method also comprises transmitting the identifier over the network to the remote computing device.
In various embodiments, the method can further comprise transmitting instructions for placement of the annotated image within the digital document.
In a variety of embodiments, a computer-implemented method for annotating digital documents can comprise, for example: (i) transmitting over a network instructions, executable at a remote computing device, providing functionality for annotating a digital document, including encoding into raster graphics image format a user-selected portion of the digital document; (ii) receiving from the remote computing device, over the network, an image comprising a facsimile of the user-selected portion of the digital document; (iii) assigning a unique identifier to the image; (iv) transmitting the identifier over the network to the remote computing device; (v) transmitting over the network to the remote computing device the image for annotation; (vi) receiving the image, once annotated, from the remote computing device; (vii) associating the annotated image with the location of the user-selected portion within the digital document; (viii) placing the annotated image in persistent storage; (ix) retrieving the annotated image from persistent storage; and, (x) transmitting over the network to the remote computing apparatus the retrieved annotated image with instructions for placement in the digital document at or in the vicinity of its associated location; whereby, when the user-selected portion of the digital document is displayed at the remote computing device, the retrieved annotated facsimile is displayed proximate thereto.
In various embodiments, the method steps are carried out by one or more server computing systems. In some embodiments, the method steps are carried out by no more than one server computing system.
Various aspects of the present teachings relate to methods for annotating digital documents using network-capable computing devices. In various embodiments, such a method can comprise, for example: (i) providing a digital document, such as an html or xml document; (ii) transmitting a request over a network, such as a PAN, LAN, WAN, and/or the Internet, to a server for instructions, executable at the computing device, providing functionality for annotating the digital document, including transcribing into raster graphics image format a selected portion of the digital document; (iii) receiving the instructions from the server; (iv) selecting a portion of the digital document for annotation; (v) transcribing the selected portion of the digital document to a raster graphics image; (vi) annotating the image; (vii) displaying the annotated image proximate the selected portion of the digital document.
In various embodiments, the method steps are carried out by a client computing device, such as a PC, a laptop, a tablet, a smart phone, and the like.
In various embodiments, the annotating step is carried out freehand. For example, the annotating step can be carried out, according to various embodiments, using a touchpad, trackball, mouse, finger, stylus, and the like.
According to various embodiments, the annotating step can include creating one or more geometric shape annotations (e.g., a square, a rectangle, a circle, an oval, a triangle, etc.). In a variety of embodiments, the one or more geometric shape annotations are created as bitmapped images, which are superimposed on the raster graphics image.
In various embodiments, the annotating step can include creating one or more styled text annotations.
According to a variety of embodiments, a method for annotating a digital document can comprise, for example: (i) providing a digital document, such as an html or xml document; (ii) executing using a processor instructions in the nature of software code providing functionality for annotating the digital document, including transcribing into raster graphics image format a selected portion of the digital document; (iii) selecting a portion of the digital document for annotation; (iv) transcribing the selected portion of the digital document to a raster graphics image; (v) annotating the image; and, (vi) displaying the annotated image proximate the selected portion of the digital document.
In various embodiments, the method steps are carried out by a client computing device, such as a PC, a laptop, a tablet, a smart phone, and the like.
According to various embodiments, the instructions are received from one or more server computing systems.
In various embodiments, the digital document comprises an html or xml document.
According to various embodiments, the method can further comprise analyzing the document object model (DOM) elements and attributes related to the selection from step (iii).
In a variety of embodiments, a method for annotating a digital document using a network-capable computing device can comprise, for example: (i) providing a digital document; (ii) transmitting a request over a network to a server for instructions, executable at the computing device, providing functionality for annotating the digital document, including transcribing into raster graphics image format a selected portion of the digital document; (iii) receiving the instructions from the server; (iv) selecting a portion of the digital document for annotation; (v) transcribing the selected portion of the digital document to a raster graphics image; (vi) transmitting the image over the network to the server; (vii) receiving over the network from the server a unique identifier for the image; (viii) receiving over the network from the server the image for annotation; (ix) annotating the image; (x) transmitting the annotated image to the server; (xi) receiving the annotated image from the server, with the annotated image associated with the selected portion of the digital document; and, (xii) displaying the annotated image proximate the selected portion of the digital document.
Various aspects of the present teachings relate to non-transitory or physical, computer-readable storage mediums containing program code for, when executed by a computing system, performing methods for annotating digital documents. In an exemplary embodiment, such a method can comprise, for example: (i) transmitting over a network instructions, executable at a remote computing device, providing functionality for annotating a digital document, including encoding into raster graphics image format a user-selected portion of the digital document; (ii) receiving from the remote computing device, over the network, a raster graphics image comprising a facsimile of the user-selected portion of the digital document and one or more user annotations; (iii) associating the annotated image with a location of the user-selected portion within the digital document; (iv) placing the annotated image in persistent storage; (v) receiving from the remote computing device, over the network, a request for the stored annotated image; and (vi) transmitting to the remote computing device over the network, the retrieved annotated image.
In a variety of embodiments, the method can further comprise assigning a unique identifier to the annotated image.
Various aspects of the present teachings relate to computing systems for annotation of digital documents. In an exemplary embodiment, such a system can comprise, for example: a network interface for communication over a network; a memory comprising at least one software program comprising instructions, distributable over the network to one or more remote locations, providing functionality upon execution by a processor for annotating a digital document, including encoding into raster graphics image format one or more user-selected portions of the digital document; an input for receiving, from the one or more remote locations over the network, a raster graphics image comprising a facsimile of a user-selected portion of a digital document and one or more user annotations; an output for transmitting to the one or more remote locations over the network (a) the received annotated image, and (b) the instructions; a persistent storage device for storage and retrieval of the received annotated image; and, an associator (or association) component for associating the annotated image with a location of the user-selected portion within the digital document.
In various embodiments, the memory further comprises at least one software program comprising instructions, distributable over the network to the one or more remote locations, providing functionality upon execution by a processor for placement of the annotated image at or proximate its associated location.
According to some embodiments, the system can further comprise an identifier (or identification) component for assigning a unique code to the received annotated image.
These and other features and advantages of the present teachings will become clear from the following description.
The structure and manner of operation of the present teachings, together with the further objects and advantages thereof, may best be understood by reference to the following description taken in conjunction with the accompanying drawings, in which:
Reference will now be made to various embodiments. While the present teachings will be described in conjunction with various embodiments, it will be understood that they are not intended to limit the present teachings to those embodiments. On the contrary, the present teachings are intended to cover various alternatives, modifications, and equivalents, as will be appreciated by those of skill in the art.
Various aspects of the present teachings provide computer-implemented systems and methods providing for annotation of digital documents, such as html or xml documents. Generally, in accordance with various embodiments, virtual note-paper can be generated with a background-image that is a facsimile of a reviewer-selected portion of a digital document. Annotations can be made on the facsimile and attached to the digital document in a location chosen by the reviewer. The annotations can be typed (e.g., via keyboard input device) or drawn (e.g., via mouse, trackball, touchpad, finger, stylus, and the like) on the virtual note-paper.
A user can select portions of a text document for annotation and, according to various embodiments, the systems and methods of the present teachings can: (1) convert them to a format providing for annotations, (2) provide mechanisms to create these annotations, (3) persist these as retrievable document annotations, and (4) re-render them along with the original document as needed by the user.
According to various embodiments, an exemplary method of the present teachings can comprise, for example: (i) providing an original digital document, such as an html or xml document; (ii) selecting a first portion of the original digital document to be annotated; (iii) transcribing (copying or converting) the selected original first portion to a format permitting annotation, such as a raster graphics image format (e.g., GIF, TIFF, JPEG, BIFF, bmp, Clear, FITS, IFF, NFF, OFF, PCX, PNG, TGA, XBM, and the like), while preserving the format of the selected original first portion; (iv) annotating the transcribed first portion; (v) associating the annotated first portion with a location of the selected original first portion; (vi) persistently storing the associated annotated first portion; (vii) retrieving the stored associated annotated first portion; (viii) displaying the retrieved associated annotated first portion adjacent the selected original first portion or a previously retrieved associated annotated first portion, if any. According to various embodiments, steps (ii) through (viii) can be repeated, as desired.
In various embodiments, aspects of the present teachings can be implemented employing a computing environment such a described in U.S. Pat. No. 7,259,753; incorporated herein by reference.
An exemplary embodiment of a software application of the present teachings is described next.
Before describing functional capabilities of the exemplary embodiment of the software application, several assumptions are set forth. One, there is an html document (i.e., digital document) author and an html document commenter (these two roles could be performed by the same person or different people). Next, there is a software application which provides at least the functionality described herein installed on a computing device (e.g., PC, tablet, smart phone, laptop, etc.) which gives the commenter access to the document object model (DOM) that represents the digital document to be commented on. Finally, the application utilizes a browser interface which supports the HTML5-compliant ‘canvas’ or a similar object that can contain textual, vector graphical and rasterized data-objects.
Next, several functional capabilities of the exemplary embodiment of the software application are set forth.
The exemplary embodiment of the software application can parse an arbitrary portion of the HTML document and re-render its elements in an HTML5 canvas (or canvas-like object provided by future extensions to the HTML standards) using DOM-retrievable style-sheet (CSS, or Cascading Style Sheets) attributes to faithfully represent the original element. For example, for a text element (e.g. a text area or content-editable div) the parser-renderer can re-create the element with the correct font-size, font-style, text container dimensions, and container attributes (e.g. positioning, padding, text-color, background-color, background-image, etc.). Elements that are parsed and re-rendered can include all standard HTML elements.
The exemplary embodiment of the software application can permit the commenter to annotate (draw over) the re-rendered HTML elements by providing one or more drawing modes which add annotation data to the canvas, including, in various embodiments, freehand drawing by moving a cursor over the canvas with the cursor position controlled by a finger or stylus on a touch-screen or a mouse on a standard PC, smoothed drawing utilizing a freehand input and smoothing algorithms, overlay of text using a physical or simulated keyboard, and overlay of geometric shapes (lines, rectangles, circles, arrows, etc.) using freehand input and shape recognition, and rasterized objects such as images.
The exemplary embodiment of the software application can retain, via persistent storage (e.g., a database) these annotated canvas-based replications of portions of the original HTML document as images—which are composites of all canvas elements, as serialized canvasses, or as lists of elements and parameters required to faithfully recreate the canvasses, which are stored with meta-data specifying which part of the original HTML document each annotation is associated with.
The exemplary embodiment of the software application can re-render the original document for the author or the commentator to review and can retrieve, reconstruct and display the saved annotations in a manner permitting the user to see both the original document and the annotations (e.g. in a superimposed div or pop-up div that is opened/closed when the user clicks on a marginal or in-text marker).
According to various embodiments of the present teachings, a user who wishes to attach a comment (annotation) to a digital document can specify a snippet of the document which s(he) wishes to have copied (converted or transcribed) and superimposed on virtual note paper as a background note image, so that annotations can be made on the note rather than directly on the digital document. This can be useful, for example, in circumstances where the commenter wants their annotation preserved along with the state of the digital document before the author (or another user) changes the document, e.g., in response to the annotation. In various embodiments, it can also facilitate types of edits which can be more readily grasped when they are drawn (like an editor's marks) instead of attached as typed comments or incorporated as suggested revisions in the form of edits which change the text but can be accepted or rejected by the author.
According to various embodiments, methods and systems can be employed that avoid security restrictions regarding construction of a rasterized copy of a document snippet. An exemplary embodiment contemplated herein is a web-application software implementation which supports both the document creation and the comments, with the software instructions that control the application being served from a single server governing all aspects of the software session where a document is served and comments are affixed. This enables the application to have access to the browser's document object model (DOM) that underlies its screen rendering of the document and permits the user leaving a comment to specify a snippet of a document by selecting it with a GUI tool (e.g. a mouse) with sufficient precision that a software routine can be invoked to determine what HTML elements in the DOM correspond to the selection. The DOM elements can then be parsed and re-rendered into an HTML5 canvas using the information about the set of HTML elements which define the software snippet and the “in-line” or “style-sheet” styles that give the elements their specific appearance (type style, type size, type color, font, table specifications, image specifications, etc.). Once the selected elements have been rendered into a canvas, the canvas can be serialized and transmitted to a server which can apply conversion routines to generate and return a rasterized representation (e.g. a jpeg, png or other raster graphics image) so that a virtual note paper can be displayed for the commenter to draw and/or type upon. It should be appreciated that conversion could be accomplished on a client PC. Regarding embodiments where the device being used for review and comment is a tablet with a stylus or finger touch-screen interface, for example, drawing on the notes with document-snippet backgrounds described here can be quite efficient and intuitive and can greatly enhance ease-of-use in leaving annotations.
In accordance with various embodiments of the present teachings, implementation as a web-application can employ a client computing device, at least one server computing device, and a network system (e.g. the Internet or World Wide Web) to provide protocols for interconnection of client and server(s).
In various embodiments, the client computing device can comprise network communications hardware capability (e.g. a network card) and a graphical user interface (GUI) with text entry capability and optionally a pointing/drawing input device such as a mouse or touch-sensitive screen.
In various embodiments, the server computing device(s) can comprise network communications hardware capability (such as a network card) and the capability to respond to client requests for information via a communications protocol (e.g. http) involving the dynamic creation of responses to client queries (e.g. http responses) drawing upon data stored in a persistent storage system (e.g., a database) implemented on the same server or another server.
In various embodiments, the network system, which in one exemplary configuration is provided via the world-wide web, can permit access and communication by multiple client devices.
In various embodiments, the system of client devices, server devices and interconnecting communications system can be scalable—for example, on the “server-side” via distribution of response task across as many servers as are necessary to respond to client information requests without significant delays.
Referring now to
In an exemplary embodiment, the HTML representing a portion of a browser-rendered document is transformed on a user's PC to a digital image and transmitted via http to a server where it is (a) assigned a unique identifier, and (b) stored as an image in a manner enabling its retrieval by referencing it using the unique identifier. The unique identifier is returned to the remote computing device so that the image can subsequently be retrieved.
When the “sketched-note” tab, or icon, is selected along the top of the browser window of
Further aspects of the present teachings relate to a web application comprising a document management system (DMS) providing for user roles, for example, as teacher (or group leader) and student (or group member). In accordance with various embodiments, the DMS is designed as a single comprehensive system providing for functionality comprising, for example:
In various embodiments, the entire system providing for document creation, modification, retrieval, and critique resulting in persistently stored portfolios of individual's responses to tasks requiring expressive communication is in toto designed to support a process of continuing skill/knowledge improvement in a social context defined by teachers or group managers, and students or group members sharing the objective of skill and knowledge development in one or more domains.
Various aspects of the present teachings relate to a sketch component of an application as contemplated herein. In accordance with various embodiments, one or more of the following features comprise an exemplary approach to supporting sketching in, for example, a PC or tablet-based system.
i) According to various embodiments, a sketch component according to the present teachings can provide for the interconnection of shapes (e.g., rectangles, triangles, circles, ellipses, diamonds) by lines (e.g., horizontal, vertical, oblique) that are plain or arrow-headed (single arrow-heads or double arrow heads) whereby once connections are made the connections are maintained (e.g., two rectangles connected by a line will persist the connections as either rectangle is moved by causing the line to lengthen and/or the angle of the line to change). This persistence of interconnections is maintained across arbitrarily complex sketches comprised of interconnecting shapes and lines. It is also maintained across editing operations (e.g., changing line or shape properties such as line thickness, shape border thickness, line color, and shape fill color).
ii) In various embodiments, in an interconnected network of lines and shapes, the sketch component provides for the disconnection of a line from a shape by detecting that (a) a virtual-attachment of a mouse, stylus, or finger-controlled cursor to a line has occurred, and (b) that after the virtual attachment has occurred a virtual “jerk” on the line has occurred detected algorithmically by using the rate of change of cursor location compared to a threshold rate of change metric to deduce that the user is intentionally jerking on the line to detach it from a connected shape. Similarly, in various embodiments, a shape can be selected by a user instead of a line, and if the shape is connected to a line and virtually jerked, the shape can be disconnected from the line using the same virtual attachment detection algorithm and virtual jerk detection algorithm that were used to determine that the line should be separated from the shape.
iii) Various embodiments of the sketch component of the present teachings provide for the duplication of a single sketched element (a line, a shape, an image, a string of alpha-numeric characters) or a composite of selected elements by detecting an icon click (indicating the user's desire to duplicate elements) as a duplication-triggering event, immediately thereafter placing the duplicate(s) in an active state during which it is temporarily managed as a single composite element until the point that it is released from its active state at which point the individual elements comprising it are added to the sketches individual element list, each with the properties it inherited from the parent element from which the copy was made.
iv) According to various embodiments, a sketch data structure is provided which references each sketch component (e.g., a line, a shape, a text string, an image) as a member of the sketch which has attributes including x, y location, element type, and other attributes that may be element-specific. Various embodiments contemplate an attribute that is a movable/unmovable attribute which can optionally be conditioned on a “author” attribute so that in a sketch created by a teacher (for example) a set of virtual containers could be drawn by a teacher which are set by the teacher to be unmovable, and a set of shapes could be drawn by a teacher and set to movable so that a student learning to sort shapes would be able to access the sketch and move the shapes to the containers they belong with, but would not be able to move the containers. The teacher would be able to move the shapes or the containers because the application providing the sketch user interface would recognize whether the teacher or the student was “logged in” to the application and enable the appropriate rule to be applied to the sketch elements that had movable or unmovable attributes assigned.
v) In various embodiments, the sketch component of the present teachings makes shapes adjustable (e.g., stretching a rectangle lengthwise by mouse-down clicking when the cursor is sufficiently close to a rectangle side and then mouse-dragging with the mouse button still depressed). To enable this feature, the mouse cursor location is tracked within the sketch UI and the cursor shape is automatically changed so that the user can determine by watching the cursor when they have positioned the cursor sufficiently close to a shape side or corner that they are in a click-and-drag zone for that shape.
The following examples are merely illustrative and are not intended in any manner to limit the scope of the present teachings or of the claims directed thereto.
Teachers providing corrective feedback to students often find it most efficient to make traditional editorial markings on submitted documents. If these are digital documents, teachers frequently feel they need to print them and then write on them with pen or pencil. When they do this, students consider the comments as they make modifications to their saved word processor versions, and resubmit digitally. But in many teaching contexts there is strong interest in keeping all corrective feedback in digital form, so it can be preserved and reviewed later by the teacher who may want to gauge student progress at grading time. But incorporating traditional editing feedback in a Microsoft Word document, or in a Google document requires either leaving typed notes, or actually making edits to the document and asking students to accept or reject them. If the feedback is very abstract (e.g. switch the order of two clauses) it can be unclear to a young student. If the feedback is in the form of a suggested revision, the student can simply accept the suggestion without thinking and learning about it. These modes of feedback are not as instructionally effective as the more traditional editor's comments on a physical document which the student has to consider as s(he) interprets the comments and makes revisions to their document. The present teachings simulate the more effective traditional approach by virtualizing a snippet of the student's paper and permitting the teacher to draw on the snippet (the virtual note paper) with a finger, a stylus or a mouse, but effectively captures the feedback in digital form facilitating future review.
There is a trend in laboratory settings where traditional paper lab books are used to record experimental procedures and observations of adopting digital recording systems that replace the traditional paper ones. These digital systems offer immediate digital storage of entries and backup for security purposes, as well searchability, legibility and other benefits. They are frequently reviewed and commented on by lab managers or researcher supervisors. But for some types of information—photographs or drawings for example—it is often more convenient to draw on the document than to make a marginal note. A good example would be a microscopy image of a molecular structure, where a particular feature is important to note, and where the researcher has included the image but not noticed the important feature. It is much simpler and more direct for the supervisor to draw on the image—perhaps circling the feature—than to describe where it is and what it looks like in a text note. But the supervisor may not have the capability in the digital lab note system to mark directly on an image. If it exists the supervisor may not want to mark directly on the image, potentially obscuring it and diminishing the value of the picture for the research or other readers of the digital lab book. It would be much better for the supervisor to select the image, have it applied to a note that could be positioned preceding or superseding the relevant section of the digital document, and draw (or type textual information) on the copy of the image on the note.
All references set forth herein are expressly incorporated by reference in their entireties for all purposes.
Those skilled in the art can now appreciate from the foregoing description that the broad teachings herein can be implemented in a variety of forms. Therefore, while the present teachings have been described in connection with various embodiments and examples, the scope of the present teachings are not intended, and should not be construed to be, limited thereby. Various changes and modifications can be made without departing from the scope of the present teachings.
This application claims a priority benefit from U.S. Provisional Patent Application. No. 61/743,875, filed Sep. 13, 2012, which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61743875 | Sep 2012 | US |