Structured document browser
A structured document browser includes a constant user interface for displaying and viewing sections of a document that is organized according to a pre-defined structure. The structured document browser displays documents that have been marked with embedded codes that specify the structure of the document. The tags are mapped to correspond to a set of icons. When the icon is selected while browsing a document, the browser will display the section of the structure corresponding to the icon selected, while preserving the constant user interface.
A portion of the disclosure of this document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by any one of the patent disclosure as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all rights to copyright protection whatsoever.
FIELD OF THE INVENTIONThis invention relates to computer applications for viewing documents, and in particular, to a computer program for viewing documents having a predefined structure.
BACKGROUND OF THE INVENTIONCurrent computing environments typically include a graphical user interface (GUI). IBM personal computers and IBM compatibles run either OS/2 or Windows. The Macintosh has always had GUI capabilities as part of its operating system. Even higher end computers, including those that run Unix or VAX/VMS operating systems, are available with components that provide a GUI environment.
GUI's are generated using a set of software tools that put graphical objects on the computer display. One of these graphical objects is a screen pointer that the user controls with a mouse or a trackball. The user moves the mouse to position the pointer on the screen over selected objects on the screen. The user can select an object by using a selecting device which is typically a mouse switch. By selecting an object, the user instructs the operating system or an application to execute the function associated with the object. The GUI objects can include the graphical representation of buttons, menus or any other graphic object.
GUI's are the foundation of hypertext and hypermedia applications. Such applications allow computer users to create interfaces in which graphical objects are configured to correspond, or to link to objects of information. For example, a user may create an interface having the graphical representation of a button to display a motion video by selecting the button with a screen pointer. Similarly, the button can be configured to make a sound, display an image or display a separate text file.
Today's increasing interest in the Internet is due in part to the improvements in hypermedia applications. The World Wide Web is growing dramatically due to the evolution of standard markup languages that allow users to mark documents with links to other documents, and of presenters or viewers that interpret the markup language in the documents allowing the users to view the links.
One of the first markup tools was the Standard Generalized Markup Language (SGML). SGML was developed by the International Standards Organization and has been adopted by the Department of Defense and other government agencies as a way of standardizing documentation. SGML is machine-based in a manner similar to a computer language. An SGML Document Type Definition (DTD) may be defined according to the specifications of SGML for a given document structure. The DTD defines elements to be embedded in a document. The documents are then viewed using a viewer or browser that interprets the elements in the document according to the data structure defined in the DTD.
The HyperText Markup Language (HTML) is an instance of a DTD defined by SGML. HTML elements or codes are embedded into documents for use with HTML browsers. Browsers display the documents according to stylesheets associated with the embedded codes. The stylesheets contain rules or instructions that dictate the appearance of a document as presented by a browser. Stylesheets may also contain references to other documents in different computers. These references may be used in conjunction with context-sensitive regions of the documents such that a user retrieves the document reference by selecting the region. In this manner, an author links one document to others in a meaningful way such that a viewer may provide a user with access to information in documents that are linked together in a web-like fashion.
One common characteristic of many browsers is that the links to information are presented solely within documents. The links may take the user to other documents or to locations within the same document, but typically, the elements that provide the link control are within the documents.
Having the control to the information links within the documents themselves is adequate where the documents are short and where the purpose is to obtain information in brief, concise statements. But where a document is long, it becomes difficult to browse the document since the only potential access to other destinations are in whatever part of the document is currently being displayed.
Moreover, organizations often work with standardized documents. These documents typically have a carefully defined purpose and are usually characterized by a standard structure. These documents may be long and the main purpose for viewing the documents is often to access information found in a specific section of the well-known structure of the document.
SUMMARY OF THE INVENTIONIn view of the above, a structured document browser is provided with a user interface that remains uniform and familiar as the user browses documents according to their structure instead of their contents. The browser uses codes embedded in the document to identify sections of the structure of the document. The user interface includes graphical user interface objects, such as buttons, that are configured to display a standard section of the document structure when selected by the user.
The structured document browser may also include menus that allow a user to select a document from among different documents, or a document structure type from among different structure types.
It is another object of the invention to provide a method for browsing a document by using a screen pointer to select a graphical user interface object and displaying a section of the document that corresponds to the graphical user interface object.
BRIEF DESCRIPTION OF THE DRAWINGS
In the description that follows, reference is made to the drawings where like elements are identified by like numerals throughout.
A presently preferred embodiment of this invention includes an application program called browser.exe that has been developed using the ‘c’ programming language in the Windows environment. The browser.exe executable file is programmed to make function calls to three dynamic link libraries named sit.dll, cgrmzv.dll and ct13d.dll. These libraries are components of Dynatext Version 2.0, a user interface development system from Electronic Book Technologies, Inc. These Dynatext libraries provide functions that implement the SGML related functions and the graphic input/output functions. Further information regarding the Dynatext program may be obtained by contacting Electronic Book Technologies, Inc. at One Richmond Square, Providence, R.I. 02906. The browser.exe program uses data structures in several support files that are in the same directory tree as browser.exe. These support files will be described in more detail in the description that follows.
A listing of the present version of browser.exe is attached as Appendix I of this specification. The listing is an octal representation of browser.exe. The presently preferred embodiment may be carried out by converting the octal to a binary executable file using methods that are well known in the art. After conversion, the browser.exe file may be executed from a directory that includes the dynamic link libraries and the support files described in this disclosure.
It is to be understood however, that an embodiment of the present invention may be developed for any computing environment using any suitable development system.
The browser application in a presently preferred embodiment is referred to in the following detailed description as the browser 80 as shown in
The double headed arrows 118 denote the communication between the respective components. The communication at 118 may entail communication over a network where appropriate.
The hardware devices 108, 110, 100, 102, 112 may be implemented by choosing from among many alternatives for each device. A pointing device 100 may be implemented using a mouse, a trackball or any other device that controls the position of a screen pointer. A selecting device 102 is typically implemented with mouse buttons or buttons that operate in conjunction with a trackball. In general, any device that may be used to effect the selection of an object at the location of the screen pointer may be used as a selecting device 102. A selecting device 102 may even include a key on the keyboard 110. The storage media 108 is understood to include random access memory (RAM), the temporary storage out of which programs are executed as well as the mass storage devices in which programs are stored. The hardware devices 108, 110, 100, 102, 112 are understood to include the software drivers necessary for their operation in the computing environment.
The browser 80 includes at least a controller 82 and a system interface 84. The system interface 84 is responsible for processing the communication between the browser 80 and the operating system 104, the I/O system 114 and the GUI system 116. The controller 82 receives and interprets requests from the system interface 84 to perform a browser function. For example, the system interface 84 receives signals from the I/O system 114 that the pointing device 100 and the selecting device 102 were used to press a button or icon, to request a display of a section of a document. The controller 82 receives the information from the system interface 84 to determine which document section to display.
In a presently preferred embodiment, the system interface 84 includes the functions provided by the Dynatext development system and any operating system or I/O system functions. The controller 82 in a preferred embodiment is the executable program browser.exe. It is to be understood that the diagram in
The browser 80 operates with documents that have been prepared as described below. Because the browser 80 is designed to navigate documents according to their structure, the utility of the browser 80 is maximized when an organization establishes a standard structure for its key documents. A software engineering group, for example, may find it desirable to maintain a uniform structure for the software requirement specifications that the group develops. A different structure is desirable for the group's design specifications, and yet a different structure works for the group's test documentation. The group's goal for such documentation is to maintain uniformity.
Referring to
A specific document of the predefined structure in
The sections in a document are preferably marked according to a convention. First, the beginning of a section is marked by a code or element. For example, the <OVER> element 26 identifies the beginning of the section of the document that provides an overview of the product. The <OVER> element 26 is followed by the heading and text that constitute the Overview section of the document. A begin section name element 28 indicates that the information that follows the element 28 specifies the name that will appear in all documents of the same structure for that section. In the marked document 20 in
Begin sub-section elements 38 and end sub-section elements 42 mark the sub-sections of the document, using the same convention, with the stipulation that the end elements 39 are in an order that keeps the sub-sections nested within the sections. Documents may have sub-sections within sub-sections.
In a preferred embodiment, the structure of documents is defined by a document type definition (DTD). The DTD 40 in
In a preferred embodiment, a document having a basic word processing format may be converted to a marked document 20, also known as an SGML instance, using an SGML utility. For example, a utility called DYNATAG from Electronic Book Technologies, Inc., uses documents having the structure described in
An infinite number of DTD's may be used, including common DTD's such as the HTML DTD. In addition, other embodiments of this invention may not use SGML as a markup language. Any other suitable markup language, including a proprietary markup language, may be used as well, provided that the appropriate software components are available to translate the code. Other embodiments of this invention may be designed to support the use of more than one markup language.
Once a document has been marked and converted into a format that is appropriate for the browser 80, the browser 80 may be started on a computer. Referring back to
To initialize the browser 80 in the Windows environment, the mouse 100 may be used to place the screen pointer 62 over the browser icon 64 in the operating system interface 106 and the left mouse button may be double-clicked.
Once the browser 80 has been initialized, the graphical user interface changes from the Windows user interface 106 in
Referring to
The user interface 50 of the browser 80 includes a document menu 52, a document type menu 54, a first row of selectors 56, a second row of selectors 58 and a display window 60.
The user selects a document for browsing by using the document menu 52. The document menu 52 is implemented with standard graphical user interface menu objects such that the user selects a document menu arrow 70 to display the full menu of the documents available. The user then selects the document desired from the menu using the selecting device 102 in combination with the screen pointer 62.
The user interface 50 of the browser 80 is configured in a manner that allows the document types, or standard structures of different types, to be listed in a document type menu 54. The document type is selected by the user in the same manner that the user selects a document. The name of the document type is the name or alias of directories designated by the browser to have documents of a consistent structure. When a different document type is selected, the names listed in the document menu are changed according to the names of the available documents having the new document type.
The selectors 56, 58 are examples of document navigation tools that may be used for browsing documents in a presently preferred embodiment. More specifically, selectors 56, 58 are display regions in the user interface that are configured to perform pre-defined operations when the user places the screen pointer 62 over one of the selectors 56, 58 and then selects it with the selecting device 102. In the presently preferred embodiment, the display regions are depicted as icons that make them look like buttons with graphic images on them. The image may be designed to convey a sense of the operation to be performed if the icon is selected.
The first row of selectors 56 is configured to correspond to the first level of sections in a document. For example, the first selector 68 in the first row 56 is configured to correspond to the Overview section 16 in the document shown in
Each selector is configured so that when the user places the screen pointer 62 over the selector and then selects it with the selecting device 102, the system interface 84 (described above with reference to
Once the desired section is in the display window 60, the user may navigate within the section by selecting one of the second row of selectors 58. Each time a selector from the first row of selectors 56 is selected, the second row of selectors 58 is configured to correspond to the sub-sections 14 within the section 12 being displayed (as shown in
The user may also navigate within the section by controlling the display window scroll bar 96 with the screen pointer 62 and the selecting device 102.
To describe the manner in which the selectors 56, 58 in the browser user interface 50 are configured, the initialization of the browser will be described in conjunction with exemplary files or data structures that are utilized during browsing operations. It is to be understood that this is only one implementation of the preferred embodiment, and that the files may be replaced, or integrated, or revised to form different data structures without departing from the scope of the invention. Furthermore, the Dynatext development tools may be replaced by other functionally equivalent tools.
In the presently preferred embodiment, documents are converted into “books” which are actually directory trees that reside in a directory called the “\xyz\books” directory. The terms “book,” “collection” and “library” are defined and used according to the specifications of the Dynatext development system.
In order to create the Dynatext books, the documents that have been coded as illustrated in
The browser 80 uses a number of data files to define how a document is found and displayed in the browser. These files and their names in the preferred embodiment are 1) the browser executable (browser.exe); 2) an initialization file (browser.ini); 3) a set of dynamic link libraries (sit.dll, cgmzv.dll, & ct13d.dll); 4) a bks file which is an ASCII file that contains information about a book, a library or collection of documents, and names in the browser menus (named *.bks where the * represents the name of a document); 5) a bitmap containing up to 100 regions for icons (named *.bmp or default.bmp) and 6) an ASCII file that provides the linking of the document element names to the icons in the bmp file and for pop-up text in the executable (named *.map or default.map).
The execution of the browser 80 will be described with reference to
If the DLL's are available, the browser then checks for the browser.ini file as shown in 124. If the browser.ini file is present, the browser 80 reads its contents, as shown at block 126.
As the sample file in Table 1 shows, the browser.ini file contains objects, or data structures that include the [Files] object, the [DTEXT] object, and the [MAP] object. The [FILES] object defines an annotation file. The annotation file is a repository for feedback from users of the browser regarding the documents being reviewed. The [DTEXT] object contains file names that the executable will use to find the location of the data directory, security key, and public and private directories. The [MAP] object provides the file name of the initial map file that is to be loaded (typically, the name is “default.map”). The map file, as discussed in detail below, contains the associations between the document elements and the icons.
Referring back to
If a default.bks file is not found, the browser initializes without a book as shown at 130. Otherwise, the contents of default.bks are loaded as shown at 132 and the user interface is presented on the display to the user as shown at 134.
The bks files will be described by reference to
The next line in a bks file as shown in
The name of the book 146 is on the next line of the bks file. The book name is actually the name of the directory tree that must be present under the collection path specified in line two 142 of the bks file. The book title at 148 specifies an alias for the book. The book title contains the name the user will see on the document menu 52 (at
Referring back to
The browser then verifies that the elements in the map file match the SGML DTD and the structure codes in the document as shown at 166. If there are no discrepancies, the browser 80 reads the bmp file as shown at 168 which is specified in the map file. Also, in block 168, the browser 80 locates fly-by text for description of icons. The bmp file allows the browser to display the icons as shown at 170 for the selectors 56, 58 (in
Once the selectors on the user interface match the structure requirements of the document, the user may select a section of the document to view by pressing a selector button that corresponds to that section as shown at 172. The correspondence between the selectors 56, 58 and the document structure is established in the map file and in the bmp file. This correspondence will be described with reference to
The next line in the map file shown in
The first item under [sections] is “RBW-DOC, PROD.NAME, OVER=1:Overview” 188. The RBW-DOC, PROD.NAME 190 label indicates that the section identified in this line is in the first or highest level section. The OVER label 192 in the line matches the <OVER> tag 26 used to identify the overview section in the marked structure document shown in
An example of the bmp file is shown in
An example of how the map file relates to the bmp file is given in
While every book could have a separate map file and bmp file, these files relate to all books in a library. In other words, all books in the product library should have the same document structure (i.e., document type definition). Thus, a prd.map provides the mappings for all books in the products (i.e., prd) library and, a prd.bmp provides the icons for all books in the products (i.e., prd) library. The icons should relate to the hierarchical structure of the document structure as specified in the document type definition.
The user of the browser 80 may wish to view information that is known to exist in the troubleshooting section 18 of the widget product description. As shown in
The user interface 50 of the browser 80 may be enhanced by adding objects to give the user more tools with which to view the documents. The user interface 50, shown in
When the next section button 92 is selected with the combined action of the screen pointer 62 and the selecting device 102, a user views the next section in the document. For example, the next section after the Overview section 16 in
The go forward button 72 and go backward button 74 may be used to scroll text in the display window 60.
The user interface 50 as shown in
The feedback entry function gives the user the ability to provide feedback on a document for those who may browse the document at a later time. As shown in
It is to be understood that the appearance of the user interface 50 shown in
Referring to
Another variation, shown in
In another variation shown in
The user interface 50 may also be implemented in an environment that lacks a GUI, such as a character-based system interface. In an example of such an implementation shown in
In another example of a character-based user interface 50, the selectors 56, 58 are not used at all and the entire screen is the display window. Function keys 270 on the keyboard 110 are implemented in place of the selectors. The function keys 270 may be mapped according to the labels indicated at 290.
It is to be understood that this specification is provided by way of illustration and that it is only the claims and their equivalents that define the invention.
Claims
1. A system for displaying product information, the system comprising:
- a processor; and
- memory, in communication with the processor, that stores: operational instructions that, when executed by the processor, cause the processor to send data to display a plurality of selectors in a row in a region of a user interface of a browser, each of the plurality of selectors configured to correspond to a respective portion of product information; operational instructions that, when executed by the processor, cause the processor to send data to display a menu selector in the row in the region of the user interface, wherein selection of the menu selector results in a display of a menu of selection choices, and wherein the menu selector is not one of the plurality of selectors; operational instructions that, when executed by the processor, cause the processor to send data to display a search string entry box; operational instructions that, when executed by the processor, cause the processor to send data to display a fly-by help message indicating a function of a selector of the plurality of selectors after a screen pointer is positioned over the selector of the plurality of selectors; operational instructions that, when executed by the processor, cause the processor to receive a selection of one of the plurality of selectors; and operational instructions that, when executed by the processor, cause the processor to send data to display, at a same time as the plurality of selectors, a portion of the product information that corresponds to the one of the plurality of selectors, wherein the portion of the product information is displayed in a display window outside of the region of the user interface.
2. The system of claim 1, wherein the system is part of a computing environment that includes communication over a network, and wherein the processor is in communication with the network.
3. The system of claim 1, wherein the memory further stores:
- operational instructions that, when executed by the processor, cause the processor to send, over a network, the data to display the plurality of selectors.
4. The system of claim 1, wherein the memory further stores:
- operational instructions that, when executed by the processor, cause the processor to send data to display at least one additional selector in response to receiving the selection of the one of the plurality of selectors.
5. The system of claim 1, wherein the plurality of selectors are chosen from a larger set of selectors.
6. A method for displaying product information, the method comprising:
- displaying a plurality of selectors in a row in a region of a user interface of a browser, each of the plurality of selectors configured to correspond to a respective portion of product information;
- displaying a menu selector in the row in the region of the user interface, wherein selection of the menu selector results in a display of a menu of selection choices, and wherein the menu selector is not one of the plurality of selectors;
- displaying a search string entry box;
- displaying a fly-by help message indicating a function of a selector of the plurality of selectors after a screen pointer is positioned over the selector of the plurality of selectors;
- receiving a selection of one of the plurality of selectors; and
- displaying, at a same time as the plurality of selectors, a portion of the product information that corresponds to the one of the plurality of selectors, wherein the portion of the product information is displayed in a display window outside of the region of the user interface.
7. The method of claim 6, wherein the data to display the plurality of selectors is sent over a network.
8. The method of claim 6 further comprising:
- displaying at least one additional selector in response to receiving the selection of the one of the plurality of selectors.
9. The method of claim 6, wherein the plurality of selectors are chosen from a larger set of selectors.
10. A computer-readable storage medium comprising:
- operational instructions that, when executed by a processor, cause a processor to send data to display a plurality of selectors in a row in a region of a user interface of a browser, each of the plurality of selectors configured to correspond to a respective portion of product information;
- operational instructions that, when executed by the processor, cause the processor to send data to display a menu selector in the row in the region of the user interface, wherein selection of the menu selector results in a display of a menu of selection choices, and wherein the menu selector is not one of the plurality of selectors;
- operational instructions that, when executed by the processor, cause the processor to send data to display a search string entry box;
- operational instructions that, when executed by the processor, cause the processor to send data to display a fly-by help message indicating a function of a selector of the plurality of selectors after a screen pointer is positioned over the selector of the plurality of selectors;
- operational instructions that, when executed by the processor, cause the processor to receive a selection of one of the plurality of selectors; and
- operational instructions that, when executed by the processor, cause the processor to send data to display, at a same time as the plurality of selectors, a portion of the product information that corresponds to the one of the plurality of selectors, wherein the portion of the product information is displayed in a display window outside of the region of the user interface.
11. The computer-readable storage medium of claim 10 further comprising:
- operational instructions that, when executed by the processor, cause the processor to send, over a network, the data to display the plurality of selectors.
12. The computer-readable storage medium of claim 10 further comprising:
- operational instructions that, when executed by the processor, cause the processor to send data to display at least one additional selector in response to receiving the selection of the one of the plurality of selectors.
13. The computer-readable storage medium of claim 10, wherein the plurality of selectors are chosen from a larger set of selectors.
Type: Application
Filed: Feb 23, 2007
Publication Date: Apr 3, 2008
Inventors: Robert Schumacher (Wheaton, IL), James Matthews (Chicago, IL)
Application Number: 11/710,268
International Classification: G06F 17/00 (20060101);