Tools and techniques for extracting knowledge from unstructured data retrieved from personal data sources

Information

  • Patent Grant
  • 9443007
  • Patent Number
    9,443,007
  • Date Filed
    Wednesday, November 2, 2011
    13 years ago
  • Date Issued
    Tuesday, September 13, 2016
    8 years ago
Abstract
A system may include multiple personal data sources and a machine-implemented data extractor and correlator configured to retrieve personal data from at least one of the personal data sources. The data extractor and correlator may extract information from unstructured data within the retrieved personal data and correlate the extracted information with previously stored structured data to generate additional structured data. The system may also include a storage device configured to store the previously stored structured data and the additional structured data. A natural language query module may be configured to receive a natural language query from a user and provide a response to the natural language query based at least in part on one or both of the previously stored structured data and the additional structured data.
Description
BACKGROUND

The modern abundance of personal data from sources such as email, contacts, and documents cannot be overstated. Indeed, there exists a significant lack of and ever-growing need for even greater abilities to process such data in meaningful ways so as to provide a user with opportunities to do more than mere keyword searches or similar actions. Current systems offer limited use of information within personal and public data and generally provide a user with little more than typical search engine functionality.


There remains a need for a way to address these and other problems associated with the prior art. More particularly, there remains a need for greater leveraging of personal data for a user, particularly with regard to unstructured data.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a block diagram illustrating an example of a networked system in which embodiments of the disclosed technology may be implemented.



FIG. 2 is a block diagram illustrating an example of a system implementing an adaptive ontology controller in accordance with certain embodiments of the disclosed technology.



FIG. 3 is a block diagram illustrating an example of a system implementing a data extractor and correlator in accordance with certain embodiments of the disclosed technology.



FIG. 4 is a block diagram illustrating an example of a system implementing a user profile module in accordance with certain embodiments of the disclosed technology.



FIG. 5 is a block diagram illustrating an example of a system implementing a feedback module in accordance with certain embodiments of the disclosed technology.



FIG. 6 is a flowchart illustrating an example of a machine-implemented method in accordance with certain embodiments of the disclosed technology.



FIG. 7 is a flowchart illustrating an example of another machine-implemented method in accordance with certain embodiments of the disclosed technology.



FIG. 8 is a block diagram illustrating an example of a system involving structured data and unstructured data retrieved from multiple data sources in accordance with certain embodiments of the disclosed technology.



FIG. 9 illustrates an example that shows possible relationships between the word “Apple” and various types of entities that may be defined.





DETAILED DESCRIPTION

The disclosed technology relates generally to data processing, query processing, and more particularly but not exclusively to systems and methods for processing document and text data. For example, knowledge may be harvested from unstructured data and subsequently relied on or used to provide a user with meaningful information that ties together multiple pieces of data from any of a number of personal data sources and, in some embodiments, public data sources.



FIG. 1 is a block diagram illustrating an example of a networked system 100 in which embodiments of the disclosed technology may be implemented. In the example, the system 100 includes a network 102 such as the Internet, an intranet, a home network, or any combination thereof. Traditional computing devices such as a desktop computer 104 and laptop computer 106 may connect to the network 102 to communicate with each other or with other devices connected to the network.


The networked system 100 also includes three mobile electronic devices 108-112. Two of the mobile electronic devices, 108 and 110, are mobile communications devices such as cellular telephones or smart phones. The third mobile electronic device, 112, is a handheld device such as a personal data assistant (PDA) or tablet device.


The networked system 100 also includes a storage device 114, which may be a central database or repository, a local data store, or a remote storage device, for example. The storage device 114 may be accessible to any or all of the other devices 104-112, subject to limitations or restrictions by the devices 104-112, a third party, or the storage device 114 itself. The storage device 114 may be used to store some or all of the personal data that is accessed and/or used by any of the computers 104 and 106 or mobile electronic devices 108-112. In situations involving public data, the storage device 114 may also store any or all of the public data accessed and/or used by any of the computers 104 and 106 or mobile electronic devices 108-112.



FIG. 2 illustrates an example of a system 200 implementing an adaptive ontology controller (AOC) in accordance with certain embodiments of the disclosed technology. A knowledge worker may interact with the system by way of a user interface 202 such as the desktop computer 104 of FIG. 1. A query processor 204 may receive input from the user, such as queries or requests, via the user interface 202 and provide the user input to a knowledge extractor and learning engine (KELE) 206.


The AOC 208 is part of the KELE 206, which includes various other subsystems such as an intent identification module 210, a learning module 212, a concept expansion module 214, a deep analysis and reasoning module 216, and various user data sources 218 that provide personal data and information. The AOC 208 is configured to interact with a knowledge store 220, such as the storage device 114 of FIG. 1.



FIG. 3 is a block diagram illustrating an example of a system 300 implementing a machine-implemented data extractor and correlator 302 in accordance with certain embodiments of the disclosed technology. In the example, the data extractor and correlator 302 is configured to retrieve personal data from any of a number of personal data sources 304A-n. The personal data sources 304A-n may include, but is not limited to, an email message, a calendar item, a customer relationship management (CRM) application object, an address book entry, a tweet, a blog entry, a file, a folder, a presentation, and a document.


The system 300 also includes a knowledge store 306 configured to store knowledge, generally in the form of structured data. As used herein, the term structured data generally refers to data or information that is identifiable because it is organized in a structure. Structured data is typically searchable by data type within content, readily understood by computing devices, and efficiently organized for human readers. Structured data as described herein can generally be used to identify a person, place, or item involved with a particular field or industry, e.g., sales. Such structured data typically includes, but is not limited to, fields in a CRM application, such as contact information, account name, contact name, invoice number, and phone number.


Structured data is usually organized in such a way that it is readily and often easily searchable, presentable, or useable by an application or user. In contrast, the term unstructured data as used herein generally refers to data that has no identifiable structure. Unstructured data may include content that is similar or even identical to corresponding structured data but is not organized in such a way that it is readily or easily searchable, presentable, or useable by an application or user. Whereas data corresponding to a “sender” field in an email message is usually structured data, for example, the typical freeform text of the email body is generally unstructured data.


The data extractor and correlator 302 is configured to retrieve personal data from at least one of the personal data sources 304A-n. For example, the data extractor and correlator 302 may be configured to retrieve all incoming email messages subject to a filter, e.g., all email messages from a certain sender or originator. Alternatively or in addition thereto, the data extractor and correlator 302 may retrieve all documents created by or edited by the user. A functional or actual filter may be used to specify that only certain documents, e.g., documents pertaining to sales involving the user, are to be retrieved by the data extractor and correlator 302.


The data extractor and correlator 302 is further configured to extract information from unstructured data within the retrieved personal data. For example, an email message retrieved from the data extractor and correlator 302 may contain unstructured data such as freeform text in the subject or body of the message. In such a situation, the data extractor and correlator 302 may extract certain words, terms, or phrases, such as contact information or sales-related information, from the unstructured data within the message.


The data extractor and correlator 302 is further configured to correlate the extracted information with previously stored structured data, e.g., stored in the knowledge store 306, to generate additional structured data. For example, consider a situation in which the data extractor and correlator 302 extracts additional information, e.g., a secondary phone number extracted from the body of an email message, that pertains to a sales contact having information, e.g., a name and a primary phone number, that is already stored in the knowledge store 306. The extracted information (secondary phone number) will be correlated with the previously stored structured data (existing name and primary phone number) to generate additional structured data (secondary phone number added to or associated with the existing contact).


The knowledge store 306 is configured to store additional structured data as well as previously stored structured data. The data extractor and correlator 302 thus provides output in the form of enriched knowledge that may be stored within the storage device 306 and used in subsequent queries or applications by the user or other users or even other applications. For example, in the situation described above, a subsequent query by a user involving the sales contact may provide the secondary phone number without the user needing to perform an additional or more detailed search for the information.


Table 1 provides an example of different types of structured data that may be extracted from various types of personal data sources.










TABLE 1





Personal Data Source Type
Extracted Structured Data







Email
From, to, signature, threaded email



conversations, subject field, date,



time stamp


Calendar
Location, time, invitees, attendees,



recurrence, time zone


CRM
Account, contact, case, opportunity,



partners, contact, approval, asset,



campaign, lead


Address Book
Name, Company, Title, email, phone,



fax, web url, IM ID, Chat ID, mobile



number


Documents and document
Last modified time, meta data, header,


stores
footer, copy right information, title,



author, shared access list









Table 2 provides an example illustrating how the data extractor and correlator 302 of FIG. 3 may analyze and correlate structured data and convert it into enriched knowledge.










TABLE 2





Structured Data
Enriched Knowledge







Bruce Thomas
First Name: Bruce


<bruce.t@zen.com>
Last Name: Thomas



Possible Org: Zen Inc (common emails domains



like yahoo.com, msn.com, gmail.com are excluded).



Zen.com is used to collect information about the



organization.



Company or Org Type: Machine tool and



manufacturing industry. Extracted from Zen.com



web site



Group Members: Information extracted based on



all the individuals Bruce Thomas interacts with



using the email ID Bruce Thomas.



Information Co-relation and Consolidation: All email



addresses, phone numbers and other information is



co-related and consolidated.









Certain embodiments of the system 300 of FIG. 3 further include a machine-implemented document harvester configured to retrieve one or more documents from at least one of the personal data sources 304A-n. Such embodiments may further include a machine-implemented document indexer configured to index a plurality of documents harvested by the document harvester from the personal data sources 304A-n.


A document harvester and indexer may be used to process and index documents including files, e.g., word processing files, spreadsheet files, presentation files, individual slides in presentation files, etc., calendar events, to do lists, notes, emails, email attachments, and web pages. These documents may be retrieved locally from a user's computer and/or remotely from network storage, e.g., a server that stores documents produced by a plurality of users, as well as from the Web, e.g., from web pages via Web application programming interfaces (APIs). The documents may also be tagged and/or clustered.


As documents are harvested, a word popularity dictionary may be created. Word popularity generally refers to a global dictionary containing high frequency words and weights. When a new document is harvested, for example, keywords that do not exist in the dictionary may be added. Stemming may be applied to obtain root words and text may be converted to lowercase. As a user interacts with the system by sending email, visiting web pages etc., the weights in the dictionary can be constantly updated. Keywords in frequently-accessed documents may be given higher weights while keywords in less-important documents may be given lower weights. Consequently, an up-to-date and accurate model of the user's universe and behavior may be effectively constructed.



FIG. 3 includes a natural language query module 307 that may be used to generate responses to natural language queries submitted by users to the system 300. The natural language query module 307 may access structured information stored by the knowledge store 306 and, in some embodiments, the natural language query module 307 may also interface directly with the data extractor and correlator 302. The responses generated by the natural language query module 307 to be provided to the user are based at least in part on the structured information within the knowledge store 306. For example, if a user submits a query pertaining to a sales lead whose information is stored within the knowledge store 306, the natural language query module 307 may automatically generate a response that contains certain information, such as contact information, that pertains to the sales lead.



FIG. 4 is a block diagram illustrating an example of a system 400 that includes a machine-implemented user profile module 408 in accordance with certain embodiments of the disclosed technology. Such embodiments are particularly beneficial for applications that aim to adapt to a user by better tailoring to his or her specific needs and preferences.


In the example, the user profile module 408 is configured to interact with any number of user profiles 410A-n. Each user profile may correspond to one or more users. Also, any given user may be associated with multiple user profiles. For example, each user profile may correspond to a certain role, e.g., sales coordinator, that may be assigned to or associated with multiple users. Multiple user profiles 410A-n may correspond to a user's particular situation. For example, a user may have one user profile 410A for work-related items and a second user profile 410B for home-related items. Alternatively or in addition thereto, a user may have one or more profiles that correspond to activities with friends, one or more profiles that correspond to family activities, and one or more profiles that correspond to business-related events.


The user profile module 408 may interact with a knowledge store 406 such as the knowledge store 306 of FIG. 3, for example. The user profile module 408 may also interact with any of a number of user applications 412A-n such as a sales-oriented application, for example. In certain embodiments, a user's experience with a certain user application may be influenced or even driven by one or more of the user profiles 410A-n. For example, if the user is interacting with user application 412B concerning a particular sale involving information associated with user profile 410C, the user profile module 408 may direct the user application 412B to proactively provide certain information, e.g., certain contact information stored within the knowledge store 406, to the user.


In certain embodiments, the user profile module 408 may interact with one or more public data sources 414. For example, a personal corpus or web data often do not provide enough information to build or update a user profile that is detailed or accurate enough for certain applications. In these embodiments, the user profile module 408 may proactively seek or passively receive public information pertaining to a contact whose information is stored by the knowledge store 406. If the new public information is different than the previously stored information, the user profile module 408 may direct the knowledge store 406 and/or one or more of the user profiles 410A-n to update the corresponding information accordingly.



FIG. 4 also includes a natural language query module 407, such as the natural language query module 307 of FIG. 3, that may be used to generate responses to natural language queries submitted by users to the system 400. The natural language query module 407 may access structured information stored by the knowledge store 406 and, in some embodiments, the natural language query module 407 may also interface directly with the user profile module 408. The responses generated by the natural language query module 407 to be provided to the user are based at least in part on the structured information within the knowledge store 406. In certain embodiments, the response is also based on one or more of the user profiles 410A-n. For example, if the query pertains to information stored in user profile 410B, the natural language query module 407 may obtain the information by way of the user profile module 408 and generate a response incorporating that information.



FIG. 5 is a block diagram illustrating an example of a system 500 implementing a feedback module 516 in accordance with certain embodiments of the disclosed technology. In the example, the system 500 includes a user profile module 508, such as the user profile module 408 of FIG. 4, configured to interact with one or more user profiles 510A-n, such as the user profiles 410A-n of FIG. 4. The user profile module 508 is also configured to interact with a knowledge store 506 such as the knowledge store 306 of FIG. 3, for example.


The feedback module 516 may interact with one or both of the user profile module 508 and the knowledge store 506. In certain embodiments, the feedback module 516 may interact with one or more public data source 514 and may cause the user profile module 508 to alter or update one or more of the user profiles 510A-n based on interactions with the public data source(s) 514. In certain embodiments, the feedback module 516 may interact directly with a user associated with one of the user profiles 510A-n. Alternatively or in addition thereto, the feedback module 516 may interact directly with one or more user applications 512A-n, such as the user applications 412A-n of FIG. 4.


Consider a situation in which user profile 510B involves a particular sales contact whose contact information just changed and is broadcast via the public data source 514. The feedback module 516 may direct the user profile module 508 to update one or more of the user profiles 510A-n with the new public information concerning the sales contact. The user profiles 510A-n can be continually updated and enriched as more searches are conducted and in an increasingly refined manner. For example, suggestions provided to a user based on his or her user profile(s) may be increasingly relevant as time goes on.


In embodiments where the feedback module 516 interacts with one or more user applications 512A-n, the feedback module 516 may be triggered to direct the user profile module 508 to update one or more of the user profiles 510A-n responsive to the interaction with the user application(s) 512A-n. For example, if the feedback module 516 detects a user updating a contact mailing address in user application 512B, the feedback module 516 may direct the user profile module 508 to update any of the user profiles 510A-n that include a mailing address for the contact.



FIG. 5 also includes a natural language query module 507, such as the natural language query module 307 of FIG. 3, that may be used to generate responses to natural language queries submitted by users to the system 500. The natural language query module 507 may access structured information stored by the knowledge store 506 and, in some embodiments, the natural language query module 507 may also interface directly with the feedback module 516. The responses generated by the natural language query module 507 to be provided to the user are based at least in part on the structured information within the knowledge store 506 and, in some embodiments, may be adjusted based on information provided by the feedback module 516. For example, a response to the natural language query may take into account pertinent information from user profile 510B (by way of the user profile module 508) responsive to an indication from the feedback module 516 that the pertinent information has changed, e.g., due to an event that has occurred or is occurring at the public data source 514.



FIG. 6 is a flowchart illustrating an example of a machine-implemented method 600 in accordance with certain embodiments of the disclosed technology. At 602, data is retrieved from one or more data sources. For example, a machine-implemented data extractor and correlator, such as the data extractor and correlator 302 of FIG. 3, may retrieve personal data from one or more personal data sources, such as the personal data sources 304A-n of FIG. 3.


At 604, information is extracted from unstructured data within the data retrieved at 602. For example, a data extractor and correlator, such as the data extractor and correlator 302 of FIG. 3, may extract information pertaining to a sales order such as one or both of an invoice number and a contact name. Such information may be unstructured in that it is neither organized in a structured manner nor readily classifiable or useable without modification or organizing. For example, the information may be a free-text piece of data such as the body of an email message.


The information extraction performed at 604 may be accomplished by breaking at least one sentence into subject, verb, and object (SVO), extracting phrases that link a subject to an object, extracting at least one word in close proximity to an identified feature or service, extracting at least one word in close proximity to a known quality, or any combination thereof. Features with certain quality or derived quality ratings may be tagged for reviews, for example. Also, structures that approximate concepts from documents with and without prior semantic understanding may be constructed.


At 606, some or all of the extracted information is correlated with previously stored structured data to generate additional structured data. For example, a data extractor and correlator, such as the data extractor and correlator 302 of FIG. 3, may correlate the invoice number and/or contact name discussed above with an existing order and/or contact having associated structured data stored within a knowledge store, such as the knowledge store 306 of FIG. 3. The knowledge store may store both the additional structured information and the previously stored structured data as indicated at 608.


In certain embodiments, the retrieved data includes supplemental structured data, e.g., structured data that has not yet been stored within a knowledge store. In these situations, the data extractor and correlator may correlate the supplemental structured data with one or both of the previously stored structured data and the additional structured data to generate further structured data that may be stored by the knowledge store.


Certain embodiments may include retrieving public data from one or more public data sources. In these embodiments, a data extractor and correlator may extract public information from unstructured data within the retrieved public data and correlate the extracted public information with previously stored structured data to generate further additional structured data that may be stored by the knowledge store.


In certain embodiments, a user profile, such as the user profiles 410A-n of FIG. 4, may be generated based at least in part on one or both of the previously stored structured data and the additional structured data, as indicated at 610. Alternatively or in addition thereto, an existing user profile may be updated based at least in part on one or both of the previously stored structured data and the additional structured data, as indicated at 612. Generation and modification of user profiles may be performed by a user profile module, such as the user profile module 408 of FIG. 4.


At 614, a natural language query is received from a user. For example, a user wishing to research a particular sales lead may provide the following query: “has there been any recent progress with sales lead XYZ Manufacturing?” The system then generates a response to the natural language query received at 614, as indicated at 616. The response is based at least in part on one or both of the previously stored data and the additional structured data. For example, if the stored structured data contains information pertaining to XYZ manufacturing, the generated response may provide said information to the user in the response.



FIG. 7 is a flowchart illustrating an example of another machine-implemented method 700 in accordance with certain embodiments of the disclosed technology. At 702, raw content is extracted from retrieved data, such as the personal and/or public data retrieved at 602 of FIG. 6.


At 704, semantic analysis is performed on the raw content. For example, a semantic analysis module may be configured to determine semantic information based on unstructured data within the retrieved data. A data extractor and correlator, such as the data extractor and correlator 302 of FIG. 3, may be configured to correlate the extracted information with previously stored structured data based at least in part on the semantic information.


Certain embodiments include performing a search of one or more data sources based on results of the semantic analysis performed at 704. Such embodiments may include performing a search of one or more personal data sources, as indicated by 706, or performing a search of one or more public data sources, as indicated by 708.


At 710, an additional analysis is performed based at least in part on the results of the search performed at either 706 or 708. In certain embodiments, a user profile, such as the user profiles 410A-n of FIG. 4, may be updated, e.g., by a user profile module, based on one or both of the results of the search performed at either 706 or 708 and the additional analysis performed at 710. The additional analysis performed at 710 may include an inference analysis, a topic analysis, information tagging, information clustering, or some combination thereof. Probabilistic links may also be created based on the additional analysis. Over time, topics may be augmented, merged, deleted, or split depending on the analysis. Also, sub-topics may be created based on the analysis.



FIG. 8 is a block diagram illustrating an example of a system 800 involving structured data 805A and unstructured data 805B retrieved from multiple data sources in accordance with certain embodiments of the disclosed technology. In the example, the data sources include multiple personal data sources 804A-E: an email message 804A, a calendar item 804B, an address book object 804C, an application-specific document 804D, and a CRM application object 804E.


In the example, the data sources 804A-E collectively yield five pieces of structured data 805A that may be retrieved, for example, by a data extractor and correlator: sales contact information (name and email address), account name, contact name, invoice number, and phone number. The data sources 804A-E also provide various pieces of unstructured data 805B: two proper names (person and company), meeting time, two invoice numbers, a phone number, meeting-specific information, and sales-specific information.


Certain information, e.g., invoice numbers, from the unstructured data 805B may be correlated with the structured data 805A. Such correlation may include identifying, extracting, or building at least one relationship between the extracted information and previously stored structured data. For example, one or more features identified within the extracted information may be tagged or otherwise marked for subsequent operations. Parts of speech analysis may also be performed and then enriched by relationship determinations.


In certain embodiments, correlation and relationship building may include categorizing one or more portions of the unstructured data. Portions of the unstructured data 805B may each be broken into subject, verb, and object (SVO). Phrases linking a subject to an object may be extracted. A determination may be made as to certain words in close proximity to an identified feature or service, known quality, or any combination thereof.


Consider an example in which the word “Apple” in unstructured free-flowing data could have multiple meanings. The word could refer to a fruit, the name of a company, the name of a person, etc. Relationships may be established to decipher the meaning of certain unstructured data. A possible association to each of these entities can be created and those that have a high probability based on parts of speech analysis and entity relationship identification, for example, may be strengthened. In the present example, an inference may be made that “Apple” is a company based on its learning from a prior structured data analysis. Table 3 provides an indication as to the relationships for “Apple” that may be identified from structured data. In the example, the word “Apple” occurs along with “Apple Thomas” and “Rob Cramer.”










TABLE 3





Structured Data
Relationship Identification







Apple in Apple Thomas
First name of an person


Apple
Company or business entity name


Apple Thomas
Name of an person


Rob Cramer
Name of a person










FIG. 9 illustrates an example 900 that shows the possible relationships that may be defined between the word “Apple” 902, as discovered in unstructured data, and the various types of entities, e.g., a person 904, a fruit 906, or a company 908, as discussed above. As indicated visually in the figure by the different thicknesses of the connecting lines, the word “Apple” as identified in the unstructured data has been determined to refer to a company name and not to a fruit or a person based on the relative strength of the determined relationship therebetween.


In certain embodiments, one or more patterns may be extracted or determined from structured data, such as previously stored structured data, to create pattern fingerprints. Patterns may subsequently be extracted from the unstructured data using these pattern fingerprints. For example, structured data may be used to construct a pattern fingerprint knowledge base and then use the pattern fingerprinting knowledge to recognize similar items from unstructured data and establish their relationship with various entities. For example, fingerprint data patterns can be learned and determined for sales and/or contact-related attributes such invoice number, P.O. number, and phone number. These learnings may be applied to identify similar patterns in unstructured data and identify additional relationships between entities.


Certain implementations of the disclosed technology may include personalized searching capabilities and features, personalized content delivery, personalized advertisement delivery, intelligence gathering and analysis, and automated augmentation of knowledge bases.


Embodiments of the disclosed technology may be implemented as machine-directed methods or physical devices. Accordingly, certain implementations may take the form of an entirely-hardware embodiment, an entirely-software embodiment, or an embodiment combining both hardware and software aspects. For example, some or all of the components for any given embodiment may be computer-implemented components.


Having described and illustrated the principles of the invention with reference to illustrated embodiments, it will be recognized that the illustrated embodiments may be modified in arrangement and detail without departing from such principles, and may be combined in any desired manner. And although the foregoing discussion has focused on particular embodiments, other configurations are contemplated. In particular, even though expressions such as “according to an embodiment of the invention” or the like are used herein, these phrases are meant to generally reference embodiment possibilities, and are not intended to limit the invention to particular embodiment configurations. As used herein, these terms may reference the same or different embodiments that are combinable into other embodiments.


Consequently, in view of the wide variety of permutations to the embodiments described herein, this detailed description and accompanying material is intended to be illustrative only, and should not be taken as limiting the scope of the invention. What is claimed as the invention, therefore, is all such modifications as may come within the scope and spirit of the following claims and equivalents thereto.

Claims
  • 1. A system, comprising: a plurality of personal data sources;a processor configured to operate: a machine-implemented data extractor and correlator configured to retrieve personal data from at least one of the plurality of personal data sources, extract information from unstructured data within the retrieved personal data, and correlate the extracted information with previously stored structured data to generate additional structured data;a user profile module configured to generate and update different user profiles associated with different user roles for a same user based on both the previously stored structured data and the additional structured data;a natural language query module configured to receive a natural language query from the user and provide a response to the natural language query based at least in part on one or both of the previously stored structured data and the additional structured data;a storage device configured to store the previously stored structured data and the additional structured data; anda feedback module configured to interact with different user applications and direct the user profile module to update the different user profiles based on structured data and unstructured data from the different user applications.
  • 2. The system of claim 1, wherein the plurality of personal data sources comprises at least two of a group consisting of: an email message, a calendar item, a customer relationship management (CRM) application object, an address book entry, a tweet, and a blog entry.
  • 3. The system of claim 1, wherein the data extractor and correlator is further configured to retrieve at least some of the personal data from the different user profiles.
  • 4. The system of claim 1, wherein the data extractor and correlator comprises a semantic analysis module configured to determine semantic information based on the unstructured data, and wherein the extracted information comprises the semantic information.
  • 5. The system of claim 4, wherein the data extractor and correlator is configured to correlate the extracted information with the previously stored structured data based at least in part on the semantic information.
  • 6. The system of claim 1, wherein the data extractor and correlator comprises a semantic analysis module configured to determine semantic information based on public data retrieved from at least one public data source, and wherein the data extractor and correlator is further configured to correlate the semantic information with one or both of the previously stored structured data and the additional structured data to generate further structured data.
  • 7. The system of claim 1, wherein the user profile module is further configured to generate a new user profile based at least in part on one or both of the previously stored structured data and the additional structured data.
  • 8. The system of claim 1, wherein at least one of the user applications is configured to provide user interaction based at least in part on the user profiles.
  • 9. The system of claim 1, wherein the feedback module is further configured to update the user profiles responsive to public data retrieved from at least one public data source.
  • 10. The system of claim 1, further comprising a machine-implemented document harvester configured to retrieve a document from at least one of the plurality of personal data sources.
  • 11. The system of claim 10, further comprising a machine-implemented document indexer configured to index a plurality of documents harvested by the document harvester.
  • 12. The system of claim 1, wherein the machine-implemented data extractor and correlator is further configured to retrieve public data from at least one public data source, extract public information from unstructured data within the retrieved public data, and correlate the extracted public information with the previously stored structured data to generate further additional structured data.
  • 13. The system of claim 1, wherein the data extractor and correlator is configured to extract information from the unstructured data by performing at least one of a group consisting of: breaking at least one sentence into subject, verb, and object (SVO);extracting phrases that link a subject to an object;extracting at least one word in close proximity to an identified feature; andextracting at least one word in close proximity to a known quality.
  • 14. The system of claim 1, wherein the data extractor and correlator is configured to correlate the extracted information with the previously stored structured data by building at least one relationship between the extracted information and the previously stored structured data.
  • 15. The system of claim 14, wherein the data extractor and correlator is configured to build the at least one relationship between the extracted information and the previously stored structured data by tagging a feature identified in the extracted information.
  • 16. A machine-implemented method, comprising: a processing device retrieving personal data from at least one of a plurality of personal data sources;the processing device extracting unstructured data from the retrieved personal data;the processing device correlating the extracted unstructured data with previously stored structured data to generate additional structured data and update different user profiles associated with different user roles for a same user with both the previously stored structured data and the additional structured data;a storage device storing the previously stored structured data and the additional structured data;the processing device receiving a natural language query from the user;the processing device determining a response to the natural language query to be provided to the user, wherein the response is based at least in part on one or both of the previously stored structured data and the additional structured data; andthe processing device interacting with different user applications and updating the different user profiles based on structured data and unstructured data from the different user applications.
  • 17. The machine-implemented method of claim 16, further comprising: generating a new one of the user profiles based at least in part on one or both of the previously stored structured data and the additional structured data.
  • 18. The machine-implemented method of claim 16, further comprising: the processing device retrieving public data from at least one of a plurality of public data sources;the processing device extracting public information from unstructured data within the retrieved public data; andthe processing device correlating the extracted public information with the previously stored structured data to generate further additional structured data.
  • 19. The machine-implemented method of claim 18, further comprising: updating a previously generated one of the user profiles based at least in part on the further additional structured data.
US Referenced Citations (197)
Number Name Date Kind
5577188 Zhu Nov 1996 A
5608872 Schwartz et al. Mar 1997 A
5649104 Carleton et al. Jul 1997 A
5664109 Johnson Sep 1997 A
5715450 Ambrose et al. Feb 1998 A
5761419 Schwartz et al. Jun 1998 A
5819038 Carleton et al. Oct 1998 A
5821937 Tonelli et al. Oct 1998 A
5831610 Tonelli et al. Nov 1998 A
5873096 Lim et al. Feb 1999 A
5918159 Fomukong et al. Jun 1999 A
5963953 Cram et al. Oct 1999 A
5983227 Nazem et al. Nov 1999 A
6092083 Brodersen et al. Jul 2000 A
6161149 Achacoso et al. Dec 2000 A
6169534 Raffel et al. Jan 2001 B1
6178425 Brodersen et al. Jan 2001 B1
6189011 Lim et al. Feb 2001 B1
6216133 Masthoff Apr 2001 B1
6216135 Brodersen et al. Apr 2001 B1
6233617 Rothwein et al. May 2001 B1
6236978 Tuzhilin May 2001 B1
6266669 Brodersen et al. Jul 2001 B1
6288717 Dunkle Sep 2001 B1
6295530 Ritchie et al. Sep 2001 B1
6324568 Diec et al. Nov 2001 B1
6324693 Brodersen et al. Nov 2001 B1
6336137 Lee et al. Jan 2002 B1
D454139 Feldcamp et al. Mar 2002 S
6367077 Brodersen et al. Apr 2002 B1
6393605 Loomans May 2002 B1
6405220 Brodersen et al. Jun 2002 B1
6411949 Schaffer Jun 2002 B1
6434550 Warner et al. Aug 2002 B1
6446089 Brodersen et al. Sep 2002 B1
6535909 Rust Mar 2003 B1
6549908 Loomans Apr 2003 B1
6553563 Ambrose et al. Apr 2003 B2
6560461 Fomukong et al. May 2003 B1
6574635 Stauber et al. Jun 2003 B2
6577726 Huang et al. Jun 2003 B1
6601087 Zhu et al. Jul 2003 B1
6604117 Lim et al. Aug 2003 B2
6604128 Diec et al. Aug 2003 B2
6609150 Lee et al. Aug 2003 B2
6621834 Scherpbier et al. Sep 2003 B1
6654032 Zhu et al. Nov 2003 B1
6665648 Brodersen et al. Dec 2003 B2
6665655 Warner et al. Dec 2003 B1
6684438 Brodersen et al. Feb 2004 B2
6711565 Subramaniam et al. Mar 2004 B1
6724399 Katchour et al. Apr 2004 B1
6728702 Subramaniam et al. Apr 2004 B1
6728960 Loomans et al. Apr 2004 B1
6732095 Warshavsky et al. May 2004 B1
6732100 Brodersen et al. May 2004 B1
6732111 Brodersen et al. May 2004 B2
6738767 Chung et al. May 2004 B1
6754681 Brodersen et al. Jun 2004 B2
6763351 Subramaniam et al. Jul 2004 B1
6763501 Zhu et al. Jul 2004 B1
6768904 Kim Jul 2004 B2
6772229 Achacoso et al. Aug 2004 B1
6782383 Subramaniam et al. Aug 2004 B2
6804330 Jones et al. Oct 2004 B1
6826565 Ritchie et al. Nov 2004 B2
6826582 Chatterjee et al. Nov 2004 B1
6826745 Coker et al. Nov 2004 B2
6829655 Huang et al. Dec 2004 B1
6842748 Warner et al. Jan 2005 B1
6850895 Brodersen et al. Feb 2005 B2
6850949 Warner et al. Feb 2005 B2
6907566 McElfresh et al. Jun 2005 B1
7036128 Julia et al. Apr 2006 B1
7062502 Kesler Jun 2006 B1
7069231 Cinarkaya Jun 2006 B1
7069497 Desai Jun 2006 B1
7100111 McElfresh et al. Aug 2006 B2
7181758 Chan Feb 2007 B1
7269590 Hull et al. Sep 2007 B2
7289976 Kihneman et al. Oct 2007 B2
7340411 Cook Mar 2008 B2
7356482 Frankland et al. Apr 2008 B2
7373599 McElfresh et al. May 2008 B2
7401094 Kesler Jul 2008 B1
7406501 Szeto et al. Jul 2008 B2
7412455 Dillon Aug 2008 B2
7454509 Boulter et al. Nov 2008 B2
7508789 Chan Mar 2009 B2
7599935 La Rotonda et al. Oct 2009 B2
7603331 Tuzhilin et al. Oct 2009 B2
7603483 Psounis et al. Oct 2009 B2
7620655 Larsson et al. Nov 2009 B2
7644122 Weyer et al. Jan 2010 B2
7668861 Steven Feb 2010 B2
7698160 Beaven et al. Apr 2010 B2
7730478 Weissman Jun 2010 B2
7747648 Kraft et al. Jun 2010 B1
7779039 Weissman et al. Aug 2010 B2
7779475 Jakobson et al. Aug 2010 B2
7827208 Bosworth et al. Nov 2010 B2
7853881 Aly Assal et al. Dec 2010 B1
7945653 Zuckerberg et al. May 2011 B2
8005896 Cheah Aug 2011 B2
8014943 Jakobson Sep 2011 B2
8015495 Achacoso et al. Sep 2011 B2
8032297 Jakobson Oct 2011 B2
8073850 Hubbard et al. Dec 2011 B1
8082301 Ahlgren et al. Dec 2011 B2
8095413 Beaven Jan 2012 B1
8095531 Weissman et al. Jan 2012 B2
8095594 Beaven et al. Jan 2012 B2
8103611 Tuzhilin et al. Jan 2012 B2
8150913 Cheah Apr 2012 B2
8209308 Rueben et al. Jun 2012 B2
8209333 Hubbard et al. Jun 2012 B2
8275836 Beaven et al. Sep 2012 B2
8457545 Chan Jun 2013 B2
8484111 Frankland et al. Jul 2013 B2
8490025 Jakobson et al. Jul 2013 B2
8504945 Jakobson et al. Aug 2013 B2
8510045 Rueben et al. Aug 2013 B2
8510664 Rueben et al. Aug 2013 B2
8566301 Rueben et al. Oct 2013 B2
8646103 Jakobson et al. Feb 2014 B2
8805833 Nath et al. Aug 2014 B2
20010044791 Richter et al. Nov 2001 A1
20020072951 Lee et al. Jun 2002 A1
20020082892 Raffel et al. Jun 2002 A1
20020129352 Brodersen et al. Sep 2002 A1
20020140731 Subramaniam et al. Oct 2002 A1
20020143997 Huang et al. Oct 2002 A1
20020162090 Parnell et al. Oct 2002 A1
20020165742 Robbins Nov 2002 A1
20030004971 Gong Jan 2003 A1
20030018705 Chen et al. Jan 2003 A1
20030018830 Chen et al. Jan 2003 A1
20030066031 Laane et al. Apr 2003 A1
20030066032 Ramachandran et al. Apr 2003 A1
20030069936 Warner et al. Apr 2003 A1
20030070000 Coker et al. Apr 2003 A1
20030070004 Mukundan et al. Apr 2003 A1
20030070005 Mukundan et al. Apr 2003 A1
20030074418 Coker et al. Apr 2003 A1
20030101169 Bhatt et al. May 2003 A1
20030120675 Stauber et al. Jun 2003 A1
20030151633 George et al. Aug 2003 A1
20030159136 Huang et al. Aug 2003 A1
20030187921 Diec et al. Oct 2003 A1
20030189600 Gune et al. Oct 2003 A1
20030204427 Gune et al. Oct 2003 A1
20030206192 Chen et al. Nov 2003 A1
20030225730 Warner et al. Dec 2003 A1
20040001092 Rothwein et al. Jan 2004 A1
20040010489 Rio et al. Jan 2004 A1
20040015981 Coker et al. Jan 2004 A1
20040027388 Berg et al. Feb 2004 A1
20040128001 Levin et al. Jul 2004 A1
20040186860 Lee et al. Sep 2004 A1
20040193510 Catahan et al. Sep 2004 A1
20040199489 Barnes-Leon et al. Oct 2004 A1
20040199536 Barnes-Leon et al. Oct 2004 A1
20040199543 Braud et al. Oct 2004 A1
20040249854 Barnes-Leon et al. Dec 2004 A1
20040260534 Pak et al. Dec 2004 A1
20040260659 Chan et al. Dec 2004 A1
20040268299 Lei et al. Dec 2004 A1
20050050555 Exley et al. Mar 2005 A1
20050091098 Brodersen et al. Apr 2005 A1
20050114777 Szeto May 2005 A1
20050197954 Maitland Sep 2005 A1
20060085436 Dettinger Apr 2006 A1
20060089945 Paval Apr 2006 A1
20060245641 Viola et al. Nov 2006 A1
20080094205 Thorn Apr 2008 A1
20080249972 Dillon Oct 2008 A1
20090063415 Chatfield et al. Mar 2009 A1
20090070322 Salvetti Mar 2009 A1
20090100342 Jakobson Apr 2009 A1
20090106224 Roulland et al. Apr 2009 A1
20090177744 Marlow et al. Jul 2009 A1
20090259670 Inmon Oct 2009 A1
20100030715 Eustice Feb 2010 A1
20110218958 Warshavsky Sep 2011 A1
20110247051 Bulumulla et al. Oct 2011 A1
20120042218 Cinarkaya Feb 2012 A1
20120233137 Jakobson et al. Sep 2012 A1
20120290407 Hubbard et al. Nov 2012 A1
20130024924 Brady et al. Jan 2013 A1
20130110842 Donneau-Golencer May 2013 A1
20130212497 Zelenko et al. Aug 2013 A1
20130218948 Jakobson Aug 2013 A1
20130218949 Jakobson Aug 2013 A1
20130218966 Jakobson Aug 2013 A1
20130247216 Cinarkaya Sep 2013 A1
20140046876 Zhang Feb 2014 A1
20140359537 Jackobson et al. Dec 2014 A1
Non-Patent Literature Citations (1)
Entry
“Google Plus Users”, Google+Ripples; Oct. 31, 2011; 3 pages.
Related Publications (1)
Number Date Country
20130110842 A1 May 2013 US