US20150186381A1 - Method and System for Smart Ranking of Search Results - Google Patents

Method and System for Smart Ranking of Search Results Download PDF

Info

Publication number
US20150186381A1
US20150186381A1 US14/579,336 US201414579336A US2015186381A1 US 20150186381 A1 US20150186381 A1 US 20150186381A1 US 201414579336 A US201414579336 A US 201414579336A US 2015186381 A1 US2015186381 A1 US 2015186381A1
Authority
US
United States
Prior art keywords
user
files
file
gui
search
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US14/579,336
Inventor
David Yan
Konstantin Anisimovich
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Visier Solutions Inc
Original Assignee
Abbyy Development LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Abbyy Development LLC filed Critical Abbyy Development LLC
Priority to US14/579,336 priority Critical patent/US20150186381A1/en
Assigned to ABBYY DEVELOPMENT LLC reassignment ABBYY DEVELOPMENT LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: YAN, DAVID, ANISIMOVICH, KONSTANTIN
Publication of US20150186381A1 publication Critical patent/US20150186381A1/en
Assigned to ABBYY PLC reassignment ABBYY PLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ABBYY DEVELOPMENT LLC
Assigned to FINDO, INC. reassignment FINDO, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ABBYY PLC
Assigned to YVA.AI, INC. reassignment YVA.AI, INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: Findo Inc.
Assigned to VISIER SOLUTIONS INC. reassignment VISIER SOLUTIONS INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: YVA.AI, INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • G06F17/3053
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/156Query results presentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/168Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/26Visual data mining; Browsing structured data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/48Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/483Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/5846Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using extracted text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/5866Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, manually generated location and time information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • G06F17/30112
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1815Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]

Definitions

  • An illustrative apparatus includes a memory, a processor operatively coupled to the memory, and a first set of instructions stored on the memory and configured to be executed by the processor.
  • the processor is configured to receive a search input.
  • the processor is further configured to identify a plurality of electronic files related to the search input.
  • the processor is further configured to calculate a rank for each of the plurality of electronic files based on statistical data of the plurality of electronic files.
  • a non-transitory computer readable medium has instructions stored thereon that, upon execution by a computing device, cause the computing device to perform operations, where the instructions include instructions to receive a search input.
  • the instructions further include instructions to identify a plurality of electronic files related to the search input.
  • the instructions further include instructions to calculate a rank for each of the plurality of electronic files based on statistical data of the plurality of electronic files.
  • FIG. 1 is a representation of a graphical user interface (GUI) demonstrating an e-mail interface in accordance with an illustrative embodiment.
  • GUI graphical user interface
  • FIG. 2 is a blown-up representation of a GUI demonstrating an e-mail interface in accordance with an illustrative embodiment.
  • FIG. 3 is a block diagram illustrating a file transfer system in accordance with an illustrative embodiment.
  • FIG. 4 is a block diagram illustrating a second file transfer system in accordance with an illustrative embodiment.
  • FIG. 5 is a representation of a GUI demonstrating a multi-file type view in accordance with an illustrative embodiment.
  • FIG. 6 is a representation of a GUI demonstrating a photo view in accordance with an illustrative embodiment.
  • FIG. 7 is a representation of a GUI demonstrating a photo view with a search menu displayed in accordance with an illustrative embodiment.
  • FIG. 8 is a representation of a GUI demonstrating an e-mail interface with a sorted contact list in accordance with an illustrative embodiment.
  • FIG. 9 is a representation of a GUI demonstrating an e-mail interface with a sorted contact list and an e-mail correspondence chain in accordance with an illustrative embodiment.
  • FIG. 10 is a representation of a GUI demonstrating a single photo view in accordance with an illustrative embodiment.
  • FIG. 11 a representation of a GUI demonstrating an electronic files view with reminders in accordance with an illustrative embodiment.
  • FIG. 12 a representation of a GUI demonstrating a dynamic birds-eye view of a user's data in accordance with an illustrative embodiment.
  • FIG. 13 is a representation of a GUI demonstrating a multi-level view including a hierarchical tree structure in accordance with an illustrative embodiment.
  • FIG. 14 is a representation of a GUI demonstrating a multi-level view including a document preview in accordance with an illustrative embodiment.
  • FIG. 15 a representation of a GUI demonstrating the contents of a specific device's storage in accordance with an illustrative embodiment.
  • FIG. 16 is a representation of a GUI demonstrating a multi-level view including a document preview and an icon based tagging section in accordance with an illustrative embodiment.
  • FIG. 17 is a representation of a GUI demonstrating an e-mail interface with a sorted contact list, an e-mail correspondence chain, and an icon based tagging section in accordance with an illustrative embodiment.
  • FIG. 18 is a block diagram illustrating various computing and electronic storage devices that may be used in accordance with an illustrative embodiment.
  • FIG. 19 is a flow diagram illustrating a method of displaying representative information of files and e-mails on a GUI utilizing a two tab display in accordance with an illustrative embodiment.
  • FIG. 20 is a flow diagram illustrating a method of determining files a user has access to and displaying representative information of the files on a GUI in accordance with an illustrative embodiment.
  • FIG. 21 is a flow diagram illustrating a method of determining the status of various electronic devices and displaying that status on a GUI in accordance with an illustrative embodiment.
  • FIG. 22 is a flow diagram illustrating a method of extracting data from an electronic file and displaying a preview of the file on a GUI in accordance with an illustrative embodiment.
  • FIG. 23 is a flow diagram illustrating a method of receiving an input from a user and displaying a context menu on a GUI in accordance with an illustrative embodiment.
  • FIG. 24 is a flow diagram illustrating a method of receiving an input from a user and opening an electronic file to be displayed on a GUI in accordance with an illustrative embodiment.
  • FIG. 25 is a representation of a GUI demonstrating a photo view overlay of a dynamic birds-eye view of a user's data in accordance with an illustrative embodiment.
  • FIG. 26 is a flow diagram illustrating a method of performing a search and smart ranking the results in accordance with an illustrative embodiment.
  • FIG. 27 is a flow diagram illustrating a method of performing a search an looking up smart rankings for the results in accordance with an illustrative embodiment.
  • FIG. 28 is a flow diagram illustrating a method of performing a search, smart ranking the results, and displaying the results on a GUI in accordance with an illustrative embodiment.
  • FIG. 29 is a flow diagram illustrating a method for performing a search of contacts and messages and smart ranking the results in accordance with an illustrative embodiment.
  • the search may be performed on a various electronic files, such as various data, documents, e-mails, messages, documents, and/or contacts.
  • the various electronic files that are searched may be stored on a many different electronic devices.
  • 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.
  • USB universal serial bus
  • SD secure digital
  • a user may input into a graphical user interface (GUI) search terms that relate to what the user is looking for.
  • GUI graphical user interface
  • the search terms may be an alphanumeric sequence of characters that indicate what the user is looking for.
  • a search input that specifies what the user would like to search for may be entered in other ways than the user inputting text.
  • a user may interact with metadata or tags in order to indicate a search input.
  • the user may be presented on the GUI with several electronic file tags that are popular or heavily used among the user's various electronic files. The user may interact with, such as through a mouse click or touching a touch screen, one of the popular tags to indicate that the user would like to search for all electronic files related to that tag.
  • the user may be able to select or specify multiple tags that are used as search criteria.
  • the user may specify a tag or tags and also input a search term.
  • the system may use both the specified tag(s) and the inputted search terms in order to perform the search.
  • a search input may indicate a certain electronic file type the user wants to search for.
  • the user may input that he or she wishes to find photos, for example.
  • the user may specify that he or she wishes to search for spreadsheets, e-mails, e-mail attachments, presentations, contacts, or another specific type of electronic files.
  • the user may input an electronic file type he or she wishes to search for, and the system will search for all electronic files of that type.
  • the user may enter a further input, such as a search term or a tag as above, and the system may then search for electronic files of the particular type that are also related to the search term or specified tag.
  • the user may specify multiple search terms, tags, and/or electronic file types for a search.
  • the system After a search input is received by the system from user inputs, the system searches the various electronic devices of the user (and any other devices the user has access to, such as cloud storage systems) for electronic files related to the search inputs.
  • the system may determine that electronic files are relevant to the search results by comparing the search inputs to the name of an electronic file, metadata (including tags, author, file size, file type, date modified or created, who modified the file, etc.) of the electronic file, any of the content of the electronic file, and/or other context based information regarding the file.
  • context based information may be the text of an e-mail to which the electronic file is attached.
  • Another example may be contact information of an e-mail message.
  • the system After electronic files that are related to a search input are determined, the system ranks the electronic files that have been determined based on various statistical data.
  • the statistical data may include, for example, information like usage levels, accessibility levels, and/or importance levels of the electronic files.
  • all electronic files may be indexed by the system, and the system may continuously keep track, in association with or on the index, of a rank of each of the electronic files. In this way, when a search is performed for electronic files, the system may already have access to rank information that had been previously calculated by the system. Nonetheless, the system may calculate electronic file rankings based on statistical data in similar ways regardless of the timing of the calculation (before or after a search).
  • the system may calculate the electronic files that have been determined as relevant to the search.
  • a rank for all electronic files of user may be calculated.
  • the calculated ranks may be particularly tailored or customized based on the search inputs as will be disclosed herein.
  • a calculated rank may be calculated, in part, based on the search input in order to reflect a potentially more accurate rank of electronic files yielded in a search.
  • the search results and the ranks are displayed on a graphical user interface (GUI).
  • GUI graphical user interface
  • the system may display on the GUI representative information of the electronic files, such as the file names, file types, and file size.
  • other representative information may be displayed, such as author, tags, date created, date modified, a preview of the electronic file, or any other metadata related to the electronic files.
  • the calculated rank may be displayed on the GUI along with each respective electronic file search result.
  • the system may not display every search result on the GUI.
  • the system may utilize the calculated ranks to assist in determining which search results not to display. For example, the lower ranked results may not be displayed. However, the user may still view these lower ranked results on the GUI through an input with the GUI, such as scrolling, swiping a touch screen, a mouse click, and/or other methods.
  • differently ranked results may be displayed on the GUI in different ways. For example, some higher ranked search results may be displayed with different representative information displayed than relatively lower ranked search results. For example, a higher ranked search result may be displayed on the GUI with a preview image, while lower ranked search results may be displayed on the GUI without a preview image. In another example, higher ranked search results may be displayed further toward the top of the GUI than a lower ranked search result. In another example, representative information, a symbol, and/or an icon representing an electronic file that is ranked higher may be displayed larger in size on the GUI than the representative information, symbol, and/or icon representing the electronic file that has a relatively lower rank. In one embodiment, the size of the representative information, symbol, and/or icon may be proportional to the calculated rank for that electronic file.
  • the search results may be displayed in an order based on the calculated rankings.
  • representative information of the electronic files in the search results may be displayed in an order according to the calculated rankings.
  • the search results may be displayed on the GUI in an order starting with higher rankings and ending with the lower rankings.
  • the calculated rank for each electronic file is displayed or indicated on the GUI along with the representative information for each electronic file.
  • the representative information does not include the rank, but the system still utilizes the rank as disclosed herein to organize and display the representative information of the electronic files that are in the search results.
  • an indicator of the calculated rank, but not the actual calculated rank may be displayed along with the representative information of the electronic files that are in the search results. For example, if the system calculates that an electronic file has a relatively high rank, the representative information may be displayed on the GUI with a particular color and/or symbol that indicates a high ranking. Representative information of an electronic file with a relatively medium rank may be displayed on the GUI with a second color and/or symbol. Further, representative information of an electronic file with a relatively low rank may be displayed on the GUI with a third color and/or symbol.
  • the rank of the electronic files may be calculated in different ways based on different statistical data.
  • the rank calculated may be an actual number that can be compared to other ranks on the basis of the magnitude of the number rank.
  • the calculated rank may be less specific, such as a high, medium, or low relevance rank designation.
  • the system may use both types of calculation. For example, the system may calculate a numerical rank, and a particular range of numbers may be associated with each of the high, medium, and low relevance ranks.
  • the factors and statistical data used to calculate the rank of an electronic file may also vary.
  • the system may calculate a usage level of the electronic file to determine the rank of the electronic file.
  • a higher usage level corresponds to a higher rank.
  • the usage level indicates how much a user has directly or indirectly used an electronic file.
  • the system can determine an approximation of importance or relevance of the electronic file to the user. That is, if there are electronic files with higher usage levels, those files may be more desirable to a user and may more likely be the target of a search by a user.
  • those electronic files are ranked higher so that when a user performs a search, those files that are more likely to be the target of the search are displayed on the GUI first or more prominently, allowing the user easy access to the electronic files that he or she is most likely seeking.
  • a usage level may be calculated using a variety of information. For example, the system may track how many times an electronic file is accessed or opened. This may define or contribute to the usage level. Another factor that may be used to determine a usage level may be an amount of time the electronic file has been displayed on the GUI. For example, the system may track how long a user has had an electronic file open, and that cumulative amount of time may be used to calculate the usage level of the electronic file. In a related embodiment, the system may track the amount of time that an electronic file is open and actually being displayed on the GUI. In other words, the system may not count an amount of time when a file is open but minimized when calculating usage level; but any time the electronic file is open and displayed on the GUI may be counted when calculating the usage level.
  • the system may only count the time when an electronic file is open and active. In other words, the system may count time for purposes of calculating a usage level where an electronic file is open and being interacted with by the user. Such interactions may include scrolling, changing metadata, changing the content of the electronic file itself, commenting on the electronic file, responding to the electronic file (where the electronic file is a message or e-mail, for example), listening to and/or watching the electronic file, etc.
  • a usage level may also be determined by a number of tags. For example, an electronic file with numerous tags may be considered higher ranking than a file with very few tags.
  • the system may also weight tags differently.
  • Some illustrative systems may utilize a watchdog tag.
  • a watchdog tag may be established by the user to watch a particular electronic file. Where there is activity relating to that electronic file, the user may be notified. For example, if the file is a contact and the user receives a message from the contact, the user may be notified. If the file is a document and the document is edited, the user may receive a notification.
  • tags may be weighted for purposes of calculating ranks based on the origination of the tags. For example, a tag that was created or assigned by a user to the electronic file may be worth more to the relative rank of a file than a tag that was automatically generated by the system.
  • the system may calculate an accessibility or mobility level, which can be used for calculating ranks for electronic files. For example, the accessibility or mobility of an electronic file may be impacted by the electronic device or type of electronic device that an electronic file is stored on. As a result, the electronic device or type of electronic device may be considered when calculating the accessibility or mobility level and subsequently the ranking of an electronic file.
  • the system may assign a higher accessibility or mobility level to electronic files stored on internet accessible servers, such as an e-mail exchange or cloud server storage system.
  • the system may assign a medium accessibility or mobility level to other electronic devices that the system is likely to have access to, such as a smartphone or laptop.
  • the system may assign a low accessibility or mobility level to an electronic file that is stored on electronic devices that the system is less likely to have access to, such as an external hard drive, USB drive, or SD card.
  • the accessibility or mobility level may also be calculated based on the type of electronic file. For example, an electronic file that requires a specific stand-alone software application to access may be considered to have a lower accessibility or mobility level. For example, if an electronic file can only be opened by Microsoft PowerPointTM, the system may consider the accessibility or mobility level of the electronic file to be relatively low. In another example, if a file can be opened or accessed by several software applications or can be opened or accessed by a web-based application, the system considers the electronic file to have a high accessibility or mobility level. In other words, the system can determine whether it is more or less likely that a user will be able to access and/or modify an electronic file and will calculate the accessibility or mobility level of the electronic file accordingly.
  • the system may determine an access level of an electronic file to determine the accessibility or mobility level of the electronic file. For example, if an electronic file is read-only (i.e., the user cannot edit the electronic file), the system may consider the electronic file to have a relatively lower accessibility or mobility level. If an electronic file has a higher access level, such as a file where the user has full access and editing privileges, that electronic file is considered to have a relatively higher accessibility or mobility level.
  • the system may consider the file type of an electronic file in another way to calculate an accessibility or mobility level.
  • the system may consider the file type and the version of the electronic file to determine what version of a software application may be used to access and/or modify the electronic file. For example, if the system had to use a software application that was out of date or old to access and/or modify an electronic file, the system may rank the accessibility or mobility level lower. If the file type of the electronic file uses a current and up to date version of a software application to access and/or modify it, the system may consider that electronic file to have a relatively higher accessibility or mobility level.
  • the system may utilize the file type in yet another way to determine an accessibility or mobility level. For example, the system may determine whether an electronic file is a copy or a replica. As disclosed herein, for the purposes of this disclosure, a copy of a file is identical to the original file at the time of duplication, but is not automatically updated after changes in the original file on a separate machine. A replica of a file is identical to the original file at the time of duplication, and is automatically updated after changes are made to the original file, even if the original file exists on a separate machine than the replica file. In this embodiment, a replica file may be considered to have a higher accessibility or mobility level than a copy file.
  • the system may consider the version of an electronic file when determining an accessibility or mobility level. For example, if an electronic file is stored as multiple different versions of the same electronic file, a most recent version may be given a higher accessibility or mobility level, while previous versions of an electronic file are given a lower accessibility or mobility level.
  • the size of an electronic file may also be used when determining an accessibility or mobility level. For example, if the user is searching for photos using a mobile smart phone device, the system may rank photos that are of a medium resolution as having a relatively high accessibility or mobility level. The system may rank photos with very high or very low resolutions as having a lower accessibility or mobility level. In this way, the user's search results may reflect photos that are tailored for the size of the display of a mobile smart phone device and limitations on the mobile smart phone device's internet connectivity and processing speeds. In another example, if the user is utilizing their desktop computer to perform the search, the system may rank higher resolution images as having a higher accessibility or mobility level.
  • the rankings are dynamic rather than static, because the rankings may change based on what device is used to perform the search. Accordingly, if these type of dynamic factors are used, the ranks should be calculated at least in part as or after a search is performed. In other words, where dynamic factors are used, the final rank cannot be stored on an index to be automatically returned upon a search, unless the index includes all possible ranks that may be called for based on the different dynamic factors.
  • the system may determine as part of the statistical data an actual real time availability of an electronic file and may incorporate that availability into the accessibility or mobility level. For example, when performing a search, the system may search an index of electronic files, where the electronic files may be stored on multiple user devices. The system may determine that an electronic file on a laptop computer is relevant to the search. The system will then determine whether that electronic file is actually available. That is, could the system access the memory of the laptop to open or modify the actual electronic file stored on the laptop. If the laptop is not available or online for any reason, that electronic file may not be available. Accordingly, an electronic file that is not available may be assigned by the system a relatively lower accessibility or mobility level than an electronic file that is actually available.
  • any combination of all, some, or none of the factors disclosed herein may be used to calculate a rank of an electronic file for purposes of a search.
  • none of the aforementioned factors may be utilized by the system, and the system may rather rank electronic files according to how close to the search input or search terms the electronic file is.
  • the user may be performing a search for contact information.
  • the system may determine as part of the statistical data an importance level of a contact relevant to a search. A contact with a high importance level will be assigned a higher ranking of relevance for the search results.
  • the importance level may be determined in a variety of ways. For example, the system may determine the importance of a contact based on a level of correspondence between the user and the contact. For example, if the user and contact send each other numerous e-mails, text messages, chat messages, voice calls, video calls, and/or instant messages, the system will consider that contact as having a higher importance level. In other embodiments, the system may consider only correspondence to or from the contact in determining the importance level, as opposed to combining the correspondence to and from the contact, as in the previous example,
  • the system may determine the importance level of a contact based on a user's response rate to correspondence or any type of message from the particular contact. For example, if the user has directly responded to 70 out of 100 e-mail messages (70%) from contact A, then contact A will have a higher importance level relative to a contact B, to whom the user has only responded to 20 out of 50 e-mail messages (40%).
  • the system may consider groups of contacts together in determining an importance level and/or returning search results.
  • the user may define certain contacts to be grouped together, such as family members.
  • the system may determine an importance level of groups such as family members cumulatively, and return search results based on the increased importance levels that come with being a part of such a user defined group.
  • groups of contacts may be defined by the user.
  • a group may be automatically defined by the system. For example, several contacts may have e-mail addresses that are routed to the same e-mail servers.
  • employees of an ABC Company may all have e-mails that end in “@ABCCompany.com.” Accordingly, the system may define all of those employees in a single group associated with the ABC Company. This group may be treated by the system as a single organizational contact. Accordingly, the system may determine the importance level of the single organizational contact by cumulatively considering the importance level of all the group members together. The system may further classify an organizational contact as an ontological object.
  • contact may refer to an individual or an organization.
  • an organization may be an ontological object.
  • 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.
  • 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.
  • watchdog tags may be implemented in which the user may note some query as the watch tag.
  • the system may then copy all of the search results to a special folder that is not visible to the user. These search results may renew periodically: when changes in the folder are detected, the user may then receive notifications concerning these changes.
  • 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.
  • SMS short message service
  • a user may have received an email from “Pete.”
  • the user may wish to find the email he recollects, however, he is unsure from which account or location the email may have originated.
  • the system addresses this issue by merging all available information in the user's network, including emails, social accounts, and other related information. For every contact, a unique ID may be initiated that corresponds to the contact in the system.
  • the system parses through all of the available information, and performs such merging operations on predefined rules, such as names similarity, email similarity and other information. Following this merger, the system may then query the user to verify that each of the instances found in the user's network should be associated with the unique ID.
  • 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.
  • the system may utilize additional information such as logos, product descriptions, employee information, and the like to perform merger operations.
  • 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.
  • search results may also be grouped together, particularly as they are displayed on a GUI.
  • 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.
  • the system may display a general cluster, like the one described previously with regard to files that were created in the same year.
  • 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.
  • 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.
  • 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.
  • 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., FacebookTM, LinkedInTM, WikipediaTM, etc.), or from a dossier—a company's ontology, geographies, etc. which are built during the historical correspondence.
  • a user may have forgotten the name of an architect with whom she is in sporadic contact.
  • 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.
  • Search terms can also be extracted from common knowledge (synonymous/homonymous narrowing/broadening of the search).
  • 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.
  • 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 DropboxTM.
  • DropboxTM e.g., an HTML address or remote storage server address, etc.
  • the current systems and methods could locate the link based on context.
  • a search may be run on letters and attachments, and also through the files on all of a user's devices.
  • a tag classifier's probability may be taken into account when ranking search results. If an auto-tagging system is not sure about a classifier, the probability for the classifier is indicated.
  • Search results may also contain statistical information on directories. When switching to directories, selection in search results may be narrowed (or expanded). Search results may contain statistical information on tags. Search results may also be visualized to the user in a hierarchical tree structure, for example, where there is information on how many files are relevant to the search query, and the associated folder for those files.
  • the user might first perform tedious manual tagging operations, such as tagging names of his relatives and friends on faces and objects (e.g., sea, beach, house, tree, etc.) so that those faces and objects will be recognized and associated with the remainder of the user's photos and tagged in the future.
  • the user may not have time to perform this manual tagging.
  • the systems and methods disclosed herein alleviate the burden of manual tagging in a number of ways.
  • the system performs “social tagging” automatically. For example, when a user is posting some of his photos in social networks, other people are tagging the faces, objects, and places on the photos and commenting on the photos themselves.
  • the system can track these tags and comments and use them to create metadata for the particular photos which have already been posted, and use these tags and comments for initial tagging; after which the same people, objects, and places on other photos which have not yet been posted are recognized and categorized. Accordingly, the system (without requiring initial user tagging) builds a database of searchable metadata for both photos which have previously been posted in social networks and those which have not yet been posted.
  • the system may use various approaches such as morphology, semantics, fuzzy, and other approaches to perform a broader query, so as to eliminate a “no results found” result as many e-mail and file search systems would currently yield.
  • a user may query for a particular document by searching using the keyword “schedule.”
  • a typical search return string perhaps 100 results of files containing the word “schedule” may be linearly listed and presented to the user.
  • this scenario may not be the most beneficial to the user. For example, this scenario may look similar to the following:
  • Search query “Schedule” Search results: - Doc 1 containing “Schedule” - Doc 2 containing “Schedule” - ... - Doc 100 containing “Schedule”
  • One embodiment disclosed herein may add further results of terminology that the engine considers related, such as the following search for “schedule” that returned further results with the related terminology “program”:
  • Search query “Schedule” Search results: - Doc 1 containing “Schedule” - Doc 2 containing “Schedule” - ... - Doc 100 containing “Schedule” - Doc 101 containing “Program” - Doc 102 containing “Program” - ... - Doc 250 containing “Program”
  • the system may cluster the results of the searching by different common vectors, such as the following:
  • Search query “Schedule” Search results: Cluster 1: “Your upcoming NY trip - 15 results” - Doc 1 containing “Schedule” - Doc 102 containing “Program” - See other 13 results...
  • Cluster 2 “Your daughter's school - 50 results” - Doc 24 containing “Schedule” - Doc 28 containing “Schedule” - Doc 209 containing “Program” - See other 47 results.
  • Cluster 3 “Your last week Palo Alto event - 30 results” - Doc 15 containing “Schedule” - Doc 57 containing “Schedule” - Doc 234 containing “Program” - See other 27 results...
  • Cluster 4 “Your this month emails - 5 results” - Doc 13 containing “Schedule” - Doc 47 containing “Schedule” - Doc 214 containing “Program” - See other 2 results.
  • Cluster 5 “Your photos - 25 results” - Doc 63 containing “Schedule” - Doc 77 containing “Schedule” - Doc 211 containing “Program” - See other 22 results.
  • the system may conduct a search dialogue with a smart search assistant.
  • search queries are beset with issues such as a return of zero results, or a return of too many results and/or coupled with poor ranking of those results (i.e., the target document is not ranked first in the list of results).
  • the system and methods disclosed herein introduce a live assistant.
  • the live assistant takes verbal or textual queries from the user, who describes the data to be located. Based on this description, the live assistant may then query the user with suggestions.
  • the live assistant may query the user for more information to broaden the search.
  • the live assistant may suggest detail so as to narrow the search.
  • the live assistant is computer software code that can respond to inputs from the user and provide prompts to the user as disclosed herein.
  • the live assistant may be a human operator using another computing device to communicate with the user and provide prompts to the user as disclosed herein.
  • the user may have the option to conduct a dialog (verbal, text, or otherwise) with the live assistant in a natural language format. For example, the user may type the search query “find all the emails which include information about my meeting with investors,” or order, “move to folder 1 all of the photos taken yesterday.” The live assistant may then respond with a confirmation, such as “would you like to delete all storyboard photos?”
  • a dialog verbal, text, or otherwise
  • image and pdf text files may be pre-Optical Character Read (OCRed) (at least in some extent) so that if a user is searching the word “passport,” they can find images that include the word “passport.”
  • Photos and videos may be searched based on GPS location data and metadata information about the time of shooting (e.g., a user can specify a range of time the photo was taken “from/to,” a user can specify the geographical units in their own language, “photo made in the United States”).
  • Part of the metadata may be generated by the cloud service client system itself, such as, from where the file was received (e.g., saved from such a man of attachment to the letter, copied to the HDD #12, etc.).
  • color, shape, size, and position tagging on business graphics may be employed by the system.
  • a user may employ the following exemplary search “Seeking ExcelTM file, which has the round red diagram at the bottom of the last spreadsheet.” If the round red diagram has been tagged by the system, the system can recognize that the user is seeking the document that is an ExcelTM file and has such a diagram at the bottom of the document that is the color red and round in shape.
  • a search may also involve background information, which is not inside of the file, but for which a meaning may be extracted from previous history of correspondence or from external sources (FacebookTM, LinkedInTM, WikipediaTM, etc.) from the “dossier”—ontology companies, geographies, etc., which are built as a result of correspondence.
  • Search information may, in one embodiment, be extracted from common knowledge (synonymous/homonymous narrowing/broadening of the search).
  • the mechanisms of the illustrated embodiment provide for such functionality as fuzzy search, phonetic search, and search with the transliteration.
  • the system in one embodiment, can provide search not only for files on a local device, but also for files on all of a user's devices, as well as the letters, e-mails, messages, and various attachments.
  • the methods and systems disclosed herein offer advantages over a simple keyword search, particularly since the methods and systems herein relate to a user environment across multiple devices, platforms, file formats, and user file sharing and social networking systems.
  • a user may have to remember precise wording to find a desired file in traditional keyword searching.
  • a user may be able to find files, mails, and other objects by the general sense.
  • the system may parse the query, build a semantic structure and translate the semantic structure into an extended query using query interpretation and synonyms expansion based on dictionaries and ontologies.
  • the extended query may produce many irrelevant results so the ranking algorithms, systems, and methods disclosed herein based on semantic similarities, word positions, word frequencies, usage levels, importance levels, etc. are valuable in ordering and ranking search results. If relevant results are not found, it is beneficial not to show irrelevant results unless a user allows or desires such irrelevant results to be displayed.
  • the display of search results on a GUI is discussed at length herein.
  • the display of search results may be carried out in a variety of ways.
  • the search results may appear as a list of electronic files that the system has located. Representative information of the electronic files may be displayed in the list.
  • a preview of one or more of the electronic files may be automatically displayed on the GUI with the search results.
  • the user may position a mouse or pointer over representative information of an electronic file to get a preview to appear.
  • the user may have to click on the representative information or otherwise interact with it through the GUI (such as touching the representative information through a touchscreen) to get a preview of an electronic file to appear.
  • the system may display on the GUI search results in a way that does not immediately display information directly related to individual electronic files. Instead, the system may display the information in representative groups (also referred to herein as clusters or an amalgamation).
  • the system may display groups of search results based on the various characteristics or traits of the results. For example, electronic files that are found as part of the search results may be sorted according to data type. For example, the results may be sorted and grouped into clusters based on whether each result is a document, presentation, photo or other image, video, e-mail, contact information, message, or other sort of file or data type.
  • the clusters could also contain more than one data type in the same cluster.
  • a cluster could also represent all search results from a particular storage location.
  • a cluster could also represent search results from a certain period of time (when the files were modified or created, for example).
  • the clusters may be automatically determined by the system, or may be configured and defined by the user.
  • a group or cluster displayed on the GUI may also indicate how many electronic files of each type of files were found during the searching.
  • the system may display certain groups or clusters more prominently than others. For example, the system may automatically display a cluster representing documents that were saved on a hard drive more prominently than a cluster representing documents that were attached to e-mail messages. Although the system may automatically display certain groups and/or clusters with more prominence, the system may also be configured by the user to show certain groups or clusters more prominently than others.
  • a user may also expand a cluster to view representative information of the files that are represented in the cluster. The user may accomplish this through an interaction on the GUI with a particular cluster or group. Representative information of individual files within a cluster or group may also be displayed more prominently than others depending on system defaults or preferences established by the user.
  • the clusters or groups displayed by the system may be displayed as a hierarchical tree structure.
  • results may be shown in groups that are expandable and collapsible to demonstrate more detail regarding the search results.
  • the system may also indicate in a hierarchical tree structure, how many results regarding each level of the hierarchical tree structure there are.
  • search results may be displayed in clusters as a hierarchical tree structure.
  • the levels initially displayed in the hierarchical tree structure may sort the search results according to a first criteria.
  • the search results may be sorted into clusters depending on a data type. In other words, the search results are sorted based on what type of electronic file each file is.
  • Each level may also display how many relevant files are represented by the cluster or group.
  • a cluster or group is expanded on the GUI.
  • the expanded level may display representative information of each electronic file represented by the cluster or group.
  • the system may determine to do this where the number of files represented by a cluster are relatively low (for example, five electronic files or fewer).
  • further sub-levels of the hierarchical tree structure that represent sub-groups of the clusters or groups may be displayed. For example, if a cluster representing e-mail messages is interacted with, further sub-groups sorted by a second data type may be displayed on the GUI.
  • the sub-groups may be sorted by date, such as month and year the e-mail messages were received.
  • date such as month and year the e-mail messages were received.
  • other sub-groups may also exist, so that a set of search results is organized viewable based on several different categorizations based on data type, metadata, file location, and the like.
  • morphological searching may automatically utilize searching for words or forms of words that are similar to the words entered as a search term by the user.
  • the system may utilize metadata and tag searching.
  • the system can search information that is associated with an electronic file as metadata or tags for information relevant to the search terms entered by the user.
  • full text searching the system may search the entire contents of an electronic file for relevance to the search terms entered by the user.
  • Fuzzy searching also known as approximate string matching, may also be utilized by the system. Fuzzy searching takes a string of characters entered by the user as a search term and searches for a similar string of characters that approximately match the string of characters entered. In this way, if a search term that is entered has been misspelled, the system may be able to automatically search for the correctly spelled word rather than the misspelled word.
  • system may utilize context and interrelated information from electronic files to perform searches. For example, system may examine the content of electronic files on the system and utilize the examination to determine certain relationships or contexts. For example, an e-mail may contain a signature line with the name of a company that the sender works for. As a result, the system could return results for the company broadly during a search where a search term entered was the name of the sender himself.
  • Described herein are illustrative embodiments for methods and systems that provide for a displaying files indicating file location. Also described herein are systems and methods which allow users to disclose, access, distribute, synchronize, manage, and search different types of content and electronic files, including but not limited to file content, communication content, contact content, and other personal information across multiple devices and cloud servers. Also described herein is a graphical user interface (GUI) that displays representative information of different electronic files. The electronic files may be physically stored on multiple devices, but the representative information relating to the electronic files may be displayed on a single GUI.
  • GUI graphical user interface
  • the representative information of an electronic file may include the physical location where the electronic file is stored, the size of the electronic file, a date and/or time the electronic file was created or last modified, a file type of the electronic file, a preview of the electronic file, or any other representative information relating to the electronic file.
  • a user can interact with the GUI to view, open, access, organize, backup, synchronize, distribute, or locate different electronic files stored on various electronic devices.
  • Representative information as defined herein may include, but is not limited to, various types of metadata.
  • the system can determine the presence of electronic files of a user among multiple devices.
  • the user may utilize a tablet, smart phone, laptop, universal serial bus (USB) drive, cloud storage, set top boxes (smart TVs), and many other electronic storage and computing devices and methods.
  • software applications may include files that relate to a user or the user has access to. Such files may include e-mails, messages, chats, documents, pictures, videos, contacts, or other electronic data.
  • the system can determine all of these types of data from a plurality of devices and index the data. Even if a user was not the creator or owner of the document, the system can index the data as long as the user has access to it.
  • the index may be stored on a particular device of the user's, for example, a laptop.
  • the user may also designate which device will store the index.
  • the index will be stored on a cloud storage system.
  • the index may be updated regarding changes to data or files on any device whenever the device is connected to the internet.
  • representative information of the electronic files can be displayed on a graphical user interface (GUI) to a user.
  • GUI graphical user interface
  • the representative information may be displayed in a single window format.
  • Representative information may include a file name, a file preview, date last modified, version number, date created, number of related files, number of files in a folder, and any other information relating to an electronic file.
  • the representative information may include information regarding the location of the electronic file. The location information can be indicated utilizing a symbol or icon. For example, if a file is on the user's smartphone, a smartphone icon may be used to indicate the location of the file.
  • the device where a file is stored may be part of the representative information.
  • the system may also index a virtual location of a file. For example, regardless of where an e-mail might be physically stored, it might be virtually located in a user's e-mail inbox within the system and displayed as such whenever the inbox is displayed on the GUI. In this case, the system may indicate either or both of the virtual and physical locations.
  • the representative information may be displayed in a single window, but may be divided within a multiple tab configuration.
  • a GUI may include tabs for files, photos, e-mails, and contacts.
  • the GUI may have tabs for files and e-mails, where photos are categorized under files and contacts are categorized under e-mails.
  • the user may be able to switch between tabs by interacting with the GUI.
  • a user may utilize a motion translation device and input, such as a touchscreen in which the user may touch the location on the screen where one of the tabs appears, activating and displaying that tab.
  • the user may touch the different tab.
  • the user may use a mouse or touchpad to locate a pointer over the desired tab on the GUI. The user may then make another input, such as a single mouse click, to activate and display the desired tab the pointer is located over.
  • the representative information of electronic files displayed by the system may include information relating to where and how the electronic files are stored.
  • 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.
  • the system may indicate the status of both devices.
  • the system may only indicate enough about the status of the devices to indicate whether the file is available for opening and/or editing.
  • 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.
  • the connections speed or status of a device may be indicated.
  • 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.
  • a device status 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.
  • the representative information relating to the file can be displayed.
  • the representative information for a file may be manipulated or changed by the user. For example, if the user receives a file through a file sharing website or attached to an e-mail, the file may have a computer generated name or a name that is otherwise undesirable by the user. Accordingly, the user may then change the name of the file that is used in the representative information. Any other of the representative information may also be changed by the user.
  • the system may also display a preview of electronic files on the GUI. This may occur automatically, or may occur based on some sort of interaction by the user with the GUI. For example, the system may display the preview only if the user clicks or taps on the file once. In another example, a preview may be displayed when the user moves a pointer over a file. In another embodiment, a preview may be automatically displayed, but a further preview may be displayed when a file is interacted with. For example, the first page of a document may be shown, and when a pointer is moved over the document, the second page of the document is shown. In another example, a thumbnail of a picture may be shown.
  • a larger and/or more high resolution version of the photo may be displayed by the system.
  • the system may extract all or a portion of content from an electronic file to generate the preview. For example, where a first page of a document is used as a preview image, the first page of the document is extracted.
  • Various types of previews may be displayed by the system.
  • a preview may include a first group of words from a document or message (such as an e-mail).
  • Another preview may be a thumbnail image of a larger image, or a screen shot of a video.
  • the preview image could also include some or all of the contact information relating to an e-mail or other type of message.
  • a preview image could also include a task information relating to an electronic file.
  • the electronic file is a task list, reminder list, or calendar
  • a task list, reminder list, or calendar may include information that can be used in the preview.
  • a reminder list may include an item reminding the user to pay their rent.
  • a preview of the reminder list or of the item on the reminder list itself may include the text “Rent is Due!”
  • such a task or preview may be derived from an e-mail, such as an e-mail requesting information from the user.
  • the preview of such an e-mail may include text indicating the request.
  • context menus may be used.
  • Context menus are menus that pop-up on the GUI relating to a particular part of the GUI.
  • a context menu may pop-up if a user moves their mouse over the representative information of an electronic file.
  • the user can move a pointer over the representative information and make another input, such as a mouse click, to get the context menu to display.
  • the user may only input with regard to the representative information, and a pointer may not be utilized.
  • a context menu may include information related to a particular electronic file or actions that may be taken related to the electronic file.
  • a context menu may indicate that an electronic file is classified as read only.
  • a context menu may present a user with options relating to the electronic file, such as download the file, delete the file, rename the file, move the file, back-up or copy the file, etc.
  • various user inputs and interactions may be made to effectuate opening an electronic file by clicking on or otherwise interacting with the representative information of a file on the GUI.
  • the user may activate the system disclosed herein.
  • the user can then navigate to or search for the representative information of the document desired, and tap on it through the touch screen of the tablet.
  • the system receives the input from the user, and the system then uses an application that matches the file type of the document to open the document and display it to the user on the tablet.
  • the application may be located on the tablet or located elsewhere. As long as the system has access to the application, the document can be opened.
  • the system may select an application to utilize when opening a document based on a number of factors. For example, the system may consider whether the user made any choices regarding what application to use (e.g., an open-with option) or how the file should be displayed (e.g., read-only). The system may also choose an application that is appropriate for the device the user is currently using. The system may also select an alternative application to use where a preferred application is not available. In an alternative embodiment, electronic files that have been opened may be displayed directly by the system and even edited within the GUI. If a document is not available (for example, the device where the document is stored is offline), the system may automatically find another copy or replica of the document on another device and open that one.
  • an application to use e.g., an open-with option
  • the system may also choose an application that is appropriate for the device the user is currently using.
  • the system may also select an alternative application to use where a preferred application is not available.
  • electronic files that have been opened may be displayed directly by the system and even edited within the GUI.
  • the system may be able to locate a copy or a replica of the document on an e-mail server or otherwise find it among other message types that the user has sent or received.
  • the GUI may display some representative information more prominently than other representative information.
  • the representative information includes an icon such as a piece of paper type icon for a document.
  • the piece of paper type icon for certain files may be displayed larger and/or further toward the top of the GUI than the icons for other files.
  • Such a difference in prominence may be random, so as to make the display less monotonous and more pleasing to the eye.
  • groups of files are displayed together in a solitary representative information, different groups of files represented by an icon or symbol may also be displayed more prominently than other groups or individual files.
  • such differences in prominence may result from a decision made by the system to display the representative information of the files accordingly. For example, the system may determine to display more recently opened or edited files more prominently.
  • the system may display messages that have been received but not read or responded to more prominently.
  • the system may display photos or videos posted to the user's social networks that have a relatively greater number of social interactions with others on the social networks more prominently. If the system is displaying search results, the system may display results with more relevance to the search more prominently. Other criteria, such as number of times modified, date created, size of the file, or tag or metadata associated with the file, may also be used by the system to determine how to determine representative information to display more prominently on the GUI.
  • the GUI may also display a representation of a current storage utilization of a device in which the GUI is being displayed.
  • the representation may include a graphical representation indicating a percentage or fixed amount of free storage space and used storage space.
  • such a representation may be used to indicate an amount of free and used storage space on a different device.
  • such a representation may be used to indicate an amount of free and used storage space on all of the user's devices combined.
  • such a representation may be used to indicate an amount of free and used storage space in a portion of a cloud storage space allotted to the user.
  • such a representation may be used to indicate an amount of free and used storage space in all of the user's devices and the portion of the cloud storage space allotted to the user.
  • the representative information displayed on the GUI may include a hierarchical tree structure.
  • a hierarchical tree structure may indicate the various physical devices of the user and the files and folders stored thereon.
  • the hierarchical tree structure may also indicate the files and folders stored on a user's allotted cloud storage space.
  • a hierarchical tree structure may alternatively or additionally display files in their designated virtual locations.
  • a virtual file location is defined herein as a location the system visualizes a file being in, even if the file is not physically stored there. For example, a virtual location of “My Music” may contain all of a user's audio files, regardless of what device or folder the audio files are in.
  • each audio file has a virtual location of the My Music folder.
  • Other files and contacts may similarly have other virtual locations as determined by the system or the user.
  • a virtual file is defined herein as a file that is a merged version of several files.
  • the virtual file may physically exist on a storage device, or may exist locally when opened by the user and incorporates data from multiple physical files.
  • a virtual file may be displayed as representative information on the GUI.
  • the representative information may indicate that it is a virtual file, or the representative information may appear similar to the representative information for any other file, not indicating to the user that the file is a virtual file.
  • the representative information displayed on the GUI may be an amalgamation of representative information of multiple files.
  • the amalgamation may be represented by a circle.
  • the circle may be sized according to the number of files represented by the amalgamation, a relative importance of the grouping of files, or other criteria.
  • the amalgamation may also include text, such as the device or devices where the files in the amalgamation are stored, a file type or types of the files in the amalgamation, a total size of the amalgamation, or a preview of at least one of the files in the amalgamation.
  • Electronic files indexed, displayed, used, etc. by the system can include many things.
  • files as defined herein may include things such as documents, presentations, spreadsheets, e-mails, messages, audio files, video files, contact information, web pages, information from webpages, tasks, calendars, and the like.
  • Such files may be gleaned by the system from various sources such as local file storages powered with operating systems (e.g., laptops, phones, tablets, media centers, etc.), external passive file storages (e.g., external hard drives, memory sticks, CD/DVD's, etc.), cloud storages (e.g., DropboxTM, Google DriveTM, EvernoteTM, FlickrTM′ FacebookTM galleries, etc.), e-mail accounts (e.g., GmailTM, HotmailTM, YahooTM mail, exchange servers, etc.), messenger services (e.g., TwitterTM, SkypeTM, SMS, SnapchatTM, ViberTM, Google HangoutsTM, etc.), social media feeds (e.g., FacebookTM′ Google+TM LinkedINTM, etc.), contact lists (from e.g., e-mail accounts, messengers, telephone, personal address books, OutlookTM contacts, etc.), tasks, calendars, dictionaries, encyclopedias, internet sites, and any other services like FineReaderTM online.
  • operating systems e.g
  • the systems and methods disclosed herein provide benefits over an exclusive utilization of cloud storage.
  • Some people store information in a cloud storage in order to synchronize information on different personal devices.
  • cloud storage is not necessary because personal devices have become very productive, and often have sufficient capabilities to handle the needs of many users without resorting to cloud storage strategies.
  • the amount of data produced by some people is so massive that transferring that data to cloud servers may be cumbersome and time consuming. For example, a digital camera owner may return from a vacation with hundreds, if not thousands, of photos or videos in high resolution.
  • the photos and videos could occupy multiple gigabytes of memory in the cloud storage servers, and may additionally severely tax data transfer resources to move all the photos and videos to a cloud server.
  • many devices have become wirelessly connected to each other (e.g., smart TVs, media centers, cameras, fitness bracelets, GoogleTM-glasses, other wearable computers, etc.) so that it may be preferable to keep some data on local devices rather than remote servers. Additionally, much of the data that could be stored on a cloud storage may never be used again, thus unnecessarily taking up space on the cloud storage servers.
  • the systems and methods discussed herein provide for a multiple device storage system where files can be organized across all personal devices, cloud locations, and applications (e.g., e-mail, word processing, videos, pictures, etc.). Further, people share computer files sending them as e-mail attachments or attaching them to instant messages, social media feeds, blogs, or publishing them in their galleries or cloud storages. Accordingly, the systems and methods herein provide for organization and searching not only across all personal devices and cloud locations but also through a user's e-mails, instant messages, social media feeds, blogs, media galleries, and other communication content.
  • a system can display, access, distribute, synchronize, manage, and search different types of content, including but not limited to file content, communication content, contact content and other personal information across multiple devices and cloud servers.
  • the system may also include a server system that communicatively couples to an agent-type application on one or more client devices.
  • a user may be able to perform a customizable search. For example, a user may wish to only search for a certain type of electronic files or content, such as contact information files. In this example, the user is able to specify that contact information files should be searched. In another example, the user may wish to only search among spreadsheet type electronic files. In another embodiment, the user may specify that he or she would only like to search among electronic files that are stored on particular electronic devices. For example, a user may specify that he or she would only like to search for electronic files on the user's mobile phone and cloud storage system. In other examples, these functionalities may be combined and mixed by the user. For example, the user may specify in the system that only videos from the desktop computer are the subject of a search. Regardless how a user defines such a custom search, the system may rank the search results and display the search results according to systems and methods disclosed herein.
  • a method provides multi-platform content access, distribution, and synchronization of files on different devices including using a client-side application to manage transfer and presentation of files on a device and across server systems.
  • a method provides multi-platform content access including full-text indexing of the content, files, and metadata of files located on a device and searching of files using full text index located on a server system.
  • a method for displaying data from local, external, offline, and other sources in a single interface presented to a user.
  • the display can also include information on where the data and/or files are actually stored.
  • a computer-readable medium may include instructions executable by a processor to cause the processor to perform functions enabling multi-platform content access, distribution, and synchronization on different devices.
  • Such instructions may be embodied in a client-side computer organization application.
  • systems and methods as disclosed herein can effectively manage data shared between such devices.
  • the systems and methods disclosed herein address platform content access, distribution, and synchronization of data and files, while managing the data and files as well.
  • 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.
  • 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.
  • 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.
  • the embodiments disclosed herein provide file and/or data management functionality, such as opening, copying, moving, deleting, archiving, sharing, and editing.
  • the disclosed embodiments promote technology to automatically smart move files in a user's family cloud, so that there is always space on the user's phone and laptop, and the most necessary files are always at hand.
  • the embodiments disclosed herein also provide search functionality.
  • 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.
  • the embodiments disclosed herein can examine the metadata for full-text content utilizing a fuzzy search, within the meaning according to different ontologies, etc.
  • a repository of data will not be stored in the cloud for users concerned about privacy and security issues.
  • 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.
  • the architecture envisioned can either utilize or not utilize a mirrored or master copy of the index/catalogue data in the cloud.
  • 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.
  • such an arrangement may be considered a peer-to-peer index and data synchronization process.
  • 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.
  • various embodiments disclosed herein promote (a) disclosure, (b) manage, and (c) search information functionality for (1) locally stored files, (2) offline files, (3) cloud-based files, (4) e-mail information (whether stored locally, offline, or remotely), (5) instant message/short message format information (again stored in a variety of locations), (6) social media feeds, (7) contact information, (8) other type of content including but not limited to dictionaries and encyclopedias, tasks, calendars, etc.
  • An illustrative embodiment includes a distributed platform and a client application that allows users to have very easy access to their files and e-mail.
  • the embodiment brings together all user information sources available in the user's network, including local and cloud sources, external devices, social networks, e-mail, and telephone communications.
  • 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.
  • Another illustrative embodiment includes a platform based on a back-end and a front-end, native client and external device architecture. Any product/service that generates data and files (documents or messages) can integrate with this platform as a source of data and files. Accordingly, the user can see these data and files in a uniform interface with an ability to search, tag, preview, manage, share, etc.
  • the platform may include built-in smart rules and notification functionality. For example, a particular device may be wearable, such as a fitness bracelet. This device, through the embodiments disclosed herein, may trigger a rule or notification based on the activity of the user to provide an alert.
  • embodiments as disclosed herein may include infrastructure through which data may be displayed. For example, a user may again be wearing a device, through which the infrastructure facilitates the viewing of a video message or otherwise displays data.
  • agent software is installed under Operating System (OS) software.
  • OS Operating System
  • the agent extracts text and metadata from all local files and e-mail and passes on the data to a server or other local or remote processing device (herein referred to as cloud service) for indexing.
  • cloud service a server or other local or remote processing device
  • the agent monitors changes in files.
  • the agent collects the actual aggregate of all the devices of the user code and creates a local copy of the relevant index (cache).
  • the cloud service provides a combination of a simple, but very dynamic, attractive, and convenient e-mail client and a simple, but very comfortable file manager.
  • a program may function in ways used in a traditional e-mail client (e.g., MicrosoftTM OutlookTM), but also may include the ability to view not only an e-mail message but also files included in correspondence.
  • This program, a client tied to the cloud service, or cloud service client may be implemented for desktop operating systems (OSXTM and WindowsTM), and for mobile operating systems, such as iOSTM and AndroidTM.
  • the cloud service client interface for desktop OS is very fresh and light in the spirit of interfaces for mobile OS.
  • This program is not intended to replace traditional e-mail clients or file managers, but aims to make working with mail and files easier.
  • a first type of functionality may serve to review incoming mail.
  • a system may provide a radically more convenient way of presenting the incoming mail than traditional systems, such as OutlookTM and Mac Mail. Such a presentation may be based on the fact that important messages are displayed in a different way than un-important messages.
  • Another feature of such a system may relate to the formation of responses to messages directly within the cloud service client.
  • a file may be shared as either a copy or a replica.
  • a copy of a file is identical to the original file at the time of duplication, but is not automatically updated after changes in the original file on a separate machine.
  • a replica of a file is identical to the original file at the time of duplication, and is automatically updated after changes are made to the original file, even if the original file exists on a separate machine than the replica file.
  • the local storage associated with the camera can be emptied, or at least can always have some available memory.
  • the data can be made accessible from and to the user's network of devices, from cameras, phones, tablets, wearable devices, and others.
  • the data can be made accessible to the user's contacts.
  • the data can be retained in one backup location, while freeing space on the user's other devices.
  • the interface allows Original Equipment Manufacturers (OEMs) access to retain communication with the user to enhance consumer loyalty, address usage (i.e., provide instruction to the user), and maintain accessibility in the event of a recall, warranty, or other consumer support issue.
  • OEMs Original Equipment Manufacturers
  • Illustrated embodiments incorporate innovative data management functionality, for example, an ability to automatically move the files between a user's devices and a public, private, or personal storage account, so that: (1) the cloud service client moves important and frequently used files to the user's local device, (2) the client always maintains a certain predetermined amount of free space (e.g., 25%, 30%, 35%, 40%, etc.) on the local device by gradually moving less-used files to remote devices, and (3), the client keeps copies of important files at 2 or 3 physical locations on different devices to avoid data loss caused by the loss of one of the devices or data unavailability due to no network access. In other words, an important file can still be accessed from one device even while a second device containing the file is offline.
  • a certain predetermined amount of free space e.g., 25%, 30%, 35%, 40%, etc.
  • An example can be the following usage scenario.
  • a user inserts a secure digital (SD) card containing photos into a device.
  • the system then copies newer photos on the SD card to a photo folder on the local device, while retaining free space on the device as will be further described.
  • the system can then apply optional photo filters, smart tagging, object-facial recognition, audio tagging, and the like.
  • Newer photos are then replicated from the photo folder to an external hard drive or default backup device.
  • the newer photos can also be replicated from the photo folder to a replica at a remote storage location (e.g., cloud).
  • the replica copies on the cloud storage may serve as the backup copies or may be separate from the backup copies.
  • the user is then able to share the photos with contacts as indicated on the interface. For example, certain icons may be displayed to indicate that the photos are available in the system.
  • the user may be able to click on an icon of the interface to start a slide show, share the photos, or perform another activity.
  • the user may turn on a scanner, and receive scans to a scan folder on his laptop.
  • the mechanisms retain enough free space on the laptop by moving older images and retaining newer ones.
  • the system may also apply photo filters, de-skew, perspective correction, optical character recognition (OCR), smart tagging, object-facial recognition, audio-tagging and the like.
  • Newer scans can be replicated from the scan folder on the laptop to an external hard drive or default backup device.
  • Newer scans can also be replicated from the scan folder to the remote storage location, again while retaining a certain amount of designated free space on the laptop and external and remote storage locations. The user is therefore able to share the scan with contacts as indicated by the interface.
  • the system may implement an external communications link with a device that is accessible via the Internet, for example.
  • the link may be provided to a user, whom after a short registration process then has the ability to connect a device through the external communications link, which then provides the user with OEM vendor content and accessibility through the interface.
  • the user may be asked to register an SD card, or verify a camera connection, during which the camera version is determined or confirmed.
  • the mechanisms then will allow bi-directional communication between the user and the OEM via, for example, a designated tab, which may display OEM vendor content therein.
  • Software incorporating such embodiments may be installed via sharing (link shared via e-mail or other social networking contact), file sharing requiring installation of the software itself, or download from the appropriate website.
  • the software may prompt for login information. If the user has used the software before, the user may be prompted to enter a login ID (such as an e-mail address) and a personal password. If the user has not used the software before, the user may be prompted to enter their e-mail address. A confirmation message can then be sent to the user's e-mail address that includes a temporary password in the message.
  • a software window is displayed.
  • the left-hand side of the software window is empty initially. This side may be referred to as the workspace.
  • available icons for sources such as my hard drive, external drives, if currently connected, cloud drives, Exchange, mail servers (Gmail etc.), other locations: camera, media centers etc., and other computers may be displayed.
  • a user may be able to interact with the icons that represent the various sources. For example, a user may be able to drag an icon representing a source into the left-hand side workspace. By doing so, the software will recognize that the user has assigned that service or device to their personal cloud. The dragging may be accomplished using a mouse in a point and click fashion, or may be accomplished using a touch screen of some kind.
  • the user may drag their hard drive icon to the left (the workspace).
  • the software can further query the user for specific folders from the device that are to be indexed. By default, it suggests to index all folders on the user's local disk except for applications.
  • the user can also connect their traditional e-mail clients (e.g., OutlookTM, ExchangeTM etc.). As soon as devices are assigned to the user's personal cloud, the workspace on the left is filled with a list of folders and files that have been assigned to the cloud storage.
  • GUI graphical user interface
  • the user views two large tabs: one for files and one for e-mail.
  • a third tab may also be presented on the GUI for contacts.
  • other tabs may exist as well.
  • other tabs may include calendar and tasks tabs.
  • a search field may also be presented on the GUI.
  • the system may display on the GUI a progress of the indexing. In the indexing, the system can detect duplicate files or very similar files in the user's personal cloud or other devices. For example, such matched files categorized as duplicates or other matched files may be categorized based on how well they match each other.
  • 100% duplicate files may have the exact same content and metadata, including the date and time the files were created and/or modified.
  • 99.9% duplicate files may have the same content and metadata, save for being created at and/or modified at a different date and time.
  • 99.8% duplicates may have the same content but may have different other metadata, such as a different file name.
  • 99% similar files may have small differences in content.
  • the system may offer to consider files that are not 100% duplicate files as different versions.
  • the system may utilize a different threshold. For example, the system may only offer to consider files that are 99% similar as different versions.
  • the system may also consider the date and author of a last modification of a file, which of the files originates in an e-mail, by whom a possible e-mail was sent, when a possible e-mail was sent, etc.
  • the system may utilize that information to make automatic decisions for indexing files. For example, if files meet a certain threshold of similarity or are duplicates, the system may only save the most recently modified version. In another example, the system may save all versions of the file but designate one version as an official version using one of the aforementioned criteria.
  • the system may offer to merge duplicates into one file.
  • the system may treat these physical files as a single logical file and synchronize the changes of this file across all its physical copies. If the duplicate is located within the same physical medium, the software will remove the physical duplicate (keeping an official copy).
  • the system may also analyze a user's e-mails and clear up the user's disorganization in contacts. Namely, the system may assign heuristically photos (or avatars) to any contacts of the user. The system may also obtain the photos or other information about the contacts from the user's social networks. For example, the system may obtain the 50 most active contacts with whom the user had communications in the last six months and may search for their e-mail addresses in a first social network. The system may also use other criteria to search for the contacts in the first social network, such as name or other data relating to a contact that the system may be able to glean from e-mails from the contacts or information manually entered by the user relating to the contacts.
  • 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).
  • a kind of dossier can be assembled for each contact. That is, the system can associate documents, files, e-mails, photos, etc. with each of the user's contacts. The system may also identify among all of the user's e-mail addresses, e-mail addresses that are preferred for e-mailing a contact, e-mail addresses that are not preferred for e-mailing a contact, and any wrong e-mail addresses (either e-mail addresses that are not valid or e-mail addresses that are not properly associated with the correct contact). The system may also add comments to e-mail addresses. Similarly, the system may clean up phone numbers on a contact list by analyzing the history of the user's SMS correspondence and phone calls. The system may also associate phone numbers with e-mail addresses that belong to the same contact.
  • 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.
  • 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.
  • 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.
  • the system could generate a recommendation to correspondences that request a response (RSVP) for an event.
  • RSVP response
  • 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 FacebookTM message, or other type of message that includes the recommendation.
  • SMS short message service
  • the recommendations could also be added to a calendar, task list, or reminder list for the user.
  • the recommendation could comprise an icon displayed along with the e-mail message.
  • data to or from each contact can be automatically assigned a rank of importance.
  • the rank of importance could be represented by a number, such as a number from 1 to 100.
  • the rank of importance could also be a high, medium, or low categorization. Other ways of ranking may also be used.
  • the user may change the ranking system manually, and may also change the rank of particular data manually.
  • the ranks of importance for data may be used to determine how to visualize the incoming messages and e-mails from different contacts. For example, messages from higher ranked contacts or related to higher ranked conversations may be displayed by the system more prominently than other messages.
  • 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.
  • 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.
  • 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.
  • 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.”
  • 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.
  • 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.
  • 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.”
  • 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.
  • 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.
  • 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.
  • the system also allows any files to be moved, deleted, renamed, and copied in any personal cloud.
  • 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.
  • being online means being connected to the internet.
  • 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.
  • 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.
  • the user 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.
  • the user may designate those files and folders that he does not wish to be indexed.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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).
  • LAN local area network
  • WAN wide area network
  • Internet Service Provider an Internet Service Provider
  • 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.
  • 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).
  • 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.
  • FIG. 1 is a representation of a graphical user interface (GUI) 100 demonstrating an e-mail interface in accordance with an illustrative embodiment.
  • GUI graphical user interface
  • the GUI 100 includes two tabs toward the top, an e-mails tab 105 and a files tab 110 .
  • the e-mails tab 105 and the files tab 110 may, in an alternative embodiment, include a number indicating the number of e-mails or files indexed on each respective tab. In another alternative embodiment, a number in the e-mails tab 105 or the files tab 110 may also indicate a number of unread or new e-mails or newly indexed files.
  • the GUI 100 further includes secondary tabs 115 .
  • These secondary tabs 115 can help further sort the e-mails displayed when the e-mail tab 105 is selected.
  • GUI 100 the e-mail tab 105 is selected, and thus the secondary tabs 115 are displayed.
  • the secondary tabs 115 include options for sorting e-mails such as all, important, work, family, friends, architect, social, promo, and more. Some of the secondary tabs 115 are default and some are user defined. If a user selects one of the secondary tabs 115 , e-mails relating to that tab are displayed. In one embodiment, multiple secondary tabs 115 may be selected. Accordingly, e-mails may be sorted based on multiple criteria.
  • any e-mails that relate to either of the subjects of the tabs are displayed.
  • selecting two tabs displays only e-mails that relate to both tabs. More than two tabs may also be selected in various embodiments.
  • the GUI 100 also includes a search space 120 . If a user enters text into the search space 120 , the terms entered may be searched for among e-mails. The searching may search for the exact characters entered into the search space 120 or may include fuzzy searching. In an alternative embodiment, a search may be performed in areas other than just the e-mail folder.
  • the GUI 100 also includes a settings and alerts icon 125 . If the user selects the settings and alerts icon 125 , the user is directed to displays that allow the user to change settings or alerts related to the system and methods disclosed herein. For example, wherever throughout this disclosure a feature is described as configurable by the user, the user may be able to navigate to a GUI that allows them to configure such a feature through the settings and alerts icon 125 .
  • the GUI 100 also includes e-mail previews, that preview individual e-mails.
  • e-mail previews 130 , 135 , and 140 are all shown on GUI 100 .
  • E-mails 130 and 140 include an attached picture that is displayed in the preview.
  • E-mail 130 includes multiple photos in the preview. One is displayed more prominently than the others.
  • Each of e-mails 130 , 135 , and 140 include text that is displayed in the preview.
  • E-mails 130 , 135 , and 140 also include a photo or avatar of the sender of the e-mail, the sender's name, and the date and time the e-mails 130 , 135 , and 140 were sent.
  • e-mail 130 has been selected for full viewing by the user. Such selection may occur by the user tapping or clicking on the e-mail 130 .
  • the full view 145 shows much of the same information as in the preview, except larger and more easily viewable.
  • the full view includes much better views of photos 150 and 155 .
  • the user may interact with the photos 150 and 155 to cause a photo that is not displayed prominently by default, such as photo 155 , to be displayed more prominently.
  • the e-mail 130 had more text then it currently does, the full text may be visible in the full-view 145 but not the preview.
  • the GUI 100 also includes a contact info 160 .
  • the system automatically displays the contact info 160 of the sender of the e-mail that is selected for the full-view 145 , in this case e-mail 130 .
  • the contact info 160 includes the sender's photo or avatar, name, telephone number, groups, and e-mail history.
  • Gary Thomas is part of the friends and architects groups.
  • secondary tabs 115 such as friends or architect
  • e-mails from Gary Thomas may be displayed on the GUI 100 .
  • the groups that Gary Thomas is a part of may be automatically selected based on the interactions between the user and Gary, the content of the correspondence between the user and Gary, or information from the user's social networks.
  • the system may automatically put Gary in the Family group.
  • the user may configure and determine the groups that a contact belongs in.
  • the e-mail history displayed in the contact info 160 indicates the magnitude of correspondence between Gary and the user. In this case, the user has received 23 e-mails from Gary and sent 32 e-mails to Gary.
  • the GUI 100 in FIG. 1 may be similar to a GUI used to display search results for an e-mail message specific search.
  • the user may have indicated a desire to only search for e-mails. This desire may be indicated by the fact that the user has navigated to the e-mails tab 105 and subsequently performed a search in the search space 120 .
  • e-mails that are relevant to any search criteria may be displayed on the left of the GUI 100 .
  • e-mails 130 , 135 , and 140 may be examples of e-mail search results.
  • the e-mail 130 is selected and the user can see further information relating to the e-mail 130 in the full-view 145 .
  • the user may be able to verify and locate the information they seek through the search without having to open different e-mails in a separate application.
  • Another advantage of the current system is that a search of e-mails performed using the GUI 100 may search for e-mails across multiple e-mail and messaging platforms. For example, the system could search across multiple e-mail exchanges and inboxes for each of a user's e-mail addresses.
  • the system may search across any messaging services the user utilizes, such as instant messaging apps for a smart phone, chat services online, and the like.
  • the search results displayed on the GUI 100 may reflect a ranking of search results.
  • the e-mail 130 may be ranked higher than the e-mails 135 and 140 since it is displayed closer to the top of the GUI 100 .
  • e-mails 130 and 140 may be ranked higher than e-mail 135 for example, because they are displayed more prominently and with attachment previews, which e-mail 135 does not have.
  • FIG. 2 is a blown-up representation of a GUI 200 demonstrating an e-mail interface in accordance with an illustrative embodiment.
  • fewer, additional, and/or different components may be displayed on the GUI.
  • the e-mails displayed are all related to one another. That is, the several e-mails form a sort of conversation among the senders. In this instance, the e-mail messages are displayed from oldest to newest. In this way, the e-mails can be read along the normal flow of conversation when the e-mails are read from top to bottom.
  • FIG. 3 is a block diagram illustrating a file transfer system in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be included in the system.
  • an e-mail file sharing architecture may include e-mail software 301 on a sending computer, an exchange server on the sender side 304 , a server on the recipient side 305 , and e-mail software 306 on the recipient computer.
  • sender's e-mail software 301 is able to access a file# 01 302 in sender's digital storage (the file to be sent) and generate an e-mail message 303 with a copy (file# 02 ) of file# 01 attached.
  • E-mail message 303 is sent through servers 304 and 305 to the recipient's software 306 as shown by the arrows on FIG. 3 .
  • Recipient's software 306 receives e-mail message 307 (a copy of message 303 ), which contains a file# 03 (a copy of attached file# 02 ).
  • the recipient machine may save a copy of file# 03 locally to a recipient computer as file# 04 308 .
  • the software 301 may be OutlookTM
  • the server 304 may be an ExchangeTM server
  • the server 305 may be a GmailTM server
  • the software 306 is Mac-OS Mail. This embodiment is merely for illustration. Any other server and software types may be used in different embodiments of such a system.
  • FIG. 4 is a block diagram illustrating a second file transfer system in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be included in the system.
  • an integrated e-mail file sharing architecture may include e-mail software 401 on a sending computer, an e-mail server on the sender side 405 , an e-mail server on the recipient side 407 , and e-mail software 408 on the recipient computer.
  • an e-mail message 403 is composed using client software 401 and software 401 receives an indication that file# 01 402 should be made accessible through the message 403 .
  • software 401 may access file# 01 402 and upload a replica or copy of file# 01 to a cloud server 406 .
  • the replica or copy is stored as file# 02 on cloud server 406 and software 401 receives access information for accessing file# 02 .
  • software 401 sends the access information to a cloud-based server and the server generates a document (page# 01 ) 404 containing the access information.
  • the access information may be stored in the form in which the cloud-based server receives it.
  • An indication of page# 01 (such as a network address, Internet address, linked file, or connection executable) is received or generated by software 401 and, in response to the indication being received or generated by software 401 , software 401 inserts or attaches the indication (or page# 01 itself) to message 403 .
  • Message 403 is sent through servers 405 and 407 to software 408 .
  • the recipient software 408 is a standard e-mail client
  • the recipient receives e-mail message 409 (which is a copy of message 403 ) from server 407 and accesses the link to the cloud-based server.
  • the recipient computer accesses page# 01 404 from the cloud-based server.
  • the recipient computer may receive a message encouraging the recipient to use the cloud-based e-mail client, along with a download link.
  • page# 01 the recipient is furnished with the link with access information to file# 02 on the cloud storage 406 .
  • Recipient computer may use the link to access cloud storage 406 and download file# 02 , forming file# 03 —local copy or replica of the file# 02 .
  • file# 03 may be either a copy or a replica of file# 02 . If file# 03 is a replica, then file# 01 or file# 03 may be updated when the other is edited. The updating may be accomplished through cloud-based server 404 so that file# 02 need not be stored on cloud server 406 to maintain the connection between file# 01 and file# 03 . In other implementations, file# 02 may continue to be stored and may serve as a link between the replica files.
  • sender software 401 is also not a cloud-based client, then an agent process may be included as an add-on to software 401 .
  • the agent may accomplish the uploading and attachment/insertion of the link that would have been performed by the cloud-based client.
  • message 403 may be sent and received in the same way as described above.
  • Sender composes OutlookTM e-mail message, then runs the “attach file” command.
  • FIG. 5 is a representation of a GUI 500 demonstrating a multi-file type view in accordance with an illustrative embodiment.
  • the GUI 500 includes e-mails tab 505 and files tab 510 . These two tabs may function similarly to the e-mails and files tabs described above with respect to FIG. 1 .
  • the files tab 510 is selected, and therefore files, instead of e-mails, are displayed in the GUI 500 .
  • the GUI 500 also includes secondary tabs 515 , which are similar to the secondary tabs of FIG. 1 , except that here the secondary tabs 515 can be used to sort and view files instead of e-mails.
  • the work secondary tab 515 is selected, so that files relating to the user's work are displayed.
  • the GUI 500 indicates with icon 520 which secondary tab is selected.
  • the icon 520 is a folder because there is an actual virtual folder for work related files.
  • the displayed files in the GUI 500 may be stored on different devices, but can still be located in the same work virtual folder.
  • the space size indicator 525 indicates that the work virtual folder contains 2.3 gigabytes of data. In an alternative embodiment, the space size indicator 525 may also indicate a space remaining that is allotted to the user or the user's virtual work folder.
  • the folders display 530 of the GUI 500 shows that there are six folders associated with work.
  • the folders display 530 also shows the six individual folders 540 .
  • a folders size indicator 535 indicates that the folders contain 900 megabytes of data.
  • the folders 540 may be opened to display the contents.
  • the folders 540 may be physical or virtual folders, in that they may indicate actual physical storage locations or organizational storage locations.
  • the music display 545 of the GUI 500 shows several audio files 550 . While the music display 545 shows that 123 audio files exist, only a few are actually shown on GUI 500 .
  • the system may display audio files that are most often played by the user, or the system may use some other criteria to determine which audio files are displayed. In an alternative embodiment, the system may display random audio files. If the user wishes to view other audio files, the user may select the music display 545 title in order to navigate to a GUI that displays more or all of the audio files. In an alternative embodiment, the user may be able to scroll through the list of the audio files 550 to view additional audio files.
  • 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.
  • Photos are also displayed on the GUI 500 .
  • 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 .
  • 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.
  • the user may search for music, documents, photos, or other files specifically.
  • Other search options are also contemplated.
  • the GUI 500 could, in an alternative embodiment, have a section for presentation documents. The user may also be able to perform a presentation specific search.
  • GUI 500 could represent how search results may be displayed.
  • GUI 500 could be displaying relevant search results across a variety of file types.
  • the results on the GUI 500 are displayed in a convenient manner that makes it easy for a user to access results of different types, as opposed to having results of different data and file types all mixed together.
  • the document types shown may rank higher than other document types for purposes of this search.
  • the system may have determined that e-mails and contacts were not relevant or ranked very low for the search. Accordingly, the system has not displayed any e-mail or contact results on the GUI 500 .
  • the GUI 500 may be displaying search results of each file type with the highest rankings. For example, with regards to the music display 545 , only ten files are displayed, despite there being 123 relevant files to the search. Accordingly, the ten files displayed in the music display 545 may be the music files with the highest rankings among the relevant music search results.
  • the other sections on the GUI 500 may also be displaying results that correspond with higher ranking files of the relevant search results.
  • Another advantage of showing search results in a configuration like the GUI 500 is the multi-stage searching functionality.
  • a broad search can be performed, yielding the results shown in the GUI 500 .
  • a further narrowing search can be performed using any of the magnifying glass icons, such as the magnifying glass icon 580 .
  • the user can search among the results of the first search in a more pointed way to attempt to locate the exact file the user is looking for.
  • the initial search may have been “vacation.”
  • the GUI 500 may then subsequently display vacation photos, songs listened to and downloaded while on vacation, documents regarding the vacation, and any other files related to a vacation.
  • the user may then further narrow the results by selecting the magnifying glass icon 580 .
  • the user may be presented with a dialog that allows for further searching of the photos displayed on the GUI 500 (and any photos relevant to the original “vacation” search that did not fit into the GUI 500 ).
  • the user may further limit the search with the search term “bridge,” to attempt to find a favorite picture taken on a bridge while the user was on vacation.
  • the results can be displayed on a display similar to the GUI 500 , or on a different display altogether, such as the displays shown in FIG. 6 or 10 .
  • a further narrowing search as disclosed here may also rank search results and display the results accordingly, as disclosed in various embodiments herein.
  • the other display 590 is also displayed on the GUI 500 .
  • 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.
  • FIG. 6 is a representation of a GUI 600 demonstrating a photo view in accordance with an illustrative embodiment.
  • the GUI 600 includes e-mails tab 605 and files tab 610 . These tabs may be similar to tabs 105 and 110 of FIG. 1 .
  • the files tab 610 is selected, so the GUI 600 displays files.
  • the workspace includes a places 615 section, a disks 620 section, a clouds 625 section, a top tags section 630 , a search for 635 section, and a representation of current storage utilization 640 .
  • the places 615 section includes documents, photos, videos, attachments, etc. Each of the places 615 are considered virtual locations. For example, if a user clicked on or otherwise selected videos, all of the videos that can be accessed by the user would be displayed regardless of their actual physical location. However, the videos may still be displayed in the GUI 600 with an indicator of each video's actual physical location. Here, the photos are selected, as indicated by the arrow 645 . Accordingly, photos are being displayed on the GUI 600 .
  • the disks 620 section includes hard disk drives, solid state drives, or other physical memory of the user that has been indexed by the system.
  • the disks 620 includes a Macitosh HD and an iphoneTM 4S, as examples.
  • the selections available in the disks 620 section are not considered to be a virtual location, but rather a physical location, since the selections are associated with actual memory on actual physical devices.
  • the system Upon selecting one of the disks 620 , the system would display every file located on that memory. In an alternative embodiment, the system may not display software applications that are stored on a memory.
  • the actual file location of the displayed files is inherently displayed, since a physical memory has been selected and the arrow 645 would then point to one of the disks 620 .
  • the system could also show, along with individual files displayed from the memory, where the files are actually located in a file tree hierarchy within the respective memory.
  • the clouds 625 section includes cloud storage locations where the user may have files stored. Additionally, the user may have access to files stored on cloud storage locations that have been placed there by others. The system may index and display those files as well.
  • the workspace also includes a top tags 630 section.
  • the top tags show tags, which are a type of metadata, that are associated with files in the various virtual and physical locations.
  • the top tags 630 section displays tags that are most commonly found among the various files indexed by the workspace.
  • the top tags 630 section may only display the top tags for the selected location that is selected to be displayed. For GUI 600 , the currently selected location is the photos, so in this embodiment, the top tags for all photos may be displayed.
  • the top tags 630 section may not show the most used tags, but may rather use a different metric for determining which tags to display.
  • the system could display the most popular tags among all users of the system, the most popular tags of all users over a certain time period, the most popular tags of a similar demographic to the user, the most popular tags among those who the user has a relationship with such as the user's e-mail contacts, social network contacts, cloud storage contacts, etc.
  • the system can also display tags that were most recently used by the user. If a user clicks on or otherwise selects one of the tags, whatever files are being displayed are sorted according to the selected tab. That is, only files that have the particular tag as metadata are shown. In alternative embodiments, multiple tags may be selected to sort displayed files in various ways. Furthermore, the tags that are displayed and how they are used can be configured by the user.
  • the workspace also includes the search for 635 section.
  • the search for 635 section includes tags today, yesterday, and past week. If the user selects one of these tags, files that have been created or added to the system index in that time frame are displayed. In another embodiment, files that have been modified within the time frame are displayed. Other time ranges may also be used in alternative embodiments.
  • the search for 635 section may include other types of tags, such as names of users who may have authored, edited, sent, commented on, or opened a file. By providing other types of tags here, the user could sort and filter documents in even further ways.
  • the tags in the search for 635 section are all configurable by the user.
  • a user may select a tag in the search for section 635 , and a search may be automatically performed.
  • the search would be performed on whatever electronic files are already being displayed in the GUI 600 .
  • the photos place is selected as indicated by the arrow 645 . Accordingly, if the user were to select the tag “yesterday” in the search for section 635 , the photos already displayed in the GUI 600 would essentially be filtered down to photos that have a date from yesterday. Also note that the photos in the GUI 600 are sorted by creation date.
  • search results photos are still displayed according to the current filters, namely that the photos belong to the photos place and that they are sorted by creation date. Furthermore, the search results may be displayed in the GUI 600 according to rankings of the search results, utilizing the systems and methods disclosed herein.
  • the GUI 600 may be used to display photo search results generally. That is, if a user searched just for photos or images, the GUI 600 may be utilized to show the search results for such a search. Also in this embodiment, the displayed results may be ordered and displayed according to rankings calculated using the methods and systems disclosed herein.
  • the workspace also includes the representation of current storage utilization 640 .
  • the representation of current storage utilization 640 demonstrates how much available and how much full memory the user has.
  • the representation of current storage utilization 640 demonstrates a total storage usage across all of the user's available storage mediums listed in the workspace.
  • the representation of current storage utilization 640 may be configured to display usage of only certain storages, such as cloud storages or the user's iPhoneTM 4S.
  • the photos as selected in the workplace are displayed in display area 650 .
  • the photos displayed include, for example, photos 675 and 680 .
  • Each photo in the present embodiment is displayed with a file title as well.
  • the file title may indicate the name of the file.
  • the file title may also indicate other information, such as the actual physical location where the file is stored, the status of the device where the file is stored, and virtual locations the document is a part of, characteristics of the file, user input information about the file, tags regarding the file, and/or any other metadata relating to the file.
  • the user has positioned a pointer from a motion translation device over the photo 675 .
  • the system has highlighted the photo 675 by placing an additional box around it. In this way, the user knows which photo will be selected if the user makes an input to select a photo, such as with a mouse click.
  • the GUI 600 also includes a scroll bar 685 .
  • the scroll bar 685 allows the user to change the resolution of the photos he or she is viewing. In other words, if the user adjusts the scroll bar 685 , the photos displayed in the display area 650 are enlarged or reduced depending on which direction the scroll bar 685 is scrolled. Consequently, if the photos are enlarged, some photos may be removed from the display area 650 because they can no longer all fit in the display area 650 . Similarly, if the size of the pictures is reduced, more photos may be displayed in the display area 650 . In an alternative embodiment, the scroll bar 685 may instead be used to cycle through photos that are displayed in the display area 650 . In other words, if the user adjusts the scroll bar 685 , the photos in the display area 650 will change.
  • Navigation arrows 655 are also shown on the GUI 600 .
  • the navigation can be used by the user to navigate to different displays. For example, if the user interacts with the left facing arrow, the system will display whatever was displayed previous to the GUI 600 . If the user then wishes to return to the GUI 600 , the user can interact with the right facing arrow. If instead the user wishes to navigate to a GUI that was displayed two pages before the GUI 600 , the user may interact with the left facing arrow twice.
  • a folder hierarchy 660 is also shown on the GUI 600 .
  • the folder hierarchy 660 indicates the current folder location that is being displayed, and allows the user to navigate to related parent folders of the currently displayed folder.
  • the folder hierarchy 660 has three sections, a left, middle, and right section. Each section may, in other embodiments, have text and/or an icon within the section indicating the location or function described herein.
  • the left section may represent an original or home display. If the user clicks or otherwise interacts with the left section, the display will be returned to such an original or home display.
  • the middle section represents a first hierarchical layer of what is currently being displayed. In this case, the first layer is places.
  • the GUI may display documents from all of the places as shown in the workspace on the left of the GUI 600 .
  • the right section indicates the current display on the GUI 600 . If the user interacts with the right section, nothing will change on the current display. In this case, the right section merely serves to remind the user of the current location that is being displayed.
  • interacting with the right section may reset any filters, searches, or modifications that have adjusted what is displayed in the display area 650 . Such adjustments may be from the user's use of the scroll bar 685 , the search for 635 section, the top tags 630 section, or others.
  • interacting with the right section of the folder hierarchy 660 leads to resetting the display of the currently displayed location.
  • Sorting sub-tabs 665 are also displayed on the GUI 600 .
  • the sorting sub-tabs 665 include creation date, recently changed, size, name, and favorite. Additionally, a tabs sub-tab is displayed. The tabs sub-tab may be used to configure which tabs are displayed in the sorting sub-tabs 665 .
  • Next to the tabs sub-tab is a pin icon. The user may interact with the pin icon to hide or show the sub-tabs 665 .
  • the sub-tabs 665 can be interacted with by the user to sort and filter what is shown in the display area 650 .
  • the creation date sub-tab is selected. Accordingly, the photos displayed in the display area 650 are photos that have been created most recently. In another embodiment, the photos displayed in the display area may be those that have been created the longest ago.
  • FIG. 7 is a representation of a GUI 700 demonstrating a photo view with a search menu displayed in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be displayed on the GUI.
  • the GUI 700 is similar to the GUI 600 in FIG. 6 , except that a search field 705 is being interacted with by a user.
  • the GUI 700 includes the search field 705 .
  • no text has been entered by the user into the search field 705 yet, so a default text of “SEARCH” is still displayed in the search field 705 .
  • the user has activated a cursor in the search field 705 .
  • This causes an auto fill menu 725 to be displayed.
  • the auto fill menu 725 displays suggestions for potential search results that the user may desire.
  • results such as result 710 and 715 are displayed.
  • the user has positioned a pointer over the result 715 .
  • the system displays a preview 720 of the file represented by the result 715 .
  • the preview 720 may include extracted content of the file and/or metadata of the file.
  • the user can type search terms into the search field 705 .
  • the auto fill menu 725 will begin to automatically populate with words, terms, and/or names of electronic files that match or partially match the search terms being entered into the search field 705 .
  • the user may select one to view a preview, like the preview 720 , or the user may select one of the populated search results to open the electronic file.
  • the user may input something else to indicate a full search is requested and that the user wishes to see more search results than just those that were automatically populated. Entering such a search may direct the user to a search results GUI.
  • the search results GUI might resemble the interfaces of FIG. 5 or 6 discussed above.
  • the system may also order the displayed search results according to rankings calculated for the results in accordance with systems and methods disclosed herein.
  • FIG. 8 is a representation of a GUI 800 demonstrating an e-mail interface with a sorted contact list in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be displayed on the GUI.
  • the GUI 800 further displays an embodiment for viewing and writing e-mails in accordance with an illustrative embodiment.
  • the GUI 800 includes an e-mails tab 805 and a files tab 810 . Here, the e-mails tab 805 is selected.
  • the GUI 800 also includes various sections of contacts, such as the recent contacts 820 section, the lobster 825 section, the family 830 section, and the friends 840 section.
  • the recent contacts 815 are displayed, and for example include contact 820 .
  • contact 820 Here, only a name, e-mail address, and photo or avatar is shown. However, alternative embodiments may show more or less information relating to a contact.
  • the lobster 825 contacts are not displayed on the GUI 800 .
  • a downward facing arrow to the left of the lobster 825 indicates that the contacts are hidden. If the user interacts with the downward facing arrow, the contacts will be displayed and the downward facing arrow will be displayed as an upward facing arrow, similar to those of family 830 and friends 840 .
  • the contact 820 is selected as evidenced by an arrow 850 , and therefore only messages from contact 820 are shown in the GUI 800 .
  • previews 875 and 880 of messages from contact 820 are shown, as well as full e-mail 890 .
  • the messages can be sorted or organized on the GUI 800 in several ways.
  • the messages may be sorted or organized with message type buttons 855 .
  • the user can select to display only one or more message types.
  • the message types the user may select include e-mails, SkypeTM messages, FacebookTM chats, and iMessages. Other options may be provided.
  • the e-mails may also be sorted utilizing sub-tabs 860 , which include newest, oldest, important, archived, and deleted.
  • the newest sub-tab is selected as evidenced by an arrow 865 .
  • Draft e-mail section 870 provides the user an opportunity to respond to a selected e-mail. Draft e-mail section 870 allows the user to enter text for an e-mail, add attachments, to an e-mail, format the text of the e-mail, and add recipients to the e-mail.
  • preview 875 has been selected as evidenced by an arrow 885 by the user and is shown as the full e-mail 890 .
  • the preview 875 includes only contact information for the sender and some of the text of the e-mail.
  • the full e-mail 890 shows the contact information, a more complete contact information 897 , photos such as photo 895 , and the full text of the e-mail.
  • the user for the GUI 800 has positioned a pointer over preview 880 .
  • the system has displayed a context menu over a portion of the preview 880 .
  • the preview 880 is offset in the GUI 800 from the other preview e-mails. This may indicate that the preview 880 is a part of an e-mail conversation relating to the preview directly above it.
  • the context menu includes six icons. Starting from the left, a pin icon can be interacted with to determine whether or not the e-mail remains on the GUI 800 display.
  • the first left facing arrow may be interacted with by the user to direct the display to the first e-mail in an e-mail conversation.
  • the second left facing arrow may be interacted with to direct the display to the previous e-mail in an e-mail conversation.
  • Interacting with the right facing arrow may direct the display to the next e-mail in an e-mail conversation.
  • 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.
  • the e-mail and/or any attachments in the e-mail 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.
  • FIG. 9 is a representation of a GUI 900 demonstrating an e-mail interface with a sorted contact list and an e-mail correspondence chain in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be displayed on the GUI.
  • the GUI 900 is similar to the GUI 800 shown in FIG. 8 , with a few differences, one of which is that e-mails from multiple contacts are displayed in the GUI 900 .
  • GUI 900 includes alert numbers 905 and 910 .
  • the alert number 905 indicates that the user has three unread or new messages from contact Jane Wilson.
  • the alert number 910 indicates that the user has one unread or new message from contact Steve Jones.
  • the full view e-mail in the GUI 900 includes a conversation preview, made up of preview messages 915 , 920 , and 925 .
  • Each of the preview messages 915 , 920 , and 925 represent a different message that has been sent in a conversation relating to the full view e-mail that is displayed in the GUI 900 .
  • preview messages 915 and 925 are messages sent by the user, thus designated with “YOU.”
  • the preview message 920 was sent by another contact, whose name would be displayed where “NAME” is shown on the GUI 900 . If a user interacts with any of the preview messages 915 , 920 , and 925 , that particular preview message will be displayed and can be reviewed by the user in detail.
  • the GUI 900 may represent search results from a user search.
  • the user may have searched his or her e-mails for messages regarding “vacation.”
  • the e-mails shown on the GUI 900 all pertain to vacation.
  • the e-mails in the middle of GUI 900 represent the search results, and the e-mail on the right of the GUI 900 represents a full view of one of the search result e-mails.
  • the system may also order the displayed search results according to rankings calculated for the results in accordance with systems and methods disclosed herein.
  • FIG. 10 is a representation of a GUI 1000 demonstrating a single photo view in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be displayed on the GUI.
  • the GUI 1000 includes an e-mails tab 1005 and a files tab 1010 . On the GUI 1000 , the files tab 1010 is selected. Further, the GUI 1000 here shows a large view of a photo 1030 .
  • the GUI 1000 may be a result of the selection of a photo from FIG. 6 , which is why the photo's virtual folder is selected as evidenced by the arrow 1015 .
  • a view selector 1020 is also shown on the GUI 1000 . The different sections of the view selector 1020 may be interacted with to change how the photos are viewed.
  • interacting with the view selector may return to a view like the one depicted in FIG. 6 .
  • Another section of the view selector 1020 may be interacted with to show a list of photo previews that displays significantly more metadata about the photos than is shown in FIG. 6 .
  • the photo that is being displayed on the GUI 1000 may also be changed utilizing arrows 1035 and 1040 .
  • the user may move forward or backward in a sequence of photos using the arrows 1035 and 1040 .
  • the GUI 1000 also shows tags related to the photo 1030 , such as tag 1055 . Additionally, the user may add new tags to a photo with add your tag 1060 .
  • the GUI 1000 also displays comments relating to the photo 1030 , such as comment 1045 .
  • the user who in this embodiment is named Eric Miller, may also comment on the photo 1030 using comment dialog 1050 .
  • FIG. 11 is a representation of a GUI 1100 demonstrating an electronic files view with reminders in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be displayed on the GUI.
  • the GUI 1100 includes an e-mails tab 1105 and a files tab 1110 . On the GUI 1100 , the files tab 1110 is selected. Here, the GoogleTM Drive is selected in the workspace as evidenced by an arrow 1115 .
  • the GUI 1100 includes large file previews, such as previews 1120 and 1125 , as well as listed documents, such as document 1140 .
  • Preview 1120 is shown as a single page preview.
  • Preview 1125 displays only the first page of the file as preview, but indicates that the file has multiple pages. In an alternative embodiment, this may indicate that there are several copies of the file throughout the user's devices, or that there are multiple versions of the file.
  • Each preview is also displayed with a name, such as name 1130 .
  • Sorting tabs 1135 include creation date, recently changed, kind, size, name and favorite. The user may interact with the sorting tabs 1135 to manipulate which files are displayed in the listed documents. If any of the listed documents are interacted with, they may be shown as a large file preview.
  • the listed documents also includes reminder notes, such as reminder 1145 . The user may make such reminder notes either for himself or for other users who have access to the files with the reminders through a cloud storage. Additionally, reminders may also have been created by someone other than the user here, and therefore the user may be viewing reminders created by others.
  • the list of documents also includes a checkbox 1150 and a favorite star 1155 .
  • the favorite star 1155 can be toggled on and off so the user can designate or undesignated a file as a favorite.
  • the checkbox 1150 may be utilized by the user when the user wishes to perform the same action on several files. To do this, multiple files may be checked, or selected, and the action can then be carried out on all the files that have been checked.
  • the GUI 1100 shows how search results may be presented.
  • the user may have specified to run a search of his or her Google DriveTM.
  • the GUI 1100 may be displayed.
  • previews 1120 and 1125 are displayed with more prominence than the files displayed below, such as the document 1140 .
  • the system has determined that those files shown above (e.g., the previews 1120 and 1125 ) are more relevant than the other search results (e.g., the document 1140 ).
  • the system may also order the displayed search results according to rankings calculated for the results in accordance with systems and methods disclosed herein. For example, here, the search results that are displayed with previews rank higher than the other search results displayed on the GUI 1100 .
  • FIG. 12 is a representation of a GUI 1200 demonstrating a dynamic birds-eye view of a user's data in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be displayed on the GUI.
  • the GUI 1200 demonstrates a state of a dynamic view of all of the user's data, which may be termed a birds-eye view.
  • the birds-eye view assists the user to understand the structure of all of the data in his entire network.
  • this dynamic view presents any history of file changes to the user.
  • the GUI 1200 includes an e-mails tab 1205 and a files tab 1210 .
  • the Macintosh HD is selected from the workspace as evidenced by an arrow 1215 .
  • the search term “#GREEN” has been entered into the search field 1220 .
  • any of the documents represented in the birds-eye view are related to the search term.
  • a dynamic display like the one in FIG. 12 may be displayed without search terms being entered. For example, if there were no search term entered in GUI 1200 but all else was the same, the various displays in the GUI 1200 would represent all of the files on the user's Macintosh HD, and not just the files associated with a search term.
  • the groups of files, or amalgamations, shown in the GUI 1200 all represent different things.
  • group 1225 represents all photos on the user's Macintosh HD that relate to the search term. If the group 1225 is selected, the photos may be displayed and examined in greater detail.
  • the relative size and prominence of the group 1225 conveys information to the user. Here, it may convey that the user has more pictures than music or video. In another embodiment, the relative prominence of group 1225 may be an indicator that the user accesses photos more often than music or video files.
  • groups 1230 , 1240 , and 1255 may also be relatively sized based on quantity of files or preference of the user. In another embodiment, the relative sizes of the groups may indicate a relevance to the search term or terms.
  • the groups may also be displayed using different colors. This can make the display more pleasant to look at, or the colors may indicate certain properties or relevance of files.
  • the groups 1240 and 1255 indicate groups of files that correspond to certain hashtags. Groups such as group 1230 represents groups of files that correspond to certain contacts of the user.
  • groups 1235 and 1250 are displayed.
  • all files relevant to the search term from the year 2013 are represented by group 1235 .
  • Group 1235 is displayed more prominently than the other year groups (here 2011 and 2012 ) because of a relevance factor. That is, the system considers the year 2013 to be more relevant than past years to the user, thus group 1235 is displayed more prominently.
  • Group 1250 is displayed with a medium amount of prominence because it may also be considered relevant to the user, since it contains files from last week. However, group 1250 is still intentionally smaller than group 1235 to indicate the relatively smaller group of files that are from last week than are from the entire year 2013.
  • the search dialog 1245 offers an alternative to the search field 1220 .
  • Any searches performed using the search dialog 1245 may be dynamically displayed. That is, if a user searches for something, the user may visibly see groups change shape, move, be added, disappear, or change color depending on the relevance of files in each group to the search performed. Furthermore, groups can be customized and configured by the user or can be automatically generated by the system.
  • the groups displayed on the GUI 1200 can be interacted with by the user in a unique way.
  • Each of the groups is displayed as a physical object that can be moved and has mass, speed, inertia, acceleration, magnetic, gravity, and/or other physical forces.
  • the groups will therefore move and interact according to physical laws.
  • a user may interact with the groups by dragging, moving, etc. the groups around the GUI 1200 .
  • the groups themselves also interact with each other. For example, a very small group may be pulled toward a larger group through a gravity force.
  • Groups can change behavior, trajectory, color, and shape while a user moves a pointer or finger, types a search query, gets search results, moves items, scrolls through lists, or does other actions.
  • a search can be performed by dragging a group or groups to the search dialog 1245 .
  • a search term can be removed from the search by dragging it out of the search dialog 1245 .
  • 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.
  • the groups may interact in ways similar to how physical objects might interact. For example, if a user drags a group by touching and swiping a group through a touchscreen, any groups that the dragged group comes into contact with may be bumped and moved on the display. In other words, no two groups may occupy the same coordinate space on the GUI 1200 , so if one bumps into another one will have to yield. In this regard, when two groups collide, the relative inertia, mass, and velocity of the groups may be taken into account. In other words, if a smaller group bumps a larger group, the larger group may be considered to have a larger mass than the smaller group.
  • 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.
  • 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.
  • certain groups may be subject to certain magnetic forces.
  • one group may subjected to a force between itself and a first type of groups, but not a second type of groups.
  • 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.
  • the system may also include negative magnetic forces. That, is some groups may also be programmed to repel each other.
  • 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.
  • the user may combine groups using the GUI 1200 .
  • a user may specify that one group envelope another to create a larger group representing the files of both the original two groups.
  • a user may slow down and stop the movement of the group before releasing it.
  • the group may not move after release, but for other forces acting on it, such as gravitational or magnetic forces.
  • the user may not slow down or stop the movement of a group being dragged before releasing the group.
  • the moving group may maintain its inertia unless acted on by other forces. For example, the group may crash into other groups, cause the group to bounce and/or the other groups to move on the GUI 1200 .
  • a user may search by either typing into the search dialog 1245 or dragging other groups to the search dialog 1245 .
  • the group 1255 may be dragged by the user to the search dialog 1245 .
  • the group 1255 may no longer be subjected to the forces it would otherwise be subjected to. That is, the group 1255 is stuck in the search dialog 1245 .
  • the system will perform the search by changing the relative sizes of the other remaining groups displayed on the GUI 1200 to indicate files that are relevant to the hashtag “sea.” The changing of the sizes may be demonstrated immediately, or may be animated as a transition over time.
  • the forces present between groups may change, and the groups will react accordingly. For example, if a group gets bigger, it may push other groups out of the way, while exerting a larger gravitational force on the other groups. If a group gets smaller, the gravitational force exerted on other groups may be reduced.
  • the changes in gravitational forces based on search results may cause the groups to actually move on the GUI 1200 after the search is performed.
  • circles are used to represent groups in FIG. 12
  • other shapes may be used in other embodiments.
  • the shape of a group may impact how the groups physically interact. For example, a circle bouncing off a circle in the GUI 1200 may not happen in the exact same way as a circle bouncing off of a triangle, the bounce angle may be different due to the different shape.
  • FIG. 13 is a representation of a GUI 1300 demonstrating a multi-level view including a hierarchical tree structure in accordance with an illustrative embodiment.
  • the GUI 1300 includes an e-mails tab 1305 and a files tab 1310 .
  • the files tab 1310 is selected.
  • the Macintosh HD is selected from the workspace.
  • a pointer has been directed by a user to the attachments/dropbox location 1315 .
  • the system has displayed a highlighted box around the attachments/dropbox location 1315 .
  • certain locations also indicate how many files are physically stored at each location.
  • the Macintosh HD has 241 files stored on it's hard drive. In an alternative embodiment, such a number may indicate something different, such as files indexed from this location within the last week or month.
  • the GUI 1300 also includes a search analysis section 1320 .
  • This section indicates trends, data, and/or statistics regarding the search results. For example, 44 of the search results are associated with the tag “GREEN” and eleven of the search results are from files from the year 2012. In alternative embodiments, other statistics may also be displayed, such as size of files, author of files, sender of files, number of versions or changes from original, or importance.
  • a search term “REDCAT” has been entered into a search dialog 1325 . Accordingly, each one of the files or file representations in the GUI 1300 are related to the search term.
  • a file tree hierarchy 1330 is shown in the GUI 1300 .
  • the file tree hierarchy 1330 shows a navigable hierarchy that shows folders and sub-folders where relevant search results are located. Each level of the hierarchy also includes an indicator 1335 of how many relevant search results are in each folder.
  • the folders displayed here can represent physical or virtual folders.
  • a search results section 1340 may show the contents of a folder selected from the file tree hierarchy 1330 .
  • the system may automatically populate the search results 1340 with various relevant search results 1360 , such as photo 1350 and document 1365 .
  • the search results 1360 may also be modified or sorted using a drop down menu 1345 . Here it is indicated that the results have been modified.
  • the file tree hierarchy 1330 in the GUI shows search results grouped or clustered together in a way that is convenient for the user.
  • the file tree hierarchy starts out with a broad folder, “all results.” If the user selects this, all of the results of the search can be viewed. However, the “all results” folder can be expanded to reveal further sorted and clustered search results. For example, in FIG. 13 , a work sub-folder is selected and expanded out.
  • each folder also shows how many search results are part of that cluster or group.
  • the work folder shows 44 results. Any of the sub-folders, in addition to being expanded, can also be selected. Once selected, the search results are displayed in the search results section 1340 .
  • the file tree hierarchy 1330 gives the user of the GUI 1300 a convenient and simple way to manageably view and deal with large numbers of search results.
  • the system may also order the displayed search results according to rankings calculated for the results in accordance with systems and methods disclosed herein.
  • subsections of the search results 1360 include media and document type results, though other types may be included in other embodiments such as contacts and messages.
  • the media results also include a show all button 1347 . By interacting with the show all button 1347 , all of the media results may be displayed. In the alternative, if the user would like to view more results, an arrow 1355 may be interacted with to scroll through the different media results that are not currently displayed.
  • document 1365 has been selected from among the search results. Accordingly in preview section 1375 , a preview 1380 of the document 1365 is displayed. Further information 1390 about the previewed file is also displayed. If a user has previously made a reminder regarding the file, the reminder is also displayed. Here, reminder 1385 is displayed along with the preview 1380 . At collaborators 1395 , the system may display who has collaborated on the file with the user. However, in this embodiment, nobody has collaborated on the file.
  • FIG. 14 is a representation of a GUI 1400 demonstrating a multi-level view including a document preview in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be displayed on the GUI.
  • the GUI 1400 shows an alternative display to the GUI 1300 of FIG. 13 .
  • the GUI 1400 includes an e-mails tab 1405 and a files tab 1410 . Here the files tab 1410 is selected.
  • the workspace of GUI 1400 also demonstrates how the status of a device or location might be indicated. At location 1445 , external HD for films, there is an indication that the location is offline.
  • search results are shown as folders, such as folders 1415 , 1420 , and 1425 , and documents, such as documents 1430 and 1435 .
  • documents in the search results including the documents 1430 and 1435 include an extracted first page preview.
  • the selected document, document 1430 also has text from the document displayed as preview 1440 , which may be easier to read than the first page preview.
  • FIG. 15 is a representation of a GUI 1500 demonstrating the contents of a specific device's storage in accordance with an illustrative embodiment.
  • the GUI 1500 includes an e-mails tab 1505 and a files tab 1510 .
  • the files tab 1510 is selected.
  • the GUI 1500 shows another alternative embodiment to the GUIs 1300 and 1400 for displaying search results.
  • the preview on the right side of the GUI 1500 is similar to previous embodiments.
  • the results are displayed as a list of documents and including metadata regarding the documents.
  • the search results include documents 1525 and 1530 .
  • a priority icon 1520 is associated with the document 1525 .
  • the priority icon 1520 and other priority icons may be color coded in order to determine relative priority for different documents.
  • a check mark icon 1535 also appears next to certain documents in the search results. Such a check mark icon 1535 indicates that the document has been backed-up on the user's cloud storage. If the original file is on cloud storage, then a check mark may indicate that the document has been backed up in a second location.
  • FIG. 16 is a representation of a GUI 1600 demonstrating a multi-level view including a document preview and an icon based tagging section in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be displayed on the GUI.
  • FIG. 17 is a representation of a GUI 1700 demonstrating an e-mail interface with a sorted contact list, an e-mail correspondence chain, and an icon based tagging section in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be displayed on the GUI. Both the GUI 1600 and the GUI 1700 display combinations of elements and functionalities discussed previously with respect to other figures. The GUI 1600 and the GUI 1700 demonstrate alternative embodiments to the previously discussed figures.
  • FIG. 18 is a block diagram illustrating various computing and electronic storage devices that may be used in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be included in the system.
  • FIG. 18 includes a personal computing device 1800 , a portable storage device 1897 , a network 125 , a cloud storage system 1830 , a tablet device 1840 , and a mobile electronic device 1865 .
  • the personal computing device 1800 includes a processor 1815 that is coupled to a memory 1805 .
  • the personal computing device 1800 can store and recall data and applications in the memory 1805 .
  • the processor 1815 may also display objects, applications, data, etc. on a display/interface 1810 .
  • the display/interface 1810 may be a touchscreen, a game system controller, a remote control, a keyboard, a mouse, a trackpad, a microphone, a camera, a set of buttons, a standard electronic display screen, a television, a computer monitor, or any combination of those or similar components.
  • the processor 1815 may also receive inputs from a user through the display/interface 1810 .
  • the processor 1815 is also coupled to a transceiver 1820 . With this configuration, the processor 1815 , and subsequently the personal computing device 1800 , can communicate with other devices, such as the cloud storage system 1830 through a connection 1887 and the network 1825 .
  • FIG. 18 shows one personal computing device 1800 , an alternative embodiment may include multiple personal computing devices.
  • the tablet device 1840 includes a processor 1855 that is coupled to a memory 1845 .
  • the processor 1855 can store and recall data and applications in the memory 1845 .
  • the processor 1855 may also display objects, applications, data, etc. on a display/interface 1850 .
  • the display/interface 1850 may be a touchscreen as most tablets have, but may also include or incorporate a keyboard, a game system controller, a remote control, a mouse, a trackpad, a microphone, a camera, a set of buttons, a standard electronic display screen, a television, a computer monitor, or any combination of those or similar components.
  • the processor 1855 may also receive inputs from a user through the display/interface 1850 .
  • the processor 1855 is also coupled to a transceiver 1860 . With this configuration, the processor 1855 , and subsequently the tablet device 1840 , can communicate with other devices, such as the personal computing device 1800 through a connection 1895 and the network 1825 .
  • the mobile electronic device 1865 includes a processor 1875 that is coupled to a memory 1885 .
  • the processor 1875 can store and recall data and applications in the memory 1885 .
  • the processor 1875 may also display objects, applications, data, etc. on a display/interface 1880 .
  • the display/interface 1880 may be a touchscreen, a game system controller, a keyboard, a remote control, a mouse, a trackpad, a microphone, a camera, a set of buttons, a standard electronic display screen, a television, a computer monitor, or any combination of those or similar components.
  • the processor 1875 may also receive inputs from a user through the display/interface 1880 .
  • the processor 1875 is also coupled to a transceiver 1870 .
  • the processor 1875 and subsequently the viewer electronic device 1865 , can communicate with other devices, such as the tablet device 1840 through a connection 1890 and the network 1825 .
  • FIG. 18 shows only one mobile electronic device 1865 , an alternative embodiment may include multiple mobile electronic devices.
  • FIG. 18 also includes the cloud storage system 1830 .
  • the cloud storage system 1830 may include a number of servers that may have memory and processors.
  • the cloud storage system 1830 is connected to the network through a connection 1835 and may communicate with other devices such as the mobile electronic device 1865 .
  • FIG. 18 also includes the portable storage device 1897 .
  • This portable storage device 1897 may be a removable USB drive for example. Since such a portable memory does not have a processor, the portable storage device 1897 must be connected to a computing device for the information and files stored on the portable storage device 1897 can be read by such devices. Accordingly, in this embodiment, the portable storage device 1897 is plugged into the personal computing device 1800 , which can read the data from the portable storage device 1897 and communicate its contents or data related to its contents to any of the other devices that have access to the network 1825 .
  • any of the connections 1887 , 1890 , 1895 , and 1835 may be varied.
  • Any of the connections 187 , 190 , 195 , and 135 may be a hard wired connection.
  • a hard wired connection may involve connecting the devices through a USB (universal serial bus) port (like connection 1899 ), serial port, parallel port, or other type of wired connection that can facilitate the transfer of data and information between a processor of a device and a second processor of a second device.
  • any of the connections 1887 , 1890 , 1895 , and 1835 may be a dock where one device may plug into another device.
  • any of the connections 1887 , 1890 , 1895 , and 1835 may be a wireless connection. These connections may take the form of any sort of wireless connection, including but not limited to Bluetooth connectivity, Wi-Fi connectivity, or another wireless protocol. Other possible modes of wireless communication may include near-field communications, such as passive radio-frequency identification (RFID) and active (RFID) technologies. RFID and similar near-field communications may allow the various devices to communicate in short range when they are placed proximate to one another.
  • RFID passive radio-frequency identification
  • RFID active
  • 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.
  • the devices may connect through an internet (or other network) connection. That is, any of the connections 1887 , 1890 , 1895 , and 1835 may represent several different computing devices and network components that allow the various devices to communicate through the internet, either through a hard-wired or wireless connection. Any of the connections 1887 , 1890 , 1895 , and 1835 may also be a combination of several modes of connection.
  • the network 1825 may also include similar components described above with respect to the connections 1887 , 1890 , 1895 , and 1835 .
  • the network 1825 may include intermediate servers, routing devices, processors, data traffic management services, and wired or un-wired connections.
  • the various devices may communicate using the software systems and methods disclosed herein.
  • Software applications may be manually installed on the devices or downloaded from the internet. Such software applications may allow the various devices in FIG. 18 to perform some or all of the processes and functions described herein. Additionally, the embodiments disclosed herein are not limited to being performed only on the disclosed devices in FIG. 18 . It will be appreciated that many various combinations of computing devices may execute the methods and systems disclosed herein. Examples of such computing devices may include smart phones, personal computers, servers, laptop computers, tablets, blackberries, RFID enabled devices, video game console systems, smart TV devices, or any combinations of these or similar devices.
  • a download of a program to the mobile electronic device 1865 involves the processor 1875 receiving data through the transceiver 1870 through connection 1890 and the network 1825 .
  • the network 1825 may be connected to the internet.
  • the processor 1875 may store the data (like the program) in the memory 1885 .
  • the processor 1875 can execute the program at any time.
  • some aspects of a program may not be downloaded to the viewer electronic device 1865 .
  • the program may be an application that accesses additional data or resources located in a server, or even the cloud storage system 1830 which may include one or more servers.
  • the program may be an internet-based application, where the program is executed by a web browser and stored in a server that is part of the network 1825 or the cloud storage system 1830 .
  • temporary files and/or a web browser may be used on the mobile electronic device 1865 in order to execute the program, system, application, etc.
  • the tablet device 1840 and the personal computing device 1800 may use, store, or download software applications and web based programs in a similar way.
  • the configuration of the personal computing device 1800 , the portable storage device 1897 , the tablet device 1840 , the mobile electronic device 1865 , the network 1825 , and the cloud storage system 1830 is merely one physical system on which the disclosed embodiments may be executed. Other configurations of the devices shown exist to practice the disclosed embodiments. Further, configurations of additional or fewer devices than the ones shown in FIG. 18 may exist to practice the disclosed embodiments. Additionally, the devices shown in FIG. 18 may be combined to allow for fewer devices or separated where more than the five devices shown exist in a system.
  • FIG. 19 is a flow diagram illustrating a method 1900 of displaying representative information of files and e-mails on a GUI utilizing a two tab display in accordance with an illustrative embodiment.
  • fewer, additional, and/or different operations may be performed.
  • the use of a flow diagram is not meant to be limiting with respect to the order of operations performed.
  • the system determines the presence of electronic files, such as documents, photos, videos, messages, and contacts, on a several electronic devices of a user. Such devices could include a laptop, desktop computer, external hard drive, tablet, smart phone, etc.
  • the system may also determine the presence of electronic files that the user has control of in cloud storage mediums.
  • the index of all these electronic files may be stored on one of the user's devices or a cloud storage medium that the user's devices can access.
  • representative information of the electronic files that has been indexed is displayed in a single window configuration.
  • the electronic files are displayed on a first tab in the single window.
  • the electronic files displayed on the first tab do not include messages and contacts.
  • messages and contacts may be displayed.
  • a second tab is also displayed in the single window configuration.
  • an input is received from the user to navigate to the second tab in the single window.
  • the input may be through a touchscreen, traditional mouse, track pad, or other user input device.
  • e-mail files that have been indexed in the operation 1905 are displayed in the second tab. Accordingly, the method 1900 allows for indexing of electronic files, and a two tab display of information representing those files.
  • the two tabs each display information regarding different types of electronic files. The two tabs can be switched back and forth quite easily from a single interaction or input from the user.
  • FIG. 20 is a flow diagram illustrating a method 2000 of determining files a user has access to and displaying representative information of the files on a GUI in accordance with an illustrative embodiment.
  • fewer, additional, and/or different operations may be performed.
  • the use of a flow diagram is not meant to be limiting with respect to the order of operations performed.
  • a presence of electronic files on user devices is determined and the files are indexed. This operation may be performed similarly to operation 1905 of FIG. 19 , discussed above.
  • the system further determines and indexes any electronic files that have been shared with the user or that the user has access to. For example, if a document is shared with the user on a cloud storage medium, the system can determine a presence of the document and index the document. In another example, the system may determine photos that have been shared with the user through photo sharing websites such as FlickrTM or FacebookTM. In an additional example, even if a file has not been shared with the user, its presence may still be determined by the system as relevant to the users. For example, if a photo has not been shared with the user, but the user has been tagged in the photo in an online social network, then the system may determine the photo relevant and index it. In an operation 2015 , representative information of the indexed files is displayed. The representative information includes both location information and descriptive information. That is, information on where a file is located and what a file is are both displayed.
  • FIG. 21 is a flow diagram illustrating a method 2100 of determining the status of various electronic devices and displaying that status on a GUI in accordance with an illustrative embodiment.
  • a status of various electronic devices is determined.
  • a status of an electronic device may be a connection status, an online status, an offline status, a passive status, an active status, a connected status, an unconnected status, a currently operational status, a currently non-operational status, or a set in a lower functional mode status.
  • a lower functional mode may be a sleep, hibernate, or screen saver type mode.
  • a lower functional mode may indicate that a device is locked or not logged into.
  • a lower functional mode may indicate that a mobile device is on, but that most of the inputs are currently disabled and a display is turned off (for example, when someone darkens their phone while it is in his or her pocket or handbag).
  • the status of each electronic device is displayed.
  • the status of each device may be indicated on a GUI.
  • the status of each device is displayed along with representative information of electronic files. In other words, for an electronic file stored on an electronic device, the system will display a status along with the file whether the device where that file is stored is online or offline.
  • FIG. 22 is a flow diagram illustrating a method 2200 of extracting data from an electronic file and displaying a preview of the file on a GUI in accordance with an illustrative embodiment.
  • fewer, additional, and/or different operations may be performed.
  • the use of a flow diagram is not meant to be limiting with respect to the order of operations performed.
  • data is extracted from an electronic file.
  • the extracted data is used to generate a visual preview of the electronic file. For example, if the file is a document, a smaller version of the first page of the document may be used as a preview. In another example, if the file is a photo, a thumbnail of the photo can be generated to use as a preview.
  • the visual preview generated from the extracted data is actually displayed on a GUI.
  • FIG. 23 is a flow diagram illustrating a method 2300 of receiving an input from a user and displaying a context menu on a GUI in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different operations may be performed. Also, the use of a flow diagram is not meant to be limiting with respect to the order of operations performed.
  • the system receives an input from a motion translation device.
  • an operation 2310 when a pointer is located over representative information of a file and a further input is received such as a mouse click, a context menu relating to the electronic file is displayed.
  • FIG. 24 is a flow diagram illustrating a method 2400 of receiving an input from a user an opening an electronic file to be displayed on a GUI in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different operations may be performed. Also, the use of a flow diagram is not meant to be limiting with respect to the order of operations performed.
  • the system receives an input from a motion translation device.
  • a pointer is located over representative information of a file and a further input is received such as a mouse click
  • the electronic file is opened from an online device. In other words, a file is opened from a device that is currently accessible.
  • the system may open the file with a predetermined primary application or a predetermined secondary application.
  • a Microsoft WordTM document may be opened and viewed in WordTM or GoogleTM Docs.
  • the system may have a predefined preference for Microsoft WordTM, but if that application is not available, the system can attempt to open the file with other applications.
  • FIG. 25 is a representation of a GUI 2500 demonstrating a photo view overlay of a dynamic birds-eye view of a user's data in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be displayed on the GUI.
  • the GUI 2500 demonstrates a state of a view similar to the GUI 1200 discussed above with respect to FIG. 12 . However, the GUI 2500 shows an overlay 2540 .
  • the GUI 2500 includes an e-mails tab 2505 and a files tab 2510 .
  • the Macitosh HD is selected from the workspace as evidenced by an arrow 2515 .
  • the search term “#GREEN” has been entered into the search field 2520 .
  • the photos shown in the overlay 2540 are related to the search term.
  • photos or other electronic files may be shown in the overlay 2540 that are related to other search terms.
  • the files shown in the overlay 2540 may not be related to a particular search term, but may, for example, represent all of a user's photos (e.g., if the user interacted with the group 1225 shown in FIG. 12 ).
  • the files could represent the selection of or interaction with any of the groups shown in FIG. 12 . If a search term has been entered, as here, then the files shown in the overlay 2540 will relate to the search term and the selected group. For example, if a user selected the group 1235 from FIG. 12 ., the overlay 2540 would display files related to the search term “#GREEN” and the year 2013. Here, the user has selected or interacted with the group 1225 , which causes photos related to the search term to be displayed.
  • the overlay 2540 includes several photos on display, including photos 2530 and 2535 .
  • the photos initially displayed in the overlay, including the photos 2530 and 2535 are higher ranking than other photos relating to the search terms.
  • the GUI 2500 displays that photos are selected, and that there are 112 photos relevant to the search term here.
  • the photos displayed in the overlay 2540 are photos that rank higher than the other relevant photos.
  • the ranking of the photos may be calculated using any of the ranking calculation systems and methods disclosed herein.
  • the photos 2530 and 2535 displayed in the overlay 2540 may be interacted with.
  • the photos may be selected and viewed in greater detail.
  • selecting a photo may navigate the user to a GUI such as the GUI 1000 discussed above with respect to FIG. 10 .
  • selecting a photo may allow the user to modify the metadata associated with the file, such as the tags of the file.
  • selecting a file from the overlay 2540 may cause the system to open the file using a separate software application.
  • the overlay may be a dynamic group similar to the groups described above with respect to FIG. 12 .
  • a user may be able to interact with the overlay 2540 to resize the overlay itself and/or the previewed files displayed within the overlay 2540 .
  • the user may also be able to interact with the displayed files in the overlay 2540 to perform file management functions. For example, the user may be able to move files to different places. In one embodiment, the user may accomplish a moving of a file by selecting and dragging that file to one of the locations or places displayed in the workspace on the left of the GUI 2500 .
  • the overlay may reflected multiple selected groups that have been selected by the user. For example, if the user selected groups 1255 and 1225 from FIG. 12 , the overlay 2540 will display photos that have the tag “#SEA.”
  • the overlay 2540 may display electronic files (or representative information of those electronic files) that relate to an interaction with the search dialog 1245 of FIG. 12 . For example, if the user enters text into the search dialog 1245 , the overlay 2540 will be displayed to show files related to that text.
  • a group or groups may be dragged and dropped on the search dialog 1245 .
  • the overlay 2540 may display files related to the group(s) that were dragged to the search dialog 1245 . Further, the user may search using a combination of text entry and dragging groups to the search dialog 1245 .
  • FIG. 26 is a flow diagram illustrating a method 2600 of performing a search and smart ranking the results in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different operations may be performed. Also, the use of a flow diagram is not meant to be limiting with respect to the order of operations performed.
  • the system receives a search input.
  • the search input may be text input by a user, a tag selection by a user, or other search input method as disclosed herein.
  • the system searches for electronic files related to the search input.
  • the system may search various electronic devices, storage mediums, cloud storage systems, social networks, file sharing systems, etc.
  • the system determines that there are electronic files that are related to the search input in the various locations searched.
  • the system may search an index of electronic files that are stored on multiple devices, rather than search the various multiple devices themselves.
  • the system calculates a ranking for each of the electronic files found that were related to the search input. The rankings may be calculated in various ways according to various methods and embodiments as disclosed herein.
  • FIG. 27 is a flow diagram illustrating a method 2700 of performing a search an looking up smart rankings for the results in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different operations may be performed. Also, the use of a flow diagram is not meant to be limiting with respect to the order of operations performed.
  • the system receives a search input as disclosed herein.
  • the system searches for electronic files related to the search input as disclosed herein.
  • the system determines the presence of electronic files related to the search input as disclosed herein.
  • the system looks up ranks of the electronic files that were determined to be related to the search input. In this embodiment, the general ranks of each electronic file have already been calculated and are maintained in a file rank index.
  • the system adjusts the ranks based on search specific factors. For example, if an electronic document is stored on an electronic device that is not currently online, that may impact the ranking as disclosed herein. In another example, the content of a file and the search input may be a very close match, yielding a higher ranking as disclosed herein. Other factors may also be used to adjust the ranking as disclosed herein.
  • FIG. 28 is a flow diagram illustrating a method 2800 of performing a search, smart ranking the results, and displaying the results on a GUI in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different operations may be performed. Also, the use of a flow diagram is not meant to be limiting with respect to the order of operations performed.
  • the system performs a search as disclosed herein.
  • the system calculates ranks for the search results utilizing systems and methods disclosed herein.
  • the system displays on a graphical user interface (GUI) the search results. Displaying the search results includes displaying representative information of the electronic files that were found during the search as being related to a search input.
  • GUI graphical user interface
  • the search results displayed on the GUI are ordered according to the calculated ranks associated with each electronic file found in the search. For example, electronic files with higher rankings may be displayed toward the top of the GUI, while the lower ranked files may be displayed further toward the bottom of the GUI.
  • the system further displays representative information and/or previews of the electronic files and/or displays certain files more prominently than others based on the calculated ranks of each electronic file. For example, the system may display a preview and other representative information largely for a highly ranked electronic file. In contrast, a lower ranked electronic file may have displayed smaller representative information and the representative information of the lower ranked electronic file may not include a preview.
  • FIG. 29 is a flow diagram illustrating a method 2900 for performing a search of contacts and messages and smart ranking the results in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different operations may be performed. Also, the use of a flow diagram is not meant to be limiting with respect to the order of operations performed.
  • the system receives a search input.
  • the system searches for electronic files related to the search input.
  • the system determines messages (e.g., e-mail messages, chats, instant messages, SMS messages, etc.) and/or contacts that are related to the search input.
  • the system calculates ranks of the messages and/or contacts based on an importance level of the contacts. For example, if a user frequently corresponds with a particular contact, that contact information and any messages associated with that contact may be ranked more highly during a search than contact information or messages associated with a contact the user corresponds with sparingly. Other methods of calculating an importance level of contacts and their associated correspondence are disclosed herein.
  • 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.

Abstract

An illustrative method according to a set of instructions stored on a memory of a computing device includes receiving, by a processor of the computing device, a search input. The method further includes identifying, by the processor, a plurality of electronic files related to the search input. The method further includes calculating, by the processor, a rank for each of the plurality of electronic files based on statistical data of the plurality of electronic files.

Description

    CROSS-REFERENCE TO RELATED PATENT APPLICATION
  • 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
  • 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
  • An illustrative method according to a set of instructions stored on a memory of a computing device includes receiving, by a processor of the computing device, a search input. The method further includes identifying, by the processor, a plurality of electronic files related to the search input. The method further includes calculating, by the processor, a rank for each of the plurality of electronic files based on statistical data of the plurality of electronic files.
  • An illustrative apparatus includes a memory, a processor operatively coupled to the memory, and a first set of instructions stored on the memory and configured to be executed by the processor. The processor is configured to receive a search input. The processor is further configured to identify a plurality of electronic files related to the search input. The processor is further configured to calculate a rank for each of the plurality of electronic files based on statistical data of the plurality of electronic files.
  • A non-transitory computer readable medium has instructions stored thereon that, upon execution by a computing device, cause the computing device to perform operations, where the instructions include instructions to receive a search input. The instructions further include instructions to identify a plurality of electronic files related to the search input. The instructions further include instructions to calculate a rank for each of the plurality of electronic files based on statistical data of the plurality of electronic files.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Illustrative embodiments will hereafter be described with reference to the accompanying drawings.
  • FIG. 1 is a representation of a graphical user interface (GUI) demonstrating an e-mail interface in accordance with an illustrative embodiment.
  • FIG. 2 is a blown-up representation of a GUI demonstrating an e-mail interface in accordance with an illustrative embodiment.
  • FIG. 3 is a block diagram illustrating a file transfer system in accordance with an illustrative embodiment.
  • FIG. 4 is a block diagram illustrating a second file transfer system in accordance with an illustrative embodiment.
  • FIG. 5 is a representation of a GUI demonstrating a multi-file type view in accordance with an illustrative embodiment.
  • FIG. 6 is a representation of a GUI demonstrating a photo view in accordance with an illustrative embodiment.
  • FIG. 7 is a representation of a GUI demonstrating a photo view with a search menu displayed in accordance with an illustrative embodiment.
  • FIG. 8 is a representation of a GUI demonstrating an e-mail interface with a sorted contact list in accordance with an illustrative embodiment.
  • FIG. 9 is a representation of a GUI demonstrating an e-mail interface with a sorted contact list and an e-mail correspondence chain in accordance with an illustrative embodiment.
  • FIG. 10 is a representation of a GUI demonstrating a single photo view in accordance with an illustrative embodiment.
  • FIG. 11 a representation of a GUI demonstrating an electronic files view with reminders in accordance with an illustrative embodiment.
  • FIG. 12 a representation of a GUI demonstrating a dynamic birds-eye view of a user's data in accordance with an illustrative embodiment.
  • FIG. 13 is a representation of a GUI demonstrating a multi-level view including a hierarchical tree structure in accordance with an illustrative embodiment.
  • FIG. 14 is a representation of a GUI demonstrating a multi-level view including a document preview in accordance with an illustrative embodiment.
  • FIG. 15 a representation of a GUI demonstrating the contents of a specific device's storage in accordance with an illustrative embodiment.
  • FIG. 16 is a representation of a GUI demonstrating a multi-level view including a document preview and an icon based tagging section in accordance with an illustrative embodiment.
  • FIG. 17 is a representation of a GUI demonstrating an e-mail interface with a sorted contact list, an e-mail correspondence chain, and an icon based tagging section in accordance with an illustrative embodiment.
  • FIG. 18 is a block diagram illustrating various computing and electronic storage devices that may be used in accordance with an illustrative embodiment.
  • FIG. 19 is a flow diagram illustrating a method of displaying representative information of files and e-mails on a GUI utilizing a two tab display in accordance with an illustrative embodiment.
  • FIG. 20 is a flow diagram illustrating a method of determining files a user has access to and displaying representative information of the files on a GUI in accordance with an illustrative embodiment.
  • FIG. 21 is a flow diagram illustrating a method of determining the status of various electronic devices and displaying that status on a GUI in accordance with an illustrative embodiment.
  • FIG. 22 is a flow diagram illustrating a method of extracting data from an electronic file and displaying a preview of the file on a GUI in accordance with an illustrative embodiment.
  • FIG. 23 is a flow diagram illustrating a method of receiving an input from a user and displaying a context menu on a GUI in accordance with an illustrative embodiment.
  • FIG. 24 is a flow diagram illustrating a method of receiving an input from a user and opening an electronic file to be displayed on a GUI in accordance with an illustrative embodiment.
  • FIG. 25 is a representation of a GUI demonstrating a photo view overlay of a dynamic birds-eye view of a user's data in accordance with an illustrative embodiment.
  • FIG. 26 is a flow diagram illustrating a method of performing a search and smart ranking the results in accordance with an illustrative embodiment.
  • FIG. 27 is a flow diagram illustrating a method of performing a search an looking up smart rankings for the results in accordance with an illustrative embodiment.
  • FIG. 28 is a flow diagram illustrating a method of performing a search, smart ranking the results, and displaying the results on a GUI in accordance with an illustrative embodiment.
  • FIG. 29 is a flow diagram illustrating a method for performing a search of contacts and messages and smart ranking the results in accordance with an illustrative embodiment.
  • DETAILED DESCRIPTION
  • Described herein are illustrative embodiments for methods and systems for smart ranking of search results. The search may be performed on a various electronic files, such as various data, documents, e-mails, messages, documents, and/or contacts. The various electronic files that are searched may be stored on a many different electronic devices. For example, devices where electronic files may be stored may include a smart phone, a tablet, a laptop computer, a smart television device, removable storage such as a universal serial bus (USB) drive or a secure digital (SD) memory card, a desktop computer, a cloud storage server or servers, a digital camera, a wearable computing device, or any other electronic device capable of storing electronic files.
  • When performing a search, a user may input into a graphical user interface (GUI) search terms that relate to what the user is looking for. For example, the search terms may be an alphanumeric sequence of characters that indicate what the user is looking for. In other illustrative embodiments, a search input that specifies what the user would like to search for may be entered in other ways than the user inputting text. For example, a user may interact with metadata or tags in order to indicate a search input. For example, the user may be presented on the GUI with several electronic file tags that are popular or heavily used among the user's various electronic files. The user may interact with, such as through a mouse click or touching a touch screen, one of the popular tags to indicate that the user would like to search for all electronic files related to that tag. In another embodiment, the user may be able to select or specify multiple tags that are used as search criteria. In yet another embodiment, the user may specify a tag or tags and also input a search term. In this embodiment, the system may use both the specified tag(s) and the inputted search terms in order to perform the search.
  • In another illustrative embodiment, a search input may indicate a certain electronic file type the user wants to search for. For example, the user may input that he or she wishes to find photos, for example. In other examples, the user may specify that he or she wishes to search for spreadsheets, e-mails, e-mail attachments, presentations, contacts, or another specific type of electronic files. In one embodiment, the user may input an electronic file type he or she wishes to search for, and the system will search for all electronic files of that type. In another embodiment, the user may enter a further input, such as a search term or a tag as above, and the system may then search for electronic files of the particular type that are also related to the search term or specified tag. In other various embodiments, the user may specify multiple search terms, tags, and/or electronic file types for a search.
  • After a search input is received by the system from user inputs, the system searches the various electronic devices of the user (and any other devices the user has access to, such as cloud storage systems) for electronic files related to the search inputs. The system may determine that electronic files are relevant to the search results by comparing the search inputs to the name of an electronic file, metadata (including tags, author, file size, file type, date modified or created, who modified the file, etc.) of the electronic file, any of the content of the electronic file, and/or other context based information regarding the file. One example of context based information may be the text of an e-mail to which the electronic file is attached. Another example may be contact information of an e-mail message.
  • After electronic files that are related to a search input are determined, the system ranks the electronic files that have been determined based on various statistical data. The statistical data may include, for example, information like usage levels, accessibility levels, and/or importance levels of the electronic files. In another alternative embodiment, rather than ranking electronic files in response to a search being performed, all electronic files may be indexed by the system, and the system may continuously keep track, in association with or on the index, of a rank of each of the electronic files. In this way, when a search is performed for electronic files, the system may already have access to rank information that had been previously calculated by the system. Nonetheless, the system may calculate electronic file rankings based on statistical data in similar ways regardless of the timing of the calculation (before or after a search). However, if ranks are calculated after a search, the system may calculate the electronic files that have been determined as relevant to the search. In contrast, if ranks are calculated before a search, a rank for all electronic files of user may be calculated. Advantageously, if the ranks are calculated after a search is performed, the calculated ranks may be particularly tailored or customized based on the search inputs as will be disclosed herein. In other words, a calculated rank may be calculated, in part, based on the search input in order to reflect a potentially more accurate rank of electronic files yielded in a search.
  • After the ranks of the search results have been calculated based on the statistical data, the search results and the ranks are displayed on a graphical user interface (GUI). For example, the system may display on the GUI representative information of the electronic files, such as the file names, file types, and file size. In other embodiments, other representative information may be displayed, such as author, tags, date created, date modified, a preview of the electronic file, or any other metadata related to the electronic files. Additionally, the calculated rank may be displayed on the GUI along with each respective electronic file search result. In some alternative embodiments, the system may not display every search result on the GUI. In such embodiments, the system may utilize the calculated ranks to assist in determining which search results not to display. For example, the lower ranked results may not be displayed. However, the user may still view these lower ranked results on the GUI through an input with the GUI, such as scrolling, swiping a touch screen, a mouse click, and/or other methods.
  • In other illustrative embodiments, differently ranked results may be displayed on the GUI in different ways. For example, some higher ranked search results may be displayed with different representative information displayed than relatively lower ranked search results. For example, a higher ranked search result may be displayed on the GUI with a preview image, while lower ranked search results may be displayed on the GUI without a preview image. In another example, higher ranked search results may be displayed further toward the top of the GUI than a lower ranked search result. In another example, representative information, a symbol, and/or an icon representing an electronic file that is ranked higher may be displayed larger in size on the GUI than the representative information, symbol, and/or icon representing the electronic file that has a relatively lower rank. In one embodiment, the size of the representative information, symbol, and/or icon may be proportional to the calculated rank for that electronic file.
  • In another embodiment, the search results may be displayed in an order based on the calculated rankings. For example, representative information of the electronic files in the search results may be displayed in an order according to the calculated rankings. For example, the search results may be displayed on the GUI in an order starting with higher rankings and ending with the lower rankings.
  • In a first illustrative embodiment, the calculated rank for each electronic file is displayed or indicated on the GUI along with the representative information for each electronic file. In an alternative embodiment, the representative information does not include the rank, but the system still utilizes the rank as disclosed herein to organize and display the representative information of the electronic files that are in the search results. In another alternative embodiment, an indicator of the calculated rank, but not the actual calculated rank, may be displayed along with the representative information of the electronic files that are in the search results. For example, if the system calculates that an electronic file has a relatively high rank, the representative information may be displayed on the GUI with a particular color and/or symbol that indicates a high ranking. Representative information of an electronic file with a relatively medium rank may be displayed on the GUI with a second color and/or symbol. Further, representative information of an electronic file with a relatively low rank may be displayed on the GUI with a third color and/or symbol.
  • The rank of the electronic files may be calculated in different ways based on different statistical data. In a first embodiment, the rank calculated may be an actual number that can be compared to other ranks on the basis of the magnitude of the number rank. In other embodiments, the calculated rank may be less specific, such as a high, medium, or low relevance rank designation. In another embodiment, the system may use both types of calculation. For example, the system may calculate a numerical rank, and a particular range of numbers may be associated with each of the high, medium, and low relevance ranks.
  • The factors and statistical data used to calculate the rank of an electronic file may also vary. In an illustrative embodiment, the system may calculate a usage level of the electronic file to determine the rank of the electronic file. In this embodiment, a higher usage level corresponds to a higher rank. The usage level indicates how much a user has directly or indirectly used an electronic file. By calculating how much a user has used an electronic file, the system can determine an approximation of importance or relevance of the electronic file to the user. That is, if there are electronic files with higher usage levels, those files may be more desirable to a user and may more likely be the target of a search by a user. As a result, those electronic files are ranked higher so that when a user performs a search, those files that are more likely to be the target of the search are displayed on the GUI first or more prominently, allowing the user easy access to the electronic files that he or she is most likely seeking.
  • A usage level may be calculated using a variety of information. For example, the system may track how many times an electronic file is accessed or opened. This may define or contribute to the usage level. Another factor that may be used to determine a usage level may be an amount of time the electronic file has been displayed on the GUI. For example, the system may track how long a user has had an electronic file open, and that cumulative amount of time may be used to calculate the usage level of the electronic file. In a related embodiment, the system may track the amount of time that an electronic file is open and actually being displayed on the GUI. In other words, the system may not count an amount of time when a file is open but minimized when calculating usage level; but any time the electronic file is open and displayed on the GUI may be counted when calculating the usage level. In another related embodiment, the system may only count the time when an electronic file is open and active. In other words, the system may count time for purposes of calculating a usage level where an electronic file is open and being interacted with by the user. Such interactions may include scrolling, changing metadata, changing the content of the electronic file itself, commenting on the electronic file, responding to the electronic file (where the electronic file is a message or e-mail, for example), listening to and/or watching the electronic file, etc.
  • A usage level may also be determined by a number of tags. For example, an electronic file with numerous tags may be considered higher ranking than a file with very few tags. In an illustrative embodiment, the system may also weight tags differently. Some illustrative systems may utilize a watchdog tag. A watchdog tag may be established by the user to watch a particular electronic file. Where there is activity relating to that electronic file, the user may be notified. For example, if the file is a contact and the user receives a message from the contact, the user may be notified. If the file is a document and the document is edited, the user may receive a notification. If an electronic file that is relevant to a search is associated with a watchdog tag, that file may be associated with a higher ranking than an electronic file not associated with a watchdog tag. Other specific tags may also be weighted and associated with higher rankings for search results. For example, a tag titled “IMPORTANT” may be associated with a higher ranking than other tags, such as descriptive tags like “Vacation.” In another embodiment, tags may be weighted for purposes of calculating ranks based on the origination of the tags. For example, a tag that was created or assigned by a user to the electronic file may be worth more to the relative rank of a file than a tag that was automatically generated by the system.
  • Other factors and statistical data may also be utilized to calculate a rank for an electronic file. The system may calculate an accessibility or mobility level, which can be used for calculating ranks for electronic files. For example, the accessibility or mobility of an electronic file may be impacted by the electronic device or type of electronic device that an electronic file is stored on. As a result, the electronic device or type of electronic device may be considered when calculating the accessibility or mobility level and subsequently the ranking of an electronic file. For example, the system may assign a higher accessibility or mobility level to electronic files stored on internet accessible servers, such as an e-mail exchange or cloud server storage system. In another example, the system may assign a medium accessibility or mobility level to other electronic devices that the system is likely to have access to, such as a smartphone or laptop. In another example, the system may assign a low accessibility or mobility level to an electronic file that is stored on electronic devices that the system is less likely to have access to, such as an external hard drive, USB drive, or SD card.
  • The accessibility or mobility level may also be calculated based on the type of electronic file. For example, an electronic file that requires a specific stand-alone software application to access may be considered to have a lower accessibility or mobility level. For example, if an electronic file can only be opened by Microsoft PowerPoint™, the system may consider the accessibility or mobility level of the electronic file to be relatively low. In another example, if a file can be opened or accessed by several software applications or can be opened or accessed by a web-based application, the system considers the electronic file to have a high accessibility or mobility level. In other words, the system can determine whether it is more or less likely that a user will be able to access and/or modify an electronic file and will calculate the accessibility or mobility level of the electronic file accordingly. Similarly, the system may determine an access level of an electronic file to determine the accessibility or mobility level of the electronic file. For example, if an electronic file is read-only (i.e., the user cannot edit the electronic file), the system may consider the electronic file to have a relatively lower accessibility or mobility level. If an electronic file has a higher access level, such as a file where the user has full access and editing privileges, that electronic file is considered to have a relatively higher accessibility or mobility level.
  • The system may consider the file type of an electronic file in another way to calculate an accessibility or mobility level. The system may consider the file type and the version of the electronic file to determine what version of a software application may be used to access and/or modify the electronic file. For example, if the system had to use a software application that was out of date or old to access and/or modify an electronic file, the system may rank the accessibility or mobility level lower. If the file type of the electronic file uses a current and up to date version of a software application to access and/or modify it, the system may consider that electronic file to have a relatively higher accessibility or mobility level.
  • In another embodiment, the system may utilize the file type in yet another way to determine an accessibility or mobility level. For example, the system may determine whether an electronic file is a copy or a replica. As disclosed herein, for the purposes of this disclosure, a copy of a file is identical to the original file at the time of duplication, but is not automatically updated after changes in the original file on a separate machine. A replica of a file is identical to the original file at the time of duplication, and is automatically updated after changes are made to the original file, even if the original file exists on a separate machine than the replica file. In this embodiment, a replica file may be considered to have a higher accessibility or mobility level than a copy file.
  • In another embodiment, the system may consider the version of an electronic file when determining an accessibility or mobility level. For example, if an electronic file is stored as multiple different versions of the same electronic file, a most recent version may be given a higher accessibility or mobility level, while previous versions of an electronic file are given a lower accessibility or mobility level.
  • In another illustrative embodiment, the size of an electronic file may also be used when determining an accessibility or mobility level. For example, if the user is searching for photos using a mobile smart phone device, the system may rank photos that are of a medium resolution as having a relatively high accessibility or mobility level. The system may rank photos with very high or very low resolutions as having a lower accessibility or mobility level. In this way, the user's search results may reflect photos that are tailored for the size of the display of a mobile smart phone device and limitations on the mobile smart phone device's internet connectivity and processing speeds. In another example, if the user is utilizing their desktop computer to perform the search, the system may rank higher resolution images as having a higher accessibility or mobility level. In this way, both the size of an electronic file and the device or type of device that the search is being performed on is considered in calculating the rank of an electronic file. In such an embodiment, the rankings are dynamic rather than static, because the rankings may change based on what device is used to perform the search. Accordingly, if these type of dynamic factors are used, the ranks should be calculated at least in part as or after a search is performed. In other words, where dynamic factors are used, the final rank cannot be stored on an index to be automatically returned upon a search, unless the index includes all possible ranks that may be called for based on the different dynamic factors.
  • In another illustrative embodiment, the system may determine as part of the statistical data an actual real time availability of an electronic file and may incorporate that availability into the accessibility or mobility level. For example, when performing a search, the system may search an index of electronic files, where the electronic files may be stored on multiple user devices. The system may determine that an electronic file on a laptop computer is relevant to the search. The system will then determine whether that electronic file is actually available. That is, could the system access the memory of the laptop to open or modify the actual electronic file stored on the laptop. If the laptop is not available or online for any reason, that electronic file may not be available. Accordingly, an electronic file that is not available may be assigned by the system a relatively lower accessibility or mobility level than an electronic file that is actually available.
  • In various embodiments, any combination of all, some, or none of the factors disclosed herein may be used to calculate a rank of an electronic file for purposes of a search. For example, none of the aforementioned factors may be utilized by the system, and the system may rather rank electronic files according to how close to the search input or search terms the electronic file is.
  • In another illustrative embodiment, the user may be performing a search for contact information. In this embodiment, the system may determine as part of the statistical data an importance level of a contact relevant to a search. A contact with a high importance level will be assigned a higher ranking of relevance for the search results. The importance level may be determined in a variety of ways. For example, the system may determine the importance of a contact based on a level of correspondence between the user and the contact. For example, if the user and contact send each other numerous e-mails, text messages, chat messages, voice calls, video calls, and/or instant messages, the system will consider that contact as having a higher importance level. In other embodiments, the system may consider only correspondence to or from the contact in determining the importance level, as opposed to combining the correspondence to and from the contact, as in the previous example,
  • In another embodiment, the system may determine the importance level of a contact based on a user's response rate to correspondence or any type of message from the particular contact. For example, if the user has directly responded to 70 out of 100 e-mail messages (70%) from contact A, then contact A will have a higher importance level relative to a contact B, to whom the user has only responded to 20 out of 50 e-mail messages (40%).
  • In another illustrative embodiment, the system may consider groups of contacts together in determining an importance level and/or returning search results. For example, the user may define certain contacts to be grouped together, such as family members. In such an embodiment, the system may determine an importance level of groups such as family members cumulatively, and return search results based on the increased importance levels that come with being a part of such a user defined group. As already noted, groups of contacts may be defined by the user. In another embodiment, a group may be automatically defined by the system. For example, several contacts may have e-mail addresses that are routed to the same e-mail servers. For example, employees of an ABC Company may all have e-mails that end in “@ABCCompany.com.” Accordingly, the system may define all of those employees in a single group associated with the ABC Company. This group may be treated by the system as a single organizational contact. Accordingly, the system may determine the importance level of the single organizational contact by cumulatively considering the importance level of all the group members together. The system may further classify an organizational contact as an ontological object.
  • Herein, use of the terminology contact may refer to an individual or an organization. Herein, an organization may be an ontological object. In one embodiment, the methods and system disclosed herein perform ranking operations to automatically rank contacts. This ranking may be performed using a variety of analyses. A ranking may be calculated on a semantic analysis of the user's correspondence with the contact, which may take into account characteristics such as the frequency of an activity like the frequency of letter sending, and a user's response time or response rate. The ranking may also be calculated based on background information about the contact. Such background information may include factors like closeness/relation/degree, company, position, and so on, from sources like social networks (e.g., number of friends, number of mutual friends, number of followers, etc.), content of the messages themselves (e.g., email signature), telephone communications (e.g., frequency of telephone calls and message exchange). The ranking may also be calculated based on other specific information that indicates that the contact is important. For example, the user herself may create her own tags in the system. Tags may be created to correspond with varying entities, such as organizations, persons, projects, places, and dates. If the user creates a specific tag (such as for an organization), the systems and methods of the illustrated embodiments may implement varying hypotheses. For example, the systems and methods disclosed herein may assume that this tag is more important to the user since the user created it herself. Moreover, the systems and methods disclosed herein may make certain associations automatically (i.e., the organization in the email address from whence the email originated is associated with the sender of the email, such as an employee) and query the user to verify these associations.
  • In one embodiment, and as discussed above, watchdog tags may be implemented in which the user may note some query as the watch tag. The system may then copy all of the search results to a special folder that is not visible to the user. These search results may renew periodically: when changes in the folder are detected, the user may then receive notifications concerning these changes.
  • 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.
  • In an illustrative embodiment, a user may have received an email from “Pete.” The user may wish to find the email he recollects, however, he is unsure from which account or location the email may have originated. The system addresses this issue by merging all available information in the user's network, including emails, social accounts, and other related information. For every contact, a unique ID may be initiated that corresponds to the contact in the system. The system parses through all of the available information, and performs such merging operations on predefined rules, such as names similarity, email similarity and other information. Following this merger, the system may then query the user to verify that each of the instances found in the user's network should be associated with the unique ID. Optionally, the user may be able to specify differing ID's for portions of the identified information. Such predefined rules may vary according to the information being parsed. Such functionalities may be applied in a variety of scenarios. In addition, the system may utilize additional information such as logos, product descriptions, employee information, and the like to perform merger operations. In the case of project tags, the system may group e-mail communications, analyze the time that the communications were received/sent, and other information to organize information based on a particular project tag.
  • 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.
  • 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.
  • 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.
  • 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.
  • The systems and methods disclosed herein incorporate an innovative end-to-end search (wider than a typical user search query) for all mail, contacts, devices, and locations where user information may be stored. In such a search functionality, precision and recall may be superior due to the following example implementations. For example: a search may be based on natural language and meaningful information may be extracted from the email and metadata. Further, the search may be based on the involvement of background information, which does not exist in the actual desired letter or document, but may be extracted from the previous history of correspondence, from external sources (e.g., Facebook™, LinkedIn™, Wikipedia™, etc.), or from a dossier—a company's ontology, geographies, etc. which are built during the historical correspondence.
  • 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.
  • 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™. As another example, when a user is looking for a New York Times™ 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.
  • In further embodiments, a tag classifier's probability may be taken into account when ranking search results. If an auto-tagging system is not sure about a classifier, the probability for the classifier is indicated. Search results may also contain statistical information on directories. When switching to directories, selection in search results may be narrowed (or expanded). Search results may contain statistical information on tags. Search results may also be visualized to the user in a hierarchical tree structure, for example, where there is information on how many files are relevant to the search query, and the associated folder for those files.
  • Often, in order for a user to search through photos, the user might first perform tedious manual tagging operations, such as tagging names of his relatives and friends on faces and objects (e.g., sea, beach, house, tree, etc.) so that those faces and objects will be recognized and associated with the remainder of the user's photos and tagged in the future. In many cases, the user may not have time to perform this manual tagging. The systems and methods disclosed herein alleviate the burden of manual tagging in a number of ways. The system performs “social tagging” automatically. For example, when a user is posting some of his photos in social networks, other people are tagging the faces, objects, and places on the photos and commenting on the photos themselves. The system can track these tags and comments and use them to create metadata for the particular photos which have already been posted, and use these tags and comments for initial tagging; after which the same people, objects, and places on other photos which have not yet been posted are recognized and categorized. Accordingly, the system (without requiring initial user tagging) builds a database of searchable metadata for both photos which have previously been posted in social networks and those which have not yet been posted.
  • In one embodiment, if a 100% match for a particular search query is not identified, the system may use various approaches such as morphology, semantics, fuzzy, and other approaches to perform a broader query, so as to eliminate a “no results found” result as many e-mail and file search systems would currently yield.
  • In one example, a user may query for a particular document by searching using the keyword “schedule.” In a typical search return string, perhaps 100 results of files containing the word “schedule” may be linearly listed and presented to the user. However, such a scenario may not be the most beneficial to the user. For example, this scenario may look similar to the following:
  • Search query: “Schedule”
    Search results:
    - Doc 1 containing “Schedule”
    - Doc 2 containing “Schedule”
    - ...
    - Doc 100 containing “Schedule”
  • One embodiment disclosed herein may add further results of terminology that the engine considers related, such as the following search for “schedule” that returned further results with the related terminology “program”:
  • Search query: “Schedule”
    Search results:
    - Doc 1 containing “Schedule”
    - Doc 2 containing “Schedule”
    - ...
    - Doc 100 containing “Schedule”
    - Doc 101 containing “Program”
    - Doc 102 containing “Program”
    - ...
    - Doc 250 containing “Program”
  • In contrast to the above, in a further embodiment, the system may cluster the results of the searching by different common vectors, such as the following:
  • Search query: “Schedule”
    Search results:
    Cluster 1: “Your upcoming NY trip - 15 results”
    - Doc 1 containing “Schedule”
    - Doc 102 containing “Program”
    - See other 13 results...
    Cluster 2: “Your daughter's school - 50 results”
    - Doc 24 containing “Schedule”
    - Doc 28 containing “Schedule”
    - Doc 209 containing “Program”
    - See other 47 results...
    Cluster 3: “Your last week Palo Alto event - 30 results”
    - Doc 15 containing “Schedule”
    - Doc 57 containing “Schedule”
    - Doc 234 containing “Program”
    - See other 27 results...
    Cluster 4: “Your this month emails - 5 results”
    - Doc 13 containing “Schedule”
    - Doc 47 containing “Schedule”
    - Doc 214 containing “Program”
    - See other 2 results...
    Cluster 5: “Your photos - 25 results”
    - Doc 63 containing “Schedule”
    - Doc 77 containing “Schedule”
    - Doc 211 containing “Program”
    - See other 22 results...
  • In another embodiment, the system may conduct a search dialogue with a smart search assistant. Currently, search queries are beset with issues such as a return of zero results, or a return of too many results and/or coupled with poor ranking of those results (i.e., the target document is not ranked first in the list of results). The system and methods disclosed herein introduce a live assistant. The live assistant takes verbal or textual queries from the user, who describes the data to be located. Based on this description, the live assistant may then query the user with suggestions. In one example, the live assistant may query the user for more information to broaden the search. In another example, the live assistant may suggest detail so as to narrow the search. In an illustrative embodiment, the live assistant is computer software code that can respond to inputs from the user and provide prompts to the user as disclosed herein. In an alternative embodiment, the live assistant may be a human operator using another computing device to communicate with the user and provide prompts to the user as disclosed herein.
  • The user may have the option to conduct a dialog (verbal, text, or otherwise) with the live assistant in a natural language format. For example, the user may type the search query “find all the emails which include information about my meeting with investors,” or order, “move to folder 1 all of the photos taken yesterday.” The live assistant may then respond with a confirmation, such as “would you like to delete all storyboard photos?”
  • As previously mentioned, the file search functionality provided by the systems and methods disclosed herein may be based on natural language and meaningful information extracted from the file and metadata. In one embodiment, image and pdf text files may be pre-Optical Character Read (OCRed) (at least in some extent) so that if a user is searching the word “passport,” they can find images that include the word “passport.” Photos and videos may be searched based on GPS location data and metadata information about the time of shooting (e.g., a user can specify a range of time the photo was taken “from/to,” a user can specify the geographical units in their own language, “photo made in the United States”). Part of the metadata may be generated by the cloud service client system itself, such as, from where the file was received (e.g., saved from such a man of attachment to the letter, copied to the HDD #12, etc.).
  • In addition, color, shape, size, and position tagging on business graphics may be employed by the system. For example, a user may employ the following exemplary search “Seeking Excel™ file, which has the round red diagram at the bottom of the last spreadsheet.” If the round red diagram has been tagged by the system, the system can recognize that the user is seeking the document that is an Excel™ file and has such a diagram at the bottom of the document that is the color red and round in shape.
  • A search may also involve background information, which is not inside of the file, but for which a meaning may be extracted from previous history of correspondence or from external sources (Facebook™, LinkedIn™, Wikipedia™, etc.) from the “dossier”—ontology companies, geographies, etc., which are built as a result of correspondence. Search information may, in one embodiment, be extracted from common knowledge (synonymous/homonymous narrowing/broadening of the search). The mechanisms of the illustrated embodiment provide for such functionality as fuzzy search, phonetic search, and search with the transliteration. In addition, the system, in one embodiment, can provide search not only for files on a local device, but also for files on all of a user's devices, as well as the letters, e-mails, messages, and various attachments.
  • The methods and systems disclosed herein offer advantages over a simple keyword search, particularly since the methods and systems herein relate to a user environment across multiple devices, platforms, file formats, and user file sharing and social networking systems. A user may have to remember precise wording to find a desired file in traditional keyword searching. Advantageously, with the system and methods disclosed herein, a user may be able to find files, mails, and other objects by the general sense. To emulate search by the sense the system may parse the query, build a semantic structure and translate the semantic structure into an extended query using query interpretation and synonyms expansion based on dictionaries and ontologies. The extended query may produce many irrelevant results so the ranking algorithms, systems, and methods disclosed herein based on semantic similarities, word positions, word frequencies, usage levels, importance levels, etc. are valuable in ordering and ranking search results. If relevant results are not found, it is beneficial not to show irrelevant results unless a user allows or desires such irrelevant results to be displayed.
  • The display of search results on a GUI is discussed at length herein. In short, the display of search results may be carried out in a variety of ways. For example, the search results may appear as a list of electronic files that the system has located. Representative information of the electronic files may be displayed in the list. In some embodiments, a preview of one or more of the electronic files may be automatically displayed on the GUI with the search results. In another embodiment, the user may position a mouse or pointer over representative information of an electronic file to get a preview to appear. In another embodiment, the user may have to click on the representative information or otherwise interact with it through the GUI (such as touching the representative information through a touchscreen) to get a preview of an electronic file to appear.
  • In another embodiment, the system may display on the GUI search results in a way that does not immediately display information directly related to individual electronic files. Instead, the system may display the information in representative groups (also referred to herein as clusters or an amalgamation). The system may display groups of search results based on the various characteristics or traits of the results. For example, electronic files that are found as part of the search results may be sorted according to data type. For example, the results may be sorted and grouped into clusters based on whether each result is a document, presentation, photo or other image, video, e-mail, contact information, message, or other sort of file or data type. The clusters could also contain more than one data type in the same cluster. A cluster could also represent all search results from a particular storage location. A cluster could also represent search results from a certain period of time (when the files were modified or created, for example). The clusters may be automatically determined by the system, or may be configured and defined by the user.
  • A group or cluster displayed on the GUI may also indicate how many electronic files of each type of files were found during the searching. In another illustrative embodiment, the system may display certain groups or clusters more prominently than others. For example, the system may automatically display a cluster representing documents that were saved on a hard drive more prominently than a cluster representing documents that were attached to e-mail messages. Although the system may automatically display certain groups and/or clusters with more prominence, the system may also be configured by the user to show certain groups or clusters more prominently than others.
  • A user may also expand a cluster to view representative information of the files that are represented in the cluster. The user may accomplish this through an interaction on the GUI with a particular cluster or group. Representative information of individual files within a cluster or group may also be displayed more prominently than others depending on system defaults or preferences established by the user.
  • In one illustrative embodiment, the clusters or groups displayed by the system may be displayed as a hierarchical tree structure. In a hierarchical tree structure, results may be shown in groups that are expandable and collapsible to demonstrate more detail regarding the search results. The system may also indicate in a hierarchical tree structure, how many results regarding each level of the hierarchical tree structure there are. For example, search results may be displayed in clusters as a hierarchical tree structure. The levels initially displayed in the hierarchical tree structure may sort the search results according to a first criteria. For example, the search results may be sorted into clusters depending on a data type. In other words, the search results are sorted based on what type of electronic file each file is. Each level may also display how many relevant files are represented by the cluster or group.
  • Upon interacting with one of the levels with, for example, a touch screen selection or pointer point and click operation, a cluster or group is expanded on the GUI. In one embodiment, the expanded level may display representative information of each electronic file represented by the cluster or group. In one embodiment, the system may determine to do this where the number of files represented by a cluster are relatively low (for example, five electronic files or fewer). In other embodiments, further sub-levels of the hierarchical tree structure that represent sub-groups of the clusters or groups may be displayed. For example, if a cluster representing e-mail messages is interacted with, further sub-groups sorted by a second data type may be displayed on the GUI. For example, the sub-groups may be sorted by date, such as month and year the e-mail messages were received. In this way, other sub-groups may also exist, so that a set of search results is organized viewable based on several different categorizations based on data type, metadata, file location, and the like.
  • In order to determine relevant search results, various types of searching may be performed by the system. For example, morphological searching, metadata searching, tag searching, full text searching, fuzzy searching, or ontology-based semantic searching may all be used, alone or in different combinations, in various illustrative embodiments. For example, morphological searching may automatically utilize searching for words or forms of words that are similar to the words entered as a search term by the user. In another example, the system may utilize metadata and tag searching. In this embodiment, the system can search information that is associated with an electronic file as metadata or tags for information relevant to the search terms entered by the user. In full text searching, the system may search the entire contents of an electronic file for relevance to the search terms entered by the user.
  • Fuzzy searching, also known as approximate string matching, may also be utilized by the system. Fuzzy searching takes a string of characters entered by the user as a search term and searches for a similar string of characters that approximately match the string of characters entered. In this way, if a search term that is entered has been misspelled, the system may be able to automatically search for the correctly spelled word rather than the misspelled word.
  • In ontology-based semantic searching, the system may utilize context and interrelated information from electronic files to perform searches. For example, system may examine the content of electronic files on the system and utilize the examination to determine certain relationships or contexts. For example, an e-mail may contain a signature line with the name of a company that the sender works for. As a result, the system could return results for the company broadly during a search where a search term entered was the name of the sender himself.
  • Described herein are illustrative embodiments for methods and systems that provide for a displaying files indicating file location. Also described herein are systems and methods which allow users to disclose, access, distribute, synchronize, manage, and search different types of content and electronic files, including but not limited to file content, communication content, contact content, and other personal information across multiple devices and cloud servers. Also described herein is a graphical user interface (GUI) that displays representative information of different electronic files. The electronic files may be physically stored on multiple devices, but the representative information relating to the electronic files may be displayed on a single GUI. The representative information of an electronic file may include the physical location where the electronic file is stored, the size of the electronic file, a date and/or time the electronic file was created or last modified, a file type of the electronic file, a preview of the electronic file, or any other representative information relating to the electronic file. Furthermore, a user can interact with the GUI to view, open, access, organize, backup, synchronize, distribute, or locate different electronic files stored on various electronic devices. Representative information as defined herein may include, but is not limited to, various types of metadata.
  • In an illustrative embodiment, the system can determine the presence of electronic files of a user among multiple devices. For example, the user may utilize a tablet, smart phone, laptop, universal serial bus (USB) drive, cloud storage, set top boxes (smart TVs), and many other electronic storage and computing devices and methods. Further, software applications may include files that relate to a user or the user has access to. Such files may include e-mails, messages, chats, documents, pictures, videos, contacts, or other electronic data. The system can determine all of these types of data from a plurality of devices and index the data. Even if a user was not the creator or owner of the document, the system can index the data as long as the user has access to it. The index may be stored on a particular device of the user's, for example, a laptop. The user may also designate which device will store the index. In another embodiment, the index will be stored on a cloud storage system. Advantageously, when the index is stored on a cloud storage system (e.g., a remote server), the index may be updated regarding changes to data or files on any device whenever the device is connected to the internet.
  • After electronic files such as documents, pictures, e-mails, contact information, and the like have been indexed, representative information of the electronic files can be displayed on a graphical user interface (GUI) to a user. In one embodiment, the representative information may be displayed in a single window format. Representative information may include a file name, a file preview, date last modified, version number, date created, number of related files, number of files in a folder, and any other information relating to an electronic file. In some embodiments, the representative information may include information regarding the location of the electronic file. The location information can be indicated utilizing a symbol or icon. For example, if a file is on the user's smartphone, a smartphone icon may be used to indicate the location of the file. Different icons or symbols may have different shapes, colors, sizes, or text content. For example, the device where a file is stored may be part of the representative information. The system may also index a virtual location of a file. For example, regardless of where an e-mail might be physically stored, it might be virtually located in a user's e-mail inbox within the system and displayed as such whenever the inbox is displayed on the GUI. In this case, the system may indicate either or both of the virtual and physical locations. In some embodiments, the representative information may be displayed in a single window, but may be divided within a multiple tab configuration. For example, a GUI may include tabs for files, photos, e-mails, and contacts. In another embodiment, the GUI may have tabs for files and e-mails, where photos are categorized under files and contacts are categorized under e-mails. The user may be able to switch between tabs by interacting with the GUI. For example, a user may utilize a motion translation device and input, such as a touchscreen in which the user may touch the location on the screen where one of the tabs appears, activating and displaying that tab. To switch to a different tab, the user may touch the different tab. In another example, the user may use a mouse or touchpad to locate a pointer over the desired tab on the GUI. The user may then make another input, such as a single mouse click, to activate and display the desired tab the pointer is located over.
  • Whether or not tabs are used, the representative information of electronic files displayed by the system may include information relating to where and how the electronic files are stored. For example, the representative information may include an indication that the file is stored on a particular device or in a cloud storage system. The representative information may also include an indication of whether the file has been backed-up or not. The representative information may also include the location of a backed-up copy of the file. The representative information may also include an indication of whether the device where the file is stored is online or offline. In the case where a file is stored on two different devices, the system may indicate the status of both devices. In another embodiment, the system may only indicate enough about the status of the devices to indicate whether the file is available for opening and/or editing. For example, if a file is on two different devices, and one is online and one is not, the system may indicate on a GUI that the device where the file is stored is online, because the user's actual access to the file is not hindered by one of the devices being offline. Other status's than online and offline may also be indicated by the system. For example, the connections speed or status of a device may be indicated. In another example, a passive or active status may be indicated. Such a status may be relevant if a computing device has a standby, sleep, hibernate, or screen saver mode that restricts remote access to the memory of the device. In another example, instead of online or offline which indicates communication between two devices over a network, a device status may be connected or unconnected. This may be useful for a secure digital (SD) card, portable hard drive, or USB storage device, where the devices are connected directly to a computing device rather than communicating with devices over a network. Other potential statuses that may be indicated by the system about a computing device may include a currently operational status, a currently non-operational status, or a set in a lower functional mode status. Despite the status of a device however, if a file has been previously indexed, the representative information relating to the file can be displayed.
  • In an illustrative embodiment, the representative information for a file may be manipulated or changed by the user. For example, if the user receives a file through a file sharing website or attached to an e-mail, the file may have a computer generated name or a name that is otherwise undesirable by the user. Accordingly, the user may then change the name of the file that is used in the representative information. Any other of the representative information may also be changed by the user.
  • The system may also display a preview of electronic files on the GUI. This may occur automatically, or may occur based on some sort of interaction by the user with the GUI. For example, the system may display the preview only if the user clicks or taps on the file once. In another example, a preview may be displayed when the user moves a pointer over a file. In another embodiment, a preview may be automatically displayed, but a further preview may be displayed when a file is interacted with. For example, the first page of a document may be shown, and when a pointer is moved over the document, the second page of the document is shown. In another example, a thumbnail of a picture may be shown. When the user moves a pointer over the thumbnail, a larger and/or more high resolution version of the photo may be displayed by the system. In order to generate the preview of electronic files, the system may extract all or a portion of content from an electronic file to generate the preview. For example, where a first page of a document is used as a preview image, the first page of the document is extracted. Various types of previews may be displayed by the system. For example, a preview may include a first group of words from a document or message (such as an e-mail). Another preview may be a thumbnail image of a larger image, or a screen shot of a video. The preview image could also include some or all of the contact information relating to an e-mail or other type of message. A preview image could also include a task information relating to an electronic file. For example, where the electronic file is a task list, reminder list, or calendar, such a task list, reminder list, or calendar may include information that can be used in the preview. For example, a reminder list may include an item reminding the user to pay their rent. Accordingly, a preview of the reminder list or of the item on the reminder list itself may include the text “Rent is Due!” In another embodiment, such a task or preview may be derived from an e-mail, such as an e-mail requesting information from the user. The preview of such an e-mail may include text indicating the request.
  • In another illustrative embodiment, context menus may be used. Context menus are menus that pop-up on the GUI relating to a particular part of the GUI. For example, a context menu may pop-up if a user moves their mouse over the representative information of an electronic file. In another embodiment, the user can move a pointer over the representative information and make another input, such as a mouse click, to get the context menu to display. In other embodiments, such as when a touch screen is in use, the user may only input with regard to the representative information, and a pointer may not be utilized. A context menu may include information related to a particular electronic file or actions that may be taken related to the electronic file. For example, a context menu may indicate that an electronic file is classified as read only. In another example, a context menu may present a user with options relating to the electronic file, such as download the file, delete the file, rename the file, move the file, back-up or copy the file, etc.
  • In another illustrative embodiment, various user inputs and interactions may be made to effectuate opening an electronic file by clicking on or otherwise interacting with the representative information of a file on the GUI. For example, if the user wishes to open a document stored on a laptop, even though the user is currently using a tablet, the user may activate the system disclosed herein. The user can then navigate to or search for the representative information of the document desired, and tap on it through the touch screen of the tablet. The system receives the input from the user, and the system then uses an application that matches the file type of the document to open the document and display it to the user on the tablet. The application may be located on the tablet or located elsewhere. As long as the system has access to the application, the document can be opened. In an alternative embodiment, the system may select an application to utilize when opening a document based on a number of factors. For example, the system may consider whether the user made any choices regarding what application to use (e.g., an open-with option) or how the file should be displayed (e.g., read-only). The system may also choose an application that is appropriate for the device the user is currently using. The system may also select an alternative application to use where a preferred application is not available. In an alternative embodiment, electronic files that have been opened may be displayed directly by the system and even edited within the GUI. If a document is not available (for example, the device where the document is stored is offline), the system may automatically find another copy or replica of the document on another device and open that one. In this way, the user may never have to worry about how the document is actually opened. For example, there may be a copy or replica of the document on an external hard drive, a cloud storage server, or the user's home personal computer (PC). In another embodiment, the system may be able to locate a copy or a replica of the document on an e-mail server or otherwise find it among other message types that the user has sent or received.
  • In another illustrative embodiment, the GUI may display some representative information more prominently than other representative information. For example, if the representative information includes an icon such as a piece of paper type icon for a document. The piece of paper type icon for certain files may be displayed larger and/or further toward the top of the GUI than the icons for other files. Such a difference in prominence may be random, so as to make the display less monotonous and more pleasing to the eye. If groups of files are displayed together in a solitary representative information, different groups of files represented by an icon or symbol may also be displayed more prominently than other groups or individual files. In another embodiment, such differences in prominence may result from a decision made by the system to display the representative information of the files accordingly. For example, the system may determine to display more recently opened or edited files more prominently. In another example, the system may display messages that have been received but not read or responded to more prominently. In another example, the system may display photos or videos posted to the user's social networks that have a relatively greater number of social interactions with others on the social networks more prominently. If the system is displaying search results, the system may display results with more relevance to the search more prominently. Other criteria, such as number of times modified, date created, size of the file, or tag or metadata associated with the file, may also be used by the system to determine how to determine representative information to display more prominently on the GUI.
  • In another illustrative embodiment, the GUI may also display a representation of a current storage utilization of a device in which the GUI is being displayed. For example, the representation may include a graphical representation indicating a percentage or fixed amount of free storage space and used storage space. In another embodiment, such a representation may be used to indicate an amount of free and used storage space on a different device. In another embodiment, such a representation may be used to indicate an amount of free and used storage space on all of the user's devices combined. In another embodiment, such a representation may be used to indicate an amount of free and used storage space in a portion of a cloud storage space allotted to the user. In yet another embodiment, such a representation may be used to indicate an amount of free and used storage space in all of the user's devices and the portion of the cloud storage space allotted to the user.
  • In another illustrative embodiment, the representative information displayed on the GUI may include a hierarchical tree structure. Such a tree structure may indicate the various physical devices of the user and the files and folders stored thereon. The hierarchical tree structure may also indicate the files and folders stored on a user's allotted cloud storage space. In addition to showing where files are physically stored on various devices and/or cloud storage space, a hierarchical tree structure may alternatively or additionally display files in their designated virtual locations. A virtual file location is defined herein as a location the system visualizes a file being in, even if the file is not physically stored there. For example, a virtual location of “My Music” may contain all of a user's audio files, regardless of what device or folder the audio files are in. Thus, each audio file has a virtual location of the My Music folder. Other files and contacts may similarly have other virtual locations as determined by the system or the user. A virtual file is defined herein as a file that is a merged version of several files. The virtual file may physically exist on a storage device, or may exist locally when opened by the user and incorporates data from multiple physical files. A virtual file may be displayed as representative information on the GUI. The representative information may indicate that it is a virtual file, or the representative information may appear similar to the representative information for any other file, not indicating to the user that the file is a virtual file.
  • In an alternative embodiment, the representative information displayed on the GUI may be an amalgamation of representative information of multiple files. For example, the amalgamation may be represented by a circle. The circle may be sized according to the number of files represented by the amalgamation, a relative importance of the grouping of files, or other criteria. The amalgamation may also include text, such as the device or devices where the files in the amalgamation are stored, a file type or types of the files in the amalgamation, a total size of the amalgamation, or a preview of at least one of the files in the amalgamation.
  • Electronic files indexed, displayed, used, etc. by the system can include many things. For example, files as defined herein may include things such as documents, presentations, spreadsheets, e-mails, messages, audio files, video files, contact information, web pages, information from webpages, tasks, calendars, and the like. Such files may be gleaned by the system from various sources such as local file storages powered with operating systems (e.g., laptops, phones, tablets, media centers, etc.), external passive file storages (e.g., external hard drives, memory sticks, CD/DVD's, etc.), cloud storages (e.g., Dropbox™, Google Drive™, Evernote™, Flickr™′ Facebook™ galleries, etc.), e-mail accounts (e.g., Gmail™, Hotmail™, Yahoo™ mail, exchange servers, etc.), messenger services (e.g., Twitter™, Skype™, SMS, Snapchat™, Viber™, Google Hangouts™, etc.), social media feeds (e.g., Facebook™′ Google+™ LinkedIN™, etc.), contact lists (from e.g., e-mail accounts, messengers, telephone, personal address books, Outlook™ contacts, etc.), tasks, calendars, dictionaries, encyclopedias, internet sites, and any other services like FineReader™ online.
  • Advantageously, the systems and methods disclosed herein provide benefits over an exclusive utilization of cloud storage. Some people store information in a cloud storage in order to synchronize information on different personal devices. However, for other people, cloud storage is not necessary because personal devices have become very productive, and often have sufficient capabilities to handle the needs of many users without resorting to cloud storage strategies. In other cases, the amount of data produced by some people is so massive that transferring that data to cloud servers may be cumbersome and time consuming. For example, a digital camera owner may return from a vacation with hundreds, if not thousands, of photos or videos in high resolution. If these photos and videos were moved to cloud storage, the photos and videos could occupy multiple gigabytes of memory in the cloud storage servers, and may additionally severely tax data transfer resources to move all the photos and videos to a cloud server. Further, many devices have become wirelessly connected to each other (e.g., smart TVs, media centers, cameras, fitness bracelets, Google™-glasses, other wearable computers, etc.) so that it may be preferable to keep some data on local devices rather than remote servers. Additionally, much of the data that could be stored on a cloud storage may never be used again, thus unnecessarily taking up space on the cloud storage servers.
  • Accordingly, there may not be sufficient resources and/or desire to move vast quantities of generated data from multiple devices to cloud storage and organize all of the data. Additionally, cloud storage systems or leaving data on multiple devices may not be satisfactorily searchable to make such methods for file storage useful.
  • The systems and methods discussed herein provide for a multiple device storage system where files can be organized across all personal devices, cloud locations, and applications (e.g., e-mail, word processing, videos, pictures, etc.). Further, people share computer files sending them as e-mail attachments or attaching them to instant messages, social media feeds, blogs, or publishing them in their galleries or cloud storages. Accordingly, the systems and methods herein provide for organization and searching not only across all personal devices and cloud locations but also through a user's e-mails, instant messages, social media feeds, blogs, media galleries, and other communication content.
  • In one illustrative embodiment, a system can display, access, distribute, synchronize, manage, and search different types of content, including but not limited to file content, communication content, contact content and other personal information across multiple devices and cloud servers. The system may also include a server system that communicatively couples to an agent-type application on one or more client devices.
  • In one illustrative embodiment, a user may be able to perform a customizable search. For example, a user may wish to only search for a certain type of electronic files or content, such as contact information files. In this example, the user is able to specify that contact information files should be searched. In another example, the user may wish to only search among spreadsheet type electronic files. In another embodiment, the user may specify that he or she would only like to search among electronic files that are stored on particular electronic devices. For example, a user may specify that he or she would only like to search for electronic files on the user's mobile phone and cloud storage system. In other examples, these functionalities may be combined and mixed by the user. For example, the user may specify in the system that only videos from the desktop computer are the subject of a search. Regardless how a user defines such a custom search, the system may rank the search results and display the search results according to systems and methods disclosed herein.
  • In another illustrative embodiment, a method provides multi-platform content access, distribution, and synchronization of files on different devices including using a client-side application to manage transfer and presentation of files on a device and across server systems.
  • In another illustrative embodiment, a method provides multi-platform content access including full-text indexing of the content, files, and metadata of files located on a device and searching of files using full text index located on a server system.
  • In another embodiment, a method is disclosed for displaying data from local, external, offline, and other sources in a single interface presented to a user. The display can also include information on where the data and/or files are actually stored.
  • In another embodiment, a computer-readable medium may include instructions executable by a processor to cause the processor to perform functions enabling multi-platform content access, distribution, and synchronization on different devices. Such instructions may be embodied in a client-side computer organization application. In addition to the foregoing embodiments, other systems and computer program product embodiments are provided and supply related advantages.
  • The number of devices that a user may implement in her day-to-day life has proliferated. While these individual devices are often-times interconnected via, for example, wireless networking, cellular networking, and other infrastructures, systems and methods as disclosed herein can effectively manage data shared between such devices. For example, the systems and methods disclosed herein address platform content access, distribution, and synchronization of data and files, while managing the data and files as well.
  • 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.
  • 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.
  • In addition, the embodiments disclosed herein provide file and/or data management functionality, such as opening, copying, moving, deleting, archiving, sharing, and editing. The disclosed embodiments promote technology to automatically smart move files in a user's family cloud, so that there is always space on the user's phone and laptop, and the most necessary files are always at hand.
  • 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.
  • 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.
  • As will be further described, the embodiments disclosed herein provide search and data management functionality over an entire available range of data storage mediums and systems of exchange between devices. For example, various embodiments disclosed herein promote (a) disclosure, (b) manage, and (c) search information functionality for (1) locally stored files, (2) offline files, (3) cloud-based files, (4) e-mail information (whether stored locally, offline, or remotely), (5) instant message/short message format information (again stored in a variety of locations), (6) social media feeds, (7) contact information, (8) other type of content including but not limited to dictionaries and encyclopedias, tasks, calendars, etc.
  • An illustrative embodiment includes a distributed platform and a client application that allows users to have very easy access to their files and e-mail. The embodiment brings together all user information sources available in the user's network, including local and cloud sources, external devices, social networks, e-mail, and telephone communications. Furthermore, the embodiment allows for data management, which may be configured to be seamless and automatic. For example, one of the user's devices may be running out of available storage space on a particular data medium. The system may make the decision to migrate data in order to free space, or perform backup operations.
  • Another illustrative embodiment includes a platform based on a back-end and a front-end, native client and external device architecture. Any product/service that generates data and files (documents or messages) can integrate with this platform as a source of data and files. Accordingly, the user can see these data and files in a uniform interface with an ability to search, tag, preview, manage, share, etc. The platform may include built-in smart rules and notification functionality. For example, a particular device may be wearable, such as a fitness bracelet. This device, through the embodiments disclosed herein, may trigger a rule or notification based on the activity of the user to provide an alert. Moreover, embodiments as disclosed herein may include infrastructure through which data may be displayed. For example, a user may again be wearing a device, through which the infrastructure facilitates the viewing of a video message or otherwise displays data.
  • In an illustrative embodiment and from the point of view of architecture—agent software is installed under Operating System (OS) software. The agent extracts text and metadata from all local files and e-mail and passes on the data to a server or other local or remote processing device (herein referred to as cloud service) for indexing. The agent monitors changes in files. The agent collects the actual aggregate of all the devices of the user code and creates a local copy of the relevant index (cache).
  • In an illustrative embodiment and from the point of view of the user interface, the cloud service provides a combination of a simple, but very dynamic, attractive, and convenient e-mail client and a simple, but very comfortable file manager. Such a program may function in ways used in a traditional e-mail client (e.g., Microsoft™ Outlook™), but also may include the ability to view not only an e-mail message but also files included in correspondence. This program, a client tied to the cloud service, or cloud service client, may be implemented for desktop operating systems (OSX™ and Windows™), and for mobile operating systems, such as iOS™ and Android™.
  • In one illustrative embodiment, the cloud service client interface for desktop OS is very fresh and light in the spirit of interfaces for mobile OS. This program is not intended to replace traditional e-mail clients or file managers, but aims to make working with mail and files easier. For example, a first type of functionality may serve to review incoming mail. A system may provide a radically more convenient way of presenting the incoming mail than traditional systems, such as Outlook™ and Mac Mail. Such a presentation may be based on the fact that important messages are displayed in a different way than un-important messages. Another feature of such a system may relate to the formation of responses to messages directly within the cloud service client.
  • Furthermore, content management technology can be used with a mail client, which facilitates easy sharing of local files. In the system, a file may be shared as either a copy or a replica. For the purposes of this disclosure, a copy of a file is identical to the original file at the time of duplication, but is not automatically updated after changes in the original file on a separate machine. A replica of a file is identical to the original file at the time of duplication, and is automatically updated after changes are made to the original file, even if the original file exists on a separate machine than the replica file.
  • In one embodiment, efficient management of photos and/or video information on personal devices is possible. Such embodiments allow for the following objectives to be realized. The local storage associated with the camera can be emptied, or at least can always have some available memory. The data can be made accessible from and to the user's network of devices, from cameras, phones, tablets, wearable devices, and others. The data can be made accessible to the user's contacts. The data can be retained in one backup location, while freeing space on the user's other devices. Finally, the interface allows Original Equipment Manufacturers (OEMs) access to retain communication with the user to enhance consumer loyalty, address usage (i.e., provide instruction to the user), and maintain accessibility in the event of a recall, warranty, or other consumer support issue.
  • Illustrated embodiments incorporate innovative data management functionality, for example, an ability to automatically move the files between a user's devices and a public, private, or personal storage account, so that: (1) the cloud service client moves important and frequently used files to the user's local device, (2) the client always maintains a certain predetermined amount of free space (e.g., 25%, 30%, 35%, 40%, etc.) on the local device by gradually moving less-used files to remote devices, and (3), the client keeps copies of important files at 2 or 3 physical locations on different devices to avoid data loss caused by the loss of one of the devices or data unavailability due to no network access. In other words, an important file can still be accessed from one device even while a second device containing the file is offline.
  • An example can be the following usage scenario. A user inserts a secure digital (SD) card containing photos into a device. The system then copies newer photos on the SD card to a photo folder on the local device, while retaining free space on the device as will be further described. The system can then apply optional photo filters, smart tagging, object-facial recognition, audio tagging, and the like. Newer photos are then replicated from the photo folder to an external hard drive or default backup device. The newer photos can also be replicated from the photo folder to a replica at a remote storage location (e.g., cloud). The replica copies on the cloud storage may serve as the backup copies or may be separate from the backup copies. The user is then able to share the photos with contacts as indicated on the interface. For example, certain icons may be displayed to indicate that the photos are available in the system. The user may be able to click on an icon of the interface to start a slide show, share the photos, or perform another activity.
  • In an additional usage scenario, the user may turn on a scanner, and receive scans to a scan folder on his laptop. The mechanisms retain enough free space on the laptop by moving older images and retaining newer ones. The system may also apply photo filters, de-skew, perspective correction, optical character recognition (OCR), smart tagging, object-facial recognition, audio-tagging and the like. Newer scans can be replicated from the scan folder on the laptop to an external hard drive or default backup device. Newer scans can also be replicated from the scan folder to the remote storage location, again while retaining a certain amount of designated free space on the laptop and external and remote storage locations. The user is therefore able to share the scan with contacts as indicated by the interface.
  • In another embodiment, the system may implement an external communications link with a device that is accessible via the Internet, for example. The link may be provided to a user, whom after a short registration process then has the ability to connect a device through the external communications link, which then provides the user with OEM vendor content and accessibility through the interface. For example, the user may be asked to register an SD card, or verify a camera connection, during which the camera version is determined or confirmed. The mechanisms then will allow bi-directional communication between the user and the OEM via, for example, a designated tab, which may display OEM vendor content therein.
  • Software incorporating such embodiments may be installed via sharing (link shared via e-mail or other social networking contact), file sharing requiring installation of the software itself, or download from the appropriate website. Upon first use, the software may prompt for login information. If the user has used the software before, the user may be prompted to enter a login ID (such as an e-mail address) and a personal password. If the user has not used the software before, the user may be prompted to enter their e-mail address. A confirmation message can then be sent to the user's e-mail address that includes a temporary password in the message.
  • After confirming the user's e-mail address by using the temporary password to log in, a software window is displayed. In one illustrative embodiment, the left-hand side of the software window is empty initially. This side may be referred to as the workspace. On the right-hand side of the software window, available icons for sources such as my hard drive, external drives, if currently connected, cloud drives, Exchange, mail servers (Gmail etc.), other locations: camera, media centers etc., and other computers may be displayed. A user may be able to interact with the icons that represent the various sources. For example, a user may be able to drag an icon representing a source into the left-hand side workspace. By doing so, the software will recognize that the user has assigned that service or device to their personal cloud. The dragging may be accomplished using a mouse in a point and click fashion, or may be accomplished using a touch screen of some kind.
  • For example, the user may drag their hard drive icon to the left (the workspace). The software can further query the user for specific folders from the device that are to be indexed. By default, it suggests to index all folders on the user's local disk except for applications. The user can also connect their traditional e-mail clients (e.g., Outlook™, Exchange™ etc.). As soon as devices are assigned to the user's personal cloud, the workspace on the left is filled with a list of folders and files that have been assigned to the cloud storage.
  • At the top of the graphical user interface (GUI) window, the user views two large tabs: one for files and one for e-mail. In an alternative embodiment, a third tab may also be presented on the GUI for contacts. In other embodiments, other tabs may exist as well. For example, other tabs may include calendar and tasks tabs. A search field may also be presented on the GUI. As the sources are indexed, the system may display on the GUI a progress of the indexing. In the indexing, the system can detect duplicate files or very similar files in the user's personal cloud or other devices. For example, such matched files categorized as duplicates or other matched files may be categorized based on how well they match each other. For example, 100% duplicate files may have the exact same content and metadata, including the date and time the files were created and/or modified. In another example, 99.9% duplicate files may have the same content and metadata, save for being created at and/or modified at a different date and time. In another example, 99.8% duplicates may have the same content but may have different other metadata, such as a different file name. In another example, 99% similar files may have small differences in content.
  • The system may offer to consider files that are not 100% duplicate files as different versions. In an alternative embodiment, the system may utilize a different threshold. For example, the system may only offer to consider files that are 99% similar as different versions. The system may also consider the date and author of a last modification of a file, which of the files originates in an e-mail, by whom a possible e-mail was sent, when a possible e-mail was sent, etc. The system may utilize that information to make automatic decisions for indexing files. For example, if files meet a certain threshold of similarity or are duplicates, the system may only save the most recently modified version. In another example, the system may save all versions of the file but designate one version as an official version using one of the aforementioned criteria. In another embodiment, the system may offer to merge duplicates into one file. In such a case, the system may treat these physical files as a single logical file and synchronize the changes of this file across all its physical copies. If the duplicate is located within the same physical medium, the software will remove the physical duplicate (keeping an official copy).
  • The system may also analyze a user's e-mails and clear up the user's disorganization in contacts. Namely, the system may assign heuristically photos (or avatars) to any contacts of the user. The system may also obtain the photos or other information about the contacts from the user's social networks. For example, the system may obtain the 50 most active contacts with whom the user had communications in the last six months and may search for their e-mail addresses in a first social network. The system may also use other criteria to search for the contacts in the first social network, such as name or other data relating to a contact that the system may be able to glean from e-mails from the contacts or information manually entered by the user relating to the contacts. If the system fails to find such persons in the first social network, the system may move to a second social network and search for the contacts there using similar methods. The system may also locate contacts on social networks by searching for similar names to the contacts among friends of the user (such methods may include transliteration and fuzzy search functionality).
  • In one embodiment, for each contact that a user has, a kind of dossier can be assembled for each contact. That is, the system can associate documents, files, e-mails, photos, etc. with each of the user's contacts. The system may also identify among all of the user's e-mail addresses, e-mail addresses that are preferred for e-mailing a contact, e-mail addresses that are not preferred for e-mailing a contact, and any wrong e-mail addresses (either e-mail addresses that are not valid or e-mail addresses that are not properly associated with the correct contact). The system may also add comments to e-mail addresses. Similarly, the system may clean up phone numbers on a contact list by analyzing the history of the user's SMS correspondence and phone calls. The system may also associate phone numbers with e-mail addresses that belong to the same contact.
  • 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™ 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.
  • In an illustrative embodiment, data to or from each contact can be automatically assigned a rank of importance. The rank of importance could be represented by a number, such as a number from 1 to 100. The rank of importance could also be a high, medium, or low categorization. Other ways of ranking may also be used. The user may change the ranking system manually, and may also change the rank of particular data manually. The ranks of importance for data may be used to determine how to visualize the incoming messages and e-mails from different contacts. For example, messages from higher ranked contacts or related to higher ranked conversations may be displayed by the system more prominently than other messages. By analyzing the data in social networking channels, e-mail addresses, message structures, and/or signatures in messages, the system may extract a contact's possible past and current places of employment. In this way, the system may build an ontology of the people and companies with whom the user has been corresponding and contacting.
  • 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.
  • 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.”
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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).
  • Aspects of the embodiments disclosed herein are described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments disclosed herein. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, may be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • 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.
  • 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.
  • FIG. 1 is a representation of a graphical user interface (GUI) 100 demonstrating an e-mail interface in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be displayed on the GUI. The GUI 100 includes two tabs toward the top, an e-mails tab 105 and a files tab 110. The e-mails tab 105 and the files tab 110 may, in an alternative embodiment, include a number indicating the number of e-mails or files indexed on each respective tab. In another alternative embodiment, a number in the e-mails tab 105 or the files tab 110 may also indicate a number of unread or new e-mails or newly indexed files. The GUI 100 further includes secondary tabs 115. These secondary tabs 115 can help further sort the e-mails displayed when the e-mail tab 105 is selected. In GUI 100, the e-mail tab 105 is selected, and thus the secondary tabs 115 are displayed. The secondary tabs 115 include options for sorting e-mails such as all, important, work, family, friends, architect, social, promo, and more. Some of the secondary tabs 115 are default and some are user defined. If a user selects one of the secondary tabs 115, e-mails relating to that tab are displayed. In one embodiment, multiple secondary tabs 115 may be selected. Accordingly, e-mails may be sorted based on multiple criteria. In one embodiment, if two secondary tabs 115 are selected, any e-mails that relate to either of the subjects of the tabs are displayed. In an alternative embodiment, selecting two tabs displays only e-mails that relate to both tabs. More than two tabs may also be selected in various embodiments.
  • The GUI 100 also includes a search space 120. If a user enters text into the search space 120, the terms entered may be searched for among e-mails. The searching may search for the exact characters entered into the search space 120 or may include fuzzy searching. In an alternative embodiment, a search may be performed in areas other than just the e-mail folder. The GUI 100 also includes a settings and alerts icon 125. If the user selects the settings and alerts icon 125, the user is directed to displays that allow the user to change settings or alerts related to the system and methods disclosed herein. For example, wherever throughout this disclosure a feature is described as configurable by the user, the user may be able to navigate to a GUI that allows them to configure such a feature through the settings and alerts icon 125.
  • The GUI 100 also includes e-mail previews, that preview individual e-mails. For example, e-mail previews 130, 135, and 140 are all shown on GUI 100. E-mails 130 and 140 include an attached picture that is displayed in the preview. E-mail 130 includes multiple photos in the preview. One is displayed more prominently than the others. Each of e-mails 130, 135, and 140 include text that is displayed in the preview. E-mails 130, 135, and 140 also include a photo or avatar of the sender of the e-mail, the sender's name, and the date and time the e-mails 130, 135, and 140 were sent.
  • In this embodiment, e-mail 130 has been selected for full viewing by the user. Such selection may occur by the user tapping or clicking on the e-mail 130. The full view 145 shows much of the same information as in the preview, except larger and more easily viewable. The full view includes much better views of photos 150 and 155. Further, the user may interact with the photos 150 and 155 to cause a photo that is not displayed prominently by default, such as photo 155, to be displayed more prominently. Also, if the e-mail 130 had more text then it currently does, the full text may be visible in the full-view 145 but not the preview. The GUI 100 also includes a contact info 160. The system automatically displays the contact info 160 of the sender of the e-mail that is selected for the full-view 145, in this case e-mail 130. The contact info 160 includes the sender's photo or avatar, name, telephone number, groups, and e-mail history. In this case, Gary Thomas is part of the friends and architects groups. Thus, if the user selects secondary tabs 115 such as friends or architect, e-mails from Gary Thomas may be displayed on the GUI 100. The groups that Gary Thomas is a part of may be automatically selected based on the interactions between the user and Gary, the content of the correspondence between the user and Gary, or information from the user's social networks. For example, if Gary Thomas was listed as a family member of the user on the user's Facebook™ profile, the system may automatically put Gary in the Family group. In an alternative embodiment, the user may configure and determine the groups that a contact belongs in. The e-mail history displayed in the contact info 160 indicates the magnitude of correspondence between Gary and the user. In this case, the user has received 23 e-mails from Gary and sent 32 e-mails to Gary.
  • In an illustrative embodiment, the GUI 100 in FIG. 1 may be similar to a GUI used to display search results for an e-mail message specific search. In an e-mail specific search, the user may have indicated a desire to only search for e-mails. This desire may be indicated by the fact that the user has navigated to the e-mails tab 105 and subsequently performed a search in the search space 120. In this embodiment, e-mails that are relevant to any search criteria may be displayed on the left of the GUI 100. For example, e-mails 130, 135, and 140 may be examples of e-mail search results. In this embodiment, the e-mail 130 is selected and the user can see further information relating to the e-mail 130 in the full-view 145. In this way, the user may be able to verify and locate the information they seek through the search without having to open different e-mails in a separate application. Another advantage of the current system is that a search of e-mails performed using the GUI 100 may search for e-mails across multiple e-mail and messaging platforms. For example, the system could search across multiple e-mail exchanges and inboxes for each of a user's e-mail addresses. Furthermore, the system may search across any messaging services the user utilizes, such as instant messaging apps for a smart phone, chat services online, and the like. Further, the search results displayed on the GUI 100 may reflect a ranking of search results. For example, the e-mail 130 may be ranked higher than the e-mails 135 and 140 since it is displayed closer to the top of the GUI 100. In an alternative embodiment, e-mails 130 and 140 may be ranked higher than e-mail 135 for example, because they are displayed more prominently and with attachment previews, which e-mail 135 does not have.
  • FIG. 2 is a blown-up representation of a GUI 200 demonstrating an e-mail interface in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be displayed on the GUI. Note that both in FIG. 1 and FIG. 2, the e-mails displayed are all related to one another. That is, the several e-mails form a sort of conversation among the senders. In this instance, the e-mail messages are displayed from oldest to newest. In this way, the e-mails can be read along the normal flow of conversation when the e-mails are read from top to bottom.
  • FIG. 3 is a block diagram illustrating a file transfer system in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be included in the system.
  • As shown in FIG. 3, an e-mail file sharing architecture may include e-mail software 301 on a sending computer, an exchange server on the sender side 304, a server on the recipient side 305, and e-mail software 306 on the recipient computer. Also as shown, sender's e-mail software 301 is able to access a file# 01 302 in sender's digital storage (the file to be sent) and generate an e-mail message 303 with a copy (file#02) of file# 01 attached. E-mail message 303 is sent through servers 304 and 305 to the recipient's software 306 as shown by the arrows on FIG. 3. Recipient's software 306 receives e-mail message 307 (a copy of message 303), which contains a file#03 (a copy of attached file#02). The recipient machine may save a copy of file# 03 locally to a recipient computer as file# 04 308. In one exemplary embodiment, the software 301 may be Outlook™, the server 304 may be an Exchange™ server, the server 305 may be a Gmail™ server, and the software 306 is Mac-OS Mail. This embodiment is merely for illustration. Any other server and software types may be used in different embodiments of such a system.
  • FIG. 4 is a block diagram illustrating a second file transfer system in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be included in the system.
  • As shown in FIG. 4, an integrated e-mail file sharing architecture may include e-mail software 401 on a sending computer, an e-mail server on the sender side 405, an e-mail server on the recipient side 407, and e-mail software 408 on the recipient computer. In an example procedure, an e-mail message 403 is composed using client software 401 and software 401 receives an indication that file# 01 402 should be made accessible through the message 403. Responsively, software 401 may access file# 01 402 and upload a replica or copy of file# 01 to a cloud server 406. The replica or copy is stored as file# 02 on cloud server 406 and software 401 receives access information for accessing file# 02. Responsively, software 401 sends the access information to a cloud-based server and the server generates a document (page#01) 404 containing the access information. In other cases, the access information may be stored in the form in which the cloud-based server receives it. An indication of page#01 (such as a network address, Internet address, linked file, or connection executable) is received or generated by software 401 and, in response to the indication being received or generated by software 401, software 401 inserts or attaches the indication (or page# 01 itself) to message 403. Message 403 is sent through servers 405 and 407 to software 408.
  • If the recipient software 408 is a standard e-mail client, then the recipient receives e-mail message 409 (which is a copy of message 403) from server 407 and accesses the link to the cloud-based server. The recipient computer accesses page# 01 404 from the cloud-based server. In some cases, the recipient computer may receive a message encouraging the recipient to use the cloud-based e-mail client, along with a download link. By accessing page# 01, the recipient is furnished with the link with access information to file#02 on the cloud storage 406. Recipient computer may use the link to access cloud storage 406 and download file# 02, forming file# 03—local copy or replica of the file# 02.
  • If the recipient software 408 is a client implementing embodiments disclosed herein, then the process may be repeated in the same way, except all the process of receiving file# 03 may be automated and file# 03 may be either a copy or a replica of file# 02. If file# 03 is a replica, then file#01 or file# 03 may be updated when the other is edited. The updating may be accomplished through cloud-based server 404 so that file# 02 need not be stored on cloud server 406 to maintain the connection between file# 01 and file# 03. In other implementations, file# 02 may continue to be stored and may serve as a link between the replica files.
  • If sender software 401 is also not a cloud-based client, then an agent process may be included as an add-on to software 401. The agent may accomplish the uploading and attachment/insertion of the link that would have been performed by the cloud-based client. Then, message 403 may be sent and received in the same way as described above. Sender composes Outlook™ e-mail message, then runs the “attach file” command.
  • FIG. 5 is a representation of a GUI 500 demonstrating a multi-file type view in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be displayed on the GUI. The GUI 500 includes e-mails tab 505 and files tab 510. These two tabs may function similarly to the e-mails and files tabs described above with respect to FIG. 1. In this embodiment, the files tab 510 is selected, and therefore files, instead of e-mails, are displayed in the GUI 500. The GUI 500 also includes secondary tabs 515, which are similar to the secondary tabs of FIG. 1, except that here the secondary tabs 515 can be used to sort and view files instead of e-mails. In this embodiment, the work secondary tab 515 is selected, so that files relating to the user's work are displayed. The GUI 500 indicates with icon 520 which secondary tab is selected. In this scenario, the icon 520 is a folder because there is an actual virtual folder for work related files. The displayed files in the GUI 500 may be stored on different devices, but can still be located in the same work virtual folder. The space size indicator 525 indicates that the work virtual folder contains 2.3 gigabytes of data. In an alternative embodiment, the space size indicator 525 may also indicate a space remaining that is allotted to the user or the user's virtual work folder.
  • The folders display 530 of the GUI 500 shows that there are six folders associated with work. The folders display 530 also shows the six individual folders 540. A folders size indicator 535 indicates that the folders contain 900 megabytes of data. The folders 540 may be opened to display the contents. The folders 540 may be physical or virtual folders, in that they may indicate actual physical storage locations or organizational storage locations.
  • The music display 545 of the GUI 500 shows several audio files 550. While the music display 545 shows that 123 audio files exist, only a few are actually shown on GUI 500. The system may display audio files that are most often played by the user, or the system may use some other criteria to determine which audio files are displayed. In an alternative embodiment, the system may display random audio files. If the user wishes to view other audio files, the user may select the music display 545 title in order to navigate to a GUI that displays more or all of the audio files. In an alternative embodiment, the user may be able to scroll through the list of the audio files 550 to view additional audio files.
  • 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.
  • 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 such an embodiment, the user may search for music, documents, photos, or other files specifically. Other search options are also contemplated. For example, the GUI 500 could, in an alternative embodiment, have a section for presentation documents. The user may also be able to perform a presentation specific search. In another alternative embodiment, GUI 500 could represent how search results may be displayed. For example, GUI 500 could be displaying relevant search results across a variety of file types. Advantageously, the results on the GUI 500 are displayed in a convenient manner that makes it easy for a user to access results of different types, as opposed to having results of different data and file types all mixed together. Further, the document types shown may rank higher than other document types for purposes of this search. For example, based on the search inputs from the user, the system may have determined that e-mails and contacts were not relevant or ranked very low for the search. Accordingly, the system has not displayed any e-mail or contact results on the GUI 500. Further, the GUI 500 may be displaying search results of each file type with the highest rankings. For example, with regards to the music display 545, only ten files are displayed, despite there being 123 relevant files to the search. Accordingly, the ten files displayed in the music display 545 may be the music files with the highest rankings among the relevant music search results. Similarly, the other sections on the GUI 500 may also be displaying results that correspond with higher ranking files of the relevant search results.
  • Another advantage of showing search results in a configuration like the GUI 500 is the multi-stage searching functionality. A broad search can be performed, yielding the results shown in the GUI 500. Next, a further narrowing search can be performed using any of the magnifying glass icons, such as the magnifying glass icon 580. In this way, the user can search among the results of the first search in a more pointed way to attempt to locate the exact file the user is looking for. For example, the initial search may have been “vacation.” The GUI 500 may then subsequently display vacation photos, songs listened to and downloaded while on vacation, documents regarding the vacation, and any other files related to a vacation.
  • Upon seeing the results of the search, the user may then further narrow the results by selecting the magnifying glass icon 580. By doing so, the user may be presented with a dialog that allows for further searching of the photos displayed on the GUI 500 (and any photos relevant to the original “vacation” search that did not fit into the GUI 500). For example, the user may further limit the search with the search term “bridge,” to attempt to find a favorite picture taken on a bridge while the user was on vacation. If there are any relevant search results to the second search term, the results can be displayed on a display similar to the GUI 500, or on a different display altogether, such as the displays shown in FIG. 6 or 10. A further narrowing search as disclosed here may also rank search results and display the results accordingly, as disclosed in various embodiments herein.
  • 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.
  • FIG. 6 is a representation of a GUI 600 demonstrating a photo view in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be displayed on the GUI. The GUI 600 includes e-mails tab 605 and files tab 610. These tabs may be similar to tabs 105 and 110 of FIG. 1. Here, the files tab 610 is selected, so the GUI 600 displays files. On the left-hand side of the screen, also referred to as a workspace, various storage mediums and types of files are listed. All of these represent locations of storage mediums and files that have previously been indexed by the system.
  • The workspace includes a places 615 section, a disks 620 section, a clouds 625 section, a top tags section 630, a search for 635 section, and a representation of current storage utilization 640. The places 615 section includes documents, photos, videos, attachments, etc. Each of the places 615 are considered virtual locations. For example, if a user clicked on or otherwise selected videos, all of the videos that can be accessed by the user would be displayed regardless of their actual physical location. However, the videos may still be displayed in the GUI 600 with an indicator of each video's actual physical location. Here, the photos are selected, as indicated by the arrow 645. Accordingly, photos are being displayed on the GUI 600.
  • The disks 620 section includes hard disk drives, solid state drives, or other physical memory of the user that has been indexed by the system. Here the disks 620 includes a Macitosh HD and an iphone™ 4S, as examples. Unlike the places 615 section, the selections available in the disks 620 section are not considered to be a virtual location, but rather a physical location, since the selections are associated with actual memory on actual physical devices. Upon selecting one of the disks 620, the system would display every file located on that memory. In an alternative embodiment, the system may not display software applications that are stored on a memory. In this embodiment, the actual file location of the displayed files is inherently displayed, since a physical memory has been selected and the arrow 645 would then point to one of the disks 620. In a further embodiment, the system could also show, along with individual files displayed from the memory, where the files are actually located in a file tree hierarchy within the respective memory.
  • The clouds 625 section includes cloud storage locations where the user may have files stored. Additionally, the user may have access to files stored on cloud storage locations that have been placed there by others. The system may index and display those files as well.
  • The workspace also includes a top tags 630 section. The top tags show tags, which are a type of metadata, that are associated with files in the various virtual and physical locations. The top tags 630 section displays tags that are most commonly found among the various files indexed by the workspace. In an alternative embodiment, the top tags 630 section may only display the top tags for the selected location that is selected to be displayed. For GUI 600, the currently selected location is the photos, so in this embodiment, the top tags for all photos may be displayed. In another embodiment, the top tags 630 section may not show the most used tags, but may rather use a different metric for determining which tags to display. For example, the system could display the most popular tags among all users of the system, the most popular tags of all users over a certain time period, the most popular tags of a similar demographic to the user, the most popular tags among those who the user has a relationship with such as the user's e-mail contacts, social network contacts, cloud storage contacts, etc. The system can also display tags that were most recently used by the user. If a user clicks on or otherwise selects one of the tags, whatever files are being displayed are sorted according to the selected tab. That is, only files that have the particular tag as metadata are shown. In alternative embodiments, multiple tags may be selected to sort displayed files in various ways. Furthermore, the tags that are displayed and how they are used can be configured by the user.
  • The workspace also includes the search for 635 section. The search for 635 section includes tags today, yesterday, and past week. If the user selects one of these tags, files that have been created or added to the system index in that time frame are displayed. In another embodiment, files that have been modified within the time frame are displayed. Other time ranges may also be used in alternative embodiments. In still other embodiments, the search for 635 section may include other types of tags, such as names of users who may have authored, edited, sent, commented on, or opened a file. By providing other types of tags here, the user could sort and filter documents in even further ways. The tags in the search for 635 section are all configurable by the user.
  • In an illustrative embodiment, a user may select a tag in the search for section 635, and a search may be automatically performed. In this embodiment, the search would be performed on whatever electronic files are already being displayed in the GUI 600. Here, the photos place is selected as indicated by the arrow 645. Accordingly, if the user were to select the tag “yesterday” in the search for section 635, the photos already displayed in the GUI 600 would essentially be filtered down to photos that have a date from yesterday. Also note that the photos in the GUI 600 are sorted by creation date. Even after the photos are searched and sorted by a tag from the search for section 635, the search results photos are still displayed according to the current filters, namely that the photos belong to the photos place and that they are sorted by creation date. Furthermore, the search results may be displayed in the GUI 600 according to rankings of the search results, utilizing the systems and methods disclosed herein.
  • In an additional embodiment, the GUI 600 may be used to display photo search results generally. That is, if a user searched just for photos or images, the GUI 600 may be utilized to show the search results for such a search. Also in this embodiment, the displayed results may be ordered and displayed according to rankings calculated using the methods and systems disclosed herein.
  • The workspace also includes the representation of current storage utilization 640. The representation of current storage utilization 640 demonstrates how much available and how much full memory the user has. Here, the representation of current storage utilization 640 demonstrates a total storage usage across all of the user's available storage mediums listed in the workspace. In an alternative embodiment, the representation of current storage utilization 640 may be configured to display usage of only certain storages, such as cloud storages or the user's iPhone™ 4S.
  • The photos as selected in the workplace are displayed in display area 650. The photos displayed include, for example, photos 675 and 680. Each photo in the present embodiment is displayed with a file title as well. The file title may indicate the name of the file. In other embodiments, the file title may also indicate other information, such as the actual physical location where the file is stored, the status of the device where the file is stored, and virtual locations the document is a part of, characteristics of the file, user input information about the file, tags regarding the file, and/or any other metadata relating to the file. Here, the user has positioned a pointer from a motion translation device over the photo 675. As a result, the system has highlighted the photo 675 by placing an additional box around it. In this way, the user knows which photo will be selected if the user makes an input to select a photo, such as with a mouse click.
  • The GUI 600 also includes a scroll bar 685. The scroll bar 685 allows the user to change the resolution of the photos he or she is viewing. In other words, if the user adjusts the scroll bar 685, the photos displayed in the display area 650 are enlarged or reduced depending on which direction the scroll bar 685 is scrolled. Consequently, if the photos are enlarged, some photos may be removed from the display area 650 because they can no longer all fit in the display area 650. Similarly, if the size of the pictures is reduced, more photos may be displayed in the display area 650. In an alternative embodiment, the scroll bar 685 may instead be used to cycle through photos that are displayed in the display area 650. In other words, if the user adjusts the scroll bar 685, the photos in the display area 650 will change.
  • Navigation arrows 655 are also shown on the GUI 600. The navigation can be used by the user to navigate to different displays. For example, if the user interacts with the left facing arrow, the system will display whatever was displayed previous to the GUI 600. If the user then wishes to return to the GUI 600, the user can interact with the right facing arrow. If instead the user wishes to navigate to a GUI that was displayed two pages before the GUI 600, the user may interact with the left facing arrow twice.
  • A folder hierarchy 660 is also shown on the GUI 600. The folder hierarchy 660 indicates the current folder location that is being displayed, and allows the user to navigate to related parent folders of the currently displayed folder. Here, the folder hierarchy 660 has three sections, a left, middle, and right section. Each section may, in other embodiments, have text and/or an icon within the section indicating the location or function described herein. The left section may represent an original or home display. If the user clicks or otherwise interacts with the left section, the display will be returned to such an original or home display. The middle section represents a first hierarchical layer of what is currently being displayed. In this case, the first layer is places. As such, if the user interacts with the middle section, the GUI may display documents from all of the places as shown in the workspace on the left of the GUI 600. The right section indicates the current display on the GUI 600. If the user interacts with the right section, nothing will change on the current display. In this case, the right section merely serves to remind the user of the current location that is being displayed. In another embodiment, interacting with the right section may reset any filters, searches, or modifications that have adjusted what is displayed in the display area 650. Such adjustments may be from the user's use of the scroll bar 685, the search for 635 section, the top tags 630 section, or others. In other words, in this embodiment, interacting with the right section of the folder hierarchy 660 leads to resetting the display of the currently displayed location.
  • Sorting sub-tabs 665 are also displayed on the GUI 600. The sorting sub-tabs 665 include creation date, recently changed, size, name, and favorite. Additionally, a tabs sub-tab is displayed. The tabs sub-tab may be used to configure which tabs are displayed in the sorting sub-tabs 665. Next to the tabs sub-tab is a pin icon. The user may interact with the pin icon to hide or show the sub-tabs 665. The sub-tabs 665 can be interacted with by the user to sort and filter what is shown in the display area 650. In this embodiment, the creation date sub-tab is selected. Accordingly, the photos displayed in the display area 650 are photos that have been created most recently. In another embodiment, the photos displayed in the display area may be those that have been created the longest ago.
  • FIG. 7 is a representation of a GUI 700 demonstrating a photo view with a search menu displayed in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be displayed on the GUI. The GUI 700 is similar to the GUI 600 in FIG. 6, except that a search field 705 is being interacted with by a user. The GUI 700 includes the search field 705. Here, no text has been entered by the user into the search field 705 yet, so a default text of “SEARCH” is still displayed in the search field 705. However, the user has activated a cursor in the search field 705. This causes an auto fill menu 725 to be displayed. The auto fill menu 725 displays suggestions for potential search results that the user may desire. In this embodiment, results such as result 710 and 715 are displayed. Here the user has positioned a pointer over the result 715. As a result, the system displays a preview 720 of the file represented by the result 715. The preview 720 may include extracted content of the file and/or metadata of the file.
  • The user can type search terms into the search field 705. As the user types into the search field 705, the auto fill menu 725 will begin to automatically populate with words, terms, and/or names of electronic files that match or partially match the search terms being entered into the search field 705. If the user likes some of the automatically populated search results, the user may select one to view a preview, like the preview 720, or the user may select one of the populated search results to open the electronic file. If the user is not particularly fond of any of the automatically populated search results, the user may input something else to indicate a full search is requested and that the user wishes to see more search results than just those that were automatically populated. Entering such a search may direct the user to a search results GUI. For example, the search results GUI might resemble the interfaces of FIG. 5 or 6 discussed above. For any searches performed, the system may also order the displayed search results according to rankings calculated for the results in accordance with systems and methods disclosed herein.
  • FIG. 8 is a representation of a GUI 800 demonstrating an e-mail interface with a sorted contact list in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be displayed on the GUI. The GUI 800 further displays an embodiment for viewing and writing e-mails in accordance with an illustrative embodiment. The GUI 800 includes an e-mails tab 805 and a files tab 810. Here, the e-mails tab 805 is selected.
  • The GUI 800 also includes various sections of contacts, such as the recent contacts 820 section, the lobster 825 section, the family 830 section, and the friends 840 section. Here, the recent contacts 815 are displayed, and for example include contact 820. Here, only a name, e-mail address, and photo or avatar is shown. However, alternative embodiments may show more or less information relating to a contact. The lobster 825 contacts are not displayed on the GUI 800. A downward facing arrow to the left of the lobster 825 indicates that the contacts are hidden. If the user interacts with the downward facing arrow, the contacts will be displayed and the downward facing arrow will be displayed as an upward facing arrow, similar to those of family 830 and friends 840. If the upward facing arrow of family 830 or friends 840 is interacted with, those groups of contacts will not be displayed on the GUI 800. In this embodiment, recent contacts 815 cannot be hidden. However, in other embodiments recent contacts 815 may be hidden. Additionally, the groups of contacts displayed may be configured automatically by the system or manually by the user. Contact 835 is an example contact in the family 830 contacts section. Contact 845 is an example contact in the friends section.
  • In the GUI 800, the contact 820 is selected as evidenced by an arrow 850, and therefore only messages from contact 820 are shown in the GUI 800. For example, previews 875 and 880 of messages from contact 820 are shown, as well as full e-mail 890. The messages can be sorted or organized on the GUI 800 in several ways. For example, the messages may be sorted or organized with message type buttons 855. The user can select to display only one or more message types. Here, the message types the user may select include e-mails, Skype™ messages, Facebook™ chats, and iMessages. Other options may be provided. The e-mails may also be sorted utilizing sub-tabs 860, which include newest, oldest, important, archived, and deleted. Here, the newest sub-tab is selected as evidenced by an arrow 865.
  • Draft e-mail section 870 provides the user an opportunity to respond to a selected e-mail. Draft e-mail section 870 allows the user to enter text for an e-mail, add attachments, to an e-mail, format the text of the e-mail, and add recipients to the e-mail.
  • Here, preview 875 has been selected as evidenced by an arrow 885 by the user and is shown as the full e-mail 890. The preview 875 includes only contact information for the sender and some of the text of the e-mail. The full e-mail 890 shows the contact information, a more complete contact information 897, photos such as photo 895, and the full text of the e-mail.
  • Additionally, the user for the GUI 800 has positioned a pointer over preview 880. As a result, the system has displayed a context menu over a portion of the preview 880. Further, it is worth noting that the preview 880 is offset in the GUI 800 from the other preview e-mails. This may indicate that the preview 880 is a part of an e-mail conversation relating to the preview directly above it.
  • The context menu includes six icons. Starting from the left, a pin icon can be interacted with to determine whether or not the e-mail remains on the GUI 800 display. The first left facing arrow may be interacted with by the user to direct the display to the first e-mail in an e-mail conversation. The second left facing arrow may be interacted with to direct the display to the previous e-mail in an e-mail conversation. Interacting with the right facing arrow may direct the display to the next e-mail in an e-mail conversation. In an alternative embodiment, the right facing arrow may be interacted with to direct the display to the final or most recent e-mail in an e-mail conversation. The icon second from the right is a download icon. When interacted with by the user, the e-mail and/or any attachments in the e-mail will be downloaded. The last icon is an X icon. If interacted with, that e-mail will be closed or hidden from view. In an alternative embodiment, interacting with the X icon will delete the e-mail.
  • FIG. 9 is a representation of a GUI 900 demonstrating an e-mail interface with a sorted contact list and an e-mail correspondence chain in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be displayed on the GUI. The GUI 900 is similar to the GUI 800 shown in FIG. 8, with a few differences, one of which is that e-mails from multiple contacts are displayed in the GUI 900.
  • Further, the GUI 900 includes alert numbers 905 and 910. The alert number 905 indicates that the user has three unread or new messages from contact Jane Wilson. The alert number 910 indicates that the user has one unread or new message from contact Steve Jones.
  • The full view e-mail in the GUI 900 includes a conversation preview, made up of preview messages 915, 920, and 925. Each of the preview messages 915, 920, and 925 represent a different message that has been sent in a conversation relating to the full view e-mail that is displayed in the GUI 900. Here preview messages 915 and 925 are messages sent by the user, thus designated with “YOU.” The preview message 920 was sent by another contact, whose name would be displayed where “NAME” is shown on the GUI 900. If a user interacts with any of the preview messages 915, 920, and 925, that particular preview message will be displayed and can be reviewed by the user in detail.
  • In an alternative embodiment, the GUI 900 may represent search results from a user search. For example, the user may have searched his or her e-mails for messages regarding “vacation.” The e-mails shown on the GUI 900 all pertain to vacation. The e-mails in the middle of GUI 900 represent the search results, and the e-mail on the right of the GUI 900 represents a full view of one of the search result e-mails. For any searches performed, the system may also order the displayed search results according to rankings calculated for the results in accordance with systems and methods disclosed herein.
  • FIG. 10 is a representation of a GUI 1000 demonstrating a single photo view in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be displayed on the GUI. The GUI 1000 includes an e-mails tab 1005 and a files tab 1010. On the GUI 1000, the files tab 1010 is selected. Further, the GUI 1000 here shows a large view of a photo 1030. The GUI 1000 may be a result of the selection of a photo from FIG. 6, which is why the photo's virtual folder is selected as evidenced by the arrow 1015. A view selector 1020 is also shown on the GUI 1000. The different sections of the view selector 1020 may be interacted with to change how the photos are viewed. For example, interacting with the view selector may return to a view like the one depicted in FIG. 6. Another section of the view selector 1020 may be interacted with to show a list of photo previews that displays significantly more metadata about the photos than is shown in FIG. 6.
  • The photo that is being displayed on the GUI 1000 may also be changed utilizing arrows 1035 and 1040. The user may move forward or backward in a sequence of photos using the arrows 1035 and 1040. The GUI 1000 also shows tags related to the photo 1030, such as tag 1055. Additionally, the user may add new tags to a photo with add your tag 1060.
  • The GUI 1000 also displays comments relating to the photo 1030, such as comment 1045. The user, who in this embodiment is named Eric Miller, may also comment on the photo 1030 using comment dialog 1050.
  • FIG. 11 is a representation of a GUI 1100 demonstrating an electronic files view with reminders in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be displayed on the GUI. The GUI 1100 includes an e-mails tab 1105 and a files tab 1110. On the GUI 1100, the files tab 1110 is selected. Here, the Google™ Drive is selected in the workspace as evidenced by an arrow 1115. The GUI 1100 includes large file previews, such as previews 1120 and 1125, as well as listed documents, such as document 1140.
  • Preview 1120 is shown as a single page preview. Preview 1125 displays only the first page of the file as preview, but indicates that the file has multiple pages. In an alternative embodiment, this may indicate that there are several copies of the file throughout the user's devices, or that there are multiple versions of the file. Each preview is also displayed with a name, such as name 1130.
  • Above the listed documents are sorting tabs 1135. Sorting tabs 1135 include creation date, recently changed, kind, size, name and favorite. The user may interact with the sorting tabs 1135 to manipulate which files are displayed in the listed documents. If any of the listed documents are interacted with, they may be shown as a large file preview. The listed documents also includes reminder notes, such as reminder 1145. The user may make such reminder notes either for himself or for other users who have access to the files with the reminders through a cloud storage. Additionally, reminders may also have been created by someone other than the user here, and therefore the user may be viewing reminders created by others. The list of documents also includes a checkbox 1150 and a favorite star 1155. The favorite star 1155 can be toggled on and off so the user can designate or undesignated a file as a favorite. The checkbox 1150 may be utilized by the user when the user wishes to perform the same action on several files. To do this, multiple files may be checked, or selected, and the action can then be carried out on all the files that have been checked.
  • In an illustrative embodiment, the GUI 1100 shows how search results may be presented. For example, the user may have specified to run a search of his or her Google Drive™. As a result of the search, the GUI 1100 may be displayed. Here, previews 1120 and 1125 are displayed with more prominence than the files displayed below, such as the document 1140. Accordingly, based on the search terms, the system has determined that those files shown above (e.g., the previews 1120 and 1125) are more relevant than the other search results (e.g., the document 1140). For any searches performed, the system may also order the displayed search results according to rankings calculated for the results in accordance with systems and methods disclosed herein. For example, here, the search results that are displayed with previews rank higher than the other search results displayed on the GUI 1100.
  • FIG. 12 is a representation of a GUI 1200 demonstrating a dynamic birds-eye view of a user's data in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be displayed on the GUI.
  • The GUI 1200 demonstrates a state of a dynamic view of all of the user's data, which may be termed a birds-eye view. The birds-eye view assists the user to understand the structure of all of the data in his entire network. In addition, this dynamic view presents any history of file changes to the user.
  • The GUI 1200 includes an e-mails tab 1205 and a files tab 1210. Here the Macintosh HD is selected from the workspace as evidenced by an arrow 1215. Here, the search term “#GREEN” has been entered into the search field 1220. Hence, any of the documents represented in the birds-eye view are related to the search term. However, in other embodiments, a dynamic display like the one in FIG. 12 may be displayed without search terms being entered. For example, if there were no search term entered in GUI 1200 but all else was the same, the various displays in the GUI 1200 would represent all of the files on the user's Macintosh HD, and not just the files associated with a search term.
  • The groups of files, or amalgamations, shown in the GUI 1200 all represent different things. For example, group 1225 represents all photos on the user's Macintosh HD that relate to the search term. If the group 1225 is selected, the photos may be displayed and examined in greater detail. The relative size and prominence of the group 1225 conveys information to the user. Here, it may convey that the user has more pictures than music or video. In another embodiment, the relative prominence of group 1225 may be an indicator that the user accesses photos more often than music or video files. Similarly, groups 1230, 1240, and 1255 may also be relatively sized based on quantity of files or preference of the user. In another embodiment, the relative sizes of the groups may indicate a relevance to the search term or terms. The groups may also be displayed using different colors. This can make the display more pleasant to look at, or the colors may indicate certain properties or relevance of files. The groups 1240 and 1255 indicate groups of files that correspond to certain hashtags. Groups such as group 1230 represents groups of files that correspond to certain contacts of the user.
  • In another example, groups 1235 and 1250 are displayed. Here, all files relevant to the search term from the year 2013 are represented by group 1235. Group 1235 is displayed more prominently than the other year groups (here 2011 and 2012) because of a relevance factor. That is, the system considers the year 2013 to be more relevant than past years to the user, thus group 1235 is displayed more prominently. Group 1250 is displayed with a medium amount of prominence because it may also be considered relevant to the user, since it contains files from last week. However, group 1250 is still intentionally smaller than group 1235 to indicate the relatively smaller group of files that are from last week than are from the entire year 2013. Also displayed on the GUI 1200 is a search dialog 1245. The search dialog 1245 offers an alternative to the search field 1220. Any searches performed using the search dialog 1245 may be dynamically displayed. That is, if a user searches for something, the user may visibly see groups change shape, move, be added, disappear, or change color depending on the relevance of files in each group to the search performed. Furthermore, groups can be customized and configured by the user or can be automatically generated by the system.
  • The groups displayed on the GUI 1200 can be interacted with by the user in a unique way. Each of the groups is displayed as a physical object that can be moved and has mass, speed, inertia, acceleration, magnetic, gravity, and/or other physical forces. The groups will therefore move and interact according to physical laws. A user may interact with the groups by dragging, moving, etc. the groups around the GUI 1200. The groups themselves also interact with each other. For example, a very small group may be pulled toward a larger group through a gravity force. Groups can change behavior, trajectory, color, and shape while a user moves a pointer or finger, types a search query, gets search results, moves items, scrolls through lists, or does other actions. A search can be performed by dragging a group or groups to the search dialog 1245. A search term can be removed from the search by dragging it out of the search dialog 1245. In one embodiment, the system is constantly estimated each group's importance to the user, and the physical size of the group indicates the relative importance calculation of that group to the user. Other facets of a group may also be used to indicate importance, such as position, shape, content, and dynamic effects of a group.
  • For example, the groups may interact in ways similar to how physical objects might interact. For example, if a user drags a group by touching and swiping a group through a touchscreen, any groups that the dragged group comes into contact with may be bumped and moved on the display. In other words, no two groups may occupy the same coordinate space on the GUI 1200, so if one bumps into another one will have to yield. In this regard, when two groups collide, the relative inertia, mass, and velocity of the groups may be taken into account. In other words, if a smaller group bumps a larger group, the larger group may be considered to have a larger mass than the smaller group. Thus, the smaller group would be able to transfer inertia to the larger group that either causes the larger group to move only slowly, while causing the smaller group to bounce off the larger group with much more velocity. In an alternative embodiment, where the user is dragging a group as described above, the system may give the group super powers. That is, the user dragging a group may give the group virtually unlimited mass, causing any group in its path to bounce off of it and out of the way. In this way, if a user wants to place a group in a particular place, they cannot be stopped from doing so.
  • In another example, certain groups may be subject to certain magnetic forces. For example, one group may subjected to a force between itself and a first type of groups, but not a second type of groups. For example, a photos group may be pulled toward other groups that contain other audio and/or visual media, such as videos, podcasts, music, and the like. In this way, by programming in a magnetic force between similar group types, the similar groups can be displayed together because of the magnetic forces acting upon them, as shown in one example in FIG. 12. The system may also include negative magnetic forces. That, is some groups may also be programmed to repel each other. For example, a GUI may include groups related to personal photos and work photos. In order to prevent the two from mixing or being associated with each other, a repelling magnetic force may be programmed in.
  • Regarding mixing, the user may combine groups using the GUI 1200. For example, a user may specify that one group envelope another to create a larger group representing the files of both the original two groups.
  • In an embodiment where a user may drag different groups around the GUI 1200, a user may slow down and stop the movement of the group before releasing it. In this case, the group may not move after release, but for other forces acting on it, such as gravitational or magnetic forces. In another embodiment, the user may not slow down or stop the movement of a group being dragged before releasing the group. In this case, the moving group may maintain its inertia unless acted on by other forces. For example, the group may crash into other groups, cause the group to bounce and/or the other groups to move on the GUI 1200.
  • Regarding searching, a user may search by either typing into the search dialog 1245 or dragging other groups to the search dialog 1245. For example, if the user wishes to see group representations of files that only relate to the hashtag “sea,” the group 1255 may be dragged by the user to the search dialog 1245. Once the group 1255 has been placed in the search dialog 1245, the group 1255 may no longer be subjected to the forces it would otherwise be subjected to. That is, the group 1255 is stuck in the search dialog 1245. The system will perform the search by changing the relative sizes of the other remaining groups displayed on the GUI 1200 to indicate files that are relevant to the hashtag “sea.” The changing of the sizes may be demonstrated immediately, or may be animated as a transition over time. Regardless of how quickly the groups change size to indicate the search results, the forces present between groups may change, and the groups will react accordingly. For example, if a group gets bigger, it may push other groups out of the way, while exerting a larger gravitational force on the other groups. If a group gets smaller, the gravitational force exerted on other groups may be reduced. The changes in gravitational forces based on search results may cause the groups to actually move on the GUI 1200 after the search is performed.
  • Although circles are used to represent groups in FIG. 12, other shapes may be used in other embodiments. In such embodiments, the shape of a group may impact how the groups physically interact. For example, a circle bouncing off a circle in the GUI 1200 may not happen in the exact same way as a circle bouncing off of a triangle, the bounce angle may be different due to the different shape.
  • FIG. 13 is a representation of a GUI 1300 demonstrating a multi-level view including a hierarchical tree structure in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be displayed on the GUI. The GUI 1300 includes an e-mails tab 1305 and a files tab 1310. Here the files tab 1310 is selected. Further, the Macintosh HD is selected from the workspace. In the workspace, a pointer has been directed by a user to the attachments/dropbox location 1315. As a result, the system has displayed a highlighted box around the attachments/dropbox location 1315. Further, in the workspace, certain locations also indicate how many files are physically stored at each location. For example, the Macintosh HD has 241 files stored on it's hard drive. In an alternative embodiment, such a number may indicate something different, such as files indexed from this location within the last week or month.
  • The GUI 1300 also includes a search analysis section 1320. This section indicates trends, data, and/or statistics regarding the search results. For example, 44 of the search results are associated with the tag “GREEN” and eleven of the search results are from files from the year 2012. In alternative embodiments, other statistics may also be displayed, such as size of files, author of files, sender of files, number of versions or changes from original, or importance.
  • A search term “REDCAT” has been entered into a search dialog 1325. Accordingly, each one of the files or file representations in the GUI 1300 are related to the search term. A file tree hierarchy 1330 is shown in the GUI 1300. The file tree hierarchy 1330 shows a navigable hierarchy that shows folders and sub-folders where relevant search results are located. Each level of the hierarchy also includes an indicator 1335 of how many relevant search results are in each folder. The folders displayed here can represent physical or virtual folders. A search results section 1340 may show the contents of a folder selected from the file tree hierarchy 1330. In another embodiment, the system may automatically populate the search results 1340 with various relevant search results 1360, such as photo 1350 and document 1365. The search results 1360 may also be modified or sorted using a drop down menu 1345. Here it is indicated that the results have been modified.
  • The file tree hierarchy 1330 in the GUI shows search results grouped or clustered together in a way that is convenient for the user. The file tree hierarchy starts out with a broad folder, “all results.” If the user selects this, all of the results of the search can be viewed. However, the “all results” folder can be expanded to reveal further sorted and clustered search results. For example, in FIG. 13, a work sub-folder is selected and expanded out. Advantageously, each folder also shows how many search results are part of that cluster or group. The work folder shows 44 results. Any of the sub-folders, in addition to being expanded, can also be selected. Once selected, the search results are displayed in the search results section 1340. Advantageously, the file tree hierarchy 1330 gives the user of the GUI 1300 a convenient and simple way to manageably view and deal with large numbers of search results. For any searches performed, the system may also order the displayed search results according to rankings calculated for the results in accordance with systems and methods disclosed herein.
  • There are also subsections of the search results 1360. Here, the subsections include media and document type results, though other types may be included in other embodiments such as contacts and messages. The media results also include a show all button 1347. By interacting with the show all button 1347, all of the media results may be displayed. In the alternative, if the user would like to view more results, an arrow 1355 may be interacted with to scroll through the different media results that are not currently displayed.
  • Here, document 1365 has been selected from among the search results. Accordingly in preview section 1375, a preview 1380 of the document 1365 is displayed. Further information 1390 about the previewed file is also displayed. If a user has previously made a reminder regarding the file, the reminder is also displayed. Here, reminder 1385 is displayed along with the preview 1380. At collaborators 1395, the system may display who has collaborated on the file with the user. However, in this embodiment, nobody has collaborated on the file.
  • FIG. 14 is a representation of a GUI 1400 demonstrating a multi-level view including a document preview in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be displayed on the GUI. The GUI 1400 shows an alternative display to the GUI 1300 of FIG. 13. The GUI 1400 includes an e-mails tab 1405 and a files tab 1410. Here the files tab 1410 is selected. The workspace of GUI 1400 also demonstrates how the status of a device or location might be indicated. At location 1445, external HD for films, there is an indication that the location is offline. Here search results are shown as folders, such as folders 1415, 1420, and 1425, and documents, such as documents 1430 and 1435. Here the documents in the search results including the documents 1430 and 1435 include an extracted first page preview. The selected document, document 1430, also has text from the document displayed as preview 1440, which may be easier to read than the first page preview.
  • FIG. 15 is a representation of a GUI 1500 demonstrating the contents of a specific device's storage in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be displayed on the GUI. The GUI 1500 includes an e-mails tab 1505 and a files tab 1510. Here, the files tab 1510 is selected. The GUI 1500 shows another alternative embodiment to the GUIs 1300 and 1400 for displaying search results. Here the preview on the right side of the GUI 1500 is similar to previous embodiments. However, the results are displayed as a list of documents and including metadata regarding the documents. The search results include documents 1525 and 1530. Here, a priority icon 1520 is associated with the document 1525. This indicates that the user has noted that the document 1525 is a priority. Further, although not visible in FIG. 15, the priority icon 1520 and other priority icons may be color coded in order to determine relative priority for different documents. A check mark icon 1535 also appears next to certain documents in the search results. Such a check mark icon 1535 indicates that the document has been backed-up on the user's cloud storage. If the original file is on cloud storage, then a check mark may indicate that the document has been backed up in a second location.
  • FIG. 16 is a representation of a GUI 1600 demonstrating a multi-level view including a document preview and an icon based tagging section in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be displayed on the GUI. FIG. 17 is a representation of a GUI 1700 demonstrating an e-mail interface with a sorted contact list, an e-mail correspondence chain, and an icon based tagging section in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be displayed on the GUI. Both the GUI 1600 and the GUI 1700 display combinations of elements and functionalities discussed previously with respect to other figures. The GUI 1600 and the GUI 1700 demonstrate alternative embodiments to the previously discussed figures.
  • FIG. 18 is a block diagram illustrating various computing and electronic storage devices that may be used in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be included in the system. FIG. 18 includes a personal computing device 1800, a portable storage device 1897, a network 125, a cloud storage system 1830, a tablet device 1840, and a mobile electronic device 1865. The personal computing device 1800 includes a processor 1815 that is coupled to a memory 1805. The personal computing device 1800 can store and recall data and applications in the memory 1805. The processor 1815 may also display objects, applications, data, etc. on a display/interface 1810. The display/interface 1810 may be a touchscreen, a game system controller, a remote control, a keyboard, a mouse, a trackpad, a microphone, a camera, a set of buttons, a standard electronic display screen, a television, a computer monitor, or any combination of those or similar components. The processor 1815 may also receive inputs from a user through the display/interface 1810. The processor 1815 is also coupled to a transceiver 1820. With this configuration, the processor 1815, and subsequently the personal computing device 1800, can communicate with other devices, such as the cloud storage system 1830 through a connection 1887 and the network 1825. Although FIG. 18 shows one personal computing device 1800, an alternative embodiment may include multiple personal computing devices.
  • The tablet device 1840 includes a processor 1855 that is coupled to a memory 1845. The processor 1855 can store and recall data and applications in the memory 1845. The processor 1855 may also display objects, applications, data, etc. on a display/interface 1850. The display/interface 1850 may be a touchscreen as most tablets have, but may also include or incorporate a keyboard, a game system controller, a remote control, a mouse, a trackpad, a microphone, a camera, a set of buttons, a standard electronic display screen, a television, a computer monitor, or any combination of those or similar components. The processor 1855 may also receive inputs from a user through the display/interface 1850. The processor 1855 is also coupled to a transceiver 1860. With this configuration, the processor 1855, and subsequently the tablet device 1840, can communicate with other devices, such as the personal computing device 1800 through a connection 1895 and the network 1825.
  • The mobile electronic device 1865 includes a processor 1875 that is coupled to a memory 1885. The processor 1875 can store and recall data and applications in the memory 1885. The processor 1875 may also display objects, applications, data, etc. on a display/interface 1880. The display/interface 1880 may be a touchscreen, a game system controller, a keyboard, a remote control, a mouse, a trackpad, a microphone, a camera, a set of buttons, a standard electronic display screen, a television, a computer monitor, or any combination of those or similar components. The processor 1875 may also receive inputs from a user through the display/interface 1880. The processor 1875 is also coupled to a transceiver 1870. With this configuration, the processor 1875, and subsequently the viewer electronic device 1865, can communicate with other devices, such as the tablet device 1840 through a connection 1890 and the network 1825. Although FIG. 18 shows only one mobile electronic device 1865, an alternative embodiment may include multiple mobile electronic devices.
  • FIG. 18 also includes the cloud storage system 1830. The cloud storage system 1830 may include a number of servers that may have memory and processors. The cloud storage system 1830 is connected to the network through a connection 1835 and may communicate with other devices such as the mobile electronic device 1865.
  • FIG. 18 also includes the portable storage device 1897. This portable storage device 1897 may be a removable USB drive for example. Since such a portable memory does not have a processor, the portable storage device 1897 must be connected to a computing device for the information and files stored on the portable storage device 1897 can be read by such devices. Accordingly, in this embodiment, the portable storage device 1897 is plugged into the personal computing device 1800, which can read the data from the portable storage device 1897 and communicate its contents or data related to its contents to any of the other devices that have access to the network 1825.
  • The devices shown in the illustrative embodiment may be utilized in various ways. For example, any of the connections 1887, 1890, 1895, and 1835 may be varied. Any of the connections 187, 190, 195, and 135 may be a hard wired connection. A hard wired connection may involve connecting the devices through a USB (universal serial bus) port (like connection 1899), serial port, parallel port, or other type of wired connection that can facilitate the transfer of data and information between a processor of a device and a second processor of a second device. In another embodiment, any of the connections 1887, 1890, 1895, and 1835 may be a dock where one device may plug into another device. While plugged into a dock, the client-device may also have its batteries charged or otherwise be serviced. In other embodiments, any of the connections 1887, 1890, 1895, and 1835 may be a wireless connection. These connections may take the form of any sort of wireless connection, including but not limited to Bluetooth connectivity, Wi-Fi connectivity, or another wireless protocol. Other possible modes of wireless communication may include near-field communications, such as passive radio-frequency identification (RFID) and active (RFID) technologies. RFID and similar near-field communications may allow the various devices to communicate in short range when they are placed proximate to one another. In an embodiment using near field communication, two devices may have to physically (or very nearly) come into contact, and one or both of the devices may sense various data such as acceleration, position, orientation, velocity, change in velocity, IP address, and other sensor data. The system can then use the various sensor data to confirm a transmission of data over the internet between the two devices. In yet another embodiment, the devices may connect through an internet (or other network) connection. That is, any of the connections 1887, 1890, 1895, and 1835 may represent several different computing devices and network components that allow the various devices to communicate through the internet, either through a hard-wired or wireless connection. Any of the connections 1887, 1890, 1895, and 1835 may also be a combination of several modes of connection. The network 1825 may also include similar components described above with respect to the connections 1887, 1890, 1895, and 1835. In addition, the network 1825 may include intermediate servers, routing devices, processors, data traffic management services, and wired or un-wired connections.
  • To operate different embodiments of the system or programs disclosed herein, the various devices may communicate using the software systems and methods disclosed herein. Software applications may be manually installed on the devices or downloaded from the internet. Such software applications may allow the various devices in FIG. 18 to perform some or all of the processes and functions described herein. Additionally, the embodiments disclosed herein are not limited to being performed only on the disclosed devices in FIG. 18. It will be appreciated that many various combinations of computing devices may execute the methods and systems disclosed herein. Examples of such computing devices may include smart phones, personal computers, servers, laptop computers, tablets, blackberries, RFID enabled devices, video game console systems, smart TV devices, or any combinations of these or similar devices.
  • In one embodiment, a download of a program to the mobile electronic device 1865 involves the processor 1875 receiving data through the transceiver 1870 through connection 1890 and the network 1825. The network 1825 may be connected to the internet. The processor 1875 may store the data (like the program) in the memory 1885. The processor 1875 can execute the program at any time. In another embodiment, some aspects of a program may not be downloaded to the viewer electronic device 1865. For example, the program may be an application that accesses additional data or resources located in a server, or even the cloud storage system 1830 which may include one or more servers. In another example, the program may be an internet-based application, where the program is executed by a web browser and stored in a server that is part of the network 1825 or the cloud storage system 1830. In the latter example, temporary files and/or a web browser may be used on the mobile electronic device 1865 in order to execute the program, system, application, etc. In additional embodiments, the tablet device 1840 and the personal computing device 1800 may use, store, or download software applications and web based programs in a similar way.
  • The configuration of the personal computing device 1800, the portable storage device 1897, the tablet device 1840, the mobile electronic device 1865, the network 1825, and the cloud storage system 1830 is merely one physical system on which the disclosed embodiments may be executed. Other configurations of the devices shown exist to practice the disclosed embodiments. Further, configurations of additional or fewer devices than the ones shown in FIG. 18 may exist to practice the disclosed embodiments. Additionally, the devices shown in FIG. 18 may be combined to allow for fewer devices or separated where more than the five devices shown exist in a system.
  • FIG. 19 is a flow diagram illustrating a method 1900 of displaying representative information of files and e-mails on a GUI utilizing a two tab display in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different operations may be performed. Also, the use of a flow diagram is not meant to be limiting with respect to the order of operations performed. In an operation 1905, the system determines the presence of electronic files, such as documents, photos, videos, messages, and contacts, on a several electronic devices of a user. Such devices could include a laptop, desktop computer, external hard drive, tablet, smart phone, etc. The system may also determine the presence of electronic files that the user has control of in cloud storage mediums. The index of all these electronic files may be stored on one of the user's devices or a cloud storage medium that the user's devices can access.
  • In an operation 1910, representative information of the electronic files that has been indexed is displayed in a single window configuration. The electronic files are displayed on a first tab in the single window. In this embodiment, the electronic files displayed on the first tab do not include messages and contacts. However, in other embodiments, messages and contacts may be displayed.
  • In an operation 1915, a second tab is also displayed in the single window configuration. In an operation 1920, an input is received from the user to navigate to the second tab in the single window. The input may be through a touchscreen, traditional mouse, track pad, or other user input device. In an operation 1920, e-mail files that have been indexed in the operation 1905 are displayed in the second tab. Accordingly, the method 1900 allows for indexing of electronic files, and a two tab display of information representing those files. The two tabs each display information regarding different types of electronic files. The two tabs can be switched back and forth quite easily from a single interaction or input from the user.
  • FIG. 20 is a flow diagram illustrating a method 2000 of determining files a user has access to and displaying representative information of the files on a GUI in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different operations may be performed. Also, the use of a flow diagram is not meant to be limiting with respect to the order of operations performed. In an operation 2005, a presence of electronic files on user devices is determined and the files are indexed. This operation may be performed similarly to operation 1905 of FIG. 19, discussed above.
  • In an operation 2010, the system further determines and indexes any electronic files that have been shared with the user or that the user has access to. For example, if a document is shared with the user on a cloud storage medium, the system can determine a presence of the document and index the document. In another example, the system may determine photos that have been shared with the user through photo sharing websites such as Flickr™ or Facebook™. In an additional example, even if a file has not been shared with the user, its presence may still be determined by the system as relevant to the users. For example, if a photo has not been shared with the user, but the user has been tagged in the photo in an online social network, then the system may determine the photo relevant and index it. In an operation 2015, representative information of the indexed files is displayed. The representative information includes both location information and descriptive information. That is, information on where a file is located and what a file is are both displayed.
  • FIG. 21 is a flow diagram illustrating a method 2100 of determining the status of various electronic devices and displaying that status on a GUI in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different operations may be performed. Also, the use of a flow diagram is not meant to be limiting with respect to the order of operations performed. In an operation 2105, a status of various electronic devices is determined. For example, a status of an electronic device may be a connection status, an online status, an offline status, a passive status, an active status, a connected status, an unconnected status, a currently operational status, a currently non-operational status, or a set in a lower functional mode status. For example, a lower functional mode may be a sleep, hibernate, or screen saver type mode. In another example, a lower functional mode may indicate that a device is locked or not logged into. In another example, a lower functional mode may indicate that a mobile device is on, but that most of the inputs are currently disabled and a display is turned off (for example, when someone darkens their phone while it is in his or her pocket or handbag).
  • In an operation 2110, the status of each electronic device is displayed. The status of each device may be indicated on a GUI. In an operation 2115, the status of each device is displayed along with representative information of electronic files. In other words, for an electronic file stored on an electronic device, the system will display a status along with the file whether the device where that file is stored is online or offline.
  • FIG. 22 is a flow diagram illustrating a method 2200 of extracting data from an electronic file and displaying a preview of the file on a GUI in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different operations may be performed. Also, the use of a flow diagram is not meant to be limiting with respect to the order of operations performed. In an operation 2205, data is extracted from an electronic file. In an operation 2210, the extracted data is used to generate a visual preview of the electronic file. For example, if the file is a document, a smaller version of the first page of the document may be used as a preview. In another example, if the file is a photo, a thumbnail of the photo can be generated to use as a preview. In an operation 2215, the visual preview generated from the extracted data is actually displayed on a GUI.
  • FIG. 23 is a flow diagram illustrating a method 2300 of receiving an input from a user and displaying a context menu on a GUI in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different operations may be performed. Also, the use of a flow diagram is not meant to be limiting with respect to the order of operations performed. In an operation 2305, the system receives an input from a motion translation device. In an operation 2310, when a pointer is located over representative information of a file and a further input is received such as a mouse click, a context menu relating to the electronic file is displayed.
  • FIG. 24 is a flow diagram illustrating a method 2400 of receiving an input from a user an opening an electronic file to be displayed on a GUI in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different operations may be performed. Also, the use of a flow diagram is not meant to be limiting with respect to the order of operations performed. In an operation 2405, the system receives an input from a motion translation device. In an operation 2410, when a pointer is located over representative information of a file and a further input is received such as a mouse click, the electronic file is opened from an online device. In other words, a file is opened from a device that is currently accessible. The system may open the file with a predetermined primary application or a predetermined secondary application. For example, a Microsoft Word™ document may be opened and viewed in Word™ or Google™ Docs. The system may have a predefined preference for Microsoft Word™, but if that application is not available, the system can attempt to open the file with other applications.
  • FIG. 25 is a representation of a GUI 2500 demonstrating a photo view overlay of a dynamic birds-eye view of a user's data in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different components may be displayed on the GUI. The GUI 2500 demonstrates a state of a view similar to the GUI 1200 discussed above with respect to FIG. 12. However, the GUI 2500 shows an overlay 2540.
  • The GUI 2500 includes an e-mails tab 2505 and a files tab 2510. Here the Macitosh HD is selected from the workspace as evidenced by an arrow 2515. Also here, the search term “#GREEN” has been entered into the search field 2520. Hence, in this embodiment, the photos shown in the overlay 2540 are related to the search term. However, in other embodiments, photos or other electronic files may be shown in the overlay 2540 that are related to other search terms. In still other embodiments, the files shown in the overlay 2540 may not be related to a particular search term, but may, for example, represent all of a user's photos (e.g., if the user interacted with the group 1225 shown in FIG. 12). In other embodiments, the files could represent the selection of or interaction with any of the groups shown in FIG. 12. If a search term has been entered, as here, then the files shown in the overlay 2540 will relate to the search term and the selected group. For example, if a user selected the group 1235 from FIG. 12., the overlay 2540 would display files related to the search term “#GREEN” and the year 2013. Here, the user has selected or interacted with the group 1225, which causes photos related to the search term to be displayed.
  • The overlay 2540 includes several photos on display, including photos 2530 and 2535. The photos initially displayed in the overlay, including the photos 2530 and 2535, are higher ranking than other photos relating to the search terms. In overlay description 2525, the GUI 2500 displays that photos are selected, and that there are 112 photos relevant to the search term here. The photos displayed in the overlay 2540 are photos that rank higher than the other relevant photos. The ranking of the photos may be calculated using any of the ranking calculation systems and methods disclosed herein.
  • The photos 2530 and 2535 displayed in the overlay 2540 may be interacted with. For example, the photos may be selected and viewed in greater detail. For example, selecting a photo may navigate the user to a GUI such as the GUI 1000 discussed above with respect to FIG. 10. In another embodiment, selecting a photo may allow the user to modify the metadata associated with the file, such as the tags of the file. In another embodiment, selecting a file from the overlay 2540 may cause the system to open the file using a separate software application. In one embodiment, the overlay may be a dynamic group similar to the groups described above with respect to FIG. 12. In another embodiment, a user may be able to interact with the overlay 2540 to resize the overlay itself and/or the previewed files displayed within the overlay 2540. The user may also be able to interact with the displayed files in the overlay 2540 to perform file management functions. For example, the user may be able to move files to different places. In one embodiment, the user may accomplish a moving of a file by selecting and dragging that file to one of the locations or places displayed in the workspace on the left of the GUI 2500.
  • In another alternative embodiment, the overlay may reflected multiple selected groups that have been selected by the user. For example, if the user selected groups 1255 and 1225 from FIG. 12, the overlay 2540 will display photos that have the tag “#SEA.” In another embodiment, the overlay 2540 may display electronic files (or representative information of those electronic files) that relate to an interaction with the search dialog 1245 of FIG. 12. For example, if the user enters text into the search dialog 1245, the overlay 2540 will be displayed to show files related to that text. In another embodiment, a group or groups may be dragged and dropped on the search dialog 1245. In this embodiment, the overlay 2540 may display files related to the group(s) that were dragged to the search dialog 1245. Further, the user may search using a combination of text entry and dragging groups to the search dialog 1245.
  • FIG. 26 is a flow diagram illustrating a method 2600 of performing a search and smart ranking the results in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different operations may be performed. Also, the use of a flow diagram is not meant to be limiting with respect to the order of operations performed. In an operation 2605, the system receives a search input. The search input may be text input by a user, a tag selection by a user, or other search input method as disclosed herein.
  • In an operation 2610, the system searches for electronic files related to the search input. As disclosed herein, the system may search various electronic devices, storage mediums, cloud storage systems, social networks, file sharing systems, etc. In an operation 2615, the system determines that there are electronic files that are related to the search input in the various locations searched. In an alternative embodiment, the system may search an index of electronic files that are stored on multiple devices, rather than search the various multiple devices themselves. In an operation 2620, the system calculates a ranking for each of the electronic files found that were related to the search input. The rankings may be calculated in various ways according to various methods and embodiments as disclosed herein.
  • FIG. 27 is a flow diagram illustrating a method 2700 of performing a search an looking up smart rankings for the results in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different operations may be performed. Also, the use of a flow diagram is not meant to be limiting with respect to the order of operations performed. In an operation 2705, the system receives a search input as disclosed herein. In an operation 2710, the system searches for electronic files related to the search input as disclosed herein.
  • In an operation 2715, the system determines the presence of electronic files related to the search input as disclosed herein. In an operation 2720, the system looks up ranks of the electronic files that were determined to be related to the search input. In this embodiment, the general ranks of each electronic file have already been calculated and are maintained in a file rank index.
  • In an operation 2725, the system adjusts the ranks based on search specific factors. For example, if an electronic document is stored on an electronic device that is not currently online, that may impact the ranking as disclosed herein. In another example, the content of a file and the search input may be a very close match, yielding a higher ranking as disclosed herein. Other factors may also be used to adjust the ranking as disclosed herein.
  • FIG. 28 is a flow diagram illustrating a method 2800 of performing a search, smart ranking the results, and displaying the results on a GUI in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different operations may be performed. Also, the use of a flow diagram is not meant to be limiting with respect to the order of operations performed. In an operation 2805, the system performs a search as disclosed herein.
  • In an operation 2810, the system calculates ranks for the search results utilizing systems and methods disclosed herein. In an operation 2815, the system displays on a graphical user interface (GUI) the search results. Displaying the search results includes displaying representative information of the electronic files that were found during the search as being related to a search input.
  • In an operation 2820, the search results displayed on the GUI are ordered according to the calculated ranks associated with each electronic file found in the search. For example, electronic files with higher rankings may be displayed toward the top of the GUI, while the lower ranked files may be displayed further toward the bottom of the GUI. In an operation 2825, the system further displays representative information and/or previews of the electronic files and/or displays certain files more prominently than others based on the calculated ranks of each electronic file. For example, the system may display a preview and other representative information largely for a highly ranked electronic file. In contrast, a lower ranked electronic file may have displayed smaller representative information and the representative information of the lower ranked electronic file may not include a preview.
  • FIG. 29 is a flow diagram illustrating a method 2900 for performing a search of contacts and messages and smart ranking the results in accordance with an illustrative embodiment. In alternative embodiments, fewer, additional, and/or different operations may be performed. Also, the use of a flow diagram is not meant to be limiting with respect to the order of operations performed. In an operation 2905, the system receives a search input. In an operation 2910, the system searches for electronic files related to the search input.
  • In an operation 2915, the system determines messages (e.g., e-mail messages, chats, instant messages, SMS messages, etc.) and/or contacts that are related to the search input. In an operation 2920, the system calculates ranks of the messages and/or contacts based on an importance level of the contacts. For example, if a user frequently corresponds with a particular contact, that contact information and any messages associated with that contact may be ranked more highly during a search than contact information or messages associated with a contact the user corresponds with sparingly. Other methods of calculating an importance level of contacts and their associated correspondence are disclosed herein.
  • 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.
  • 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.

Claims (20)

What is claimed is:
1. A method according to a set of instructions stored on a memory of a computing device, the method comprising:
receiving, by a processor of the computing device, a search input;
identifying, by the processor, a plurality of electronic files related to the search input; and
calculating, by the processor, a rank for each of the plurality of electronic files based on statistical data of the plurality of electronic files.
2. The method of claim 1, wherein the searching for the electronic files further comprises searching a plurality of electronic storage locations.
3. The method of claim 1, further comprising displaying, by the processor, on a graphical user interface (GUI), representative information of the plurality of electronic files, wherein the representative information comprises descriptive information relating to the electronic files.
4. The method of claim 3, wherein the plurality of electronic files are displayed on the GUI in an order indicating the rank of each of the plurality of electronic files.
5. The method of claim 3, further comprising:
determining, by the processor, that a first rank for a first electronic file is higher than a second rank for a second electronic file; and
displaying, by the processor, on the GUI, a first representative information of the first electronic file more prominently than a second representative information of the second electronic file.
6. The method of claim 5, wherein the first representative information comprises a preview of the first electronic file.
7. The method of claim 5, wherein the first representative information is displayed closer to a top of the GUI than the second representative information.
8. The method of claim 3, wherein the representative information comprises an indicator of the rank of each of the plurality of electronic files.
9. The method of claim 1, wherein the statistical information comprises a usage level and calculating the rank further comprises:
determining, by the processor, the usage level of each of the plurality of electronic files; and
calculating, by the processor, the rank based on the usage level, wherein a higher usage level corresponds to a higher rank.
10. The method of claim 9, wherein the usage level comprises a number of times each of the plurality of electronic files has been accessed.
11. The method of claim 9, wherein the usage level comprises a cumulative amount of time each of the plurality of electronic files is displayed on a graphical user interface (GUI) or interacted with on the GUI.
12. The method of claim 1, wherein the statistical information comprises an accessibility level and calculating the rank further comprises:
determining, by the processor, the accessibility level of each of the plurality of electronic files based on:
a type of electronic device each of the plurality of electronic files is stored on,
a file type of each of the plurality of electronic files is,
a software application type utilized to display or modify each of the plurality of electronic files,
a size of each of the plurality of electronic files, or
an availability to the processor of each of the plurality of electronic files; and
calculating, by the processor, the rank based on the accessibility level, wherein a higher accessibility level corresponds to a higher rank.
13. The method of claim 1, wherein
the plurality of electronic files comprises a plurality of contacts,
the statistical information comprises an importance level, and
calculating the rank further comprises:
determining, by the processor, the importance level of each of the plurality of contacts; and
calculating, by the processor, the rank based on the importance level, wherein a higher importance level corresponds to a higher rank.
14. The method claim 13, wherein the importance level comprises a number of times correspondence has been sent to or from each of the plurality of contacts.
15. The method of claim 14, wherein the correspondence comprises e-mail message correspondence, text message correspondence, voice call correspondence, and instant message correspondence.
16. The method of claim 13, wherein the importance level comprises a response rate to correspondence from each of the plurality of contacts.
17. The method of claim 13, wherein one of the plurality of contacts is an organizational contact that comprises a plurality of members of the organization, and further wherein the importance level of the organizational contact is determined by determining a cumulative importance level of the plurality of members of the organization.
18. The method of claim 17, further comprising receiving, by the processor, a user defined determination of a subset of the plurality of contacts that corresponds to the plurality of members of the organization.
19. An apparatus comprising:
a memory;
a processor operatively coupled to the memory; and
a first set of instructions stored on the memory and configured to be executed by the processor, wherein the processor is configured to:
receive a search input;
identify a plurality of electronic files related to the search input; and
calculate a rank for each of the plurality of electronic files based on statistical data of the plurality of electronic files.
20. A non-transitory computer readable medium having instructions stored thereon that, upon execution by a computing device, cause the computing device to perform operations, wherein the instructions comprise:
instructions to receive a search input;
instructions to identify a plurality of electronic files related to the search input; and
instructions to calculate a rank for each of the plurality of electronic files based on statistical data of the plurality of electronic files.
US14/579,336 2013-12-31 2014-12-22 Method and System for Smart Ranking of Search Results Abandoned US20150186381A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/579,336 US20150186381A1 (en) 2013-12-31 2014-12-22 Method and System for Smart Ranking of Search Results

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361922597P 2013-12-31 2013-12-31
US14/579,336 US20150186381A1 (en) 2013-12-31 2014-12-22 Method and System for Smart Ranking of Search Results

Publications (1)

Publication Number Publication Date
US20150186381A1 true US20150186381A1 (en) 2015-07-02

Family

ID=53481964

Family Applications (9)

Application Number Title Priority Date Filing Date
US14/311,952 Active - Reinstated 2035-02-28 US9778817B2 (en) 2013-12-31 2014-06-23 Tagging of images based on social network tags or comments
US14/311,851 Active US9304657B2 (en) 2013-12-31 2014-06-23 Audio tagging
US14/533,593 Abandoned US20150186398A1 (en) 2013-12-31 2014-11-05 Method and System for Displaying Files Indicating File Location
US14/579,336 Abandoned US20150186381A1 (en) 2013-12-31 2014-12-22 Method and System for Smart Ranking of Search Results
US14/579,204 Abandoned US20150186478A1 (en) 2013-12-31 2014-12-22 Method and System for Tree Representation of Search Results
US14/579,616 Abandoned US20150186366A1 (en) 2013-12-31 2014-12-22 Method and System for Displaying Universal Tags
US14/579,500 Active 2035-12-06 US10209859B2 (en) 2013-12-31 2014-12-22 Method and system for cross-platform searching of multiple information sources and devices
US14/579,559 Abandoned US20150186395A1 (en) 2013-12-31 2014-12-22 Method and System for Offline File Management
US14/579,029 Abandoned US20150186369A1 (en) 2013-12-31 2014-12-22 Method and System for Dossiers for Data Units

Family Applications Before (3)

Application Number Title Priority Date Filing Date
US14/311,952 Active - Reinstated 2035-02-28 US9778817B2 (en) 2013-12-31 2014-06-23 Tagging of images based on social network tags or comments
US14/311,851 Active US9304657B2 (en) 2013-12-31 2014-06-23 Audio tagging
US14/533,593 Abandoned US20150186398A1 (en) 2013-12-31 2014-11-05 Method and System for Displaying Files Indicating File Location

Family Applications After (5)

Application Number Title Priority Date Filing Date
US14/579,204 Abandoned US20150186478A1 (en) 2013-12-31 2014-12-22 Method and System for Tree Representation of Search Results
US14/579,616 Abandoned US20150186366A1 (en) 2013-12-31 2014-12-22 Method and System for Displaying Universal Tags
US14/579,500 Active 2035-12-06 US10209859B2 (en) 2013-12-31 2014-12-22 Method and system for cross-platform searching of multiple information sources and devices
US14/579,559 Abandoned US20150186395A1 (en) 2013-12-31 2014-12-22 Method and System for Offline File Management
US14/579,029 Abandoned US20150186369A1 (en) 2013-12-31 2014-12-22 Method and System for Dossiers for Data Units

Country Status (1)

Country Link
US (9) US9778817B2 (en)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160048899A1 (en) * 2014-08-15 2016-02-18 Microsoft Corporation Auto Recognition of Acquirable Entities
US20160065511A1 (en) * 2013-10-02 2016-03-03 Yandex Europe Ag Displaying email attachments on a webmail page
US20160259856A1 (en) * 2015-03-03 2016-09-08 International Business Machines Corporation Consolidating and formatting search results
US9778817B2 (en) 2013-12-31 2017-10-03 Findo, Inc. Tagging of images based on social network tags or comments
US20170308545A1 (en) * 2016-04-21 2017-10-26 Microsoft Technology Licensing, Llc Prioritizing thumbnail previews based on message content
US20170329827A1 (en) * 2016-05-13 2017-11-16 Equals 3 LLC Searching multiple data sets
US20170344515A1 (en) * 2016-05-27 2017-11-30 Facebook, Inc. Distributing content via content publishing platforms
CN108446339A (en) * 2018-02-28 2018-08-24 维沃移动通信有限公司 A kind of sorting technique and mobile terminal of application icon
US20200073951A1 (en) * 2018-08-30 2020-03-05 Sap Se Smart search and help system
US10757057B2 (en) 2013-10-15 2020-08-25 Microsoft Technology Licensing, Llc Managing conversations
US11062035B2 (en) * 2018-04-30 2021-07-13 Innoplexus Ag Secure document management using blockchain
US11120057B1 (en) * 2017-04-17 2021-09-14 Microstrategy Incorporated Metadata indexing
US11144174B1 (en) * 2013-03-14 2021-10-12 Google Llc Providing trending information to users
US11216833B2 (en) * 2011-06-03 2022-01-04 Nudgit, Inc. Systems and methods for ontology ranking display
US11290402B2 (en) * 2016-09-30 2022-03-29 Dropbox, Inc. Managing message attachments
US11328238B2 (en) * 2019-04-01 2022-05-10 Microsoft Technology Licensing, Llc Preemptively surfacing relevant content within email
US11474973B2 (en) 2020-10-20 2022-10-18 International Business Machines Corporation User-based file search results
US20230197067A1 (en) * 2021-12-20 2023-06-22 Rovi Guides, Inc. Methods and systems for responding to a natural language query
US11789995B2 (en) * 2019-02-22 2023-10-17 Fujifilm Corporation Image processing device, image processing method, program, and recording medium

Families Citing this family (169)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6505123B1 (en) 2000-07-24 2003-01-07 Weatherbank, Inc. Interactive weather advisory system
US10129273B2 (en) * 2001-11-30 2018-11-13 Cisco Technology, Inc. System and methods for computer network security involving user confirmation of network connections
US20060161469A1 (en) 2005-01-14 2006-07-20 Weatherbank, Inc. Interactive advisory system
US8229467B2 (en) 2006-01-19 2012-07-24 Locator IP, L.P. Interactive advisory system
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US8719046B2 (en) 2008-11-25 2014-05-06 General Electric Company Systems and methods for interruption workflow management
US10255566B2 (en) 2011-06-03 2019-04-09 Apple Inc. Generating and processing task items that represent tasks to perform
USD680125S1 (en) * 2010-11-16 2013-04-16 Apple Inc. Display screen or portion thereof with graphical user interface
US20120130741A1 (en) * 2010-11-24 2012-05-24 General Electric Company Integrated patient information viewer interface
US20120131507A1 (en) * 2010-11-24 2012-05-24 General Electric Company Patient information timeline viewer
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US9747296B2 (en) * 2012-11-12 2017-08-29 Samsung Electronics Co., Ltd. Method and apparatus for managing storage space on storage device in an electronic apparatus by using context data and user profile data
EP2954514B1 (en) 2013-02-07 2021-03-31 Apple Inc. Voice trigger for a digital assistant
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US9710447B2 (en) * 2014-03-17 2017-07-18 Yahoo! Inc. Visual recognition using social links
US8862646B1 (en) * 2014-03-25 2014-10-14 PlusAmp, Inc. Data file discovery, visualization, and importing
US20150326620A1 (en) * 2014-05-06 2015-11-12 Dropbox, Inc. Media presentation in a virtual shared space
US20150350028A1 (en) * 2014-05-28 2015-12-03 Devilabs Oy Arrangement for remotely managing computer systems
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US9767101B2 (en) * 2014-06-20 2017-09-19 Google Inc. Media store with a canonical layer for content
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10242047B2 (en) * 2014-11-19 2019-03-26 Facebook, Inc. Systems, methods, and apparatuses for performing search queries
US10320727B1 (en) 2014-12-15 2019-06-11 Amazon Technologies, Inc. Managing document feedback on a sharing service using a messaging client
US10587564B2 (en) * 2015-03-05 2020-03-10 Microsoft Technology Licensing, Llc Tracking electronic mail messages in a separate computing system
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US9298355B1 (en) 2015-03-23 2016-03-29 Dropbox, Inc. Content item templates
US9922201B2 (en) 2015-04-01 2018-03-20 Dropbox, Inc. Nested namespaces for selective content sharing
US10963430B2 (en) 2015-04-01 2021-03-30 Dropbox, Inc. Shared workspaces with selective content item synchronization
US10001913B2 (en) * 2015-04-01 2018-06-19 Dropbox, Inc. Shared workspaces with selective content item synchronization
USD778932S1 (en) * 2015-04-06 2017-02-14 Domo, Inc. Display screen or portion thereof with a graphical user interface for analytics
KR20160122501A (en) * 2015-04-14 2016-10-24 엘지전자 주식회사 Display device and wearable device comprised in synchronizing system and controlling method thereof
USD775172S1 (en) * 2015-05-01 2016-12-27 Sap Se Display screen or portion thereof with graphical user interface
USD781327S1 (en) 2015-05-01 2017-03-14 Sap Se Display screen or portion thereof with transitional graphical user interface
US10547571B2 (en) * 2015-05-06 2020-01-28 Kakao Corp. Message service providing method for message service linked to search service and message server and user terminal to perform the method
US20160342614A1 (en) * 2015-05-19 2016-11-24 Samsung Electronics Co., Ltd. Method for transferring data items in an electronic device
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10831771B2 (en) * 2015-07-06 2020-11-10 Sap Se Interactive exploration of large graphs
US9747030B2 (en) * 2015-07-14 2017-08-29 Verizon Patent And Licensing Inc. Managing media content storage for user devices
US10191891B2 (en) * 2015-08-26 2019-01-29 Microsoft Technology Licensing, Llc Interactive preview teasers in communications
US10878045B1 (en) 2015-09-01 2020-12-29 Honest Work Corporation System, method, and computer program product for determining peers of a user by evaluating persons identified from a calendar of the user
US11062252B1 (en) * 2015-09-01 2021-07-13 Honest Work Corporation Work related feedback system, method, and computer program product
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10771413B1 (en) 2015-09-11 2020-09-08 Wells Fargo Bank, N.A. System and method for customizing electronic messages
US10652195B2 (en) * 2015-09-16 2020-05-12 CrowdReach, LLC Systems, computing devices, and methods for facilitating communication to multiple contacts via multiple, different communication modalities
US9665567B2 (en) * 2015-09-21 2017-05-30 International Business Machines Corporation Suggesting emoji characters based on current contextual emotional state of user
US11372132B2 (en) 2015-09-24 2022-06-28 Locator IP, L.P. Hyper-localized weather/environmental data
US9697269B2 (en) 2015-10-29 2017-07-04 Dropbox, Inc. Content item block replication protocol for multi-premises hosting of digital content items
US10691718B2 (en) 2015-10-29 2020-06-23 Dropbox, Inc. Synchronization protocol for multi-premises hosting of digital content items
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
CN106682024A (en) * 2015-11-09 2017-05-17 百度在线网络技术(北京)有限公司 Method, device and system for presenting query result information
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
US10594643B2 (en) * 2015-11-17 2020-03-17 Facebook, Inc. Techniques to configure the network distribution of media compositions for transmission
US20170147710A1 (en) * 2015-11-20 2017-05-25 Google Inc. Multi-format search results in dialer application
US11386041B1 (en) * 2015-12-08 2022-07-12 Amazon Technologies, Inc. Policy tag management for data migration
US10594730B1 (en) 2015-12-08 2020-03-17 Amazon Technologies, Inc. Policy tag management
US10128909B2 (en) * 2015-12-11 2018-11-13 Oceaneering International, Inc. Subsea contactless connector system and method with extremely high data transfer rate
US10664482B2 (en) 2015-12-14 2020-05-26 Microsoft Technology Licensing, Llc Providing relevance based dynamic hashtag navigation
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10732783B2 (en) * 2015-12-28 2020-08-04 Microsoft Technology Licensing, Llc Identifying image comments from similar images
US10311110B2 (en) * 2015-12-28 2019-06-04 Sap Se Semantics for document-oriented databases
US10515422B2 (en) * 2016-01-12 2019-12-24 Intuit Inc. Network-based synchronization system and method
US9537952B1 (en) 2016-01-29 2017-01-03 Dropbox, Inc. Apparent cloud access for hosted content items
US10404798B2 (en) 2016-05-16 2019-09-03 Carbonite, Inc. Systems and methods for third-party policy-based file distribution in an aggregation of cloud storage services
US10356158B2 (en) 2016-05-16 2019-07-16 Carbonite, Inc. Systems and methods for aggregation of cloud storage
US10264072B2 (en) * 2016-05-16 2019-04-16 Carbonite, Inc. Systems and methods for processing-based file distribution in an aggregation of cloud storage services
US10116629B2 (en) 2016-05-16 2018-10-30 Carbonite, Inc. Systems and methods for obfuscation of data via an aggregation of cloud storage services
US11100107B2 (en) 2016-05-16 2021-08-24 Carbonite, Inc. Systems and methods for secure file management via an aggregation of cloud storage services
US10795947B2 (en) * 2016-05-17 2020-10-06 Google Llc Unified message search
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
US9986080B2 (en) * 2016-06-24 2018-05-29 Sandisk Technologies Llc Mobile device and method for displaying information about files stored in a plurality of storage devices
KR20180006137A (en) * 2016-07-08 2018-01-17 엘지전자 주식회사 Terminal and method for controlling the same
US9881066B1 (en) * 2016-08-31 2018-01-30 Palantir Technologies, Inc. Systems, methods, user interfaces and algorithms for performing database analysis and search of information involving structured and/or semi-structured data
US20180089182A1 (en) * 2016-09-25 2018-03-29 Microsoft Technology Licensing, Llc Hybrid cross-platform search
US20180124155A1 (en) * 2016-11-01 2018-05-03 Microsoft Technology Licensing, Llc Network-based group communication and file sharing system
CN106775711B (en) * 2016-12-14 2020-10-23 浙江翼信科技有限公司 Information processing method, device and computer-readable storage medium for contact persons
US10776755B2 (en) * 2016-12-29 2020-09-15 Dropbox, Inc. Creating projects in a content management system
TWI616828B (en) * 2016-12-30 2018-03-01 全球華人股份有限公司 A method for dynamic resume display
US10402786B2 (en) 2016-12-30 2019-09-03 Dropbox, Inc. Managing projects in a content management system
US10931617B2 (en) 2017-02-10 2021-02-23 Microsoft Technology Licensing, Llc Sharing of bundled content
US10911389B2 (en) 2017-02-10 2021-02-02 Microsoft Technology Licensing, Llc Rich preview of bundled content
US10498684B2 (en) 2017-02-10 2019-12-03 Microsoft Technology Licensing, Llc Automated bundling of content
US10909156B2 (en) 2017-02-10 2021-02-02 Microsoft Technology Licensing, Llc Search and filtering of message content
US11544400B2 (en) * 2017-02-24 2023-01-03 Hyland Uk Operations Limited Permissions-constrained dynamic faceting of search results in a content management system
US11194856B2 (en) * 2017-03-07 2021-12-07 Verizon Media Inc. Computerized system and method for automatically identifying and providing digital content based on physical geographic location data
US11182825B2 (en) 2017-04-21 2021-11-23 International Business Machines Corporation Processing image using narrowed search space based on textual context to detect items in the image
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770428A1 (en) 2017-05-12 2019-02-18 Apple Inc. Low-latency intelligent automated assistant
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US20180349467A1 (en) 2017-06-02 2018-12-06 Apple Inc. Systems and methods for grouping search results into dynamic categories based on query and result set
US20190102484A1 (en) * 2017-10-04 2019-04-04 Gamalon, Inc. Interaction personalization system and method
WO2019074732A1 (en) * 2017-10-12 2019-04-18 Kinsey Stanley Bruce Cloud-based index and centralized cloud-based hub interface for cloud-stored media
US11314692B1 (en) 2017-10-18 2022-04-26 Comake, Inc. Workflow relationship management and contextualization
US11157505B2 (en) 2017-10-18 2021-10-26 Comake, Inc. Dynamic presentation of searchable contextual actions and data
US11409820B1 (en) 2017-10-18 2022-08-09 Comake, Inc. Workflow relationship management and contextualization
US10762060B1 (en) * 2017-10-18 2020-09-01 Comake, Inc. Electronic file management
US10970349B1 (en) 2017-10-18 2021-04-06 Comake, Inc. Workflow relationship management and contextualization
EP3679735A1 (en) * 2017-10-21 2020-07-15 Apple Inc. Personal domain for a virtual assistant system on a communal device
US10536507B2 (en) 2017-12-01 2020-01-14 International Business Machines Corporation Cognitive event based file sharing system for social software
US10866926B2 (en) * 2017-12-08 2020-12-15 Dropbox, Inc. Hybrid search interface
CN108153727B (en) * 2017-12-18 2020-09-08 浙江鹏信信息科技股份有限公司 Method for identifying marketing call by semantic mining algorithm and system for managing marketing call
US11017005B2 (en) * 2018-01-15 2021-05-25 Microsoft Technology Licensing, Llc Filtering communications
US10817556B2 (en) 2018-01-15 2020-10-27 Microsoft Technology Licensing, Llc Filtering communications
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US11030248B2 (en) * 2018-04-18 2021-06-08 Palantir Technologies Inc. Resource dependency system and graphical user interface
US10536522B2 (en) * 2018-04-30 2020-01-14 EMC IP Holding Company LLC Data storage system with LUN archiving to cloud using volume-to-object translation
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
DK179822B1 (en) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11269870B2 (en) * 2018-10-02 2022-03-08 Adobe Inc. Performing automatic segment expansion of user embeddings using multiple user embedding representation types
US11461634B2 (en) 2018-10-02 2022-10-04 Adobe Inc. Generating homogenous user embedding representations from heterogeneous user interaction data using a neural network
US10873782B2 (en) 2018-10-02 2020-12-22 Adobe Inc. Generating user embedding representations that capture a history of changes to user trait data
CN109710576B (en) * 2018-12-29 2024-03-19 努比亚技术有限公司 File display method, terminal and storage medium
US10999077B2 (en) 2019-01-02 2021-05-04 Bank Of America Corporation Data protection using sporadically generated universal tags
US11212106B2 (en) 2019-01-02 2021-12-28 Bank Of America Corporation Data protection using universal tagging
GB201902772D0 (en) * 2019-03-01 2019-04-17 Palantir Technologies Inc Fuzzy searching 7 applications thereof
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US20200349468A1 (en) * 2019-05-03 2020-11-05 Apple Inc. Data management platform for machine learning models
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
DK201970511A1 (en) 2019-05-31 2021-02-15 Apple Inc Voice identification in digital assistant systems
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. User activity shortcut suggestions
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US11120054B2 (en) * 2019-06-05 2021-09-14 International Business Machines Corporation Hierarchical label generation for data entries
US11048383B2 (en) * 2019-08-16 2021-06-29 Dropbox, Inc. Contact cards with dynamic interaction information
US11222020B2 (en) * 2019-08-21 2022-01-11 International Business Machines Corporation Deduplicated data transmission
US11704356B2 (en) * 2019-09-06 2023-07-18 Dropbox, Inc. Restoring integrity of a social media thread from a social network export
US11003645B1 (en) 2019-10-04 2021-05-11 Palantir Technologies Inc. Column lineage for resource dependency system and graphical user interface
TWI730539B (en) * 2019-10-09 2021-06-11 開曼群島商粉迷科技股份有限公司 Method for displaying dynamic digital content, graphical user interface and system thereof
CN111125024B (en) * 2019-11-29 2022-05-24 浪潮电子信息产业股份有限公司 Method, device, equipment and storage medium for deleting distributed system files
US11290531B2 (en) 2019-12-04 2022-03-29 Dropbox, Inc. Immediate cloud content item creation from local file system interface
US11316806B1 (en) * 2020-01-28 2022-04-26 Snap Inc. Bulk message deletion
US11200205B2 (en) 2020-01-31 2021-12-14 EMC IP Holding Company LLC Displaying an alert and options when deleting a file that is associated with a sequence of files
US11199948B2 (en) * 2020-01-31 2021-12-14 EMC IP Holding Company LLC Displaying a sequence and files associated with the sequence having a missing file
KR20210101583A (en) * 2020-02-10 2021-08-19 삼성전자주식회사 Electronic device and method for operating contents using the same
WO2021174329A1 (en) * 2020-03-04 2021-09-10 Yijun Du System and method for utilizing search trees and tagging data items for data collection managing tasks
CN113495769B (en) * 2020-04-07 2023-04-07 西安理邦科学仪器有限公司 Page guidance method, equipment, system and storage medium
CN111638832A (en) * 2020-04-23 2020-09-08 北京达佳互联信息技术有限公司 Information display method, device, system, electronic equipment and storage medium
US11043220B1 (en) 2020-05-11 2021-06-22 Apple Inc. Digital assistant hardware abstraction
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11755276B2 (en) 2020-05-12 2023-09-12 Apple Inc. Reducing description length based on confidence
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
USD956784S1 (en) * 2020-10-28 2022-07-05 Ctk Co. Ltd. Display screen with graphical user interface
US20220166625A1 (en) * 2020-11-24 2022-05-26 Rymedi, Inc. Dynamic data compliance controls at the highest directives and standards applicable with a net-sum formula as a zero-knowledge proof compliance validation key
US20220358445A1 (en) * 2021-05-07 2022-11-10 Providence St. Joseph Health Training assignment tool
US11855944B2 (en) * 2021-10-04 2023-12-26 Yahoo Assets Llc Method and system for serving personalized content to enhance user experience
US20230161789A1 (en) * 2021-11-22 2023-05-25 International Business Machines Corporation Realtime viewer in cloud storage environments
CN114297439B (en) * 2021-12-20 2023-05-23 天翼爱音乐文化科技有限公司 Short video tag determining method, system, device and storage medium
CN114328706B (en) * 2022-03-14 2022-06-14 西安羚控电子科技有限公司 ICD graphical expression system and method

Citations (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5598557A (en) * 1992-09-22 1997-01-28 Caere Corporation Apparatus and method for retrieving and grouping images representing text files based on the relevance of key words extracted from a selected file to the text files
US20060200460A1 (en) * 2005-03-03 2006-09-07 Microsoft Corporation System and method for ranking search results using file types
US20060235933A1 (en) * 2005-04-19 2006-10-19 Shumeet Baluja Method and system for activity based email sorting
US20070016553A1 (en) * 2005-06-29 2007-01-18 Microsoft Corporation Sensing, storing, indexing, and retrieving data leveraging measures of user activity, attention, and interest
US20070088690A1 (en) * 2005-10-13 2007-04-19 Xythos Software, Inc. System and method for performing file searches and ranking results
US20070250585A1 (en) * 2006-02-13 2007-10-25 Eric Ly Method of leveraging social networking with a messaging client
US20080086453A1 (en) * 2006-10-05 2008-04-10 Fabian-Baber, Inc. Method and apparatus for correlating the results of a computer network text search with relevant multimedia files
US20090031244A1 (en) * 2007-07-25 2009-01-29 Xobni Corporation Display of Communication System Usage Statistics
US20090094220A1 (en) * 2007-10-04 2009-04-09 Becker Craig H Associative temporal search of electronic files
US7565347B2 (en) * 2005-08-10 2009-07-21 International Business Machines Corporation Indexing and searching of electronic message transmission thread sets
US20090228233A1 (en) * 2008-03-06 2009-09-10 Anderson Gary F Rank-based evaluation
US20110178962A1 (en) * 2004-06-04 2011-07-21 Messagemind, Inc. System and method for dynamic adaptive user-based prioritization and display of electronic messages
US20120005282A1 (en) * 2010-07-02 2012-01-05 Microsoft Corporation Collaborative ranking and filtering of electronic mail messages
US8122028B2 (en) * 2004-08-04 2012-02-21 International Business Machines Corporation System for remotely searching a local user index
US8161240B2 (en) * 2007-10-10 2012-04-17 Apple Inc. Cache management
US8363806B2 (en) * 2002-11-07 2013-01-29 Blake Bookstaff Method and system for alphanumeric indexing for advertising via cloud computing
US20130055099A1 (en) * 2011-08-22 2013-02-28 Rose Yao Unified Messaging System with Integration of Call Log Data
US8499048B2 (en) * 2010-10-27 2013-07-30 Facebook, Inc. Indexing and organizing messages in a messaging system using social network information
US8539359B2 (en) * 2009-02-11 2013-09-17 Jeffrey A. Rapaport Social network driven indexing system for instantly clustering people with concurrent focus on same topic into on-topic chat rooms and/or for generating on-topic search results tailored to user preferences regarding topic
US8566370B2 (en) * 2010-12-15 2013-10-22 Verizon Patent And Licensing Inc. Ranking media content for cloud-based searches
US8842818B2 (en) * 2006-06-30 2014-09-23 Avaya Inc. IP telephony architecture including information storage and retrieval system to track fluency
US8868677B2 (en) * 2012-04-16 2014-10-21 HGST Netherlands B.V. Automated data migration across a plurality of devices
US20140354680A1 (en) * 2013-05-31 2014-12-04 Blackberry Limited Methods and Devices for Generating Display Data
US8930825B2 (en) * 2010-09-09 2015-01-06 International Business Machines Corporation Graphically indicating relevancy of electronic messages
US20150026187A1 (en) * 2013-07-19 2015-01-22 Tipbit Inc. Inferring relevance based on user interactions with email
US8984074B2 (en) * 2009-07-08 2015-03-17 Yahoo! Inc. Sender-based ranking of person profiles and multi-person automatic suggestions
US9002867B1 (en) * 2010-12-30 2015-04-07 Google Inc. Modifying ranking data based on document changes
US9043413B2 (en) * 2011-11-15 2015-05-26 Yahoo! Inc. System and method for extracting, collecting, enriching and ranking of email objects
US9185067B1 (en) * 1999-12-01 2015-11-10 Facebook, Inc. System and method for analyzing communications
US9218629B2 (en) * 2012-01-20 2015-12-22 Blackberry Limited Prioritizing and providing information about user contacts
US9330183B2 (en) * 2013-05-08 2016-05-03 Facebook, Inc. Approximate privacy indexing for search queries on online social networks
US9454601B2 (en) * 2004-08-04 2016-09-27 International Business Machines Corporation System and method for providing graphical representations of search results in multiple related histograms

Family Cites Families (143)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6101515A (en) 1996-05-31 2000-08-08 Oracle Corporation Learning system for classification of terminology
US5956400A (en) 1996-07-19 1999-09-21 Digicash Incorporated Partitioned information storage systems with controlled retrieval
EP2288165B1 (en) * 1997-06-09 2015-12-16 Hitachi, Ltd. Image decoding method
US20020083439A1 (en) 2000-08-31 2002-06-27 Eldering Charles A. System for rescheduling and inserting advertisements
US6834276B1 (en) * 1999-02-25 2004-12-21 Integrated Data Control, Inc. Database system and method for data acquisition and perusal
US7406214B2 (en) 1999-05-19 2008-07-29 Digimarc Corporation Methods and devices employing optical sensors and/or steganography
US7539742B2 (en) 1999-08-27 2009-05-26 Innovation Fund Iii Llc Network for targeting individual operating a microcomputer regardless of his location
US6976053B1 (en) 1999-10-14 2005-12-13 Arcessa, Inc. Method for using agents to create a computer index corresponding to the contents of networked computers
US7216304B1 (en) 2000-01-05 2007-05-08 Apple Inc. Graphical user interface for computers having variable size icons
US20090216641A1 (en) * 2000-03-30 2009-08-27 Niration Network Group, L.L.C. Methods and Systems for Indexing Content
US6654783B1 (en) * 2000-03-30 2003-11-25 Ethergent Corporation Network site content indexing method and associated system
US7437669B1 (en) * 2000-05-23 2008-10-14 International Business Machines Corporation Method and system for dynamic creation of mixed language hypertext markup language content through machine translation
US6895552B1 (en) 2000-05-31 2005-05-17 Ricoh Co., Ltd. Method and an apparatus for visual summarization of documents
US6674368B2 (en) 2000-08-28 2004-01-06 Continental Divide Robotics, Inc. Automated tracking system
US6889209B1 (en) 2000-11-03 2005-05-03 Shieldip, Inc. Method and apparatus for protecting information and privacy
US20020184317A1 (en) 2001-05-29 2002-12-05 Sun Microsystems, Inc. System and method for searching, retrieving and displaying data from an email storage location
WO2003042869A1 (en) 2001-11-14 2003-05-22 Jam Corporation Information search support apparatus, computer program, medium containing the program
US20030171926A1 (en) * 2002-03-07 2003-09-11 Narasimha Suresh System for information storage, retrieval and voice based content search and methods thereof
US7016919B2 (en) * 2002-03-29 2006-03-21 Agilent Technologies, Inc. Enterprise framework and applications supporting meta-data and data traceability requirements
DE10240117A1 (en) 2002-08-30 2004-03-18 Ubs Ag Server component for e.g. public Internet has report generation processor that obtains electronic dossiers from databases to process standardized risk related data included in electronic dossiers to generate electronic risk report
US7496559B2 (en) 2002-09-03 2009-02-24 X1 Technologies, Inc. Apparatus and methods for locating data
US20050096124A1 (en) * 2003-01-21 2005-05-05 Asip Holdings, Inc. Parimutuel wagering system with opaque transactions
US20040225658A1 (en) 2003-02-13 2004-11-11 Felix Horber Network-based document management systems
US20050028912A1 (en) * 2003-08-07 2005-02-10 Schnarr Catherine Mary Apparatus for covering a selected rear portion of a vehicle body
US8024335B2 (en) * 2004-05-03 2011-09-20 Microsoft Corporation System and method for dynamically generating a selectable search extension
US7836021B2 (en) 2004-01-15 2010-11-16 Xerox Corporation Method and system for managing image files in a hierarchical storage management system
WO2005083611A1 (en) 2004-02-24 2005-09-09 Boston Scientific Limited Dynamic safety monitoring in clinical trial
US7779387B2 (en) 2004-04-15 2010-08-17 Microsoft Corporation Offline source code control
US8150837B2 (en) * 2004-06-25 2012-04-03 Apple Inc. Methods and systems for managing data
US20050289127A1 (en) * 2004-06-25 2005-12-29 Dominic Giampaolo Methods and systems for managing data
WO2006034135A2 (en) 2004-09-17 2006-03-30 Proximex Adaptive multi-modal integrated biometric identification detection and surveillance system
US7788592B2 (en) 2005-01-12 2010-08-31 Microsoft Corporation Architecture and engine for time line based visualization of data
US7809342B2 (en) * 2005-02-08 2010-10-05 E-Radio Usa, Inc. Systems and methods for providing product information over a carrier wave
JP4659681B2 (en) 2005-06-13 2011-03-30 パナソニック株式会社 Content tagging support apparatus and content tagging support method
WO2007011841A2 (en) 2005-07-15 2007-01-25 Indxit Systems, Inc. Systems and methods for data indexing and processing
US20070136340A1 (en) 2005-12-12 2007-06-14 Mark Radulovich Document and file indexing system
DE112006003518T5 (en) * 2005-12-21 2009-01-29 Decernis, Llc System for the validation of at least part of a document
NO325191B1 (en) * 2005-12-30 2008-02-18 Tandberg Telecom As Sociable multimedia stream
US20070203891A1 (en) 2006-02-28 2007-08-30 Microsoft Corporation Providing and using search index enabling searching based on a targeted content of documents
US8116573B2 (en) * 2006-03-01 2012-02-14 Fujifilm Corporation Category weight setting apparatus and method, image weight setting apparatus and method, category abnormality setting apparatus and method, and programs therefor
WO2007106851A2 (en) 2006-03-14 2007-09-20 Document Atm Incorporated Distributed access to valuable and sensitive documents and data
KR101359324B1 (en) 2006-03-27 2014-02-24 텔레콤 이탈리아 소시에떼 퍼 아찌오니 System for enforcing security policies on mobile communications devices
US20070240050A1 (en) 2006-04-10 2007-10-11 Graphwise, Llc System and method for presenting to a user a preferred graphical representation of tabular data
US20080001605A1 (en) * 2006-06-19 2008-01-03 Loong-Chiang Hu Voltage detecting regulator with O2 sensor
US20080016052A1 (en) 2006-07-14 2008-01-17 Bea Systems, Inc. Using Connections Between Users and Documents to Rank Documents in an Enterprise Search System
US9141627B2 (en) 2006-09-26 2015-09-22 Sony Corporation Providing a user access to data files distributed in a plurality of different types of user devices
US8332333B2 (en) 2006-10-19 2012-12-11 Massachusetts Institute Of Technology Learning algorithm for ranking on graph data
US20080104024A1 (en) 2006-10-25 2008-05-01 Amit Kumar Highlighting results in the results page based on levels of trust
US20080172380A1 (en) 2007-01-17 2008-07-17 Wojciech Czyz Information retrieval based on information location in the information space.
US7555412B2 (en) 2007-02-09 2009-06-30 Microsoft Corporation Communication efficient spatial search in a sensor data web portal
US20080228719A1 (en) 2007-03-13 2008-09-18 Fatdoor, Inc. People and business search result optimization
US8359300B1 (en) 2007-04-03 2013-01-22 Google Inc. System and method for displaying both localized search results and internet search results
EP2137645A1 (en) 2007-04-13 2009-12-30 Thomson Licensing System and method for mapping logical and physical assets in a user interface
US7908556B2 (en) * 2007-06-14 2011-03-15 Yahoo! Inc. Method and system for media landmark identification
US7865291B2 (en) * 2007-07-12 2011-01-04 Delphi Technologies, Inc. System and method for a volumetric efficiency model for all air induction configurations
US8887048B2 (en) 2007-08-23 2014-11-11 Sony Computer Entertainment Inc. Media data presented with time-based metadata
JP5226283B2 (en) * 2007-11-15 2013-07-03 キヤノン株式会社 Information processing apparatus, information processing system, method, and program
US8117198B2 (en) * 2007-12-12 2012-02-14 Decho Corporation Methods for generating search engine index enhanced with task-related metadata
US8140746B2 (en) 2007-12-14 2012-03-20 Spansion Llc Intelligent memory data management
US8689257B2 (en) 2007-12-31 2014-04-01 At&T Intellectual Property I, Lp Method and system for content recording and indexing
US10275524B2 (en) 2008-01-23 2019-04-30 Sears Holdings Management Corporation Social network searching with breadcrumbs
US20090216806A1 (en) * 2008-02-24 2009-08-27 Allofme Ltd. Digital assets internet timeline aggregation and sharing platform
US20090217352A1 (en) 2008-02-25 2009-08-27 Tong Shen Web managed multimedia asset management method and system
US8607136B2 (en) 2008-02-28 2013-12-10 Red Hat, Inc. Maintaining tags for individual communities
US8468447B2 (en) 2008-02-28 2013-06-18 Red Hat, Inc. Tracking tag content by keywords and communities
CN101965576B (en) 2008-03-03 2013-03-06 视频监控公司 Object matching for tracking, indexing, and search
US8204916B2 (en) 2008-03-06 2012-06-19 Microsoft Corporation Hierarchical presentation of search results
US20140040862A1 (en) 2008-04-03 2014-02-06 Adobe Systems Incorporated Copying Reusable Components from a Remote Source
KR20110028396A (en) * 2008-07-11 2011-03-17 어플라이드 머티어리얼스, 인코포레이티드 Methods and apparatus for abating electronic device manufacturing process effluent
JP5181896B2 (en) 2008-07-25 2013-04-10 ブラザー工業株式会社 Display information management system and program
US20100211663A1 (en) 2008-07-28 2010-08-19 Viewfinity Inc. Management of pool member configuration
US20100088382A1 (en) * 2008-08-27 2010-04-08 Lee G Roger Document manager integration
EP2377011A4 (en) 2008-12-12 2017-12-13 Atigeo Corporation Providing recommendations using information determined for domains of interest
US8112365B2 (en) 2008-12-19 2012-02-07 Foster Scott C System and method for online employment recruiting and evaluation
GB0823701D0 (en) * 2008-12-31 2009-02-04 Symbian Software Ltd Fast data entry
US20100185986A1 (en) 2009-01-16 2010-07-22 Dell Products L.P. System and Method for Displaying Data File Properties in an Information Handling System
JP2012520528A (en) * 2009-03-13 2012-09-06 インベンション マシーン コーポレーション System and method for automatic semantic labeling of natural language text
JP5552767B2 (en) 2009-07-27 2014-07-16 ソニー株式会社 Display processing apparatus, display processing method, and display processing program
US8645327B2 (en) * 2009-09-30 2014-02-04 Apple Inc. Management of access to data distributed across multiple computing devices
IT1396340B1 (en) 2009-10-20 2012-11-16 Tiziano Tresanti SYSTEM AND METHOD FOR MANAGEMENT AND SHARING WITHIN A INFORMATION NETWORK OF INFORMATION AND CONTACTS RELATED TO USERS
CN102713905A (en) 2010-01-08 2012-10-03 瑞典爱立信有限公司 A method and apparatus for social tagging of media files
US20110179108A1 (en) 2010-01-21 2011-07-21 International Business Machines Corporation System for Aggregating Information and Delivering User Specific Content
FR2955719B1 (en) * 2010-01-28 2012-02-24 Hispano Suiza Sa METHOD AND DEVICE FOR CONTROLLING POLYPHASE ELECTRIC MACHINE
US8856349B2 (en) 2010-02-05 2014-10-07 Sling Media Inc. Connection priority services for data communication between two devices
US20110225250A1 (en) 2010-03-11 2011-09-15 Gregory Brian Cypes Systems and methods for filtering electronic communications
US8756233B2 (en) 2010-04-16 2014-06-17 Video Semantics Semantic segmentation and tagging engine
CA2795549A1 (en) 2010-04-29 2011-11-03 Theradiag Sa Methods for detecting antibodies
US20110289121A1 (en) 2010-05-18 2011-11-24 Rovi Technologies Corporation Metadata modifier and manager
US9262517B2 (en) 2010-08-18 2016-02-16 At&T Intellectual Property I, L.P. Systems and methods for social media data mining
US9552442B2 (en) 2010-10-21 2017-01-24 International Business Machines Corporation Visual meme tracking for social media analysis
US9251503B2 (en) 2010-11-01 2016-02-02 Microsoft Technology Licensing, Llc Video viewing and tagging system
JP2012098573A (en) 2010-11-04 2012-05-24 Sony Corp Terminal device, content display method of terminal device, server device, display data transmission method of server device, and ranking information transmission method of server device
US20120158686A1 (en) * 2010-12-17 2012-06-21 Microsoft Corporation Image Tag Refinement
US8738611B1 (en) 2011-01-25 2014-05-27 Intuit Inc. Prioritizing email based on financial management data
US20120203733A1 (en) 2011-02-09 2012-08-09 Zhang Amy H Method and system for personal cloud engine
FR2971596B1 (en) 2011-02-15 2016-01-01 Commissariat Energie Atomique DEVICE FOR ACCELERATING THE EXECUTION OF A SYSTEMS SIMULATION
US8600970B2 (en) 2011-02-22 2013-12-03 Apple Inc. Server-side search of email attachments
ES2805755T3 (en) 2011-03-10 2021-02-15 Amadeus Sas System and method for session synchronization with independent external systems
US9177060B1 (en) 2011-03-18 2015-11-03 Michele Bennett Method, system and apparatus for identifying and parsing social media information for providing business intelligence
US8433687B1 (en) 2011-04-07 2013-04-30 Google Inc. Off-line indexing for client-based software development tools
US8666927B2 (en) * 2011-04-19 2014-03-04 Yahoo! Inc. System and method for mining tags using social endorsement networks
US9285991B2 (en) 2011-04-29 2016-03-15 International Business Machines Corporation System, method and program product to schedule transfer of data
US8663018B2 (en) 2011-06-29 2014-03-04 Amazon Technologies, Inc. Data locker synchronization
US8819425B2 (en) 2011-06-30 2014-08-26 True[X] Media Inc. Privacy protected interactions with third parties
US8566666B2 (en) * 2011-07-11 2013-10-22 Lsi Corporation Min-sum based non-binary LDPC decoder
US9027083B2 (en) 2011-08-05 2015-05-05 Bank Of America Corporation Management of access identifiers
US9195679B1 (en) * 2011-08-11 2015-11-24 Ikorongo Technology, LLC Method and system for the contextual display of image tags in a social network
KR101695011B1 (en) 2011-08-24 2017-01-10 한국전자통신연구원 System for Detecting and Tracking Topic based on Topic Opinion and Social-influencer and Method thereof
JP6021017B2 (en) 2011-08-26 2016-11-02 パナソニックIpマネジメント株式会社 Content distribution system, content management server, content using device, and control method
US8458174B1 (en) * 2011-09-02 2013-06-04 Google Inc. Semantic image label synthesis
US8634807B2 (en) 2011-10-17 2014-01-21 Blackberry Limited System and method for managing electronic groups
JP5716635B2 (en) 2011-10-31 2015-05-13 富士通株式会社 Electronic data management method, program, and electronic data management apparatus
US20130110816A1 (en) 2011-11-02 2013-05-02 Microsoft Corporation Default Query Rules
US9179171B2 (en) 2011-11-30 2015-11-03 Verizon Patent And Licensing Inc. Content recommendation for a unified catalog
US9020950B2 (en) * 2011-12-19 2015-04-28 Palo Alto Research Center Incorporated System and method for generating, updating, and using meaningful tags
EP2798517A4 (en) * 2011-12-27 2015-08-12 Tata Consultancy Services Ltd A method and system for creating an intelligent social network between plurality of devices
US9652536B1 (en) 2012-01-11 2017-05-16 A9.Com, Inc. Data upload via electronic communications
KR20130086005A (en) * 2012-01-20 2013-07-30 삼성전자주식회사 Method and appartus searching data in multiple device
KR20140110046A (en) * 2012-01-23 2014-09-16 다이킨 고교 가부시키가이샤 Oil seal for automobile
US9100245B1 (en) * 2012-02-08 2015-08-04 Amazon Technologies, Inc. Identifying protected media files
US9547872B2 (en) 2012-02-22 2017-01-17 Ebay Inc. Systems and methods for providing search results along a corridor
US8620905B2 (en) 2012-03-22 2013-12-31 Corbis Corporation Proximity-based method for determining concept relevance within a domain ontology
JP5386663B1 (en) * 2012-05-30 2014-01-15 楽天株式会社 Information processing apparatus, information processing method, information processing program, and recording medium
US8768693B2 (en) * 2012-05-31 2014-07-01 Yahoo! Inc. Automatic tag extraction from audio annotated photos
US20130346068A1 (en) * 2012-06-25 2013-12-26 Apple Inc. Voice-Based Image Tagging and Searching
US9292552B2 (en) * 2012-07-26 2016-03-22 Telefonaktiebolaget L M Ericsson (Publ) Apparatus, methods, and computer program products for adaptive multimedia content indexing
US9377933B2 (en) 2012-09-24 2016-06-28 Facebook, Inc. Displaying social networking system entity information via a timeline interface
US9071562B2 (en) 2012-12-06 2015-06-30 International Business Machines Corporation Searchable peer-to-peer system through instant messaging based topic indexes
US20140222802A1 (en) 2013-02-05 2014-08-07 Facebook, Inc. Selecting social context for sponsored stories in a social networking system
US9465521B1 (en) 2013-03-13 2016-10-11 MiMedia, Inc. Event based media interface
US9405771B2 (en) * 2013-03-14 2016-08-02 Microsoft Technology Licensing, Llc Associating metadata with images in a personal image collection
US9268929B2 (en) 2013-03-15 2016-02-23 Intelmate Llc Dossier packaging
US9367568B2 (en) * 2013-05-15 2016-06-14 Facebook, Inc. Aggregating tags in images
US20140365351A1 (en) 2013-06-07 2014-12-11 Td Ameritrade Ip Company, Inc. Common order queue for multiple trading platforms
US10402407B2 (en) 2013-06-17 2019-09-03 Lenovo (Singapore) Pte. Ltd. Contextual smart tags for content retrieval
US20140379631A1 (en) 2013-06-25 2014-12-25 Linkedln Corporation Transactional key-value database with searchable indexes
US9195736B2 (en) 2013-08-07 2015-11-24 Red Hat, Inc. System and method for content storage
US20150066941A1 (en) 2013-08-30 2015-03-05 U-Me Holdings LLC Photo cataloging, storage and retrieval using relationships between people
CN105493070B (en) 2013-09-27 2018-04-24 迈克菲股份有限公司 The task context framework shared for efficient data
US9424301B2 (en) 2013-11-22 2016-08-23 Netapp, Inc. System and method for negotiated takeover of storage objects
US9344876B2 (en) 2013-12-24 2016-05-17 Facebook, Inc. Systems and methods for predictive download
US9778817B2 (en) 2013-12-31 2017-10-03 Findo, Inc. Tagging of images based on social network tags or comments
US10025874B2 (en) 2014-04-21 2018-07-17 Tumblr, Inc. User specific visual identity control across multiple platforms

Patent Citations (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5598557A (en) * 1992-09-22 1997-01-28 Caere Corporation Apparatus and method for retrieving and grouping images representing text files based on the relevance of key words extracted from a selected file to the text files
US9185067B1 (en) * 1999-12-01 2015-11-10 Facebook, Inc. System and method for analyzing communications
US8363806B2 (en) * 2002-11-07 2013-01-29 Blake Bookstaff Method and system for alphanumeric indexing for advertising via cloud computing
US20110178962A1 (en) * 2004-06-04 2011-07-21 Messagemind, Inc. System and method for dynamic adaptive user-based prioritization and display of electronic messages
US9454601B2 (en) * 2004-08-04 2016-09-27 International Business Machines Corporation System and method for providing graphical representations of search results in multiple related histograms
US8122028B2 (en) * 2004-08-04 2012-02-21 International Business Machines Corporation System for remotely searching a local user index
US20060200460A1 (en) * 2005-03-03 2006-09-07 Microsoft Corporation System and method for ranking search results using file types
US20060235933A1 (en) * 2005-04-19 2006-10-19 Shumeet Baluja Method and system for activity based email sorting
US20070016553A1 (en) * 2005-06-29 2007-01-18 Microsoft Corporation Sensing, storing, indexing, and retrieving data leveraging measures of user activity, attention, and interest
US7565347B2 (en) * 2005-08-10 2009-07-21 International Business Machines Corporation Indexing and searching of electronic message transmission thread sets
US20070088690A1 (en) * 2005-10-13 2007-04-19 Xythos Software, Inc. System and method for performing file searches and ranking results
US20070250585A1 (en) * 2006-02-13 2007-10-25 Eric Ly Method of leveraging social networking with a messaging client
US8842818B2 (en) * 2006-06-30 2014-09-23 Avaya Inc. IP telephony architecture including information storage and retrieval system to track fluency
US20080086453A1 (en) * 2006-10-05 2008-04-10 Fabian-Baber, Inc. Method and apparatus for correlating the results of a computer network text search with relevant multimedia files
US20090031244A1 (en) * 2007-07-25 2009-01-29 Xobni Corporation Display of Communication System Usage Statistics
US9596308B2 (en) * 2007-07-25 2017-03-14 Yahoo! Inc. Display of person based information including person notes
US20090094220A1 (en) * 2007-10-04 2009-04-09 Becker Craig H Associative temporal search of electronic files
US8161240B2 (en) * 2007-10-10 2012-04-17 Apple Inc. Cache management
US20090228233A1 (en) * 2008-03-06 2009-09-10 Anderson Gary F Rank-based evaluation
US8539359B2 (en) * 2009-02-11 2013-09-17 Jeffrey A. Rapaport Social network driven indexing system for instantly clustering people with concurrent focus on same topic into on-topic chat rooms and/or for generating on-topic search results tailored to user preferences regarding topic
US8984074B2 (en) * 2009-07-08 2015-03-17 Yahoo! Inc. Sender-based ranking of person profiles and multi-person automatic suggestions
US20120005282A1 (en) * 2010-07-02 2012-01-05 Microsoft Corporation Collaborative ranking and filtering of electronic mail messages
US8930825B2 (en) * 2010-09-09 2015-01-06 International Business Machines Corporation Graphically indicating relevancy of electronic messages
US8499048B2 (en) * 2010-10-27 2013-07-30 Facebook, Inc. Indexing and organizing messages in a messaging system using social network information
US8566370B2 (en) * 2010-12-15 2013-10-22 Verizon Patent And Licensing Inc. Ranking media content for cloud-based searches
US9002867B1 (en) * 2010-12-30 2015-04-07 Google Inc. Modifying ranking data based on document changes
US20130055099A1 (en) * 2011-08-22 2013-02-28 Rose Yao Unified Messaging System with Integration of Call Log Data
US9043413B2 (en) * 2011-11-15 2015-05-26 Yahoo! Inc. System and method for extracting, collecting, enriching and ranking of email objects
US9218629B2 (en) * 2012-01-20 2015-12-22 Blackberry Limited Prioritizing and providing information about user contacts
US8868677B2 (en) * 2012-04-16 2014-10-21 HGST Netherlands B.V. Automated data migration across a plurality of devices
US9330183B2 (en) * 2013-05-08 2016-05-03 Facebook, Inc. Approximate privacy indexing for search queries on online social networks
US20140354680A1 (en) * 2013-05-31 2014-12-04 Blackberry Limited Methods and Devices for Generating Display Data
US20150026187A1 (en) * 2013-07-19 2015-01-22 Tipbit Inc. Inferring relevance based on user interactions with email

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11216833B2 (en) * 2011-06-03 2022-01-04 Nudgit, Inc. Systems and methods for ontology ranking display
US11543942B1 (en) 2013-03-14 2023-01-03 Google Llc Providing trending information to users
US11144174B1 (en) * 2013-03-14 2021-10-12 Google Llc Providing trending information to users
US20160065511A1 (en) * 2013-10-02 2016-03-03 Yandex Europe Ag Displaying email attachments on a webmail page
US10757057B2 (en) 2013-10-15 2020-08-25 Microsoft Technology Licensing, Llc Managing conversations
US10209859B2 (en) 2013-12-31 2019-02-19 Findo, Inc. Method and system for cross-platform searching of multiple information sources and devices
US9778817B2 (en) 2013-12-31 2017-10-03 Findo, Inc. Tagging of images based on social network tags or comments
US9563912B2 (en) * 2014-08-15 2017-02-07 Microsoft Technology Licensing, Llc Auto recognition of acquirable entities
US20160048899A1 (en) * 2014-08-15 2016-02-18 Microsoft Corporation Auto Recognition of Acquirable Entities
US10360590B2 (en) 2014-08-15 2019-07-23 Microsoft Technology Licensing, Llc Auto recognition of acquirable entities
US20160259856A1 (en) * 2015-03-03 2016-09-08 International Business Machines Corporation Consolidating and formatting search results
US11429563B2 (en) * 2016-04-21 2022-08-30 Microsoft Technology Licensing, Llc Prioritizing thumbnail previews based on message content
CN109074388A (en) * 2016-04-21 2018-12-21 微软技术许可有限责任公司 The priority of thumbnail preview is divided based on message content
US11003627B2 (en) * 2016-04-21 2021-05-11 Microsoft Technology Licensing, Llc Prioritizing thumbnail previews based on message content
US20210224229A1 (en) * 2016-04-21 2021-07-22 Microsoft Technology Licensing, Llc Prioritizing thumbnail previews based on message content
US20170308545A1 (en) * 2016-04-21 2017-10-26 Microsoft Technology Licensing, Llc Prioritizing thumbnail previews based on message content
US10445329B2 (en) 2016-05-13 2019-10-15 Equals 3 LLC Searching structured and unstructured data sets
US10482092B2 (en) * 2016-05-13 2019-11-19 Equals 3 LLC Searching multiple data sets
US20170329827A1 (en) * 2016-05-13 2017-11-16 Equals 3 LLC Searching multiple data sets
US10198403B2 (en) * 2016-05-27 2019-02-05 Facebook, Inc. Distributing content via content publishing platforms
US10606923B1 (en) * 2016-05-27 2020-03-31 Facebook, Inc. Distributing content via content publishing platforms
US20170344515A1 (en) * 2016-05-27 2017-11-30 Facebook, Inc. Distributing content via content publishing platforms
US11290402B2 (en) * 2016-09-30 2022-03-29 Dropbox, Inc. Managing message attachments
US11799810B2 (en) 2016-09-30 2023-10-24 Dropbox, Inc. Managing message attachments
US11120057B1 (en) * 2017-04-17 2021-09-14 Microstrategy Incorporated Metadata indexing
CN108446339A (en) * 2018-02-28 2018-08-24 维沃移动通信有限公司 A kind of sorting technique and mobile terminal of application icon
US11062035B2 (en) * 2018-04-30 2021-07-13 Innoplexus Ag Secure document management using blockchain
US20200073951A1 (en) * 2018-08-30 2020-03-05 Sap Se Smart search and help system
US11789995B2 (en) * 2019-02-22 2023-10-17 Fujifilm Corporation Image processing device, image processing method, program, and recording medium
US11328238B2 (en) * 2019-04-01 2022-05-10 Microsoft Technology Licensing, Llc Preemptively surfacing relevant content within email
US11474973B2 (en) 2020-10-20 2022-10-18 International Business Machines Corporation User-based file search results
US20230197067A1 (en) * 2021-12-20 2023-06-22 Rovi Guides, Inc. Methods and systems for responding to a natural language query

Also Published As

Publication number Publication date
US20150186366A1 (en) 2015-07-02
US20150186538A1 (en) 2015-07-02
US20150186398A1 (en) 2015-07-02
US20150186420A1 (en) 2015-07-02
US9778817B2 (en) 2017-10-03
US20150186395A1 (en) 2015-07-02
US9304657B2 (en) 2016-04-05
US10209859B2 (en) 2019-02-19
US20150186478A1 (en) 2015-07-02
US20150187353A1 (en) 2015-07-02
US20150186369A1 (en) 2015-07-02

Similar Documents

Publication Publication Date Title
US10209859B2 (en) Method and system for cross-platform searching of multiple information sources and devices
US11102156B2 (en) Presentation of organized personal and public data using communication mediums
US10331757B2 (en) Organizing network-stored content items into shared groups
JP6928644B2 (en) Creating a project in a content management system
JP6854041B2 (en) Project management in a content management system
Hangal et al. Muse: Reviving memories using email archives
JP6360456B2 (en) Apparatus, system, and method for context management
US8612470B1 (en) Application recommendation using stored files
US20100211535A1 (en) Methods and systems for management of data
EP3433730A1 (en) User interfaces for personalized content recommendation
US20170091208A1 (en) Systems and methods for managing, sharing, and organizing information stored on multiple cloud services
US20140208220A1 (en) System and Method for Contextual and Collaborative Knowledge Generation and Management Through an Integrated Online-Offline Workspace
US20120144315A1 (en) Ad-hoc electronic file attribute definition
US8880595B2 (en) Asynchronous, passive knowledge sharing system and method
US20160188581A1 (en) Contextual searches for documents
US8671123B2 (en) Contextual icon-oriented search tool
US20170097959A1 (en) Method and system for searching in a person-centric space
Pash et al. Lifehacker: The guide to working smarter, faster, and better
WO2012176213A1 (en) System and method for contextual and collaborative knowledge generation and management through an integrated online-offline workspace
Merrill Ideas and considerations for digital photograph sharing
Ivakhnov May the Personal Information Manager be With You: A Ubiquitous Distributed PIM System
Sarna Evernote for dummies
GB2508694A (en) A system for enabling collaborative work on media content among collaborators through a cloud-based environment

Legal Events

Date Code Title Description
AS Assignment

Owner name: ABBYY DEVELOPMENT LLC, RUSSIAN FEDERATION

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:YAN, DAVID;ANISIMOVICH, KONSTANTIN;SIGNING DATES FROM 20150114 TO 20150305;REEL/FRAME:035116/0488

AS Assignment

Owner name: ABBYY PLC, CYPRUS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ABBYY DEVELOPMENT LLC;REEL/FRAME:038948/0165

Effective date: 20160614

AS Assignment

Owner name: FINDO, INC., DELAWARE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ABBYY PLC;REEL/FRAME:038962/0397

Effective date: 20160615

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: YVA.AI, INC., CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:FINDO INC.;REEL/FRAME:049086/0568

Effective date: 20181002

AS Assignment

Owner name: VISIER SOLUTIONS INC., CANADA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:YVA.AI, INC.;REEL/FRAME:059777/0733

Effective date: 20220426