1. A non-transitory computer-readable medium comprising instructions for a computer program for updating user profiles, the instructions operable to: store structured data in the user profiles; extract one or more patterns from the stored structured data to create one or more pattern fingerprints; retrieve unstructured personal data from personal data sources; extract one or more patterns from the unstructured personal data using the one or more pattern fingerprints; correlate the unstructured personal data with the stored structured data in the user profiles, using the one or more patterns from the unstructured personal data, to generate additional structured data; update the user profiles with the additional structured data; receive a query; and provide a query response based at least in part on the structured data and the additional structured data in the user profiles, wherein at least some of the user profiles are associated with different user roles for a same user.
2. The computer program of claim 1 , wherein the personal data sources include email messages and calendar items.