The invention relates generally to computing systems, and more particularly to managing application program data on a computer system.
A typical computer user has various types of useful data associated with something a user is working on (which in general will be referred to herein as a “project”). For example, certain word processing documents, spreadsheets, presentations, email messages, tasks and other information such as contacts and instant messages may all be related to a project.
Conventional application programs store their data as individual files, or as a subset of a larger file, such as one email message among a large file of email messages. While it is possible to link documents to one another and/or embed documents within another, this does not help with other types of data, and is not always desirable. For example, a user may want to see a spreadsheet associated with a project, but would not want that spreadsheet to become part of another document, such as a final report. Likewise, email messages would valuable to have while working on a project, but may, for example, be highly confidential and cannot be cut and pasted into a public or shared document.
As a result of the way project-related data is maintained, a user (or team of users) is required to mentally relate the various types of data that are associated with a project. While certain types of files can be organized under a folder, not every type of data fits under a folder. For example, to access the content of email messages, a user needs to separately run an email application program and sort through many messages, or find a corresponding message folder if one has been set up for that project.
What is needed is a mechanism that allows computer users to centrally access the information that is needed at any given time, i.e., the information associated with a certain project. At the same time, it would be desirable for the mechanism to block other, unrelated information that might otherwise be distracting.
Briefly, the present invention is directed towards a system and method by which the data of various application programs is collected for central access by a user or team of users. A database contains various program data and metadata that relates data items comprising selected file folders, contacts, tasks, email messages, calendar data, notes, clippings, and so forth to a project. Instant messages may be kept as notes in a manner that allows them to be distinguished (filtered) from other types of notes.
To relate the data, for each item of data that belongs to a project the database maintains a project identifier. If an item of data belongs to more than one project, multiple project identifiers are maintained. To this end, each item of data in the database is tracked by a record, with one field used to track to which project or projects, if any, the item belongs.
In one implementation, the metadata includes a record for each project to relate a project identifier to a project name and one or more “watch” folders that automatically associate message data that meets filtering criteria and/or files with a project.
Via the metadata, the data items and files related to a project may be quickly found using database querying techniques. Tools in the form of programs are provided to collect the various data and present it to the user in a centralized manner in relation to a project. Examples of such programs include a project center, a project gallery and a project palette which may be hosted by an application program.
The project center provides a dynamic view of a user's project data and allows the user access to the data items including messages, contact data, schedules, tasks and files. One project from among multiple displayed projects may be selected. In the project center, a number of tabs are presented, including an overview tab, a schedule tab, a mail tab, a files tab, a contacts tab, a clippings tab and a notes tab. Selecting a tab presents the corresponding data items in more detail, but only those data items associated with the project.
Contacts and messenger contacts may be associated with a project, and a user may also save instant message conversations in association with a project. To save a conversation to a project, the present invention creates a “note” flagged with data that indicates that the note is actually an instant message conversation.
To create a project, a new project wizard or the like may be run that enables a user to define metadata such as title, description, due date, notes and the like. A color may be assigned to the project, which helps a user distinguish data items and the like from other projects. Data may be imported from another project. From the wizard, watch folders may be designated, and contacts from relevant categories may be identified.
Once a project exists, items of data may be associated with a project by explicit user designation, by adding the item to a watch folder associated with a project, and by other mechanisms, such a filter rules. For example, a rule may be established such that any email message with a particular term in the subject line automatically is tagged with the project identifier.
A project palette is another tool that allows users access to project data from application programs and/or the operating system to access the project-related data items. Some activation mechanism, such as a button, keyboard key combination and/or menu item causes the project palette to be invoked. In general, the project palette may be considered a subset of the project center.
A project gallery tool allows users to access project-specific documents. Users may pre-assign a project to a new document or assign a project to an existing document.
Other advantages will become apparent from the following detailed description when taken in conjunction with the drawings, in which:
Exemplary Operating Environment
The invention is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to: personal computers, server computers, hand-held or laptop devices, tablet devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
The invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, and so forth, which perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in local and/or remote computer storage media including memory storage devices.
With reference to
The computer 110 typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by the computer 110 and includes both volatile and nonvolatile media, and removable and non-removable media. By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by the computer 110. Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above should also be included within the scope of computer-readable media.
The system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) and random access memory (RAM). A boot ROM 142, containing the basic routines that help to transfer information between elements within computer 110, such as during start-up, may be independently coupled to the system, as shown in
The computer 110 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,
The drives and their associated computer storage media, discussed above and illustrated in
A user may enter commands and information into the computer 110 through input devices such as a keyboard 162 and pointing device 163 (e.g., a mouse), and/or via other well-known input means including a tablet, electronic digitizer, microphone, trackball or touch pad. Other input devices not shown in
A monitor 180 or other type of display device is also connected to the system bus 121 via an interface, such as a video interface 181. The monitor 180 may also be integrated with a touch-screen panel or the like. Note that the monitor and/or touch screen panel can be physically coupled to a housing in which the computing device 110 is incorporated, such as in a tablet-type personal computer. In addition, computers such as the computing device 110 may also include other peripheral output devices such as speakers 190 connected via audio circuitry 191 and/or audio jacks 192 and/or a printer, which may be connected through an output peripheral interface or the like.
The computer 110 may operate in a networked environment using logical connections to one or more remote computers, which may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 110. Such networks include a local area network (LAN) and a wide area network (WAN), which may be accessed via a modem 194 and modem interface 195 and/or an Ethernet interface 196 and jack 197 and/or, but may also include other networks. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
Providing Access to Project Data
The present invention is generally directed towards a system and method by which the data of various application programs and other programs (such as operating system components) is collected for central access by a user or team of users. As will be understood, numerous ways to implement the present invention are feasible, and only some of the alternatives are described herein. For instance, many of the examples herein will be described with reference to a Macintosh-based operating system and architecture. However, the present invention is not limited to any alternative described herein, nor is it limited to particular architecture, operating environment, platform and/or operating system. Rather, the present invention provides benefits and advantages in computing in general.
As represented in
In general, a notes program 220, an email program 222, an instant messaging program 224 and other programs 226 access the database 202 through a framework library 230 comprising some shared user interface functionality 232 and a query engine 234. This access provides a user with the ability to read and write notes, read and write email messages, access contacts and so on. A finder/explorer program 236 provides a user with access to files in a file system 238.
In accordance with an aspect of the present invention, other mechanisms (e.g., tools in the form of programs) are provided to collect the various data and present it to the user in a centralized manner in relation to a project. Examples of such programs include a project center 240, a project gallery 242 and a project palette 244, which may be launched from, incorporated into, or otherwise hosted by an application program 246. Note that the project palette may reside in the framework library 230.
To relate the database data 204-209 to a project, the database maintains as part of its metadata 210 a project identifier for each item of data that belongs to a project. If an item of data belongs to more than one project, multiple project identifiers are maintained. To this end, each item of data in the database 202 also has a record, with one field used to track to which project or projects, if any, the item belongs. Note that the data items are not copied per project, but rather the data items exist once but are related to a project (or multiple projects) via the data item's metadata.
In one implementation, the metadata 210 (
When a project is identified, any files (and/or subfolders) in the related watch folder or folders may be retrieved on demand. Messages may be put into a watch folder by a user, in which event those messages become part of the project, and messages also may be automatically transferred into a watch folder, e.g., based on the sender of the message, and/or the presence of matching text in a subject line. This may be done via existing rules mechanisms for email folders. Note that other information may appear in the project metadata, e.g., date and time created, date and time last accessed, creator, and so forth. With respect to a file system folder (or set of file system folders), the files in a folder and any subfolders of that folder are associated with the project by their being contained in that folder. It should be noted that it would be feasible to associate individual files with a project, e.g., via a list of file identifiers in the project's record set, however for purposes of simplicity and convenience to the user a folder is generally sufficiently granular.
As is readily apparent via the record set 404 and similar other records for other data items, the data items related to a project may be quickly found using database querying techniques. Further, a project may be associated with file folders, whereby any files in those folders may be quickly located via the file system 238. Messages also may be in folders, as described below, and may be found via querying.
One such program that provides users with access to their project-related data items is referred to herein as a project center 240 (
In these example interfaces, a number of tabs are presented, including in
The tasks and events section 506 shows a mix of tasks and events (as selected by the user), color coded to match the color corresponding to the selected project. Each task or event may provide links to documents, contacts, clippings, and files. When selected, the task or event discloses additional metadata (time and place in the example above).
The schedule section 508 allows users to get a quick, at-a-glance view of upcoming events. The contacts section 512 provides a list of contacts, including any presence information. Note that a contact need not have a messenger account to be included. The user is able to initiate communication (chat, page, e-mail) from the list. Thus, as represented in
A documents and mail window shown as new and recent files 510 shows both documents and mail linked to the project. Documents and e-mails may be launched from this window. New files can be dragged to and from the list 510 to manage linking. A local watch folder directory and a shared directory (for sharing data items with others) may be accessed via buttons 522.
The areas marked 510 and 512 in
Selecting an item in the status list performs a context-sensitive action. For mail, it opens the mail, for files it opens the file, and so forth. If a list has more items than there is space to show, a “More . . . ” link may be provided. Clicking this link switches the user to the appropriate tab, where they are provided with a larger view in which to browse/edit the list items. Status lists can be shared across applications and do not necessarily require any particular program to be running. The same status lists that show up in the project center can show up in the project palette or any other application that wants to show them. The status lists work with the same data, namely the data present in the database and/or available from querying the system state.
Turning to an explanation of the other selectable tabs,
Note that within the contacts tab, a user is able to see the complete list of contacts associated with a project. If contacts have Messenger accounts, their current presence statuses are indicated by the messenger icon.
In addition to providing the ability to associate messenger contacts with a project, a user may also save instant message conversations in association with a project, e.g., by hitting ‘save’ a user may save conversations to a messenger conversation history, to a project, or both. Note that a user is able to select a conversation that has been saved in the messenger conversation history and save it to a project, e.g., via a “Save to Project” button or the like. Note that once the user has set the conversation to be saved, the save does not actually take place until the user ends the chat session and closes the conversation window.
The user is able to turn on or off ‘Save in a Project’ at any time, and has the opportunity to rename the conversation, pre-named by default in the title field. To save the conversation to a project, the present invention creates a “note.” In the “Notes” tab view, messenger conversations are listed alongside the user's other notes. To filter saved messenger conversations from the other notes, a category field in the metadata 210 is marked to indicate that the note is an instant message conversation.
To create a project, a new project wizard or the like may be run, such as represented in
As represented in
As represented in
Once a project exists, items of data may be associated with a project by explicit user designation, by adding the item to a watch folder associated with a project, and by other mechanisms, such a filter rules. For example, a rule may be established such that any email message with a particular term in the subject line automatically is tagged with the project identifier.
The concept of watch folders automatically adds such items to a project, e.g., any message that goes into a project's watch folder for messages becomes part of the project. Similarly, any file that goes into a particular file system folder that is designated as a watch folder automatically appears when the project's files are displayed.
Mail watch folders are mail message folders that may be filled manually or via rules may be automatically populated with mail messages that meet a certain criteria. For example, a user may create a “Mary X” watch folder that automatically contains the mail messages received from Mary X. Although in one implementation there is only one mail watch folder, in alternative implementations, the user may create multiple watch folders. For example, a user may create a second watch folder that includes the messages sent directly to Mary X. Messages sent directly to Mary X to the user show up in this second watch folder as well. Subject line criteria may also be used, and so on. In any event, a message that is part of a watch folder becomes associated with a project via a project identifier in the message's associated metadata.
In accordance with another aspect of the present invention, the project palette 244 (
In accordance with another aspect of the present invention, the project gallery 242 (
If the user pre-assigns a project to a new document, the state is reflected once the document is opened. If the user assigns a project to an existing file, it is reflected in the thumbnail view. Assignment to multiple projects is supported. Users do not create or edit projects from the project gallery, however users may launch the new project wizard from the project gallery.
As can be seen from the foregoing detailed description, there is provided a method and system for computer users to centrally access the data items associated with a certain project. The method and system are user-customizable to a significant extent, allowing users to focus on important information.
While the invention is susceptible to various modifications and alternative constructions, certain illustrated embodiments thereof are shown in the drawings and have been described above in detail. It should be understood, however, that there is no intention to limit the invention to the specific forms disclosed, but on the contrary, the intention is to cover all modifications, alternative constructions, and equivalents falling within the spirit and scope of the invention.