Aspects of the present invention relate to a user interface and associated functionality in a computer system for creating and maintaining relationships between data objects stored on the system.
The overall amount of data stored in computers as well as the number of different types of data stored in computers at home and at work has grown dramatically in recent years. As users rely more and more on computers for storing greater amounts and different kinds of data, they face the difficult task of keeping their data organized and readily accessible in a complex computer system. The sheer mass and growing complexity of a user's data often makes conventional techniques for storing and organizing data, such as basic hierarchical file systems, spreadsheets, and database tables, unsuitable for conveniently organizing all of a user's information on a computer system.
Previous attempts to provide users with tools for improving data organization have resulted in methods involving folders, file and directory hierarchy searching capabilities, metadata tags, and keywords. However, these existing solutions for organizing the data on a computer system lack some features to produce an adequate environment for users to quickly and intuitively define, create, and maintain relationships between different data objects. For example, although folders allow users to group sets of objects on a computer system, they do not provide support for establishing relationships between items that are not in the same group or folder hierarchy. In light of the increasingly complex and interconnected nature of information, data objects on modern computers often cannot easily be classified into homogenous groups. Rather, data objects often have a more complex relationship structure, for example, having a certain set of meaningful data connections (i.e., relationships) with certain other objects on the system, while having additional data relationships with other objects when the data is considered in a different context. Thus, simply grouping objects together is often inadequate for expressing the multiple different types of data relationships between objects on a computer system.
Additionally, metadata tags may provide users a flexible solution for associating a piece of information, such as a keyword value or property, with a data object. Commonly known searching techniques are then employed to identify different data objects in different physical locations that share a similar keyword value or property. However, metadata tags simply embed the keyword value or property into the data object, without providing a consistent and coherent meaning for the embedded data that can be understood and/or utilized by other objects. Thus, metadata tags are often unsuitable for defining relationships between different types of data objects and data objects from different sources or users. For example, a similar metadata tag found in two different objects might not indicate an actual connection between the two objects but may simply be the result of two different organizational systems expressing a different concept using a similar term. Accordingly, metadata tags and file system searching techniques are often unsuitable for organizing information in a computer system.
In light of the foregoing, aspects of the present invention are directed to creating and maintaining semantic relationships between data objects on a computer system. The following presents a simplified summary of the invention in order to provide a basic understanding of some aspects of the invention. This summary is not an extensive overview of the invention. It is not intended to identify key or critical elements of the invention or to delineate the scope of the invention. The following summary merely presents some concepts of the invention in a simplified form as a prelude to the more detailed description provided below.
According to certain aspects of the invention, a computer user interface may be used to display multiple sets of data objects in different display panes, for example, on a computer screen. Users may then select data objects via the user interface in order to view or create new relationships between the data objects. Based on the selection of the data objects and a determination of the associated data object types, a set of semantic relationships applicable to the selected data object or objects may be retrieved and displayed in the user interface. A user may subsequently select and create an appropriate semantic relationship between data objects, thereby not only establishing an association between the objects, but providing a specific and useful meaning to the association. Similar techniques may be used to execute a software action related to the selected data objects, such as e-mailing an object to the appropriate related recipient.
According to another aspect of the invention, a data object may be selected in a user interface to initiate a retrieval of other related data objects. In one example, an object is selected in a display pane, prompting a query for the subset of objects in a different display pane that have an existing semantic relationship with the selected object. Each retrieved object may be identified on the user interface, for example, by marking related objects or by filtering unrelated objects. A related object may then be selected in order to view and/or modify the existing semantic relationships for that object. According to yet another aspect of the invention, various organization modules and collection views may provide different techniques for viewing and selecting data objects for organizing the objects into relationships. For example, a related set of data objects may be displayed in the user interface as a grid, chart, hierarchy, map, a user create favorites list, etc.
The foregoing summary, as well as the following detailed description, is better understood when read in conjunction with the accompanying drawings, which are included by way of example, and not by way of limitation and in which like reference numerals indicate similar elements.
In the following description of the various embodiments, reference is made to the accompanying drawings, which form a part hereof, and in which is shown by way of illustration various embodiments in which features may be practiced. It is to be understood that other embodiments may be utilized and structural and functional modifications may be made.
Aspects are 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 aspects of the invention include, but are not limited to, personal computers; server computers; mobile phones, portable and hand-held devices such as personal digital assistants (PDAs), tablet PCs or laptop PCs; 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.
Aspects of 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, etc. that perform particular tasks or implement particular abstract data types. Aspects of 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 both local and remote computer storage media including memory storage devices.
With reference to
Computer 110 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 110 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may include computer storage media and communication media. Computer storage media includes both volatile and nonvolatile and 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 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 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) 131 and random access memory (RAM) 132. A basic input/output system 133 (BIOS), containing the basic routines that help to transfer information between elements within computer 110, such as during start-up, is typically stored in ROM 131. RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120. By way of example, and not limitation,
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
The computer 110 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 180. The remote computer 180 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, although only a memory storage device 181 has been illustrated in
When used in a LAN networking environment, the computer 110 is connected to the LAN 171 through a network interface or adapter 170. When used in a WAN networking environment, the computer 110 typically includes a modem 172 or other means for establishing communications over the WAN 173, such as the Internet. The modem 172, which may be internal or external, may be connected to the system bus 121 via the user input interface 160, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 110, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,
One or more aspects of the invention may be embodied in computer-executable instructions (i.e., software), such as in a notification manager software object, routine or function (collectively referred to herein as a notification manager) stored in system memory 130 or non-volatile memory 141, 152, 156 as application programs 135, 145, program modules 136, 146, and/or program data 137, 147. The software may alternatively be stored remotely, such as on remote computer 180 with application programs 185. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types when executed by a processor in a computer or other device. The computer executable instructions may be stored on a computer readable medium such as a hard disk 141, optical disk 156, removable storage media 152, solid state memory, RAM 132, etc. As will be appreciated by one of skill in the art, the functionality of the program modules may be combined or distributed as desired in various aspects. In addition, the functionality may be embodied in whole or in part in firmware or hardware equivalents such as integrated circuits, field programmable gate arrays (FPGA), and the like.
The following aspects will refer to components compatible with Windows®-based operating systems available from the Microsoft Corporation of Redmond, Wash. It will be understood, however, that aspects of the invention will apply similarly to other operating systems including, but not limited to, Macintosh®-based operating systems available from the Apple Computer Corporation of Cupertino, Calif., and others such as Linux-based operating systems.
Referring to
As shown in
Users may select a workspace icon 211-213, for example, by single-clicking with a mouse 161 or other input device, from a set of default system-provided workspaces, or may define and create their own workspaces to be added to the list of workspace icons 211-213 in the command selection region 210. A user creating her own workspace may also wish to define one or more data object types and/or other criteria such as project, date, and contact, to restrict the number of items that are displayed by the workspace. In certain implementations, a user-defined workspace may include a query created by the user. After defining a workspace/query, the user may then associate a name and icon with the new workspace to add it permanently to the list in the command selection region 210. Certain implementations may facilitate workspace creation by launching a workspace wizard, or customized workspace builder application, upon detecting that a user has selected the ‘Create new workspace’ button 214 in the command selection region 210. Additionally, functionality may be provided for users to configure existing workspaces, including both the user-created and default workspaces. For example, in certain implementations, users may right-click on an existing workspace icon 211-213 to view a list of workspace-related operations (e.g., ‘Delete Workspace’, ‘Copy Workspace’). This list may include a ‘Configure’ item that invokes the workspace wizard pre-loaded with the data for the selected workspace, allowing to user to quickly reconfigure and save changes to the updated workspaces/queries.
As an example, a user that frequently uses architectural and drafting software to create technical diagrams on his or her computer may wish to create a ‘Drafting project’ workspace containing all the drafting projects on the system. Thus, after creating this new workspace, the user would be able to view all of his or her drafting projects in a single flat list, regardless of their stored location in the file system hierarchy. As described in detail below, these default and custom workspaces may allow users to better organize their data by creating, maintaining, and viewing semantic relationships between different data objects in the workspaces.
As shown in
The current location region 220 may be used to display the active query (e.g., a currently selected workspace with an associated query), which may correspond to the set of data objects in the collection view region 240. In this example, the user has selected the messages workspace by clicking button 212 in the command selection region 210. Then, the user has further narrowed the range of messages to be displayed in the collection view region 240 by defining a query, shown in current location region 220, which states that the only messages that are to be displayed in the collection view 240 are those in which the ‘From’ property is in the ‘My team’ alias, and the ‘Workitem status’ property is ‘Active.’ As described above, queries that narrow the range of data objects shown in the collection view region 240 may be created, saved, retrieved, and executed by users using conventional query-building UI components (not shown) that may be provided in the command selection region 210.
The relationship organization region 230 provides users with functionality to create and view relationships involving the data objects in the collection view region 240. Different organization modules may be plugged-in to the relationship organization region 230, to provide specific sets of data objects and/or semantic relationship types for viewing and creating relationships. For example, each workspace may include an associated set of default organization modules, so that when the workspace is selected by a user, the appropriate organization module bars (e.g., date navigator, people, locations) are automatically display in the organization region. Certain default organization modules may be pre-installed and thus are always available during interaction with the user interface, while other customized organization modules may be created and managed by users via the ‘Create new module’ and ‘Manage module’ user interface components 215 and 216. In this example, a ‘People’ organization module 231 including several distinct views corresponding to different organizational groups of people (WinFS PMs, Apps Team, Devs, Testers) has been deployed, for example, via a user selection to plug-in and initiate the module 231 in the organization region 230. As described in detail below, users may interact with the data objects in the organization modules to define semantic relationships between those objects and the items in the collection view region 240. Additionally, while this example shows a simple ‘People’ module 231, many different types of organization modules, including different data object types and different display characteristics, may be used in the organization region 230. Several other examples of organization modules are described below in reference to
The collection view region 240 may contain references to the data objects returned by the most recent workspace and query selections, which are also shown in the current location region 220. The collection view region 240 in this example is displayed as a grid including a set of sortable properties arranged in columns. In certain embodiments, the collection view 240 may be customized by the user to add/remove and sort the objects using the properties from the view 240. In this example, each data object from the messages workspace that meets the criteria of the current query should be displayed as a row in the collection view region 240. The Sender Name, Company, State, Recipient Name, Subject, and Date Received properties are displayed for each item as columns in the collection view 240.
The preview pane region 250 may display addition details for an item that has been selected from the collection view region 240. In this example, the top message in the collection view has been selected, causing additional information about this message (e.g., the senders e-mail address, and the first several lines of the message body) are shown in the preview pane region 250. Using commonly known techniques, the information shown in the preview pane region 250 may be user-customizable and may also be configured to depend on the data object type of the selected item. For example, if a digital music file were selected from a listing of media files in the collection view region 240, then the preview pane region 250 might contain the song length, artist, and album name properties, and other information that would likely be inapplicable to other data object types. As another example, if a data object corresponding to a person were selected from a list of people in the collection view region 240, the preview pane region 250 may include the selected individual's contact information, and their company/organizational information. Additionally, in certain implementations, the preview pane region 250 may be configured to display data objects selected from the relationship organization region 230, rather than just from the collection view region 240.
Referring to
Further, the different meanings of the semantic relationship types may correspond to different properties and rules stored on the system, which may be used to control the behavior of the user experience in creating and maintaining relationships. Using the above example, the ‘photographer’ semantic relationship between person objects and photograph objects might be restricted to one-to-many relationships, indicating that each person might take multiple photographs but each photograph has only one photographer. In contrast, the ‘people in picture’ semantic relationship may allow many-to-many relationships, indicating that more than one person (as well as other data object types) may be captured in a single photograph.
In step 301, the user selects a workspace for displaying items in the collection view region 240. As mentioned above, a user-selected workspace may correspond to a type of data object stored on the computer system 100, and may be further narrowed by a user-created query specifying a range or criteria for the data objects of the selected type that should be displayed in the collection view 240. In this example shown in
In step 303, the user selects an organization module to be deployed in the relationship organization region 230. As mentioned above, the ‘People’ organization module 231 shown in
In step 305, the user may select one or more data objects from the collection view region 240, for example, by mouse-clicking on a data object in the collection view region 240 (or by using shift-clicking/control-clicking for select multiple objects at once). In step 307, the user may similarly select one or more items from the organization module 231 displayed in the organization region 230.
In step 309, after one or more objects have been selected from both the collection view region 240 and the organization region 230, the computer system 100 may retrieve and display the different possible types of semantic relationships associated with the selected data object types. As an example, if only two data objects have been selected, a person (Tom) and a project proposal document stored on the computer (Proposal1), then the different semantic relationship types may correspond to several different ways in which the two objects might be related (e.g., ‘Tom is the sponsor of Proposal1’, ‘Tom is in process of reviewing Proposal1’, ‘Tom has approved Proposal1’, ‘Tom objects to Proposal1’, etc.) Of course, the different semantic relationship types may depend on the data object types, the installed software applications, and the user functionality supported by the computer system 100. Thus, a different set of semantic relationship types may exist for different combinations of data object types. Additionally, a different set of semantic relationship types may exist for the same combination of data object types operating on different computer systems 100.
In this example, step 309 may also involve displaying the set of possible semantic relationship types to the user (e.g., via the navigation screen user interface 200). A screenshot illustrating one possible technique for displaying semantic relationship types is shown in
Referring again to
As shown in
Thus, after steps 401 and 403 are completed, the user has selected a workspace and query, shown respectively by the selection of the ‘Bugs’ workspace icon 611 and the query 621 displayed in the current location region 620. Accordingly, the collection view region 640 has been populated with a corresponding set of data objects (i.e., bugs with a ‘Priority’ property value equal to ‘1’ in this example). The user has also selected a ‘People’ organization module 631 to be displayed in the relationship organization region 630 of the user interface. As shown in
Then, either in step 405 or step 407, a user-selection of a data object is detected. This selection may correspond to either an object in the collection view region 640 (in step 405) or an object in the organization region 630 (in step 407). Upon selection of a data object, a query may be executed in step 409 to retrieve an existing set of semantic relationships involving the selected data object. For example, in
In steps 411 and 413, the user interface is updated to mark the related data objects retrieved in step 409, based on the stored semantic relationships of the selected item. In this example, if a bug was selected from collection view region 640 in step 405, then the retrieved set of related people would be identified (in step 411) in the organization region 630. Similarly, if a person was selected from the organization region 630 in step 407, then the retrieved set of related bugs would be identified (in step 413) in the collection view region 640. Identifying related data objects may include commonly known user interface techniques, such as highlighting the user-selected data object while displaying check marks next to each of the related data objects in the other display pane(s). Steps 411 and 413 may also involve filtering the data objects in the display panes of the user interface, for example, by removing all of the data objects in any of the other display panes that do have an existing semantic relationship with the selected object. Thus, for example, the selection of a person from the organization region 630 in step 407 may invoke a filtering function against the collection view region 640, removing from the collection view region 640 any bug that is not related by a stored semantic relationship to the selected user.
In certain situations, a user might simply be interested in knowing which data objects are related to certain other data objects, and might not ever need the exact semantic description of the relationship between the objects. Thus, such a user might not need to progress beyond step 411 or 413 in the diagram of
Additional aspects of the user experience will now be described with reference to the user interface screen shots in
As shown by the collection view region 740 of
An additional feature related to the graphical data object display of
Additionally,
While illustrative systems and methods as described herein embodying various aspects of the present invention are shown, it will be understood by those skilled in the art, that the invention is not so limited. Modifications may be made by those skilled in the art, particularly in light of the foregoing teachings. It will also be appreciated and understood that modifications may be made without departing from the true spirit and scope of the present invention. The description is thus to be regarded as illustrative instead of restrictive on the present invention.