METHOD OF AND SYSTEM FOR GROUPING OBJECT IN A STORAGE DEVICE

20170262538 · 2017-09-14

    Inventors

    Cpc classification

    International classification

    Abstract

    There is disclosed a method of organising objects stored on a server. The method comprises: receiving a first clustering request for a first metadata mapping; based at least in part on the metadata, generating the first metadata mapping of the first subset of objects to the first cluster, the first metadata mapping not being in existence prior to said receiving; receiving, via the communication network, from the electronic device an indication of a user action with the first subset of objects being displayed on the electronic device, the user action causing a change from the first subset of objects into a second subset of objects; based at least on the metadata associated with the second subset of objects, generating a second metadata mapping of the second subset of the objects to a second cluster, the second metadata mapping not being in existence prior to said receiving.

    Claims

    1. A method of organising objects stored, in association with a user, on a server, the method executable on the server, the server being coupled to a communication network, the method comprising: receiving, via the communication network, from an electronic device associated with the user, a first clustering request for a first metadata mapping of a first subset of objects into at least a first cluster; acquiring metadata associated with each of the first subset of objects; based at least in part on the metadata, generating the first metadata mapping of the first subset of objects to the at least the first cluster, the first metadata mapping not being in existence prior to said receiving; transmitting, via the communication network, the first metadata mapping to the electronic device, the first metadata mapping for allowing the electronic device to display the first subset of objects organized into the at least the first cluster; said transmitting including not storing the first metadata mapping at the server after the transmitting to the electronic device; receiving, via the communication network, from the electronic device an indication of a user action with the first subset of objects being displayed on the electronic device, the user action causing a change from the first subset of objects into a second subset of objects; the receiving further including receiving from the electronic device an indication of the first metadata mapping; acquiring metadata associated with each of the second subset of objects; based at least on the metadata associated with the second subset of objects and the first metadata mapping received from the electronic device, generating a second metadata mapping of the second subset of the objects to at least a second cluster, the second metadata mapping not being in existence prior to said receiving, and transmitting the second metadata mapping to the electronic device, the second metadata mapping for allowing the electronic device to display the second subset of objects organized in the at least the second cluster, said transmitting including not storing the second metadata mapping at the server after the transmitting to the electronic device.

    2. The method of claim 1, wherein the user action is deletion of an object from the first subset of objects to create the second sub-set of objects.

    3. The method of claim 2, wherein the generating the second metadata mapping further comprises determining if any additional objects need to be added to the second sub-set of objects to create the second cluster.

    4. The method of claim 2, wherein the generating the second metadata mapping further comprises determining if the at least one cluster need to be deleted.

    5. The method of claim 1, wherein the user action is an addition of a new object to the first subset of objects to create the second sub-set of objects.

    6. The method of claim 5, further comprising determining if responsive to the addition of the new object, the first cluster needs to be re-organized into the second cluster and a third cluster, the second cluster and the third cluster being part of at least the second cluster.

    7. The method of claim 6, wherein responsive to the determining rendering a positive outcome, the generating a second metadata mapping comprises: generating the second metadata mapping of a first portion of the second subset of the objects to the second cluster; and generating a third mapping of a second portion of the second subset of the objects to the second cluster.

    8. The method of claim 1, wherein the user action is a scroll action, wherein the first sub-set of objects corresponds to a paging resolution of the display of the electronic device, and wherein the generating a second metadata mapping comprises: based on the scroll action, determining an offset between the first subset of objects and the second subset of objects; and creating the second subset of objects organized in the at least the second cluster using the offset from a last object in the first sub-set.

    9. The method of claim 1, wherein the at least first cluster is a grouping of objects in a first period of time of creation of objects and the at least second cluster is a grouping of objects in a second period of time of creation of objects, and wherein the user action is indicative of the user desire to switch from the first period to the second period; and wherein the generating a second metadata mapping comprises: based on the user action, determining a time offset between the first period and the second period; and creating the second subset of objects organized in the at least the second cluster using the time offset from an end of the first period.

    10. The method of claim 1, wherein the objects comprise photos and wherein metadata includes at least one of: (i) an indication of a geo-location where the respective image was generated, (ii) an indication of a time when the respective image was generated; (iii) an indication of one or more individuals captured within the respective photos.

    11. The method of claim 1, wherein the objects comprise audio files and wherein metadata includes at least one of: (i) an indication of an artist associated with the audio track, (ii) an indication of a title associated with the audio file, (iii) an indication of an album associated with the audio track and (iv) a duration of the audio file.

    12. The method of claim 1, wherein the generating a second metadata mapping of the second subset of the objects to at least a second cluster further comprises analyzing metadata of all objects to create the second cluster.

    13. The method of claim 1, wherein the electronic device is a wireless electronic device, and wherein the transmitting the second metadata mapping to the electronic device further causes the electronic device to update the first metadata mapping with changes based on analysis of the second metadata mapping.

    14. The method of claim 1, wherein the electronic device is a stationary computing device, and wherein the transmitting the second metadata mapping to the electronic device further causes the electronic device to replace the first metadata mapping with the second metadata mapping.

    15. The method of claim 1, wherein the electronic device is a first electronic device and wherein the transmitting, via the communication network, the first metadata mapping comprises transmitting the first metadata mapping to the first electronic device and a second electronic device, the first metadata mapping for allowing both the first electronic device and the second electronic device to display the first subset of objects organized into the at least the first cluster.

    16. The method of claim 1, wherein the electronic device is a first electronic device and wherein the transmitting, via the communication network, the second metadata mapping comprises transmitting the second metadata mapping to the first electronic device and a second electronic device, the second metadata mapping for allowing both the first electronic device and the second electronic device to display the second subset of objects organized into the at least the second cluster.

    17. The method of claim 1, wherein the transmitting, via the communication network, the first metadata mapping to the electronic device further comprises transmitting an indication of each of the objects within the first subset of the objects.

    18. The method of claim 1, wherein the transmitting, via the communication network, the second metadata mapping to the electronic device further comprises transmitting an indication of each of the objects within the second subset of the objects.

    19. The method of claim 1, wherein the transmitting, via the communication network, the second metadata mapping to the electronic device further comprises transmitting an indication of only those of the second subset that have changed compared to the first subset of objects.

    20. A server comprising: a communication interface for communication with an electronic device via a communication network, a memory storage; a processor operationally connected with the communication interface and the memory storage, the processor configured to store objects, in association with a user, on the memory storage, the processor being further configures to: receive, via the communication interface, from an electronic device associated with the user, a first clustering request for a first metadata mapping of a first subset of objects into at least a first cluster; acquire, from the memory storage, metadata associated with each of the first subset of objects; based at least in part on the metadata, generate the first metadata mapping of the first subset of objects to the at least the first cluster, the first metadata mapping not being in existence prior to said receiving; transmit, via the communication interface, the first metadata mapping to the electronic device, the first metadata mapping for allowing the electronic device to display the first subset of objects organized into the at least the first cluster; and not store the first metadata mapping at the server after the transmitting to the electronic device; receive, via the communication interface, from the electronic device (i) an indication of a user action with the first subset of objects being displayed on the electronic device, the user action causing a change from the first subset of objects into a second subset of objects and (ii) an indication of the first metadata mapping; acquire, from the memory storage, metadata associated with each of the second subset of objects; based at least on the metadata associated with the second subset of objects and the first metadata mapping received from the electronic device, generate a second metadata mapping of the second subset of the objects to at least a second cluster, the second metadata mapping not being in existence prior to said receiving, and transmit the second metadata mapping to the electronic device, the second metadata mapping for allowing the electronic device to display the second subset of objects organized in the at least the second cluster and not store the second metadata mapping at the server after the transmitting to the electronic device.

    21.-38. (canceled)

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0067] For a better understanding of the present technology, as well as other aspects and further features thereof, reference is made to the following description which is to be used in conjunction with the accompanying drawings, where:

    [0068] FIG. 1 is a schematic diagram of a system implemented in accordance with an embodiment of the present technology.

    [0069] FIG. 2 depicts a non-limiting example of a metadata mapping maintained in association with objects uploaded by a user to the remote storage server of the system of FIG. 1.

    [0070] FIG. 3 depicts a flow-chart of a method, the method being implemented in accordance with non-limiting embodiments of the present technology and being executable on the remote storage server of the system of FIG. 1.

    DETAILED DESCRIPTION

    [0071] Referring to FIG. 1, there is shown a diagram of a system 100, the system 100 being suitable for implementing non-limiting embodiments of the present technology. It is to be expressly understood that the system 100 is depicted as merely as an illustrative implementation of the present technology. Thus, the description thereof that follows is intended to be only a description of illustrative examples of the present technology. This description is not intended to define the scope or set forth the bounds of the present technology. In some cases, what are believed to be helpful examples of modifications to the system 100 may also be set forth below. This is done merely as an aid to understanding, and, again, not to define the scope or set forth the bounds of the present technology. These modifications are not an exhaustive list, and, as a person skilled in the art would understand, other modifications are likely possible. Further, where this has not been done (i.e. where no examples of modifications have been set forth), it should not be interpreted that no modifications are possible and/or that what is described is the sole manner of implementing that element of the present technology. As a person skilled in the art would understand, this is likely not the case. In addition it is to be understood that the system 100 may provide in certain instances simple implementations of the present technology, and that where such is the case they have been presented in this manner as an aid to understanding. As persons skilled in the art would understand, various implementations of the present technology may be of a greater complexity.

    [0072] The system 100 comprises a first electronic device 102. The first electronic device 102 is typically associated with a user (not depicted) and, as such, can sometimes be referred to as a “client device”. It should be noted that the fact that the first electronic device 102 is associated with the user does not need to suggest or imply any mode of operation—such as a need to log in, a need to be registered or the like.

    [0073] The implementation of the first electronic device 102 is not particularly limited, but as an example, the first electronic device 102 may be implemented as a personal computer (desktops, laptops, netbooks, etc.), a wireless electronic device (a cell phone, a smartphone, a tablet and the like), as well as network equipment (a router, a switch, or a gateway). Merely for the purposes of an illustration, it shall be assumed that the first electronic device 102 is implemented as a laptop computer, such as LENOVO™ THINKPAD™ X220 lap top running a WINDOWS™ operating system.

    [0074] The first electronic device 102 comprises hardware and/or software and/or firmware (or a combination thereof) to execute a number of applications. For the purposes of illustration of the embodiments of the present technology, it shall be assumed that the first electronic device 102 is configured to the execute a photo application 108. Generally speaking, the purpose of the photo application 108 is to enable the user (not depicted) to (i) capture one or more photos or videos using a built-in camera (not separately depicted) of the first electronic device 102; (ii) to store and organize the so-captured photos or videos, (iii) manipulate the so captured photos or videos, (iv) share the so-captured photos or videos with other users by means of e-mail, text messages or social media applications, and (v) perform a number of additional functions known to those of skill in the art. The photo application 108 can be “native” to the operating system of the first electronic device 102 (i.e. being provided as part of the operating system package) or can be downloaded and installed by the user of the first electronic device 102. It should be expressly understood that teachings of the present technology are not limited to the photo applications and photos being objects to be clustered and, as such, can be applied to other types of applications executed on the first electronic device 102.

    [0075] The system 100 comprises a second electronic device 104. The second electronic device 104 is also associated with the same user as the first electronic device 102. The implementation of the second electronic device 104 is also not particularly limited, but as an example, the second electronic device 104 may be implemented as a personal computer (desktops, laptops, netbooks, etc.), a wireless electronic device (a cell phone, a smartphone, a tablet and the like), as well as network equipment (a router, a switch, or a gateway). Merely for the purposes of an illustration, it shall be assumed that the second electronic device 104 is implemented as a smartphone computer, such as iPhone 5™ smartphone provided by Apple Corporation.

    [0076] The second electronic device 104 also comprises hardware and/or software and/or firmware (or a combination thereof) to execute the photo application 108.

    [0077] Both of the first electronic device 102 and the second electronic device 104 are communicatively coupled to a communication network 114 via a respective instance of a communication link—namely, a first communication link 112 and a second communication 113.

    [0078] In some non-limiting embodiments of the present technology, the communication network 114 can be implemented as the Internet. In other embodiments of the present technology, the communication network 114 can be implemented differently, such as any wide-area communication network, local-area communication network, a private communication network and the like.

    [0079] How the first communication link 112 and the second communication link 113 are implemented is not particularly limited and will depend on how the associated one of the first electronic device 102 and the second electronic device 104 is implemented.

    [0080] Recalling that the first electronic device 102 can be implemented, in this example, as a laptop, the first communication link 112 can be wireless (such as the Wireless Fidelity, or

    [0081] WiFi® for short, Bluetooth® or the like) or wired (such as Ethernet™ based connection). Recalling that the second electronic device 104 can be implemented, in this example, as a smartphone, the second communication link 113 can be wireless—such as the Wireless Fidelity, or WiFi® for short, Bluetooth® or the like or cellular (such as 3G, LTE and the like).

    [0082] It should be expressly understood that implementations for the first electronic device 102, the second electronic device 104, the first communication link 112, the second communication link 113, and the communication network 114 are provided for illustration purposes only. As such, those skilled in the art will easily appreciate other specific implementational details for the first electronic device 102, the second electronic device 104, the first communication link 112, the second communication link 113, and the communication network 114. As such, by no means, examples provided herein above are meant to limit the scope of the present technology.

    [0083] Within embodiments of the present technology, there is also provided a remote storage server 116 (also, referred to for simplicity as the “server 116”). The remote storage server 116 can be implemented as a conventional computer server. In an example of an embodiment of the present technology, the remote storage server 116 can be implemented as a Dell™ PowerEdge™ Server running the Microsoft™ Windows Server™ operating system. Needless to say, the remote storage server 116 can be implemented in any other suitable hardware and/or software and/or firmware or a combination thereof. In the depicted non-limiting embodiment of present technology, the remote storage server 116 is a single server. In alternative non-limiting embodiments of the present technology, the functionality of the remote storage server 116 may be distributed and may be implemented via multiple servers.

    [0084] The remote storage server 116 comprises hardware and/or software and/or firmware (or a combination thereof) to execute a remote storage application 180. The remote storage application 180 can also be referred to by those of skill in the art as a remote storage or a cloud storage.

    [0085] The general implementations of the remote storage application 180 are known and, as such, will not be described here at much length. Suffice it to state that the remote storage server 116 can execute or have access to a memory storage 182, the memory storage 182 can be implemented as conventional storage device, such as one or more disk storage devices.

    [0086] The remote storage application 180 is configured to maintain one or more accounts associated with one or more users, such as the user of the first electronic device 102 and the second electronic device 104. Such the user of the remote storage application 180 can be thought of as a “subscriber” to the remote storage service provided by the remote storage application 180. Generally speaking, the term “subscriber” should not be interpreted to have any particular meaning and, as such, teachings of the present technology equally apply to both “free” and “paid for” remote storage services.

    [0087] According to embodiments of the present technology, the remote storage application 180 is configured to (i) maintain a storage portion (i.e a portion of a memory dedicated to) associated with the subscriber; (ii) receive one or more objects to be stored in the storage portion associated with the subscriber; (iii) cluster one or more objects stored within the storage portion into one or more clusters to create a mapping between a given one of the one or more objects with the associated cluster; (iv) transmit to the subscriber's electronic device (such as the first electronic device 102 and/or the second electronic device 104) an indication of the metadata mapping and/or the objects for displaying to the user of the objects organized into clusters.

    [0088] To that end, the remote storage server 116 can be configured to execute or have access to a control module 184. The control module 184, broadly speaking, is configured to execute the functions of: (i) a back-end processing module, (ii) a front-end rendering module and (iii) a clustering module. Together, the functionality of the control module 184, combined with the functionality of the memory storage 182, is configured to support the execution of the remote storage application 180.

    [0089] For the purposes of the illustrations to be presented herein below, the following example scenario will be used. Let it be assumed that a “User A” is associated with the first electronic device 102 and the second electronic device 104. Is shall be further assumed that the User A is a subscriber to the remote storage service provided by the remote storage server 116. Naturally, a typical user may have more or fewer objects stored at the remote storage server 116.

    [0090] It shall be further assumed that the User A has uploaded 40 photos to the user-account stored at the remote storage server 116. Each of the 40 photos has the associated metadata indicative of the date when the photo was taken and of a geo-location of where the photo was taken.

    [0091] With reference to FIG. 2, there is depicted a non-limiting example of a metadata mapping 202 created and maintained in association with objects uploaded by the User A at the remote storage server 116. The metadata mapping 202 maintains a mapping of each of the 40 photos stored on the remote storage server 116 to an associated cluster. More specifically, within the illustration of FIG. 2, the remote storage server 116 has organized the 40 photos associated with the User A into eight clusters, the clustering having been done based on the metadata associated with each of the 40 photo. Within the illustrated embodiment, the metadata used for clustering comprises the place and the date of the capturing of the respective photo. However, in alternative embodiments, the clustering can be done on the basis of a sub-set of these metadata parameters or even completely different metadata parameters.

    [0092] Within the embodiments of the present technology, the metadata associated with the photos can be stored within the memory storage 182. In alternative embodiments of the present technology, the metadata associated with the photos can be stored in a separate memory storage (not depicted).

    [0093] Within the illustration of the metadata mapping 202, there are provided eight clusters, as has been mentioned above, a first cluster 204, a second cluster 206, a third cluster 208, a fourth cluster 210, a fifth cluster 212, a sixth cluster 214, a seventh cluster 216 and an eighth cluster 218. Each of the clusters (the first cluster 204, the second cluster 206, the third cluster 208, the fourth cluster 210, the fifth cluster 212, the sixth cluster 214, the seventh cluster 216 and the eighth cluster 218) is associated with the objects that have metadata that match the metadata parameters used to create the respective cluster (the first cluster 204, the second cluster 206, the third cluster 208, the fourth cluster 210, the fifth cluster 212, the sixth cluster 214, the seventh cluster 216 and the eighth cluster 218), based on the associated version of a clustering policy.

    [0094] Each of the clusters (the first cluster 204, the second cluster 206, the third cluster 208, the fourth cluster 210, the fifth cluster 212, the sixth cluster 214, the seventh cluster 216 and the eighth cluster 218) comprises an indication of a cluster title 220 and an indication of the one or more cluster members 222. The cluster title 220 can be based on the metadata that was used for generating the respective cluster. As such, the cluster title 220 associated with the first cluster 204 comprises “Moscow Kremlin 2014-05-04” indicative of the date and the geo-location of where the cluster member photos were captured. The same applies mutatis mutandis to the remaining ones of the clusters (the second cluster 206, the third cluster 208, the fourth cluster 210, the fifth cluster 212, the sixth cluster 214, the seventh cluster 216 and the eighth cluster 218).

    [0095] Within each of the one or more cluster members 222, the members of the cluster are identified by a respective object identifier, which can be a file name, an object identifier or the like. Using the example of the second cluster 206, the cluster title 220 associated with the second cluster 206 is “Moscow Red Square 2014-05-03” (also based on the metadata used for clustering) and the second cluster 206 has four members, which have been grouped into the second cluster 206 based on their metadata. More specifically, the second cluster 206 contains the following four members: <file 5 id>, <file 6 id>, <file 7 id> and <file 8 id>.

    [0096] It should be noted that even though in the depiction of FIG. 2, the objects clustered into the eight clusters (the first cluster 204, the second cluster 206, the third cluster 208, the fourth cluster 210, the fifth cluster 212, the sixth cluster 214, the seventh cluster 216 and the eighth cluster 218) are associated with consecutively-numbered file names, this does not need to be so in every embodiments and was done for illustration purposes only.

    [0097] It is worthwhile noting that organization of the photos associated with the User A into the clusters (the first cluster 204, the second cluster 206, the third cluster 208, the fourth cluster 210, the fifth cluster 212, the sixth cluster 214, the seventh cluster 216 and the eighth cluster 218) can be done based on a clustering policy maintained (and potentially changed, form time to time) by the remote storage server 116. For example, the clustering policy can prescribe which ones of the various metadata parameters are to be used for creating the clusters (for example, date only, geo-location only, resolution, application used to capture the photo, a combination of one or more of these or others metadata parameters or the like).

    [0098] The remote storage server 116 can be configured to create the metadata mapping 202 and to transmit the metadata mapping 202 to the one or both of the first electronic device 102 and the second electronic device 104. The metadata mapping 202 is configured to enable the one or both of the first electronic device 102 and the second electronic device 104 to display to the user some or all of the objects (i.e. photos) organized into clusters. The remote storage server 116 can also be configured to transmit the objects themselves to the one or both of the first electronic device 102 and the second electronic device 104, which transmission can be together with the transmission of the metadata mapping 202 or separately.

    [0099] The remote storage server 116 is also configured to re-organize the metadata mapping 202 based on either a clustering policy change or based on the user change that causes one or more of the clusters to change (or the members of the respective clusters to change).

    [0100] Given the architecture described above, it is possible to implement a method of organising objects stored, in association with a user, on the remote storage server 116. With reference to FIG. 3, there is depicted a flow-chart of a method 300, the method 300 being implemented in accordance with non-limiting embodiments of the present technology. The method 300 can be conveniently executed on the remote storage server 116.

    [0101] Step 302—Receiving, via the Communication Network, from an Electronic Device Associated with the User, a First Clustering Request for a First Metadata Mapping of a First Subset of Objects into at least A First Cluster

    [0102] The method 300 starts at step 302, where the remote storage server 116 receives, via the communication network, from an electronic device associated with the user, a first clustering request for a first metadata mapping of a first subset of objects into at least a first cluster.

    [0103] Within some of the implementations of the present technology, the first metadata mapping request can be generated by one of the first electronic device 102 and the second electronic device 104. In some embodiments of the present technology, one of the first electronic device 102 and the second electronic device 104 generates the first clustering request in response to the user starting the photo application 108. Within these embodiments, the photo application 108 needs to receive mapping information to organize the photos into one or more clusters for displaying thereof to the user.

    [0104] Alternatively, the first metadata mapping request can be generated by one of the first electronic device 102 and the second electronic device 104 in response to downloading the objects stored in the remote storage server 116 to the respective one (or both) of the first electronic device 102 and the second electronic device 104. In yet alternative embodiments, the first metadata mapping request can be generated by one of the first electronic device 102 and the second electronic device 104 (or by the remote storage server 116 itself) in response to the change in the clustering policy.

    [0105] Step 304—Acquiring Metadata Associated with each of the First Subset of Objects

    [0106] Next, at step 304, the remote storage server 116, acquires metadata associated with each of the first subset of objects.

    [0107] The type of metadata acquired as part of step 304 will, naturally, depend on the type of objects being clustered. For example, in those embodiments where the objects comprise photo, the metadata can include at least one of: (i) an indication of a geo-location where the respective image was generated, (ii) an indication of a time when the respective image was generated; (iii) an indication of one or more individuals captured within the respective photos.

    [0108] In alternative embodiments, where the objects comprise audio files, the metadata can include at least one of: (i) an indication of an artist associated with the audio track, (ii) an indication of a title associated with the audio file, (iii) an indication of an album associated with the audio track and (iv) a duration of the audio file.

    [0109] In some embodiments, the remote storage server 116 acquires the metadata associated with the objects from the memory storage 182.

    [0110] Step 306—Based at least in part on the Metadata, Generating the First Metadata Mapping of the First Subset of Objects to the at least the First Cluster

    [0111] Next, at step 306, the remote storage server 116, based at least in part on the metadata, generates the first metadata mapping of the first subset of objects to the at least the first cluster.

    [0112] More specifically, the remote storage server 116 generates the first metadata mapping, similar to the one depicted with reference to FIG. 2. In some embodiments of the present technology, the remote storage server 116 generates the metadata mapping based on a clustering policy. In the example depicted with reference to FIG. 2, the clustering policy is based on creating clusters based on geo-location and the capture date. As an example, the third cluster 208 is based on “Moscow Park” as the geo-location and “2014-05-04” as the capture date.

    [0113] In some embodiments of the present technology, the remote storage server 116 is configured to store the first metadata mapping, as depicted in FIG. 2 with regard to the metadata mapping 202.

    [0114] In some embodiments of the present technology, the remote storage server 116 can generate the first metadata mapping based on a clustering policy. Needless to say, the clustering policy can be based on a number of additional or different metadata parameters.

    [0115] Step 308—Transmitting, via the Communication Network, the First Metadata Mapping to the Electronic Device, the First Metadata Mapping for Allowing the Electronic Device to Display The First Subset of Objects Organized into the at least the First Cluster

    [0116] Next, at step 308, the remote storage server 116 transmits, via the communication network, the first metadata mapping to the electronic device, the first metadata mapping for allowing the electronic device to display the first subset of objects organized into the at least the first cluster.

    [0117] In some embodiments of the present technology, the remote storage server 116 can also transmit the objects to be clustered either together with or separately from the first metadata mapping.

    [0118] Step 310—Receiving, via Communication Network, from the Electronic Device an Indication of a User Action with the First Subset Of Objects Being Displayed on the Electronic Device, the User Action Causing a Change from the First Subset Of Objects into a Second Subset Of Objects

    [0119] Next, at step 310, the remote storage server 116 receives, via communication network, from the electronic device an indication of a user action with the first subset of objects being displayed on the electronic device, the user action causing a change from the first subset of objects into a second subset of objects.

    [0120] The indication of the user action can be generated by a number of events, the events being associated with user actions using the respective one of the first electronic device 102 and the second electronic device 104.

    [0121] Some examples of the user actions include but are not limited to: deletion of an object from one of the clusters, adding a new object to one of the clusters, scrolling through the clusters and the like.

    [0122] Step 312—Acquiring Metadata Associated with each of the Second Subset of Objects

    [0123] Next, at step 312, the remote storage server 116 acquires metadata associated with each of the second subset of objects.

    [0124] In some embodiments of the present technology, the remote storage server 116 acquires the metadata associated with all of the objects within the second subset of objects.

    [0125] Alternatively, the remote storage server 116 can re-acquire metadata associated with only those of the second subset of objects that are different from the first subset of objects.

    [0126] In some embodiments, the remote storage server 116 acquires the metadata associated with the objects of the second subset of objects from the memory storage 182.

    [0127] Step 314—Based at least on the Metadata Associated with the Second Subset of Objects, Generating a Second Metadata Mapping of the Second Subset of the Objects to at least a Second Cluster

    [0128] Next, at step 314, the remote storage server 116, based at least on the metadata associated with the second subset of objects, generates a second metadata mapping of the second subset of the objects to at least a second cluster.

    [0129] More specifically, the remote storage server 116 generates the second metadata mapping, similar to the one depicted with reference to FIG. 2, taking into account the changes triggered by the user action, the indication of which was received as part of step 210.

    [0130] In some embodiments of the present technology, the remote storage server 116 generates the metadata mapping based on the clustering policy. In some embodiments, the method 300 further includes checking if the clustering policy version has changed since the execution of step 306.

    [0131] In some embodiments of the method 300, where the user action is deletion of an object from the first subset of objects to create the second sub-set of objects, the step of generating the second metadata mapping further comprises determining if any additional objects need to be added to the second sub-set of objects to create the second cluster. This can be the case, for example, when based on the user action, the number of objects associated with the changed cluster needs to be expanded and, as such, additional objects need to be added (moved) to the respective cluster.

    [0132] The method 300 may further include determining if the at least one cluster need to be deleted. This may be the case when all the objects of the given cluster have been deleted or moved.

    [0133] In some embodiments of the method 300, where the user action is an addition of a new object to the first subset of objects to create the second sub-set of objects, the method 300 further comprises determining if responsive to the addition of the new object, the first cluster needs to be re-organized into the second cluster and a third cluster, the second cluster and the third cluster being part of at least the second cluster. In some embodiments of the method 300, responsive to the determining rendering a positive outcome, the generating a second metadata mapping comprises: generating the second metadata mapping of a first portion of the second subset of the objects to the second cluster; and generating a third mapping of a second portion of the second subset of the objects to the second cluster.

    [0134] In some embodiments of the method 300, where the user action is a scroll action, the first sub-set of objects can correspond to a paging resolution of the display of the electronic device, the step of generating a second metadata mapping comprises: based on the scroll action, determining an offset between the first subset of objects and the second subset of objects; and creating the second subset of objects organized in the at least the second cluster using the offset from a last object in the first sub-set.

    [0135] In some embodiments of the method 300, the at least first cluster is a grouping of objects in a first period of time of creation of objects and the at least second cluster is a grouping of objects in a second period of time of creation of objects, and the user action is indicative of the user desire to switch from the first period to the second period; and the step of generating a second metadata mapping comprises: based on the user action, determining a time offset between the first period and the second period; and creating the second subset of objects organized in the at least the second cluster using the time offset from an end of the first period.

    [0136] Step 316—Transmitting the Second Metadata Mapping to the Electronic Device, the Second Metadata Mapping for Allowing the Electronic Device to Display the Second Subset of Objects Organized in the at least the Second Cluster

    [0137] Next, at step 316, the remote storage server 116, transmits the second metadata mapping to the electronic device, the second metadata mapping for allowing the electronic device to display the second subset of objects organized in the at least the second cluster.

    [0138] The method 300 can then terminate or revert to execution of step 310 when an indication of another user action can be received.

    [0139] In some embodiments of the method 300, where the electronic device is a wireless electronic device, such as the case with the second electronic device 104, the step of transmitting the second metadata mapping to the second electronic device 104 causes the second electronic device 104 to update the first metadata mapping with changes based on analysis of the second metadata mapping. In other words, upon receipt of the second metadata mapping, the second electronic device 104 can update the previously stored first metadata mapping with changes indicated by the second metadata mapping. As such, in some embodiments of the present technology, where the electronic device is executed as the wireless electronic device, the first metadata mapping can be downloaded when the second electronic device 104 accesses the remote storage server 116. At the same time, the second electronic device 104 can store an indication of the clustering policy version used to create the first metadata mapping. At a later point in time, when the second metadata mapping is transmitted to the second electronic device 104, the second metadata mapping can include an indication of the changes, based on the previous and current versions of the clustering policy.

    [0140] In other embodiments of the method 300, where the electronic device is a stationary computing device, such as the case with the first electronic device 102, the step of transmitting the second metadata mapping to the electronic device causes the first electronic device 102 to replace the first metadata mapping with the second metadata mapping.

    [0141] Naturally, it is possible to execute the steps of updating the first metadata mapping with the second metadata mapping differently. For example, even in case of the first electronic device 102, the first electronic device 102 can update the first metadata mapping with the changed cluster indicated by the second metadata mapping. Same applies to the second electronic device 104, where the second metadata mapping can simply replace the first metadata mapping.

    [0142] In some embodiments of the method 300, the remote storage server 116 can transmit the second metadata mapping (and the first metadata mapping), to both the first electronic device 102 and the second electronic device 104. Hence, the transmission of the first metadata mapping and the second metadata mapping to both the first electronic device 102 and the second electronic device 104 enables both of the devices to respectively organize the objects into the first cluster and the second cluster. Notably, the organization of the objects into the second cluster is performed on both of the first electronic device 102 and the second electronic device 104, irrespective on which device the user action changing the first cluster to the second cluster was executed. In other words, embodiments of the method 300 allow for synchronization of the clustering between the first electronic device 102 and the second electronic device 104.

    [0143] In some embodiments of the method 300, the step of transmitting, via the communication network, the first metadata mapping to the electronic device (i.e. the respective first electronic device 102 and the second electronic device 104) comprises transmitting an indication of each of the objects within the first subset of the objects.

    [0144] In some embodiments of the method 300, the step of transmitting, via the communication network, the second metadata mapping to the electronic device (i.e. the respective first electronic device 102 and the second electronic device 104) comprises transmitting an indication of each of the objects within the second subset of the objects.

    [0145] In other embodiments of the method 300, the step of transmitting, via the communication network, the second metadata mapping to the electronic device (i.e. the respective first electronic device 102 and the second electronic device 104) further comprises transmitting an indication of only those of the second subset that have changed compared to the first subset of objects.

    [0146] In some embodiments of the present technology, the various routines described above can be implemented using Application Programming Interface (API). It is expected that those skilled in the art can implement the APIs given the description provided above. However, for the purposes of completion and an example, below are provided some of the example APIs that can be used for implementing embodiments of the present technology.

    [0147] API for acquiring a list of periods:

    TABLE-US-00001 /photohell/periods/list?uid=UID {  ‘version’: 1406279525506862,  ‘list’: [   { ‘year’: 2014, ‘list’: [     { ‘month’: 1, ‘amount’: 10 },     { ‘month’: 2, ‘amount’: 30 },      ...    ]},   { ‘year’: 2013, ‘list’: [    ...   ]},   ...  ],  ‘undefined’: 0, }

    [0148] API for acquiring a list of photos:

    TABLE-US-00002 /photohell/photos/list?uid=UID&amount=AMOUNT&offset= OFFSET&version=VERSION {  ‘version’: 1406279525506862,  ‘total’: the size of received photos (can be different from AMOUNT)  ‘list’: [   { ‘cluster name/location/etc’: ‘somewhere 1’, ‘list’: [    { file metadata },    { file metadata },    { file metadata },    ...   ] },   { ‘cluster name/location/etc’: ‘somewhere 2’, ‘list’: [    { file metadata },    { file metadata },    ...   ] },  ] }

    [0149] API for acquiring a full list of clusters and photos:

    TABLE-US-00003 /photohell/photos/index?uid=UID {  ‘version’: 1406279525506862,  ‘cluster_policy’: 4,  ‘list’: [   { ‘cluster name/location/etc’: ‘somewhere 1’, ‘list’: [    { ‘id’: file_id_1, file metadata },    { ‘id’: file_id_2, file metadata },    { ‘id’: file_id_3, file metadata },    ...   ] },   { ‘cluster name/location/etc’: ‘somewhere 2’, ‘list’: [    { ‘id’: file_id_4, file metadata },    { ‘id’: file_id_5, file metadata },    ...   ] },  ] }

    [0150] API for acquiring changes in clusters and photos:

    TABLE-US-00004 /photohell/photos/diff?uid=UID&version= VERSION&cluster_policy=CLUSTER_POLICY {  ‘version’: 1406279525506869,  ‘cluster_policy’: 4,  ‘updated’: [   { ‘cluster name/location/etc’: ‘somewhere 66’, ‘list’: [    { ‘id’: file_id_134, file metadata },    { ‘id’: file_id_12, file metadata },    ...   ] },  ],  ‘deleted’: [   file_id_4 ,   file_id_5  ] }

    [0151] API for acquiring a state of the cluster based on an ID of a given photo:

    TABLE-US-00005 /photohell/photos/changes?uid=UID&cluster_policy= CLUSTER_POLICY&id=ID1,ID 2,...,ID {  ‘version’: 1406279525506869,  ‘cluster_policy’: 4,  ‘list’: [   { ‘cluster name/location/etc’: ‘somewhere 66’, ‘list’: [    { ‘id’: ID1, file metadata },    { ‘id’: ID2, file metadata },    ...   ] },  ] }

    [0152] One skilled in the art will appreciate when the instant description refers to “receiving data” from a user that the electronic device executing receiving of the data from the user may receive an electronic (or other) signal from the user. One skilled in the art will further appreciate that displaying data to the user via a user-graphical interface (such as the screen of the electronic device and the like) may involve transmitting a signal to the user-graphical interface, the signal containing data, which data can be manipulated and at least a portion of the data can be displayed to the user using the user-graphical interface.

    [0153] Some of these steps and signal sending-receiving are well known in the art and, as such, have been omitted in certain portions of this description for the sake of simplicity. The signals can be sent-received using optical means (such as a fibre-optic connection), electronic means (such as using wired or wireless connection), and mechanical means (such as pressure-based, temperature based or any other suitable physical parameter based).

    [0154] Modifications and improvements to the above-described implementations of the present technology may become apparent to those skilled in the art. The foregoing description is intended to be exemplary rather than limiting. The scope of the present technology is therefore intended to be limited solely by the scope of the appended claims.