Many users of graphical desktop systems follow a practice of saving documents to the desktop so that while the documents are being edited, the documents are readily accessible without searching or navigating through a file system. In addition, specific document icons on the desktop can serve as reminders of work that the user must perform. Over time, the desktop can become cluttered, making it difficult for the user to locate a desired document, because the user must visually scan the desktop.
One time consuming way to manage a cluttered desktop is to manually file the documents away into folders. This is not only a time-consuming side task on the part of the user, but depending on the filing and manual document management skills of the user, documents may be filed away in a manner that makes them hard to retrieve later.
The problem of desktop clutter is exacerbated because sometimes many workers multitask on a number of projects, each of which may involve the creation or saving of a variety of documents each relating to a different topic onto the desktop. In many cases, the desktop system will “suggest” where to place documents. For example, when using “File>Save As” to save a new document or a new version of an existing document to the desktop, the desktop system must provide a location to place the document icon on the desktop. Typically the desktop places document icons in a grid, top to bottom, left to right. When the user is multiplexing between different projects, document icons are typically arranged chronologically without regard to project, topic or purpose.
Embodiments of a system are described. In one embodiment, the system is an automatic and incremental organizer of graphical elements with a user interface. The system includes an analyzer for evaluating the properties of objects that are represented graphically on a display device, comparing the object properties of each of graphical elements with every other graphical element, and generating a measurement of similarity for every possible pairing of graphical elements. The system also includes an aggregator for incrementally moving each of the plurality of graphical elements towards at least one other graphical element based upon the degree of similarity. Other embodiments of the system are also described. Embodiments described herein enable views of objects to incrementally self organize on the basis of similarities and differences in multiple attributes and to change their presentation over time to reflect relative frequency of use. On an operating system desktop, this self-organizing feature would sort objects into groups and, if accessed infrequently, gradually be removed from view on the desktop.
Other aspects and advantages of embodiments of the present invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrated by way of example of the principles of the invention.
Throughout the description, similar reference numbers may be used to identify similar elements.
It will be readily understood that the components of the embodiments as generally described herein and illustrated in the appended figures could be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of various embodiments, as represented in the figures, is not intended to limit the scope of the present disclosure, but is merely representative of various embodiments. While the various aspects of the embodiments are presented in drawings, the drawings are not necessarily drawn to scale unless specifically indicated.
The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by this detailed description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Reference throughout this specification to features, advantages, or similar language does not imply that all of the features and advantages that may be realized with the present invention should be or are in any single embodiment of the invention. Rather, language referring to the features and advantages is understood to mean that a specific feature, advantage, or characteristic described in connection with an embodiment is included in at least one embodiment of the present invention. Thus, discussions of the features and advantages, and similar language, throughout this specification may, but do not necessarily, refer to the same embodiment.
Furthermore, the described features, advantages, and characteristics of the invention may be combined in any suitable manner in one or more embodiments. One skilled in the relevant art will recognize, in light of the description herein, that the invention can be practiced without one or more of the specific features or advantages of a particular embodiment. In other instances, additional features and advantages may be recognized in certain embodiments that may not be present in all embodiments of the invention.
Reference throughout this specification to “one embodiment,” “an embodiment,” or similar language means that a particular feature, structure, or characteristic described in connection with the indicated embodiment is included in at least one embodiment of the present invention. Thus, the phrases “in one embodiment,” “in an embodiment,” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment.
While many embodiments are described herein, at least some of the described embodiments present a system and method for organizing graphical elements of a user interface. More specifically, the system is able to analyze the object properties of every graphical element and compare those object properties with the object properties of every other graphical element. In another embodiment, the system may also continuously assess the relative similarity or dissimilarity of every graphical element with every other object in a distributed manner. The system then generates a degree of similarity between every possible pairing of graphical elements, and then based upon the degree of similarity, incrementally and gradually moves graphical elements.
In one embodiment, the user interface 110 is presented on the display device 112. The computing device which implements the user interface organization system 100 may be any computing device, including a desktop computer, laptop computer, mobile phone or other mobile device, or any other computing device capable of displaying the user interface 110. The user interface 110 may receive inputs from various sources, including manual input from a user via a mouse, a keyboard, a touch screen, or other input devices. The user interface 110 may also output the data in the user interface 110 onto the display device 112, such that the user interface 110 and any graphical elements 114 in the user interface 110 may be displayed to the user.
The user interface 110 may include any number of graphical elements 114. Examples of graphical elements 114 include a dialog window, an application window, a block of text, or any other visual component in the user interface 110. The graphical elements 114 may display data to the user. In some embodiments, the graphical elements 114 are representative of computer files stored in either the memory 102 or the disk 108, and are displayed as icons indicative of a particular type of file. In other words, the graphical elements 114 may represent a text document, a spreadsheet, an email message, a calendar event, a video, etc.
The system 100 also includes an organizer 116. The organizer 116 dynamically aggregates and personalizes a user interface 110 that is presented to a user via the display device 112. The organizer 116 gradually aggregates the graphical elements 114 based on object property criteria that will be described in greater detail below. In one example, the organizer 116 aggregates icons displayed on a desktop and gradually migrates the icons from one position on the desktop to another position on the desktop based on similarities and dissimilarities of pairs or groupings of icons.
The analyzer 202 evaluates all graphical elements 114 within the user interface to determine a degree of similarity between the graphical elements 114 by analyzing the properties of the graphical element 114 and the object associated with the graphical element 114. For example, a graphical element 114 may comprise an icon that is representative of a word processing document stored on the storage device or disk 108 of
The analyzer 202 compares the properties (also referred to as “classification attributes”) of a first graphical element 114 with a second graphical element 114 and generates the degree of similarity or measurements of similarity indices. The analyzer 202 repeats the comparison analysis for each possible pairing of graphical elements 114 displayed within the user interface as presented on the display device 112, and maintains an index of similarity values in the repository 206.
Examples of analysis techniques suitable for analyzing the similarity indices of all possible graphical element 114 pairings include, but are not limited to cluster analysis, swarm intelligence, and multidimensional scaling. These techniques, as known by those of skill in the art, explore the similarities and differences in data. The analyzer 202 may utilize these or other statistical modeling techniques to assign degrees of similarity to each possible pairing of graphical element.
The repository 206, in one embodiment, is a database configured to store the degree of similarity values or indices generated by the analyzer 202. In an alternative embodiment, the repository 206 may be a simple table, text document, or spreadsheet, for example, capable of storing the degree of similarity values. The degree of similarity may be a value within any predefined or automatically generated range of values for establishing a similarity relationship between graphical elements 114 and their respective associated objects. For example, the range of values may be numbers in the range of between 0 and 1, with the value 1 indicating that objects are identical and a value of 0 indicating no similarity between the objects.
The aggregator 204 incrementally moves similar graphical elements 114 into groupings based upon the degree of similarity generated by the analyzer 202. In one embodiment, the aggregator moves together graphical elements with a degree of similarity that exceeds a threshold value. Continuing the example from above, if the range of values is from 0-10, the threshold might be 6.0. Therefore, graphical elements with a degree of similarity of 6.1 or greater, for example, will be moved incrementally moved towards each other by the aggregator 204. The aggregator 204 identifies the positions of the graphical elements 114 with respect to one another on the display device 112. The position may be relative to the dimensions of the display device, or actual pixel coordinates, for example. Upon identifying the positions of the graphical elements 114, the aggregator 204 “moves” the graphical element 114 towards other similar graphical elements based on the degree of similarity.
The movement of the graphical elements 114 is gradual to avoid the disruptive effects of a sudden, one-step, reorganization of graphical elements 114 or icons. The aggregator 204 moves pairs of graphical elements 114 with high similarity move towards each other to achieve a grouping, as will be described below with reference to
The presenter 208, in one embodiment, animates the movement of the icons to draw attention to the movement, thereby lessening the disruption of the automatic and gradual organizing of the user interface. Any number or type of animations may be used to highlight the movement of the icons, for example, a bouncing or sliding icon.
In a further embodiment, the presenter 208 modifies the “static” or non-moving appearance of the graphical elements 114 to represent the time since the graphical element 114 was last accessed. A timer 210 may maintain this time since the graphical element 114 was last accessed. The presenter 208 may decrease the opacity of the graphical element 114 as time passes since the graphical element 114 was last accessed. In other words, the presenter 208 modifies the appearance of the graphical element 114 by gradually fading the graphical element until the graphical element is no longer visible on a desktop or home screen. Alternatively, the presenter 208 may change a size of the graphical element 114. Eventually, the presenter 208 removes the graphical element 114 from the user interface and the organizer 116 moves the associated object into a different area of the file system. For example, the organizer 116 may move the object into a folder for objects that are accessed infrequently.
The presenter 208 also monitors how a user interacts with the graphical elements 114 and may modify the object attributes associated with the graphical elements 114 based upon the user interaction. For example, the presenter 208 may detect that the user has clicked on a specific graphical element 114 and consequently the presenter 208 may reset the timer 210 associated with that graphical element 114. Additionally, the presenter 208 may reset the opacity of the graphical element 114 to be fully opaque or reset a size to a default size.
In a further embodiment, the presenter 208 is configured to gradually group similar graphical elements 114 into a single representative icon. For example, if a certain amount of time passes and the user does not interact with one icon in a grouping of icons, the presenter 208 may gradually condense the group of icons into a single icon. The single icon may be depicted as a folder, in one example. This will be described below in greater detail with reference to
After a group of icons has been condensed into a single icon, the analyzer 202 and aggregator 204 will repeat the above described process with the condensed icons. In other words, the analyzer 202 will evaluate the single condensed icon and generate new degrees of similarity to other graphical elements. Subsequently, the aggregator 204 begins to gradually move the single condensed icon towards other graphical elements 114 based upon the degree of similarity.
The desktop 302 displays multiple graphical elements or icons 304 (referred to collectively as “icons 304” and individually as “icon 304x”). The icons 304, as described above, are associated with objects stored on the disk 108. The icons 304 may have an appearance that indicates the type of associated object. For example, an icon 304a may depict a text document object, a spreadsheet object, a movie object, etc. Many users of graphical desktop systems save objects to the desktop 302 so that the objects remain readily accessible without searching or navigating through the file system. Over time, the desktop 302 becomes cluttered.
Icons 304 may be distributed in an arbitrary manner across the unorganized desktop 302a. The analyzer 202 evaluates each possible pairing of icons 304 to generate a degree of similarity. The analyzer 202 compares object properties including, but not limited to, object creation date, object type, object title, object size, time since last accessed, time since last modified, etc.
For example, the analyzer 202 may determine that icons 304a and 304b have a high degree of similarity, and the analyzer 202 may also determine that icons 304a and 304d also have a high degree of similarity. As icon 304a has multiple similar icons 304b, 304d, the aggregator 204 may decide to migrate the icons 304b, 304d towards icon 304a. The aggregator 204 gradually and incrementally moves the icons 304b, 304d towards icon 304a over a period of time. The period of time may be predefined or selectable by a user. For example, the time period may be one week. Stated differently, the time period for moving the icons 304b, 304d to a final position adjacent icon 304a may be one week. Accordingly, the aggregator 204 calculates the distance to move each icon each day in order to finish the migration within the time period.
In an alternative embodiment, the aggregator 204 may move pairs of similar icons 304 towards each other. For example, the aggregator moves icons 304c, 304e towards each other to form a grouping 308c of icons 304c, 304e. In certain embodiments, icons 304 may have an affinity or similarity towards two separate groupings 308a, 308b, or icons 304. For example, icon 304g may have a degree of similarity with icon 304a that is substantially equivalent to a degree of similarity with icon 304f. The organizer 116, in this situation, may generate a shortcut or pointer to the associated object (depicted as a dashed line icon 304g) in group 308a while the original icon 304g remains in group 308b.
While a cluster of similar objects is not modified, the presenter 208 provides an indication that the organizer 116 will file them as a grouping 402. In one embodiment, the indication is a masking (illustrated here with dashed lines) that modifies the transparency of the objects inside the group 402. The timer 210 of
The analyzer 202 analyzes 502 the object properties or characteristics of each object displayed on the desktop. Examples of object properties that may be evaluated include, but are not limited to file name, file type, file creation date, file modification date, file accessed date, file size, file creator, etc. The analyzer 202 then compares the object properties of each object on the desktop with every other object on the desktop. In other words, the analyzer 202 generates 504 degrees of similarities between each possible pairing of objects on the desktop. These generated values may be stored in the repository 206 of
The aggregator 204 then incrementally moves 506 the objects based on the generated degree of similarity. In one embodiment, moving 506 an object comprises determining which objects are most similar and subsequently moving the most similar objects towards each other. Objects may have multiple affinities, or in other words, similarity to different objects. The aggregator 204 may form groups of similar objects, or alternatively, generate a shortcut or link in one group that points to the original object in a second grouping.
As the aggregator 204 incrementally moves 506 the objects, the presenter 208 highlights the movement to draw attention towards the movement. As such, disruption of the user experience is minimized because the user is aware of the movement. Conversely, a system that abruptly reorganizes icons on a desktop creates maximum disruption to the user experience as the user searches his or her desktop for the new position of certain icons.
The organizer 116 monitors the desktop for modifications 508. Examples of modifications include, but are not limited to, new objects, deleted objects, and moved objects. Each of these changes causes the organizer 116 to initiate an analysis of objects by the analyzer 202. For example, if a user drags an object from a first grouping to a second grouping, the analyzer 202 resets the degree of similarity between the icon and the first grouping, and automatically establishes a high degree of similarity between the object and the second grouping.
While no modifications are being made, the presenter 208 monitors 510 the “age” of groupings and icons on the desktop. The presenter 208, in one embodiment, maintains a timer 210 for each object on the desktop to monitor the time since the user last accessed or modified the object. If a predetermined or user-selected age is reached 512, the presenter 208 marks the object and indicates that the object will be filed 514 away. In one embodiment, this marking or indication is a modification of the appearance of the object by modifying, for example, the transparency or size of the object. In a further embodiment, the presenter 208 may animate the transition of the object from the desktop to a folder not displayed on the desktop. The modification of the appearance of the object may be incremental in a manner similar to the movement of the objects. In other words, the objects incrementally fade until removed from the desktop. The method then ends.
In the above description, specific details of various embodiments are provided. However, some embodiments may be practiced with less than all of these specific details. In other instances, certain methods, procedures, components, structures, and/or functions are described in no more detail than to enable the various embodiments of the invention, for the sake of brevity and clarity.
Although the operations of the method(s) herein are shown and described in a particular order, the order of the operations of each method may be altered so that certain operations may be performed in an inverse order or so that certain operations may be performed, at least in part, concurrently with other operations. In another embodiment, instructions or sub-operations of distinct operations may be implemented in an intermittent and/or alternating manner.
Although specific embodiments of the invention have been described and illustrated, the invention is not to be limited to the specific forms or arrangements of parts so described and illustrated. The scope of the invention is to be defined by the claims appended hereto and their equivalents.
An embodiment of a system includes at least one organizer coupled directly or indirectly to memory elements through a system bus such as a data, address, and/or control bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
It should also be noted that at least some of the operations for the methods may be implemented using software instructions stored on a computer usable storage medium for execution by a computer. As an example, an embodiment of a computer program product includes a computer usable storage medium to store a computer readable program that, when executed on a computer, causes the computer to perform operations, including an operation to monitor a pointer movement in a web page. The web page displays one or more content feeds. In one embodiment, operations to report the pointer movement in response to the pointer movement comprising an interaction gesture are included in the computer program product. In a further embodiment, operations are included in the computer program product for tabulating a quantity of one or more types of interaction with one or more content feeds displayed by the web page.
Embodiments of the invention can take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment containing both hardware and software elements. In one embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
Furthermore, embodiments of the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
The computer-usable or computer-readable medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device), or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk, and an optical disk. Current examples of optical disks include a compact disk with read only memory (CD-ROM), a compact disk with read/write (CD-R/W), and a digital video disk (DVD).
Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Additionally, network adapters also may be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modems, and Ethernet cards are just a few of the currently available types of network adapters.