U.S. patent application number 14/579029 was filed with the patent office on 2015-07-02 for method and system for dossiers for data units.
The applicant listed for this patent is ABBYY Development LLC. Invention is credited to Konstantin Anisimovich, David Yan.
Application Number | 20150186369 14/579029 |
Document ID | / |
Family ID | 53481964 |
Filed Date | 2015-07-02 |
United States Patent
Application |
20150186369 |
Kind Code |
A1 |
Yan; David ; et al. |
July 2, 2015 |
Method and System for Dossiers for Data Units
Abstract
An illustrative method according to a set of instructions stored
on a memory of a computing device includes identifying, by the
processor, a plurality of data units associated with a user. The
plurality of data units are stored on a plurality of electronic
devices. The plurality of data units are accessible through a
plurality of platforms. The plurality of data units are a plurality
of different data types. The method further includes determining,
by the processor, for a first data unit accessible through a first
platform, connection data between the first data unit and a second
data unit accessible through a second platform. The method further
includes generating, by the processor, a dossier for the first data
unit, where the dossier includes representative information of the
first data unit and the connection data.
Inventors: |
Yan; David; (Portolla
Valley, CA) ; Anisimovich; Konstantin; (Moscow,
RU) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
ABBYY Development LLC |
Moscow |
|
RU |
|
|
Family ID: |
53481964 |
Appl. No.: |
14/579029 |
Filed: |
December 22, 2014 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61922597 |
Dec 31, 2013 |
|
|
|
Current U.S.
Class: |
715/201 |
Current CPC
Class: |
G06F 16/168 20190101;
G06F 16/907 20190101; G06F 16/40 20190101; G10L 15/1815 20130101;
G06F 16/285 20190101; G06F 16/156 20190101; G06F 40/12 20200101;
G06F 3/04817 20130101; G06F 3/04842 20130101; G06F 16/24578
20190101; G06F 16/5866 20190101; G06F 16/248 20190101; G06F 16/2246
20190101; G06F 16/16 20190101; G06F 40/103 20200101; G06F 16/9535
20190101; G06F 16/5846 20190101; G06Q 10/107 20130101; G06F 16/14
20190101; G06F 16/26 20190101 |
International
Class: |
G06F 17/30 20060101
G06F017/30; G06F 17/22 20060101 G06F017/22; G06F 17/21 20060101
G06F017/21 |
Claims
1. A method according to a set of instructions stored on a memory
of a computing device, the method comprising: identifying, by a
processor, a plurality of data units associated with a user,
wherein the plurality of data units are stored on a plurality of
electronic devices, the plurality of data units are accessible
through a plurality of platforms, and the plurality of data units
are a plurality of different data types; determining, by the
processor, for a first data unit accessible through a first
platform, connection data between the first data unit and a second
data unit accessible through a second platform; and generating, by
the processor, a dossier for the first data unit, wherein the
dossier comprises representative information of the first data unit
and the connection data.
2. The method of claim 1, further comprising displaying, by the
processor, on a graphical user interface (GUI), the dossier for the
first data unit, wherein the representative information comprises
descriptive information relating to the first data unit.
3. The method of claim 2, further comprising displaying, by the
processor, dossiers for the plurality of data units in a single
window of the GUI.
4. The method of claim 1, wherein the connection data indicates a
relationship between the user and an originator of the first data
unit.
5. The method of claim 4, further comprising assigning, by the
processor, a heuristic avatar to the dossier that indicates the
originator of the first data unit.
6. The method of claim 5, wherein assigning the heuristic avatar
comprises identifying, from one of the plurality of platforms, an
image to use as the heuristic avatar.
7. The method of claim 1, wherein the connection data indicates a
theme of the plurality of data units.
8. The method of claim 1, wherein the connection data indicates an
importance of the first data unit.
9. The method of claim 1, wherein the connection data is a
recommendation to perform an action relating to the first data
unit.
10. The method of claim 1, further comprising generating, by the
processor, an ontology of the plurality of data units by:
generating a plurality of dossiers for each of the plurality of
data units; and determining a plurality of connection data between
the plurality of data units using the plurality of dossiers.
11. The method of claim 10, further comprising determining, by the
processor, a ranking for each of the plurality of data units based
on the plurality of connection data.
12. The method of claim 11, further comprising: determining, by the
processor, that a first rank for the first data unit is higher than
a third rank for a third data unit; and displaying, by the
processor, on a graphical user interface (GUI), the dossier for the
first data unit more prominently than a third dossier for the third
data unit.
13. The method of claim 1, further comprising determining, by the
processor, a tag for the first data unit.
14. The method of claim 13, wherein the tag is determined based on
the representative information of the first data unit.
15. The method of claim 13, wherein the tag is determined based on
the connection data.
16. The method of claim 1, wherein the dossier further comprises a
preview of the first data unit.
17. The method of claim 1, further comprising determining, by the
processor, an accessibility level of the first data unit based on:
a type of electronic device the first data unit is stored on, a
file type of the first data unit, a software application type
utilized to display or modify the first data unit, a size of the
first data unit, or an availability to the processor of the first
data unit.
18. The method of claim 17, wherein the dossier of the first data
unit further comprises the accessibility level.
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: identify a plurality of data units
associated with a user, wherein the plurality of data units are
stored on a plurality of electronic devices, the plurality of data
units are accessible through a plurality of platforms, and the
plurality of data units are a plurality of different data types;
determine, for a first data unit accessible through a first
platform, connection data between the first data unit and a second
data unit accessible through a second platform; and generate a
dossier for the first data unit, wherein the dossier comprises
representative information of the first data unit and the
connection data.
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 identify a plurality of data
units associated with a user, wherein the plurality of data units
are stored on a plurality of electronic devices, the plurality of
data units are accessible through a plurality of platforms, and the
plurality of data units are a plurality of different data types;
instructions to determine, for a first data unit accessible through
a first platform, connection data between the first data unit and a
second data unit accessible through a second platform; and
instructions to generate a dossier for the first data unit, wherein
the dossier comprises representative information of the first data
unit and the connection data.
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 identifying, by
the processor, a plurality of data units associated with a user.
The plurality of data units are stored on a plurality of electronic
devices. The plurality of data units are accessible through a
plurality of platforms. The plurality of data units are a plurality
of different data types. The method further includes determining,
by the processor, for a first data unit accessible through a first
platform, connection data between the first data unit and a second
data unit accessible through a second platform. The method further
includes generating, by the processor, a dossier for the first data
unit, where the dossier includes representative information of the
first data unit and the connection data.
[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 identify a plurality of
data units associated with a user. The plurality of data units are
stored on a plurality of electronic devices The plurality of data
units are accessible through a plurality of platforms. The
plurality of data units are a plurality of different data types.
The processor is further configured to determine, for a first data
unit accessible through a first platform, connection data between
the first data unit and a second data unit accessible through a
second platform. The processor is further configured to generate a
dossier for the first data unit, where the dossier includes
representative information of the first data unit and the
connection data.
[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 identify a plurality of data units
associated with a user The plurality of data units are stored on a
plurality of electronic devices. The plurality of data units are
accessible through a plurality of platforms. The plurality of data
units are a plurality of different data types. The instructions
further include instructions to determine, for a first data unit
accessible through a first platform, connection data between the
first data unit and a second data unit accessible through a second
platform. The instructions further include instructions to generate
a dossier for the first data unit, where the dossier includes
representative information of the first data unit and the
connection data.
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] Illustrative embodiments will hereafter be described with
reference to the accompanying drawings.
[0007] FIG. 1 is a flow diagram illustrating a method of smart
analysis of contacts across a plurality of devices in accordance
with an illustrative embodiment.
[0008] FIG. 2 is a flow diagram illustrating a method of smart
analysis of contacts using ranked data in accordance with an
illustrative embodiment.
[0009] FIG. 3 is a block diagram illustrating a computer that can
be used to generate dossiers for data units in accordance with an
illustrative embodiment.
[0010] FIG. 4 is a representation of a graphical user interface
(GUI) displaying the smart analysis results and dossiers in
accordance with an illustrative embodiment.
[0011] FIG. 5 is a representation of a GUI demonstrating a theme
based dossier view in accordance with an illustrative
embodiment.
[0012] FIG. 6 is a representation of a GUI demonstrating an e-mail
interface showing a dossier relating to a contact in accordance
with an illustrative embodiment.
[0013] FIG. 7 is a representation of a GUI demonstrating a dynamic
birds-eye view of various dossier summaries in accordance with an
illustrative embodiment.
[0014] FIG. 8 is a representation of a GUI demonstrating a photo
view overlay dossier of a dynamic birds-eye view of a user's data
in accordance with an illustrative embodiment.
[0015] FIG. 9 is a block diagram illustrating various computing and
electronic storage devices that may be used in accordance with an
illustrative embodiment.
[0016] FIG. 10 is a flow diagram illustrating a method of
generating a dossier for data units in accordance with an
illustrative embodiment.
[0017] FIG. 11 is a flow diagram illustrating a method of
generating an ontology of data units and ranking the data units in
accordance with an illustrative embodiment.
DETAILED DESCRIPTION
[0018] Described herein are illustrative embodiments for methods
and systems dossiers for data units. A user may have various data
units of different types, for example documents, e-mails, messages,
images, videos, and/or contacts. The various data units may be
stored on many different electronic devices and may be accessible
through a variety of platforms. For example, some documents may be
stored as files accessible by a particular word processing
software, such as Google Docs.TM. or Microsoft Word.TM.. In another
example, certain messages may be accessible through other
platforms. Text (e.g., short message service or SMS) messages may
be accessible through a smart phone's texting capabilities. Chat
messages may be accessible through a social network such as
Facebook.TM.. Other messages may be accessed through platforms such
as an e-mail exchange or messaging applications (apps) such as
GroupMe.TM. or WhatsApp.TM.. Contacts may be accessible through a
phone's contact list, an e-mail accounts contact list, or other
type of contact list. In another embodiment, the system may
determine contacts and assemble its own contact list based on
messages and/or e-mails sent to or from a user. In another
embodiment, the system may also find contacts by searching a social
network for contacts, including contacts' contact information that
may be listed on the social network.
[0019] The various data units of or related to a user may be stored
on a plurality of 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.
[0020] A system may also determine for a first data unit accessible
through a first platform, some connection data between the first
data unit and a second data unit. For example, an e-mail may be
associated with the contact information of the originator or sender
of the e-mail. In other words, the system may establish or
determine that a connection exists between the e-mail and the
contact. In some embodiments, this connection may be established
across multiple platforms and/or devices. For example, a text
message on a user's phone from a contact named "Amy T." may be
determined to be connected to a person named "Amy Timothy" that is
friends with the user on a social network such as Facebook.TM.. The
connection between "Amy Timothy" on the social network and the text
message on the phone can be used to aggregate data in helpful ways.
For example, information regarding the text message (such as the
originator or sender, theme of the text message, dates and/or times
mentioned in or associated with the text message, questions asked
in the text message, etc.) as well as the connection data can be
used to generate a dossier relating to the first data unit, here
the text message. In other embodiments, the dossier may be
generated regarding a particular contact and may include
information regarding a myriad of messages to/from that contact. In
another embodiment, a dossier may be generated for a particular
document, which could include connections regarding who has
modified the document, who sent the document to the user, as well
as information about the document itself (type, size, name, subject
matter, etc.).
[0021] In each embodiment, the dossier may be used to synthesize
large amounts of information to make it easier for a user to deal
with large amounts, of messages, contacts, data, documents, etc.
that are spread among multiple online platforms, devices, and data
types. For example, the system may generate a dossier related to a
particular contact, such as "Amy Timothy" mentioned above. The
dossier may include relevant representative information of the
contact, such as name, contact information, job title, and any
other representative or descriptive information regarding the
contact. Such information may be gleaned by the system, for
example, when the system determines that "Amy T." in the user's
phone is the same as "Amy Timothy" from the social network. The
system can then link additional information about Amy from the
social network to texts that Amy has sent/received. Furthermore,
any other interactions with Amy beyond the text messages can also
be documented and summarized in the dossier.
[0022] Advantageously, when connections are established and a
dossier is generated, the system can aggregate the information
regarding data units in helpful ways. For example, the system can
determine which contacts a user most often corresponds with total
across a variety of platforms. Additionally, the system can
determine which mediums, platforms, devices, etc. the user has
interacted with a particular contact through more often. That is,
the system can quantify exactly how and with whom a user is
interacting. A dossier of a contact may also include information
regarding documents or files that the user and the contact have
collaborated on, sent and/or received from each other, documents
that the contact is mentioned in, etc. In other embodiments, a
dossier may be directed to a document itself. The dossier may then
include information about who has modified the document,
send/received the document across multiple platforms, etc.
Additionally, a dossier about a document may include information
about similar documents. For example, the system may recognize
themes or subject matters in the name or content of a document. The
system may then find similar themes or subject matters relating to
other documents or data units and determine connection data between
the two documents. The system can then include information about
those other related documents or data in the dossier of the first
document. In another example, the system may recognize connections
for a dossier such as common authors of different data units or
proximity of creation and/or modification time for data unit.
[0023] In another embodiment, a dossier may be assembled that
relates to a particular theme. For example, the system may assemble
all data units such as contacts, documents, images, videos, and/or
messages that are related to work into a dossier. Other examples of
themes that dossiers are assembled for may include a hobby, a
period of time, particular subject matter such as a vacation or tag
such as a hash tag, particular electronic device(s), cloud storages
or combinations of electronic devices and/or cloud storages,
etc.
[0024] Advantageously, the connections and aggregate connections
inherent in generating and assembling dossiers can yield
information that can be used to rank the subject matter of
different dossiers. For example, contacts can be ranked by the
system using the dossiers of contacts to determine which contacts
are favorites or preferred by a user. Information relating to a
favorite or preferred contact may be displayed on a graphical user
interface (GUI) more prominently than information from a
non-favorite contact.
[0025] The dossier of a data unit may also include information such
as tags relating to the data unit. A tag may be already present as
metadata of a data unit and can be included in a dossier. In other
embodiments, the system may generate tags for the data unit. A
generated tag may indicate any of the information disclosed herein
such as author, originator, sender, theme, preference, contact,
date or time, rank, priority, preference, or other information
relating to a data unit. In another embodiment, a user may define a
tag for a data unit. A tag may also be determined by the system
based on a determined connection between a first data unit and a
second data unit.
[0026] The system may also utilize a generated dossier or dossiers
to make recommendations to a user. For example, the system may
determine that a message or messages from a particular contact have
not been responded to by the user. The system may even determine a
particular request that the contact has made of the user. In
another embodiment, a recommendation may be based in whole or in
part on a data unit's ranking, which may be determined as disclosed
herein. For example, if a user is searching the system for "Irish
Music," the system may recommend a song that was mentioned in a
chat with a highly ranked contact over other music stored on the
user's hard drive that merely has metadata that indicates that a
particular song is of the Irish genre.
[0027] The system may display a single dossier on a graphical user
interface (GUI). In another embodiment, the system may display
multiple dossiers on a GUI. In this embodiment, some dossiers may
be displayed more prominently or in more detail than others. In
such an embodiment, the more prominently displayed dossiers may be
selected by the system to be displayed more prominently based on
rankings or preferences that the system determines as disclosed
herein.
[0028] The system may also determine an accessibility level of a
data unit, which may be included in the dossier of the data unit.
For example, the system may determine accessibility level data such
as a type of electronic device a data unit is stored on, a file
type of a data unit, a software application type utilized to
display or modify a data unit, a size of the data unit, and/or an
availability to the processor of a data unit (that is, is the
location where the data unit is stored currently accessible. Such
information may be displayed on a GUI as part of a dossier. In
other embodiments, the information may be used to determined
preferences and rankings of data units. For example, data units
with lower accessibility levels may not be highly ranked. Since the
system can be accessed across multiple platforms and devices, the
accessibility level may be impacted by what applications are needed
to partially or fully access/modify a data unit (and whether that
application is available on the device the user is currently
using). In other words, the availability level may be determined in
real time based on factors like what device the user is currently
using. This may change the dossier, and subsequently
recommendations and rankings depending on what device the user is
using at the time.
[0029] Similarly, the system may also take into account other real
time criteria when generating dossiers and calculating rankings and
making recommendations. For example, the system may, as discussed
above, determine a preferred contact address or mode for a
particular contact. However, in an alternative embodiment, the
system may determine that a user prefers to interact with that
particular contact using text messaging when the user is using a
phone, while the user prefers e-mail when a laptop computer is
being used. Accordingly, the system may determine different
connections regarding different electronic devices.
[0030] In one embodiment, the system may also include a preview of
a data unit in the dossier (particularly if the dossier is
displayed on a GUI). For example, if the data unit is a contact,
the dossier may display the contacts name, a recent message
exchange with the contact, and the preferred method or methods of
contact with the contact. In another embodiment, the data unit may
be an electronic file such as a spreadsheet or a song. In these
embodiments, the preview may include an icon indicating the file
type and the name of the file.
[0031] 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 units/files, while managing the data
units/files as well.
[0032] 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.
[0033] 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.
[0034] In addition, the embodiments disclosed herein provide file
and/or data management functionality, such as opening, copying,
moving, deleting, archiving, sharing, and editing. 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.
[0035] 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.
[0036] 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 data units such as (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. Herein, the
term data unit may refer to any type of electronic file (and
similarly wherever files are mentioned herein a file is also a data
unit).
[0037] 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 (and those associated data units). 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.
[0038] 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. For example, an avatar may be selected after a connection as
disclosed herein is made. For example, the system may connect a
contact to a profile on a social network. The system may use a
picture (presumably) of the contact from the social network profile
as an avatar for the contact. 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).
[0039] In one embodiment, for each contact that a user has, a kind
of dossier can be assembled for each contact as disclosed herein.
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.
[0040] 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.
[0041] Herein, use of the terminology contact may refer to an
individual or an organization. Herein, an organization may be an
ontological object. Dossiers as disclosed herein may be created for
ontological objects. 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.
[0042] 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. For example, when changes in the
folder are detected, the user may then receive notifications
concerning these changes.
[0043] 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.
[0044] 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
example, dossiers may be used to merge 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. A unique ID and/or project tags may be
associated with a particular dossier for a particular data unit,
theme, or ontological object.
[0045] 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.
[0046] 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.
[0047] 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.
[0048] 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.
[0049] 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. Searching as disclosed herein may be performed to
generate a dossier. Such searches may be performed automatically by
the system, or the system may create dossiers based on user
searches and search terms. 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.
[0050] 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.
[0051] 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.
[0052] In an illustrative embodiment, data to or from each contact
can be automatically assigned a rank of importance. Dossiers or the
information in dossiers may be ranked as disclosed herein. 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.
[0053] 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.
[0054] 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."
[0055] 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.
[0056] 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.
[0057] 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.
[0058] 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.
[0059] 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.
[0060] The smart analysis of the content includes searching and
parsing through all of the content related to the contacts of the
user to seamlessly organize the content for display. The content
includes at least the email data and the files, multiple social
networks, data structures, email addresses, signatures of the email
data, messages, SMS data, phone calls, text messages, video files,
audio files, and images.
[0061] The analyzed content and summary may be displayed in a
visual representation in a window of a Graphical User Interface
(GUI), wherein the visual representation is visually multi-platform
with other visual representations of the information from the
plurality of devices to the user.
[0062] 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.
[0063] 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.
[0064] 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).
[0065] 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.
[0066] 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.
[0067] 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.
[0068] 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.
[0069] FIG. 1 is a flow diagram illustrating a method 100 of smart
analysis of contacts across a plurality of devices 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 102 the method
100 beings. In an operation 104, content of email data and files of
the contacts of a user are analyzed for organization of the
content. In other words, the system can examine the actual text of
an e-mail as well as the other information related to an e-mail,
such as date, sender, receiver, etc. Analyzing the content includes
searching and/or parsing through all of the content related to the
data units including contacts of the user to seamlessly organize
the content for display. The content includes at least the email
data and the files, a plurality of social networks, data
structures, email addresses, signatures of the email data,
messages, SMS data, phone calls, text messages, video files, audio
files, images, and the like. The smart analysis on the content of
the contacts is performed whether a particular one of the plurality
of devices is online or offline, passive or active, connected or
unconnected, currently operational or turned off, or set in a lower
functional mode. In one embodiment, the system may search the
contents of an e-mail so that additional connections to other data
units may be determined. For example, names of contacts other than
the sender or receiver of the e-mail may be contained within the
text of the e-mail. In this manner, the system can determine a
connection between the e-mail and the contact mentioned in the
e-mail for generating dossiers. In another example, the sender or
receiver may go by a nickname which is not related to their e-mail
alias. However, the nick name may be used in the e-mail, such that
the system can identify the nickname from the e-mail and establish
additional connections using the nickname. For example, a user may
have a social network profile using the nickname which will now be
easier to locate and determine a connection to after the system has
identified the nickname in the e-mail.
[0070] In an operation 106, the method 100 searches in a first
social network the content of the email data and the files of a
defined number of the contacts in communication with the user
during a time period. For example, the defined number is at least
50 contacts. In other words, the system may search for the last 50
contacts to e-mail the user in a social network. This number may be
dynamically altered and/or changed by an application and/or user.
In an operation 108, the method determines whether the defined
number of the contacts has been in communication with the user
during a predefined time period. If the contacts are found in the
social network (yes), e-mail addresses are collected and the system
determines which e-mail addresses are preferable, non-preferable,
incorrect, etc. in an operation 112. If not all the contacts are
found in the first social network (no), the method 100 searches in
a second social network the content of the email data and the files
of contacts having similar names of the defined number of the
contacts in communication with the user during the determined time
period in an operation 110. In an operation 112, the method 100
collects email addresses of the contacts and identifies those of
the emails addresses that are both preferable, non-preferable, and
incorrect email addresses.
[0071] In an operation 114, the method 100 builds ontology of
contacts, which are in communication with the user, by analyzing
the contents in one of a plurality of social networks, data
structures, email addresses, and signatures of email data. For
example, the signature of e-mail (or a social network profile) data
may indicate the company a contact works for, so that contact can
be easily determined to have a connection with that company for
creation of dossiers. In another example, the system may determine
from a social network an interest or other profile or demographic
(such as city the contact lives in, age, profession, etc.) data
that can be useful in creating ontological contacts and generating
dossiers. In an operation 116, the method 100 adds comments to the
email addresses/email data and analyzes a history of short message
service (SMS) data correspondence and phone calls.
[0072] In an operation 118, heuristic avatars are assigned to the
contacts, which are in communication with the user, from whom
information is obtained from a plurality of platforms/device of the
user. In an operation 120, the method 100 displays the analyzed
content and provides a summary of the analyzed content which
includes at least one of a relationship of the user with an
addressee of a correspondence, a main theme of each one of a
plurality of correspondences, a degree of importance to the user,
and a recommendation for performing a course of action relating to
each one of the plurality of correspondences.
[0073] The analyzed content and summary are displayed in a visual
representation in a window of a Graphical User Interface (GUI). The
visual representation is visually multi-platform with other visual
representations of the information from the multiple devices to the
user. The method 100 ends at an operation 122.
[0074] FIG. 2 is a flow diagram illustrating a method 200 of smart
analysis of contacts using ranked data 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. At an operation 202 the method
200 begins. In an operation 204, the method 200 dynamically assigns
a rank of importance to the content of a use's contacts. The
ranking of importance may be based upon a numerical numbering
system from 1 to 100 with 1 being the highest ranking (e.g., most
important) and 100 being the lowest ranking (e.g., least
important). The user may employ other ranking methods. The rankings
may be altered and/or reassigned as needed. The ranking may be
performed according to various embodiments and criteria as
disclosed herein.
[0075] In an operation 206, the method 200 analyzes the content in
social networking channels, email addresses, data structures,
signatures in messages, audio and/or video files, images, and/or
other telephonic communication, text messages, SMS messages, and
the like. The method 200 may facilitate extraction of a contacts
possible past and current places of employment, for example. Other
data about a contact may also be extracted, such as the contacts
age, family members, education, favorite music (or other
affinities), coworkers, phone number, links or other identifying
information to other social network profiles. In an operation 208,
the method 200 uses the smart analysis process for building an
ontology of the people, organizations, and/or companies with whom
the user has been corresponding and contacting. Contacts may also
be sorted by theme, such as classmates, service professionals,
relatives, friends, etc.
[0076] In an operation 210, the method 200 clears up (e.g., cleans
up and organizes) the disorganization in a user's tasks (step 210).
A series of alerts, follow-ups, reminders (as well as by means of
SMS) based on the previous analysis may be implemented and uses. In
an operation 212, the method 200 identifies the promises/task that
the user/contact once gave to email recipients (e.g., a promise
made by the user to one of the contacts or vice versa) and
prioritizes and categorizes them by identifying a number of tasks
(e.g., five tasks) or emails that the user needs to perform/write
today. For example, the method 200 then identifies the promises
(e.g., promised tasks, commands, orders, socially accepted
behavioral actions) that someone once gave the user in the
correspondence and prioritizes and categorizes them by identifying
an "N" number of the most important cases or emails (e.g., 10 of
the most important cases or emails) that someone had to do for the
user, and creates a draft letter reminding these people on the
user's behalf or serve the user the respective reminder. For
example, in one email the user may have indicated to the contact
that the user would telephone on a certain day (or vice versa where
the contact makes a promise to the user), which is the identified
promise. That identified promise may then also be ranked by the
analysis.
[0077] In an operation 214, the method 200 analyzes the user's
contact ratings and sends users SMS notifications about the
identified promise and/or letter from a person with a
correspondingly high rating. Based on the contact's rating, the
system can determine whether a reminder is appropriate. 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. The mode and/or frequency of
notifications may vary based on the rating/ranking. For example, a
high rating/ranking may cause the system to send the user an e-mail
and an SMS message, with repeated SMS messages twice a day until
the user responds. A lower rated/ranked contact may only cause the
system to send one e-mail to the user and no other reminders.
[0078] In an operation 216, by smart analyzing content and user
behavior with respect to folders and information sources, the
method 200 informs (e.g., jokingly informs) the user in a natural
language form about the user's activities with respect to the
source (step 216). For example, when a user hovers over a folder
the system gently and jokingly informs him, "You haven't opened
this folder for ages," or "I know she's dreadful but you need to
respond to your mother-in-law's voicemail before you go home for
the holidays and face a reckoning." In this example, the smart
analysis operation has identified the folder has not been opened
for a predetermined period of time or that the number that left a
voicemail has not been called back. The type of communication, such
as the sarcastic comments may be predetermined and/or configured by
a user or an application. In an operation 218, the method 200
displays the analyzed ranked content and/or promises. In an
operation 220, the method 200 ends.
[0079] FIG. 3 is a block diagram illustrating a computer 300 that
can be used to generate dossiers for data units in accordance with
an illustrative embodiment. In alternative embodiments, fewer,
additional, and/or different components may be included in the
system. The system 300 includes one or more processors 302
connected to a memory 304. The processor(s) 302 may contain one or
more computer cores or may be a chip or other device capable of
performing computations (for example, a Laplace operator may be
produced optically). The memory 304 may be random access memory
(RAM) and may also contain any other types or kinds of memory,
particularly non-volatile memory devices (such as flash drives) or
permanent storage devices such as hard drives, etc. In addition, an
arrangement can be considered in which the memory 304 includes
remotely located information-storage media, as well as local memory
such as cache memory in the processor(s) 302, used as virtual
memory and stored on an external or internal permanent memory
device 310.
[0080] The computer system 300 also usually includes input and
output ports to transfer information out and receive information.
For interaction with a user, the computer system 300 may contain
one or more input devices 306 (such as a keyboard, a mouse, a
scanner, or other) and output devices 308 (such as displays or
special indicators). The computer system 300 may also have one or
more permanent storage devices 310 such as an optical disk drive
(CD, DVD, or other), a hard disk, universal serial bus (USB) drive,
and/or a tape drive. In addition, the computer system 300 may have
an interface with one or more networks 312 that provide connection
with other networks and computer equipment. In particular, this may
be a local area network (LAN) or a Wi-Fi network, and may or may
not be connected to the World Wide Web (Internet). It is understood
that the computer system 300 may include analog and/or digital
interfaces between the processor 302 and each of the components
304, 306, 308, 310 and 312.
[0081] The computer system 300 is managed by an operating system
314 and includes various applications, components, programs,
objects, modules and other, designated by the consolidated number
316. The programs used to accomplish the methods corresponding to
this invention may be a part of an operating system or may be a
specialized peripheral, component, program, dynamic library,
module, script, or a combination thereof. The computer system 300
may be used to perform some or all of the functions and methods as
disclosed herein. The computer system 300 is merely one embodiment
of a system on which the embodiments disclosed herein may be
practiced.
[0082] FIG. 4 is a representation of a graphical user interface
(GUI) 400 displaying the smart analysis results and dossiers in
accordance with an illustrative embodiment. In alternative
embodiments, fewer, additional, and/or different components may be
displayed on the GUI. The GUI 400 shows, among other aspects,
dossiers, connections, previews, and relationships between various
data units as described herein. In addition, the GUI 400 also
depicts various additional functionality as disclosed herein.
[0083] In one embodiment, software incorporating these mechanisms
may be installed via sharing (link shared via email 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, such as
the following:
Already using (Software name)? Your email . . .
Password . . .
[0084] New user? Your email . . . (Once email address is entered, a
confirmation message containing a temporary password may be sent to
the user's email.)
[0085] After confirming the user's email, the user will see a
software window 400, configured for and/or customized by and/or for
the user. In one embodiment, on the right 402, the working part,
may be empty initially. On the left side 404 the user views
available icons for sources such as my hard drive, places,
documents, photos, attachments, external drives, social media, if
currently connected, cloud drives, Exchange, mail servers (Gmail
etc.), other locations: camera, media centers etc., and other
computers. A visible arrow on the GUI screen 414 offers to drag any
icon in the left (workspace) it will mean that the user assigns
that service/device to their personal cloud.
[0086] At the top of the GUI window, the user views one or more
large tabs 406, such as Logo, Files, E-Mail, Contacts, work, all,
important, friends, social, promo, and/or more, and the like (only
the logo 406A, email tab 406B, and the files 406C is labeled as 406
for brevity sake). Additional tabs will appear later: such as
Calendar, and Tasks, and others. There is also a large search field
412. The software feeds the user with information among the various
tabs 406. As analyzing and/or indexing begins, the software
displaying progress and results of analyzing/indexing. In the
analyzing and indexing, the system detects duplicate files in the
user's personal cloud. For example, such duplicates may be
categorized as follows: 100% duplicates: the content and metadata
includes the date and time. 99.9% of duplicate: files, including
content, metadata are the same, but a different date and time.
Optional: 99% similar: where there are small differences in
content.
[0087] The smart analysis disclosed herein utilizing dossiers of
the user's contacts offers to consider these files as different
versions and ranks the date and author of last modification, looks
at which of the files come in the mail, by whom, when etc. The
system may offer to merge duplicates in one virtual 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 logical copy).
[0088] The GUI screen also shows the ranked content (shown in FIG.
4 as 420A being the ranked the highest as Rank 1 and the remaining
ranked contents "rank 2-100) shown as 420B). The smart analysis
operation all displays the provided summary 422 as mentioned
herein. The GUI screen 400 also displays the identified
promises/task 408 made by the user to one of the contacts or vice
versa) and prioritizes and categorizes them by identifying a number
of tasks (e.g., five tasks) or emails that the user needs to
perform/write today. An overall smart analysis of the user's
contacts may also be displayed in a results section 424. The data
units shown here that are ranked may be ranked using generated
dossiers as disclosed herein.
[0089] FIG. 5 is a representation of a GUI 500 demonstrating a
theme based dossier 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. 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. In this embodiment, the work secondary tab 515 is
selected, so that files relating to the user's work are displayed.
The GUI 500 therefore shows a work dossier, that is, all the data
units (other than e-mails in this case) that are related to work
(data units with a connection to the user's work) are shown. 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 dossier for work). 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.
[0090] The folders display 530 of the GUI 500 shows that there are
six folders associated (or that have a connection with) 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.
[0091] 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. The system may show higher ranked files in
accordance with the methods for ranking files disclosed herein. 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.
[0092] 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, or a
ranking using the methods as disclosed herein.
[0093] 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. In this embodiment, higher ranked photos are displayed
more prominently than lower ranked photos.
[0094] Here, a broad dossier is 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 broad dossier in a more
pointed way to attempt to locate the exact file the user is looking
for. The GUI 500 may subsequently other subsets of the work
dossier, resulting in less data units being displayed. In other
words, either a new subset dossier is generated and displayed, or
the data units shown in the GUI 500 have dossiers that are analyzed
as disclosed herein to determine if the data units are relevant to
the search.
[0095] 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.
[0096] FIG. 6 is a representation of a GUI 600 demonstrating an
e-mail interface showing a dossier relating to a contact in
accordance with an illustrative embodiment. In alternative
embodiments, fewer, additional, and/or different components may be
displayed on the GUI. The GUI 600 further displays an embodiment
for viewing and writing e-mails in accordance with an illustrative
embodiment. The GUI 600 includes an e-mails tab 605 and a files tab
610. Here, the e-mails tab 605 is selected.
[0097] The GUI 600 also includes various sections of contacts, such
as the recent contacts 620 section, the lobster 625 section, the
family 630 section, and the friends 640 section. Each of the
sections contain a dossier of contacts related to that section
theme. Here, the recent contacts 615 are displayed, and for example
include contact 620. 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 625 contacts
are not displayed on the GUI 600. A downward facing arrow to the
left of the lobster 625 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 630 and
friends 640. If the upward facing arrow of family 630 or friends
640 is interacted with, those groups of contacts will not be
displayed on the GUI 600. In this embodiment, recent contacts 615
cannot be hidden. However, in other embodiments recent contacts 615
may be hidden. Additionally, the groups of contacts displayed may
be configured automatically by the system or manually by the user.
Contact 635 is an example contact in the family 630 contacts
section. Contact 645 is an example contact in the friends
section.
[0098] In the GUI 600, the contact 620 is selected as evidenced by
an arrow 650, and therefore only data units relating to contact 620
are shown in the GUI 600. Accordingly, multiple layers of dossiers
are present in the GUI 600. First, the recent contacts dossier
shows several data units (contacts) that the user has communicated
with recently. Next, the contact 620 has been selected, which
displays a dossier of data units related to the contact 620. For
example, previews 675 and 680 of messages from contact 620 are
shown, as well as full e-mail 690. The messages can be sorted or
organized on the GUI 600 in several ways. For example, the messages
may be sorted or organized with message type buttons 655. 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 660,
which include newest, oldest, important, archived, and deleted.
Here, the newest sub-tab is selected as evidenced by an arrow
665.
[0099] Draft e-mail section 670 provides the user an opportunity to
respond to a selected e-mail. Draft e-mail section 670 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.
[0100] Here, preview 675 has been selected as evidenced by an arrow
685 by the user and is shown as the full e-mail 690. The preview
675 includes only contact information for the sender and some of
the text of the e-mail. The full e-mail 690 shows the contact
information, a more complete contact information 697, photos such
as photo 695, and the full text of the e-mail. The complete contact
information 697 may, for example, include information that was
collected about the contact according to embodiments disclosed
herein. For example, inclusion in the architect group may have been
the result of the system determining from a social network such as
LinkedIn.TM. that the contact is an architect by trade.
[0101] Additionally, the user for the GUI 600 has positioned a
pointer over preview 680. As a result, the system has displayed a
context menu over a portion of the preview 680. Further, it is
worth noting that the preview 680 is offset in the GUI 600 from the
other preview e-mails. This may indicate that the preview 680 is a
part of an e-mail conversation relating to the preview directly
above it.
[0102] 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 600 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.
[0103] FIG. 7 is a representation of a GUI 700 demonstrating a
dynamic birds-eye view of various dossier summaries in accordance
with an illustrative embodiment. In alternative embodiments, fewer,
additional, and/or different components may be displayed on the
GUI.
[0104] The GUI 700 demonstrates a state of a dynamic view of
several different dossiers, which may be termed a birds-eye view.
The dossiers here are contact related, theme related, time related,
and tag related. 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.
[0105] The GUI 700 includes an e-mails tab 705 and a files tab 710.
Here the Macintosh HD is selected from the workspace as evidenced
by an arrow 715. Here, the search term "#GREEN" has been entered
into the search field 720, although in this embodiment the search
has not been executed (thus dossiers other than just a "#GREEN"
dossier are still shown). However, in other embodiments, a dynamic
display like the one in FIG. 7 may be displayed with search terms
being executed. In that embodiment, there still may be multiple
dossiers displayed as in FIG. 7, but the dossiers will only
represent data units relevant to the search term(s). Here, all the
dossiers shown are previews or summaries of the dossiers, with only
the theme or subject of the dossier shown. The user can select
these dossiers in order to view more detail on the dossiers.
[0106] The dossiers shown as groups in the GUI 700 all represent
different things. For example, group 725 represents all photos on
the user's Macintosh HD. If the group 725 is selected, the photos
may be displayed and examined in greater detail. The relative size
and prominence of the group 725 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 725
may be an indicator that the user accesses photos more often than
music or video files. Similarly, groups 730, 740, and 755 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 a 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 740 and 755 indicate groups of
files that correspond to certain hashtags. Groups such as group 730
represents groups of files that correspond to certain contacts of
the user.
[0107] In another example, groups 735 and 750 are displayed. Here,
all files from the year 2013 are represented by group 735. Group
735 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 735 is displayed more prominently. Group 750 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 750 is still intentionally smaller than group
735 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 700 is a search dialog 745. The search dialog 745 offers an
alternative to the search field 720. Any searches performed using
the search dialog 745 may be dynamically displayed. That is, if a
user searches for something, the user may visibly see groups
(dossiers) 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.
[0108] The groups (dossiers) displayed on the GUI 700 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 700. 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 745. A search term can be removed from the search by
dragging it out of the search dialog 745. 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.
[0109] 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 700, 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.
[0110] 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. 7. 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.
[0111] Regarding mixing, the user may combine groups using the GUI
700. 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.
[0112] In an embodiment where a user may drag different groups
around the GUI 700, 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 700.
[0113] Regarding searching, a user may search by either typing into
the search dialog 745 or dragging other groups to the search dialog
745. For example, if the user wishes to see group representations
of files that only relate to the hashtag "sea," the group 755 may
be dragged by the user to the search dialog 745. Once the group 755
has been placed in the search dialog 745, the group 755 may no
longer be subjected to the forces it would otherwise be subjected
to. That is, the group 755 is stuck in the search dialog 745. The
system will perform the search by changing the relative sizes of
the other remaining groups displayed on the GUI 700 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 700 after the search is performed. Changes to groups based
on searches, combinations, movements, etc. may also cause the
system to determine new connections for files within the
groups/dossiers and generate new dossiers/groups as needed. Such
determining of connections and generation of new dossiers can be
done according to methods and systems disclosed herein.
[0114] Although circles are used to represent groups in FIG. 7,
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 700 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.
[0115] FIG. 8 is a representation of a GUI 800 demonstrating a
photo view overlay dossier 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 800 demonstrates a state of a view
similar to the GUI 700 discussed above with respect to FIG. 7.
However, the GUI 800 shows an overlay 840 that represents a photo
dossier.
[0116] The GUI 800 includes an e-mails tab 805 and a files tab 810.
Here the Macitosh HD is selected from the workspace as evidenced by
an arrow 815. Also here, the search term "#GREEN" has been entered
into the search field 820. Hence, in this embodiment, the photos
shown in the overlay 840 are not related to the search term because
the search has not been executed. However, in other embodiments,
photos or other electronic files may be shown in the overlay 840
that are related to the search term. In other embodiments, the
files could represent the selection of or interaction with any of
the groups shown in FIG. 7. If a search term has been entered, as
here, then the files shown in the overlay 840 dossier will relate
to the search term and the selected group. For example, if a user
selected the group 735 from FIG. 7, the overlay 840 would display
files related to the year 2013. Here, the user has selected or
interacted with the group 725, which causes photos to be
displayed.
[0117] The overlay 840 dossier includes several photos on display,
including photos 830 and 835. The photos initially displayed in the
overlay, including the photos 830 and 835, are higher ranking than
other photos relating to the search terms. In overlay description
825, the GUI 800 displays that photos are selected, and that there
are 112 photos relevant to the search term here. The photos
displayed in the overlay 840 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.
[0118] The photos 830 and 835 displayed in the overlay 840 may be
interacted with. For example, the photos may be selected and viewed
in greater detail in another GUI. 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 840 may cause the system to open
the file using a separate software application. In another
embodiment, selecting a file from the overlay 840 may display on a
GUI a dossier related to that particular selected file. In one
embodiment, the overlay may be a dynamic group similar to the
groups described above with respect to FIG. 7. In another
embodiment, a user may be able to interact with the overlay 840 to
resize the overlay itself and/or the previewed files displayed
within the overlay 840. The user may also be able to interact with
the displayed files in the overlay 840 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 800.
[0119] 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 755 and 725 from FIG. 7, the
overlay 840 will display photos that have the tag "#SEA." In
another embodiment, the overlay 840 may display electronic files
(or representative information of those electronic files) that
relate to an interaction with the search dialog 745 of FIG. 7. For
example, if the user enters text into the search dialog 745, the
overlay 840 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 745. In this embodiment, the overlay 840 may
display files related to the group(s) that were dragged to the
search dialog 745. Further, the user may search using a combination
of text entry and dragging groups to the search dialog 745.
[0120] FIG. 9 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. 9 includes a personal computing device 900, a portable
storage device 997, a network 925, a cloud storage system 930, a
tablet device 940, and a mobile electronic device 965. The personal
computing device 900 includes a processor 915 that is coupled to a
memory 905. The personal computing device 900 can store and recall
data and applications in the memory 905. The processor 915 may also
display objects, applications, dossiers, data units, etc. on a
display/interface 910. The display/interface 910 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 915 may also receive inputs from a user
through the display/interface 910. The processor 915 is also
coupled to a transceiver 920. With this configuration, the
processor 915, and subsequently the personal computing device 900,
can communicate with other devices, such as the cloud storage
system 930 through a connection 987 and the network 925. Although
FIG. 9 shows one personal computing device 900, an alternative
embodiment may include multiple personal computing devices.
[0121] The tablet device 940 includes a processor 955 that is
coupled to a memory 945. The processor 955 can store and recall
data and applications in the memory 945. The processor 955 may also
display objects, applications, data, etc. on a display/interface
950. The display/interface 950 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 955 may also receive inputs from
a user through the display/interface 950. The processor 955 is also
coupled to a transceiver 960. With this configuration, the
processor 955, and subsequently the tablet device 940, can
communicate with other devices, such as the personal computing
device 900 through a connection 995 and the network 925.
[0122] The mobile electronic device 965 includes a processor 975
that is coupled to a memory 985. The processor 975 can store and
recall data and applications in the memory 985. The processor 975
may also display objects, applications, data, etc. on a
display/interface 980. The display/interface 980 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 975 may also receive inputs from a user
through the display/interface 980. The processor 975 is also
coupled to a transceiver 970. With this configuration, the
processor 975, and subsequently the viewer electronic device 965,
can communicate with other devices, such as the tablet device 940
through a connection 990 and the network 925. Although FIG. 9 shows
only one mobile electronic device 965, an alternative embodiment
may include multiple mobile electronic devices.
[0123] FIG. 9 also includes the cloud storage system 930. The cloud
storage system 930 may include a number of servers that may have
memory and processors. The cloud storage system 930 is connected to
the network through a connection 935 and may communicate with other
devices such as the mobile electronic device 965.
[0124] FIG. 9 also includes the portable storage device 997. This
portable storage device 997 may be a removable USB drive for
example. Since such a portable memory does not have a processor,
the portable storage device 997 must be connected to a computing
device for the information and files stored on the portable storage
device 997 can be read by such devices. Accordingly, in this
embodiment, the portable storage device 997 is plugged into the
personal computing device 900, which can read the data from the
portable storage device 997 and communicate its contents or data
related to its contents to any of the other devices that have
access to the network 925.
[0125] The devices shown in the illustrative embodiment may be
utilized in various ways. For example, any of the connections 987,
990, 995, and 935 may be varied. Any of the connections 987, 990,
995, and 935 may be a hard wired connection. A hard wired
connection may involve connecting the devices through a USB
(universal serial bus) port (like connection 999), 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 987, 990, 995, and 935 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 987, 990, 995, and 935 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 987, 990, 995, and 935 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 987, 990,
995, and 935 may also be a combination of several modes of
connection. The network 925 may also include similar components
described above with respect to the connections 987, 990, 995, and
935. In addition, the network 925 may include intermediate servers,
routing devices, processors, data traffic management services, and
wired or un-wired connections.
[0126] 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. 9 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. 9. 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.
[0127] In one embodiment, a download of a program to the mobile
electronic device 965 involves the processor 975 receiving data
through the transceiver 970 through connection 990 and the network
925. The network 925 may be connected to the internet. The
processor 975 may store the data (like the program) in the memory
985. The processor 975 can execute the program at any time. In
another embodiment, some aspects of a program may not be downloaded
to the viewer electronic device 965. For example, the program may
be an application that accesses additional data or resources
located in a server, or even the cloud storage system 930 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 925
or the cloud storage system 930. In the latter example, temporary
files and/or a web browser may be used on the mobile electronic
device 965 in order to execute the program, system, application,
etc. In additional embodiments, the tablet device 940 and the
personal computing device 900 may use, store, or download software
applications and web based programs in a similar way.
[0128] The configuration of the personal computing device 900, the
portable storage device 997, the tablet device 940, the mobile
electronic device 965, the network 925, and the cloud storage
system 930 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. 9 may exist to practice the disclosed embodiments.
Additionally, the devices shown in FIG. 9 may be combined to allow
for fewer devices or separated where more than the five devices
shown exist in a system.
[0129] FIG. 10 is a flow diagram illustrating a method 1000 of
generating a dossier for data units 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 1005, the system
identifies data units associated with a user. In other words, the
system locates or indexes files, contacts, photos, videos, etc.
across various electronic devices and cloud storage systems
controlled by or accessible to the user.
[0130] In an operation 1010, the system determines connection data
between a first data unit and a second data unit. For example, the
system may determine that an e-mail (first data unit) was sent by a
contact (second data unit). In another example, the system may
determine that a document (first data unit) was last modified by a
contact (second data unit). In another example, the system may
determine that a photo (first data unit) was taken in a particular
location (such as at work, home, the beach, Kuala Lumpur, Moscow,
Honolulu, etc.; the second data unit). In another example, the
system may determine that a first data unit like a file or e-mail
is connected to work (second data unit). Many other combinations
are contemplated and these examples are not meant to be
limiting.
[0131] In an operation 1015, the system generates a dossier for the
first data unit including the connection data and representative
information of the first data unit. This dossier contains important
information regarding the first data unit and its connections and
links to other data units that the user controls or has access
to.
[0132] In an operation 1020, the system displays the dossier on a
graphical user interface (GUI). In this embodiment, the system
displays all of the information in the dossier. In other
embodiments, the system may only display some of the information in
the dossier. For example, the system may generate a preview or
summary of the dossier to display on the GUI. In another
embodiment, the system may rank the connection data and determine
higher ranking connection data to display on the GUI and determine
lower ranking data to omit from displaying on the GUI.
[0133] FIG. 11 is a flow diagram illustrating a method 1100 of
generating an ontology of data units and ranking the data units 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 1105, the system generates a plurality of dossiers for a
plurality of data units. The system may do this utilizing systems
and methods as disclosed herein.
[0134] In an operation 1110, the system determines connection data
between the plurality of data units that already have dossiers. In
other words, the system can determine connection data related to
the connection data already determined for each individual dossier.
As an example, an e-mail (data unit) is examined and deemed to have
connection data that connects the e-mail to a particular company
based on a signature line of the e-mail. In the operation 1110, the
system determines connection data between all data units to
determine which dossiers have been connected already to the
particular company. In other words, the dossiers themselves can
essentially be used to create additional connection data. This
connection data is utilized in an operation 1115 to generate an
ontology of the plurality of data units. In the example, the
ontology would include all data units that have connection data
related to the particular company. For example, e-mails from the
company, contacts from the company, and documents sent from the
company may all be included the ontology.
[0135] In an operation 1120, the system may determine a ranking of
the plurality of data units that are included in the ontology based
on the connection data of each of the plurality of data units. For
example, the system may prioritize and rank higher contacts that
have higher levels of communication with the user. In another
example, the system may rank higher documents, photos, etc. that
have been opened and/or modified more often than others. The
rankings may be used to determine how an ontology or which parts of
an ontology are displayed on a GUI.
[0136] 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.
[0137] 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.
* * * * *