PATENT DOCUMENT

Publication Number: US-8739051-B2
Application Number: US-39806809-A
Country: US
Kind Code: B2

Title: Graphical representation of elements based on multiple attributes

Abstract:
Systems, methods and machine-readable media are disclosed for providing a graphical representation of elements, such as songs. Each element may be associated with at least one of multiple attributes. For each of the elements, a degree of relevancy can be computed with respect to each of the attributes. A graphic representing each attribute can be displayed on a display screen, and the elements can be displayed on the display screen such that they are spatially positioned relative to the graphics based on the computed relevancies. In some embodiments, a region can be defined for each of the attributes, and the elements associated with a particular attribute may be displayed within the associated region.

Claims:
What is claimed is: 
     
       1. A computer-implemented method, comprising:
 receiving, at a computing device, input corresponding to a selection of one or more initial files from a navigation panel for display in a display panel, wherein each of the one or more initial files includes one or more associated attributes; 
 receiving input corresponding to a selection of two or more of the associated attributes included in the selected one or more initial files; 
 displaying a graphic for each of the two or more selected attributes in the display panel, wherein when the two or more selected attributes are associated with the same initial file, the displayed position of the graphics is automatically determined; 
 analyzing a plurality of additional files to determine whether the plurality of additional files are relevant to the two or more selected attributes; 
 determining that a subset of the plurality of additional files are relevant to the two or more selected attributes; 
 displaying two or more defined regions corresponding to the two or more selected attributes in the display panel; and 
 displaying the subset of the additional files in the two or more defined regions, wherein the relevance of the additional files in the subset to the two or more selected attributes is indicated by the displayed position of the additional files in the subset in the two or more defined regions, and wherein the displayed position of an additional file in the subset in a defined region indicates that the additional file is relevant to each of the two or more selected attributes. 
 
     
     
       2. The method of  claim 1 , wherein the defined region is formed by an overlap of the two or more defined regions corresponding to the two or more selected attributes. 
     
     
       3. The method of  claim 1 , wherein the relevance of the additional files in the subset to the two or more selected attributes is indicated by the proximity of the displayed additional files in the subset to the displayed graphics for the two or more selected attributes. 
     
     
       4. The method of  claim 1 , further comprising:
 assigning a weight to each of the two or more selected attributes. 
 
     
     
       5. The method of  claim 4 , further comprising:
 receiving input corresponding to modification of a defined region corresponding to a selected attribute of the two or more selected attributes; and 
 changing the assigned weight of the selected attribute corresponding to the modified defined region. 
 
     
     
       6. The method of  claim 1 , wherein the initial files are media files, and wherein the one or more associated attributes are audio, video, or image attributes. 
     
     
       7. A computer-implemented system, comprising:
 one or more data processors; and 
 one or more non-transitory computer-readable storage media containing instructions configured to cause the one or more processors to perform operations including:
 receiving input corresponding to a selection of one or more initial files from a navigation panel for display in a display panel, wherein each of the one or more initial files includes one or more associated attributes; 
 receiving input corresponding to a selection of two or more of the associated attributes included in the selected one or more initial files; 
 displaying a graphic for each of the two or more selected attributes in the display panel, wherein when the two or more selected attributes are associated with the same initial file, the displayed position of the graphics is automatically determined; 
 analyzing a plurality of additional files to determine whether the plurality of additional files are relevant to the two or more selected attributes; 
 determining that a subset of the plurality of additional files are relevant to the two or more selected attributes; 
 displaying two or more defined regions corresponding to the two or more selected attributes in the display panel; and 
 displaying the subset of the additional files in the two or more defined regions, wherein the relevance of the additional files in the subset to the two or more selected attributes is indicated by the displayed position of the additional files in the subset in the two or more defined regions, and wherein the displayed position of an additional file in the subset in a defined region indicates that the additional file is relevant to each of the two or more selected attributes. 
 
 
     
     
       8. The system of  claim 7 , wherein the defined region is formed by an overlap of the two or more defined regions corresponding to the two or more selected attributes. 
     
     
       9. The system of  claim 7 , wherein the relevance of the additional files in the subset to the two or more selected attributes is indicated by the proximity of the displayed additional files in the subset to the displayed graphics for the two or more selected attributes. 
     
     
       10. The system of  claim 7 , wherein the operations further include:
 assigning a weight to each of the two or more selected attributes. 
 
     
     
       11. The system of  claim 10 , wherein the operations further include:
 receiving input corresponding to modification of a defined region corresponding to a selected attribute of the two or more selected attributes; and 
 changing the assigned weight of the selected attribute corresponding to the modified defined region. 
 
     
     
       12. The system of  claim 7 , wherein the initial files are media files, and wherein the one or more associated attributes are audio, video, or image attributes. 
     
     
       13. A computer-program product, tangibly embodied in a non-transitory machine-readable storage medium, including instructions configured to cause a data processing apparatus to:
 receive input corresponding to a selection of one or more initial files from a navigation panel for display in a display panel, wherein each of the one or more initial files includes one or more associated attributes; 
 receive input corresponding to a selection of two or more of the associated attributes included in the selected one or more initial files; 
 display a graphic for each of the two or more selected attributes in the display panel, wherein when the two or more selected attributes are associated with the same initial file, the displayed position of the graphics is automatically determined; 
 analyze a plurality of additional files to determine whether the plurality of additional files are relevant to the two or more selected attributes; 
 determine that a subset of the plurality of additional files are relevant to the two or more selected attributes; 
 display two or more defined regions corresponding to the two or more selected attributes in the display panel; and 
 display the subset of the additional files in the two or more defined regions, wherein the relevance of the additional files in the subset to the two or more selected attributes is indicated by the displayed position of the additional files in the subset in the two or more defined regions, and wherein the displayed position of an additional file in the subset in a defined region indicates that the additional file is relevant to each of the two or more selected attributes. 
 
     
     
       14. The computer-program product of  claim 13 , wherein the defined region is formed by an overlap of the two or more defined regions corresponding to the two or more selected attributes. 
     
     
       15. The computer-program product of  claim 13 , wherein the relevance of the additional files in the subset to the two or more selected attributes is indicated by the proximity of the displayed additional files in the subset to the displayed graphics for the two or more selected attributes. 
     
     
       16. The computer-program product of  claim 13 , wherein the instructions are further configured to cause the data processing apparatus to:
 assign a weight to each of the two or more selected attributes. 
 
     
     
       17. The computer-program product of  claim 16 , wherein the instructions are further configured to cause the data processing apparatus to:
 receive input corresponding to modification of a defined region corresponding to a selected attribute of the two or more selected attributes; and 
 change the assigned weight of the selected attribute corresponding to the modified defined region. 
 
     
     
       18. The computer-program product of  claim 13 , wherein the initial files are media files, and wherein the one or more associated attributes are audio, video, or image attributes.

Description:
FIELD OF THE INVENTION 
     This is directed to an application for providing a graphical representation of elements, such as songs or electronic files, based on multiple attributes. 
     BACKGROUND OF THE DISCLOSURE 
     Today&#39;s electronic devices, such as desktop computers and portable music players, have large storage capabilities. Users can therefore maintain large collections of music and other types of electronic files, such as pictures, videos, spreadsheets, and text-files, on their electronic devices. These large collections often contain songs or files with a variety of different attributes (e.g., songs with different genres and from different eras or documents with different edit dates and stored in different folders). 
     Current electronic devices, however, are limited in their ability to present information about these collections to users in a useful way. For example, for music collections, current electronic devices might be limited in the manner which song options or song recommendations are provided. One approach used by current electronic devices is to allow the user to select one particular song from his or her music collection. In response, the electronic device presents a text-based list of other songs in the user&#39;s music collection that are similar or related to the song. Another approach used by current electronic devices is to provide a text-based menu that allows a user to filter songs based on a particular attribute, such as by genre. 
     SUMMARY OF THE DISCLOSURE 
     Systems, methods, and machine-readable media are disclosed for providing a graphical representation of elements (e.g., songs) on the display screen of an electronic device. The elements can be associated with multiple attributes, where each individual element may be associated with one or more of the attributes. The elements can be distributed in the graphical representation based on their respective attributes. For music elements, the attributes may be, for example, the genre, artist, album, date of release, date of acquisition or purchase, song speed, lyrics, vocals, bass line, producers, song writers, song tags, or keywords associated with a particular song. A song tag, for example, can include any metadata that provides information about the song. 
     In some embodiments, the user can for example select the attributes from an electronic device, and the electronic device can use these initial parameters to identify the elements. Optionally, to select each attribute, the user can choose a song of current interest from the user&#39;s music collection. The user then can identify the reason (and therefore the attribute) for why the user enjoys listening to the song or why the song is currently of interest. 
     In some embodiments, as part of the graphical representation of elements, the electronic device can display multiple graphics that each represent one of the attributes. For example, each graphic can be a box-shaped object located near the edge or corner of the display screen. The electronic device can compute, for each of the elements, a degree of relevancy of that element with respect to one or more of the attributes. The “degree of relevancy” of a particular element with respect to a particular attribute can refer to a non-binary measure of how compatible with or similar a particular element is to the particular attribute. In some embodiments, for example, the electronic device can compute the degree of relevancy of a first element (which is associated with a first one of the attributes) with respect to a second attribute to determine whether this first element is highly compatible with both attributes or with just the first attribute. The electronic device can perform similar computations for the remaining elements. In other embodiments, the electronic device can compute a binary measure of how compatible or similar with each element is to the other elements. 
     Using the computed degrees of relevancy or the binary measure, the electronic device may display the elements on the display screen. In some embodiments, the electronic device can spatially position each element on the display screen relative to the graphics based on the computed degrees of relevancy or the binary measure. For example, the electronic device can compute a weight for each element that is indicative of the element&#39;s compatibility with other attributes, and can display the higher-weight elements further from a corresponding graphic (e.g., near the center of the display screen) and lower-weight elements closer to a corresponding graphic (e.g., near the edge of the display screen). This way, higher-weight elements which may be more compatible with all of the attributes can be displayed in a more prominent, central position of the display screen. In some embodiments, the electronic device can highlight the highest-weight elements (e.g., elements with weights within a predetermined range) to further distinguish these elements from the lower-weight elements. 
     In some embodiments of the invention, the electronic device can provide regions in which the elements are displayed. For example, for two-attribute graphical representations, the electronic device can define a first region in which a first group of elements associated with a first attribute can be displayed. The electronic device can also define a second region in which a second group of elements associated with a second attribute can be displayed. For each of the elements in the first group, the electronic device can determine a degree of relevancy of the element with respect to the second attribute. This allows the electronic device to determine whether the elements associated with the first attribute are also compatible or related to the second attribute. Likewise, for each of the elements in the second group, the electronic device can determine a degree of relevancy of the element with respect to the first attribute. This allows the electronic device to determine whether the elements associated with the second attribute are also compatible with or related to the first attribute. 
     The electronic device can display the first and second group of elements in their respective first and second regions based on the determined degrees of relevancy. For example, elements in the first group that have a higher degree of relevancy (and are therefore more compatible with the second attribute) can be displayed closer to the second region than those with lower degrees of relevancy. Elements in the second group that have a higher degree of relevancy (and are therefore more compatible with the first attribute) can be displayed closer to the first region than those with lower degrees of relevancy. Accordingly, the elements that are most compatible with both attributes can be clustered together, and a user can look to one part of the screen (e.g., the center of the screen) to view elements that are associated with both attributes. 
     The electronic device can generate graphical representations using any number of attributes, and not just two. For example, the electronic device can provide three regions for three groups of elements if three attributes are selected by the user. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The above and other aspects and advantages of the present invention will be apparent upon consideration of the following detailed description, taken in conjunction with accompanying drawings, in which like reference characters refer to like parts throughout, and in which: 
         FIG. 1  is a schematic view of a client-server data system configured in accordance with an embodiment of the invention; 
         FIG. 2  is a schematic view of an electronic device configured in accordance with an embodiment of the invention; 
         FIG. 3  is an illustrative display screen for providing a user with the ability to define initial parameters for a search in accordance with an embodiment of the invention; 
         FIGS. 4 and 5  are illustrative display screens showing graphical representations of elements identified in a search in accordance with various embodiments of the invention; 
         FIGS. 6 and 7  are display screens illustrating in accordance with an embodiment of the invention; 
         FIG. 8  is a flowchart of an illustrative process for providing a graphical representation of elements in accordance with an embodiment of the invention; and 
         FIG. 9  is a flowchart of an illustrative process for changing the distribution of the elements in a graphical representation of the elements in accordance with an embodiment of the invention. 
     
    
    
     DETAILED DESCRIPTION 
     Systems, methods, and machine-readable media (e.g., computer-readable media) are disclosed for providing a graphical representation of elements. 
       FIG. 1  is a schematic view of illustrative client-server data system  100  configured in accordance with the principles of the invention. Data system  100  can include server  102  and client device  104 . In some embodiments, data system  100  can include multiple servers  102 , multiple client devices  104 , or both multiple servers  102  and multiple client devices  104 . To prevent overcomplicating the drawing, only one server  102  and one client device  104  are illustrated. 
     Server  102  may include any suitable types of servers that can store and provide data to client device  104  (e.g., file server, database server, web server, or media server). Server  102  can store media and other data (e.g., metadata associated with the media), and server  102  can receive data download requests from client device  104 . For example, server  102  can receive requests to obtain music elements, such as one or more songs. Responsive thereto, server  102  can locate and provide the requested songs as well as metadata associated with the songs (e.g., genre, artist, album, album cover art, release date, bits per minute (BPM) information, producer, song writer, keywords, tags, lyrics, vocals, bass line information). 
     In some embodiments, server  102  can obtain and process data from one or more client devices  104 . For example, server  102  can collect information on playlists of songs created by users of various client devices  104 . Using the collected information, server  102  can determine which songs are commonly grouped or played with one another. Upon request by a particular client device  104 , server  102  can use this information to create music groups from the songs stored on the particular client device  104 . Server  102  can provide the created music groups to client device  104 . 
     For example, server  102  can create each music group by using one song stored on client device  104  as a seed to identify other similar or related songs stored on client device  104 . For example, server  102  can use information about the seed song collected from multiple client devices  104  to determine other songs that are commonly grouped with the seed song. Accordingly, this song-grouping feature may sometimes be referred to as a “seed-based clustering” feature. In some embodiments, server  102  can use a seed other than a song to identify a music group. Server  102  may seed the seed-based clustering feature using, for example, one or more attributes of a song, such as the genre, artist, album, album cover art, release date, BPM information, producer, song writer, keywords, tags, lyrics, vocals, bass line information. In these embodiments, server  102  can use any suitable approach to create a music group based on the attribute. For example, server  102  can identify songs stored on that client device  104  that have the same or a similar/related attribute, or server  102  can use the song as a seed and eliminate any identified songs that do not have a compatible attribute. 
     Server  102  can communicate with client device  104  over communications link  106 . Communications link  106  can include any suitable wired or wireless communications link, or combinations thereof, by which data may be exchanged between server  102  and client  104 . For example, communications link  106  can include a satellite link, a fiber-optic link, a cable link, an Internet link, or any other suitable wired or wireless link. Communications link  106  may enable data transmission using any suitable communications protocol supported by the medium of communications link  106 . Such communications protocols may include, for example, Wi-Fi (e.g., a 802.11 protocol), Ethernet, Bluetooth (registered trademark), radio frequency systems (e.g., 900 MHz, 2.4 GHz, and 5.6 GHz communication systems), infrared, TCP/IP (e.g., and the protocols used in each of the TCP/IP layers), HTTP, BitTorrent, FTP, RTP, RTSP, SSH, any other communications protocol, or any combination thereof. 
     Client device  104  can include any electronic device capable of providing a graphical representation of elements, such as a graphical representation of songs. Client device  104  may be operative to communicate with server  102 . For example, client device  104  can include a portable media player (e.g., an iPod), a cellular telephone (e.g., an iPhone), pocket-sized personal computers, a personal digital assistance (PDA), a desktop computer, a laptop computer, and any other device capable of communicating via wires or wirelessly (with or without the aid of a wireless enabling accessory device). 
     Referring now to  FIG. 2 , a schematic view of illustrative electronic device  200  is shown. Electronic device  200  can be a device that is the same or similar to client device  104  ( FIG. 1 ), or can be a device not operative to communicate with a server. Electronic device  200  can include control circuitry  202 , memory  204 , storage  206 , communications circuitry  208 , bus  210 , input interface  212 , audio output  214 , and display  216 . Electronic device  200  can include other components not shown in  FIG. 2 , such as a power supply for providing power to the components of electronic device. Also, while only one of each component is illustrated, electronic device  200  can include more than one of some or all of the components. 
     Control circuitry  202  can control the operation and various functions of device  200 . For example, control circuitry  202  can identify songs to recommend or display to a user, and can direct display  216  to display representations of the identified songs. As described in detail below, control circuitry  202  can control the components of electronic device  200  to provide a graphical representation of songs or other elements that have similar attributes. Control circuitry  202  can include any components, circuitry, or logic operative to drive the functionality of electronic device  200 . For example, control circuitry  202  can include one or more processors acting under the control of an application. 
     In some embodiments, the application can be stored in memory  204 . Memory  204  can include cache memory, Flash memory, read only memory (ROM), random access memory (RAM), or any other suitable type of memory. In some embodiments, memory  204  can be dedicated specifically to storing firmware for control circuitry  202 . For example, memory  204  can store firmware for device applications (e.g., operating system, user interface functions, and other processor functions). 
     In some embodiments, storage  206  can be any suitable type of storage medium offering permanent or semi-permanent memory. For example, storage  206  can include one or more storage mediums, including for example, a hard drive, Flash, or other EPROM or EEPROM. Storage  206  can be used by electronic device  200  to store music, such as a collection of songs, and other media and electronic files (e.g., text-based files, pictures or graphics). Storage  206  can store information or metadata associated with the media, such as user-generated or automatically-created playlists, seed-generated music group information, genre, artist, album, album cover art, date, BPM, lyrics, vocals information, bass line information, or any other suitable information for each stored song. In some embodiments, the media and associated information can be obtained from a server, such as server  102  of  FIG. 1 . Storage  206  can also store any other suitable information, such as preference information (e.g., music playback preferences), lifestyle information, exercise information (e.g., obtained from exercise monitoring system), transaction information (e.g., credit card information), subscription information (e.g., for podcasts or television shows), and telephone information (e.g., an address book). 
     Communications circuitry  208  can enable electronic device  200  to communicate with other devices, such as to a server (e.g., server  102  of  FIG. 1 ). For example, communications circuitry  208  can include Wi-Fi enabling circuitry that permits wireless communication according to one of the 802.11 standards or a private network. Other wired or wireless protocol standards, such as Bluetooth, can be used in addition or instead. 
     Input interface  212 , audio output  214 , and display  216  can provide a user interface for a user to interact with electronic device  200 . Input interface  212  may enable a user to provide inputs and feedback to electronic device  200 . Input interface  212  can take any of a variety of forms, such as one or more of a button, keypad (e.g., computer keyboard), dial, click wheel, touch screen, or accelerometer. Audio output  214  provides an interface by which electronic device  200  can provide music and other audio elements to a user. Audio output  214  can include any type of speaker, such as computer speakers or headphones. Display  216  can present visual media (e.g., graphics such as album cover, text, and video) to the user. Display  216  can include, for example, a liquid crystal display (LCD), a touchscreen display, or any other type of display. 
     Electronic device  200  can provide, using display  216 , a graphical representation of songs that the user might currently be interested in. To identify the songs, the user can initiate a search using a number of initial parameters. Responsive to the user initiation, electronic device  200  can identify a subset of the songs stored in electronic device  200  and provide the graphical representation of the identified songs. The initial parameters may each be, for example, an attribute (e.g., genre, artist, album, album cover art, release date, BPM information, producer, song writer, keywords, tags, lyrics, vocals, bass line information) of a song stored in storage  206 .  FIG. 3  illustrates a display screen that may be provided by electronic device  200  to enable a user to define the initial parameters, and  FIGS. 4 and 5  illustrate resulting display screens with a graphical representation of the search results. Accordingly, the display screens of  FIGS. 3-5  will be described with continued reference to electronic device  200  and its components. 
     Referring first to  FIG. 3 , an illustrative display screen can be provided by an embodiment of electronic device  200 , which allows a user to define the initial parameters. Display screen  300  can include media navigation panel  310  and main media panel  320 . Media navigation panel  310  can provide information associated with songs stored on electronic device  200 . For example, media navigation panel  310  can include list  312  containing the names of artists and list  314  containing the titles of songs stored in device  200 . In some embodiments, electronic device  200  can provide other lists or other information in media navigation panel  310  in addition to or instead of artists list  312  and song list  314 . 
     Each element listed in media navigation panel  310  can be moved or copied onto main media panel  320  by the user using, for example, a drag-and-drop technique (e.g., using input interface  212  of  FIG. 2 ). This allows a user to select those elements currently of interest to the user. Responsive to a user input to “drop” a particular element, electronic device  200  can provide a graphic (e.g., a box or rectangular) for the selected element at the dropped location. In the example of  FIG. 3 , electronic device  200  can provide box  322  representing the song, Vogue, by Madonna, in response to a user input to drag and drop that song from song list  314 . If the user had instead dragged the artist Madonna from artist list  312 , box  322  could represent the artist instead of a particular song. 
     The user can define the reason why a particular element has been dragged onto main media panel  320 . In some embodiments, electronic device  200  can provide a list of attributes associated with the element when the element&#39;s box is selected from main media panel  320 . For example, in response to a user selection of box  322 , electronic device  200  may provide pop-up menu  324  listing a variety of different attributes associated with Madonna&#39;s Vogue (e.g., the vocals, bass line, lyrics, genre(s), keyword(s), tag(s), and producer(s), and song writer(s) associated with the song). Each of the attributes may be a selectable option, allowing the user to select a particular attribute that the user likes about the song or element. For example, if the user enjoys Madonna&#39;s Vogue because of its vocals, the user can select the vocals option from pop-up menu  324 . 
     Electronic device  200  may provide a graphic, which may or may not be similar to graphic  322 , for each element that the user selects from media navigation panel  312 . The user can drag any suitable number of songs (or other elements) onto main media panel  320 . For each of these element, the user can select any attribute associated with that element regardless of what attributes have been selected for the other elements. For example, a user selection of vocals for box  322  may not limit which attributes are presented to the user for other elements. This way, electronic device  200  allows the user to give a particular reason (by way of its attribute) for why the user likes each selected element, even if some or all of the reasons are different. Also, each of the songs can be positioned at any suitable location on main media panel  320  requested by the user (e.g., using a drag-and-drop) so that the user can personalize the display of attributes. This allows the user to determine, for example, the absolute position of each song on main media panel  320  and the relative position of each attribute with respect to the other elements. 
     Once a user is finished selecting elements and positioning and defining their attributes, the user can initiate a search. For example, to initiate the search, the user can select a search option on display screen  300  (not shown) or push a specific button on electronic device  200 . The search can identify songs based on the initial parameters selected by the user, and electronic device  200  can provide a graphical representation of some or all of the identified songs. The user can select one or more of the identified songs from the graphical representation to, for example, view additional information about the selected song (e.g., artist or album information), play the selected songs, or create a playlist using the selected songs. 
       FIG. 4  illustrates a display screen  400  that may be provided by electronic device  200  responsive to a user initiation of a search. Display screen  400  may be provided, for example, in main media panel  320  of  FIG. 3 . In the example of  FIG. 4 , electronic device  200  can provide display screen  400  responsive to a search conducted using three initial parameters selected by a user. In one operating scenario, one of these initial parameters can be the “vocals” attribute of “Madonna&#39;s Vogue” selected in the manner described above in connection with  FIG. 3 . For simplicity, and as shown in  FIG. 4 , the initial parameters may be referred to as Attribute A, Attribute B, and Attribute C. These initial parameters can be represented by boxes  412 ,  422 , and  432 , respectively. In some embodiments, electronic device  200  can display textual information alongside boxes  412 ,  422 , and  432  that indicates their respective attributes. 
     In some embodiments, electronic device  200  can reposition boxes  412 ,  422 , and  432  responsive to a user input to initialize a search. For example, electronic device  200  can distribute boxes  412 ,  422 , and  432  relatively far away from one another and each proximate to an edge or corner of display screen  400 . In other embodiments, electronic device  200  can maintain the absolute position of each box selected or dropped according to, for example, the drag-and-drop technique discussed above. 
     Upon initiation of a search using these attributes, electronic device  200  can provide a graphical representation of elements (e.g., songs) that are similar to, compatible with, or related to at least one of the attributes. More particularly, electronic device  200  can perform a search to identify a first group of songs compatible with Attribute A, a second group of songs compatible with Attribute B, and a third group of songs compatible with Attribute C. Electronic device  200  can identify these songs with or without the aid of a server, such as server  102  of  FIG. 1 . For example, in some embodiments, electronic device  200  can identify the songs in each group by seeding the seed-based clustering feature implemented on server  102  with Attribute A, B, or C. In other embodiments, the electronic device  200  can identify the songs in each group by identifying all songs stored on electronic device  200  having Attribute A, B, or C. For example, if Attribute A is a particular genre, electronic device  200  can identify all songs having that particular genre. 
     The songs or other type of elements identified in the search can be represented as graphics, such as graphic  424 , which can be distributed across display screen  400 . While  FIG. 4  shows these graphics as triangles, electronic device  200  can provide any graphics of any suitable shape and size, and of any type (e.g., album cover art, picture or thumbnail of the artist). The graphic can include or be limited to textual information related to the element, such as song name, artist name, album name, release date, or any combination thereof. For simplicity, rather than distinguishing between an “element” and the “graphic” that is displayed to represent that element, a graphic may sometimes be referred to (where appropriate) by its corresponding element. For example, “displaying an element” should be understood to mean “displaying a graphic associated with an element,” and therefore graphic  424  may hereinafter be referred to as element  424 . 
     Electronic device  200  can position the elements, including element  424 , based on whether the element is associated with Attribute A, B, or C. Display screen  400  can include three regions  410 ,  420 , and  430  that are respectively associated with Attributes A, B, and C and encompass their respective boxes  412 ,  422 , and  432 . Electronic device  200  can display elements associated with Attribute A in region  410 , elements associated with Attribute B (including element  424 ) in region  420 , and elements associated with Attribute C in region  430 . While the outline of each region is depicted in  FIG. 4 , in some embodiments, the outlines of the regions are not displayed. Instead, a user can decipher which region an element belongs in based on its location in display screen  400  or its proximity to box  412 ,  422 , or  432 . 
     Looking to region  420 , the elements associated with Attribute B may be distributed within region  420  (which includes sub-region  421  and central sub-region  440 ) based on how similar or compatible each element is to the other attributes (here, Attributes A and C). For example, compared to the position of element  424 , electronic device  200  can display elements more compatible with Attributes A and C closer to the center of display screen  400  (and further from box  422 ) and can display elements less compatible with Attributes A and C further from the center of display screen  400  (and closer to box  422 ). 
     To determine the compatibility of each element with Attributes A and C, electronic device  200  (or optionally server  102  of  FIG. 1 ) can compute a weight for that element. The weight can be numerical, where a higher number indicates that the element is more compatible with or similar/related to the other attributes defined by the user. For example, the weight of an element might be between 0 and 100, and element  424  may have a relatively large weight (e.g., between 80 and 100) if the element is highly compatible with Attributes A and C. Thus, electronic device  200  can place an element within its corresponding region in display screen  400  based on the element&#39;s computed weight. For example, electronic device  200  can use the weight of element  424  to determine how far away from box  422  to place element  424 , or equivalently, can use the weight of element  424  to determine how close to the center of display screen  400  to place element  424 . A process that electronic device  200  may execute to compute and utilize the weights will be described in detail below in connection with  FIG. 8 . 
     With continued reference to region  420 , electronic device  200  can use an element&#39;s weight to determine whether to place an element within sub-region  421  or sub-region  440 . As illustrated in  FIG. 4 , sub-region  440  may be a centrally-located sub-region that overlaps with the regions associated with Attributes A and C. Electronic device  200  can therefore place elements associated with Attribute B that are highly compatible with Attributes A and C into central sub-region  440 . For example, electronic device  200  can place elements within sub-region  440  if their weights are above a predetermined threshold or within a sufficiently high, predetermined range (e.g., a weight between 80 and 100 for weights ranging from 0 to 100). In other embodiments, electronic device  200  may compute a binary measure to determine whether to place an element in sub-region  440  or somewhere within sub-region  421 . For example, rather than computing a weight with a varying range, electronic device  200  can compute, for each element, whether that element is (or is not) also associated with Attributes A and C, and can display that element in central sub-region  440  or at any suitable location in sub-region  421  based on the determination. 
     Electronic device  200  can use the same or a similar approach as with the elements of Attribute B to distribute elements associated with Attribute A within region  410  and to distribute elements associated with Attribute C within region  430 . Thus, the elements displayed in central sub-region  440  may also include elements associated with Attribute A that are highly compatible with Attributes B and C, as well as elements associated with Attribute C that are highly compatible with Attributes A and B. In some embodiments, the elements displayed in central sub-region  440  may be elements that are identified by the search as being associated with all three elements (e.g., songs that can be identified using a seed-based clustering feature using any of the three attributes as a seed). 
     In some embodiments, electronic device  200  can “highlight” or visually distinguish the elements in central sub-region  440  from elements not displayed in central sub-region  440 . For example, in  FIG. 4 , the outlines of the elements in sub-region  440  are shown to be bolder than those outside of sub-region  440 . In other embodiments, electronic device  200  can use any other technique to visually distinguish the elements in sub-region  440  from other elements, such as using a different color, pattern, shape, or size. By highlighting the elements in central sub-region  440 , these elements may be more prominent to a user operating device  200 , allowing the user to easily identify which elements substantially satisfy or are compatible with all of the initial parameters defined by the user. 
     In other embodiments, electronic device  200  can visually distinguish elements using a more gradual approach. In other words, rather than highlighting (or not highlighting) elements based on whether an element is within central sub-region  440 , electronic device  200  can provide a gradient, where elements closer to the center of display screen  400  are more highlighted than those further from the center. Electronic device  200  can use, for example, color, size, opacity, or another characteristic to provide this gradient. Thus, in these embodiments, electronic device  200  can use the weight associated with each element to determine not only the position of the element, but its color, size, opacity, or other characteristic. This may cause display screen  400  to appear three-dimensional (e.g., spherical), where higher-weight elements appear closer to the user and have a greater value in the third dimension. 
     Electronic device  200  may allow a user to rotate the three-dimensional graphical representation using, for example, a flicking motion on a multi-touch touch screen. This may cause a change in the perspective so that the user can focus more on the elements associated with a subset of the attributes.  FIGS. 6 and 7  illustrate a technique that electronic device  200  may use to change the perspective of the elements associated with one attribute, although the general technique may be applied to achieve a general rotation of all elements. 
     Electronic device  200  may not display all elements identified by the seed-based clustering feature (or other searching or element-identification technique). In some embodiments, electronic device  200  may display a maximum number of elements in each region or sub-region to prevent from cluttering display screen  400 . In other embodiments, electronic device  200  may display only those elements that have weights greater than a minimum threshold (e.g., 50 for weights ranging from 0 to 100). The elements below this minimum threshold may effectively be positioned so far from the center of display screen  400  that they are completely off the screen. Electronic device  200  can display arrow  426  to indicate that additional elements associated with Attribute B have been identified but are “off of the screen.” Electronic device  200  can enable the user to view the additional elements by changing the perspective of display screen  400  or by moving just region  410  in an up-right direction to expose more of region  420 . This latter feature will be described in greater detail below in connection with  FIGS. 6 ,  7 , and  10 . 
     Electronic device  200  can provide display screen  400  by using a single measure or “weight” to determine the location of each element. This may provide electronic device  200  with enough information to determine how far from a box (e.g., box  422 ) to display an element (e.g., element  424 ), but by itself might not be sufficient to determine an angle from the box from which to display the element. Thus, in some embodiments, electronic device  200  can use multiple weights (e.g., one weight per attribute) to determine each elements&#39; location on a display screen, which may enable electronic device  200  to determine both a magnitude and angle for each element. Such an embodiment is illustrated in  FIG. 5 . 
       FIG. 5  shows another embodiment of a display screen that can be provided by electronic device  200  responsive to a search requested by the user. More particularly, display screen  500  shows another graphical representation of elements (e.g., songs) returned by the search, where each element is associated with Attribute A, B, or C, or a combination thereof. Display screen  500  can include any of the features described above in connection with  FIG. 4 , except that electronic device  200  positions an element associated with Attribute B (for example) based not on its overall compatibility or weight with Attributes A and C, but based on how compatible the element is with Attributes A and C individually (or with respect to each other). 
     For clarity, the overall compatibility of an element to multiple attributes may be referred to as a “weight,” while the compatibility of an element to a single attribute may be referred to as a “degree of relevancy.” In some embodiments, the “weight” of an element can be computed based on multiple “degrees of relevancy.” As described above, the “degree of relevancy” of a particular element with respect to a particular attribute can refer to a non-binary measure of how compatible with, similar to, or related that particular element is to the particular attribute. The measure is non-binary in that the degree of relevancy indicates not only whether the element is or is not compatible with an attribute, but indicates how compatible the element is to the attribute. In some embodiments, the degree of relevancy can be a number between 1 and 10, where a number closer to 10 represents a greater compatibility or similarity. For example, if Attribute C is the “classical genre,” elements that are also in the classical genre may have a degree of relevancy of 10, elements that are highly dissimilar to classical music, such as electronic music, can have a degree of relevancy of 1, and other elements can have degrees of relevancy between these extremes (e.g., 3 for pop music, 6 for music with acoustic guitar). 
     Like in display screen  400  ( FIG. 4 ), display screen  500  can include three regions  510 ,  520 , and  530  that are respectively associated with Attributes A, B, and C. These regions may overlap to form central sub-region  540  (which overlaps all three regions) and sub-regions  550 ,  560 , and  570  (which each overlap two regions). For simplicity, the distribution of elements within a region (and its sub-regions) may sometimes be described with reference to region  520  of Attribute B. However, it should be understood that this description can be adapted easily to apply to the elements associated with Attributes A and C. 
     For each element associated with Attribute B, electronic device  200  can use the degrees of relevancy with respect to Attribute A and with respect to Attribute C to determine the placement of the element. For example, if element  524  is equally compatible with both attributes (e.g., degrees of relevancy of 5 for both Attribute A and C), elements that are more compatible with Attribute A than C can be displayed at an angle directed more towards box  512 , and elements that are more compatible with Attribute C than A can be displayed at an angle directed more towards box  532  than box  512 . This way, elements that are highly compatible with Attribute A (e.g., degree of relevancy between 8 and 10) but not with C can be angled such that the elements are displayed in sub-region  550  and elements that are highly compatible with Attribute C but not A can be angled such that elements are displayed in sub-region  560 . Elements highly compatible with both attributes can be displayed within central  540 . 
     Overall, sub-region  550  can include elements associated with Attribute B that have a high degree of relevancy with respect to A but not C, as well as elements associated with Attribute A that have a high degree of relevancy with respect to B but not C. In other embodiments, the elements in sub-region  550  can include elements that are returned from a search using either Attribute A or B, but not C, as an initial parameter (e.g., using Attribute A or B as a seed to the seed-based clustering feature). The elements of sub-regions  560  and  570  can have similar features. 
     In some embodiments, for each element associated with Attribute B, electronic device  200  can use the degrees of relevancy with respect to Attribute A, B, and C (instead of just A and C) to determine the element&#39;s placement in region  520 . This may involve displaying each element in a spatial position relative to boxes  512 ,  522 , and  532  based on the three degrees of relevancy. For example, electronic device  200  can determine where to display an element relative to boxes  512 ,  522 , and  532  by balancing its computed degrees of relevancy, such as by using a center of mass approach. In particular, electronic device  200  can assign a mass to each of boxes  512 ,  522 , and  524  based on the corresponding degree of relevancy so that the most compatible attribute has the “heaviest” box. Electronic device  200  can then find the location on the display screen  500  corresponding to the center of the three masses, which electronic device  200  can use as the approximate location for the element. 
     As illustrated in  FIG. 5 , electronic device  200  may provide a highlighted element for any of the elements in sub-region  540 . In other embodiments, electronic device  200  can provide highlighted elements in one of more of the other sub-regions  550 ,  560 , and  570  in addition to or instead of sub-region  540 . For example, electronic device  200  can display bold elements in sub-regions  550 ,  560 , and  570 , and display even bolder elements in central sub-region  540 . 
     In some embodiments, the user can change the distribution of the elements displayed in display screens  400  or  500 . For example, the user may not be interested in the highlighted elements, or may be finished selecting or listening to the elements associated with highlighted elements. In this scenario, the user may want to change the elements that are displayed in central sub-region  440  ( FIG. 4 ) or central sub-region  540  ( FIG. 5 ). 
     It should be understood that any of the features described in connection with  FIG. 4  can apply to  FIG. 5 , and vice versa. For example, in some embodiments, display screen  500  of  FIG. 5  can place elements that were identified in more than one of the searches within sub-regions  540 ,  550 ,  560 , and  570 , and can use only weights (but not individual degrees of relevancy) to determine the location of the remaining elements. 
       FIGS. 6 and 7  are display screens that illustrate one way in which electronic device  200  ( FIG. 2 ) can allow a user to change the distribution of the elements on a display screen. While  FIGS. 6 and 7  will be described using embodiments that place elements based on weight, it should be understood that the technique can be adapted for use in embodiments that place elements based on individual degrees of relevancy. 
     Turning first to  FIG. 6 , display screen  600  is shown of a graphical representation of elements (e.g., songs). Display screens  600  may be similar to display screen  400  ( FIG. 4 ) and can have any of the features and functionalities described above in connection with  FIG. 4 . Elements can be displayed in any of the regions shown in  FIG. 4 . However, to prevent from overcomplicating the figure, elements are only depicted in region  610  (including sub-regions  620  and  630 ) which is associated with Attribute B. 
     The user can move any one of the regions on display screen  600  to change the distribution of elements. This provides the user with the ability to determine which attribute (A, B, or C) is most important to the user. For example, if the user determines that he or she is most interested in Attribute B, the user can request that region  610  be moved towards the upper right of display screen  600 , which causes electronic device  200  to display and highlight different elements associated with Attribute B in central sub-region  630 . For example, if input interface  212  ( FIG. 2 ) is a touch screen, the user can request display of different elements associated with Attribute B by dragging region  610  towards the upper-right of display screen  600 . 
       FIG. 7  illustrates a display screen that can be provided by electronic device  200  ( FIG. 2 ) responsive to a user request to move region  610  ( FIG. 6 ). In particular, responsive to the user request, electronic device  200  can provide region  710 , which may be associated with Attribute B and appear expanded or displaced compared to region  610 . Region  710  can include a third sub-region  740 . The three elements displayed in sub-region  740  may correspond to elements that have been “pushed out” of the central sub-region  630  ( FIG. 6 ) due to the user&#39;s request to move region  610 . As illustrated in  FIG. 7 , these pushed-out elements may be displayed with low opacity (that is, semi-transparent). This way, because these elements have already been presented for the user&#39;s consideration, the elements may be displayed in a manner that does not draw the user&#39;s attention. Electronic device  200  can use any technique, including adjusting the opacity, to provide a less-prominent element. For example, electronic device  200  can provided the element in dotted lines, decrease the thickness of the lines, or provide the element in black-and-white instead of in color. 
     In other embodiments, electronic device  200  might not display the elements in sub-region  740  at all. In still other embodiments where a three-dimensional graphical representation is provided, elements in sub-region  740  may be displayed according to a gradient of decreasing or changing color, size, opacity, perspective, or other characteristic. This may give the elements in sub-region  740  an appearance of curving away from the user. Thus, starting from elements closest to the box, sub-region  720  may appear to curve towards the user, peaking at central sub-region  730 , and curving away again in sub-region  740 . 
     With the elements of sub-region  630  ( FIG. 6 ) “pushed out” from central sub-region  730 , electronic device  200  can provide other elements within central sub-region  730 . The elements in sub-region  730  may previously have been located in sub-region  620  ( FIG. 6 ) near the boundary between sub-region  620  and central sub-region  630 . Thus, electronic device  200  can provide highlighted elements for the next set of elements associated with Attribute B that are most compatible with Attributes A and C (e.g., based on weight). Also, by moving the elements displayed in display screen  600  towards the upper-right corner, additional room on display screen  700  may be made for elements associated with Attribute B (e.g., near the bottom-left corner of display screen  700 ). Responsive to the user&#39;s request to move region  610  ( FIG. 6 ), electronic device  200  can display additional elements near the bottom-left corner of sub-region  720  that were previously determined to be too dissimilar to Attributes A and C for display in display screen  600  (e.g., based on weight). 
     To effect the movement of region  610  ( FIG. 6 ) requested by the user, electronic device  200  can adjust the weight for each element associated with Attribute B. For example, each element can be positioned on display screen  600  based on an initial weight. Responsive to the request to move region  610  ( FIG. 6 ) in an up-right direction, electronic device  200  can increase the weight of each element associated with Attribute B by a factor. The size of the factor can be based on the amount of movement requested by the user (e.g., a larger movement results in a greater factor). Electronic device  200  may update the location of each element based on the increased weight. For some elements, the increase in weight may be sufficient to move the elements from one sub-region to another. For example, if each element has an initial weight that is less than or equal to 100, the sub-regions of  FIGS. 6 and 7  may be divided based on the ranges of Table 1 below: 
                                 TABLE 1                       Element Location   Weight range                          Not displayed (or    ≦50           “Off the screen”)           Sub-region 620/720   50-79            Sub-region 630/730   80-100           Sub-region 740   ≧100                        
Therefore, the increase in the initial weight of some elements might change the elements&#39; sub-region or move an element that is “off the screen” onto display screen  700 .
 
     It should be understood that the example of  FIGS. 6 and 7  are merely illustrative. Electronic device  200  may allow the user to move any of the regions in  FIG. 6  or  FIG. 7 , and not just the region associated with Attribute B. The user may move one, multiple, or all of the regions in any order desired by the user. Also, in some embodiments, the user may move any of the regions towards the edge of the display screen to decrease the weight of each element by a factor. In still other embodiments, electronic device  200  can change the location of an element based on both the amount of requested movement and the angle of requested movement. This may be particularly advantageous for display screens similar to display screen  500  ( FIG. 5 ), which position elements based on the degrees of relevancy. For example, the angle of requested movement can be used to determine which degrees of relevancy to adjust. 
       FIGS. 8 and 9  are illustrative processes that can be executed by an electronic device configured in accordance with various embodiments of the invention. For example, the processes may be executed by electronic device  200  of  FIG. 2  to produce the display screens of  FIGS. 4 ,  6 , and  7 . It should be understood that the processes are merely illustrative. Any steps in these flowcharts may be modified, removed, or combined, and any steps may be added, without departing from the scope of the invention. For example, some of the steps may be modified such that the electronic device can produce the display screen of  FIG. 5 . 
     Referring first to  FIG. 8 , a flowchart of illustrative process  800  is shown for providing a graphical representation of elements (e.g., songs). Process  800  can begin at step  802 . Then, at step  804 , the electronic device can receive a user selection of an attribute. The attribute may be a genre, artist, album, release date, download/purchase date, the lyrics, BPM information, vocals information, bass line information, guitar information, or keyword/tag information associated with a particular song. 
     Process  800  can continue to step  806 , where the electronic device can determine whether the user is finished making attribute selections. For example, the electronic device can determine that the user is finished when the user requests a search based on the selected attributes to be performed. If the user is not done making selections, process  800  can return to step  804  to receive another user selection of an attribute. Otherwise, process  800  can continue to step  808 . At step  808 , the electronic device can define a region on a display screen for each of the selected attributes. The regions may be similar to those shown in  FIG. 4  or  5 . 
     Then, at step  810 , the electronic device can identify elements associated with the attributes previously selected at step  804 . The electronic device can identify elements that are associated with at least one of the attributes. For example, the electronic device can use each of the selected attributes as a seed to a seed-based clustering feature implemented on a server (e.g., server  102  of  FIG. 1 ) or the electronic device. Process  800  can then continue to step  812 , where the electronic device can select an element associated with a first one of the attributes (e.g., a song identified using the first one of the attributes as a seed). 
     The electronic device can, at step  814 , determine the element&#39;s degree of relevancy with respect to each of the attributes. For example, for each attribute, the electronic device can compute or obtain information on how similar or compatible the element is to that attribute. Then, at step  816 , the electronic device can compute a weight for the element. In some embodiments, the electronic device can compute the weight based on the degrees of relevancy. For example, the electronic device can add, multiply, or average the degrees of relevancy computed for that element. Using any of these approaches, the weight may be indicative of how similar or compatible the element is to all of the attributes. 
     Process  800  can continue to step  818 . At step  818 , the electronic device can display the element in the form of, for example, a graphic. The element may be displayed in the region associated with the first one of the attributes (that is, the attribute corresponding to the element). The electronic device can display the element at a location in the region based on the weight computed at step  816 . For example, the electronic device can display the element in a position closer to the center of the display screen if the weight is larger, and may not display the element at all if the weight is below a minimum threshold. In some embodiments, the electronic device can skip step  816 , and at step  818 , the electronic device can display the element at a location based on the individual degrees of relevancy calculated for the weight. For example, electronic device  200  can determine the location to display the element using a center of mass approach. 
     Continuing to step  820 , the electronic device can determine whether the weight is within a predetermined range. The predetermined range may be a range that captures those elements that are similar or compatible with most or all of the selected attributes. If the electronic device determines that the weight is within the predetermined range, the electronic device can highlight the element associated with the element at step  822 . For example, the electronic device can alter or enhance the element such that the element is visually distinguishable from elements associated with weights not within the predetermined range. 
     After executing step  822 , or if the electronic device determines that the weight for the element is not within the predetermined range, process  800  can continue to step  824 . At step  824 , the electronic device can determine whether elements for all elements associated with the first one of the attributes have been displayed. If not, process  800  can return to step  812  so that the electronic device can display another element associated with the first attribute. If the electronic device determines instead that all elements associated with the first attribute have been displayed, process  800  can continue to step  826 . 
     At step  826 , the electronic device can determine whether elements have been displayed for all attributes. If not, process  800  can move to step  828  to enable the electronic device to select elements associated with the next (e.g., the second) attribute. This way, the electronic device can repeat steps  812 - 822  to display elements in another region that is associated with the next attribute. If the electronic device determines instead that elements have been displayed for all attributes, then all of the elements identified at step  810  have been displayed in the graphical representation (or considered for display). Thus, process  800  can continue to step  830  and end. 
     Turning now to  FIG. 9 , a flowchart of illustrative process  900  is shown for changing the distribution of the elements associated with one of the attributes. In some embodiments, the electronic device may execute the steps of process  900  after a graphical representation of elements (e.g., songs) has been created in accordance with the steps of process  800  ( FIG. 8 ). Process  900  begins at step  902 . Then, at step  904 , the electronic device can receive a user request to move a region. The region may be associated with one of attributes and may contain a number of elements compatible with the attribute. The electronic device can then, at step  906 , determine the amount of movement requested by the user. 
     Continuing to step  908 , the electronic device can update the weight for each element associated with attribute. For example, responsive to a user request to move more of the region onto the display screen, the electronic device can increase the weight of each element associated with the attribute. Responsive to a user request to move part of the region off of the display screen, the electronic device can decrease the weight of each element. Then, at step  910 , the electronic device can update the placement of an element on the display screen, where the element is associated with a first one of the elements associated with the attribute. The placement can be based, for example, on the updated weight of the element. 
     Then, at step  912 , the electronic device can determine whether to display the element. For example, if the updated weight is lower than the original weight, the placement of the element might be “off” of the screen. If the element is off the screen, the electronic device may not display the element. Instead, process  900  may move to step  914 , allowing the electronic device to update the placement of another object at step  910 . 
     Returning to step  912 , if the electronic device determines that the element for the element should be displayed, the electronic device can determine at step  916  whether the updated weight is above the predetermined range. In some embodiments, the predetermined range may be the same predetermined range used in the determination of step  820  ( FIG. 8 ). If the updated weight is above the predetermined range, the electronic device can display a semi-transparent element at step  918 . Otherwise, if the electronic device determines that the updated weight is within the predetermined range at step  920  (e.g., between  80  and  100 ), the electronic device can display a highlighted element at step  922 . If instead the electronic device determines that the updated weight is below the predetermine range, the electronic device can display the element in a default manner at step  924 . 
     After the electronic device has displayed a semi-transparent, highlighted, or default element, process  900  can continue to step  926 . At step  926 , the electronic device can determine whether all of the elements associated with the attribute have been updated. If not, process  900  can return to step  914 , allowing the electronic device to update the placement of another element at step  910 . If instead the electronic device determines that all elements have been updated, process  900  may move to step  928  and end. 
     The embodiments have been described thus far using songs as an example of elements that can be displayed in the graphical representation. It should be understood that this is merely illustrative and that graphical representations of any other type of electronic files can be presented using any or all of the techniques discussed above. For example, the elements can be pictures taken by various cameras, and the attributes can be selected from one or more of: place (e.g., setting, city, state, or country), event (e.g., vacation), time of day (e.g., morning, evening, breakfast time, lunchtime, dinnertime), people in the picture, date or season of capture, and date of upload. In other embodiments, the elements can be, but are not limited to, videos, text-based files, spreadsheets, presentation files, and webpage files. Also, in some embodiments, different types of files can be displayed on the same screen (e.g., songs and videos). 
     The described embodiments of the invention are presented for the purpose of illustration and not of limitation, and the invention is only limited by the claims which follow.

Metadata:
Filing Date: 20090304
Publication Date: 20140527
Grant Date: 20140527
Priority Date: 20090304
Inventors: GREEN JAMES ANTHONY
Assignee: APPLE INC
CPC Classifications: [{"code": "G06F3/0482", "inventive": true, "first": true, "tree": "[]"}, {"code": "G06F3/04812", "inventive": true, "first": true, "tree": "[]"}, {"code": "G06F3/0482", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F16/64", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F16/64", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/04812", "inventive": true, "first": true, "tree": "[]"}]
Family ID: 42679350