This disclosure relates generally to the technical fields of software and/or hardware technology and, in one example embodiment, to system and method for visualizing content referenced in an electronic document.
Many documents are generated in today's electronic society. An electronic document can include an object that provides an illustration or a visualization of a portion of the text in the document. For example, a United States patent document often has one or more drawings that appear close to the beginning of the document, while references to these drawing appear throughout the written description of the patent. For example, a document may have a figure titled “FIG. 1A” on page 2 of the document, which is referenced on page 12 of the document (e.g., page 12 of the document may include the text “FIG. 1A is a diagram illustrating . . . ”). When a user is reading the text on page 12 that references FIG. 1A, he might not remember all the details of FIG. 1A and may need to go back to page 2 to get the detailed information, and then return back to page 12. This may be very inconvenient and distracting from the flow of ideas. Existing viewing applications lack functionality that provides a convenient method to link a table or a figure in an electronic document to the text that is referring to such illustrative object.
Embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:
In the following detailed description, numerous specific details are set forth to provide a thorough understanding of claimed subject matter. However, it will be understood by those skilled in the art that claimed subject matter may be practiced without these specific details. In other instances, methods, apparatuses or systems that would be known by one of ordinary skill have not been described in detail so as not to obscure claimed subject matter.
Some portions of the detailed description which follow are presented in terms of algorithms or symbolic representations of operations on binary digital signals stored within a memory of a specific apparatus or special purpose computing device or platform. In the context of this particular specification, the term specific apparatus or the like includes a general purpose computer once it is programmed to perform particular functions pursuant to instructions from program software. Algorithmic descriptions or symbolic representations are examples of techniques used by those of ordinary skill in the signal processing or related arts to convey the substance of their work to others skilled in the art. An algorithm is here, and generally, considered to be a self-consistent sequence of operations or similar signal processing leading to a desired result. In this context, operations or processing involve physical manipulation of physical quantities. Typically, although not necessarily, such quantities may take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared or otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to such signals as bits, data, values, elements, symbols, characters, terms, numbers, numerals or the like. It should be understood, however, that all of these or similar terms are to be associated with appropriate physical quantities and are merely convenient labels. Unless specifically stated otherwise, as apparent from the following discussion, it is appreciated that throughout this specification discussions utilizing terms such as “processing,” “computing,” “calculating,” “determining” or the like refer to actions or processes of a specific apparatus, such as a special purpose computer or a similar special purpose electronic computing device. In the context of this specification, therefore, a special purpose computer or a similar special purpose electronic computing device is capable of manipulating or transforming signals, typically represented as physical electronic or magnetic quantities within memories, registers, or other information storage devices, transmission devices, or display devices of the special purpose computer or similar special purpose electronic computing device.
As used herein, a “document” or “an electronic document” refers to electronic media content that is accessible by computer technology. For example, a document can be a file that is not an executable file or a system file and includes data for use by a computer program. An example of a document includes a single or multiple files that are accessible by and/or associated with electronic document processing applications such as word processing applications, document viewers, email applications, presentation applications, spreadsheet applications, diagramming applications, graphic editors, graphic viewers, enterprise applications, and other applications. Therefore, as explained in more detail below, a document may be composed of alphanumeric texts, symbols, images, videos, sounds, and other data. It should be appreciated that a document can have a variety of file formats that, for example, may be identified by data within a document and/or by the filename extension. Examples of file formats that may be associated with a document include Adobe Portable Document Format (PDF), Microsoft DOC format, Hypertext Markup Language (HTML) format, Extensible Markup Language (XML) format, Microsoft XLS format, Tag Image File Format (TIFF), Rich TextFormat (RTF), and Report File Format (RPT).
Method and system are described that facilitate visualizing content referenced in an electronic document. In one embodiment, the system is configured to allow a user to access an illustrative object (e.g., a table or a drawing) that is present in an electronic document from a location where the document text is referring to that illustrative object. Example method and system described herein utilize a float window feature with an illustrative object referenced in the text when a user positions the cursor over the text that references that object. In one embodiment, when the cursor is moved away from the referencing text, the float window is removed from the display screen. The method and system described herein may be utilized, beneficially with personal computer devices including desktop computers, laptop computers, and devices with smaller screen size, e.g., touch pads or smart phones.
As shown in
The reference detector 204 cooperates with the float window loader 206, which is configured to respond to detecting the cursor being positioned over text in the descriptive content referring to the illustrative object by loading the associated illustrative object into memory and rendering the illustrative object in a float window. The float window may be presented in a display area of the document viewing application, e.g., as shown in
In one example embodiment, the reference detector 204 detects that a cursor is positioned over text referring to an illustrative object by recognizing that certain text is tagged with a reference label. The reference detector 204 may be configured to identify text tagged with a reference label as referring to the associated illustrative object. The tagging of text (an alpha-numeric string) may be performed by a document preparation module 210 shown in
The system 200, as shown in
As shown in
At operation 330, the float window loader 206 of
As shown in
At operation 520, the document preparation module 210 determines an identification label associated with the illustrative object. At operation 530, the document preparation module 210 scans the electronic document to detect whether there are any text items that refer to the illustrative object. At operation 540, the document preparation module 210 tags each of these detected text items with a reference label that corresponds to the identification label. the document preparation module 210 As described above, a tag may be used by the reference detector 204 of
The document preparation module 210 also adds a link to the associated illustrative object such that the text that refers to the illustrative object can function as a control that can be activated and cause the launching of a float window displaying the illustrative object.
In one example embodiment, a viewing application, also termed an electronic document reader, may be provided with a default configuration that comprises regular expressions for use in matching tagged text in an electronic document. For example, assuming that the tagged text in electronic documents includes strings such as “Figure,” “Fig,” “Table,” and “Chart,” a viewing application default configuration may include regular expressions shown in Table 1 below.
For example, in order to locate and tag a table labeled “Table 2.1 Different Formats Used by Microsoft in the Past 10 Years,” a script shown in Table 2 below may be utilized.
A viewing application may then execute commands linking the tagged text “Table 2.1” to the corresponding table object in the electronic document.
A viewing application may also be provided with a configuration GUI to let a user add their own custom regular expressions to the default configuration, such as, e.g., a regular expression for tagging a string that starts with the word “Formula.” An example of a formula and an associated text is shown in Table 3 below.
In this scenario, auser can use configuration GUI to add his own regular expression ‘Formula(.{0,5})([0-9]+)(.{0,1})([0-9]*)’ to get all formula photos and tagged text tracked.
Example system and method for visualizing content referenced in an electronic document may be implemented as described below.
A viewing application configuration may include two lists: one list being a list of regular expressions for various formats of tagged text of illustrative objects (e.g., tables, charts, formulas, figures, etc.), the other list being a so-called priority list that includes respective expected positions of the tagged text in an electronic document. An example of these two lists is shown in Table 4 below.
In one embodiment, a viewing application records and stores tagged text, an associated illustrative object, and the context associated with the illustrative object in a designated container. Such container (called “Manager” in the example shown in Table 4 below) may include a list of structures (structures called “ManagedItem” in the example shown in Table 5 below), where each “ManagedItem” structure has elements such as tagged text, illustrative object id, and illustrative object context.
An example algorithm for finding a tagged text in an electronic document is shown below in Table 6.
An example algorithm for redrawing referenced tagged text is shown below in Table 7.
An example algorithm for displaying illustrative objects is shown below in Table 8.
The example computer system 700 includes a processor 702 (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), a main memory 704 and a static memory 706, which communicate with each other via a bus 707. The computer system 700 may further include a video display unit 710 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system 700 also includes an alpha-numeric input device 712 (e.g., a keyboard), a user interface (UI) navigation device 714 (e.g., a cursor control device), a disk drive unit 716, a signal generation device 718 (e.g., a speaker) and a network interface device 720.
The disk drive unit 716 includes a machine-readable medium 722 on which is stored one or more sets of instructions and data structures (e.g., software 724) embodying or utilized by any one or more of the methodologies or functions described herein. The software 724 may also reside, completely or at least partially, within the main memory 704 and/or within the processor 702 during execution thereof by the computer system 700, with the main memory 704 and the processor 702 also constituting machine-readable media.
The software 724 may further be transmitted or received over a network 726 via the network interface device 720 utilizing any one of a number of well-known transfer protocols (e.g., Hyper Text Transfer Protocol (HTTP)).
While the machine-readable medium 722 is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable medium” shall also be taken to include any medium that is capable of storing and encoding a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of embodiments of the present invention, or that is capable of storing and encoding data structures utilized by or associated with such a set of instructions. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical and magnetic media. Such media may also include, without limitation, hard disks, floppy disks, flash memory cards, digital video disks, random access memory (RAMs), read only memory (ROMs), and the like.
The embodiments described herein may be implemented in an operating environment comprising software installed on a computer, in hardware, or in a combination of software and hardware. Such embodiments of the inventive subject matter may be referred to herein, individually or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is, in fact, disclosed.
Thus, method and system for visualizing content referenced in an electronic document have been described. Although embodiments have been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the inventive subject matter. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.