U.S. patent application number 14/579336 was filed with the patent office on 2015-07-02 for method and system for smart ranking of search results.
The applicant listed for this patent is ABBYY Development LLC. Invention is credited to Konstantin Anisimovich, David Yan.
Application Number | 20150186381 14/579336 |
Document ID | / |
Family ID | 53481964 |
Filed Date | 2015-07-02 |
United States Patent
Application |
20150186381 |
Kind Code |
A1 |
Yan; David ; et al. |
July 2, 2015 |
Method and System for Smart Ranking of Search Results
Abstract
An illustrative method according to a set of instructions stored
on a memory of a computing device includes receiving, by a
processor of the computing device, a search input. The method
further includes identifying, by the processor, a plurality of
electronic files related to the search input. The method further
includes calculating, by the processor, a rank for each of the
plurality of electronic files based on statistical data of the
plurality of electronic files.
Inventors: |
Yan; David; (Portola Valley,
CA) ; Anisimovich; Konstantin; (Moscow, RU) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
ABBYY Development LLC |
Moscow |
|
RU |
|
|
Family ID: |
53481964 |
Appl. No.: |
14/579336 |
Filed: |
December 22, 2014 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61922597 |
Dec 31, 2013 |
|
|
|
Current U.S.
Class: |
707/728 |
Current CPC
Class: |
G06F 16/16 20190101;
G06F 16/2246 20190101; G06F 16/5846 20190101; G06F 16/248 20190101;
G06F 16/24578 20190101; G06F 16/907 20190101; G06F 40/103 20200101;
G06F 3/04817 20130101; G06F 16/26 20190101; G06F 16/14 20190101;
G06F 16/168 20190101; G06F 16/285 20190101; G06F 16/9535 20190101;
G06F 40/12 20200101; G10L 15/1815 20130101; G06F 3/04842 20130101;
G06Q 10/107 20130101; G06F 16/5866 20190101; G06F 16/156 20190101;
G06F 16/40 20190101 |
International
Class: |
G06F 17/30 20060101
G06F017/30 |
Claims
1. A method according to a set of instructions stored on a memory
of a computing device, the method comprising: receiving, by a
processor of the computing device, a search input; identifying, by
the processor, a plurality of electronic files related to the
search input; and calculating, by the processor, a rank for each of
the plurality of electronic files based on statistical data of the
plurality of electronic files.
2. The method of claim 1, wherein the searching for the electronic
files further comprises searching a plurality of electronic storage
locations.
3. The method of claim 1, further comprising displaying, by the
processor, on a graphical user interface (GUI), representative
information of the plurality of electronic files, wherein the
representative information comprises descriptive information
relating to the electronic files.
4. The method of claim 3, wherein the plurality of electronic files
are displayed on the GUI in an order indicating the rank of each of
the plurality of electronic files.
5. The method of claim 3, further comprising: determining, by the
processor, that a first rank for a first electronic file is higher
than a second rank for a second electronic file; and displaying, by
the processor, on the GUI, a first representative information of
the first electronic file more prominently than a second
representative information of the second electronic file.
6. The method of claim 5, wherein the first representative
information comprises a preview of the first electronic file.
7. The method of claim 5, wherein the first representative
information is displayed closer to a top of the GUI than the second
representative information.
8. The method of claim 3, wherein the representative information
comprises an indicator of the rank of each of the plurality of
electronic files.
9. The method of claim 1, wherein the statistical information
comprises a usage level and calculating the rank further comprises:
determining, by the processor, the usage level of each of the
plurality of electronic files; and calculating, by the processor,
the rank based on the usage level, wherein a higher usage level
corresponds to a higher rank.
10. The method of claim 9, wherein the usage level comprises a
number of times each of the plurality of electronic files has been
accessed.
11. The method of claim 9, wherein the usage level comprises a
cumulative amount of time each of the plurality of electronic files
is displayed on a graphical user interface (GUI) or interacted with
on the GUI.
12. The method of claim 1, wherein the statistical information
comprises an accessibility level and calculating the rank further
comprises: determining, by the processor, the accessibility level
of each of the plurality of electronic files based on: a type of
electronic device each of the plurality of electronic files is
stored on, a file type of each of the plurality of electronic files
is, a software application type utilized to display or modify each
of the plurality of electronic files, a size of each of the
plurality of electronic files, or an availability to the processor
of each of the plurality of electronic files; and calculating, by
the processor, the rank based on the accessibility level, wherein a
higher accessibility level corresponds to a higher rank.
13. The method of claim 1, wherein the plurality of electronic
files comprises a plurality of contacts, the statistical
information comprises an importance level, and calculating the rank
further comprises: determining, by the processor, the importance
level of each of the plurality of contacts; and calculating, by the
processor, the rank based on the importance level, wherein a higher
importance level corresponds to a higher rank.
14. The method claim 13, wherein the importance level comprises a
number of times correspondence has been sent to or from each of the
plurality of contacts.
15. The method of claim 14, wherein the correspondence comprises
e-mail message correspondence, text message correspondence, voice
call correspondence, and instant message correspondence.
16. The method of claim 13, wherein the importance level comprises
a response rate to correspondence from each of the plurality of
contacts.
17. The method of claim 13, wherein one of the plurality of
contacts is an organizational contact that comprises a plurality of
members of the organization, and further wherein the importance
level of the organizational contact is determined by determining a
cumulative importance level of the plurality of members of the
organization.
18. The method of claim 17, further comprising receiving, by the
processor, a user defined determination of a subset of the
plurality of contacts that corresponds to the plurality of members
of the organization.
19. An apparatus comprising: a memory; a processor operatively
coupled to the memory; and a first set of instructions stored on
the memory and configured to be executed by the processor, wherein
the processor is configured to: receive a search input; identify a
plurality of electronic files related to the search input; and
calculate a rank for each of the plurality of electronic files
based on statistical data of the plurality of electronic files.
20. A non-transitory computer readable medium having instructions
stored thereon that, upon execution by a computing device, cause
the computing device to perform operations, wherein the
instructions comprise: instructions to receive a search input;
instructions to identify a plurality of electronic files related to
the search input; and instructions to calculate a rank for each of
the plurality of electronic files based on statistical data of the
plurality of electronic files.
Description
CROSS-REFERENCE TO RELATED PATENT APPLICATION
[0001] This non-provisional application claims priority to U.S.
Provisional Application 61/922,597 filed on Dec. 31, 2013, the
disclosure of which is incorporated herein by reference in its
entirety.
BACKGROUND
[0002] Many people today use multiple devices and media in their
daily activities. For example, a typical person may use laptops,
smart phones, tablets, home and work desktops, external hard drives
and memory cards, media centers, smart TVs, cameras, DVRs, cloud
storage, as well as occasional use of the devices of family,
friends, coworkers, or roommates. Across these various devices,
people store large quantities of data of varying importance.
Additionally, people receive and store files, programs, messages,
and other media in external servers, such as e-mail or cloud
computing systems.
SUMMARY
[0003] An illustrative method according to a set of instructions
stored on a memory of a computing device includes receiving, by a
processor of the computing device, a search input. The method
further includes identifying, by the processor, a plurality of
electronic files related to the search input. The method further
includes calculating, by the processor, a rank for each of the
plurality of electronic files based on statistical data of the
plurality of electronic files.
[0004] An illustrative apparatus includes a memory, a processor
operatively coupled to the memory, and a first set of instructions
stored on the memory and configured to be executed by the
processor. The processor is configured to receive a search input.
The processor is further configured to identify a plurality of
electronic files related to the search input. The processor is
further configured to calculate a rank for each of the plurality of
electronic files based on statistical data of the plurality of
electronic files.
[0005] A non-transitory computer readable medium has instructions
stored thereon that, upon execution by a computing device, cause
the computing device to perform operations, where the instructions
include instructions to receive a search input. The instructions
further include instructions to identify a plurality of electronic
files related to the search input. The instructions further include
instructions to calculate a rank for each of the plurality of
electronic files based on statistical data of the plurality of
electronic files.
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] Illustrative embodiments will hereafter be described with
reference to the accompanying drawings.
[0007] FIG. 1 is a representation of a graphical user interface
(GUI) demonstrating an e-mail interface in accordance with an
illustrative embodiment.
[0008] FIG. 2 is a blown-up representation of a GUI demonstrating
an e-mail interface in accordance with an illustrative
embodiment.
[0009] FIG. 3 is a block diagram illustrating a file transfer
system in accordance with an illustrative embodiment.
[0010] FIG. 4 is a block diagram illustrating a second file
transfer system in accordance with an illustrative embodiment.
[0011] FIG. 5 is a representation of a GUI demonstrating a
multi-file type view in accordance with an illustrative
embodiment.
[0012] FIG. 6 is a representation of a GUI demonstrating a photo
view in accordance with an illustrative embodiment.
[0013] FIG. 7 is a representation of a GUI demonstrating a photo
view with a search menu displayed in accordance with an
illustrative embodiment.
[0014] FIG. 8 is a representation of a GUI demonstrating an e-mail
interface with a sorted contact list in accordance with an
illustrative embodiment.
[0015] FIG. 9 is a representation of a GUI demonstrating an e-mail
interface with a sorted contact list and an e-mail correspondence
chain in accordance with an illustrative embodiment.
[0016] FIG. 10 is a representation of a GUI demonstrating a single
photo view in accordance with an illustrative embodiment.
[0017] FIG. 11 a representation of a GUI demonstrating an
electronic files view with reminders in accordance with an
illustrative embodiment.
[0018] FIG. 12 a representation of a GUI demonstrating a dynamic
birds-eye view of a user's data in accordance with an illustrative
embodiment.
[0019] FIG. 13 is a representation of a GUI demonstrating a
multi-level view including a hierarchical tree structure in
accordance with an illustrative embodiment.
[0020] FIG. 14 is a representation of a GUI demonstrating a
multi-level view including a document preview in accordance with an
illustrative embodiment.
[0021] FIG. 15 a representation of a GUI demonstrating the contents
of a specific device's storage in accordance with an illustrative
embodiment.
[0022] FIG. 16 is a representation of a GUI demonstrating a
multi-level view including a document preview and an icon based
tagging section in accordance with an illustrative embodiment.
[0023] FIG. 17 is a representation of a GUI demonstrating an e-mail
interface with a sorted contact list, an e-mail correspondence
chain, and an icon based tagging section in accordance with an
illustrative embodiment.
[0024] FIG. 18 is a block diagram illustrating various computing
and electronic storage devices that may be used in accordance with
an illustrative embodiment.
[0025] FIG. 19 is a flow diagram illustrating a method of
displaying representative information of files and e-mails on a GUI
utilizing a two tab display in accordance with an illustrative
embodiment.
[0026] FIG. 20 is a flow diagram illustrating a method of
determining files a user has access to and displaying
representative information of the files on a GUI in accordance with
an illustrative embodiment.
[0027] FIG. 21 is a flow diagram illustrating a method of
determining the status of various electronic devices and displaying
that status on a GUI in accordance with an illustrative
embodiment.
[0028] FIG. 22 is a flow diagram illustrating a method of
extracting data from an electronic file and displaying a preview of
the file on a GUI in accordance with an illustrative
embodiment.
[0029] FIG. 23 is a flow diagram illustrating a method of receiving
an input from a user and displaying a context menu on a GUI in
accordance with an illustrative embodiment.
[0030] FIG. 24 is a flow diagram illustrating a method of receiving
an input from a user and opening an electronic file to be displayed
on a GUI in accordance with an illustrative embodiment.
[0031] FIG. 25 is a representation of a GUI demonstrating a photo
view overlay of a dynamic birds-eye view of a user's data in
accordance with an illustrative embodiment.
[0032] FIG. 26 is a flow diagram illustrating a method of
performing a search and smart ranking the results in accordance
with an illustrative embodiment.
[0033] FIG. 27 is a flow diagram illustrating a method of
performing a search an looking up smart rankings for the results in
accordance with an illustrative embodiment.
[0034] FIG. 28 is a flow diagram illustrating a method of
performing a search, smart ranking the results, and displaying the
results on a GUI in accordance with an illustrative embodiment.
[0035] FIG. 29 is a flow diagram illustrating a method for
performing a search of contacts and messages and smart ranking the
results in accordance with an illustrative embodiment.
DETAILED DESCRIPTION
[0036] Described herein are illustrative embodiments for methods
and systems for smart ranking of search results. The search may be
performed on a various electronic files, such as various data,
documents, e-mails, messages, documents, and/or contacts. The
various electronic files that are searched may be stored on a many
different electronic devices. For example, devices where electronic
files may be stored may include a smart phone, a tablet, a laptop
computer, a smart television device, removable storage such as a
universal serial bus (USB) drive or a secure digital (SD) memory
card, a desktop computer, a cloud storage server or servers, a
digital camera, a wearable computing device, or any other
electronic device capable of storing electronic files.
[0037] When performing a search, a user may input into a graphical
user interface (GUI) search terms that relate to what the user is
looking for. For example, the search terms may be an alphanumeric
sequence of characters that indicate what the user is looking for.
In other illustrative embodiments, a search input that specifies
what the user would like to search for may be entered in other ways
than the user inputting text. For example, a user may interact with
metadata or tags in order to indicate a search input. For example,
the user may be presented on the GUI with several electronic file
tags that are popular or heavily used among the user's various
electronic files. The user may interact with, such as through a
mouse click or touching a touch screen, one of the popular tags to
indicate that the user would like to search for all electronic
files related to that tag. In another embodiment, the user may be
able to select or specify multiple tags that are used as search
criteria. In yet another embodiment, the user may specify a tag or
tags and also input a search term. In this embodiment, the system
may use both the specified tag(s) and the inputted search terms in
order to perform the search.
[0038] In another illustrative embodiment, a search input may
indicate a certain electronic file type the user wants to search
for. For example, the user may input that he or she wishes to find
photos, for example. In other examples, the user may specify that
he or she wishes to search for spreadsheets, e-mails, e-mail
attachments, presentations, contacts, or another specific type of
electronic files. In one embodiment, the user may input an
electronic file type he or she wishes to search for, and the system
will search for all electronic files of that type. In another
embodiment, the user may enter a further input, such as a search
term or a tag as above, and the system may then search for
electronic files of the particular type that are also related to
the search term or specified tag. In other various embodiments, the
user may specify multiple search terms, tags, and/or electronic
file types for a search.
[0039] After a search input is received by the system from user
inputs, the system searches the various electronic devices of the
user (and any other devices the user has access to, such as cloud
storage systems) for electronic files related to the search inputs.
The system may determine that electronic files are relevant to the
search results by comparing the search inputs to the name of an
electronic file, metadata (including tags, author, file size, file
type, date modified or created, who modified the file, etc.) of the
electronic file, any of the content of the electronic file, and/or
other context based information regarding the file. One example of
context based information may be the text of an e-mail to which the
electronic file is attached. Another example may be contact
information of an e-mail message.
[0040] After electronic files that are related to a search input
are determined, the system ranks the electronic files that have
been determined based on various statistical data. The statistical
data may include, for example, information like usage levels,
accessibility levels, and/or importance levels of the electronic
files. In another alternative embodiment, rather than ranking
electronic files in response to a search being performed, all
electronic files may be indexed by the system, and the system may
continuously keep track, in association with or on the index, of a
rank of each of the electronic files. In this way, when a search is
performed for electronic files, the system may already have access
to rank information that had been previously calculated by the
system. Nonetheless, the system may calculate electronic file
rankings based on statistical data in similar ways regardless of
the timing of the calculation (before or after a search). However,
if ranks are calculated after a search, the system may calculate
the electronic files that have been determined as relevant to the
search. In contrast, if ranks are calculated before a search, a
rank for all electronic files of user may be calculated.
Advantageously, if the ranks are calculated after a search is
performed, the calculated ranks may be particularly tailored or
customized based on the search inputs as will be disclosed herein.
In other words, a calculated rank may be calculated, in part, based
on the search input in order to reflect a potentially more accurate
rank of electronic files yielded in a search.
[0041] After the ranks of the search results have been calculated
based on the statistical data, the search results and the ranks are
displayed on a graphical user interface (GUI). For example, the
system may display on the GUI representative information of the
electronic files, such as the file names, file types, and file
size. In other embodiments, other representative information may be
displayed, such as author, tags, date created, date modified, a
preview of the electronic file, or any other metadata related to
the electronic files. Additionally, the calculated rank may be
displayed on the GUI along with each respective electronic file
search result. In some alternative embodiments, the system may not
display every search result on the GUI. In such embodiments, the
system may utilize the calculated ranks to assist in determining
which search results not to display. For example, the lower ranked
results may not be displayed. However, the user may still view
these lower ranked results on the GUI through an input with the
GUI, such as scrolling, swiping a touch screen, a mouse click,
and/or other methods.
[0042] In other illustrative embodiments, differently ranked
results may be displayed on the GUI in different ways. For example,
some higher ranked search results may be displayed with different
representative information displayed than relatively lower ranked
search results. For example, a higher ranked search result may be
displayed on the GUI with a preview image, while lower ranked
search results may be displayed on the GUI without a preview image.
In another example, higher ranked search results may be displayed
further toward the top of the GUI than a lower ranked search
result. In another example, representative information, a symbol,
and/or an icon representing an electronic file that is ranked
higher may be displayed larger in size on the GUI than the
representative information, symbol, and/or icon representing the
electronic file that has a relatively lower rank. In one
embodiment, the size of the representative information, symbol,
and/or icon may be proportional to the calculated rank for that
electronic file.
[0043] In another embodiment, the search results may be displayed
in an order based on the calculated rankings. For example,
representative information of the electronic files in the search
results may be displayed in an order according to the calculated
rankings. For example, the search results may be displayed on the
GUI in an order starting with higher rankings and ending with the
lower rankings.
[0044] In a first illustrative embodiment, the calculated rank for
each electronic file is displayed or indicated on the GUI along
with the representative information for each electronic file. In an
alternative embodiment, the representative information does not
include the rank, but the system still utilizes the rank as
disclosed herein to organize and display the representative
information of the electronic files that are in the search results.
In another alternative embodiment, an indicator of the calculated
rank, but not the actual calculated rank, may be displayed along
with the representative information of the electronic files that
are in the search results. For example, if the system calculates
that an electronic file has a relatively high rank, the
representative information may be displayed on the GUI with a
particular color and/or symbol that indicates a high ranking.
Representative information of an electronic file with a relatively
medium rank may be displayed on the GUI with a second color and/or
symbol. Further, representative information of an electronic file
with a relatively low rank may be displayed on the GUI with a third
color and/or symbol.
[0045] The rank of the electronic files may be calculated in
different ways based on different statistical data. In a first
embodiment, the rank calculated may be an actual number that can be
compared to other ranks on the basis of the magnitude of the number
rank. In other embodiments, the calculated rank may be less
specific, such as a high, medium, or low relevance rank
designation. In another embodiment, the system may use both types
of calculation. For example, the system may calculate a numerical
rank, and a particular range of numbers may be associated with each
of the high, medium, and low relevance ranks.
[0046] The factors and statistical data used to calculate the rank
of an electronic file may also vary. In an illustrative embodiment,
the system may calculate a usage level of the electronic file to
determine the rank of the electronic file. In this embodiment, a
higher usage level corresponds to a higher rank. The usage level
indicates how much a user has directly or indirectly used an
electronic file. By calculating how much a user has used an
electronic file, the system can determine an approximation of
importance or relevance of the electronic file to the user. That
is, if there are electronic files with higher usage levels, those
files may be more desirable to a user and may more likely be the
target of a search by a user. As a result, those electronic files
are ranked higher so that when a user performs a search, those
files that are more likely to be the target of the search are
displayed on the GUI first or more prominently, allowing the user
easy access to the electronic files that he or she is most likely
seeking.
[0047] A usage level may be calculated using a variety of
information. For example, the system may track how many times an
electronic file is accessed or opened. This may define or
contribute to the usage level. Another factor that may be used to
determine a usage level may be an amount of time the electronic
file has been displayed on the GUI. For example, the system may
track how long a user has had an electronic file open, and that
cumulative amount of time may be used to calculate the usage level
of the electronic file. In a related embodiment, the system may
track the amount of time that an electronic file is open and
actually being displayed on the GUI. In other words, the system may
not count an amount of time when a file is open but minimized when
calculating usage level; but any time the electronic file is open
and displayed on the GUI may be counted when calculating the usage
level. In another related embodiment, the system may only count the
time when an electronic file is open and active. In other words,
the system may count time for purposes of calculating a usage level
where an electronic file is open and being interacted with by the
user. Such interactions may include scrolling, changing metadata,
changing the content of the electronic file itself, commenting on
the electronic file, responding to the electronic file (where the
electronic file is a message or e-mail, for example), listening to
and/or watching the electronic file, etc.
[0048] A usage level may also be determined by a number of tags.
For example, an electronic file with numerous tags may be
considered higher ranking than a file with very few tags. In an
illustrative embodiment, the system may also weight tags
differently. Some illustrative systems may utilize a watchdog tag.
A watchdog tag may be established by the user to watch a particular
electronic file. Where there is activity relating to that
electronic file, the user may be notified. For example, if the file
is a contact and the user receives a message from the contact, the
user may be notified. If the file is a document and the document is
edited, the user may receive a notification. If an electronic file
that is relevant to a search is associated with a watchdog tag,
that file may be associated with a higher ranking than an
electronic file not associated with a watchdog tag. Other specific
tags may also be weighted and associated with higher rankings for
search results. For example, a tag titled "IMPORTANT" may be
associated with a higher ranking than other tags, such as
descriptive tags like "Vacation." In another embodiment, tags may
be weighted for purposes of calculating ranks based on the
origination of the tags. For example, a tag that was created or
assigned by a user to the electronic file may be worth more to the
relative rank of a file than a tag that was automatically generated
by the system.
[0049] Other factors and statistical data may also be utilized to
calculate a rank for an electronic file. The system may calculate
an accessibility or mobility level, which can be used for
calculating ranks for electronic files. For example, the
accessibility or mobility of an electronic file may be impacted by
the electronic device or type of electronic device that an
electronic file is stored on. As a result, the electronic device or
type of electronic device may be considered when calculating the
accessibility or mobility level and subsequently the ranking of an
electronic file. For example, the system may assign a higher
accessibility or mobility level to electronic files stored on
internet accessible servers, such as an e-mail exchange or cloud
server storage system. In another example, the system may assign a
medium accessibility or mobility level to other electronic devices
that the system is likely to have access to, such as a smartphone
or laptop. In another example, the system may assign a low
accessibility or mobility level to an electronic file that is
stored on electronic devices that the system is less likely to have
access to, such as an external hard drive, USB drive, or SD
card.
[0050] The accessibility or mobility level may also be calculated
based on the type of electronic file. For example, an electronic
file that requires a specific stand-alone software application to
access may be considered to have a lower accessibility or mobility
level. For example, if an electronic file can only be opened by
Microsoft PowerPoint.TM., the system may consider the accessibility
or mobility level of the electronic file to be relatively low. In
another example, if a file can be opened or accessed by several
software applications or can be opened or accessed by a web-based
application, the system considers the electronic file to have a
high accessibility or mobility level. In other words, the system
can determine whether it is more or less likely that a user will be
able to access and/or modify an electronic file and will calculate
the accessibility or mobility level of the electronic file
accordingly. Similarly, the system may determine an access level of
an electronic file to determine the accessibility or mobility level
of the electronic file. For example, if an electronic file is
read-only (i.e., the user cannot edit the electronic file), the
system may consider the electronic file to have a relatively lower
accessibility or mobility level. If an electronic file has a higher
access level, such as a file where the user has full access and
editing privileges, that electronic file is considered to have a
relatively higher accessibility or mobility level.
[0051] The system may consider the file type of an electronic file
in another way to calculate an accessibility or mobility level. The
system may consider the file type and the version of the electronic
file to determine what version of a software application may be
used to access and/or modify the electronic file. For example, if
the system had to use a software application that was out of date
or old to access and/or modify an electronic file, the system may
rank the accessibility or mobility level lower. If the file type of
the electronic file uses a current and up to date version of a
software application to access and/or modify it, the system may
consider that electronic file to have a relatively higher
accessibility or mobility level.
[0052] In another embodiment, the system may utilize the file type
in yet another way to determine an accessibility or mobility level.
For example, the system may determine whether an electronic file is
a copy or a replica. As disclosed herein, for the purposes of this
disclosure, a copy of a file is identical to the original file at
the time of duplication, but is not automatically updated after
changes in the original file on a separate machine. A replica of a
file is identical to the original file at the time of duplication,
and is automatically updated after changes are made to the original
file, even if the original file exists on a separate machine than
the replica file. In this embodiment, a replica file may be
considered to have a higher accessibility or mobility level than a
copy file.
[0053] In another embodiment, the system may consider the version
of an electronic file when determining an accessibility or mobility
level. For example, if an electronic file is stored as multiple
different versions of the same electronic file, a most recent
version may be given a higher accessibility or mobility level,
while previous versions of an electronic file are given a lower
accessibility or mobility level.
[0054] In another illustrative embodiment, the size of an
electronic file may also be used when determining an accessibility
or mobility level. For example, if the user is searching for photos
using a mobile smart phone device, the system may rank photos that
are of a medium resolution as having a relatively high
accessibility or mobility level. The system may rank photos with
very high or very low resolutions as having a lower accessibility
or mobility level. In this way, the user's search results may
reflect photos that are tailored for the size of the display of a
mobile smart phone device and limitations on the mobile smart phone
device's internet connectivity and processing speeds. In another
example, if the user is utilizing their desktop computer to perform
the search, the system may rank higher resolution images as having
a higher accessibility or mobility level. In this way, both the
size of an electronic file and the device or type of device that
the search is being performed on is considered in calculating the
rank of an electronic file. In such an embodiment, the rankings are
dynamic rather than static, because the rankings may change based
on what device is used to perform the search. Accordingly, if these
type of dynamic factors are used, the ranks should be calculated at
least in part as or after a search is performed. In other words,
where dynamic factors are used, the final rank cannot be stored on
an index to be automatically returned upon a search, unless the
index includes all possible ranks that may be called for based on
the different dynamic factors.
[0055] In another illustrative embodiment, the system may determine
as part of the statistical data an actual real time availability of
an electronic file and may incorporate that availability into the
accessibility or mobility level. For example, when performing a
search, the system may search an index of electronic files, where
the electronic files may be stored on multiple user devices. The
system may determine that an electronic file on a laptop computer
is relevant to the search. The system will then determine whether
that electronic file is actually available. That is, could the
system access the memory of the laptop to open or modify the actual
electronic file stored on the laptop. If the laptop is not
available or online for any reason, that electronic file may not be
available. Accordingly, an electronic file that is not available
may be assigned by the system a relatively lower accessibility or
mobility level than an electronic file that is actually
available.
[0056] In various embodiments, any combination of all, some, or
none of the factors disclosed herein may be used to calculate a
rank of an electronic file for purposes of a search. For example,
none of the aforementioned factors may be utilized by the system,
and the system may rather rank electronic files according to how
close to the search input or search terms the electronic file
is.
[0057] In another illustrative embodiment, the user may be
performing a search for contact information. In this embodiment,
the system may determine as part of the statistical data an
importance level of a contact relevant to a search. A contact with
a high importance level will be assigned a higher ranking of
relevance for the search results. The importance level may be
determined in a variety of ways. For example, the system may
determine the importance of a contact based on a level of
correspondence between the user and the contact. For example, if
the user and contact send each other numerous e-mails, text
messages, chat messages, voice calls, video calls, and/or instant
messages, the system will consider that contact as having a higher
importance level. In other embodiments, the system may consider
only correspondence to or from the contact in determining the
importance level, as opposed to combining the correspondence to and
from the contact, as in the previous example,
[0058] In another embodiment, the system may determine the
importance level of a contact based on a user's response rate to
correspondence or any type of message from the particular contact.
For example, if the user has directly responded to 70 out of 100
e-mail messages (70%) from contact A, then contact A will have a
higher importance level relative to a contact B, to whom the user
has only responded to 20 out of 50 e-mail messages (40%).
[0059] In another illustrative embodiment, the system may consider
groups of contacts together in determining an importance level
and/or returning search results. For example, the user may define
certain contacts to be grouped together, such as family members. In
such an embodiment, the system may determine an importance level of
groups such as family members cumulatively, and return search
results based on the increased importance levels that come with
being a part of such a user defined group. As already noted, groups
of contacts may be defined by the user. In another embodiment, a
group may be automatically defined by the system. For example,
several contacts may have e-mail addresses that are routed to the
same e-mail servers. For example, employees of an ABC Company may
all have e-mails that end in "@ABCCompany.com." Accordingly, the
system may define all of those employees in a single group
associated with the ABC Company. This group may be treated by the
system as a single organizational contact. Accordingly, the system
may determine the importance level of the single organizational
contact by cumulatively considering the importance level of all the
group members together. The system may further classify an
organizational contact as an ontological object.
[0060] Herein, use of the terminology contact may refer to an
individual or an organization. Herein, an organization may be an
ontological object. In one embodiment, the methods and system
disclosed herein perform ranking operations to automatically rank
contacts. This ranking may be performed using a variety of
analyses. A ranking may be calculated on a semantic analysis of the
user's correspondence with the contact, which may take into account
characteristics such as the frequency of an activity like the
frequency of letter sending, and a user's response time or response
rate. The ranking may also be calculated based on background
information about the contact. Such background information may
include factors like closeness/relation/degree, company, position,
and so on, from sources like social networks (e.g., number of
friends, number of mutual friends, number of followers, etc.),
content of the messages themselves (e.g., email signature),
telephone communications (e.g., frequency of telephone calls and
message exchange). The ranking may also be calculated based on
other specific information that indicates that the contact is
important. For example, the user herself may create her own tags in
the system. Tags may be created to correspond with varying
entities, such as organizations, persons, projects, places, and
dates. If the user creates a specific tag (such as for an
organization), the systems and methods of the illustrated
embodiments may implement varying hypotheses. For example, the
systems and methods disclosed herein may assume that this tag is
more important to the user since the user created it herself.
Moreover, the systems and methods disclosed herein may make certain
associations automatically (i.e., the organization in the email
address from whence the email originated is associated with the
sender of the email, such as an employee) and query the user to
verify these associations.
[0061] In one embodiment, and as discussed above, watchdog tags may
be implemented in which the user may note some query as the watch
tag. The system may then copy all of the search results to a
special folder that is not visible to the user. These search
results may renew periodically: when changes in the folder are
detected, the user may then receive notifications concerning these
changes.
[0062] In another illustrative embodiment, a tag may be associated
with a contact that has a high ranking. The system may analyze the
user's contact ratings and send the user short message service
(SMS) notifications about a letter from a person with a
correspondingly high rating. Based on the contact's rating, the
system can decide on what the user should be reminded of. Differing
types of activities may be assigned a higher ranking and/or
priority, such as an assignment made to an individual or a task
that is assigned to the user. For example, if the contact is very
high ranking, the notification might have the contents of the
message in it. If the contact is only somewhat highly ranked, the
system may only notify the user that a message has been
received.
[0063] In an illustrative embodiment, a user may have received an
email from "Pete." The user may wish to find the email he
recollects, however, he is unsure from which account or location
the email may have originated. The system addresses this issue by
merging all available information in the user's network, including
emails, social accounts, and other related information. For every
contact, a unique ID may be initiated that corresponds to the
contact in the system. The system parses through all of the
available information, and performs such merging operations on
predefined rules, such as names similarity, email similarity and
other information. Following this merger, the system may then query
the user to verify that each of the instances found in the user's
network should be associated with the unique ID. Optionally, the
user may be able to specify differing ID's for portions of the
identified information. Such predefined rules may vary according to
the information being parsed. Such functionalities may be applied
in a variety of scenarios. In addition, the system may utilize
additional information such as logos, product descriptions,
employee information, and the like to perform merger operations. In
the case of project tags, the system may group e-mail
communications, analyze the time that the communications were
received/sent, and other information to organize information based
on a particular project tag.
[0064] In an illustrative embodiment, search results may also be
grouped together, particularly as they are displayed on a GUI. For
example, search results may be grouped together by type of
electronic file, date of creation, date of last modification,
identity of author, identity of last modifier, and/or other various
criteria. A cluster or group may also be organized based on the
relative calculated ranks of the electronic files. The groups or
clusters of search results may be displayed as groups on the GUI
and as will be further disclosed herein. When clusters of search
results are displayed, little information about the individual
electronic files may be displayed in the cluster. For example, a
cluster may be based on the year in which the electronic files were
created. In this example, the year an number of search results
represented by the cluster or group may be displayed. The user may
interact with the cluster or group that is displayed, and the
system will then display more information related to the search
results in that cluster. Such information may include
representative information and the information may be presented
based on ranks as disclosed herein.
[0065] In one embodiment where clusters and groups are used to
display search results, the system may display a general cluster,
like the one described previously with regard to files that were
created in the same year. When the user interacts with the cluster
to display more information relating the files represented by the
cluster, ranks are used to determine how that information is
displayed. Electronic files that have higher ranks may have
representative information regarding the files displayed
individually, so that the user can view details about each of the
most highly ranked files. For lower ranked files, little or no
representative information may be displayed initially. Instead, the
system may display a sub-cluster or subgroup that represents
several of the lower ranked files. The user may further interact
with the sub-cluster or subgroup to display representative
information relating to the lower ranked files.
[0066] In another illustrative embodiment, the system may assign
higher ranks to electronic files that have previously been
designated as important by the user. For example, if a user has
backed up a particular file by copying it to a cloud storage
device, that file may be considered more important to the user, and
thus would be ranked higher, than a file that has never been backed
up by the user. Similarly, a file that has been moved by a user
from one device to another may be considered either more or less
important to a user for ranking purposes. In another example, if a
file has ever been attached to an e-mail or other message, the
system may consider it more important to a user than a file that
has never been attached to a message.
[0067] The ranking system disclosed herein may also be utilized to
determine an optimal storage strategy for electronic files. For
example, if a particular device has a memory that is full or has
reached a certain threshold, the system may determine particular
files on that device that should be relocated. The system may use
the ranking system to determine which files to relocate. In one
embodiment, the system may relocate file associated with relatively
high rankings. In another embodiment, the system may relocate files
associated with relatively low rankings.
[0068] The systems and methods disclosed herein incorporate an
innovative end-to-end search (wider than a typical user search
query) for all mail, contacts, devices, and locations where user
information may be stored. In such a search functionality,
precision and recall may be superior due to the following example
implementations. For example: a search may be based on natural
language and meaningful information may be extracted from the email
and metadata. Further, the search may be based on the involvement
of background information, which does not exist in the actual
desired letter or document, but may be extracted from the previous
history of correspondence, from external sources (e.g.,
Facebook.TM., LinkedIn.TM., Wikipedia.TM., etc.), or from a
dossier--a company's ontology, geographies, etc. which are built
during the historical correspondence.
[0069] For example, a user may have forgotten the name of an
architect with whom she is in sporadic contact. Using systems and
methods disclosed herein, the user may make a search query:
"looking for a sample wall finishing, which a designer sent to me."
An example system may find such a document even if the picture has
been sent as a file attachment with the name P7272812.jpg (a title
with no obvious meaning) and the letter in which the file was
received contained a single word "Stucco" and no signature. Sender
is indicated as "a5067834@hotmail.com" (again an ambiguous title).
The system may identify that a5067834@hotmail.com--is associated
with a "designer," because in a previous correspondence they
discussed drawings and floor plans.
[0070] Search terms can also be extracted from common knowledge
(synonymous/homonymous narrowing/broadening of the search). In
other embodiments, fuzzy search, phonetic search, and/or search
with the transliteration may be used. Indexed links that are sent
in a message body may also be included. Sometimes in traditional
systems, a user may not find a desired file or set of files because
the user thinks that they sent files as email attachments, when the
files were actually sent as a link to a file sharing site like
Dropbox.TM.. As another example, when a user is looking for a New
York Times.TM. article, they may not find it because the article
came as a reference (e.g., an HTML address or remote storage server
address, etc.). However, the current systems and methods could
locate the link based on context. Further, a search may be run on
letters and attachments, and also through the files on all of a
user's devices.
[0071] In further embodiments, a tag classifier's probability may
be taken into account when ranking search results. If an
auto-tagging system is not sure about a classifier, the probability
for the classifier is indicated. Search results may also contain
statistical information on directories. When switching to
directories, selection in search results may be narrowed (or
expanded). Search results may contain statistical information on
tags. Search results may also be visualized to the user in a
hierarchical tree structure, for example, where there is
information on how many files are relevant to the search query, and
the associated folder for those files.
[0072] Often, in order for a user to search through photos, the
user might first perform tedious manual tagging operations, such as
tagging names of his relatives and friends on faces and objects
(e.g., sea, beach, house, tree, etc.) so that those faces and
objects will be recognized and associated with the remainder of the
user's photos and tagged in the future. In many cases, the user may
not have time to perform this manual tagging. The systems and
methods disclosed herein alleviate the burden of manual tagging in
a number of ways. The system performs "social tagging"
automatically. For example, when a user is posting some of his
photos in social networks, other people are tagging the faces,
objects, and places on the photos and commenting on the photos
themselves. The system can track these tags and comments and use
them to create metadata for the particular photos which have
already been posted, and use these tags and comments for initial
tagging; after which the same people, objects, and places on other
photos which have not yet been posted are recognized and
categorized. Accordingly, the system (without requiring initial
user tagging) builds a database of searchable metadata for both
photos which have previously been posted in social networks and
those which have not yet been posted.
[0073] In one embodiment, if a 100% match for a particular search
query is not identified, the system may use various approaches such
as morphology, semantics, fuzzy, and other approaches to perform a
broader query, so as to eliminate a "no results found" result as
many e-mail and file search systems would currently yield.
[0074] In one example, a user may query for a particular document
by searching using the keyword "schedule." In a typical search
return string, perhaps 100 results of files containing the word
"schedule" may be linearly listed and presented to the user.
However, such a scenario may not be the most beneficial to the
user. For example, this scenario may look similar to the
following:
TABLE-US-00001 Search query: "Schedule" Search results: - Doc 1
containing "Schedule" - Doc 2 containing "Schedule" - ... - Doc 100
containing "Schedule"
[0075] One embodiment disclosed herein may add further results of
terminology that the engine considers related, such as the
following search for "schedule" that returned further results with
the related terminology "program":
TABLE-US-00002 Search query: "Schedule" Search results: - Doc 1
containing "Schedule" - Doc 2 containing "Schedule" - ... - Doc 100
containing "Schedule" - Doc 101 containing "Program" - Doc 102
containing "Program" - ... - Doc 250 containing "Program"
[0076] In contrast to the above, in a further embodiment, the
system may cluster the results of the searching by different common
vectors, such as the following:
TABLE-US-00003 Search query: "Schedule" Search results: Cluster 1:
"Your upcoming NY trip - 15 results" - Doc 1 containing "Schedule"
- Doc 102 containing "Program" - See other 13 results... Cluster 2:
"Your daughter's school - 50 results" - Doc 24 containing
"Schedule" - Doc 28 containing "Schedule" - Doc 209 containing
"Program" - See other 47 results... Cluster 3: "Your last week Palo
Alto event - 30 results" - Doc 15 containing "Schedule" - Doc 57
containing "Schedule" - Doc 234 containing "Program" - See other 27
results... Cluster 4: "Your this month emails - 5 results" - Doc 13
containing "Schedule" - Doc 47 containing "Schedule" - Doc 214
containing "Program" - See other 2 results... Cluster 5: "Your
photos - 25 results" - Doc 63 containing "Schedule" - Doc 77
containing "Schedule" - Doc 211 containing "Program" - See other 22
results...
[0077] In another embodiment, the system may conduct a search
dialogue with a smart search assistant. Currently, search queries
are beset with issues such as a return of zero results, or a return
of too many results and/or coupled with poor ranking of those
results (i.e., the target document is not ranked first in the list
of results). The system and methods disclosed herein introduce a
live assistant. The live assistant takes verbal or textual queries
from the user, who describes the data to be located. Based on this
description, the live assistant may then query the user with
suggestions. In one example, the live assistant may query the user
for more information to broaden the search. In another example, the
live assistant may suggest detail so as to narrow the search. In an
illustrative embodiment, the live assistant is computer software
code that can respond to inputs from the user and provide prompts
to the user as disclosed herein. In an alternative embodiment, the
live assistant may be a human operator using another computing
device to communicate with the user and provide prompts to the user
as disclosed herein.
[0078] The user may have the option to conduct a dialog (verbal,
text, or otherwise) with the live assistant in a natural language
format. For example, the user may type the search query "find all
the emails which include information about my meeting with
investors," or order, "move to folder 1 all of the photos taken
yesterday." The live assistant may then respond with a
confirmation, such as "would you like to delete all storyboard
photos?"
[0079] As previously mentioned, the file search functionality
provided by the systems and methods disclosed herein may be based
on natural language and meaningful information extracted from the
file and metadata. In one embodiment, image and pdf text files may
be pre-Optical Character Read (OCRed) (at least in some extent) so
that if a user is searching the word "passport," they can find
images that include the word "passport." Photos and videos may be
searched based on GPS location data and metadata information about
the time of shooting (e.g., a user can specify a range of time the
photo was taken "from/to," a user can specify the geographical
units in their own language, "photo made in the United States").
Part of the metadata may be generated by the cloud service client
system itself, such as, from where the file was received (e.g.,
saved from such a man of attachment to the letter, copied to the
HDD #12, etc.).
[0080] In addition, color, shape, size, and position tagging on
business graphics may be employed by the system. For example, a
user may employ the following exemplary search "Seeking Excel.TM.
file, which has the round red diagram at the bottom of the last
spreadsheet." If the round red diagram has been tagged by the
system, the system can recognize that the user is seeking the
document that is an Excel.TM. file and has such a diagram at the
bottom of the document that is the color red and round in
shape.
[0081] A search may also involve background information, which is
not inside of the file, but for which a meaning may be extracted
from previous history of correspondence or from external sources
(Facebook.TM., LinkedIn.TM., Wikipedia.TM., etc.) from the
"dossier"--ontology companies, geographies, etc., which are built
as a result of correspondence. Search information may, in one
embodiment, be extracted from common knowledge
(synonymous/homonymous narrowing/broadening of the search). The
mechanisms of the illustrated embodiment provide for such
functionality as fuzzy search, phonetic search, and search with the
transliteration. In addition, the system, in one embodiment, can
provide search not only for files on a local device, but also for
files on all of a user's devices, as well as the letters, e-mails,
messages, and various attachments.
[0082] The methods and systems disclosed herein offer advantages
over a simple keyword search, particularly since the methods and
systems herein relate to a user environment across multiple
devices, platforms, file formats, and user file sharing and social
networking systems. A user may have to remember precise wording to
find a desired file in traditional keyword searching.
Advantageously, with the system and methods disclosed herein, a
user may be able to find files, mails, and other objects by the
general sense. To emulate search by the sense the system may parse
the query, build a semantic structure and translate the semantic
structure into an extended query using query interpretation and
synonyms expansion based on dictionaries and ontologies. The
extended query may produce many irrelevant results so the ranking
algorithms, systems, and methods disclosed herein based on semantic
similarities, word positions, word frequencies, usage levels,
importance levels, etc. are valuable in ordering and ranking search
results. If relevant results are not found, it is beneficial not to
show irrelevant results unless a user allows or desires such
irrelevant results to be displayed.
[0083] The display of search results on a GUI is discussed at
length herein. In short, the display of search results may be
carried out in a variety of ways. For example, the search results
may appear as a list of electronic files that the system has
located. Representative information of the electronic files may be
displayed in the list. In some embodiments, a preview of one or
more of the electronic files may be automatically displayed on the
GUI with the search results. In another embodiment, the user may
position a mouse or pointer over representative information of an
electronic file to get a preview to appear. In another embodiment,
the user may have to click on the representative information or
otherwise interact with it through the GUI (such as touching the
representative information through a touchscreen) to get a preview
of an electronic file to appear.
[0084] In another embodiment, the system may display on the GUI
search results in a way that does not immediately display
information directly related to individual electronic files.
Instead, the system may display the information in representative
groups (also referred to herein as clusters or an amalgamation).
The system may display groups of search results based on the
various characteristics or traits of the results. For example,
electronic files that are found as part of the search results may
be sorted according to data type. For example, the results may be
sorted and grouped into clusters based on whether each result is a
document, presentation, photo or other image, video, e-mail,
contact information, message, or other sort of file or data type.
The clusters could also contain more than one data type in the same
cluster. A cluster could also represent all search results from a
particular storage location. A cluster could also represent search
results from a certain period of time (when the files were modified
or created, for example). The clusters may be automatically
determined by the system, or may be configured and defined by the
user.
[0085] A group or cluster displayed on the GUI may also indicate
how many electronic files of each type of files were found during
the searching. In another illustrative embodiment, the system may
display certain groups or clusters more prominently than others.
For example, the system may automatically display a cluster
representing documents that were saved on a hard drive more
prominently than a cluster representing documents that were
attached to e-mail messages. Although the system may automatically
display certain groups and/or clusters with more prominence, the
system may also be configured by the user to show certain groups or
clusters more prominently than others.
[0086] A user may also expand a cluster to view representative
information of the files that are represented in the cluster. The
user may accomplish this through an interaction on the GUI with a
particular cluster or group. Representative information of
individual files within a cluster or group may also be displayed
more prominently than others depending on system defaults or
preferences established by the user.
[0087] In one illustrative embodiment, the clusters or groups
displayed by the system may be displayed as a hierarchical tree
structure. In a hierarchical tree structure, results may be shown
in groups that are expandable and collapsible to demonstrate more
detail regarding the search results. The system may also indicate
in a hierarchical tree structure, how many results regarding each
level of the hierarchical tree structure there are. For example,
search results may be displayed in clusters as a hierarchical tree
structure. The levels initially displayed in the hierarchical tree
structure may sort the search results according to a first
criteria. For example, the search results may be sorted into
clusters depending on a data type. In other words, the search
results are sorted based on what type of electronic file each file
is. Each level may also display how many relevant files are
represented by the cluster or group.
[0088] Upon interacting with one of the levels with, for example, a
touch screen selection or pointer point and click operation, a
cluster or group is expanded on the GUI. In one embodiment, the
expanded level may display representative information of each
electronic file represented by the cluster or group. In one
embodiment, the system may determine to do this where the number of
files represented by a cluster are relatively low (for example,
five electronic files or fewer). In other embodiments, further
sub-levels of the hierarchical tree structure that represent
sub-groups of the clusters or groups may be displayed. For example,
if a cluster representing e-mail messages is interacted with,
further sub-groups sorted by a second data type may be displayed on
the GUI. For example, the sub-groups may be sorted by date, such as
month and year the e-mail messages were received. In this way,
other sub-groups may also exist, so that a set of search results is
organized viewable based on several different categorizations based
on data type, metadata, file location, and the like.
[0089] In order to determine relevant search results, various types
of searching may be performed by the system. For example,
morphological searching, metadata searching, tag searching, full
text searching, fuzzy searching, or ontology-based semantic
searching may all be used, alone or in different combinations, in
various illustrative embodiments. For example, morphological
searching may automatically utilize searching for words or forms of
words that are similar to the words entered as a search term by the
user. In another example, the system may utilize metadata and tag
searching. In this embodiment, the system can search information
that is associated with an electronic file as metadata or tags for
information relevant to the search terms entered by the user. In
full text searching, the system may search the entire contents of
an electronic file for relevance to the search terms entered by the
user.
[0090] Fuzzy searching, also known as approximate string matching,
may also be utilized by the system. Fuzzy searching takes a string
of characters entered by the user as a search term and searches for
a similar string of characters that approximately match the string
of characters entered. In this way, if a search term that is
entered has been misspelled, the system may be able to
automatically search for the correctly spelled word rather than the
misspelled word.
[0091] In ontology-based semantic searching, the system may utilize
context and interrelated information from electronic files to
perform searches. For example, system may examine the content of
electronic files on the system and utilize the examination to
determine certain relationships or contexts. For example, an e-mail
may contain a signature line with the name of a company that the
sender works for. As a result, the system could return results for
the company broadly during a search where a search term entered was
the name of the sender himself.
[0092] Described herein are illustrative embodiments for methods
and systems that provide for a displaying files indicating file
location. Also described herein are systems and methods which allow
users to disclose, access, distribute, synchronize, manage, and
search different types of content and electronic files, including
but not limited to file content, communication content, contact
content, and other personal information across multiple devices and
cloud servers. Also described herein is a graphical user interface
(GUI) that displays representative information of different
electronic files. The electronic files may be physically stored on
multiple devices, but the representative information relating to
the electronic files may be displayed on a single GUI. The
representative information of an electronic file may include the
physical location where the electronic file is stored, the size of
the electronic file, a date and/or time the electronic file was
created or last modified, a file type of the electronic file, a
preview of the electronic file, or any other representative
information relating to the electronic file. Furthermore, a user
can interact with the GUI to view, open, access, organize, backup,
synchronize, distribute, or locate different electronic files
stored on various electronic devices. Representative information as
defined herein may include, but is not limited to, various types of
metadata.
[0093] In an illustrative embodiment, the system can determine the
presence of electronic files of a user among multiple devices. For
example, the user may utilize a tablet, smart phone, laptop,
universal serial bus (USB) drive, cloud storage, set top boxes
(smart TVs), and many other electronic storage and computing
devices and methods. Further, software applications may include
files that relate to a user or the user has access to. Such files
may include e-mails, messages, chats, documents, pictures, videos,
contacts, or other electronic data. The system can determine all of
these types of data from a plurality of devices and index the data.
Even if a user was not the creator or owner of the document, the
system can index the data as long as the user has access to it. The
index may be stored on a particular device of the user's, for
example, a laptop. The user may also designate which device will
store the index. In another embodiment, the index will be stored on
a cloud storage system. Advantageously, when the index is stored on
a cloud storage system (e.g., a remote server), the index may be
updated regarding changes to data or files on any device whenever
the device is connected to the internet.
[0094] After electronic files such as documents, pictures, e-mails,
contact information, and the like have been indexed, representative
information of the electronic files can be displayed on a graphical
user interface (GUI) to a user. In one embodiment, the
representative information may be displayed in a single window
format. Representative information may include a file name, a file
preview, date last modified, version number, date created, number
of related files, number of files in a folder, and any other
information relating to an electronic file. In some embodiments,
the representative information may include information regarding
the location of the electronic file. The location information can
be indicated utilizing a symbol or icon. For example, if a file is
on the user's smartphone, a smartphone icon may be used to indicate
the location of the file. Different icons or symbols may have
different shapes, colors, sizes, or text content. For example, the
device where a file is stored may be part of the representative
information. The system may also index a virtual location of a
file. For example, regardless of where an e-mail might be
physically stored, it might be virtually located in a user's e-mail
inbox within the system and displayed as such whenever the inbox is
displayed on the GUI. In this case, the system may indicate either
or both of the virtual and physical locations. In some embodiments,
the representative information may be displayed in a single window,
but may be divided within a multiple tab configuration. For
example, a GUI may include tabs for files, photos, e-mails, and
contacts. In another embodiment, the GUI may have tabs for files
and e-mails, where photos are categorized under files and contacts
are categorized under e-mails. The user may be able to switch
between tabs by interacting with the GUI. For example, a user may
utilize a motion translation device and input, such as a
touchscreen in which the user may touch the location on the screen
where one of the tabs appears, activating and displaying that tab.
To switch to a different tab, the user may touch the different tab.
In another example, the user may use a mouse or touchpad to locate
a pointer over the desired tab on the GUI. The user may then make
another input, such as a single mouse click, to activate and
display the desired tab the pointer is located over.
[0095] Whether or not tabs are used, the representative information
of electronic files displayed by the system may include information
relating to where and how the electronic files are stored. For
example, the representative information may include an indication
that the file is stored on a particular device or in a cloud
storage system. The representative information may also include an
indication of whether the file has been backed-up or not. The
representative information may also include the location of a
backed-up copy of the file. The representative information may also
include an indication of whether the device where the file is
stored is online or offline. In the case where a file is stored on
two different devices, the system may indicate the status of both
devices. In another embodiment, the system may only indicate enough
about the status of the devices to indicate whether the file is
available for opening and/or editing. For example, if a file is on
two different devices, and one is online and one is not, the system
may indicate on a GUI that the device where the file is stored is
online, because the user's actual access to the file is not
hindered by one of the devices being offline. Other status's than
online and offline may also be indicated by the system. For
example, the connections speed or status of a device may be
indicated. In another example, a passive or active status may be
indicated. Such a status may be relevant if a computing device has
a standby, sleep, hibernate, or screen saver mode that restricts
remote access to the memory of the device. In another example,
instead of online or offline which indicates communication between
two devices over a network, a device status may be connected or
unconnected. This may be useful for a secure digital (SD) card,
portable hard drive, or USB storage device, where the devices are
connected directly to a computing device rather than communicating
with devices over a network. Other potential statuses that may be
indicated by the system about a computing device may include a
currently operational status, a currently non-operational status,
or a set in a lower functional mode status. Despite the status of a
device however, if a file has been previously indexed, the
representative information relating to the file can be
displayed.
[0096] In an illustrative embodiment, the representative
information for a file may be manipulated or changed by the user.
For example, if the user receives a file through a file sharing
website or attached to an e-mail, the file may have a computer
generated name or a name that is otherwise undesirable by the user.
Accordingly, the user may then change the name of the file that is
used in the representative information. Any other of the
representative information may also be changed by the user.
[0097] The system may also display a preview of electronic files on
the GUI. This may occur automatically, or may occur based on some
sort of interaction by the user with the GUI. For example, the
system may display the preview only if the user clicks or taps on
the file once. In another example, a preview may be displayed when
the user moves a pointer over a file. In another embodiment, a
preview may be automatically displayed, but a further preview may
be displayed when a file is interacted with. For example, the first
page of a document may be shown, and when a pointer is moved over
the document, the second page of the document is shown. In another
example, a thumbnail of a picture may be shown. When the user moves
a pointer over the thumbnail, a larger and/or more high resolution
version of the photo may be displayed by the system. In order to
generate the preview of electronic files, the system may extract
all or a portion of content from an electronic file to generate the
preview. For example, where a first page of a document is used as a
preview image, the first page of the document is extracted. Various
types of previews may be displayed by the system. For example, a
preview may include a first group of words from a document or
message (such as an e-mail). Another preview may be a thumbnail
image of a larger image, or a screen shot of a video. The preview
image could also include some or all of the contact information
relating to an e-mail or other type of message. A preview image
could also include a task information relating to an electronic
file. For example, where the electronic file is a task list,
reminder list, or calendar, such a task list, reminder list, or
calendar may include information that can be used in the preview.
For example, a reminder list may include an item reminding the user
to pay their rent. Accordingly, a preview of the reminder list or
of the item on the reminder list itself may include the text "Rent
is Due!" In another embodiment, such a task or preview may be
derived from an e-mail, such as an e-mail requesting information
from the user. The preview of such an e-mail may include text
indicating the request.
[0098] In another illustrative embodiment, context menus may be
used. Context menus are menus that pop-up on the GUI relating to a
particular part of the GUI. For example, a context menu may pop-up
if a user moves their mouse over the representative information of
an electronic file. In another embodiment, the user can move a
pointer over the representative information and make another input,
such as a mouse click, to get the context menu to display. In other
embodiments, such as when a touch screen is in use, the user may
only input with regard to the representative information, and a
pointer may not be utilized. A context menu may include information
related to a particular electronic file or actions that may be
taken related to the electronic file. For example, a context menu
may indicate that an electronic file is classified as read only. In
another example, a context menu may present a user with options
relating to the electronic file, such as download the file, delete
the file, rename the file, move the file, back-up or copy the file,
etc.
[0099] In another illustrative embodiment, various user inputs and
interactions may be made to effectuate opening an electronic file
by clicking on or otherwise interacting with the representative
information of a file on the GUI. For example, if the user wishes
to open a document stored on a laptop, even though the user is
currently using a tablet, the user may activate the system
disclosed herein. The user can then navigate to or search for the
representative information of the document desired, and tap on it
through the touch screen of the tablet. The system receives the
input from the user, and the system then uses an application that
matches the file type of the document to open the document and
display it to the user on the tablet. The application may be
located on the tablet or located elsewhere. As long as the system
has access to the application, the document can be opened. In an
alternative embodiment, the system may select an application to
utilize when opening a document based on a number of factors. For
example, the system may consider whether the user made any choices
regarding what application to use (e.g., an open-with option) or
how the file should be displayed (e.g., read-only). The system may
also choose an application that is appropriate for the device the
user is currently using. The system may also select an alternative
application to use where a preferred application is not available.
In an alternative embodiment, electronic files that have been
opened may be displayed directly by the system and even edited
within the GUI. If a document is not available (for example, the
device where the document is stored is offline), the system may
automatically find another copy or replica of the document on
another device and open that one. In this way, the user may never
have to worry about how the document is actually opened. For
example, there may be a copy or replica of the document on an
external hard drive, a cloud storage server, or the user's home
personal computer (PC). In another embodiment, the system may be
able to locate a copy or a replica of the document on an e-mail
server or otherwise find it among other message types that the user
has sent or received.
[0100] In another illustrative embodiment, the GUI may display some
representative information more prominently than other
representative information. For example, if the representative
information includes an icon such as a piece of paper type icon for
a document. The piece of paper type icon for certain files may be
displayed larger and/or further toward the top of the GUI than the
icons for other files. Such a difference in prominence may be
random, so as to make the display less monotonous and more pleasing
to the eye. If groups of files are displayed together in a solitary
representative information, different groups of files represented
by an icon or symbol may also be displayed more prominently than
other groups or individual files. In another embodiment, such
differences in prominence may result from a decision made by the
system to display the representative information of the files
accordingly. For example, the system may determine to display more
recently opened or edited files more prominently. In another
example, the system may display messages that have been received
but not read or responded to more prominently. In another example,
the system may display photos or videos posted to the user's social
networks that have a relatively greater number of social
interactions with others on the social networks more prominently.
If the system is displaying search results, the system may display
results with more relevance to the search more prominently. Other
criteria, such as number of times modified, date created, size of
the file, or tag or metadata associated with the file, may also be
used by the system to determine how to determine representative
information to display more prominently on the GUI.
[0101] In another illustrative embodiment, the GUI may also display
a representation of a current storage utilization of a device in
which the GUI is being displayed. For example, the representation
may include a graphical representation indicating a percentage or
fixed amount of free storage space and used storage space. In
another embodiment, such a representation may be used to indicate
an amount of free and used storage space on a different device. In
another embodiment, such a representation may be used to indicate
an amount of free and used storage space on all of the user's
devices combined. In another embodiment, such a representation may
be used to indicate an amount of free and used storage space in a
portion of a cloud storage space allotted to the user. In yet
another embodiment, such a representation may be used to indicate
an amount of free and used storage space in all of the user's
devices and the portion of the cloud storage space allotted to the
user.
[0102] In another illustrative embodiment, the representative
information displayed on the GUI may include a hierarchical tree
structure. Such a tree structure may indicate the various physical
devices of the user and the files and folders stored thereon. The
hierarchical tree structure may also indicate the files and folders
stored on a user's allotted cloud storage space. In addition to
showing where files are physically stored on various devices and/or
cloud storage space, a hierarchical tree structure may
alternatively or additionally display files in their designated
virtual locations. A virtual file location is defined herein as a
location the system visualizes a file being in, even if the file is
not physically stored there. For example, a virtual location of "My
Music" may contain all of a user's audio files, regardless of what
device or folder the audio files are in. Thus, each audio file has
a virtual location of the My Music folder. Other files and contacts
may similarly have other virtual locations as determined by the
system or the user. A virtual file is defined herein as a file that
is a merged version of several files. The virtual file may
physically exist on a storage device, or may exist locally when
opened by the user and incorporates data from multiple physical
files. A virtual file may be displayed as representative
information on the GUI. The representative information may indicate
that it is a virtual file, or the representative information may
appear similar to the representative information for any other
file, not indicating to the user that the file is a virtual
file.
[0103] In an alternative embodiment, the representative information
displayed on the GUI may be an amalgamation of representative
information of multiple files. For example, the amalgamation may be
represented by a circle. The circle may be sized according to the
number of files represented by the amalgamation, a relative
importance of the grouping of files, or other criteria. The
amalgamation may also include text, such as the device or devices
where the files in the amalgamation are stored, a file type or
types of the files in the amalgamation, a total size of the
amalgamation, or a preview of at least one of the files in the
amalgamation.
[0104] Electronic files indexed, displayed, used, etc. by the
system can include many things. For example, files as defined
herein may include things such as documents, presentations,
spreadsheets, e-mails, messages, audio files, video files, contact
information, web pages, information from webpages, tasks,
calendars, and the like. Such files may be gleaned by the system
from various sources such as local file storages powered with
operating systems (e.g., laptops, phones, tablets, media centers,
etc.), external passive file storages (e.g., external hard drives,
memory sticks, CD/DVD's, etc.), cloud storages (e.g., Dropbox.TM.,
Google Drive.TM., Evernote.TM., Flickr.TM.' Facebook.TM. galleries,
etc.), e-mail accounts (e.g., Gmail.TM., Hotmail.TM., Yahoo.TM.
mail, exchange servers, etc.), messenger services (e.g.,
Twitter.TM., Skype.TM., SMS, Snapchat.TM., Viber.TM., Google
Hangouts.TM., etc.), social media feeds (e.g., Facebook.TM.'
Google+.TM. LinkedIN.TM., etc.), contact lists (from e.g., e-mail
accounts, messengers, telephone, personal address books,
Outlook.TM. contacts, etc.), tasks, calendars, dictionaries,
encyclopedias, internet sites, and any other services like
FineReader.TM. online.
[0105] Advantageously, the systems and methods disclosed herein
provide benefits over an exclusive utilization of cloud storage.
Some people store information in a cloud storage in order to
synchronize information on different personal devices. However, for
other people, cloud storage is not necessary because personal
devices have become very productive, and often have sufficient
capabilities to handle the needs of many users without resorting to
cloud storage strategies. In other cases, the amount of data
produced by some people is so massive that transferring that data
to cloud servers may be cumbersome and time consuming. For example,
a digital camera owner may return from a vacation with hundreds, if
not thousands, of photos or videos in high resolution. If these
photos and videos were moved to cloud storage, the photos and
videos could occupy multiple gigabytes of memory in the cloud
storage servers, and may additionally severely tax data transfer
resources to move all the photos and videos to a cloud server.
Further, many devices have become wirelessly connected to each
other (e.g., smart TVs, media centers, cameras, fitness bracelets,
Google.TM.-glasses, other wearable computers, etc.) so that it may
be preferable to keep some data on local devices rather than remote
servers. Additionally, much of the data that could be stored on a
cloud storage may never be used again, thus unnecessarily taking up
space on the cloud storage servers.
[0106] Accordingly, there may not be sufficient resources and/or
desire to move vast quantities of generated data from multiple
devices to cloud storage and organize all of the data.
Additionally, cloud storage systems or leaving data on multiple
devices may not be satisfactorily searchable to make such methods
for file storage useful.
[0107] The systems and methods discussed herein provide for a
multiple device storage system where files can be organized across
all personal devices, cloud locations, and applications (e.g.,
e-mail, word processing, videos, pictures, etc.). Further, people
share computer files sending them as e-mail attachments or
attaching them to instant messages, social media feeds, blogs, or
publishing them in their galleries or cloud storages. Accordingly,
the systems and methods herein provide for organization and
searching not only across all personal devices and cloud locations
but also through a user's e-mails, instant messages, social media
feeds, blogs, media galleries, and other communication content.
[0108] In one illustrative embodiment, a system can display,
access, distribute, synchronize, manage, and search different types
of content, including but not limited to file content,
communication content, contact content and other personal
information across multiple devices and cloud servers. The system
may also include a server system that communicatively couples to an
agent-type application on one or more client devices.
[0109] In one illustrative embodiment, a user may be able to
perform a customizable search. For example, a user may wish to only
search for a certain type of electronic files or content, such as
contact information files. In this example, the user is able to
specify that contact information files should be searched. In
another example, the user may wish to only search among spreadsheet
type electronic files. In another embodiment, the user may specify
that he or she would only like to search among electronic files
that are stored on particular electronic devices. For example, a
user may specify that he or she would only like to search for
electronic files on the user's mobile phone and cloud storage
system. In other examples, these functionalities may be combined
and mixed by the user. For example, the user may specify in the
system that only videos from the desktop computer are the subject
of a search. Regardless how a user defines such a custom search,
the system may rank the search results and display the search
results according to systems and methods disclosed herein.
[0110] In another illustrative embodiment, a method provides
multi-platform content access, distribution, and synchronization of
files on different devices including using a client-side
application to manage transfer and presentation of files on a
device and across server systems.
[0111] In another illustrative embodiment, a method provides
multi-platform content access including full-text indexing of the
content, files, and metadata of files located on a device and
searching of files using full text index located on a server
system.
[0112] In another embodiment, a method is disclosed for displaying
data from local, external, offline, and other sources in a single
interface presented to a user. The display can also include
information on where the data and/or files are actually stored.
[0113] In another embodiment, a computer-readable medium may
include instructions executable by a processor to cause the
processor to perform functions enabling multi-platform content
access, distribution, and synchronization on different devices.
Such instructions may be embodied in a client-side computer
organization application. In addition to the foregoing embodiments,
other systems and computer program product embodiments are provided
and supply related advantages.
[0114] The number of devices that a user may implement in her
day-to-day life has proliferated. While these individual devices
are often-times interconnected via, for example, wireless
networking, cellular networking, and other infrastructures, systems
and methods as disclosed herein can effectively manage data shared
between such devices. For example, the systems and methods
disclosed herein address platform content access, distribution, and
synchronization of data and files, while managing the data and
files as well.
[0115] The systems and methods disclosed herein better effectuate
such platform content access, distribution, and synchronization,
while at the same time managing the data itself so as to make more
effective use of available cloud-based solutions. Finally, the
systems and methods disclosed herein provide for utilizing
multiple, yet interconnected, devices while making file
organization over such devices and systems easy for a user.
[0116] The embodiments disclosed herein provide a convenient
one-stop (unified) access to multiple forms of personal data. The
embodiments facilitate a unified catalog of personal files across
all devices, as well as an ability to view or play files locally or
remotely.
[0117] In addition, the embodiments disclosed herein provide file
and/or data management functionality, such as opening, copying,
moving, deleting, archiving, sharing, and editing. The disclosed
embodiments promote technology to automatically smart move files in
a user's family cloud, so that there is always space on the user's
phone and laptop, and the most necessary files are always at
hand.
[0118] The embodiments disclosed herein also provide search
functionality. Advantageously, the search functionalities disclosed
herein expand searching beyond file name searching. This may be
helpful where, for example, files arrive in e-mail or are shared
online or by other means and have a computer generated file name.
Accordingly, the embodiments disclosed herein can examine the
metadata for full-text content utilizing a fuzzy search, within the
meaning according to different ontologies, etc.
[0119] The embodiments disclosed herein also provide
privacy/security functionality. In some embodiments, a repository
of data will not be stored in the cloud for users concerned about
privacy and security issues. There may be temporary or
compartmentalized storage for proxy caching, data manipulation, or
convenience, but significant duplication or long-term storage in
the cloud can be avoided. Additionally, some embodiments may
include no indexing or cataloguing of data in the cloud to ensure
data protection, theft protection, corruption, integrity of data,
and related issues with cloud based repositories. Further, some
embodiments may keep no file catalogue or full theft index in the
cloud. Further still, the architecture envisioned can either
utilize or not utilize a mirrored or master copy of the
index/catalogue data in the cloud. In some embodiments, a mirrored
or master copy of the index/catalogue data in the cloud may be
stored and indexed locally on the client side to facilitate local
control of the index. In some cases, such an arrangement may be
considered a peer-to-peer index and data synchronization
process.
[0120] As will be further described, the embodiments disclosed
herein provide search and data management functionality over an
entire available range of data storage mediums and systems of
exchange between devices. For example, various embodiments
disclosed herein promote (a) disclosure, (b) manage, and (c) search
information functionality for (1) locally stored files, (2) offline
files, (3) cloud-based files, (4) e-mail information (whether
stored locally, offline, or remotely), (5) instant message/short
message format information (again stored in a variety of
locations), (6) social media feeds, (7) contact information, (8)
other type of content including but not limited to dictionaries and
encyclopedias, tasks, calendars, etc.
[0121] An illustrative embodiment includes a distributed platform
and a client application that allows users to have very easy access
to their files and e-mail. The embodiment brings together all user
information sources available in the user's network, including
local and cloud sources, external devices, social networks, e-mail,
and telephone communications. Furthermore, the embodiment allows
for data management, which may be configured to be seamless and
automatic. For example, one of the user's devices may be running
out of available storage space on a particular data medium. The
system may make the decision to migrate data in order to free
space, or perform backup operations.
[0122] Another illustrative embodiment includes a platform based on
a back-end and a front-end, native client and external device
architecture. Any product/service that generates data and files
(documents or messages) can integrate with this platform as a
source of data and files. Accordingly, the user can see these data
and files in a uniform interface with an ability to search, tag,
preview, manage, share, etc. The platform may include built-in
smart rules and notification functionality. For example, a
particular device may be wearable, such as a fitness bracelet. This
device, through the embodiments disclosed herein, may trigger a
rule or notification based on the activity of the user to provide
an alert. Moreover, embodiments as disclosed herein may include
infrastructure through which data may be displayed. For example, a
user may again be wearing a device, through which the
infrastructure facilitates the viewing of a video message or
otherwise displays data.
[0123] In an illustrative embodiment and from the point of view of
architecture--agent software is installed under Operating System
(OS) software. The agent extracts text and metadata from all local
files and e-mail and passes on the data to a server or other local
or remote processing device (herein referred to as cloud service)
for indexing. The agent monitors changes in files. The agent
collects the actual aggregate of all the devices of the user code
and creates a local copy of the relevant index (cache).
[0124] In an illustrative embodiment and from the point of view of
the user interface, the cloud service provides a combination of a
simple, but very dynamic, attractive, and convenient e-mail client
and a simple, but very comfortable file manager. Such a program may
function in ways used in a traditional e-mail client (e.g.,
Microsoft.TM. Outlook.TM.), but also may include the ability to
view not only an e-mail message but also files included in
correspondence. This program, a client tied to the cloud service,
or cloud service client, may be implemented for desktop operating
systems (OSX.TM. and Windows.TM.), and for mobile operating
systems, such as iOS.TM. and Android.TM..
[0125] In one illustrative embodiment, the cloud service client
interface for desktop OS is very fresh and light in the spirit of
interfaces for mobile OS. This program is not intended to replace
traditional e-mail clients or file managers, but aims to make
working with mail and files easier. For example, a first type of
functionality may serve to review incoming mail. A system may
provide a radically more convenient way of presenting the incoming
mail than traditional systems, such as Outlook.TM. and Mac Mail.
Such a presentation may be based on the fact that important
messages are displayed in a different way than un-important
messages. Another feature of such a system may relate to the
formation of responses to messages directly within the cloud
service client.
[0126] Furthermore, content management technology can be used with
a mail client, which facilitates easy sharing of local files. In
the system, a file may be shared as either a copy or a replica. For
the purposes of this disclosure, a copy of a file is identical to
the original file at the time of duplication, but is not
automatically updated after changes in the original file on a
separate machine. A replica of a file is identical to the original
file at the time of duplication, and is automatically updated after
changes are made to the original file, even if the original file
exists on a separate machine than the replica file.
[0127] In one embodiment, efficient management of photos and/or
video information on personal devices is possible. Such embodiments
allow for the following objectives to be realized. The local
storage associated with the camera can be emptied, or at least can
always have some available memory. The data can be made accessible
from and to the user's network of devices, from cameras, phones,
tablets, wearable devices, and others. The data can be made
accessible to the user's contacts. The data can be retained in one
backup location, while freeing space on the user's other devices.
Finally, the interface allows Original Equipment Manufacturers
(OEMs) access to retain communication with the user to enhance
consumer loyalty, address usage (i.e., provide instruction to the
user), and maintain accessibility in the event of a recall,
warranty, or other consumer support issue.
[0128] Illustrated embodiments incorporate innovative data
management functionality, for example, an ability to automatically
move the files between a user's devices and a public, private, or
personal storage account, so that: (1) the cloud service client
moves important and frequently used files to the user's local
device, (2) the client always maintains a certain predetermined
amount of free space (e.g., 25%, 30%, 35%, 40%, etc.) on the local
device by gradually moving less-used files to remote devices, and
(3), the client keeps copies of important files at 2 or 3 physical
locations on different devices to avoid data loss caused by the
loss of one of the devices or data unavailability due to no network
access. In other words, an important file can still be accessed
from one device even while a second device containing the file is
offline.
[0129] An example can be the following usage scenario. A user
inserts a secure digital (SD) card containing photos into a device.
The system then copies newer photos on the SD card to a photo
folder on the local device, while retaining free space on the
device as will be further described. The system can then apply
optional photo filters, smart tagging, object-facial recognition,
audio tagging, and the like. Newer photos are then replicated from
the photo folder to an external hard drive or default backup
device. The newer photos can also be replicated from the photo
folder to a replica at a remote storage location (e.g., cloud). The
replica copies on the cloud storage may serve as the backup copies
or may be separate from the backup copies. The user is then able to
share the photos with contacts as indicated on the interface. For
example, certain icons may be displayed to indicate that the photos
are available in the system. The user may be able to click on an
icon of the interface to start a slide show, share the photos, or
perform another activity.
[0130] In an additional usage scenario, the user may turn on a
scanner, and receive scans to a scan folder on his laptop. The
mechanisms retain enough free space on the laptop by moving older
images and retaining newer ones. The system may also apply photo
filters, de-skew, perspective correction, optical character
recognition (OCR), smart tagging, object-facial recognition,
audio-tagging and the like. Newer scans can be replicated from the
scan folder on the laptop to an external hard drive or default
backup device. Newer scans can also be replicated from the scan
folder to the remote storage location, again while retaining a
certain amount of designated free space on the laptop and external
and remote storage locations. The user is therefore able to share
the scan with contacts as indicated by the interface.
[0131] In another embodiment, the system may implement an external
communications link with a device that is accessible via the
Internet, for example. The link may be provided to a user, whom
after a short registration process then has the ability to connect
a device through the external communications link, which then
provides the user with OEM vendor content and accessibility through
the interface. For example, the user may be asked to register an SD
card, or verify a camera connection, during which the camera
version is determined or confirmed. The mechanisms then will allow
bi-directional communication between the user and the OEM via, for
example, a designated tab, which may display OEM vendor content
therein.
[0132] Software incorporating such embodiments may be installed via
sharing (link shared via e-mail or other social networking
contact), file sharing requiring installation of the software
itself, or download from the appropriate website. Upon first use,
the software may prompt for login information. If the user has used
the software before, the user may be prompted to enter a login ID
(such as an e-mail address) and a personal password. If the user
has not used the software before, the user may be prompted to enter
their e-mail address. A confirmation message can then be sent to
the user's e-mail address that includes a temporary password in the
message.
[0133] After confirming the user's e-mail address by using the
temporary password to log in, a software window is displayed. In
one illustrative embodiment, the left-hand side of the software
window is empty initially. This side may be referred to as the
workspace. On the right-hand side of the software window, available
icons for sources such as my hard drive, external drives, if
currently connected, cloud drives, Exchange, mail servers (Gmail
etc.), other locations: camera, media centers etc., and other
computers may be displayed. A user may be able to interact with the
icons that represent the various sources. For example, a user may
be able to drag an icon representing a source into the left-hand
side workspace. By doing so, the software will recognize that the
user has assigned that service or device to their personal cloud.
The dragging may be accomplished using a mouse in a point and click
fashion, or may be accomplished using a touch screen of some
kind.
[0134] For example, the user may drag their hard drive icon to the
left (the workspace). The software can further query the user for
specific folders from the device that are to be indexed. By
default, it suggests to index all folders on the user's local disk
except for applications. The user can also connect their
traditional e-mail clients (e.g., Outlook.TM., Exchange.TM. etc.).
As soon as devices are assigned to the user's personal cloud, the
workspace on the left is filled with a list of folders and files
that have been assigned to the cloud storage.
[0135] At the top of the graphical user interface (GUI) window, the
user views two large tabs: one for files and one for e-mail. In an
alternative embodiment, a third tab may also be presented on the
GUI for contacts. In other embodiments, other tabs may exist as
well. For example, other tabs may include calendar and tasks tabs.
A search field may also be presented on the GUI. As the sources are
indexed, the system may display on the GUI a progress of the
indexing. In the indexing, the system can detect duplicate files or
very similar files in the user's personal cloud or other devices.
For example, such matched files categorized as duplicates or other
matched files may be categorized based on how well they match each
other. For example, 100% duplicate files may have the exact same
content and metadata, including the date and time the files were
created and/or modified. In another example, 99.9% duplicate files
may have the same content and metadata, save for being created at
and/or modified at a different date and time. In another example,
99.8% duplicates may have the same content but may have different
other metadata, such as a different file name. In another example,
99% similar files may have small differences in content.
[0136] The system may offer to consider files that are not 100%
duplicate files as different versions. In an alternative
embodiment, the system may utilize a different threshold. For
example, the system may only offer to consider files that are 99%
similar as different versions. The system may also consider the
date and author of a last modification of a file, which of the
files originates in an e-mail, by whom a possible e-mail was sent,
when a possible e-mail was sent, etc. The system may utilize that
information to make automatic decisions for indexing files. For
example, if files meet a certain threshold of similarity or are
duplicates, the system may only save the most recently modified
version. In another example, the system may save all versions of
the file but designate one version as an official version using one
of the aforementioned criteria. In another embodiment, the system
may offer to merge duplicates into one file. In such a case, the
system may treat these physical files as a single logical file and
synchronize the changes of this file across all its physical
copies. If the duplicate is located within the same physical
medium, the software will remove the physical duplicate (keeping an
official copy).
[0137] The system may also analyze a user's e-mails and clear up
the user's disorganization in contacts. Namely, the system may
assign heuristically photos (or avatars) to any contacts of the
user. The system may also obtain the photos or other information
about the contacts from the user's social networks. For example,
the system may obtain the 50 most active contacts with whom the
user had communications in the last six months and may search for
their e-mail addresses in a first social network. The system may
also use other criteria to search for the contacts in the first
social network, such as name or other data relating to a contact
that the system may be able to glean from e-mails from the contacts
or information manually entered by the user relating to the
contacts. If the system fails to find such persons in the first
social network, the system may move to a second social network and
search for the contacts there using similar methods. The system may
also locate contacts on social networks by searching for similar
names to the contacts among friends of the user (such methods may
include transliteration and fuzzy search functionality).
[0138] In one embodiment, for each contact that a user has, a kind
of dossier can be assembled for each contact. That is, the system
can associate documents, files, e-mails, photos, etc. with each of
the user's contacts. The system may also identify among all of the
user's e-mail addresses, e-mail addresses that are preferred for
e-mailing a contact, e-mail addresses that are not preferred for
e-mailing a contact, and any wrong e-mail addresses (either e-mail
addresses that are not valid or e-mail addresses that are not
properly associated with the correct contact). The system may also
add comments to e-mail addresses. Similarly, the system may clean
up phone numbers on a contact list by analyzing the history of the
user's SMS correspondence and phone calls. The system may also
associate phone numbers with e-mail addresses that belong to the
same contact.
[0139] Further, the system can analyze actual correspondence and
make a brief summary of the user's relationship with a contact. For
example, the system may determine the main theme of the
correspondence, the degree of importance to the user of the contact
or correspondence, or recommendations based on a particular
correspondence. For example, a recommendation may be based on an
e-mail from several months ago that asked the user for information,
but has not yet been responded to. Such recommendations may be
configurable by a user, or turned on and off by a user. In this
case, the system may recommend that the user write a response, and
the system may further prompt the user to include an answer to the
specific inquiry in the original correspondence from several months
ago. Any length of time used to determine a recommendation may also
be configurable by the user. In another example, the system may
note that a family member's birthday or anniversary is approaching,
and the system may therefore alert the user to send them a message.
The user may further be able to configure how long before such a
birthday or anniversary the user should be alerted by the system.
The user may further specify which family members or other contacts
recommendations for special events like birthdays and/or
anniversaries should generate alerts. In a similar example, the
system may determine that a user has not sent an e-mail to a
grandparent in two months. The system may send the user an alert
that the grandparent should be e-mailed, which again can be fully
configurable by the user. In another example, the system could
generate a recommendation to correspondences that request a
response (RSVP) for an event. Another example where a
recommendation may be made is if correspondence indicates that the
user owes someone money. The system may send such recommendations
to the user in a variety of ways. The system may send the user a
short message service (SMS) message, an e-mail message, a
Facebook.TM. message, or other type of message that includes the
recommendation. The recommendations could also be added to a
calendar, task list, or reminder list for the user. In another
embodiment, the recommendation could comprise an icon displayed
along with the e-mail message.
[0140] In an illustrative embodiment, data to or from each contact
can be automatically assigned a rank of importance. The rank of
importance could be represented by a number, such as a number from
1 to 100. The rank of importance could also be a high, medium, or
low categorization. Other ways of ranking may also be used. The
user may change the ranking system manually, and may also change
the rank of particular data manually. The ranks of importance for
data may be used to determine how to visualize the incoming
messages and e-mails from different contacts. For example, messages
from higher ranked contacts or related to higher ranked
conversations may be displayed by the system more prominently than
other messages. By analyzing the data in social networking
channels, e-mail addresses, message structures, and/or signatures
in messages, the system may extract a contact's possible past and
current places of employment. In this way, the system may build an
ontology of the people and companies with whom the user has been
corresponding and contacting.
[0141] In another illustrative embodiment, the system may analyze a
user's e-mails, the user's contacts' ratings, the user's telephone
communications and the like to simplify and organize the user's
tasks. For this purpose, the system may implement a series of
alerts, follow-ups, reminders (as well as by means of SMS), and the
like, some of which may be generated based on the preceding
discussion. The system can also identify the promises that the user
once gave to e-mail recipients and prioritize and categorize them
by identifying certain tasks or e-mails that the user needs to do
or write today. The system can also be configured to generate tasks
or e-mails that the user needs to do or write within other time
periods, such as three days, one week, two weeks, or one month as
just some illustrative examples. The system can also identify the
promises that someone once gave the user in the correspondence and
prioritize and categorize them by identifying the most important
cases or e-mails where someone promised to do something for the
user. The system may also be configured to create a draft letter
reminding these contacts on the user's behalf that something is
owed to the user as previously promised. Such a draft letter may
include a copy or a quotation from the original correspondence
where something was promised.
[0142] In another illustrative embodiment, the system may generate
messages or recommendations to the user based on the user's usage
and interaction with the system. For example, by analyzing content
and user behavior with respect to folders and information sources,
the system may jokingly inform the user in a natural language form
about the user's activities with respect to the source. For
example, when user hovers over a folder the system may gently and
jokingly informs him, "You haven't opened this folder for
ages."
[0143] In another embodiment, a user may wish to find a
presentation, but does not recall the name of the file and does not
remember the name of the file's location. The file may be located
on the user's personal laptop or their work laptop. The user does
remember that the file was prepared for John Smith, and that the
presentation contained a red pie chart diagram. The user may
selects a files tab. The system may then display to the user a
complete file tree hierarchy of files on all of the user's devices.
The user may browse the file tree hierarchy or may utilize a search
field.
[0144] In the search field, the user can type any text, and view
the results in a linear form with a preview of the text. A small
thumbnail preview of each file that is returned in the search
results can be viewed on a GUI. Adjacent to the thumbnail is
displayed a larger preview of the file. The user may type
"presentation prepared for John Smith and it had a red pie
diagram," for example. The software moves to an index of electronic
files stored across user's devices and attempts to find the words
"red pie diagram." The system may also look to metadata that has
been extracted from electronic files. If the system finds "chart"
or "diagram" in the metadata of certain electronic files, those
electronic files are displayed to the user more prominently in the
GUI. In a similar example, the system may also track if a
particular document was sent to persons with the name of "john"
and/or "smith." Those documents may also be displayed more
prominently than other documents merely containing the words
"chart" or "diagram." Advantageously, the systems and methods
disclosed herein also can find such files and documents when a
significant number of files are stored directly as attachments to
emails, rather than downloaded onto a particular device. The
embodiments disclosed herein, through the metadata search and other
functionality, are able to identify such files easily. Furthermore,
any of these searching methods may be accompanied by the methods
and systems disclosed herein for ranking and displaying on a GUI
the search results.
[0145] For example, the file may be located on the user's remote
work computer. The user may wish to edit the document and send it
to his manager. If the user attempts to open this remote file, the
system can make a local physical copy of the file, and the user can
work safely without worry about being disconnected from the network
and losing the user's edits. However, the system retains the
document as one logical file, and when the user is finished
editing, the system will update the original copy. The system also
attempts to make use of available local applications to execute the
file, though where that is not possible, remotely located
applications may be utilized.
[0146] The system also allows any files to be moved, deleted,
renamed, and copied in any personal cloud. In some embodiments, the
actions may be immediately executed if the device the user is using
and the device where the file of interest is stored are both
online. In some embodiments, being online means being connected to
the internet. However, more generally, being online as disclosed
herein means that the two devices are able to communicate with each
other, either through the internet or otherwise. If the devices are
not online, some operations can be ordered with deferred execution.
Such a process may prevent the need for people to constantly think
about backing up files. Utilizing various mechanisms of the
illustrated embodiments, the user can forget the problem of
back-ups. In one embodiment, the system simply communicates the
system folders and files that are important to the user, and asks
the system to always store three physical copies in different
locations. The system keeps track of the fact that these folders
have at least three replicas. In the event that the user damages a
device, for example, they can buy a new device, log into the
cloud-based server using their e-mail address, and simply ask to
restore the data to the new device. For security purposes, the user
may designate those files and folders that he does not wish to be
indexed.
[0147] As will be appreciated by one skilled in the art, aspects of
the embodiments disclosed herein may be embodied as a system,
method or computer program product. Accordingly, aspects of the
embodiments disclosed herein may take the form of an entirely
hardware embodiment, an entirely software embodiment (including
firmware, resident software, micro-code, etc.) or an embodiment
combining software and hardware aspects that may all generally be
referred to herein as a "circuit," "module" or "system."
Furthermore, aspects of the embodiments disclosed herein may take
the form of a computer program product embodied in one or more
computer readable medium(s) having computer readable program code
embodied thereon.
[0148] Any combination of one or more computer readable medium(s)
may be utilized. A computer readable storage medium may be, for
example, but not limited to, an electronic, magnetic, optical,
electromagnetic, infrared, or semiconductor system, apparatus, or
device, or any suitable combination of the foregoing. More specific
examples (a non-exhaustive list) of the computer readable storage
medium would include the following: an electrical connection having
one or more wires, a portable computer diskette, a hard disk, a
random access memory (RAM), a read-only memory (ROM), an erasable
programmable read only memory (EPROM or Flash memory), an optical
fiber, a portable compact disc read-only memory (CD-ROM), an
optical storage device, a magnetic storage device, or any suitable
combination of the foregoing. In the context of this document, a
computer readable storage medium may be any tangible medium that
may contain, or store a program for use by or in connection with an
instruction execution system, apparatus, or device.
[0149] Program code embodied on a computer readable medium may be
transmitted using any appropriate medium, including but not limited
to wireless, wired, optical fiber cable, RF, etc., or any suitable
combination of the foregoing. Computer program code for carrying
out operations for aspects of the embodiments disclosed herein may
be written in any combination of one or more programming languages,
including an object oriented programming language such as Java,
Smalltalk, C++ or the like and conventional procedural programming
languages, such as the "C" programming language or similar
programming languages. The program code may execute entirely on the
user's computer, partly on the user's computer, as a stand-alone
software package, partly on the user's computer and partly on a
remote computer, or entirely on the remote computer or server. In
the latter scenario, the remote computer may be connected to the
user's computer through any type of network, including a local area
network (LAN) or a wide area network (WAN), or the connection may
be made to an external computer (for example, through the Internet
using an Internet Service Provider).
[0150] Aspects of the embodiments disclosed herein are described
with reference to flowchart illustrations and/or block diagrams of
methods, apparatus (systems) and computer program products
according to embodiments disclosed herein. It will be understood
that each block of the flowchart illustrations and/or block
diagrams, and combinations of blocks in the flowchart illustrations
and/or block diagrams, may be implemented by computer program
instructions. These computer program instructions may be provided
to a processor of a general purpose computer, special purpose
computer, or other programmable data processing apparatus to
produce a machine, such that the instructions, which execute via
the processor of the computer or other programmable data processing
apparatus, implement the functions/acts specified in the flowchart
and/or block diagram block or blocks.
[0151] These computer program instructions may also be stored in a
computer readable medium that may direct a computer, other
programmable data processing apparatus, or other devices to
function in a particular manner, such that the instructions stored
in the computer readable medium produce an article of manufacture
including instructions which implement the function/act specified
in the flowchart and/or block diagram block or blocks. The computer
program instructions may also be loaded onto a computer, other
programmable data processing apparatus, or other devices to cause a
series of operational steps to be performed on the computer, other
programmable apparatus or other devices to produce a computer
implemented process such that the instructions which execute on the
computer or other programmable apparatus provide processes for
implementing the functions/acts specified in the flowchart and/or
block diagram block or blocks.
[0152] The flowchart and block diagrams in the figures illustrate
the architecture, functionality, and operation of possible
implementations of systems, methods and computer program products
according to various embodiments disclosed herein. In this regard,
each block in the flowchart or block diagrams may represent a
module, segment, or portion of code, which comprises one or more
executable instructions for implementing the specified logical
function(s). It should also be noted that, in some alternative
implementations, the functions noted in the block may occur out of
the order noted in the figures. For example, two blocks shown in
succession may, in fact, be executed substantially concurrently, or
the blocks may sometimes be executed in the reverse order,
depending upon the functionality involved. It will also be noted
that each block of the block diagrams and/or flowchart
illustration, and combinations of blocks in the block diagrams
and/or flowchart illustration, may be implemented by special
purpose hardware-based systems that perform the specified functions
or acts, or combinations of special purpose hardware and computer
instructions.
[0153] FIG. 1 is a representation of a graphical user interface
(GUI) 100 demonstrating an e-mail interface in accordance with an
illustrative embodiment. In alternative embodiments, fewer,
additional, and/or different components may be displayed on the
GUI. The GUI 100 includes two tabs toward the top, an e-mails tab
105 and a files tab 110. The e-mails tab 105 and the files tab 110
may, in an alternative embodiment, include a number indicating the
number of e-mails or files indexed on each respective tab. In
another alternative embodiment, a number in the e-mails tab 105 or
the files tab 110 may also indicate a number of unread or new
e-mails or newly indexed files. The GUI 100 further includes
secondary tabs 115. These secondary tabs 115 can help further sort
the e-mails displayed when the e-mail tab 105 is selected. In GUI
100, the e-mail tab 105 is selected, and thus the secondary tabs
115 are displayed. The secondary tabs 115 include options for
sorting e-mails such as all, important, work, family, friends,
architect, social, promo, and more. Some of the secondary tabs 115
are default and some are user defined. If a user selects one of the
secondary tabs 115, e-mails relating to that tab are displayed. In
one embodiment, multiple secondary tabs 115 may be selected.
Accordingly, e-mails may be sorted based on multiple criteria. In
one embodiment, if two secondary tabs 115 are selected, any e-mails
that relate to either of the subjects of the tabs are displayed. In
an alternative embodiment, selecting two tabs displays only e-mails
that relate to both tabs. More than two tabs may also be selected
in various embodiments.
[0154] The GUI 100 also includes a search space 120. If a user
enters text into the search space 120, the terms entered may be
searched for among e-mails. The searching may search for the exact
characters entered into the search space 120 or may include fuzzy
searching. In an alternative embodiment, a search may be performed
in areas other than just the e-mail folder. The GUI 100 also
includes a settings and alerts icon 125. If the user selects the
settings and alerts icon 125, the user is directed to displays that
allow the user to change settings or alerts related to the system
and methods disclosed herein. For example, wherever throughout this
disclosure a feature is described as configurable by the user, the
user may be able to navigate to a GUI that allows them to configure
such a feature through the settings and alerts icon 125.
[0155] The GUI 100 also includes e-mail previews, that preview
individual e-mails. For example, e-mail previews 130, 135, and 140
are all shown on GUI 100. E-mails 130 and 140 include an attached
picture that is displayed in the preview. E-mail 130 includes
multiple photos in the preview. One is displayed more prominently
than the others. Each of e-mails 130, 135, and 140 include text
that is displayed in the preview. E-mails 130, 135, and 140 also
include a photo or avatar of the sender of the e-mail, the sender's
name, and the date and time the e-mails 130, 135, and 140 were
sent.
[0156] In this embodiment, e-mail 130 has been selected for full
viewing by the user. Such selection may occur by the user tapping
or clicking on the e-mail 130. The full view 145 shows much of the
same information as in the preview, except larger and more easily
viewable. The full view includes much better views of photos 150
and 155. Further, the user may interact with the photos 150 and 155
to cause a photo that is not displayed prominently by default, such
as photo 155, to be displayed more prominently. Also, if the e-mail
130 had more text then it currently does, the full text may be
visible in the full-view 145 but not the preview. The GUI 100 also
includes a contact info 160. The system automatically displays the
contact info 160 of the sender of the e-mail that is selected for
the full-view 145, in this case e-mail 130. The contact info 160
includes the sender's photo or avatar, name, telephone number,
groups, and e-mail history. In this case, Gary Thomas is part of
the friends and architects groups. Thus, if the user selects
secondary tabs 115 such as friends or architect, e-mails from Gary
Thomas may be displayed on the GUI 100. The groups that Gary Thomas
is a part of may be automatically selected based on the
interactions between the user and Gary, the content of the
correspondence between the user and Gary, or information from the
user's social networks. For example, if Gary Thomas was listed as a
family member of the user on the user's Facebook.TM. profile, the
system may automatically put Gary in the Family group. In an
alternative embodiment, the user may configure and determine the
groups that a contact belongs in. The e-mail history displayed in
the contact info 160 indicates the magnitude of correspondence
between Gary and the user. In this case, the user has received 23
e-mails from Gary and sent 32 e-mails to Gary.
[0157] In an illustrative embodiment, the GUI 100 in FIG. 1 may be
similar to a GUI used to display search results for an e-mail
message specific search. In an e-mail specific search, the user may
have indicated a desire to only search for e-mails. This desire may
be indicated by the fact that the user has navigated to the e-mails
tab 105 and subsequently performed a search in the search space
120. In this embodiment, e-mails that are relevant to any search
criteria may be displayed on the left of the GUI 100. For example,
e-mails 130, 135, and 140 may be examples of e-mail search results.
In this embodiment, the e-mail 130 is selected and the user can see
further information relating to the e-mail 130 in the full-view
145. In this way, the user may be able to verify and locate the
information they seek through the search without having to open
different e-mails in a separate application. Another advantage of
the current system is that a search of e-mails performed using the
GUI 100 may search for e-mails across multiple e-mail and messaging
platforms. For example, the system could search across multiple
e-mail exchanges and inboxes for each of a user's e-mail addresses.
Furthermore, the system may search across any messaging services
the user utilizes, such as instant messaging apps for a smart
phone, chat services online, and the like. Further, the search
results displayed on the GUI 100 may reflect a ranking of search
results. For example, the e-mail 130 may be ranked higher than the
e-mails 135 and 140 since it is displayed closer to the top of the
GUI 100. In an alternative embodiment, e-mails 130 and 140 may be
ranked higher than e-mail 135 for example, because they are
displayed more prominently and with attachment previews, which
e-mail 135 does not have.
[0158] FIG. 2 is a blown-up representation of a GUI 200
demonstrating an e-mail interface in accordance with an
illustrative embodiment. In alternative embodiments, fewer,
additional, and/or different components may be displayed on the
GUI. Note that both in FIG. 1 and FIG. 2, the e-mails displayed are
all related to one another. That is, the several e-mails form a
sort of conversation among the senders. In this instance, the
e-mail messages are displayed from oldest to newest. In this way,
the e-mails can be read along the normal flow of conversation when
the e-mails are read from top to bottom.
[0159] FIG. 3 is a block diagram illustrating a file transfer
system in accordance with an illustrative embodiment. In
alternative embodiments, fewer, additional, and/or different
components may be included in the system.
[0160] As shown in FIG. 3, an e-mail file sharing architecture may
include e-mail software 301 on a sending computer, an exchange
server on the sender side 304, a server on the recipient side 305,
and e-mail software 306 on the recipient computer. Also as shown,
sender's e-mail software 301 is able to access a file#01 302 in
sender's digital storage (the file to be sent) and generate an
e-mail message 303 with a copy (file#02) of file#01 attached.
E-mail message 303 is sent through servers 304 and 305 to the
recipient's software 306 as shown by the arrows on FIG. 3.
Recipient's software 306 receives e-mail message 307 (a copy of
message 303), which contains a file#03 (a copy of attached
file#02). The recipient machine may save a copy of file#03 locally
to a recipient computer as file#04 308. In one exemplary
embodiment, the software 301 may be Outlook.TM., the server 304 may
be an Exchange.TM. server, the server 305 may be a Gmail.TM.
server, and the software 306 is Mac-OS Mail. This embodiment is
merely for illustration. Any other server and software types may be
used in different embodiments of such a system.
[0161] FIG. 4 is a block diagram illustrating a second file
transfer system in accordance with an illustrative embodiment. In
alternative embodiments, fewer, additional, and/or different
components may be included in the system.
[0162] As shown in FIG. 4, an integrated e-mail file sharing
architecture may include e-mail software 401 on a sending computer,
an e-mail server on the sender side 405, an e-mail server on the
recipient side 407, and e-mail software 408 on the recipient
computer. In an example procedure, an e-mail message 403 is
composed using client software 401 and software 401 receives an
indication that file#01 402 should be made accessible through the
message 403. Responsively, software 401 may access file#01 402 and
upload a replica or copy of file#01 to a cloud server 406. The
replica or copy is stored as file#02 on cloud server 406 and
software 401 receives access information for accessing file#02.
Responsively, software 401 sends the access information to a
cloud-based server and the server generates a document (page#01)
404 containing the access information. In other cases, the access
information may be stored in the form in which the cloud-based
server receives it. An indication of page#01 (such as a network
address, Internet address, linked file, or connection executable)
is received or generated by software 401 and, in response to the
indication being received or generated by software 401, software
401 inserts or attaches the indication (or page#01 itself) to
message 403. Message 403 is sent through servers 405 and 407 to
software 408.
[0163] If the recipient software 408 is a standard e-mail client,
then the recipient receives e-mail message 409 (which is a copy of
message 403) from server 407 and accesses the link to the
cloud-based server. The recipient computer accesses page#01 404
from the cloud-based server. In some cases, the recipient computer
may receive a message encouraging the recipient to use the
cloud-based e-mail client, along with a download link. By accessing
page#01, the recipient is furnished with the link with access
information to file#02 on the cloud storage 406. Recipient computer
may use the link to access cloud storage 406 and download file#02,
forming file#03--local copy or replica of the file#02.
[0164] If the recipient software 408 is a client implementing
embodiments disclosed herein, then the process may be repeated in
the same way, except all the process of receiving file#03 may be
automated and file#03 may be either a copy or a replica of file#02.
If file#03 is a replica, then file#01 or file#03 may be updated
when the other is edited. The updating may be accomplished through
cloud-based server 404 so that file#02 need not be stored on cloud
server 406 to maintain the connection between file#01 and file#03.
In other implementations, file#02 may continue to be stored and may
serve as a link between the replica files.
[0165] If sender software 401 is also not a cloud-based client,
then an agent process may be included as an add-on to software 401.
The agent may accomplish the uploading and attachment/insertion of
the link that would have been performed by the cloud-based client.
Then, message 403 may be sent and received in the same way as
described above. Sender composes Outlook.TM. e-mail message, then
runs the "attach file" command.
[0166] FIG. 5 is a representation of a GUI 500 demonstrating a
multi-file type view in accordance with an illustrative embodiment.
In alternative embodiments, fewer, additional, and/or different
components may be displayed on the GUI. The GUI 500 includes
e-mails tab 505 and files tab 510. These two tabs may function
similarly to the e-mails and files tabs described above with
respect to FIG. 1. In this embodiment, the files tab 510 is
selected, and therefore files, instead of e-mails, are displayed in
the GUI 500. The GUI 500 also includes secondary tabs 515, which
are similar to the secondary tabs of FIG. 1, except that here the
secondary tabs 515 can be used to sort and view files instead of
e-mails. In this embodiment, the work secondary tab 515 is
selected, so that files relating to the user's work are displayed.
The GUI 500 indicates with icon 520 which secondary tab is
selected. In this scenario, the icon 520 is a folder because there
is an actual virtual folder for work related files. The displayed
files in the GUI 500 may be stored on different devices, but can
still be located in the same work virtual folder. The space size
indicator 525 indicates that the work virtual folder contains 2.3
gigabytes of data. In an alternative embodiment, the space size
indicator 525 may also indicate a space remaining that is allotted
to the user or the user's virtual work folder.
[0167] The folders display 530 of the GUI 500 shows that there are
six folders associated with work. The folders display 530 also
shows the six individual folders 540. A folders size indicator 535
indicates that the folders contain 900 megabytes of data. The
folders 540 may be opened to display the contents. The folders 540
may be physical or virtual folders, in that they may indicate
actual physical storage locations or organizational storage
locations.
[0168] The music display 545 of the GUI 500 shows several audio
files 550. While the music display 545 shows that 123 audio files
exist, only a few are actually shown on GUI 500. The system may
display audio files that are most often played by the user, or the
system may use some other criteria to determine which audio files
are displayed. In an alternative embodiment, the system may display
random audio files. If the user wishes to view other audio files,
the user may select the music display 545 title in order to
navigate to a GUI that displays more or all of the audio files. In
an alternative embodiment, the user may be able to scroll through
the list of the audio files 550 to view additional audio files.
[0169] The documents display 555 of the GUI 500 shows several
different documents of different types. The documents size
indicator 565 indicates that the documents take up 200 megabytes of
memory. Example documents displayed in the documents display 555
include document 560 and document 570. Similar to the audio files
above, these documents may be displayed randomly from the 432 total
documents, or the documents may be displayed based on a particular
criteria, such as most recently modified or opened documents.
[0170] Photos are also displayed on the GUI 500. For example, photo
575 and photo 585. For simplicity, photo 585 does not show an
image. However, photo 585 is meant to represent a lower resolution
image than that of photo 575. There are still further lower
resolution images displayed than photo 585. Further, a magnifying
glass icon 580 is shown. In this embodiment, the magnifying glass
icon 580 represents a search function that allows a user to search
only the photos in the work virtual folder. Note that similar icons
are present for the music, documents, and other portions of the GUI
500. In this way, particularly if the photo the user desires is not
currently displayed, the user may locate a particular photo or
photos. Photos may be searched based on the photos' metadata, for
example.
[0171] In such an embodiment, the user may search for music,
documents, photos, or other files specifically. Other search
options are also contemplated. For example, the GUI 500 could, in
an alternative embodiment, have a section for presentation
documents. The user may also be able to perform a presentation
specific search. In another alternative embodiment, GUI 500 could
represent how search results may be displayed. For example, GUI 500
could be displaying relevant search results across a variety of
file types. Advantageously, the results on the GUI 500 are
displayed in a convenient manner that makes it easy for a user to
access results of different types, as opposed to having results of
different data and file types all mixed together. Further, the
document types shown may rank higher than other document types for
purposes of this search. For example, based on the search inputs
from the user, the system may have determined that e-mails and
contacts were not relevant or ranked very low for the search.
Accordingly, the system has not displayed any e-mail or contact
results on the GUI 500. Further, the GUI 500 may be displaying
search results of each file type with the highest rankings. For
example, with regards to the music display 545, only ten files are
displayed, despite there being 123 relevant files to the search.
Accordingly, the ten files displayed in the music display 545 may
be the music files with the highest rankings among the relevant
music search results. Similarly, the other sections on the GUI 500
may also be displaying results that correspond with higher ranking
files of the relevant search results.
[0172] Another advantage of showing search results in a
configuration like the GUI 500 is the multi-stage searching
functionality. A broad search can be performed, yielding the
results shown in the GUI 500. Next, a further narrowing search can
be performed using any of the magnifying glass icons, such as the
magnifying glass icon 580. In this way, the user can search among
the results of the first search in a more pointed way to attempt to
locate the exact file the user is looking for. For example, the
initial search may have been "vacation." The GUI 500 may then
subsequently display vacation photos, songs listened to and
downloaded while on vacation, documents regarding the vacation, and
any other files related to a vacation.
[0173] Upon seeing the results of the search, the user may then
further narrow the results by selecting the magnifying glass icon
580. By doing so, the user may be presented with a dialog that
allows for further searching of the photos displayed on the GUI 500
(and any photos relevant to the original "vacation" search that did
not fit into the GUI 500). For example, the user may further limit
the search with the search term "bridge," to attempt to find a
favorite picture taken on a bridge while the user was on vacation.
If there are any relevant search results to the second search term,
the results can be displayed on a display similar to the GUI 500,
or on a different display altogether, such as the displays shown in
FIG. 6 or 10. A further narrowing search as disclosed here may also
rank search results and display the results accordingly, as
disclosed in various embodiments herein.
[0174] The other display 590 is also displayed on the GUI 500.
There are only two files in the other display 590. For example, the
file 595 is shown here. Files that may commonly be placed in the
other display 590 are files that may not easily fit into the other
categories displayed on the GUI 500, such as folders, music,
documents, and photos.
[0175] FIG. 6 is a representation of a GUI 600 demonstrating a
photo view in accordance with an illustrative embodiment. In
alternative embodiments, fewer, additional, and/or different
components may be displayed on the GUI. The GUI 600 includes
e-mails tab 605 and files tab 610. These tabs may be similar to
tabs 105 and 110 of FIG. 1. Here, the files tab 610 is selected, so
the GUI 600 displays files. On the left-hand side of the screen,
also referred to as a workspace, various storage mediums and types
of files are listed. All of these represent locations of storage
mediums and files that have previously been indexed by the
system.
[0176] The workspace includes a places 615 section, a disks 620
section, a clouds 625 section, a top tags section 630, a search for
635 section, and a representation of current storage utilization
640. The places 615 section includes documents, photos, videos,
attachments, etc. Each of the places 615 are considered virtual
locations. For example, if a user clicked on or otherwise selected
videos, all of the videos that can be accessed by the user would be
displayed regardless of their actual physical location. However,
the videos may still be displayed in the GUI 600 with an indicator
of each video's actual physical location. Here, the photos are
selected, as indicated by the arrow 645. Accordingly, photos are
being displayed on the GUI 600.
[0177] The disks 620 section includes hard disk drives, solid state
drives, or other physical memory of the user that has been indexed
by the system. Here the disks 620 includes a Macitosh HD and an
iphone.TM. 4S, as examples. Unlike the places 615 section, the
selections available in the disks 620 section are not considered to
be a virtual location, but rather a physical location, since the
selections are associated with actual memory on actual physical
devices. Upon selecting one of the disks 620, the system would
display every file located on that memory. In an alternative
embodiment, the system may not display software applications that
are stored on a memory. In this embodiment, the actual file
location of the displayed files is inherently displayed, since a
physical memory has been selected and the arrow 645 would then
point to one of the disks 620. In a further embodiment, the system
could also show, along with individual files displayed from the
memory, where the files are actually located in a file tree
hierarchy within the respective memory.
[0178] The clouds 625 section includes cloud storage locations
where the user may have files stored. Additionally, the user may
have access to files stored on cloud storage locations that have
been placed there by others. The system may index and display those
files as well.
[0179] The workspace also includes a top tags 630 section. The top
tags show tags, which are a type of metadata, that are associated
with files in the various virtual and physical locations. The top
tags 630 section displays tags that are most commonly found among
the various files indexed by the workspace. In an alternative
embodiment, the top tags 630 section may only display the top tags
for the selected location that is selected to be displayed. For GUI
600, the currently selected location is the photos, so in this
embodiment, the top tags for all photos may be displayed. In
another embodiment, the top tags 630 section may not show the most
used tags, but may rather use a different metric for determining
which tags to display. For example, the system could display the
most popular tags among all users of the system, the most popular
tags of all users over a certain time period, the most popular tags
of a similar demographic to the user, the most popular tags among
those who the user has a relationship with such as the user's
e-mail contacts, social network contacts, cloud storage contacts,
etc. The system can also display tags that were most recently used
by the user. If a user clicks on or otherwise selects one of the
tags, whatever files are being displayed are sorted according to
the selected tab. That is, only files that have the particular tag
as metadata are shown. In alternative embodiments, multiple tags
may be selected to sort displayed files in various ways.
Furthermore, the tags that are displayed and how they are used can
be configured by the user.
[0180] The workspace also includes the search for 635 section. The
search for 635 section includes tags today, yesterday, and past
week. If the user selects one of these tags, files that have been
created or added to the system index in that time frame are
displayed. In another embodiment, files that have been modified
within the time frame are displayed. Other time ranges may also be
used in alternative embodiments. In still other embodiments, the
search for 635 section may include other types of tags, such as
names of users who may have authored, edited, sent, commented on,
or opened a file. By providing other types of tags here, the user
could sort and filter documents in even further ways. The tags in
the search for 635 section are all configurable by the user.
[0181] In an illustrative embodiment, a user may select a tag in
the search for section 635, and a search may be automatically
performed. In this embodiment, the search would be performed on
whatever electronic files are already being displayed in the GUI
600. Here, the photos place is selected as indicated by the arrow
645. Accordingly, if the user were to select the tag "yesterday" in
the search for section 635, the photos already displayed in the GUI
600 would essentially be filtered down to photos that have a date
from yesterday. Also note that the photos in the GUI 600 are sorted
by creation date. Even after the photos are searched and sorted by
a tag from the search for section 635, the search results photos
are still displayed according to the current filters, namely that
the photos belong to the photos place and that they are sorted by
creation date. Furthermore, the search results may be displayed in
the GUI 600 according to rankings of the search results, utilizing
the systems and methods disclosed herein.
[0182] In an additional embodiment, the GUI 600 may be used to
display photo search results generally. That is, if a user searched
just for photos or images, the GUI 600 may be utilized to show the
search results for such a search. Also in this embodiment, the
displayed results may be ordered and displayed according to
rankings calculated using the methods and systems disclosed
herein.
[0183] The workspace also includes the representation of current
storage utilization 640. The representation of current storage
utilization 640 demonstrates how much available and how much full
memory the user has. Here, the representation of current storage
utilization 640 demonstrates a total storage usage across all of
the user's available storage mediums listed in the workspace. In an
alternative embodiment, the representation of current storage
utilization 640 may be configured to display usage of only certain
storages, such as cloud storages or the user's iPhone.TM. 4S.
[0184] The photos as selected in the workplace are displayed in
display area 650. The photos displayed include, for example, photos
675 and 680. Each photo in the present embodiment is displayed with
a file title as well. The file title may indicate the name of the
file. In other embodiments, the file title may also indicate other
information, such as the actual physical location where the file is
stored, the status of the device where the file is stored, and
virtual locations the document is a part of, characteristics of the
file, user input information about the file, tags regarding the
file, and/or any other metadata relating to the file. Here, the
user has positioned a pointer from a motion translation device over
the photo 675. As a result, the system has highlighted the photo
675 by placing an additional box around it. In this way, the user
knows which photo will be selected if the user makes an input to
select a photo, such as with a mouse click.
[0185] The GUI 600 also includes a scroll bar 685. The scroll bar
685 allows the user to change the resolution of the photos he or
she is viewing. In other words, if the user adjusts the scroll bar
685, the photos displayed in the display area 650 are enlarged or
reduced depending on which direction the scroll bar 685 is
scrolled. Consequently, if the photos are enlarged, some photos may
be removed from the display area 650 because they can no longer all
fit in the display area 650. Similarly, if the size of the pictures
is reduced, more photos may be displayed in the display area 650.
In an alternative embodiment, the scroll bar 685 may instead be
used to cycle through photos that are displayed in the display area
650. In other words, if the user adjusts the scroll bar 685, the
photos in the display area 650 will change.
[0186] Navigation arrows 655 are also shown on the GUI 600. The
navigation can be used by the user to navigate to different
displays. For example, if the user interacts with the left facing
arrow, the system will display whatever was displayed previous to
the GUI 600. If the user then wishes to return to the GUI 600, the
user can interact with the right facing arrow. If instead the user
wishes to navigate to a GUI that was displayed two pages before the
GUI 600, the user may interact with the left facing arrow
twice.
[0187] A folder hierarchy 660 is also shown on the GUI 600. The
folder hierarchy 660 indicates the current folder location that is
being displayed, and allows the user to navigate to related parent
folders of the currently displayed folder. Here, the folder
hierarchy 660 has three sections, a left, middle, and right
section. Each section may, in other embodiments, have text and/or
an icon within the section indicating the location or function
described herein. The left section may represent an original or
home display. If the user clicks or otherwise interacts with the
left section, the display will be returned to such an original or
home display. The middle section represents a first hierarchical
layer of what is currently being displayed. In this case, the first
layer is places. As such, if the user interacts with the middle
section, the GUI may display documents from all of the places as
shown in the workspace on the left of the GUI 600. The right
section indicates the current display on the GUI 600. If the user
interacts with the right section, nothing will change on the
current display. In this case, the right section merely serves to
remind the user of the current location that is being displayed. In
another embodiment, interacting with the right section may reset
any filters, searches, or modifications that have adjusted what is
displayed in the display area 650. Such adjustments may be from the
user's use of the scroll bar 685, the search for 635 section, the
top tags 630 section, or others. In other words, in this
embodiment, interacting with the right section of the folder
hierarchy 660 leads to resetting the display of the currently
displayed location.
[0188] Sorting sub-tabs 665 are also displayed on the GUI 600. The
sorting sub-tabs 665 include creation date, recently changed, size,
name, and favorite. Additionally, a tabs sub-tab is displayed. The
tabs sub-tab may be used to configure which tabs are displayed in
the sorting sub-tabs 665. Next to the tabs sub-tab is a pin icon.
The user may interact with the pin icon to hide or show the
sub-tabs 665. The sub-tabs 665 can be interacted with by the user
to sort and filter what is shown in the display area 650. In this
embodiment, the creation date sub-tab is selected. Accordingly, the
photos displayed in the display area 650 are photos that have been
created most recently. In another embodiment, the photos displayed
in the display area may be those that have been created the longest
ago.
[0189] FIG. 7 is a representation of a GUI 700 demonstrating a
photo view with a search menu displayed in accordance with an
illustrative embodiment. In alternative embodiments, fewer,
additional, and/or different components may be displayed on the
GUI. The GUI 700 is similar to the GUI 600 in FIG. 6, except that a
search field 705 is being interacted with by a user. The GUI 700
includes the search field 705. Here, no text has been entered by
the user into the search field 705 yet, so a default text of
"SEARCH" is still displayed in the search field 705. However, the
user has activated a cursor in the search field 705. This causes an
auto fill menu 725 to be displayed. The auto fill menu 725 displays
suggestions for potential search results that the user may desire.
In this embodiment, results such as result 710 and 715 are
displayed. Here the user has positioned a pointer over the result
715. As a result, the system displays a preview 720 of the file
represented by the result 715. The preview 720 may include
extracted content of the file and/or metadata of the file.
[0190] The user can type search terms into the search field 705. As
the user types into the search field 705, the auto fill menu 725
will begin to automatically populate with words, terms, and/or
names of electronic files that match or partially match the search
terms being entered into the search field 705. If the user likes
some of the automatically populated search results, the user may
select one to view a preview, like the preview 720, or the user may
select one of the populated search results to open the electronic
file. If the user is not particularly fond of any of the
automatically populated search results, the user may input
something else to indicate a full search is requested and that the
user wishes to see more search results than just those that were
automatically populated. Entering such a search may direct the user
to a search results GUI. For example, the search results GUI might
resemble the interfaces of FIG. 5 or 6 discussed above. For any
searches performed, the system may also order the displayed search
results according to rankings calculated for the results in
accordance with systems and methods disclosed herein.
[0191] FIG. 8 is a representation of a GUI 800 demonstrating an
e-mail interface with a sorted contact list in accordance with an
illustrative embodiment. In alternative embodiments, fewer,
additional, and/or different components may be displayed on the
GUI. The GUI 800 further displays an embodiment for viewing and
writing e-mails in accordance with an illustrative embodiment. The
GUI 800 includes an e-mails tab 805 and a files tab 810. Here, the
e-mails tab 805 is selected.
[0192] The GUI 800 also includes various sections of contacts, such
as the recent contacts 820 section, the lobster 825 section, the
family 830 section, and the friends 840 section. Here, the recent
contacts 815 are displayed, and for example include contact 820.
Here, only a name, e-mail address, and photo or avatar is shown.
However, alternative embodiments may show more or less information
relating to a contact. The lobster 825 contacts are not displayed
on the GUI 800. A downward facing arrow to the left of the lobster
825 indicates that the contacts are hidden. If the user interacts
with the downward facing arrow, the contacts will be displayed and
the downward facing arrow will be displayed as an upward facing
arrow, similar to those of family 830 and friends 840. If the
upward facing arrow of family 830 or friends 840 is interacted
with, those groups of contacts will not be displayed on the GUI
800. In this embodiment, recent contacts 815 cannot be hidden.
However, in other embodiments recent contacts 815 may be hidden.
Additionally, the groups of contacts displayed may be configured
automatically by the system or manually by the user. Contact 835 is
an example contact in the family 830 contacts section. Contact 845
is an example contact in the friends section.
[0193] In the GUI 800, the contact 820 is selected as evidenced by
an arrow 850, and therefore only messages from contact 820 are
shown in the GUI 800. For example, previews 875 and 880 of messages
from contact 820 are shown, as well as full e-mail 890. The
messages can be sorted or organized on the GUI 800 in several ways.
For example, the messages may be sorted or organized with message
type buttons 855. The user can select to display only one or more
message types. Here, the message types the user may select include
e-mails, Skype.TM. messages, Facebook.TM. chats, and iMessages.
Other options may be provided. The e-mails may also be sorted
utilizing sub-tabs 860, which include newest, oldest, important,
archived, and deleted. Here, the newest sub-tab is selected as
evidenced by an arrow 865.
[0194] Draft e-mail section 870 provides the user an opportunity to
respond to a selected e-mail. Draft e-mail section 870 allows the
user to enter text for an e-mail, add attachments, to an e-mail,
format the text of the e-mail, and add recipients to the
e-mail.
[0195] Here, preview 875 has been selected as evidenced by an arrow
885 by the user and is shown as the full e-mail 890. The preview
875 includes only contact information for the sender and some of
the text of the e-mail. The full e-mail 890 shows the contact
information, a more complete contact information 897, photos such
as photo 895, and the full text of the e-mail.
[0196] Additionally, the user for the GUI 800 has positioned a
pointer over preview 880. As a result, the system has displayed a
context menu over a portion of the preview 880. Further, it is
worth noting that the preview 880 is offset in the GUI 800 from the
other preview e-mails. This may indicate that the preview 880 is a
part of an e-mail conversation relating to the preview directly
above it.
[0197] The context menu includes six icons. Starting from the left,
a pin icon can be interacted with to determine whether or not the
e-mail remains on the GUI 800 display. The first left facing arrow
may be interacted with by the user to direct the display to the
first e-mail in an e-mail conversation. The second left facing
arrow may be interacted with to direct the display to the previous
e-mail in an e-mail conversation. Interacting with the right facing
arrow may direct the display to the next e-mail in an e-mail
conversation. In an alternative embodiment, the right facing arrow
may be interacted with to direct the display to the final or most
recent e-mail in an e-mail conversation. The icon second from the
right is a download icon. When interacted with by the user, the
e-mail and/or any attachments in the e-mail will be downloaded. The
last icon is an X icon. If interacted with, that e-mail will be
closed or hidden from view. In an alternative embodiment,
interacting with the X icon will delete the e-mail.
[0198] FIG. 9 is a representation of a GUI 900 demonstrating an
e-mail interface with a sorted contact list and an e-mail
correspondence chain in accordance with an illustrative embodiment.
In alternative embodiments, fewer, additional, and/or different
components may be displayed on the GUI. The GUI 900 is similar to
the GUI 800 shown in FIG. 8, with a few differences, one of which
is that e-mails from multiple contacts are displayed in the GUI
900.
[0199] Further, the GUI 900 includes alert numbers 905 and 910. The
alert number 905 indicates that the user has three unread or new
messages from contact Jane Wilson. The alert number 910 indicates
that the user has one unread or new message from contact Steve
Jones.
[0200] The full view e-mail in the GUI 900 includes a conversation
preview, made up of preview messages 915, 920, and 925. Each of the
preview messages 915, 920, and 925 represent a different message
that has been sent in a conversation relating to the full view
e-mail that is displayed in the GUI 900. Here preview messages 915
and 925 are messages sent by the user, thus designated with "YOU."
The preview message 920 was sent by another contact, whose name
would be displayed where "NAME" is shown on the GUI 900. If a user
interacts with any of the preview messages 915, 920, and 925, that
particular preview message will be displayed and can be reviewed by
the user in detail.
[0201] In an alternative embodiment, the GUI 900 may represent
search results from a user search. For example, the user may have
searched his or her e-mails for messages regarding "vacation." The
e-mails shown on the GUI 900 all pertain to vacation. The e-mails
in the middle of GUI 900 represent the search results, and the
e-mail on the right of the GUI 900 represents a full view of one of
the search result e-mails. For any searches performed, the system
may also order the displayed search results according to rankings
calculated for the results in accordance with systems and methods
disclosed herein.
[0202] FIG. 10 is a representation of a GUI 1000 demonstrating a
single photo view in accordance with an illustrative embodiment. In
alternative embodiments, fewer, additional, and/or different
components may be displayed on the GUI. The GUI 1000 includes an
e-mails tab 1005 and a files tab 1010. On the GUI 1000, the files
tab 1010 is selected. Further, the GUI 1000 here shows a large view
of a photo 1030. The GUI 1000 may be a result of the selection of a
photo from FIG. 6, which is why the photo's virtual folder is
selected as evidenced by the arrow 1015. A view selector 1020 is
also shown on the GUI 1000. The different sections of the view
selector 1020 may be interacted with to change how the photos are
viewed. For example, interacting with the view selector may return
to a view like the one depicted in FIG. 6. Another section of the
view selector 1020 may be interacted with to show a list of photo
previews that displays significantly more metadata about the photos
than is shown in FIG. 6.
[0203] The photo that is being displayed on the GUI 1000 may also
be changed utilizing arrows 1035 and 1040. The user may move
forward or backward in a sequence of photos using the arrows 1035
and 1040. The GUI 1000 also shows tags related to the photo 1030,
such as tag 1055. Additionally, the user may add new tags to a
photo with add your tag 1060.
[0204] The GUI 1000 also displays comments relating to the photo
1030, such as comment 1045. The user, who in this embodiment is
named Eric Miller, may also comment on the photo 1030 using comment
dialog 1050.
[0205] FIG. 11 is a representation of a GUI 1100 demonstrating an
electronic files view with reminders in accordance with an
illustrative embodiment. In alternative embodiments, fewer,
additional, and/or different components may be displayed on the
GUI. The GUI 1100 includes an e-mails tab 1105 and a files tab
1110. On the GUI 1100, the files tab 1110 is selected. Here, the
Google.TM. Drive is selected in the workspace as evidenced by an
arrow 1115. The GUI 1100 includes large file previews, such as
previews 1120 and 1125, as well as listed documents, such as
document 1140.
[0206] Preview 1120 is shown as a single page preview. Preview 1125
displays only the first page of the file as preview, but indicates
that the file has multiple pages. In an alternative embodiment,
this may indicate that there are several copies of the file
throughout the user's devices, or that there are multiple versions
of the file. Each preview is also displayed with a name, such as
name 1130.
[0207] Above the listed documents are sorting tabs 1135. Sorting
tabs 1135 include creation date, recently changed, kind, size, name
and favorite. The user may interact with the sorting tabs 1135 to
manipulate which files are displayed in the listed documents. If
any of the listed documents are interacted with, they may be shown
as a large file preview. The listed documents also includes
reminder notes, such as reminder 1145. The user may make such
reminder notes either for himself or for other users who have
access to the files with the reminders through a cloud storage.
Additionally, reminders may also have been created by someone other
than the user here, and therefore the user may be viewing reminders
created by others. The list of documents also includes a checkbox
1150 and a favorite star 1155. The favorite star 1155 can be
toggled on and off so the user can designate or undesignated a file
as a favorite. The checkbox 1150 may be utilized by the user when
the user wishes to perform the same action on several files. To do
this, multiple files may be checked, or selected, and the action
can then be carried out on all the files that have been
checked.
[0208] In an illustrative embodiment, the GUI 1100 shows how search
results may be presented. For example, the user may have specified
to run a search of his or her Google Drive.TM.. As a result of the
search, the GUI 1100 may be displayed. Here, previews 1120 and 1125
are displayed with more prominence than the files displayed below,
such as the document 1140. Accordingly, based on the search terms,
the system has determined that those files shown above (e.g., the
previews 1120 and 1125) are more relevant than the other search
results (e.g., the document 1140). For any searches performed, the
system may also order the displayed search results according to
rankings calculated for the results in accordance with systems and
methods disclosed herein. For example, here, the search results
that are displayed with previews rank higher than the other search
results displayed on the GUI 1100.
[0209] FIG. 12 is a representation of a GUI 1200 demonstrating a
dynamic birds-eye view of a user's data in accordance with an
illustrative embodiment. In alternative embodiments, fewer,
additional, and/or different components may be displayed on the
GUI.
[0210] The GUI 1200 demonstrates a state of a dynamic view of all
of the user's data, which may be termed a birds-eye view. The
birds-eye view assists the user to understand the structure of all
of the data in his entire network. In addition, this dynamic view
presents any history of file changes to the user.
[0211] The GUI 1200 includes an e-mails tab 1205 and a files tab
1210. Here the Macintosh HD is selected from the workspace as
evidenced by an arrow 1215. Here, the search term "#GREEN" has been
entered into the search field 1220. Hence, any of the documents
represented in the birds-eye view are related to the search term.
However, in other embodiments, a dynamic display like the one in
FIG. 12 may be displayed without search terms being entered. For
example, if there were no search term entered in GUI 1200 but all
else was the same, the various displays in the GUI 1200 would
represent all of the files on the user's Macintosh HD, and not just
the files associated with a search term.
[0212] The groups of files, or amalgamations, shown in the GUI 1200
all represent different things. For example, group 1225 represents
all photos on the user's Macintosh HD that relate to the search
term. If the group 1225 is selected, the photos may be displayed
and examined in greater detail. The relative size and prominence of
the group 1225 conveys information to the user. Here, it may convey
that the user has more pictures than music or video. In another
embodiment, the relative prominence of group 1225 may be an
indicator that the user accesses photos more often than music or
video files. Similarly, groups 1230, 1240, and 1255 may also be
relatively sized based on quantity of files or preference of the
user. In another embodiment, the relative sizes of the groups may
indicate a relevance to the search term or terms. The groups may
also be displayed using different colors. This can make the display
more pleasant to look at, or the colors may indicate certain
properties or relevance of files. The groups 1240 and 1255 indicate
groups of files that correspond to certain hashtags. Groups such as
group 1230 represents groups of files that correspond to certain
contacts of the user.
[0213] In another example, groups 1235 and 1250 are displayed.
Here, all files relevant to the search term from the year 2013 are
represented by group 1235. Group 1235 is displayed more prominently
than the other year groups (here 2011 and 2012) because of a
relevance factor. That is, the system considers the year 2013 to be
more relevant than past years to the user, thus group 1235 is
displayed more prominently. Group 1250 is displayed with a medium
amount of prominence because it may also be considered relevant to
the user, since it contains files from last week. However, group
1250 is still intentionally smaller than group 1235 to indicate the
relatively smaller group of files that are from last week than are
from the entire year 2013. Also displayed on the GUI 1200 is a
search dialog 1245. The search dialog 1245 offers an alternative to
the search field 1220. Any searches performed using the search
dialog 1245 may be dynamically displayed. That is, if a user
searches for something, the user may visibly see groups change
shape, move, be added, disappear, or change color depending on the
relevance of files in each group to the search performed.
Furthermore, groups can be customized and configured by the user or
can be automatically generated by the system.
[0214] The groups displayed on the GUI 1200 can be interacted with
by the user in a unique way. Each of the groups is displayed as a
physical object that can be moved and has mass, speed, inertia,
acceleration, magnetic, gravity, and/or other physical forces. The
groups will therefore move and interact according to physical laws.
A user may interact with the groups by dragging, moving, etc. the
groups around the GUI 1200. The groups themselves also interact
with each other. For example, a very small group may be pulled
toward a larger group through a gravity force. Groups can change
behavior, trajectory, color, and shape while a user moves a pointer
or finger, types a search query, gets search results, moves items,
scrolls through lists, or does other actions. A search can be
performed by dragging a group or groups to the search dialog 1245.
A search term can be removed from the search by dragging it out of
the search dialog 1245. In one embodiment, the system is constantly
estimated each group's importance to the user, and the physical
size of the group indicates the relative importance calculation of
that group to the user. Other facets of a group may also be used to
indicate importance, such as position, shape, content, and dynamic
effects of a group.
[0215] For example, the groups may interact in ways similar to how
physical objects might interact. For example, if a user drags a
group by touching and swiping a group through a touchscreen, any
groups that the dragged group comes into contact with may be bumped
and moved on the display. In other words, no two groups may occupy
the same coordinate space on the GUI 1200, so if one bumps into
another one will have to yield. In this regard, when two groups
collide, the relative inertia, mass, and velocity of the groups may
be taken into account. In other words, if a smaller group bumps a
larger group, the larger group may be considered to have a larger
mass than the smaller group. Thus, the smaller group would be able
to transfer inertia to the larger group that either causes the
larger group to move only slowly, while causing the smaller group
to bounce off the larger group with much more velocity. In an
alternative embodiment, where the user is dragging a group as
described above, the system may give the group super powers. That
is, the user dragging a group may give the group virtually
unlimited mass, causing any group in its path to bounce off of it
and out of the way. In this way, if a user wants to place a group
in a particular place, they cannot be stopped from doing so.
[0216] In another example, certain groups may be subject to certain
magnetic forces. For example, one group may subjected to a force
between itself and a first type of groups, but not a second type of
groups. For example, a photos group may be pulled toward other
groups that contain other audio and/or visual media, such as
videos, podcasts, music, and the like. In this way, by programming
in a magnetic force between similar group types, the similar groups
can be displayed together because of the magnetic forces acting
upon them, as shown in one example in FIG. 12. The system may also
include negative magnetic forces. That, is some groups may also be
programmed to repel each other. For example, a GUI may include
groups related to personal photos and work photos. In order to
prevent the two from mixing or being associated with each other, a
repelling magnetic force may be programmed in.
[0217] Regarding mixing, the user may combine groups using the GUI
1200. For example, a user may specify that one group envelope
another to create a larger group representing the files of both the
original two groups.
[0218] In an embodiment where a user may drag different groups
around the GUI 1200, a user may slow down and stop the movement of
the group before releasing it. In this case, the group may not move
after release, but for other forces acting on it, such as
gravitational or magnetic forces. In another embodiment, the user
may not slow down or stop the movement of a group being dragged
before releasing the group. In this case, the moving group may
maintain its inertia unless acted on by other forces. For example,
the group may crash into other groups, cause the group to bounce
and/or the other groups to move on the GUI 1200.
[0219] Regarding searching, a user may search by either typing into
the search dialog 1245 or dragging other groups to the search
dialog 1245. For example, if the user wishes to see group
representations of files that only relate to the hashtag "sea," the
group 1255 may be dragged by the user to the search dialog 1245.
Once the group 1255 has been placed in the search dialog 1245, the
group 1255 may no longer be subjected to the forces it would
otherwise be subjected to. That is, the group 1255 is stuck in the
search dialog 1245. The system will perform the search by changing
the relative sizes of the other remaining groups displayed on the
GUI 1200 to indicate files that are relevant to the hashtag "sea."
The changing of the sizes may be demonstrated immediately, or may
be animated as a transition over time. Regardless of how quickly
the groups change size to indicate the search results, the forces
present between groups may change, and the groups will react
accordingly. For example, if a group gets bigger, it may push other
groups out of the way, while exerting a larger gravitational force
on the other groups. If a group gets smaller, the gravitational
force exerted on other groups may be reduced. The changes in
gravitational forces based on search results may cause the groups
to actually move on the GUI 1200 after the search is performed.
[0220] Although circles are used to represent groups in FIG. 12,
other shapes may be used in other embodiments. In such embodiments,
the shape of a group may impact how the groups physically interact.
For example, a circle bouncing off a circle in the GUI 1200 may not
happen in the exact same way as a circle bouncing off of a
triangle, the bounce angle may be different due to the different
shape.
[0221] FIG. 13 is a representation of a GUI 1300 demonstrating a
multi-level view including a hierarchical tree structure in
accordance with an illustrative embodiment. In alternative
embodiments, fewer, additional, and/or different components may be
displayed on the GUI. The GUI 1300 includes an e-mails tab 1305 and
a files tab 1310. Here the files tab 1310 is selected. Further, the
Macintosh HD is selected from the workspace. In the workspace, a
pointer has been directed by a user to the attachments/dropbox
location 1315. As a result, the system has displayed a highlighted
box around the attachments/dropbox location 1315. Further, in the
workspace, certain locations also indicate how many files are
physically stored at each location. For example, the Macintosh HD
has 241 files stored on it's hard drive. In an alternative
embodiment, such a number may indicate something different, such as
files indexed from this location within the last week or month.
[0222] The GUI 1300 also includes a search analysis section 1320.
This section indicates trends, data, and/or statistics regarding
the search results. For example, 44 of the search results are
associated with the tag "GREEN" and eleven of the search results
are from files from the year 2012. In alternative embodiments,
other statistics may also be displayed, such as size of files,
author of files, sender of files, number of versions or changes
from original, or importance.
[0223] A search term "REDCAT" has been entered into a search dialog
1325. Accordingly, each one of the files or file representations in
the GUI 1300 are related to the search term. A file tree hierarchy
1330 is shown in the GUI 1300. The file tree hierarchy 1330 shows a
navigable hierarchy that shows folders and sub-folders where
relevant search results are located. Each level of the hierarchy
also includes an indicator 1335 of how many relevant search results
are in each folder. The folders displayed here can represent
physical or virtual folders. A search results section 1340 may show
the contents of a folder selected from the file tree hierarchy
1330. In another embodiment, the system may automatically populate
the search results 1340 with various relevant search results 1360,
such as photo 1350 and document 1365. The search results 1360 may
also be modified or sorted using a drop down menu 1345. Here it is
indicated that the results have been modified.
[0224] The file tree hierarchy 1330 in the GUI shows search results
grouped or clustered together in a way that is convenient for the
user. The file tree hierarchy starts out with a broad folder, "all
results." If the user selects this, all of the results of the
search can be viewed. However, the "all results" folder can be
expanded to reveal further sorted and clustered search results. For
example, in FIG. 13, a work sub-folder is selected and expanded
out. Advantageously, each folder also shows how many search results
are part of that cluster or group. The work folder shows 44
results. Any of the sub-folders, in addition to being expanded, can
also be selected. Once selected, the search results are displayed
in the search results section 1340. Advantageously, the file tree
hierarchy 1330 gives the user of the GUI 1300 a convenient and
simple way to manageably view and deal with large numbers of search
results. For any searches performed, the system may also order the
displayed search results according to rankings calculated for the
results in accordance with systems and methods disclosed
herein.
[0225] There are also subsections of the search results 1360. Here,
the subsections include media and document type results, though
other types may be included in other embodiments such as contacts
and messages. The media results also include a show all button
1347. By interacting with the show all button 1347, all of the
media results may be displayed. In the alternative, if the user
would like to view more results, an arrow 1355 may be interacted
with to scroll through the different media results that are not
currently displayed.
[0226] Here, document 1365 has been selected from among the search
results. Accordingly in preview section 1375, a preview 1380 of the
document 1365 is displayed. Further information 1390 about the
previewed file is also displayed. If a user has previously made a
reminder regarding the file, the reminder is also displayed. Here,
reminder 1385 is displayed along with the preview 1380. At
collaborators 1395, the system may display who has collaborated on
the file with the user. However, in this embodiment, nobody has
collaborated on the file.
[0227] FIG. 14 is a representation of a GUI 1400 demonstrating a
multi-level view including a document preview in accordance with an
illustrative embodiment. In alternative embodiments, fewer,
additional, and/or different components may be displayed on the
GUI. The GUI 1400 shows an alternative display to the GUI 1300 of
FIG. 13. The GUI 1400 includes an e-mails tab 1405 and a files tab
1410. Here the files tab 1410 is selected. The workspace of GUI
1400 also demonstrates how the status of a device or location might
be indicated. At location 1445, external HD for films, there is an
indication that the location is offline. Here search results are
shown as folders, such as folders 1415, 1420, and 1425, and
documents, such as documents 1430 and 1435. Here the documents in
the search results including the documents 1430 and 1435 include an
extracted first page preview. The selected document, document 1430,
also has text from the document displayed as preview 1440, which
may be easier to read than the first page preview.
[0228] FIG. 15 is a representation of a GUI 1500 demonstrating the
contents of a specific device's storage in accordance with an
illustrative embodiment. In alternative embodiments, fewer,
additional, and/or different components may be displayed on the
GUI. The GUI 1500 includes an e-mails tab 1505 and a files tab
1510. Here, the files tab 1510 is selected. The GUI 1500 shows
another alternative embodiment to the GUIs 1300 and 1400 for
displaying search results. Here the preview on the right side of
the GUI 1500 is similar to previous embodiments. However, the
results are displayed as a list of documents and including metadata
regarding the documents. The search results include documents 1525
and 1530. Here, a priority icon 1520 is associated with the
document 1525. This indicates that the user has noted that the
document 1525 is a priority. Further, although not visible in FIG.
15, the priority icon 1520 and other priority icons may be color
coded in order to determine relative priority for different
documents. A check mark icon 1535 also appears next to certain
documents in the search results. Such a check mark icon 1535
indicates that the document has been backed-up on the user's cloud
storage. If the original file is on cloud storage, then a check
mark may indicate that the document has been backed up in a second
location.
[0229] FIG. 16 is a representation of a GUI 1600 demonstrating a
multi-level view including a document preview and an icon based
tagging section in accordance with an illustrative embodiment. In
alternative embodiments, fewer, additional, and/or different
components may be displayed on the GUI. FIG. 17 is a representation
of a GUI 1700 demonstrating an e-mail interface with a sorted
contact list, an e-mail correspondence chain, and an icon based
tagging section in accordance with an illustrative embodiment. In
alternative embodiments, fewer, additional, and/or different
components may be displayed on the GUI. Both the GUI 1600 and the
GUI 1700 display combinations of elements and functionalities
discussed previously with respect to other figures. The GUI 1600
and the GUI 1700 demonstrate alternative embodiments to the
previously discussed figures.
[0230] FIG. 18 is a block diagram illustrating various computing
and electronic storage devices that may be used in accordance with
an illustrative embodiment. In alternative embodiments, fewer,
additional, and/or different components may be included in the
system. FIG. 18 includes a personal computing device 1800, a
portable storage device 1897, a network 125, a cloud storage system
1830, a tablet device 1840, and a mobile electronic device 1865.
The personal computing device 1800 includes a processor 1815 that
is coupled to a memory 1805. The personal computing device 1800 can
store and recall data and applications in the memory 1805. The
processor 1815 may also display objects, applications, data, etc.
on a display/interface 1810. The display/interface 1810 may be a
touchscreen, a game system controller, a remote control, a
keyboard, a mouse, a trackpad, a microphone, a camera, a set of
buttons, a standard electronic display screen, a television, a
computer monitor, or any combination of those or similar
components. The processor 1815 may also receive inputs from a user
through the display/interface 1810. The processor 1815 is also
coupled to a transceiver 1820. With this configuration, the
processor 1815, and subsequently the personal computing device
1800, can communicate with other devices, such as the cloud storage
system 1830 through a connection 1887 and the network 1825.
Although FIG. 18 shows one personal computing device 1800, an
alternative embodiment may include multiple personal computing
devices.
[0231] The tablet device 1840 includes a processor 1855 that is
coupled to a memory 1845. The processor 1855 can store and recall
data and applications in the memory 1845. The processor 1855 may
also display objects, applications, data, etc. on a
display/interface 1850. The display/interface 1850 may be a
touchscreen as most tablets have, but may also include or
incorporate a keyboard, a game system controller, a remote control,
a mouse, a trackpad, a microphone, a camera, a set of buttons, a
standard electronic display screen, a television, a computer
monitor, or any combination of those or similar components. The
processor 1855 may also receive inputs from a user through the
display/interface 1850. The processor 1855 is also coupled to a
transceiver 1860. With this configuration, the processor 1855, and
subsequently the tablet device 1840, can communicate with other
devices, such as the personal computing device 1800 through a
connection 1895 and the network 1825.
[0232] The mobile electronic device 1865 includes a processor 1875
that is coupled to a memory 1885. The processor 1875 can store and
recall data and applications in the memory 1885. The processor 1875
may also display objects, applications, data, etc. on a
display/interface 1880. The display/interface 1880 may be a
touchscreen, a game system controller, a keyboard, a remote
control, a mouse, a trackpad, a microphone, a camera, a set of
buttons, a standard electronic display screen, a television, a
computer monitor, or any combination of those or similar
components. The processor 1875 may also receive inputs from a user
through the display/interface 1880. The processor 1875 is also
coupled to a transceiver 1870. With this configuration, the
processor 1875, and subsequently the viewer electronic device 1865,
can communicate with other devices, such as the tablet device 1840
through a connection 1890 and the network 1825. Although FIG. 18
shows only one mobile electronic device 1865, an alternative
embodiment may include multiple mobile electronic devices.
[0233] FIG. 18 also includes the cloud storage system 1830. The
cloud storage system 1830 may include a number of servers that may
have memory and processors. The cloud storage system 1830 is
connected to the network through a connection 1835 and may
communicate with other devices such as the mobile electronic device
1865.
[0234] FIG. 18 also includes the portable storage device 1897. This
portable storage device 1897 may be a removable USB drive for
example. Since such a portable memory does not have a processor,
the portable storage device 1897 must be connected to a computing
device for the information and files stored on the portable storage
device 1897 can be read by such devices. Accordingly, in this
embodiment, the portable storage device 1897 is plugged into the
personal computing device 1800, which can read the data from the
portable storage device 1897 and communicate its contents or data
related to its contents to any of the other devices that have
access to the network 1825.
[0235] The devices shown in the illustrative embodiment may be
utilized in various ways. For example, any of the connections 1887,
1890, 1895, and 1835 may be varied. Any of the connections 187,
190, 195, and 135 may be a hard wired connection. A hard wired
connection may involve connecting the devices through a USB
(universal serial bus) port (like connection 1899), serial port,
parallel port, or other type of wired connection that can
facilitate the transfer of data and information between a processor
of a device and a second processor of a second device. In another
embodiment, any of the connections 1887, 1890, 1895, and 1835 may
be a dock where one device may plug into another device. While
plugged into a dock, the client-device may also have its batteries
charged or otherwise be serviced. In other embodiments, any of the
connections 1887, 1890, 1895, and 1835 may be a wireless
connection. These connections may take the form of any sort of
wireless connection, including but not limited to Bluetooth
connectivity, Wi-Fi connectivity, or another wireless protocol.
Other possible modes of wireless communication may include
near-field communications, such as passive radio-frequency
identification (RFID) and active (RFID) technologies. RFID and
similar near-field communications may allow the various devices to
communicate in short range when they are placed proximate to one
another. In an embodiment using near field communication, two
devices may have to physically (or very nearly) come into contact,
and one or both of the devices may sense various data such as
acceleration, position, orientation, velocity, change in velocity,
IP address, and other sensor data. The system can then use the
various sensor data to confirm a transmission of data over the
internet between the two devices. In yet another embodiment, the
devices may connect through an internet (or other network)
connection. That is, any of the connections 1887, 1890, 1895, and
1835 may represent several different computing devices and network
components that allow the various devices to communicate through
the internet, either through a hard-wired or wireless connection.
Any of the connections 1887, 1890, 1895, and 1835 may also be a
combination of several modes of connection. The network 1825 may
also include similar components described above with respect to the
connections 1887, 1890, 1895, and 1835. In addition, the network
1825 may include intermediate servers, routing devices, processors,
data traffic management services, and wired or un-wired
connections.
[0236] To operate different embodiments of the system or programs
disclosed herein, the various devices may communicate using the
software systems and methods disclosed herein. Software
applications may be manually installed on the devices or downloaded
from the internet. Such software applications may allow the various
devices in FIG. 18 to perform some or all of the processes and
functions described herein. Additionally, the embodiments disclosed
herein are not limited to being performed only on the disclosed
devices in FIG. 18. It will be appreciated that many various
combinations of computing devices may execute the methods and
systems disclosed herein. Examples of such computing devices may
include smart phones, personal computers, servers, laptop
computers, tablets, blackberries, RFID enabled devices, video game
console systems, smart TV devices, or any combinations of these or
similar devices.
[0237] In one embodiment, a download of a program to the mobile
electronic device 1865 involves the processor 1875 receiving data
through the transceiver 1870 through connection 1890 and the
network 1825. The network 1825 may be connected to the internet.
The processor 1875 may store the data (like the program) in the
memory 1885. The processor 1875 can execute the program at any
time. In another embodiment, some aspects of a program may not be
downloaded to the viewer electronic device 1865. For example, the
program may be an application that accesses additional data or
resources located in a server, or even the cloud storage system
1830 which may include one or more servers. In another example, the
program may be an internet-based application, where the program is
executed by a web browser and stored in a server that is part of
the network 1825 or the cloud storage system 1830. In the latter
example, temporary files and/or a web browser may be used on the
mobile electronic device 1865 in order to execute the program,
system, application, etc. In additional embodiments, the tablet
device 1840 and the personal computing device 1800 may use, store,
or download software applications and web based programs in a
similar way.
[0238] The configuration of the personal computing device 1800, the
portable storage device 1897, the tablet device 1840, the mobile
electronic device 1865, the network 1825, and the cloud storage
system 1830 is merely one physical system on which the disclosed
embodiments may be executed. Other configurations of the devices
shown exist to practice the disclosed embodiments. Further,
configurations of additional or fewer devices than the ones shown
in FIG. 18 may exist to practice the disclosed embodiments.
Additionally, the devices shown in FIG. 18 may be combined to allow
for fewer devices or separated where more than the five devices
shown exist in a system.
[0239] FIG. 19 is a flow diagram illustrating a method 1900 of
displaying representative information of files and e-mails on a GUI
utilizing a two tab display in accordance with an illustrative
embodiment. In alternative embodiments, fewer, additional, and/or
different operations may be performed. Also, the use of a flow
diagram is not meant to be limiting with respect to the order of
operations performed. In an operation 1905, the system determines
the presence of electronic files, such as documents, photos,
videos, messages, and contacts, on a several electronic devices of
a user. Such devices could include a laptop, desktop computer,
external hard drive, tablet, smart phone, etc. The system may also
determine the presence of electronic files that the user has
control of in cloud storage mediums. The index of all these
electronic files may be stored on one of the user's devices or a
cloud storage medium that the user's devices can access.
[0240] In an operation 1910, representative information of the
electronic files that has been indexed is displayed in a single
window configuration. The electronic files are displayed on a first
tab in the single window. In this embodiment, the electronic files
displayed on the first tab do not include messages and contacts.
However, in other embodiments, messages and contacts may be
displayed.
[0241] In an operation 1915, a second tab is also displayed in the
single window configuration. In an operation 1920, an input is
received from the user to navigate to the second tab in the single
window. The input may be through a touchscreen, traditional mouse,
track pad, or other user input device. In an operation 1920, e-mail
files that have been indexed in the operation 1905 are displayed in
the second tab. Accordingly, the method 1900 allows for indexing of
electronic files, and a two tab display of information representing
those files. The two tabs each display information regarding
different types of electronic files. The two tabs can be switched
back and forth quite easily from a single interaction or input from
the user.
[0242] FIG. 20 is a flow diagram illustrating a method 2000 of
determining files a user has access to and displaying
representative information of the files on a GUI in accordance with
an illustrative embodiment. In alternative embodiments, fewer,
additional, and/or different operations may be performed. Also, the
use of a flow diagram is not meant to be limiting with respect to
the order of operations performed. In an operation 2005, a presence
of electronic files on user devices is determined and the files are
indexed. This operation may be performed similarly to operation
1905 of FIG. 19, discussed above.
[0243] In an operation 2010, the system further determines and
indexes any electronic files that have been shared with the user or
that the user has access to. For example, if a document is shared
with the user on a cloud storage medium, the system can determine a
presence of the document and index the document. In another
example, the system may determine photos that have been shared with
the user through photo sharing websites such as Flickr.TM. or
Facebook.TM.. In an additional example, even if a file has not been
shared with the user, its presence may still be determined by the
system as relevant to the users. For example, if a photo has not
been shared with the user, but the user has been tagged in the
photo in an online social network, then the system may determine
the photo relevant and index it. In an operation 2015,
representative information of the indexed files is displayed. The
representative information includes both location information and
descriptive information. That is, information on where a file is
located and what a file is are both displayed.
[0244] FIG. 21 is a flow diagram illustrating a method 2100 of
determining the status of various electronic devices and displaying
that status on a GUI in accordance with an illustrative embodiment.
In alternative embodiments, fewer, additional, and/or different
operations may be performed. Also, the use of a flow diagram is not
meant to be limiting with respect to the order of operations
performed. In an operation 2105, a status of various electronic
devices is determined. For example, a status of an electronic
device may be a connection status, an online status, an offline
status, a passive status, an active status, a connected status, an
unconnected status, a currently operational status, a currently
non-operational status, or a set in a lower functional mode status.
For example, a lower functional mode may be a sleep, hibernate, or
screen saver type mode. In another example, a lower functional mode
may indicate that a device is locked or not logged into. In another
example, a lower functional mode may indicate that a mobile device
is on, but that most of the inputs are currently disabled and a
display is turned off (for example, when someone darkens their
phone while it is in his or her pocket or handbag).
[0245] In an operation 2110, the status of each electronic device
is displayed. The status of each device may be indicated on a GUI.
In an operation 2115, the status of each device is displayed along
with representative information of electronic files. In other
words, for an electronic file stored on an electronic device, the
system will display a status along with the file whether the device
where that file is stored is online or offline.
[0246] FIG. 22 is a flow diagram illustrating a method 2200 of
extracting data from an electronic file and displaying a preview of
the file on a GUI in accordance with an illustrative embodiment. In
alternative embodiments, fewer, additional, and/or different
operations may be performed. Also, the use of a flow diagram is not
meant to be limiting with respect to the order of operations
performed. In an operation 2205, data is extracted from an
electronic file. In an operation 2210, the extracted data is used
to generate a visual preview of the electronic file. For example,
if the file is a document, a smaller version of the first page of
the document may be used as a preview. In another example, if the
file is a photo, a thumbnail of the photo can be generated to use
as a preview. In an operation 2215, the visual preview generated
from the extracted data is actually displayed on a GUI.
[0247] FIG. 23 is a flow diagram illustrating a method 2300 of
receiving an input from a user and displaying a context menu on a
GUI in accordance with an illustrative embodiment. In alternative
embodiments, fewer, additional, and/or different operations may be
performed. Also, the use of a flow diagram is not meant to be
limiting with respect to the order of operations performed. In an
operation 2305, the system receives an input from a motion
translation device. In an operation 2310, when a pointer is located
over representative information of a file and a further input is
received such as a mouse click, a context menu relating to the
electronic file is displayed.
[0248] FIG. 24 is a flow diagram illustrating a method 2400 of
receiving an input from a user an opening an electronic file to be
displayed on a GUI in accordance with an illustrative embodiment.
In alternative embodiments, fewer, additional, and/or different
operations may be performed. Also, the use of a flow diagram is not
meant to be limiting with respect to the order of operations
performed. In an operation 2405, the system receives an input from
a motion translation device. In an operation 2410, when a pointer
is located over representative information of a file and a further
input is received such as a mouse click, the electronic file is
opened from an online device. In other words, a file is opened from
a device that is currently accessible. The system may open the file
with a predetermined primary application or a predetermined
secondary application. For example, a Microsoft Word.TM. document
may be opened and viewed in Word.TM. or Google.TM. Docs. The system
may have a predefined preference for Microsoft Word.TM., but if
that application is not available, the system can attempt to open
the file with other applications.
[0249] FIG. 25 is a representation of a GUI 2500 demonstrating a
photo view overlay of a dynamic birds-eye view of a user's data in
accordance with an illustrative embodiment. In alternative
embodiments, fewer, additional, and/or different components may be
displayed on the GUI. The GUI 2500 demonstrates a state of a view
similar to the GUI 1200 discussed above with respect to FIG. 12.
However, the GUI 2500 shows an overlay 2540.
[0250] The GUI 2500 includes an e-mails tab 2505 and a files tab
2510. Here the Macitosh HD is selected from the workspace as
evidenced by an arrow 2515. Also here, the search term "#GREEN" has
been entered into the search field 2520. Hence, in this embodiment,
the photos shown in the overlay 2540 are related to the search
term. However, in other embodiments, photos or other electronic
files may be shown in the overlay 2540 that are related to other
search terms. In still other embodiments, the files shown in the
overlay 2540 may not be related to a particular search term, but
may, for example, represent all of a user's photos (e.g., if the
user interacted with the group 1225 shown in FIG. 12). In other
embodiments, the files could represent the selection of or
interaction with any of the groups shown in FIG. 12. If a search
term has been entered, as here, then the files shown in the overlay
2540 will relate to the search term and the selected group. For
example, if a user selected the group 1235 from FIG. 12., the
overlay 2540 would display files related to the search term
"#GREEN" and the year 2013. Here, the user has selected or
interacted with the group 1225, which causes photos related to the
search term to be displayed.
[0251] The overlay 2540 includes several photos on display,
including photos 2530 and 2535. The photos initially displayed in
the overlay, including the photos 2530 and 2535, are higher ranking
than other photos relating to the search terms. In overlay
description 2525, the GUI 2500 displays that photos are selected,
and that there are 112 photos relevant to the search term here. The
photos displayed in the overlay 2540 are photos that rank higher
than the other relevant photos. The ranking of the photos may be
calculated using any of the ranking calculation systems and methods
disclosed herein.
[0252] The photos 2530 and 2535 displayed in the overlay 2540 may
be interacted with. For example, the photos may be selected and
viewed in greater detail. For example, selecting a photo may
navigate the user to a GUI such as the GUI 1000 discussed above
with respect to FIG. 10. In another embodiment, selecting a photo
may allow the user to modify the metadata associated with the file,
such as the tags of the file. In another embodiment, selecting a
file from the overlay 2540 may cause the system to open the file
using a separate software application. In one embodiment, the
overlay may be a dynamic group similar to the groups described
above with respect to FIG. 12. In another embodiment, a user may be
able to interact with the overlay 2540 to resize the overlay itself
and/or the previewed files displayed within the overlay 2540. The
user may also be able to interact with the displayed files in the
overlay 2540 to perform file management functions. For example, the
user may be able to move files to different places. In one
embodiment, the user may accomplish a moving of a file by selecting
and dragging that file to one of the locations or places displayed
in the workspace on the left of the GUI 2500.
[0253] In another alternative embodiment, the overlay may reflected
multiple selected groups that have been selected by the user. For
example, if the user selected groups 1255 and 1225 from FIG. 12,
the overlay 2540 will display photos that have the tag "#SEA." In
another embodiment, the overlay 2540 may display electronic files
(or representative information of those electronic files) that
relate to an interaction with the search dialog 1245 of FIG. 12.
For example, if the user enters text into the search dialog 1245,
the overlay 2540 will be displayed to show files related to that
text. In another embodiment, a group or groups may be dragged and
dropped on the search dialog 1245. In this embodiment, the overlay
2540 may display files related to the group(s) that were dragged to
the search dialog 1245. Further, the user may search using a
combination of text entry and dragging groups to the search dialog
1245.
[0254] FIG. 26 is a flow diagram illustrating a method 2600 of
performing a search and smart ranking the results in accordance
with an illustrative embodiment. In alternative embodiments, fewer,
additional, and/or different operations may be performed. Also, the
use of a flow diagram is not meant to be limiting with respect to
the order of operations performed. In an operation 2605, the system
receives a search input. The search input may be text input by a
user, a tag selection by a user, or other search input method as
disclosed herein.
[0255] In an operation 2610, the system searches for electronic
files related to the search input. As disclosed herein, the system
may search various electronic devices, storage mediums, cloud
storage systems, social networks, file sharing systems, etc. In an
operation 2615, the system determines that there are electronic
files that are related to the search input in the various locations
searched. In an alternative embodiment, the system may search an
index of electronic files that are stored on multiple devices,
rather than search the various multiple devices themselves. In an
operation 2620, the system calculates a ranking for each of the
electronic files found that were related to the search input. The
rankings may be calculated in various ways according to various
methods and embodiments as disclosed herein.
[0256] FIG. 27 is a flow diagram illustrating a method 2700 of
performing a search an looking up smart rankings for the results in
accordance with an illustrative embodiment. In alternative
embodiments, fewer, additional, and/or different operations may be
performed. Also, the use of a flow diagram is not meant to be
limiting with respect to the order of operations performed. In an
operation 2705, the system receives a search input as disclosed
herein. In an operation 2710, the system searches for electronic
files related to the search input as disclosed herein.
[0257] In an operation 2715, the system determines the presence of
electronic files related to the search input as disclosed herein.
In an operation 2720, the system looks up ranks of the electronic
files that were determined to be related to the search input. In
this embodiment, the general ranks of each electronic file have
already been calculated and are maintained in a file rank
index.
[0258] In an operation 2725, the system adjusts the ranks based on
search specific factors. For example, if an electronic document is
stored on an electronic device that is not currently online, that
may impact the ranking as disclosed herein. In another example, the
content of a file and the search input may be a very close match,
yielding a higher ranking as disclosed herein. Other factors may
also be used to adjust the ranking as disclosed herein.
[0259] FIG. 28 is a flow diagram illustrating a method 2800 of
performing a search, smart ranking the results, and displaying the
results on a GUI in accordance with an illustrative embodiment. In
alternative embodiments, fewer, additional, and/or different
operations may be performed. Also, the use of a flow diagram is not
meant to be limiting with respect to the order of operations
performed. In an operation 2805, the system performs a search as
disclosed herein.
[0260] In an operation 2810, the system calculates ranks for the
search results utilizing systems and methods disclosed herein. In
an operation 2815, the system displays on a graphical user
interface (GUI) the search results. Displaying the search results
includes displaying representative information of the electronic
files that were found during the search as being related to a
search input.
[0261] In an operation 2820, the search results displayed on the
GUI are ordered according to the calculated ranks associated with
each electronic file found in the search. For example, electronic
files with higher rankings may be displayed toward the top of the
GUI, while the lower ranked files may be displayed further toward
the bottom of the GUI. In an operation 2825, the system further
displays representative information and/or previews of the
electronic files and/or displays certain files more prominently
than others based on the calculated ranks of each electronic file.
For example, the system may display a preview and other
representative information largely for a highly ranked electronic
file. In contrast, a lower ranked electronic file may have
displayed smaller representative information and the representative
information of the lower ranked electronic file may not include a
preview.
[0262] FIG. 29 is a flow diagram illustrating a method 2900 for
performing a search of contacts and messages and smart ranking the
results in accordance with an illustrative embodiment. In
alternative embodiments, fewer, additional, and/or different
operations may be performed. Also, the use of a flow diagram is not
meant to be limiting with respect to the order of operations
performed. In an operation 2905, the system receives a search
input. In an operation 2910, the system searches for electronic
files related to the search input.
[0263] In an operation 2915, the system determines messages (e.g.,
e-mail messages, chats, instant messages, SMS messages, etc.)
and/or contacts that are related to the search input. In an
operation 2920, the system calculates ranks of the messages and/or
contacts based on an importance level of the contacts. For example,
if a user frequently corresponds with a particular contact, that
contact information and any messages associated with that contact
may be ranked more highly during a search than contact information
or messages associated with a contact the user corresponds with
sparingly. Other methods of calculating an importance level of
contacts and their associated correspondence are disclosed
herein.
[0264] In an illustrative embodiment, any of the operations
described herein can be implemented at least in part as
computer-readable instructions stored on a computer-readable medium
or memory. Upon execution of the computer-readable instructions by
a processor, the computer-readable instructions can cause a
computing device to perform the operations.
[0265] The foregoing description of illustrative embodiments has
been presented for purposes of illustration and of description. It
is not intended to be exhaustive or limiting with respect to the
precise form disclosed, and modifications and variations are
possible in light of the above teachings or may be acquired from
practice of the disclosed embodiments. It is intended that the
scope of the invention be defined by the claims appended hereto and
their equivalents.
* * * * *