System, method, and computer program product for using intelligent notes to organize, link, and manipulate disparate data objects5806079Abstract A system and method of manipulating notes linked to data objects, and of manipulating the data objects. The method operates by displaying a note including one or more first sub-notes and one or more second sub-notes. The first sub-notes are linked to portions of a first data object associated with a first application. At least some of the first portions may be partially overlapping. The second sub-notes are linked to portions of a second data object associated with a second application. The second application is different from the first application. A request is received from a user viewing the note to display a portion of the first data object linked to a particular one of the first sub-notes. The first application is invoked, if the first application is not already invoked. The first application is caused to load the first data object and present the portion of the first data object linked to the particular one of the first sub-notes. Claims What is claimed is: Description 2. Field of the Invention
______________________________________
Table of Contents
Page
______________________________________
1. Overview of the Invention 11
1.1 Medical Example 12
2. Structure of the Present Invention
17
3. Features and Capabilities of the Present Invention
20
3.1 Note/Sub-Note Organization 20
3.2 Linking Sub-Notes To Data Objects
21
3.3 Examples of Note/Sub-Note Organization and Linking
25
Sub-Notes To Data Objects
3.4 Viewing Notes, Sub-Notes, and Data Objects
32
3.4.1 Note View 33
3.4.2 Object View 35
3.4.3 Link View 36
3.4.4 User-Defined View 37
3.5 Editing Note/Sub-Note Organization
38
3.5.1 Modification 38
3.5.2 Replication 39
3.6 User Interface 40
3.7 Security 42
3.7.1 Security on Individual Note Groupings, Notes,
43
Sub-notes, Links, and Data Objects
3.7.2 Security on the Note Database as a Whole
44
3.8 Search Capabilities 46
4. Notes Database 47
5. Operation of the Invention 52
5.1 Launch an Application 54
5.2 Create a Note/Sub-note (From the Note Menu)
54
5.3 Create a Note/Sub-note (Using a Pen)
59
5.4 View Note (By Selecting a Linking Button in a Data
61
Object)
5.5 View Note (From the Note Menu)
62
5.6 Select View 66
5.7 Modify Privacy/Security Settings
69
5.8 Find Note/Sub-note 69
5.9 Edit One or More Notes 70
6. Applications of the Invention 71
6.1 Movie Production 71
6.2 Bar Review Program 73
7. Conclusion 75
______________________________________
1. Overview of the Invention The present invention is directed to a system and method for attaching notes to data objects, and for linking data objects via the use of notes. The note capabilities of the present invention can be used to organize, associate, annotate, and link data objects in an intra and/or inter data object environment with single notes and multiple subnotes and/or multiple notes and subnotes to the same data object portions or different data object portions as required by the needs of the user to institutionalize his/her knowledge. Additionally, the note capabilities of the present invention can be used to convey information explaining the rationale for such organization, association, and linkage. Accordingly, the present invention represents a system and method for using intelligent notes to organize, associate, annotate, and link data objects. The invention can also be used to manipulate these data objects. As used herein, the term "data object" refers to any information in any form that can be accessed and/or processed by a computer. Such information includes data generated and/or processed by computer applications and computer-related devices such as word processing applications, spreadsheet applications, presentation managers, database managers, financial applications, networking applications, communication applications, sound recorders and processors, video recorders and processors, on-line service applications, scanners, computer aided drafting (CAD) applications, virtual reality applications and environments, etc. The data objects generated and processed by these applications and devices vary widely in subject matter. Also, these data objects come in many forms, such as text files, image files, video files, audio files, computer programs, etc. Accordingly, these data objects are disparate in both form and content. The invention is adapted to memorialize and/or institutionalize a person's or group's thinking and work product regarding a subject. If a person's or group's thinking and work product are not memorialized or institutionalized, then such thinking and work product may be lost or not accessible when needed if the person or group becomes unavailable, or is unable to remember its thinking, or loses its work product. 1.1 Medical Example The invention shall initially be described by way of an example. Consider a scenario where a doctor is attempting to determine the reasons for a patient's recent health problems involving numbness in the legs. Referring to FIG. 41, the doctor first reviews the patient's record 4102. The doctor notices that the patient has high blood pressure. The doctor also notices that the patient has been taking Drug X for approximately one year (for a reason other than high blood pressure). The doctor speculates that Drug X, high blood pressure, and numbness in the legs are related to one another. The doctor's review of the patient record 4102 and his speculation regarding Drug X, high blood pressure, and numbness in the legs represent the doctor's thinking 4116. The doctor may or may not record this thinking 4116. The doctor then consults the Physician's Desk Reference (PDR) 4104 to see if it has an entry on Drug X. The PDR 4104 has a short entry on Drug X. This entry indicates that Drug X is a new drug (which is the reason for the short entry in the PDR), and lists the manufacturer of Drug X. The doctor decides that he needs to contact this drug manufacturer. This decision of the doctor constitutes the doctor's thinking 4118 regarding the PDR 4104. The doctor may or may not record such thinking 4118. The doctor contacts the drug manufacturer. The drug manufacturer sends Drug X product literature 4106 to the doctor. The doctor reviews the product literature 4106. The product literature 4106 indicates that there have been some studies linking Drug X with heart problems. The doctor begins to suspect that Drug X combined with high blood pressure results in some type of heart problems. The doctor's suspicions represent his thinking 4120 regarding the product literature 4106. The doctor may or may not record such thinking 4120. The doctor then watches a video tape 4110 of a news story on the drug manufacturer. The news story indicates that, in the past, drugs made by the drug manufacturer have had adverse and unexpected side effects. This news story supports the doctor's suspicion that Drug X made by the drug manufacturer may have adverse effects when taken by patients with high blood pressure. The doctor's thinking on the video tape 4110 is represented by thinking 4124, which may or may not be recorded. The doctor then pulls the records of people who have previously taken Drug X. Such records are indicated as 4108 in FIG. 41. The records 4108 indicate that some people taking Drug X subsequently developed heart problems. Only some of these people, however, previously had high blood pressure. The doctor decides to order the EKG records 4112 of his patient and also of the people who had high blood pressure, took Drug X, and subsequently developed heart problems. The doctor's thinking in this regard is represented by thinking 4122, which may or may not be recorded. The doctor reviews the EKG records 4112 of the people who had high blood pressure, took Drug X, and subsequently developed heart problems. The doctor notices a slight heart murmur in these people. This heart murmur developed approximately one year after the people started taking Drug X. These people suffered severe heart attacks approximately six months after the development of the heart murmurs. The doctor theorizes that Drug X, when taken by people with high blood pressure, eventually causes severe heart problems. Such heart problems begin with slight heart murmurs approximately one year after taking Drug X, and conclude with a severe heart attack approximately six months thereafter. The doctor speculates that the heart murmurs could cause numbness in a person's legs, which is the symptom that his patient is experiencing. The doctor's thinking in this regard is represented by thinking 4126 and conclusions 4114, which may or may not be recorded. The doctor recalls that his patient has been taking Drug X for approximately one year. The doctor reviews his patient's EKG, and notices that slight heart murmurs have begun. The doctor immediately instructs his patient to stop taking Drug X. The scenario described above and shown in FIG. 41 represents a conventional investigation, analysis, and decision process. This conventional process may or may not be documented. In particular, the doctor's thinking during each step of the process may or may not be documented. Such thinking is represented by blocks 4116, 4118, 4120, 4122, 4124, 4126, and 4114. The doctor may document such thinking (by writing or dictating notes, for example). However, the doctor is just as likely to maintain his thinking only in his head. In this latter case, the doctor's thinking will be lost or not accessible when needed if the doctor becomes unavailable, or is unable to remember his thinking. The investigation, analysis, and decision process represented by FIG. 41 will not be fully documented, even if the doctor documents his thinking in blocks 4116, 4118, 4120, 4122, 4124, 4126, and 4114. In other words, the total work product and thinking resulting from the investigation, analysis, and decision process of FIG. 41 will not be fully documented simply by the documentation of thinking blocks 4116, 4118, 4120, 4122, 4124, 4126, and 4114. This is the case for at least two reasons. First, such documentation will be very disorganized. The documentation will not indicate how one note is related to another note. Second, such documentation will include only the doctor's thinking (represented by blocks 4116, 4118, 4120, 4122, 4124, 4126, and 4114). The documentation will not include the source materials upon which such thinking was based or a reference to the exact portion (text excerpt, video section, audio segment, etc.) that is relevant to the doctor's thinking and analysis. In instances with voluminous source material, the lack of this type of reference or the like prevents the doctor from clearly communicating and recording the basis for the analysis. That is, the documentation will not include the patient record 4102, the entry of the PDR 4104 dealing with Drug X, the product literature 4106, the records 4108 of people who took Drug X, the video 4110 on the drug manufacturer, or the EKG records 4112. The documentation may contain cites to some of these data objects, but it would be necessary for a person to manually retrieve these data objects in order to evaluate them. Such manual retrieval is inefficient, as it requires another person to perform the same tasks as the doctor. Also, such manual retrieval may not be possible, since source materials often become unavailable over time. Further, as noted above, such cites will not be to the exact portion (text excerpt, video section, audio segment, etc.) that is relevant to the doctor's thinking and analysis. The invention addresses and solves the problems illustrated by the conventional investigation, analysis, and decision process of FIG. 41. The invention is adapted to memorialize and/or institutionalize the doctor's total work product and thinking related to the investigation, analysis, and decision process. By doing so, the invention ensures that the doctor's total work product and thinking will survive and be accessible when needed, even if the doctor becomes unavailable, or is unable to remember his thinking, or loses the hard copies of his work product. The operation of the invention is represented by FIG. 42. The invention allows the doctor to create a note 4201 comprising multiple sub-notes 4202, 4204, 4206, 4208, 4210, 4212, 4214. The doctor records his thinking in these sub-notes 4202, 4204, 4206, 4208, 4210, 4212, 4214. For example, according to the present invention, the doctor reviews the patient's record 4102 and notices that the patient has high blood pressure. The doctor also notices that the patient has been taking Drug X for approximately one year (for a reason other than high blood pressure). The doctor speculates that Drug X, high blood pressure, and numbness in the legs are related. The doctor records his thinking regarding the patient record 4102 and the potential relationship between Drug X, high blood pressure, and numbness in the legs in sub-note 4202. The sub-notes 4202, 4204, 4206, 4208, 4210, 4212, 4214 are linked to the relevant portions of the source materials upon which the doctor's thinking is based. Such linkage is represented by links 4230, 4232, 4234, 4236, 4238, 4240, and 4242. For example, the doctor links sub-note 4202 to the relevant portion of the patient's record 4102. As another example, recall that the doctor consults the Physician's Desk Reference (PDR) 4104 to see if it has an entry on Drug X. The PDR 4104 has a short entry on Drug X. This entry indicates that Drug X is a new drug (which is the reason for the short entry in the PDR), and lists the manufacturer of Drug X. The doctor decides that he needs to contact this drug manufacturer. The doctor records his thinking regarding the Drug X entry in the PDR 4104 in sub-note 4204. The doctor links sub-note 4204 to that relevant portion of the PDR 4104 containing the entry on Drug X. By linking sub-note 4204 to only the relevant portion of the PDR 4104 pertinent to the doctor's thinking recorded in sub-note 4204, the doctor's creates a documented trail that is more useful and effective at communicating his work product and thinking. The sub-notes 4202, 4204, 4206, 4208, 4210, 4212, 4214 and the links 4230, 4232, 4234, 4236, 4238, 4240, 4242 collectively represent the doctor's total work product and thinking. The sub-notes 4202, 4204, 4206, 4208, 4210, 4212, 4214 and the links 4230, 4232, 4234, 4236, 4238, 4240, 4242 are stored in a computer database. Thus, the invention memorializes and/or institutionalizes the doctor's total work product and thinking. The invention is preferably implemented using a notes application 302 (FIG. 3). The notes application 302 is described in the following section. 2. Structure of the Present Invention FIG. 3A is a block diagram of a notes application 302 according to a preferred embodiment of the present invention. The notes application 302 includes a user interface 304, a notes engine 306, and a notes database 308. The notes database 308 includes notes and sub-notes (also called note sections) that are attached to data objects generated and/or processed by computer applications 312. The computer applications 312 include any computer applications that generate and/or process information, such as word processing applications, spreadsheet applications, presentation managers, database managers, financial applications, networking applications, communication applications, sound processors, video processors, on-line service applications, computer aided drafting (CAD) applications, etc. The notes engine 306 manages the notes database 308. More particularly, the notes engine 306 enables users to create, modify, delete, link, view, and otherwise manipulate the notes and sub-notes in the notes database 308. Users gain access to the functions supported by the notes engine 306 via the user interface 304. In performing its function, the notes application 302 drives, controls, manipulates, and otherwise interacts with the computer applications 312. For example, the notes application 302 controls the applications 312 so as to open data objects (i.e., open files containing data objects), display particular portions of data objects, highlight portions of data objects using particular fonts, patterns, and/or colors, display icons and/or buttons, etc. Preferably, the present invention achieves this functionality by interacting with applications 312 that support an interface 310 defining the interaction between computer applications. Preferably, the interface 310 uses the Object Linking Embedded (OLE) standard. The OLE standard is well known and defines the manner in which one software application may drive, control, manipulate, and otherwise interact with another software application. The OLE standard is described in many publicly available documents, such as Microsoft OLE Programmers Reference, Volumes I and II, 1993, which are herein incorporated by reference in their entirety. It should be understood that the invention is not limited to use with OLE components. The applications 312 can be any conventional or implementation specific applications, as long as they have the capability of being externally controlled (in this case, as long as they have the capability of being controlled by the notes application 302). Standard windows operations are mentioned in this disclosure. Such operations include selecting text, opening files, moving between windows, resizing windows, editing documents, etc. Such operations are well known and are described in many publicly available documents, such as Microsoft Word for Windows Users Guide, 1994, incorporated herein by reference in its entirety. In an embodiment of the present invention, components of the present invention (such as the notes application 302) are each implemented using a computer system 2802 such as that shown in FIG. 28. The computer system 2802 includes one or more processors, such as a processor 2804. The processor 2804 is connected to a communication bus 2806. The computer system 2802 also includes a main or primary memory 2808, preferably random access memory (RAM). The primary memory 2808 has stored therein control logic 2810, such as software corresponding to the notes application 302, and the notes database 308. It should be understood that the notes database 308 is not necessarily stored within a single computer. Instead, the notes database 308 may be distributed among multiple computers. Such distribution of the notes database 308 is described in further detail below. The computer system 2802 also includes a secondary memory 2812. The secondary memory 2812 includes, for example, a hard disk drive 2814 and/or a removable storage drive 2816, representing a floppy disk drive, a magnetic tape drive, a compact disk drive, a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as EPROM or PROM), etc., which is read by and written to by removable storage unit 2818. As will be appreciated, the removable storage unit 2818 includes a computer usable storage medium having stored therein computer software and/or data. The removable storage drive 2816 reads from and/or writes to a removable storage unit 2818 in a well known manner. Removable storage unit 2818, also called a program storage device or a computer program product, represents a floppy disk, magnetic tape, compact disk, etc. Computer programs (also called computer control logic) are stored in main memory 2808 and/or the secondary memory 2812. Such computer programs, when executed, enable the computer system 2802 to perform the functions of the present invention as discussed herein. In particular, the computer programs, when executed, enable the processor 2804 to perform the functions of the present invention. Accordingly, such computer programs represent controllers of the computer system 102. The notes application 302 preferably represents a computer program executing in the computer system 2802. The computer system 2802 also includes a communication interface 2820. The communications interface 2820 enables the computer system 2802 to communicate and interact with locally or remotely located external devices 2824 via a communications medium 2822. In particular, communications interface 2820 enables the computer system 2802 to send and receive software and data to/from the external devices 2824. Examples of the communications interface 2822 include a modem, a network interface (such as an Ethernet card), a communications port, etc. The computer system 2802 also includes a display unit 2826, such as a computer monitor, and one or more input devices, such as a keyboard and a pointing device (such as a mouse, trackball, etc.). In one embodiment, the invention is directed to a system 2802 as shown in FIG. 28, and having the functionality described herein. In another embodiment, the invention is directed to a computer program product having stored therein computer software (having the functionality described herein) for controlling computer systems, such as computer system 2802. In another embodiment, the invention is directed to a system and method for transmitting and/or receiving computer software (having the functionality described herein) to/from external devices 2824. 3. Features and Capabilities of the Present Invention The present invention includes a multitude of features and capabilities which enable it to achieve the advantages discussed herein. Many of these features and capabilities are discussed in the following sections. 3.1 Note/Sub-Note Organization The present invention supports a note/sub-note hierarchy, where a note may include zero or more sub-notes. This is shown in FIG. 29, for example, where Note A includes Sub-notes A, B, and C. Note B includes Sub-notes B and C (dashed line 2950B is discussed be low), Note C includes Sub-notes B, D, and E, and Note D includes Sub-notes E and F. The note/sub-note hierarchy is useful for organizing information. In particular, the note/sub-note hierarchy allows users to group together related sub-notes for organization purposes. Related sub-notes may be grouped together under one note. The note/sub-note hierarchy is extendable to multiple levels. For example, related notes can be grouped together under a note grouping. In FIG. 29, for example, Notes A and B are grouped together under Note Grouping A. Notes B, C, and D are grouped together under Note Grouping B. It should be understood that the invention is not limited to the three level hierarchy shown in the example of FIG. 29. The invention is extendable to more than three levels. The note/sub-note hierarchy of the invention is very flexible. Multiple note groupings may include the same note. For example, both Note Groupings A and B include Note B. Also, multiple notes may include the same sub-note. For example, Notes A, B, and C include Sub-note B. The note/sub-note hierarchy is defined by users. That is, users define which notes are contained in note groupings, and which sub-notes are contained in notes. The invention includes tools for enabling users to define and modify the note/sub-note hierarchy (such tools are discussed below). 3.2 Linking Sub-Notes To Data Objects The present invention allows users to link sub-notes to portions of data objects. In FIG. 29, for example, Sub-note A is linked to a portion of Data Object A via link 2911. As discussed above, a data object represents any information in any form that can be accessed and/or processed by a computer. The data objects generated and processed by these applications and devices vary widely in subject matter. Also, these data objects come in many forms, such as text files, image files, video files, audio files, computer programs, etc. Accordingly, these data objects are disparate in both form and content. Users can navigate from sub-notes to data objects via the links. For example, a user can navigate from Sub-note A to Data Object A via link 2911. The links between sub-notes and data objects are bidirectional. Thus, in addition to being able to navigate from sub-notes to data objects via the links, users can also navigate from data objects to sub-notes via the links. For example, a user can navigate from Data Object A to Sub-note A via link 2911. A sub-note may be linked to all or any portion of a data object. Multiple sub-notes may be linked to portions of the same data object. This is true, whether the sub-notes are in the same or different notes. These data object portions may be completely overlapping, partially overlapping, or non-overlapping. Also, the sub-notes in a note may be linked to portions of a single data object, or to portions of one or more data objects. A data object may be linked to one or more sub-notes (these sub-notes may be in the same note, or in multiple notes). In FIG. 29, for example, data object A is linked to Sub-notes A, C, and D. Users can navigate from sub-notes in a first note to sub-notes in a second note via common data objects. In FIG. 29, for example, a user can navigate from Sub-note A in Note A to Sub-note D in Note C via Data Object A, which is linked to both Sub-note A (via link 2911) and Sub-note D (via link 2917). The linking capabilities of the present invention shall be further described by reference to an example scenario presented in FIG. 3B. The notes application 302 in the example of FIG. 3B includes notes 314A and 314B (these notes are stored in the notes database 308, which is not explicitly shown in FIG. 3B). Each note 314 includes a plurality of sub-notes 316. Each sub-note 316 is linked to a data object 320. Each data object 320 is associated with one or more applications 312. A data object 320 is associated with an application 312 if the application 312 is capable of accessing and/or processing the data object 320. More particularly, each sub-note 316 is linked to a portion 322 of a data object 320. A portion 322 may include all or part of a data object 320. Portions 322 in the same data object 320 that are linked to sub-notes 316 may be distinct (non-overlapping), may completely overlap, or may partially overlap. For purposes of illustration, it is assumed herein that each data object is associated with a single computer program application. This association between data objects and applications may be established in any well known manner, such as by file extension. For example, all files having a "wpd" extension are as a default associated with the WORD PERFECT word processing application, all files having a "wks" extension are as a default associated with the LOTUS 1-2-3 spreadsheet application, all files having a "db" extension are as a default associated with the PARADOX database application, etc. These default associations between data objects and applications are preferably user definable. Preferably, users may override these default associations at the time that a sub-note is linked with a data object, or at any time thereafter. A note 314 may contain sub-notes 316 that are linked to portions 322 of a single data object 320, or multiple data objects 320. These data objects 320 may be associated with a single application 312, or with multiple applications 312. For example, note 314A includes sub-notes 316A, 316B, 316C that are linked to portions 322A, 322C, 322B, respectively, of data objects 320A, 320B that are associated with application 312A. Note 314A also includes a sub-note 316D that is linked to portion 322D of object 320C associated with application 312B. Multiple sub-notes 316 in the same or different notes 314 may be linked to the same portion 322 of a data object 320. For example, sub-notes 316D and 316F are linked to portion 322D of object 320C. A note 314 represents a data object. Accordingly, a sub-note 316 may be linked to a portion of a note 314. For example, sub-note 316E is linked to portion 322F of note 314B. Portion 322F includes sub-note 316G. Each sub-note 316 includes a content field 1512 (FIG. 15) that is used to convey information. The contents of the content field 1512 are user definable. Preferably, the content field 1512 includes at least information that explains the rationale for linking the sub-note 316 to the portion 322 of the data object 320. For example, the content field 1512 could include a description of how the portions 322 linked to the sub-notes 316 in the note 314 are related to one another. The content field 1512 can be any format or combination of formats, such as text, sound, video, image, executable program, tactile (such as braille), etc. The mechanism for linking portions 322 of data objects 320 with sub-notes 316 is generally represented in FIG. 3B as links 338. According to the present invention, this linking mechanism 338 is bi-directional. Thus, a user viewing portion 322B of data object 320A can issue a command to view sub-note 316C. Also, a user viewing sub-note 316D can issue a command to automatically launch application 312B, load data object 320C, and view portion 322D. The linking mechanism 338 of the present invention enables users to easily traverse through related data objects 320, and through sub-notes 316. For example, a user could command the notes application 302 to display the note 314A. From note 314A, the user could move from sub-note 316A to portion 322A and back again, from sub-note 316B to portion 322B and back again, etc. Accordingly, the notes 314 and sub-notes 316 represent a trail through portions 322 in data objects 320. The linking mechanism 338 of the present invention enables users to access portions 322 of data objects 320 in any order. This represents random access technology. For example, a user can access in any order the portions 322 of data objects 320 linked to the sub-notes 316 in the note 314A. In this respect, the invention is superior to conventional mechanisms for linking documents, such as that shown in FIG. 1, where documents must be accessed in a predefined order. Such conventional mechanisms represent sequential or linear access technology. Thus, the trail through documents provided by the linking mechanism 338 of the present invention is much more flexible and user-friendly than the trail provided by conventional linking mechanisms. One or more notes can be grouped together under one note grouping. A note grouping table 390 or other database construct is used to keep track of which notes are in which note groupings. In the example of FIG. 3B, notes 314A and 314B are in Note Grouping A. Each note 314 preferably includes information that identifies which Note Grouping it is in, such that it is possible to traverse from a note to a note grouping, and vice versa. This is described further below. Further levels of organization are also supported by the invention, using the same or extensions of the organizational constructs (note groupings, notes, sub-notes, links, etc.) discussed herein. The note/sub-note hierarchy feature and the linking feature of the invention as described above collectively provide at least two ways to organize information, and to memorialize/institutionalize a person or group's thinking and work product. First, the notes application 302 provides a note/sub-note hierarchy. The note/sub-note hierarchy allows users to group together related sub-notes for organization purposes. That is, related sub-notes may be grouped together under one note. The grouping together of related sub-notes conveys to a certain extent the rationale for the linking together of data objects 320. Second, the notes application 302 provides a means for explicitly documenting the trail through data objects 320 as established by the linking mechanism 338. Such documentation is achieved by the sub-notes 316. As discussed above, each sub-note 316 includes a content field 1512 (FIG. 15) that is used to convey information. The content field 1512 preferably includes at least information that explains the rationale for linking the sub-note 316 to the portion 322 of the data object 320. Thus, the rationale for the trail established by the linking mechanism 338 is explicitly explained by the information contained in the sub-notes 316. 3.3 Examples of Note/Sub-Note Organization and Linking Sub-Notes To Data Objects The note/sub-note hierarchy feature and the linking feature of the invention shall now be further described in this section by the use of examples. These examples will also serve to illustrate the general operation of the note application 302. FIG. 5 is a legend 502 of colors 506, 510, 514, 518, 522 used by the present invention for color coding purposes. Colors 506, 510, 514, 518, 522 are preferably red, green, yellow, blue, and violet, although other colors could alternatively be used. Colors 506, 510, 514, 518, 522 could represent different patterns and/or fonts in addition to or instead of colors. This is especially useful when the notes application 302 is used with a computer having a black and white monitor. In one embodiment, the colors/patterns/fonts are user definable (this embodiment is discussed further below). The legend 502 depicts different symbols 508, 512, 516, 520, 526 used by the present invention. For purposes of the present invention, symbols 508, 512, 516, 520, and 524 are associated with colors 506, 510, 514, 518, and 522, respectively. When displaying these symbols 508, 512, 516, 520, 526, the invention fills the symbols 508, 512, 516, 520, 526 with their associated colors 506, 510, 514, 518, 522, respectively. FIG. 4 depicts an example computer display 402 of the display unit 2826 (FIG. 28). The computer display 402 is currently displaying a notes toolbox window 406 and an application window 408. Also shown in FIG. 4 is a pointer 420 corresponding to the mouse or other pointing device, such as a trackball. The application window 408 is generated by an application that can process text data objects, such as a word processor or the SMARTPATENT WORKBENCH available from SmartPatents, Inc., Menlo Park, Calif. The application window 408 is currently displaying a portion of a U.S. Patent. The notes toolbox window 406 includes a note menu button 409 and a plurality of pen buttons 410. In the example of FIG. 4 the notes toolbox window 406 includes five pen buttons 410, but the notes toolbox window 406 could alternatively include other numbers of pen buttons 410. A user presses the note menu button 409 to access the note menu 1602 (FIG. 16). From the note menu 1602, the user can access functions provided by the notes application 302 for manipulating notes and sub-notes. These functions include creating a new note and/or sub-note, viewing an existing note and its sub-notes, finding a particular note or sub-note, selecting a view, and modifying privacy settings. The note menu 1602 is discussed in detail below. Each pen button 410 includes an image of a pen, such as pen image 412 in pen button 410A. The pen images in the pen buttons 410 are color coded using the colors 506, 510, 514, 518, 522 shown in FIG. 5. The pen buttons 410 are used to select portions of data objects that are to be linked with sub-notes of notes. The pen buttons 410 are used as follows. A user selects one of the pen buttons 410 using the mouse. The pointer 420 representing the mouse on the computer display then changes to the image of a pen. The color of the pen is the same as the color of the pen image in the pen button 410 that the user selected. The user then manipulates the pen using the mouse to select a portion of the currently displayed data object (in the case of FIG. 4, a portion of the patent displayed in the application window 408). The selected portion of the data object is color coded using the same color as the pen. The notes application 302 creates a new sub-note, and links the sub-note to the selected portion of the data object. Such operation is shown in FIGS. 6A and 6B. The user selects pen button 410A, which causes the pointer 402 to change to a pen 620. The pen 620 is color coded using color 506, which is the same as the selected pen button 410A. The user selects text 602, which is a portion of patent data object displayed in the application window 408. The notes application 302 instructs the application associated with the application window 408 to color code the selected text 602 using the same color as the pen 620, i.e., color 506. The notes application 302 creates a new note, called Note A, and displays Note A in a note window 606. The note window 606 has a name field 608 in which the name of the note (i.e., Note A) is displayed. The notes application 302 creates a new sub-note, called Sub-note A1, and displays Sub-note A1 in a sub-note window 610. The notes application 302 links Sub-note A1 to the selected text 602. The notes application 302 inserted the new Sub-note A1 in a new Note A because the computer screen 402 was not displaying an existing note when the text 602 was selected. If, instead, an existing note was being displayed on the computer screen 402 when the text 602 was selected, then the notes application 302 would have inserted the new Sub-note A1 in that existing note. The notes application 302 displays a linking button 612 adjacent to sub-note window 610. The linking button 612 is color coded with the same color as the pen 620, i.e., color 506. Also, the symbol of the linking button 612 is that which corresponds to this color, i.e., symbol 508. Similarly, the notes application 302 displays a linking button 604 adjacent to the selected text 602. The linking button 604 is color coded with the same color as the pen 620, i.e., color 506. Also, the symbol of the linking button 604 is that which corresponds to this color, i.e., symbol 508. Linking button 604 associated with the selected text is used to navigate to and display the sub-note (i.e., Sub-note A1) that is linked to the selected text. For example, assume that the user now closes window 606. If the user wishes to view the sub-note linked to the selected text 602, then the user need only click on the linking button 604. This causes the notes application 302 to display Note A and Sub-note A1 in the note window 606. Similarly, linking button 612 associated with Sub-note A1 is used to navigate to and display the selected text 602 that is linked to Sub-note A1. For example, assume that the user now closes window 408. If the user wishes to view the text linked to Sub-note A1, then the user need only click on the linking button 612. This causes the notes application 302 to launch the application associated with selected text 602. The notes application 302 then commands the application to load the data object containing the selected text 602, and further commands the application to scroll within the data object so that the selected text 602 is displayed in the window 408. Also displayed next to the sub-note window 610 is an object field 614 and a location field 616. The object field 614 includes information that describes the object containing the selected text that the corresponding sub-note is linked to. For example, the object field 614 may display: "U.S. Pat. No. 4,444,444." The location field 616 includes information that describes the location of the selected text in the object. For example, the location field 616 may display: "Column 3, line 25." FIGS. 7A and 7B continue the scenario of FIGS. 6A and 6B. In FIGS. 7A and 7B, the user selects pen button 410B, causing the pointer to change to pen 720. The user selects text 702 using pen 720. The notes application 302 creates a new sub-note, called Sub-note A2. Note that this Sub-note A2 is added to existing Note A, because Note A was being displayed when the user selected text 702. Also note that selected text 602 overlaps with selected text 702. The present invention allows portions in a data object that are to be linked with sub-notes to be distinct, to partially overlap, or to completely overlap. Such functionality of the invention enables users to precisely associate sub-notes with portions in data objects. Sub-notes in a note can be linked to portions of data objects associated with different applications. This is the scenario shown in FIG. 8. Recall that Note A has Sub-notes A1 and A2 that are linked to portions 602, 702 in a patent data object. The patent data object is associated with a word processing application, for example. In FIG. 8, the user launched a spread sheet application. A spreadsheet 804 is displayed in a window 802. The user selected pen button 410D and then pen button 410C. The user used the resulting pens to select portion 806 (including one cell) and then portion 808 (including four cells) of the spreadsheet 804. In response to such action by the user, the notes application 302 created a new sub-note, Sub-note A3, and linked Sub-note A3 to selected portion 806. The notes application 302 then created a new sub-note, Sub-note A4, and linked Sub-note A4 to selected portion 808. FIG. 9 continues the scenario of FIG. 8. The user closed window 606 (containing Note A). The user then selected pen button 410C, resulting in pen 920. The user selected portion 902 of the spreadsheet 804 using pen 920. The notes application 302 created a new sub-note, Sub-note B1, and linked Sub-note B1 to selected portion 902. Since no note was being displayed when the user selected portion 902, the notes application 302 created a new note, Note B, and inserted the Sub-note B1 into Note B. FIG. 10 illustrates a scenario where the notes application 302 is being used with a database application. In FIG. 10, the user has used pen 1020 to select portion 1006, representing a field in two records of a database 1002. The notes application 302 created Sub-note B2 in Note B, and linked Sub-note B2 to portion 1006. FIG. 11 illustrates a scenario where the notes application 302 is being used with a personal finance application. A check register 1102 is displayed in a window 1104. The user used a pen 1120 to select a portion 1106 of the check register 1102. This portion 1106 corresponds to check number 532. The notes application 302 created a new Sub-note B3, and linked Sub-note B3 to the selected portion 1106. FIG. 12 illustrates a scenario where the notes application 302 is being used with an audio processor. The audio processor displays a window 1202 that includes a title field 1206 and a track field 1208 for displaying the title and track of the audio work that is being processed. The window 1202 includes controls 1212 for manipulating the audio work, and a window 1214 that graphically characterizes the audio work over time. In the scenario of FIG. 12, the user selected pen button 410B and used the resulting pen to select track 5 (by clicking on "5" displayed in the track field 1208, for example). The notes application 302 created new Sub-note B4, and linked Sub-note B4 to track 5. Then, the user selected pen button 410A and used the resulting pen 1250 to select a portion 1216 of the audio work. The notes application 302 created new sub-note B5, and linked Sub-note B5 to this portion 1216 of the audio work. The example of FIG. 12 illustrates an important feature of the invention. The invention can be used to select portions of text based data objects, such as text documents, computer programs, spread sheets, database files, etc. The invention can also be used to select portions of non-text based data objects, such as audio data objects (as in FIG. 12), video data objects, graphics data objects, etc. Thus, the invention can be used to mark or "bookmark" text based and non-text based data objects for fast reference and retrieval. As noted above, a sub-note can be linked to a portion of a note. This scenario is depicted in FIG. 13. The user selected patent button 410A. The user then used the resulting pen 1350 to select a portion 1302 of Note B. This portion 1302 includes Sub-note B2 and Sub-note B3. The notes application 302 created a new Sub-note Cl, and linked Sub-note C1 to portion 1302 of Note B. Linking button 1316 in Note B links portion 1302 to Sub-note Cl. Similarly, linking button 1310 in Note C links Sub-note C1 to portion 1302 of Note B. The notes application 302 created a new Note C and inserted Sub-note C1 into Note C because no other note was displayed when the portion 1302 was selected (other than Note B; however, preferably, a note cannot contain a sub-note that is linked to a portion of itself; accordingly, the notes application 302 created Note C to contain Sub-note C1). As will be apparent from the foregoing, the notes application 302 can operate with any application that supports the interface 310 (FIG. 3A). The interface 310 preferably uses the OLE standard. The number of applications which support the OLE standard is rapidly growing. Accordingly, the number of applications which are operable with the notes application 302 is increasing. It should be understood, however, that the notes application 302 is not limited to use with the OLE standard. The notes application 302 can be used with any standard that allows one software application to interact with another.) 3.4 Viewing Notes, Sub-Notes, and Data Objects The present invention supports a number of modes for displaying the contents of the notes database 308. These modes are called views. The invention supports a note centric view (also called a note view), an object centric view (also called an object view), a link centric view (also called a link view), and a user-defined view. A user can elect to print the notes database 308 while in any of these views, such that the print out has the same appearance to that which is displayed on the computer display. Users can select any of these views to display the contents of the notes database 308. Users can also alternate between these views. Further, users can simultaneously display multiple views of the notes database 308. This is shown in FIG. 43, for example, where the user has elected to display the note view in a window 4304, the link view in the a window 4306, the object view in a window 4308, and the user-defined view 4310. By utilizing multiple windows, such as windows 4304, 4306, 4308, 4310, the user can simultaneously display different views of the same or different portions of the notes database 308. The ability to display information using different views, to switch between views, and/or to simultaneously display different views of the same or different information is useful for enabling users to fully comprehend and best manipulate the information. In essence, the invention allows users to view and perceive information in the notes database 308 from different angles and perspectives. Depending on the nature of the information or task, some views may be more appropriate than others. The invention provides users with the ability to customize the display based on the needs of the moment. Such flexibility facilitates comprehension and manipulation of information. The note view, object view, link view, and user-defined view are described in the following sections. 3.4.1 Note View There are two note views: the standard note view and the modified note view. The standard note view is shown in FIGS. 6-13. The standard note view includes at least one note window having a note and its sub-notes displayed therein. This is shown in FIGS. 6A and 6B, for example, where the note window 606 has displayed therein Note A and its Sub-note A1. The standard note view may or may not also include one or more application windows each displaying a portion of an object that is linked to one of the sub-notes displayed in the note window. In FIGS. 6A and 6B, for example, the application window 408 is displayed. The application window 408 has displayed therein a portion 602 of a patent document that is linked to Sub-note A1 in the note window 606. The link between data object portion 602 in the application window 408 and Sub-note A1 is indicated by the linking buttons 604, 612 that have the same shape and color. The modified note view illustrates a note and its sub-notes, and all data objects linked to the sub-notes. An example modified note view is shown in FIG. 30. The modified note view displays, in a window 3002, a note window 3004 that is currently displaying Note A and its Sub-notes A, B, and C. The modified note view also displays the data object portions linked to the sub-notes (i.e., Sub-notes A, B, C) displayed in the note window 3004. These data object portions are displayed in application windows 3018, 3020, 3022. Note A may include additional sub-notes that are not currently displayed in the note window 3004 (due to space limitations in the note window 3004). These additional sub-notes can be displayed by using well known window navigation tools, such as the window scroll bars. When such additional sub-notes are scrolled into view in the note window 3004, additional application windows having displayed therein the data object portions linked to the sub-notes are also scrolled into view in the window 3002. The modified note view also displays bidirectional arrows 3012, 3014, 3016 that indicate the links between sub-notes and data object portions. These arrows 3012, 3014, 3016 are "live," in that users can select and manipulate these arrows in order to modify the note/sub-note hierarchy. For example, a user can delete a link between a sub-note and a data object portion by selecting and deleting the corresponding arrow in the modified note view. A user can also modify the linkage between sub-notes and data object portions by selecting and then dragging an arrow from one sub-note to another sub-note, and or from one data object portion to another data object portion. Users can also select and manipulate the arrows 3012, 3014, 3016 in order to modify the attributes of the underlying links. Such attributes relate to privacy, security, and priority. The manipulation of the arrows 3012, 3014, 3016 is described further in a section below. For readability purposes, details of the note window 3004 and the application windows 3018, 3020, 3022 are not shown in FIG. 30. Preferably, however, the note window 3004 and the application windows 3018, 3020, 3022 include the same features as those shown in FIGS. 6-13. For example, the application windows display linking buttons (if any) that are not related to the sub-notes in Note A. If a user presses one of these linking buttons, then the note corresponding to this linking button is retrieved and displayed using the standard note view, which is the default view (users may select a different default view). 3.4.2 Object View The object view displays a data object and all sub-notes linked to the data object. An example object view is shown in FIGS. 31A and 31B. A data object 3101 is being displayed in an application window 3104. Only a part of the data object 3101 is being displayed due to the size limitations of the application window 3104. Sub-notes linked to the data object 3101 are also being displayed. These sub-notes are displayed in note windows 3122, 3124, 3126, 3128. Only those sub-notes linked to data object portions currently being displayed in the application window 3104 are displayed. Other parts of the data object 3101 may be displayed in the application window 3104 by using well known window navigation tools, such as the window scroll bar. As other parts of the data object 3101 are scrolled into view in the application window 3104, any sub-notes linked to these newly displayed parts of the data object 3101 are also scrolled into view in the window 3102. The object view also displays bidirectional arrows 3114, 3116, 3118, 3120 that indicate the links between sub-notes and data object portions. As discussed above (and further discussed below), these arrows 3114, 3116, 3118, 3120 are "live," in that users can select and manipulate these arrows in order to modify the note/sub-note hierarchy, and to modify the attributes associated with the underlying links. For readibility purposes, details of the note windows 3122, 3124, 3126, 3128 and the application window 3104 are not shown in FIGS. 31A and 31B. Preferably, however, the note windows 3122, 3124, 3126, 3128 and the application window 3104 include the same features as those shown in FIGS. 6-13. For example, the note windows 3122, 3124, 3126, 3128 may include sub-notes and linking buttons that are not related to the data object 3101 in application window 3104. If a user presses one of these linking buttons, then the data object portion corresponding to this linking button is retrieved and displayed using the standard note view, which is the default view. 3.4.3 Link View The link view displays the connections between note groupings, notes, and sub-notes, and the links between sub-notes and data object portions. The link view is useful for obtaining a high level display of the note grouping/note/sub-note hierarchy, and sub-note/data object portion linkage. The link view is also useful for editing and replicating the note grouping/note/sub-note hierarchy (this is described further in a section below). An example link view is shown in FIG. 29. The link view displays the title (or identifier) of note groupings, notes, sub-notes, and objects. For example, Sub-note A is represented by its name, "Sub-note A," displayed in an oval. Data object A is represented by its name, "Data Object A," displayed in an oval (this oval may also include information that identifies the portion of Data Object A that is linked to the corresponding sub-note(s)). The contents of these note groupings, notes, sub-notes, and objects are not shown in the link view. A user may view the contents of a note grouping, a note, a sub-note, and/or an object by selecting the corresponding icon in the link view. For example, a user can display the contents of Note A by clicking on icon 2906. This results in displaying Note A using the default standard note view. The link view also displays the connections between note groupings, notes, and sub-notes by using connector lines 2950. The link view further displays the links between sub-notes and data object portions by using bidirectional arrows 2911, 2917. As discussed above (and further discussed below), these connector lines 2950 and arrows 2911, 2917 are "live," in that users can select and manipulate these connector lines/arrows in order to modify the note grouping/note/sub-note hierarchy, and to modify the attributes associated with the underlying connections/links. Other portions of the note grouping/note/sub-note hierarchy can be viewed by using well known window navigation tools, such as the window scroll bars. 3.4.4 User-Defined View The user-defined view displays note groupings, notes, sub-notes, and/or data objects that satisfy search criteria entered by the user. An example user-defined view is shown in FIG. 32. This view is called the icon view. In this example, the user has elected to view all sub-notes and linked data objects that are tagged with a particular icon (this icon is shown in window 3204). (A sub-note or data object portion is tagged with a particular icon by using the appropriate pen when selecting the data object portion and creating the sub-note. The invention also allows users to modify these tags.) In this example, Sub-notes B and C of Note A, Sub-note E of Note C, and Sub-note E of Note D were tagged with the user selected icon. Thus, these notes and sub-notes are displayed in window 3202. The data object portions that are linked to these sub-notes also are tagged with the user selected icon. Thus, these data object portions are also displayed. The links between the sub-notes and the data object portions are indicated by the bidirectional arrows 3212, 3214, 3218, which are also displayed. As discussed above (and further discussed below), these arrows 3212, 3214, 3216, 3218 are "live," in that users can select and manipulate these arrows in order to modify the note/sub-note hierarchy, and to modify the attributes associated with the underlying links. For readibility purposes, details of the note windows 3206, 3208, 3210 and the application windows 3220, 3222, 3224 are not shown in FIG. 32. Preferably, however, the note windows 3206, 3208, 3210 and the application windows 3220, 3222, 3224 include the same features as those shown in FIGS. 6-13. For example, the note windows 3206, 3208, 3210 may include sub-notes and linking buttons that are not related to the data objects displayed in the application windows 3220, 3222, 3224. If a user presses one of these linking buttons, then the data object portion corresponding to this linking button is retrieved and displayed using the standard note view, which is the default view. 3.5 Editing Note/Sub-Note Organization The invention includes many flexible features and functions for modifying and replicating the note grouping/note/sub-note hierarchy. These are described below. 3.5.1 Modification The invention enables users to modify the note grouping/note/sub-note hierarchy. In other words, the invention enables users to switch or copy notes from one note grouping to another, or switch or copy sub-notes from one note to another. The invention provides a number of ways for the user to modify this hierarchy. One way involves modifying the connector lines that appear in a link view. Consider the example of FIG. 29. A user can delete Sub-note C from Note B, and add Sub-note D to Note B, by selecting and dragging connector line 2950A so that it points to Sub-note D, instead of Sub-note C. This is shown as connector line 2950B. A user can move Sub-note F from Note D to Note C by selecting and dragging connector line 2950C so that it points at Note C, instead of Note D. This is shown as connector line 2950D. Users can remove notes from note groupings, or sub-notes from notes, by selecting and deleting the corresponding connector lines. For example, a user can remove Note B from Note Grouping B by selecting and deleting connector line 2950E. Users can add a note to a note grouping, or add a sub-note to a note, by creating a new connector line. For example, a user can add Note C to Note Grouping A by creating and appropriately positioning connector line 2950F. The creation, deletion, or modification of a connector line does not affect any other connector lines. Consider the above example where Sub-note C is removed from Note B, and Sub-note D is added to Note B. This was done by moving connector line 2950A so that its appears as connector line 2950B. This modification does not affect connector line 2950G. Thus, Sub-note C remains in Note A. The invention also enables users to modify the links between sub-notes and data object portions. The invention provides a number of ways for the user to perform such modifications. One way involves modifying the bidirectional arrows (such as arrows 2911 and 2917 in FIG. 29) that appear in a link view. Such manipulation of the bidirectional arrows is similar to the manipulation of connector lines, described above. The invention provides other interfaces for performing the modifications discussed above. Essentially, users can perform such modifications while in any view. Consider the user-defined icon view shown in FIG. 32. A user can move sub-notes from one note to another by using well known copy/cut and paste operations. Also, a user can change the linkage between sub-notes and data object portions by clicking and dragging the bidirectional arrows 3212, 3214, 3216, and 3218. 3.5.2 Replication A great deal of time and effort may go into the creation of a note grouping/note/sub-note hierarchical database. Typically, a database is specific to a particular task or project. However, it is often the case that parts of a database are applicable to another task or project. For efficiency purposes, users would like to reuse a database generated for one project to the extent possible in another project. The invention provides powerful tools for enabling a user to identify and replicate portions of an existing database that may be relevant to another project. These replicated portions constitute the foundation of a new hierarchical database. In some cases, a user may already know which parts of a database are pertinent to another project. In such cases, the user may select those parts and replicate (copy) them to a new database. Consider the link view shown in FIG. 29. In this example, the user knows that a portion of Note Group B is relevant to a new project. Accordingly, the user has selected this portion of Note Group B. This selection is indicated by dashed lines 2942. The user then commands the note application 302 to replicate this portion of Note Group B, and to form a new database using this replicated portion. In other cases, the user does not know which parts of a database are pertinent to another project. In these cases, the user can use the invention's searching capabilities to identify note groupings, notes, sub-notes, and/or data object portions that are relevant to this other project. The user can then replicate these identified note groupings, notes, sub-notes, and data object portions to a new database. FIG. 33 illustrates a new database that was created based on a search conducted on the example database of FIG. 29. The invention supports searching based on key words, date/time of creation/modification, creator, icon tags, etc. The searching capabilities of the invention are discussed below. 3.6 User Interface As discussed above, the notes application 302 includes a user interface 304. Referring to FIG. 34, the user interface 304 enables a user 3404 to interact with the notes database 308 and source material 3410, representing data objects. The user 3404 interacts with the user interface 304 so as to create note groupings, notes, and sub-notes, establish and modify the note grouping/note/sub-note hierarchy, establish and modify the links between sub-notes and data object portions, and in all other ways interact with the notes database 308 and the source material 3410. It is very important that the user interface 304 provide the user 3404 with an easy to use (i.e., user friendly) interface to the notes database 308, the source material 3410, and to the features and functions provided by the notes application 302. If the user interface 304 is user friendly, then the user 3404 is more likely to utilize the notes application 302 to document his thinking and work product. The user interface 304 may be implemented using any user interface tools, approaches, techniques, technology and/or applications that currently exist, or that will be developed in the future. In one embodiment, the user interface 304 is implemented as a computer based graphical user interface (GUI). Example screen shots from this GUI are shown in FIGS. 4, 6-13, 29-33, and 43. In another embodiment, the user interface 304 is implemented in whole or in part using virtual reality (VR) technology. Significant VR technology has been developed, and more is currently being developed. Virtual reality is discussed in many publicly available documents, such as Virtual Reality Applications and Explorations, edited by Alan Wexelblat, Academic Press, Cambridge, Mass., 1993, and On the Cutting Edge of Technology, Sams Publishing, Carmel, Ind., 1993 which are incorporated herein by reference in their entireties. It should be understood, however, that the invention is adapted and intended to operate with other user interface technology that currently exists, or that will be developed in the future. FIG. 35 represents an example VR scenario 3502 according to a preferred embodiment of the invention. The user is represented in VR scenario 3502 by a hand 3504. As will be appreciated by persons skilled in the VR arts, the user selects and manipulates objects in the VR world of FIG. 35 by using the virtual hand 3504, just like the user selects and manipulates objects in the real world using his own hand. Other techniques for manipulating objects in the VR world will be apparent to persons skilled in the VR arts. For example, manipulation may be accomplished by voice command, or by thought (tied to brain waves or brain impulses), or by body gestures, etc. In the example of FIG. 35, the user selects a book 3508 from a library 3506. The user opens the book 3508 until a passage 3510 of interest is found. The user selects this passage 3510 and then links this passage 3510 to a sub-note 3518 in Note A. Such linkage may automatically occur upon the selection of the passage 3510 (since such selection results in the creation of sub-note 3518, and in the creation of the link between sub-note 3518 and the passage 3510, as described above). Alternatively, the user can link passage 3510 with sub-note 3518 by moving the hand 3504 from the passage 3510 to the sub-note 3518. The user can enter comments into the sub-note 3518 using any input mechanism or procedure, such as typing on a real or virtual keyboard, audibly dictating the comments, etc. Any of the displays and screen shots discussed herein, such as those shown in FIGS. 4, 6-13, 29-33, and 43, can be displayed and manipulated in the VR world. The user can manipulate the items and objects in those displays via the VR hand 3504 or any other virtual construct, instead of or in addition to a computer (physical or virtual) keyboard and mouse. The combination of the notes application 302 with virtual reality creates a very powerful, user friendly application. In the discussion herein, the user is often said to issue a command, press a button, select an option from a menu, review a computer display, input/key in information or commands, or perform some other type of action that requires interaction with the computer. It should be understood that, according to the present invention, such interaction can be achieved using any type of user interface, including a conventional computer interface (using a keyboard and mouse, for example), or a virtual reality interface, as just described above. 3.7 Security The invention includes many functions, features, and capabilities to maintain the security of the information contained in the note database 308. These security features can generally be categorized as follows: (1) security on individual note groupings, notes, sub-notes, links, and objects; and (2) security of the note database 308 as a whole. These two security features are discussed below. 3.7.1 Security on Individual Note Groupings, Notes, Sub-notes, Links, and Data Objects A person, group, or organization may wish to limit access to note groupings, notes, sub-notes, links, and/or data objects. Only people or groups who satisfy some specified criteria would have access to such note groupings, notes, sub-notes, links, and/or data objects. The present invention supports features for securing individual note groupings, notes, sub-notes, links, and data objects. A note grouping, note, sub-note, link, or data object may be secured based on a number of criteria, including creator, owner, password, security level, or any other well known security criteria. For example, if a sub-note is secured based on the creator criteria, then only the creator may access the sub-note. If a sub-note is secured based on password, then only persons who have the correct password may access the sub-note. If a sub-note is secured based on security level, then only persons having the appropriate security level will have access to the sub-note. In one embodiment, a person or group who satisfies the current security criteria for a note grouping, note, sub-note, link, or data object may modify the security criteria for the note grouping, note, sub-note, link, or data object. In other embodiments, only persons or groups who have satisfy a specified, alternate security criteria (such as administrators) may change existing security criteria. If a note grouping is secured, then only persons who satisfy the specified criteria may gain access to the note grouping, and the notes, sub-notes, and connectors/links contained in the note grouping. If a note is secured, then only persons who satisfy the specified criteria may gain access to the note, and the sub-notes and connectors/links contained in the note. If a sub-note is secured, then only persons who satisfy the specified criteria may gain access to the sub-note, and the link contained in the note. If a link (that links a sub-note to a data object portion) or a connector (that establishes the note grouping/note/sub-note hierarchy) is secured, then only persons who satisfy the specified criteria may gain access to and traverse the link/connector. This effect of security is illustrated in the example of FIG. 44. Note A is displayed in a note window 4406. It is assumed that Note A is not secured, or that the current user satisfies the security criteria associated with Note A. Note A includes Sub-notes A, B, and C. It is assumed that Sub-notes A and B are not secured, or that the current user satisfies the security criteria respectively associated with Sub-notes A and B. Accordingly, Sub-notes A and B are displayed. Sub-note C is secured. However, the current user does not satisfy the security criteria of Sub-note C. Thus, Sub-note C is not displayed. It is assumed that the current user satisfies the security criteria respectively associated with link 4414. Thus, the link 4414 is active. The current user may manipulate and traverse link 4414. Thus, the data object associated with link 4414 is displayed in application window 4420. The current user does not satisfy the security criteria of link 4416. Thus, link 4416 is inactive. The current user may not manipulate or traverse link 4416. Thus, the data object associated with link 4416 is not displayed. It is irrelevant whether the current user does or does not satisfy the security criteria of link 4418. In either case, link 4418 is inactive since its Sub-note C is inactive (in other embodiments, the security state of a link is separate and distinct from the security state of its sub-note). 3.7.2 Security on the Note Database as a Whole According to some embodiments of the present invention, the notes database 308 is stored in a single computer. In other embodiments of the present invention, the notes database 308 is distributed among multiple databases. Procedures and technology for distributing the notes database 308, and for working with the distributed notes database 308, will be apparent to persons skilled in the relevant art(s). In some circumstances, the distribution of the notes database 308 is advantageous for implementation, performance, and robustness reasons. The motivations and advantages of distributed database systems in this regard are well known. According to the present invention, the notes database 308 is also distributed for security reasons. In some situations, it is necessary to maintain the confidentiality and secrecy of the notes database 308. Distributing the notes database 308 aids in this effort, and it ensures that the inadvertent or improper disclosure of one part of the notes database 308 maintained at one site does not result in the disclosure of the other parts of the notes database 308 at other sites. In some cases, it is critical that the linkage information contained in the notes database 308 be kept secret. The present invention utilizes techniques in addition to the data distribution approached described above to secure the linkage information in the notes database 308. These additional techniques also relate to data distribution. In particular, the present invention preferably partitions the notes database 308 into a note information database 3406 and a note/object linking information database 3408. The note/object linking information database 3408 contains the linkage information that specifies how sub-notes are linked to data object portions. The note information database 3406 includes all information about notes and sub-notes except for the linkage information. The note information database 3406 is distributed among a first set of sites. The note/object linking information database 3408 is distributed among a second set of sites. The first and second sets of sites may be the same, may be completely different, or may be partially the same. FIG. 38 illustrates an example implementation of the invention. In this example, the note information database 3406 is distributed among sites 3804 and 3406. The note/object linking information database 3408 is distributed among sites 3806, 3810, and 3812. These sites are connected via a network 3820, which may represent any type of communication medium in any form or configuration, such as a public network (the Internet, for example), a private network (such as a virtual network), dial up telephone lines, etc. The communication medium can include any type of communication links, such as fiber optics, coaxial cable, wireless, satellite links, etc., or any combination of these. The invention uses other techniques for securing the notes database 308. In some embodiments, for example, all or part of the notes database 308 is encrypted. For example, references contained in the note information database 3406 to the note/object linking information database 3408 are encrypted using any well known encryption mechanism or algorithm, such as key encryption. Encryption of the notes database 308 is further described below. 3.8 Search Capabilities The invention supports powerful search features for identifying note groupings, notes, sub-notes, links, and/or data objects that satisfy user supplied search criteria. Users can perform key word searches, searches based on date/time of creation or modification, searches based on icon tagging (icons can be predefined or user defined), searches based on creator or owner, searches based on security/privacy levels, etc. Preferably, sub-notes are indexed and searchable. Also, fields (predefined or user defined) within note groupings, notes, and sub-notes are indexed and searchable. The user can limit the search to a user-defined path through the note/sub-note hierarchy (for example, the user can limit the search to a path that starts with a user specified note grouping, note, sub-note, link, etc.). The operation of the search capabilities of the present invention are described further below. 4. Notes Database Implementation of the notes database 308 according to an embodiment of the present invention shall now be described with reference to FIG. 14. FIG. 14 illustrates an example notes database 308 that stores Notes A, B, and C. Notes A, B, and C correspond to the example shown in FIGS. 8, 12, and 13, respectively. The notes database 308 includes a node or record for each note. These nodes are called note nodes. Accordingly, the notes database 308 includes note nodes 1404, 1406, and 1408 for Notes A, B, and C. The note nodes 1404, 1406, and 1408 are arranged in a linked list 1450 that begins with a root node 1402 and ends with a null node 1410 (or a null pointer). Procedures for establishing, traversing, modifying, and maintaining linked lists are well known to persons skilled in the relevant art(s). Each note node, such as note node 1404, includes a note identifier field 1412, a next note field 1414, and a next sub-note field 1418. The note identifier field 1412 stores information that identifies the note, such as "Note A" for note node 1404. The next note field 1414 stores either (1) a pointer to the next note node in the note linked list 1450, or (2) a null pointer if the note node is the last note node in the note linked list 1450 (see the note node 1408 for Note C). The next sub-note field 1418 stores either (1) a pointer to a sub-note linked list corresponding to sub-notes in the note, if the note has one or more sub-notes, or (2) a null pointer if the note does not have any sub-notes. Each note node may include additional information, such as information that identifies the privacy/security criteria associated with the note. The notes database 308 includes a node or record 1422 for each sub-note. These nodes 1422 are called sub-note nodes. The sub-note nodes 1422 for a note's sub-notes are arranged in a linked list, called a sub-note linked list. Consider sub-note linked list 1452, corresponding to Node A's sub-notes. The sub-note linked list 1452 begins with Node A's note node 1404 and ends with a null node 1432 (or a null pointer). Each sub-note node, such as sub-note node 1422A, includes a sub-note name field 1424, a descriptor field 1426, a next sub-note field 1428, and a parent field 1429 (for readibility purposes, the parent field 1429 is only shown in sub-note node 1422A, but it exists and operates in the same manner for all sub-note nodes 1422). The sub-note name field 1424 stores the name of the sub-note, such as "Sub-note A." The next sub-note field 1428 stores either (1) a pointer to the next sub-note node in the sub-note linked list 1452, or (2) a null pointer if the sub-note node is the last sub-note node in the sub-note linked list 1452 (see the sub-note node 1422D for Sub-note A4). The parent field 1429 stores an address or pointer that points back to the note in which the sub-note is contained. Thus, for the sub-note node 1422A, the parent field 1429 includes a pointer to note node 1404. The descriptor field 1426 stores information pertaining to the sub-note. FIG. 15 is a block diagram of an exemplary descriptor field 1426. The descriptor field 1426 includes a note identifier field 1503, a sub-note identifier field 1504, an object identifier field 1506, a location identifier field 1508, a range field 1509, a pen field 1510, a contents field 1512, a sub-note privacy settings field 1514, and a link privacy settings field 1516. In some implementations, some of these fields are unused. The note identifier field 1503 includes information that identifies the note in which the sub-note is contained. The sub-note identifier field 1504 includes information that uniquely identifies the sub-note. For example, this identifier could be composed of the name of the note concatenated with the date/time stamp of when the sub-note was created. Other procedures for generating the sub-note identifier could alternatively be used, such as a hashing procedure. The sub-note object identifier field 1506 stores information that identifies the data object containing the selected portion to which the sub-note is linked. This field 1506 may also store information that identifies the application associated with the data object. The location identifier field 1508 stores information that identifies the location of the selected portion in the data object. If the data object is a patent, for example, the location identifier field 1508 may store "Column 5, line 15" or the like. The range field 1509 stores information that identifies or indicates the range of the selected portion in the data object. If the data object is a patent, for example, the range field 1509 may store "Column 7, line 23." The location identifier field 1508 in combination with the range field 1509 identifies the selected portion in the data object. In the above example of a patent document, the selected portion goes from Column 5, line 15 to Column 7, line 23. The pen field 1510 stores information that identifies the pen that was used to select the selected portion to which the sub-note is linked. The contents field 1512 stores the information that the user entered into the sub-note window, such as sub-note window 610 shown in FIG. 8. The contents field 1512 may include information of any form. For example, the contents field 1512 may store text data, image data, digitized audio and/or video, an executable computer program, tactile data (for controlling a braille device, for example), and/or links or references to any of the above. The sub-note privacy settings field 1514 stores the privacy/security criteria associated with the sub-note. The link privacy settings field 1516 stores the privacy/security criteria associated with the link of the sub-note. Each note node and/or sub-note node may store additional information, such as the security/privacy criteria associated with the connector lines that connect notes to sub-notes. The notes database 308 also includes a note grouping table 390 (FIG. 45) or some other functionally equivalent data structure. The note grouping table 390 indicates the notes contained in each note grouping. The notes database 308 could be implemented in ways other than that shown in FIG. 14, and described above. In particular, the notes database 308 could be implemented using any well known data structure or organization. Various data structures are described in many publicly available documents, such as Niklaus Wirth, Algorithms+Data Structures=Programs, Prentice Hall, 1976, which is herein incorporated by reference in its entirety. As discussed above, in some embodiments the notes database 308 is partitioned into a note information database 3406 and a note/object linking information database 3408. The note information database 3406 and the note/object linking information database 3408 may be distributed among a plurality of sites, as shown in FIG. 38. FIG. 37 illustrates the note information database 3406 and the note/object linking information database 3408 in greater detail. In essence, the descriptor field 1426 from each sub-note node 1422 is divided among the note information database 3406 and the note/object linking information database 3408. The note information database 3406 stores the note identifier 1503, the sub-note identifier 1504, the pen 1510, the contents 1512, and the sub-note privacy settings 1514. The note/object linking information database 3408 stores the object identifier 1506, the location identifier 1508, the range 1509, and the link privacy settings 1516. Other information stored in the note nodes and the sub-note nodes are preferably stored in the note information database 3406. The note information database 3406 also stores for each sub-note node a link address field 3702. Similarly, the note/object linking information database 3408 stores for each sub-note node a link address field 3706. An entry in the note information database 3406 corresponds to an entry in the note/object linking information database 3408 if the contents of the link address fields 3702, 3706 are the same. The use of the note information database 3406 and the note/object linking information database 3408 shall now be described. Suppose that the notes application 302 is processing a sub-note and the data object portion that it is linked to. The notes application 302 retrieves the entry in the note information database 3406 corresponding to this sub-note. The notes application 302 processes the information contained in the note identifier field 1503, the sub-note identifier field 1504, the pen field 1510, the contents field 1512, and the sub-note privacy settings field 1514 in whatever way appropriate for the type of processing that the notes application 302 is performing. In order to identify and access the linked data object portion, the notes application 302 retrieves the link address from the link address field 3702. This link address is used as an index into the note/object linking information database 3408 to identify the entry corresponding to the entry being processed in the note information database 3406. The linked data object is identified by the information in the object identifier field 1506, location identifier field 1508, and range field 1509 of this corresponding entry. In some embodiments, the invention further secures the information in the notes database 308 by encrypting the link address in the link address field 3702 of the note information database 3406, and by encrypting the object identifier field 1506, location identifier field 1508, and range field 1509 in the note/object linking information database 3408. In these embodiments, the notes application 302 retrieves the link address from the link address field 3702. The notes application 302 then decrypts this link address (indicated by 3704). This decrypted link address is used as an index into the note/object linking information database 3408 to identify the entry corresponding to the entry being processed in the note information database 3406. The linked data object is identified by the information in the object identifier field 1506, location identifier field 1508, and range field 1509 of this corresponding entry. Before it can use this information, however, the notes application 302 must decrypt the object identifier field 1506, location identifier field 1508, and range field 1509 (indicated by 3708). This decrypted information can then be used to identify linked portion 3712 in data object 3710. In the description contained herein, it is often said that information is stored or retrieved from the notes database 302. More generally, it is said that the notes database 302 is accessed. The technology, procedure, algorithms, etc., for accessing the notes database 302 (whether the notes database 302 is centralized or distributed) will be apparent to persons skilled in the relevant art(s). 5. Operation of the Invention The operation of the present invention shall now be described with reference to a flowchart 1702 shown in FIG. 17. Flowchart 1702 illustrates the manner in which a user interacts with the notes application 302 to organize data objects, and to manipulate notes attached to portions of data objects. Such user interaction with the notes application 302 is preferably achieved through interaction with a user interface 304 that forms part of the notes application 302. As apparent from the discussion below, the user interface 304 of the present invention is very powerful and flexible. In particular, the user interface 304 allows users to access the functionality of the notes application 302 in any number of ways. Accordingly, the operational steps shown in flowchart 1702 and in other flowcharts discussed below represent one way (i.e., one operational sequence) of accessing the functions provided by the notes application 302. Users may access and traverse the functions provided by the notes application 302 in any number of other ways via interaction with the menus provided by the user interface 304. Such other ways (i.e., such other operational sequences) will be apparent to persons skilled in the relevant art(s). In step 1704, the user issues a command to an operating system executing in the computer system 2802. The user may issue this command via a keyboard or a well known point-and-click approach, or via a body gesture, thought, or voice command when using a VR user interface, or via any other well known means for entering a command. If the user issued a command to launch an application, then control line 1710 is taken. If the user issued a command to create a new note/sub-note, and this command was issued using the note menu 1602, then control line 1712 is taken. If the user issued a command to create a new note/sub-note, and this command was issued using a pen (such as pen 1350 in FIG. | ||||||
