Method and system for associating data from different sources to generate a person-centric space

The present teaching relates to associating data from different sources to generate a person-centric space. In one example, information related to a person is received. First data is obtained from a first source private to the person based on the information. One or more types of cross-linking keys are identified from the first data. Second data is obtained from at least one second source based on the one or more types of cross-linking keys. The first data is associated with at least a portion of the second data based, at least in part, on the one or more types of cross-linking keys to generate cross-linked data. The person-centric space is generated based on the cross-linked data.

CROSS-REFERENCE TO RELATED APPLICATION

The present application is related to U.S. patent application Ser. No. 14/874,576 filed on Oct. 5, 2015, entitled METHOD AND SYSTEM FOR SEARCHING IN A PERSON-CENTRIC SPACE, which is incorporated herein by reference in its entirety.

BACKGROUND

1. Technical Field

The present teaching generally relates to organizing, retrieving, presenting, and utilizing information. Specifically, the present teaching relates to methods and systems for associating data from different sources and searching data.

2. Discussion of Technical Background

The Internet has made it possible for a person to electronically access virtually any content at any time and from any location. The Internet technology facilitates information publishing, information sharing, and data exchange in various spaces and among different persons. One problem associated with the rapid growth of the Internet is the so-called “information explosion,” which is the rapid increase in the amount of available information and the effects of this abundance. As the amount of available information grows, the problem of managing the information becomes more difficult, which can lead to information overload. With the explosion of information, it has become more and more important to provide users with information from a public space that is relevant to the individual person and not just information in general.

In addition to the public space such as the Internet, semi-private spaces including social media and data sharing sites have become another important source where people can obtain and share information in their daily lives. The continuous and rapid growth of social media and data sharing sites in the past decade has significantly impacted the lifestyles of many; people spend more and more time on chatting and sharing information with their social connections in the semi-private spaces or use such semi-private sources as additional means for obtaining information and entertainment. Similar to what has happened in the public space, information explosion has also become an issue in the social media space, especially in managing and retrieving information in an efficient and organized manner.

Private space is another data source used frequently in people's everyday lives. For example, personal emails in Yahoo! mail, Gmail, Outlook etc. and personal calendar events are considered as private sources because they are only accessible to a person when she or he logs in using private credentials. Although most information in a person's private space may be relevant to the person, it is organized in a segregated manner. For example, a person's emails may be organized by different email accounts and stored locally in different email applications or remotely at different email servers. As such, to get a full picture of some situation related to, e.g., some event, a person often has to search different private spaces to piece everything together. For example, to check with a friend of the actual arrival time for a dinner, one may have to first check a particular email (in the email space) from the friend indicating the time the friend will arrive, and then go to Contacts (a different private space) to search for the friend's contact information before making a call to the friend to confirm the actual arrival time. This is not convenient.

The segregation of information occurs not only in the private space, but also in the semi-private and public spaces. This has led to another consequential problem given the information explosion: requiring one to constantly look for information across different segregated spaces to piece everything together due to lack of meaningful connections among pieces of information that are related in actuality yet isolated in different segregated spaces.

Efforts have been made to organize the huge amount of available information to assist a person to find the relevant information. Conventional scheme of such effort is application-centric and/or domain-centric. Each application carves out its own subset of information in a manner that is specific to the application and/or specific to a vertical or domain. For example, such attempt is either dedicated to a particular email account (e.g., www.Gmail.com) or specific to an email vertical (e.g., Outlook); a traditional web topical portal allows users to access information in a specific vertical, such as www.IMDB.com in the movies domain and www.ESPN.com in the sports domain. In practice, however, a person often has to go back and forth between different applications, sometimes across different spaces, in order to complete a task because of the segregated and unorganized nature of information existing in various spaces. Moreover, even within a specific vertical, the enormous amount of information makes it tedious and time consuming to find the desired information.

Another line of effort is directed to organizing and providing information in an interest-centric manner. For example, user groups of social media in a semi-private space may be formed by common interests among the group members so that they can share information that is likely to be of interest to each other. Web portals in the public space start to build user profiles for individuals and recommend content based on an individual person's interests, either declared or inferred. The effectiveness of interest-centric information organization and recommendation is highly relied on the accuracy of user profiling. Oftentimes, however, a person may not like to declare her/his interests, whether in a semi-private space or a public space. In that case, the accuracy of user profiling can only be relied on estimation, which can be questionable. Accordingly, neither of the application-centric, domain-centric, and interest-centric ways works well in dealing with the information explosion challenge.

FIG. 1depicts a traditional scheme of information organization and retrieval in different spaces in a segregated and disorganized manner. A person102has to interact with information in private space104, semi-private space106, and public space108via unrelated and separate means110,112,114, respectively. For accessing private data from the private space104, means110, such as email applications, email sites, local or remote Contacts and calendars, etc., has to be selected and used. Each means110is domain or application-oriented, allowing the person102to access information related to the domain with the specific application that the means110is developed for. Even for information residing within different applications/domains in the private space104, a person102still has to go by different means110to access content of each application/domain, which is not convenient and not person-centric. For example, in order to find out the phone numbers of attendees of a birthday party, the person102has to first find all the confirmation emails from the attendees (may be sent in different emails and even to different email accounts), write down each name, and open different Contacts to look for their phone numbers.

Similarly, for interacting with the semi-private space106, a person102needs to use a variety of means112, each of which is developed and dedicated for a specific semi-private data source. For example, Facebook desktop application, Facebook mobile app, and Facebook site are all means for accessing information in the person102's Facebook account. But when the person102wants to open any document shared on Dropbox by a Facebook friend, the person102has to switch to another means dedicated to Dropbox (a desktop application, a mobile app, or a website). As shown inFIG. 1, information may be transmitted between the private space104and the semi-private space106. For instance, private photos can be uploaded to a social media site for sharing with friends; social media or data sharing sites may send private emails to a person102's private email account notifying her/him of status updates of social friends. However, such information exchange does not automatically create any linkage between data between the private and semi-private spaces104,106. Thus, there is no application that can keep track of such information exchange and establish meaningful connections, much less utilizing the connections to make it easier to search for information.

As to the public space108, means114such as traditional search engines (e.g., www.Google.com) or web portals (e.g., www.CNN.com, www.AOL.com, www.IMDB.com, etc.) are used to access information. With the increasing challenge of information explosion, various efforts have been made to assist a person102to efficiently access relevant and on-the-point content from the public space108. For example, topical portals have been developed that are more domain-oriented as compared to generic content gathering systems such as traditional search engines. Examples include topical portals on finance, sports, news, weather, shopping, music, art, movies, etc. Such topical portals allow the person102to access information related to subject matters that these portals are directed to. Vertical search has also been implemented by major search engines to help to limit the search results within a specific domain, such as images, news, or local results. However, even if limiting the search result to a specific domain in the public space108, there is still an enormous amount of available information, putting much burden on the person102to identify desired information.

There is also information flow among the public space108, the semi-private space106, and the private space104. For example, www.FedeEx.com (public space) may send a private email to a person102's email account (private space) with a tracking number; a person102may include URLs of public websites in her/his tweets to followers. However, in reality, it is easy to lose track of related information residing in different spaces. When needed, much effort is needed to dig them out based on memory via separate means110,112,114across different spaces104,106,108. In today's society, this consumes more and more people's time.

Because information residing in different spaces or even within the same space is organized in a segregated manner and can only be accessed via dedicated means, the identification and presentation of information from different sources (whether from the same or different spaces) cannot be made in a coherent and unified manner. For example, when a person102searches for information using a query in different spaces, the results yielded in different search spaces are different. For instance, search result from a conventional search engine directed to the public space108is usually a search result page with “blue links,” while a search in the email space based on the same query will certainly look completely different. When the same query is used for search in different social media applications in the semi-private space106, each application will again likely organize and present the search result in a distinct manner. Such inconsistency affects user experience. Further, related information residing in different sources is retrieved piece meal so that it requires the person102to manually connect the dots provide a mental picture of the overall situation.

Therefore, there is a need for improvements over the conventional approaches to organize, retrieve, present, and utilize information.

SUMMARY

The present teaching relates to methods, systems, and programming for associating data from different sources.

In one example, a method, implemented on at least one computing device each having at least one processor, storage, and a communication platform connected to a network for associating data from different sources to generate a person-centric space is presented. Information related to a person is received. First data is obtained from a first source private to the person based on the information. One or more types of cross-linking keys are identified from the first data. Second data is obtained from at least one second source based on the one or more types of cross-linking keys. The first data is associated with at least a portion of the second data based, at least in part, on the one or more types of cross-linking keys to generate cross-linked data. The person-centric space is generated based on the cross-linked data.

In a different example, a system for associating data from different sources to generate a person-centric space is presented. The system includes an access controller, a first fetcher, a cross-linking key determiner, a second fetcher, and an associating unit. The access controller is configured to receive information related to a person. The first fetcher is configured to obtain first data from a first source private to the person based on the information. The cross-linking key determiner is configured to identify one or more types of cross-linking keys from the first data. The second fetcher is configured to obtain second data from at least one second source based on the one or more types of cross-linking keys. The associating unit is configured to associate the first data with at least a portion of the second data based, at least in part, on the one or more types of cross-linking keys to generate cross-linked data, and generate the person-centric space based on the cross-linked data.

Other concepts relate to software for implementing the present teaching on associating data from different sources to generate a person-centric space. A software product, in accord with this concept, includes at least one non-transitory machine-readable medium and information carried by the medium. The information carried by the medium may be executable program code data, parameters in association with the executable program code, and/or information related to a user, a request, content, or information related to a social group, etc.

In one example, a non-transitory machine-readable medium having information recorded thereon for associating data from different sources to generate a person-centric space is presented. The recorded information, when read by the machine, causes the machine to perform a series of processes. Information related to a person is received. First data is obtained from a first source private to the person based on the information. One or more types of cross-linking keys are identified from the first data. Second data is obtained from at least one second source based on the one or more types of cross-linking keys. The first data is associated with at least a portion of the second data based, at least in part, on the one or more types of cross-linking keys to generate cross-linked data. The person-centric space is generated based on the cross-linked data.

DETAILED DESCRIPTION

The present teaching describes methods, systems, and programming aspects of efficiently and effectively organizing, retrieving, presenting, and utilizing information.

FIG. 2depicts a novel scheme of building a person-centric space200for a person102by cross-linking data from different spaces and applications thereof, according to an embodiment of the present teaching. Unlike the traditional approach to organize information in different spaces in a segregated and disorganized manner, as illustrated inFIG. 1,FIG. 2provides a person-centric INDEX system202, which builds the person-centric space200specific to the person102by digesting information from the public space108, semi-private space106, and private space104and cross-linking relevant data from those spaces104,106,108. As described herein, a person102referred herein may include a human being, a group of people, an organization such as a business department or a corporation, or any unit that can use the person-centric INDEX system202. A space, whether private, semi-private, or public, may be a collection of information in one or more sources. Through the person-centric INDEX system202, information relevant to the person102from each of the private, semi-private, and public spaces104,106, and108is projected, into the person-centric space200in a meaningful manner. That is, a part of the data in the person-centric space200is projected from the public space108in a manner relevant to the person102; a part of the data in the person-centric space200is projected from the semi-private space106in a manner relevant to the person102; a part of the data in the person-centric space200is projected from the private space104. Thus, the person-centric space200is an information universe meaningful to the person102and formed from the perspective of the person102.

Different from conventional approaches, which organize information in an application-centric, domain-centric, or interest-centric manner, the person-centric INDEX system202recognizes relevant information from the enormous information available in the public space108, semi-private space106, and private space104in accordance with the perspective of the person102, thereby filtering out information that is not relevant to the person102, assisting the person102to make sense out of the relevance among different pieces of information in the person-centric space. The person-centric space200is dynamic and changes with the online (possibly offline) activities of the person102. For example, the person102can search more content via the person-centric INDEX system202(this function may be similar to conventional search engine) that will lead to the continuously expansion of the person-centric space200. The person-centric INDEX system202can cross-link data across information different spaces, or information from different sources in the same space. For instance, by identifying a FedEx tracking number in an order confirmation email sent to a personal email account from www.Amazon.com, the person-centric INDEX system202can automatically search for any information in any space that is relevant to the tracking number, such as package delivery status information from www.FedEx.com in the public space108. Although most information from www.FedEx.com may not be related to the person102, the particular package delivery status information relevant to the person102and can be retrieved by the person-centric INDEX system202and indexed against the information from the person102's private emails. In other words, the package delivery status information, even though from the public space108, can be projected into the person-centric space200and, together with other information in the person-centric space200(such as a confirmation email related to the package), the person-centric INDEX system202integrates relevant information from different sources to yield unified and semantically meaningful information, such as a card related to an order incorporating the name of the ordered item, the name of the person who ordered it, the name of the company that is to deliver the item, as well as the current delivery status.

In another example, when a private email reminding of an upcoming soccer game from a coach is received, the person-centric INDEX system202may be triggered to process the private email and identify, based on the content of the email, certain information in the sports domain such as date/time, location, and players and coaches of the soccer game and cross link the email with such information. The person-centric INDEX system202may also retrieve additional relevant information from other data sources, such as phone number of the coach from Contacts of the person102. The person-centric INDEX system202may also retrieve map and directions to the soccer game stadium from Google Maps based on the location information and retrieve weather forecast of the game from www.Weather.com based on the date. If the coach is connected with the person102in any social media, then the person-centric INDEX system202may go to the social media site in the semi-private space106to retrieve any content made by the coach that is relevant to the soccer game. In this example, all those different pieces of information from the public space108, semi-private space106, and private space104are cross-linked and projected to the person-centric space200in accordance with the person102's perspective on the soccer game.

The person-centric INDEX system202may build the initial person-centric space200when the person102first time accesses the person-centric INDEX system202. By analyzing all the information in the private space104which the person102has granted access permission, the person-centric INDEX system202can identify, retrieve, and link relevant information from the public space108, semi-private space106, and private space104and project them into the person-centric space200. As mentioned above, the person-centric INDEX system202also maintains and updates the person-centric space200in a continuous or dynamic manner. In one example, the person-centric INDEX system202may automatically check any change, either in the private space104or otherwise, based on a schedule and initiates the update of the person-centric space200when necessary. For example, every two hours, the person-centric INDEX system202may automatically check any new email that has not been analyzed before. In another example, the person-centric INDEX system202may automatically check any change occurring in the public space108and the semi-private space106that is relevant to the person102. For instance, in the soccer game example descried above, every day before the scheduled soccer game, the person-centric INDEX system202may automatically check www.Weather.com to see if the weather forecast needs to be updated. The person-centric INDEX system202may also update the person-centric space200responsive to some triggering event that may affect any data in the person-centric space200. For example, in the FedEx package example described above, once the scheduled delivery date has passed or a package delivery email has been received, the person-centric INDEX system202may update the person-centric space200to remove the temporary relationship between the person102and www.FedEx.com until a new connection between them is established again in the future. The triggering event is not limited to events happening in the public space108, semi-private space106, or private space104, but can include any internal operation of the person-centric INDEX system202. As an example, every time the person-centric INDEX system202performs a search in response to a query or to answer a question, it may also trigger the person-centric INDEX system202to update the person-centric space200based on, e.g., newly retrieved information related to, e.g., a search result or some answers. When the search result or answers cannot be found in the person-centric space200, the person-centric INDEX system202may also update the person-centric space200to include those search results and answers. That is, the person-centric INDEX system202may dynamically update the person-centric space200in response to any suitable triggering events.

To better understand information in the person-centric space200and make it meaningful, the person-centric INDEX system202may further build a person-centric knowledge database including person-centric knowledge by extracting and associating data about the person102from the person-centric space200. The person-centric INDEX system202can extract entities related to the person102and infer relationships between the entities without the person102's explicit declaration. A person-centric knowledge representation for the person102can be created by person-centric INDEX system202the based on the entities and relationships. The inference can be based on any information in the person-centric space200. The knowledge elements that can be inferred or deduced may include the person102's social contacts, the person102's relationships with places, events, etc.

In order to construct the person-centric knowledge representation, the person-centric INDEX system202may extract entities from content in the person102's person-centric space200. These entities can be places like restaurants or places of interest, contact mentions like names, emails, phone numbers or addresses, and events with date, place and persons involved. In addition to extracting these mentions, the person-centric INDEX system202can resolve them to what they refer to (i.e. can disambiguate an extracted entity when it may refer to multiple individuals). For example, a word “King” in a private email may refer to a title of a person who is the King of a country or refer to a person's last name. The person-centric INDEX system202may utilize any information in the person-centric space200to determine what type of entity the word “King” refers to in the email. In addition to determining an entity type for an extracted entity name, the person-centric INDEX system202may also determine a specific individual referred to by this entity name. As one instance, a person's first name may refer to different Contacts, and a same restaurant name can refer to several restaurants. The person-centric INDEX system202can make use of contextual information and/or textual metadata associated with the entity name in the email to disambiguate such cases, thereby providing a high precision resolution. With the precise disambiguation, the person-centric INDEX system202can find right information from unstructured personal data and provide it in a structured way (e.g. in a graph associated with the person102). In contrast to a conventional personal profile, the person-centric INDEX system202generates a single personal graph for an individual to encompass connections, interests, and events associated with the person102. It can be understood that a person-centric knowledge may also be represented in a format other than a graph.

The person-centric INDEX system202, in conjunction with the person-centric space200, may organize related information from different sources and provide the information to a person102in a user-friendly, unified presentation style. In addition to providing requested information in any known format, such as hyperlinks on a search results page, the person-centric INDEX system202may present information in intent-based cards. Unlike existing entity-based search results cards organizing results based on an entity, the person-centric INDEX system202may focus on a person102's intent to dynamically build a card for the person102. The intent may be explicitly specified in the query, or estimated based on the context, trending events, or any knowledge derived from the person-centric space200. Knowing the person102's intent when the card is created to answer the query, the person-centric INDEX system202can provide relevant information on the card. The relevant information may include partial information associated with the entity in the query, and/or additional information from the person-centric space200that is related to the person's intent. In the soccer game example descried above, in response to the person's query or question related to the soccer game, the person-centric INDEX system202may estimate the person's intent is to know the date/time of the game and thus, build a card that includes not only the direct answer of the date/time but also other information related to the soccer game in the person-centric space200, such as the map and directions, weather forecast, and contact information of the coach.

In one embodiment, knowing the current intent of the person102, the person-centric INDEX system202can anticipate the next intent of the person102, such that the current card provided by the person-centric INDEX system202can lead to next steps. For example, the person-centric INDEX system202can anticipate that after looking at the show times of a new movie, the person102will be likely to buy tickets. In another embodiment, focusing on the person102's intent, the person-centric INDEX system202can answer the person102with a card even when there is no entity in the query or request (i.e., in a query-less or anticipatory use case). For example, if the person-centric INDEX system202determines that the person102has a behavior pattern of searching traffic information from work place to home at 5 pm on workdays, then from now on, the person-centric INDEX system202may automatically generate and provide a notice card to the person102at around 5 pm on every workday, to notify the person102about the traffic information regardless whether a query is received from the person102.

The person-centric INDEX system202can be used for both building the person-centric space200for a person102and facilitating the person102to apply the person-centric space200in a variety for applications. Instead of using different means110,112,114shown inFIG. 1to access different data sources across different spaces, the person-centric INDEX system202can serve as a centralized interface between the person102and her/his own person-centric space200, thereby reducing the time and efforts spent by the person102on retrieving desired information or any other applications. As different pieces of relevant information from the public space108, semi-private space106, and private space104have been projected to the person-centric space200in a well-organized way, they can be handled by a single person-centric INDEX system202, thereby improving the efficiency and effectiveness in finding the desired information. For example, in the FedEx package example described above, any time the person wants to know the current status of the package, she/he no longer needs to dig out the email with the tracking number, write down the tracking number, and open www.FedEx.com in a browser and type in the tracking number. The person-centric INDEX system202may have already stored the package delivery status information since the time when the initial order email was received and have kept updating the package delivery status information in the person-centric space200. So any time when the person102inputs a request for package delivery status update, either in the form of a search query or a question n, the person-centric INDEX system202can go directly to retrieve the updated package delivery status information from the person-centric space200or automatically call the tracking application programming interface (API) of FedEx server with the stored tracking number for the current status update. The result is then provided to the person102without any additional efforts made by the person102. In some embodiments, the person102may not even need to explicitly request the status update. Responsive to receiving the order confirmation email, the person-centric INDEX system202may automatically set up a task to regularly send the status update to the person102until the package is delivered or may dynamically notify the person102with any event, like if the package is delayed or lost.

In one aspect of the present teaching, the person-centric INDEX system202, in conjunction with the person-centric space200, can be used for answering questions. To achieve this, the person-centric INDEX system202may classify a question from a person102into a personal question or a non-personal question. In some embodiment, data from the person-centric space200may be for classification. For example, a question related to “uncle Sam” may be classified as a personal question if “uncle Sam” is a real person identified from the private Contacts. Once the question is classified as personal, the person-centric INDEX system202may extract various features including entities and relationships from the question. The extracted entities and relationships may be used by the person-centric INDEX system202to traverse a person-centric knowledge database derived from the person-centric space200. In some embodiments, the person-centric knowledge database may store data in a triple format including one or more entities and relationships between the one or more entities. When an exact match of relationship and entity are found, an answer is returned. When there is no exact match, a similarity between the question and answer triples is taken into consideration and used to find the candidate answers. In the “uncle Sam” example described above, if the question is “where is uncle Sam,” the person-centric INDEX system202may search the person-centric knowledge database for any location entity that has a valid relationship with the entity “uncle Sam.” In one example, a recent email may be sent by “uncle Sam,” and the email may also mention that he will be attending a conference on these days. The location of the conference can be retrieved from the conference website in the public space108, stored in the person-centric space200, and associated with entity “uncle Sam.” Based on the relationship, the person-centric INDEX system202can answer the question with the location of the conference. The person-centric INDEX system202thus provides an efficient solution to search for answers to personal questions and increases user engagement and content understanding.

In another aspect of the present teaching, the person-centric INDEX system202, in conjunction with the person-centric space200, can be used for task completion. Task completion often involves interactions with different data sources across different spaces. A task such as “making mother's day dinner reservation” involves task actions such as identifying who is my mother, checking what date is mother's day this year, finding out a mutually available time slot on mother's day for my mother and me, picking up a restaurant that my mother and I like, making an online reservation on the restaurant's website, etc. Traditionally, in order to complete each task action, a person102has to open a number of applications to access information from different sources across different spaces and perform a series of tedious operations, such as searching for “mother's day 2015” in a search engine, checking my own calendar and mother's shared calendar, digging out past emails about the restaurant reservations for dinners with my mother, making online reservation via a browser, etc. In contrast to the traditional approaches for task completion, the person-centric INDEX system202can complete the same task more efficiently and effectively because all pieces of information related to mother's day dinner reservation have already been projected to the person-centric space200. This makes automatic task generation and completion using the person-centric INDEX system202possible. In response to receiving an input of “making mother's day dinner reservation” from a person102, the person-centric INDEX system202can automatically generate the list of task actions as mentioned above and execute each of them based on information from the person-centric space200and update the person102with the current status of completing the task.

With the dynamic and rich information related to the person102that is available in the person-centric space200, the person-centric INDEX system202can even automatically generate a task without any input from the person102. In one embodiment, anytime a card is generated and provided to the person102, the information on the card may be analyzed by the person-centric INDEX system202to determine whether a task needs to be generated as a follow-up of the card. For example, once an email card summarizing an online order is constructed, the person-centric INDEX system202may generate a task to track the package delivery status until it is delivered and notify any status update for the person102. In another embodiment, any event occurring in the public space108, semi-private space106, or private space104that is relevant to the person102may trigger the task completion as well. For instance, a flight delay message on an airline website in the public space108may trigger generation of a task for changing hotel, rental car, and restaurant reservations in the same trip. In still another embodiment, the person102's past behavior patterns may help the person-centric INDEX system202to anticipate her/his intent in the similar context and automatically generate a task accordingly. As an instance, if the person102always had a dinner with her/his mother on mother's day at the same restaurant, a task may be generated by the person-centric INDEX system202this year, in advance, to make the mother's day dinner reservation at the same restaurant.

It is understood that in some occasions, certain task actions may not be completed solely based on information from the person-centric space200. For example, in order to complete the task “sending flowers to mom on mother's day,” flower shops need to be reached out to. In one embodiment of the present teaching, a task exchange platform may be created to facilitate the completion of tasks. The person-centric INDEX system202may send certain tasks or task actions to the task exchange platform so that parties interested in completing the task may make bids on it. The task exchange platform alone, or in conjunction with the person-centric INDEX system202, may select the winning bid and update the person102with the current status of task completion. Monetization of task completion may be achieved by charging service fee to the winning party and/or the person102who requests the task.

In still another aspect of the present teaching, the person-centric INDEX system202, in conjunction with the person-centric space200, can be used for query suggestions. By processing and analyzing data from the person-centric space200, the person-centric INDEX system202may build a user corpus database, which provides suggestions based on information from the private space104and/or semi-private space106. In response to any input from a person102, the person-centric INDEX system202may process the input and provide suggestions to the person102at runtime based on the person102's relevant private and/or semi-private data from the user corpus database as well other general log-based query suggestion database and search history database. The query suggestions may be provided to the person102with very low latency (e.g., less than 10 ms) in response to the person102's initial input. Further, in some embodiments, before presenting to the person102, suggestions generated using the person102's private and/or semi-private data from the user corpus database may be blended with suggestions produced based on general log-based query suggestion database and search history database. Such blended suggestions may be filtered and ranked based on various factors, such as type of content suggested (e.g., email, social media information, etc.), estimated intent based on an immediate previous input from the person102, context (e.g., location, data/time, etc.) related to the person102, and/or other factors.

FIG. 3illustrates exemplary types of data sources in a private space. The private space of a person may include any data source that is private to the person. For example, the private space may include any data source that requires access information of the person (e.g., password, token, biometric information, or any user credentials). The private space may also include any data source that is intended to be accessed only by the person even without requiring access control, such as data on a person's smart phone that does not require password or finger print verification. In this illustration, the private space includes several categories of data sources such as emails, Contacts, calendars, instant messaging, photos, usage records, bookmarks, etc. Emails include emails stored in remote email servers such as Yahoo! Mail, Gmail, Hotmail, etc. and local emails in an email application on a personal computer or mobile device. Instant messaging includes any messages communicated between the person102and others via any instant messaging applications, for example, Yahoo! Messenger, WhatsApp, Snapchat, to name a few. Usage records may be any logs private to the person, such as, but not limited to, browsing history and call records. It is understood that the examples described above are for illustrative purpose and are not intended to be limiting.

FIG. 4illustrates exemplary types of data sources in a semi-private space. The semi-private space of a person may include any data source that is accessible for a group of people designated by the person. One example of data sources in the semi-private space is social media, such as Tumblr, Facebook, Twitter, LinkedIn, etc. A person can designate a group of people who can access her/his information shared in the social media sites, such as status updates, posts, photos, and comments. Another example of data sources in the semi-private space is a content sharing site. For instance, a person can share photos with family and friends at Flickr, share work documents with colleagues or classmates at Google Docs, and share any files at Dropbox. It is understood that in some cases, there is not a clear boundary between a data source in the private space and a data source in the semi-private space. For instance, if a person restricts photos at Flickr to be only accessible by her/himself, then Flickr becomes a private source of the person, just like local photos stored on the person's device. Similarly, when the entire or a portion of a calendar is shared with others, the calendar becomes part of the semi-private space. It is understood that the examples described above are for illustrative purpose and are not intended to be limiting.

FIG. 5depicts an exemplary system diagram of the person-centric INDEX system202, according to an embodiment of the present teaching. The person-centric INDEX system202includes a user interface502that connects a person102with multiple front-end components including a suggestion engine504, a query interface506, a Q/A interface508, a task interface510, and a contextual information identifier512coupled with a user database514. To support the front-end components, the person-centric INDEX system202further includes multiple functional components including a search engine516, a Q/A engine518, a task generation engine520, a task completion engine522, an intent engine524, a person-centric knowledge retriever526, and a dynamic card builder528. In the back-end, the person-centric INDEX system202includes a variety of databases for storing information in different forms for different purposes, such as the person-centric space200having a public database544, a semi-private database546, and a private database548. The person-centric space200in this embodiment is built up by a cross-linking engine542. The person-centric INDEX system202further includes a knowledge engine530for building a person-centric knowledge database532by processing and analyzing information in the person-centric space200. In addition, additional types of analytic results from the knowledge engine530based on data from the person-centric space200and/or any other suitable data sources may be stored in an intent database534, a card module database536, and a task template database538.

A person102may interact with the person-centric INDEX system202via the user interface502by providing an input. The input may be made by, for example, typing in a query, question, or task request, or clicking or touching any user interface element in the user interface502to enter a query, question, or task request. With each input from the person102, the suggestion engine504provides a list of suggestions to facilitate the person102to complete the entire input. In this embodiment, the suggestion engine504may provide suggestions based on the person's private and/or semi-private information retrieved by the person-centric knowledge retriever526from the person-centric space200and/or the person-centric knowledge database532. Those suggestions include, for example, a contact name from the private Contacts, part of a tweet from Twitter, or a package tracking status stored in the person-centric space200. In some embodiments, the suggestion engine504may blend those suggestions based on the person102's private and/or semi-private information with the conventional suggestions based on popular query logs and search history. In this embodiment, the intent engine524may provide an estimated intent associated with each input to help filtering and/or ranking the suggestions provided to the person102.

Each of the query interface506, Q/A interface508, and task interface510is configured to receive a particular type of user inputs and forward them to the respective engine for handling. Once the results are returned from the respective engine and/or from the dynamic card builder528, each of the query interface506, Q/A interface508, and task interface510forwards the results to the user interface502for presentation. In one embodiment, the user interface502may first determine the specific type of each input and then dispatch it to the corresponding interface. For example, the user interface502may identify that an input is a question based on semantic analysis or keyword matching (e.g., looking for keywords like “why” “when” “who,” etc. and/or a question mark). The identified question is then dispatched to the Q/A interface508. Similarly, the user interface502may determine, based on semantic analysis and/or machine learning algorithms, that an input is a task request and forward the input to the task interface510. For any input that cannot be classified or does not fall within the categories of question and task request, the user interface502may forward it to the query interface506for general query search. It is understood that, in some embodiments, the user interface502may not classify an input first, but instead, forward the same input to each of the query interface506, Q/A interface508, and task interface510to have their respective engines to process the input in parallel.

Another function of the user interface502involves presenting information to the person102either as responses to the inputs, such as search results, answers, and task status, or as spontaneous notices, reminders, and updates in response to any triggering events. In this embodiment, the information to be presented to the person102via the user interface502may be presented in the form of cards that are dynamically built on-the-fly by the dynamic card builder528based on the intent estimated by the intent engine524. The cards may be of different types, such as an email card summarizing one or more related emails, a search results card summarizing information relevant to one or more search results, an answer card including an answer to a question with additional information associated with the answer, or a notice card that is automatically generated to notify the person102of any event of interest. Based on its type, a card may be dispatched to one of the query interface506, Q/A interface508, and task interface510and eventually presented to the person102via the user interface502. In addition to cards, information in any other format or presentation styles, such as search results in a research results page with “blue links” or answers in plain text, may be provided by the search engine516and the Q/A engine518directly to the query interface506and Q/A interface508, respectively. It is understood that the user interface502may also provide information in a hybrid matter, meaning that some information may be presented as cards, while other information may be presented in its native format or style.

As the user interface502receives an input from the person102, it also triggers the contextual information identifier512to collect any contextual information related to the person102and the input of the person102. The contextual information identifier512in this embodiment receives user-related information from the user database514, such as the person102's demographic information and declared and inferred interests and preferences. Another source of contextual information is the person102's device including, for example, date/time obtained from the timer of the person102's device, location obtained from a global positioning system (GPS) of the person102's device, and information related to the person102's device itself (e.g., the device type, brand, and specification). Further, the contextual information identifier512may also receive contextual information from the user interface502, such as one or more inputs immediately before the current input (i.e., user-session information). Various components in the person-centric INDEX system202, including the cross-linking engine542, knowledge engine530, and intent engine524, may take advantage of the contextual information identified by the contextual information identifier512.

The intent engine524in this embodiment has two major functions: creating and updating the intent database534and estimating an intent based on the information stored in the intent database534. The intent database534may store a personal intent space which includes all the intents that make sense to the person102in the form of an action plus a domain. For example, based on the person102's search history, the intent engine524may identify that the person102has repeatedly entered different queries all related to the same intent “making restaurant reservations.” This intent then may be stored as a data point in the person's personal intent space in the intent database534in the form of {action=making reservations; domain=restaurant}. More and more data points will be filled into the personal intent space as the person102continues interacting with the person-centric INDEX system202. In some embodiments, the intent engine524may also update the personal intent space in the intent database534by adding new intents based on existing intents. For instance, the intent engine524may determine that hotel is a domain that is close to the restaurant domain and thus, a new intent “making hotel reservations” (in the form of {action=making reservations; domain=hotel}) likely makes sense to the person102as well. The new intent “making hotel reservations,” which is not determined from user data directly, may be added to the personal intent space in the intent database534by the intent engine524. In some embodiments, the intent database534include a common intent space for the general population. Some intents that are not in the personal intent space may exist in the common intent space. If they are popular among the general population or among people similar to the person102, then the intent engine524may consider those intents as candidates as well in intent estimation.

In estimating intent of the person102, the intent engine524receives the input from the user interface502or any information retrieved by the person-centric knowledge retriever526and tries to identify any action and/or domain from the input that is also in the intent spaces in the intent database534. If both action and domain can be identified from the input, then an intent can be derived directly from the intent space. Otherwise, the intent engine524may need to take the contextual information from the contextual information identifier512to filter and/or rank the intent candidates identified from the intent space based on the action or domain. In one example, if the input involves only the action “making reservations” without specifying the domain, the intent engine524may first identify a list of possible domains that can be combined with such action according to the personal intent space, such as “hotel” and “restaurant.” By further identifying that the location where the input is made is at a hotel, the intent engine524may estimate that the person102likely intends to make restaurant reservations as he is already in the hotel. It is understood that in some cases, neither action nor domain can be identified from the input or the identified action or domain does not exist in the intent space, the intent engine524may estimate the intent purely based on the available contextual information. Various components in the person-centric INDEX system202, including the search engine516, the suggestion engine504, the dynamic card builder528, and the person-centric knowledge retriever526, may take advantage of the intent estimated by the intent engine524.

The search engine516in this embodiment receives a search query from the query interface506and performs a general web search or a vertical search in the public space108. Intent estimated by the intent engine524for the search query may be provided to the search engine516for purposes such as query disambiguation and search results filtering and ranking In some embodiments, some or all of the search results may be returned to the query interface506in their native format (e.g., hyperlinks) so that they can be presented to the person102on a conventional search results page. In this embodiment, some or all of the search results are fed into the dynamic card builder528for building a dynamic search results card based on the estimated intent. For instance, if the intent of the query “make reservation” is estimated as “making restaurant reservations,” then the top search result of a local restaurant may be provided to the dynamic card builder528for building a search results card with the name, directions, menu, phone number, and reviews of the restaurant.

The Q/A engine518in this embodiment receives a question from the Q/A interface508and classifies the question into either a personal or non-personal question. The classification may be done based on a model such as a machine learning algorithm. In this embodiment, the Q/A engine518may check the person-centric knowledge database532and/or the private database548and semi-private database546in the person-centric space200via the person-centric knowledge retriever526to see if the question is related to any private, semi-private data, or personal knowledge of the person102. For instance, the question “who is Taylor Swift” is normally classified as a non-personal question. But in the case if “Taylor Swift” is in the person102's Contacts or social media friend list, or if “Taylor Swift” has sent emails to the person102, the Q/A engine518then may classify the question as a personal question. For non-personal questions, any known approaches may be used to obtain the answers.

Once the question is classified as personal, various features including entities and relationships are extracted by the Q/A engine518from the question using, for example, a machine learned sequence tagger. The extracted entities and relationships are used to traverse, by the person-centric knowledge retriever526, the person-centric knowledge database532, which stores person-centric relationships stored in a pre-defined form. In some embodiments, the person-centric relationships may be stored in a triple format including one or more entities and a relationship therebetween. When the Q/A engine518finds an exact match of relationship and entity, it returns an answer. When there is no exact match, the Q/A engine518takes into consideration a similarity between the question and answer triples and uses the similarity to find the candidate answers. To measure the similarity, words embedded over a large corpus of user texts may be collected and trained by the Q/A engine518. The well-organized, person-centric information stored in the person-centric space200and the person-centric knowledge database532makes it possible for the Q/A engine518to answer a personal question in a synthetic manner without the need of fully understanding the question itself. The answers generated by the Q/A engine518may be provided to the dynamic card builder528for building answer cards.

The task generation engine520and the task completion engine522work together in this embodiment to achieve automatic task generation and completion functions of the person-centric INDEX system202. The task generation engine520may automatically generate a task in response to a variety of triggers, including for example, a task request from the person120received via the task interface510, an answer generated by the Q/A engine518, a card constructed by the dynamic card builder528, or an event or behavior pattern related to the person102from the person-centric space200and/or the person-centric knowledge database532. Intent may have also been taken into account in some embodiments in task generation. The task generation engine520in this embodiment also divides each task into a series of task actions, each of which can be scheduled for execution by the task completion engine522. The task template database538stores templates of tasks in response to different triggers. The task generation engine520may also access the task template database538to retrieve relevant templates in task generation and update the templates as needed. In some embodiments, the task generation engine520may call the dynamic card builder528to build a card related to one or more tasks so that the person102can check and modify the automatically generated task as desired.

The tasks and task actions are stored into task lists540by the task generation engine520. Each task may be associated with parameters, such as conditions in which the task is to be executed and completed. Each individual task action of a task may also be associated with execution and completion conditions. The task completion engine522fetches each task from the task lists540and executes it according to the parameter associated therewith. For a task, the task completion engine522dispatches each of its task actions to an appropriate executor to execute it, either internally through the person-centric knowledge retriever526or externally in the public space108, semi-private space106, or private space104. In one example, task actions such as “finding available time on Tuesday for lunch with mom” can be completed by retrieving calendar information from the private database548in the person-centric space200. In another example, task actions like “ordering flowers from Aunt Mary's flower shop” can only be completed by reaching out to the flower shop in the public space108. The task completion engine522may also schedule the execution of each task action by putting it into a queue. Once certain conditions associated with a task action are met, the assigned executor will start to execute it and report the status. The task completion engine522may update the task lists540based on the status of each task or task action, for example, by removing completed tasks from the task lists540. The task completion engine522may also provide the status updates to the person-centric knowledge retriever526such that the status updates of any ongoing task become available for any component in the person-centric INDEX system202as needed. For instance, the dynamic card builder528may build a notice card notifying the person that your task request “sending flowers to mom on Mother's day” has been completed.

As a component that supports intent-based dynamic card construction for various front-end components, the dynamic card builder528receives requests from the search engine516, the Q/A engine518, the task generation engine520, or the person-centric knowledge retriever526. In response, the dynamic card builder528asks for the estimated intent associated with the request from the intent engine524. Based on the request and the estimated intent, the dynamic card builder528can create a card on-the-fly by selecting suitable card layout and/or modules from the card module database536. The selection of modules and layouts is not predetermined, but may depend on the request, the intent, the context, and information from the person-centric space200and the person-centric knowledge database532. Even for the same query repeatedly received from the same person102, completely different cards may be built by the dynamic card builder528based on the different estimated intents in different contexts. A card may be created by populating information, such as search results, answers, status updates, or any person-centric information, into the dynamically selected and organized modules. The filling of information into the modules on a card may be done in a centralized manner by the dynamic card builder528regardless of the type of the card or may be done at each component where the request is sent. For example, the Q/A engine518may receive an answer card construction with dynamically selected and organized modules on it and fill in direct and indirect answers into those modules by itself.

In one embodiment, the person-centric knowledge retriever526can search the person-centric space200and the person-centric knowledge database532for relevant information in response to a search request from the intent engine524, the query interface, the Q/A engine518, the suggestion engine504, the dynamic card builder528, or the task generation engine520. The person-centric knowledge retriever526may identify one or more entities from the search request and search for the matched entities in the person-centric knowledge database532. As entities stored in the person-centric knowledge database532are connected by relationships, additional entities and relationships associated with the matched entities can be returned as part of the retrieved information as well. As for searching in the person-centric space200, in one embodiment, the person-centric knowledge retriever526may first look for private data in the private database548matching the entities in the search request. As data in the person-centric space200are cross-linked by cross-linking keys, the entities and/or the cross-linking keys associated with the relevant private data may be used for retrieving additional information from the semi-private database546and the public database544. For instance, to handle a search request related to “amazon package,” the person-centric knowledge retriever526may first look for information in the private database548that is relevant to “amazon package.” If an order confirmation email is found in the private database548, the person-centric knowledge retriever526may further identify that the order confirmation email is associated with a cross-linking key “tracking number” in the package shipping domain. Based on the tracking number, the person-centric knowledge retriever526then can search for any information that is also associated with the same tracking number in the person-centric space200, such as the package delivery status information from www.FedEx.com in the public database544. As a result, the person-centric knowledge retriever526may return both the order confirmation email and the package delivery status information as a response to the search request.

In some embodiments, the person-centric knowledge retriever526may retrieve relevant information from multiple data sources in parallel and then blend and rank all the retrieved information as a response to the search request. It is understood that information retrieved from each source may be associated with features that are unique for the specific source, such as the feature “the number of recipients that are cc′d” in the email source. In order to be able to blend and rank results from different sources, the person-centric knowledge retriever526may normalize the features of each result and map them into the same scale for comparison.

The cross-linking engine542in this embodiment associates information relevant to the person102from the private space104, the semi-private space106, and the public space108by cross-linking data based on cross-linking keys. The cross-linking engine542may first process all information in the private space104and identify cross-linking keys from the private space104. For each piece of content in the private space104, the cross-linking engine542may identify entities and determine the domain to which the content belongs. Based on the domain, one or more entities may be selected as cross-linking keys for this piece of content. In one example, tracking number may be a cross-linking key in the package shipping domain. In another example, flight number, departure city, and departure date may be cross-linking keys in the flight domain. Once one or more cross-linking keys are identified for each piece of information in the private space104, the cross-linking engine542then goes to the semi-private space106and the public space108to fetch information related to the cross-linking keys. For example, the tracking number may be used to retrieve package delivery status information from www.FedEx.com in the public space108, and the flight number, departure city, and departure date may be used to retrieve flight status from www.UA.com in the public space108. Information retrieved by the cross-linking engine542from the private space104, semi-private space106, and public space108may be stored in the private database548, semi-private database546, and public database544in the person-centric space200, respectively. As each piece of information in the person-centric space200is associated with one or more cross-linking keys, they are cross-linked with other information associated with the same cross-linking keys, regardless which space it comes from. Moreover, as the cross-linking keys are identified based on the person's private data (e.g., emails), all the cross-linked information in the person-centric space200are relevant to the person102.

Although only one database is shown inFIG. 5for information from the private space104, the semi-private space106, or the public space108, it is understood that information within a particular space may be organized and stored in different databases in the person-centric space200. For instance, private data from emails, Contacts, calendars, and photos may be stored in separate databases within the private database548; semi-private data from Facebook, Twitter, LinkedIn, etc. may be stored in separate databases within the semi-private database546as well. Such arrangement may enable applying different feature extraction models to different data sources, which may be helpful for the suggestion engine504and the person-centric knowledge retriever526. As mentioned above, the cross-linking engine542continuously and dynamically maintains and updates the person-centric space200on a regular basis and/or in response to any triggering event. For example, any internal operation, such as query search, question answering, or task completion, may trigger the cross-linking engine542to update the affected data or add missing data in the person-centric space200.

The knowledge engine530in this embodiment processes and analyzes the information in the person-centric space200to derive analytic results in order to better understand the person-centric space200. In one embodiment, the knowledge engine530extracts entities from content in the person-centric space200and resolves them to what they refer to (i.e., can disambiguate an extracted entity when it may refer to multiple individuals). In addition to determining an entity type for an extracted entity name, the knowledge engine530may also determine a specific individual referred to by this entity name. The knowledge engine530can make use of contextual information and/or textual metadata associated with the entity name in the email to disambiguate such cases, providing a high precision resolution.

The knowledge engine530also builds a person-centric knowledge representation for a person102by extracting and associating data about the person102from personal data sources. The person-centric knowledge representation for the person102is stored in the person-centric knowledge database532. The knowledge engine530can extract entities related to the person102and infer relationships between the entities without the person102's explicit declaration, and create, for example, a person-centric knowledge graph for the person102based on the entities and relationships. The knowledge elements that can be inferred or deduced may include, for example, the person102's social contacts, and the person102's relationships with places, events, or other users.

FIG. 6is a flowchart of an exemplary process for building a person-centric space, according to an embodiment of the present teaching. Starting at602, data from the private space104is obtained. The data includes any content that is private to a person, such as emails, Contacts, calendar events, photos, bookmarks, instant messages, usage records, and so on. Contextual information is obtained at604. The contextual information includes, but is not limited to, user information such as demographic information and interests and preferences, locale information, temporal information, device information, and user-session information (e.g., other user inputs in the same or adjacent user-sessions). At606, information from the private space data is extracted. The information may be cross-linking keys determined from entities extracted from the private space data based on the domain of the private space data and/or the obtained contextual information. Person-centric data is then retrieved from the semi-private space at608. Similarly, person-centric data is retrieved from the public space at610. In this embodiment, the person-centric data is retrieved based on the cross-linking keys. At612, all pieces of person-centric data retrieved from the private space, semi-private space, and public space are cross-linked together to generate a person-centric space. In this embodiment, the cross-linking is done based on the same cross-linking keys associated with these pieces of person-centric data. At614, analytic data is derived from the person-centric space. For example, entities may be extracted from the person-centric space and are disambiguated by the knowledge engine530to ascertain their extract meanings Relationships between the entities may be inferred based on information from the person-centric space by the knowledge engine530as well. Based on the entities and relationships, person-centric knowledge can be derived and stored in the person-centric knowledge database532.

FIG. 7is a flowchart of an exemplary process for applying a person-centric space for digital personal assistance, according to an embodiment of the present teaching. Starting at702, an input from a person is received. As the person enters the input, a preliminary intent is estimated and continuously updated at704. The estimation may be based on the current input and any contextual information currently available. At706, one or more suggestions are generated based on the current input and the estimated intent and provided to the person to assist completing the current input. A response to the suggestions is received from the person at708. The response may be a selection of one suggestion or ignoring the suggestions and finishing the input as the person desires. Once the completed input is received, either as a selection of a suggestion or a fully-entered input, at710, the intent is estimated again for the completed input. The intent may be estimated based on the completed input and the currently available contextual information. In some embodiments, if no input is received (e.g., when the person just logs into and has not entered anything yet), the intent may be estimated based on the contextual information alone. At712, person-centric knowledge is retrieved based on the input. In some embodiments, the estimated intent may be used for retrieving the person-centric knowledge as well. As described above in detail, the input may be a question, a task request, or a query. In any event, entities and/or relationships may be derived from the input and are used for retrieving relevant person-centric knowledge from the person-centric knowledge database532. In some embodiments, additional information may be retrieved from the person-centric space. Intent-based cards are built at714. Each card may be constructed based on a layout and one or more modules that are selected based on the type of the card and the estimated intent. Content in each module may be filled in based on the person-centric knowledge and any additional information retrieved at712. Optionally or additionally, at718, the construction of a card may cause a task to be generated based on the estimated intent. For instance, an email card summarizing an online order confirmation email may trigger the generation of a task for automatically tracking the package delivery status. At720, the task is executed. Nevertheless, at716, the intent-based cards, either an email card, an answer card, a search results card, or a notice card, are provided to the person as a response to the input.

FIG. 8depicts an exemplary scheme of building a person-centric space for each individual person via the person-centric INDEX system and applications thereof, according to an embodiment of the present teaching. In this embodiment, each person102-1, . . .102-n may access its own person-centric INDEX system202-1, . . .202-n, respectively. The person-centric INDEX system202may be a stand-alone system installed on each person102-1, . . .102-n's device, a cloud-based system shared by different persons102-1, . . .102-n, or a hybrid system in which some components are installed on each person102-1, . . .102-n's device and some components are in the cloud and shared by different persons102-1, . . .102-n.

In this embodiment, individual person-centric spaces200-1, . . .200-n are generated for each person102-1, . . .102-n via its own person-centric INDEX system202-1, . . .202-n, respectively For example, person-centric space1200-1includes the projections from different spaces related to person1102-1from the perspectives of person1102-1(e.g., the entire private space1104-1, parts of the semi-private spaces1-k106-1, . . .106-k that are relevant to person1102-1, and a slice of the public space108that is relevant to person1102-1). Each person102-1, . . .102-n then uses its own person-centric INDEX system202-1, . . .202-n to access its own person-centric space200-1, . . .200-n, respectively. Based on inputs from a person to its person-centric INDEX system, outputs are returned based on information from the person-centric space in any forms and styles, including, for example, any conventional outputs such as search result pages with “blue links,” and any types of intent-based cards such as search results cards, answer cards, email cars, notice cards, and so on.

FIG. 9depicts an exemplary scheme in which a variety of dynamic cards are built and provided to a person based on different intents estimated for the same query in different contexts, according to an embodiment of the present teaching. Conventionally, a static card that has been pre-constructed for certain popular entities may be presented to a person when the query from the person happens to include one of those popular entities. In contrast, intent-based cards according to the present teaching can be dynamically generated on-the-fly by the person-centric INDEX system202responsive to a query902from the person102. In this example, the person102inputs the same query902“super bowl” at different times. When the query902is entered three weeks before the super bowl game, its temporal context904will likely cause the intent906to be estimated as “buying super bowl tickets.” Based on such intent, a card908is dynamically generated for buying super bowl tickets, including information such as super bowl ticket prices, tips on how to purchase, purchase website, etc. In some embodiments, the generation of this card908would cause a task of purchasing super bowl tickets to be automatically generated and completed. As time passes, when the temporal context910changes to the super bowl night, when the person102enters the same query902, the intent912will likely change to “watching super bowl game.” Accordingly, a different card914for online super bowl game streaming is built and presented to the person102, which may include, for example, websites currently streaming the game. When the game finishes and the temporal context916changes to the day after the super bowl game, if the person102again enters the query902, the intent918will likely become “reading super bowl game reviews.” A card920of super bowl game reviews is constructed and presented to the person102. It is understood that the examples described above are for illustrative purpose and are not intended to be limiting.

FIG. 10illustrates an exemplary answer card, according to an embodiment of the present teaching. The answer card1000in this example is dynamically constructed on-the-fly in response to the question “when is my son's soccer game?” Based on the type of the card (answer card) and intent (finding out my son's soccer game date/time), the layout and modules are determined as shown inFIG. 10. It is understood that the shape, size, and layout of the answer card1000is for illustrative purpose only and may vary in other examples. In some embodiments, the shape, size, and layout may be dynamically adjusted to fit the specification of the user device (e.g., screen size, display resolution, etc.).

In this example, the answer card includes an answer header module1002indicating that the topic of the answer card1000is “Daniel's (my son's name identified according to person-centric knowledge) Next Soccer Game.” The direct answer to the question is found from a private email and provided in the date/time module1004. Optionally, certain actions related to the answer may be provided as well, such as “add to my calendar” and “open related emails.” Other information related to the direct answer is provided in other modules as well. The location module1006provides the location, address, and map of the soccer game. Information such as location and address may be retrieved from the email related to the game in the private database548of the person-centric space200, while the map may be retrieved from Google Maps in the public space108. The weather module1008provides the weather forecast of the game day, which may be retrieved from wwww.Weather.com in the public space108. The contact module1010shows persons involved in the game and their contact information retrieved from the email about the game and private Contacts in the private database548of the person-centric space200. Optionally, action buttons may be provided to call the persons directly from the answer card1000. It is understood that the example described above is for illustrative purpose and are not intended to be limiting.

FIG. 11illustrates an exemplary search result card, according to an embodiment of the present teaching. The search results card1100in this example is dynamically constructed on-the-fly in response to the query “amy adams.” Based on the type of the card (a search results card) and intent (learning more about actor Amy Adams), the layout and modules are determined as shown inFIG. 11. It is understood that the shape, size, and layout of the search results card1100is for illustrative purpose only and may vary in other examples. In some embodiments, the shape, size, and layout may be dynamically adjusted to fit the specification of the user device (e.g., screen size, display resolution, etc.). In this example, the search results card1100includes a header module1102with the name, occupation, and portrait of Amy Adams. The bio module1104includes her bio retrieved from Wikipedia, and the movies module1106includes her recent movies. In the movies module1106, each movie may be presented in a “mini card” with the movie's name, release year, poster, and brief instruction, which are retrieved from www.IMDB.com. The movies module1106is actionable so that a person can swap the “mini cards” to see information of more her movies. If more modules cannot be shown simultaneously due to the size of the search results card1100(for example when it is shown on a smart phone screen), tabs (e.g., “Latest,” “About”) may be used to display different modules. It is understood that the example described above is for illustrative purpose and are not intended to be limiting.

FIG. 12depicts an exemplary scheme of automatic online order email summary and package tracking via cross-linked data in a person-centric space, according to an embodiment of the present teaching. Various aspects of the present teaching are illustrated inFIG. 12as well as relatedFIGS. 13-15, including cross-linking data from different spaces, entity extraction and building person-centric knowledge representation, dynamic card productions based on intent, answering personal questions, and automatic task generation and completion. In this example, at time t0, an order confirmation email1202is received from www.Amazon.com. The email1202in the private space is processed to extract and identify entities. The entities include, for example, seller/vendor—www.Amazon.com, recipient/person—Mike, order date—Dec. 25, 2015, item—Contract Case book, shipping carrier—FedEx, tracking number—12345678, and estimated delivery date: Jan. 1, 2016. In response to receiving the email1202, an email card1204summarizing the email1202is generated and may be provided to Mike automatically or upon his request.

The generation of the email card1204in this example automatically initiates the generation of task11206for checking package delivery status. The details of task11206will be described inFIG. 13. In order to check the package delivery status, one or more cross-linking keys in the package shipping domain are identified among the entities extracted from the email1202. As shown inFIG. 13, the entity “shipping carrier—FedEx” is a cross-linking key used for identifying the website of FedEx1208in the public space, and the entity “tracking number—12345678” is a cross-linking key used for calling the status check API1210of FedEx1208. Based on the tracking number, package delivery status information1212is retrieved from FedEx1208. Different pieces of information from the private space and public space are thus cross-linked based on the cross-linking keys and can be projected into the person-centric space.

At time t1, in response to an input from Mike (e.g., a question “where is my amazon order?”), an answer card1214is dynamically generated based on private information in the email card1204and the public package delivery status information1212. The answer card1214is presented to Mike as an answer to his question. In this example, the generation of the answer card1214automatically initiates another task21216for monitoring and reporting package delivery status update. According to task21216, package delivery status information1212may be regularly refreshed and updated according to a schedule (e.g., every two hours) or may be dynamically refreshed and updated upon detecting any event that affects the package delivery. In this example, at times t2and tn, certain events, such as package being delayed due to severe weather or package being delivered, trigger the generation of notice cards1218,1220, respectively. It is understood that the example described above is for illustrative purpose and are not intended to be limiting.

FIG. 13illustrates an exemplary task with a list of task actions for automatic package tracking Task11206for tracking package delivery status in this example includes a series of task actions (task action list): identifying shipping carrier1302, identifying tracking number1304, obtaining shipping carrier's URL1306, calling shopping carrier's status check API using the tracking number1308, extracting status information1310, and filling in the card1312. Each task action may be associated with parameters such as conditions in which the task action is to be executed. For example, for task action1312“filling in the card,” the condition may be filling the current package delivery status into an answer card when a question about the package delivery status is asked by the person or filling the current package delivery status into a notice card of package delivery status update without waiting for any input from the person. Some task actions (e.g.,1302,1304) may be executed by retrieving relevant information from the person-centric space200and/or the person-centric knowledge database532, while some task actions (e.g.,1308) need to be completed in the public space108. It is understood that the example described above is for illustrative purpose and are not intended to be limiting.

FIG. 14illustrates a series of exemplary cards provided to a person in the process of automatic online order email summary and package tracking In this example, the email card1204is automatically generated responsive to receiving the amazon order confirmation email1202and summarizes the email1202based on the entities extracted from the email1202and relationships thereof. The email card1204includes a header module “My Amazon Oder” and an order module with entities of item and price. A “buy it again” action button may be added in the order module. The email card1204also includes a shipping module with entities of shipping carrier, tracking number, and scheduled delivery date.

In this example, the answer card1214is generated in response to a question from the person about the status of the package. The answer card1214includes the header module and order module (but with less information as the order information is not a direct answer to the question). The answer card1214includes a shipping module with rich information related to shipping, which is retrieved from both the private email1202and FedEx1208. The information includes, for example, entities of shipping carrier, tracking number, and scheduled delivery date from the private email1202, and current estimated delivery date, status, and location from FedEx1208.

In this example, multiple notice cards1218,1220are automatically generated in response to any event that affects the status of the package. Each notice card1218,1220includes an additional notification module. If any other information is affected or updated due to the event, it may be highlighted as well to bring to the person's attention. In notice card11218, shipment is delayed due to a winter storm in ABC town and as a consequence, the current estimated delivery date is changed according to information retrieved from FedEx1208. According to notice card N1220, the package has been delivered to Mike's home. It is understood that the examples described above are for illustrative purpose and are not intended to be limiting.

FIG. 15illustrates exemplary entities extracted from a person-centric space and their relationships established in the process of automatic online order email summary and package tracking. As described above, the person-centric knowledge database532stores person-centric knowledge organized in the form of entity-relationship-entity triples. Entities extracted from the amazon order confirmation email1202are formed into entity-relationship-entity triples by the knowledge engine530. In the example ofFIG. 15, entity “Mike”1502from the recipient field of the email1202is determined as the person using the person-centric INDEX system202, and entity “FedEx”1504is determined as a shipping carrier with a short-term relationship1506with entity “Mike”1502. Attributes1508may be associated with the relationship1506including, for example, temporal attribute, tracking number, shipping item, sender, etc. These attributes may include related entities extracted from the email1202and any other attributes inferred based on the relationship1506. It is noted that the relationship1506between entity “Mike”1502and entity “FedEx”1504is a short-term, temporary relationship in the sense that the relationship1506will become invalid after the shipment is completed, as indicated by the temporal attribute. In this example, entity “Mike”1502and another entity “Amazon”1510establish a long-term relationship1512with a different set of attributes1514thereof. The attributes1514include, for example, the temporal attribute, item, item rating, and so on. The relationship1512is long-term in this example because Mike has been repeatedly ordered goods from Amazon, which has become his behavior pattern or preference. It is understood that the examples described above are for illustrative purpose and are not intended to be limiting.

More detailed disclosures of various aspects of the person-centric INDEX system202are covered in different U.S. patent applications, entitled “Method and system for associating data from different sources to generate a person-centric space,” “Method and system for searching in a person-centric space,” “Methods, systems and techniques for providing search query suggestions based on non-personal data and user personal data according to availability of user personal data,” “Methods, systems and techniques for personalized search query suggestions,” “Methods, systems and techniques for ranking personalized and generic search query suggestions,” “Method and system for entity extraction and disambiguation,” “Method and system for generating a knowledge representation,” “Method and system for generating a card based on intent,” “Method and system for dynamically generating a card,” “Method and system for updating an intent space and estimating intent based on an intent space,” “Method and system for classifying a question,” “Method and system for providing synthetic answers to a personal question,” “Method and system for automatically generating and completing a task,” “Method and system for online task exchange,” “Methods, systems and techniques for blending online content from multiple disparate content sources including a personal content source or a semi-personal content source,” and “Methods, systems and techniques for ranking blended content retrieved from multiple disparate content sources.” The present teaching is particularly directed to associating data from different sources to generate a person-centric space and searching in a person-centric space.

FIG. 16depicts an exemplary system diagram of a cross-linking engine542, according to an embodiment of the present teaching. The cross-linking engine542in this embodiment includes a private access controller1602, multiple private fetchers1604, an entity extractor1606, a cross-linking key determiner1608, a cross-linking key archive1610, a fetching controller1612, a fetching scheduler1614, a trigger event detector1616, a semi-private access controller1618, multiple semi-private fetchers1620, a content retriever1622, and an associating unit1624.

As information in the private space104is private to a person, the private access controller1602is implemented to control access to any data in the private space104for data security and privacy protection. For instance, when the person accesses the person-centric INDEX system202for the first time (e.g., creating an account in the person-centric INDEX system202and/or downloading the person-centric INDEX system202to a local device), she/he is promoted to grant access permission to one or more data sources in the private space104. For example, an email account name and password may be requested, and permission to access some or all local private data may be confirmed. The person can choose to grant access permission to some or all data in the private space104and provide any private access data needed (e.g., password, token, biometric information, and personal credentials) at her/his discretion. In addition, the person can, at any time, add new access permissions to any private data source or modify and change any existing access permissions as desired. Access permissions to the private space104and private access data thereof are stored and maintained in a private access data store1626coupled with the private access controller1602, which serves as a security and privacy gateway between the private space104and the private fetchers1604. At any time, when any of the private fetchers1604tries to access a corresponding private data source in the private space104, the private access controller1602may first check whether the private fetcher1604has the sufficient privilege to do so based on the stored private access data1626.

In this embodiment, the private fetchers1604include, for example, an email fetcher1604-1, a contact fetcher1604-2, a calendar fetcher1604-3, . . . , and a photo fetcher1604-n. As private data in different sources may require different mechanisms to be fetched, specialized private fetchers may implement suitable protocols and APIs for fetching private data in different sources. For example, the email fetcher1604-1may implement any suitable email protocols or APIs, such as post office protocol (POP), Internet message access protocol (IMAP), messaging application programming Interface (MAPI), simple mail transfer Protocol (SMTP), and outlook web access (OWA), to name a few. It is understood that in some embodiments, a common private fetcher (not shown) may be used to fetch private data from some private data sources that share certain common protocols or APIs.

In any event, once passing the access control by the private access controller1602, a private fetcher1604can fetch data from the corresponding data source in the private space104and store them in the corresponding private database548. In this embodiment, data in the private database548is organized and stored based on its data source. The private databases548may include, for example, an email database548-1, a contact database548-2, a calendar database548-3, . . . , and a photo database548-n. Data in the different private databases548may be stored in suitable formats. For example, emails in the email database548-1may be in email message files (.eml), MIME HTML (mht) files, Apple mail email message (.emlx) files, etc.; contacts in the contact database548-2may be in vCard (.vcf) files; calendar events in the calendar database548-3may be in iCalendar (.ics) files. In some embodiments, one or more common file formats, such as plain text or HTML, may be used by some of all of the private databases548to store fetched private data.

The entity extractor1606in this embodiment is configured to extract one or more entities from each piece of private data (e.g., an email, a contact list, a calendar event, etc.) stored in the private database548using any entity extraction approaches as known in the art. In one example, the entity extraction and disambiguation approach implemented by the knowledge engine530of the person-centric INDEX system202may be applied to the entity extractor1606as well. In addition to extracting entities from the content of a piece of private information itself, the entity extractor1606may also extract entities from any data related to the information. For example, for an email, the entity extractor1606may not only extract entities from the email body, but also from metadata of the email, such as sender, sender's IP address, sending date/time, sender's mail server, recipients, receiving date/time, etc., or any attachment to the email. For a photo, image metadata (e.g., date/time when the photo is taken, owner of the photo, etc.), any tag associated with the photo, or any information derived from the photo (e.g., entities recognized from the photo by image recognition technologies) may be used by the entity extractor1606to extract entities. The entity extractor1606in this embodiment may store all the extracted entities in an entity database548-4as part of the private database548for future use. As all the entities are extracted from data originating from the private space104, they are relevant to the person in certain degrees.

The cross-linking key determiner1608in this embodiment receives entities extracted by the entity extractor1606and applies a key identifying model1628to select one or more types of cross-linking keys for a piece of private information from the entities exacted from the piece of information. In this embodiment, the key identifying model1628indicates mapping of certain types of cross-linking keys to each domain of knowledge. The cross-linking key determiner1608may thus determine the domain with which a piece of private information is associated and use the determined domain as a basis to select one or more entities extracted from the piece of private information as the cross-linking keys of the piece of private information. In one example, shipping carrier and tracking number may be the types of cross-linking keys mapped to the package shipping domain according to the key identifying model1628. In an order confirmation email, among other entities, FedEx and “12345678” may be extracted as the values of the shipping carrier and tracking number entities, respectively by the entity extractor1606. The cross-linking key determiner1608, after determining that the email falls into the package shipping domain (e.g., by semantic analysis of the email content), may select the shipping carrier and tracking number entities (and values thereof) as the cross-linking keys of the email. In another example, flight number, departure city, and departure date may be the types of cross-linking keys in the flight domain according to the key identifying model1628. Then, for any private information that is determined as being in the flight domain, the cross-linking key determiner1608may look for the entities of flight number, departure city, and departure date in the private information and select any of these types of entities as cross-linking keys of the private information. The cross-linking key determiner1608in this embodiment stores determined types of cross-linking keys and values thereof in the cross-linking key archive1610.

The fetching controller1612in this embodiment controls any one of the private fetchers1604, semi-private fetchers1620, and content retriever1622to retrieve any information that is relevant to the cross-linking keys in the cross-linking key archive1610from the private space104, semi-private space106, and public space108. In this embodiment, cross-linking keys determined based on one piece of private information may be used for retrieving all additional private information from the private space104. For example, the cross-linking key of a tracking number determined from an email from www.Amazon.com may be used by the email fetcher1604-1to retrieve another email from www.FedEx.com with the same tracking number. The two private emails are thus connected via the same tracking number.

Similar to the private space104, data security and privacy may be concerned with a person. The cross-linking engine542in this embodiment includes the semi-private access controller1618, in conjunction with a semi-private access data store1630, for controlling access to any data source in the semi-private space106. For example, the person may choose, at her/his discretion, to grant, modify, and revoke access permission to any of her/his accounts in social media and content sharing sites (e.g., as shown inFIG. 4).

The semi-private fetchers1620in this embodiment includes, for example, a Facebook fetcher1620-1, a Twitter fetcher1620-2, . . . , and a Dropbox fetcher1620-n. As semi-private data is from different social media and content sharing sites, specialized semi-private fetchers may implement suitable protocols and APIs for fetching semi-private data from different sites. For example, the Facebook fetcher1620-1may use an API provided by Facebook to fetch certain content related to the person from the person's Facebook account. It is understood that, in some embodiments, a common semi-private fetcher (not shown) may be used to fetch semi-private data from some semi-private data sources that share certain common protocols or APIs. The fetching of semi-private data may be controlled by the fetching controller1612based on cross-linking keys in the cross-linking key archive1610. In this embodiment, any data in the semi-private space106related to one or more cross-linking keys are fetched by a corresponding semi-private fetcher1620. For example, the entity of teammates may be a type of cross-linking key in the sports domain. If one or more teammates of a soccer team are determined from a private email about an upcoming soccer game as cross-linking keys, the fetching controller1612may control each of the semi-private fetchers1620to fetch any content associated with the teammates from a corresponding social media sites. The fetched content is thus connected with the private soccer game email via the teammates' names. That is, the fetching controller1612controls the semi-private fetchers1620to fetch data from the semi-private space106that is relevant to the person. Such data may be considered as being projected from the semi-private space106to the semi-private database546of the person-centric space200in accordance with perspectives of the person. The perspectives may be associated with domains of the person's private data.

In any event, once passing the access control by the semi-private access controller1618, a semi-private fetcher1620can fetch data from the corresponding data source in the semi-private space106and store them in the corresponding semi-private database546. In this embodiment, data in the semi-private database546are organized and stored based on their data source. The semi-private databases546may include, for example, a Facebook database546-1, a Twitter database546-2, . . . , and a Dropbox database546-n. Data in the different semi-private databases546may be stored in suitable formats. For example, the Twitter database546-2may store all tweets in the person's Twitter account. In some embodiments, one or more common file formats, such as plain text or HTML, may be used by some of all of the semi-private databases546to store fetched semi-private data.

The content retriever1622in this embodiment is configured to fetch content from the public space108as controlled by the fetching controller1612. The fetching controller1612may cause the content retriever1622to fetch any data from the public space108that is related to one or more cross-linking keys stored in the cross-linking key archive1610. The content retriever1622may be implemented as a search engine and/or a crawler. For instance, according to the tracking number of a package and the name of a shipping carrier, the content retriever1622may go to the shipping carrier's site to retrieve the package status information based on the tracking number. The data fetched from the public space108is stored in the public database544in any suitable formats, such as HTML files, plain text, image files, video clips, and so on. That is, the fetching controller1612controls the content retriever1622to fetch data from the public space108that is relevant to the person. Such data may be considered as being projected from the public space108to the public database544of the person-centric space200in accordance with perspectives of the person. The perspectives may be associated with domains of the person's private data.

The associating unit1624in this embodiment may associate all pieces of information in the private database548, semi-private database546, and public database544that are related to the same cross-linking keys. The person-centric space200thus includes all pieces of data in the private database548, semi-private database546, and public database544, all associations of relevant data, and all cross-linking keys.

The person-centric space200is maintained and updated on a regular basis and/or in a dynamic manner. The fetching scheduler1614may initiate data fetching of each of the private fetchers1604, semi-private fetchers1620, and content retriever1622according to respective individual schedules and/or a common schedule. For example, the email fetcher1604-1may automatically fetch new emails every two hours, while the contact fetcher1604-2may automatically fetch new contacts every two weeks, as contact lists are usually updated less frequently than emails. Optionally or additionally, each fetcher may fetch the corresponding data source according to a common schedule, e.g., every Sunday night at 12 a.m. The trigger event detector1616in this embodiment may dynamically initiate data fetching of each of the private fetchers1604, semi-private fetchers1620, and content retriever1622in response to a trigger event. The trigger event may include any event in the public space108, semi-private space106, or private space104that affects any data in the person-centric space200. For example, certain public data sources may provide real-time or near real-time updates, such as traffic-reporting sites, weather forecast sites, etc. The trigger event detector1616may register with those data sources for receiving updates in real-time or near real-time and detect any update that may affect data in the in the person-centric space200. The trigger event may also include any internal operation of the person-centric INDEX system202. As an example, every time the person-centric INDEX system202performs a search in response to a query or to answer a question, it may also trigger cross-linking engine542to update the person-centric space200based on the newly retrieved information related to the search results or answers, or, if the search result or answers cannot be found in the person-centric space200, the cross-linking engine542may also update the person-centric space200to include the missing data. That is, the trigger event detector1616may cause the cross-linking engine542to dynamically update the person-centric space200in response to detecting any suitable trigger events.

The system components described above are for illustrative purposes; however, the present teaching is not intended to be limiting and may comprise and/or cooperate with other elements to associate data from different sources to generate a person-centric space. It is understood that although the present teaching related to associating data from different sources to generate a person-centric space is described herein in detail as part of the person-centric INDEX system202, in some embodiments, the system and method disclosed in the present teaching for associating data from different sources can be independent from the person-centric INDEX system202or as a part of another system.

FIG. 17depicts an exemplary scheme of cross-linking data from different sources across different spaces based on cross-linking keys, according to an embodiment of the present teaching. In this example, for a piece of private data, such as an email, a domain of knowledge (D)1704to which the private data1702belongs can be determined, for example, by semantic analysis, keyword matching, machine learning, or any other suitable approaches as known in the art. On the other hand, one or more entities1706can be extracted and disambiguated from the private data1702. According to the domain1704, one or more entities can be selected as cross-linking keys (K)1708of the private data1702in the domain1704. The cross-linking keys1708can be used to fetch data from the public space108, semi-private space106, and private space104, respectively. As a result, public data1710, semi-private data1712, and private data1714are obtained, each of which is matched with the cross-linking keys1708in the domain1704. Each of the public data1710, semi-private data1712, and private data1714may be associated with a tag1716indicating the corresponding cross-linking keys1708at the domain1704.

FIG. 18is a flowchart of an exemplary process for a cross-linking engine, according to an embodiment of the present teaching. Starting at1802, information of a person is received. The information may be a person's identity, access permissions, and related access information (e.g., password, token, biometric information, and personal credentials) that is needed for accessing the person's private space. At1804, based on the information, private data is obtained, such as a private email. A domain associated with the private data is determined at1806. For example, a private email about an upcoming soccer game is in the sports domain. One or more entities are extracted from the private data at1808. For the email about the upcoming soccer game, the entities include, for example, date/time of the game, location of the game, and related persons (e.g., coach and teammates mentioned in the email). At1810, one or more cross-linking keys are identified from the extracted entities based on the domain. For instance, location and related persons may be identified as cross-linking keys in the sports domain. Additional data in the private space may be retrieved based on the cross-linking keys at1812. As an example, other emails sent by the coach may be retrieved. At1814, data from the semi-private space is retrieved based on the cross-linking keys. Any comments made by the coach related to soccer in a social media site may be retrieved. At1816, data from the public space is retrieved based on the cross-linking keys. For example, directions to the soccer game stadium may be retrieved from Google Maps based on the location of the soccer game. All data from the private, semi-private, and public spaces are associated based on the cross-linking keys at1818.

FIG. 19depicts an exemplary system diagram of a cross-linking key determiner, according to an embodiment of the present teaching. The cross-linking key determiner1608in this embodiment includes a domain determining unit1902, a key identifying unit1904, and a key library updating unit1906. The domain determining unit1902is configured to determine the domain associated with each piece of private data. The determination may be made, for example, by semantic analysis the content of an email and/or searching for any keyword in the content of the email indicating a particular domain. The determination may also be made based on a machine learning model. The key identifying unit1904in this embodiment receives all entities extracted from the piece of private data by the entity extractor1606and the domain determined by the domain determining unit1902. Based on a key library1908, the key identifying unit1904selects one or more entities as the cross-linking keys of the piece of private data. The key library1908includes all cross-linking keys in each known domain and may be updated by the key library updating unit1906. The creation and updates of the key library1908may be achieved manually by editorial selection and/or automatically by machine learning. In this embodiment, the initial key library1908may be manually created, but can be enhanced over time to be machine learned by the key library updating unit1906. The identified cross-linking keys are then stored in the cross-linking key archive1610.

FIG. 20illustrates exemplary types of domains of knowledge and cross-linking keys thereof. In this example, the domains of knowledge include, but are not limited to, a package shipping domain having one type of cross-linking key of “tracking number,” a flight domain having multiple types of cross-linking keys of “flight number,” “departure city,” and “departure date,” a personal appointment domain having multiple cross-linking keys of “location,” “date/time,” and “person,” and a movie domain having multiple types of cross-linking keys of “movie name” and “cast.” The domains and their associated cross-linking keys in this example may be stored in the key library1908. It is understood that the examples described above are for illustrative purposes and are not intended to be limiting.

FIG. 21is a flowchart of an exemplary process for a cross-linking key determiner, according to an embodiment of the present teaching. Starting at2102, a piece of private data is received, such as a private email. A domain associated with the piece of private data is determined at2104. At2106, one or more entities extracted from the piece of private data is received. A key library is obtained at2108. At2110, one or more cross-linking keys are identified from the received entities based on the key library. The identified cross-linking keys are stored at2112.

FIG. 22depicts an exemplary application of cross-linking person-centric data across different spaces, according to an embodiment of the present teaching. In this example, from Yahoo! Mail2202in the private space, an email2204about my son's soccer game is retrieved. In response to receiving the email2204, an email card2206summarizing the content of the email2204is generated and presented. The email2204is also processed to identify cross-linking keys2208, including location, time/date, and the sender. Based on at least one type of cross-linking key2208(i.e., sender is the coach), the phone number2210of the coach is retrieved from another private source—the personal contacts2212. In the semi-private space, based on at least one type of cross-linking key2208(i.e., sender is the coach), soccer pictures2214shared by the coach are retrieved from my account at Facebook2216. In the public space, based on at least two types of cross-linking key2208(i.e., location and date/time of the game), local weather forecast2218of the game day is retrieved from the Weather Channel2220. The phone number2210of the coach, the soccer pictures2214shared by the coach, and the local weather2218are all person-centric data that are cross-linked based on the cross-linking keys2208. In response to any question related to the soccer game, an answer card2222can be constructed and presented based on the cross-linked, person-centric data. Moreover, the cross-linked person-centric data is continuously updated. In this example, local weather update2224is refreshed from the Weather Channel2220in the public space and is used in a notice card2226for notifying any weather forecast update that may affect the soccer game. It is understood that the example described above is for illustrative purposes and are not intended to be limiting.

FIG. 23depicts an exemplary system diagram of a person-centric data search module, according to an embodiment of the present teaching. The person-centric data search module2300in this embodiment is part of the person-centric knowledge retriever526used for searching and retrieving data from the person-centric space200. It is understood that, in some embodiments, the person-centric data search module2300may be a stand-alone component in the person-centric INDEX system202or independent from the person-centric INDEX system202. The person-centric data search module2300in this embodiment includes a query parsing unit2302, an entity extracting unit2304, a private data searching unit2306, a cross-linking key identification unit2308, a semi-private data searching unit2310, a public data searching unit2312, a query result ranking unit2314, and a query result presenting unit2316.

The query parsing unit2302in this embodiment receives a request related to a person to search data. The request may be received from components in the person-centric INDEX system202, such as, but not limited to, queries received from the query interface506and questions received from the Q/A interface508. It is understood that in some embodiments, the request may be received from the person directly or from any component or system outside the person-centric INDEX system202. The query parsing unit2302is operable to parse the content of the request into separate units, e.g., by dividing the text into words and/or phrases. The entity extracting unit2304in this embodiment identifies one or more entities from the parsed request content. In this embodiment, intent associated with the request is estimated by the intent engine524and provided to the entity extracting unit2304to facilitate the entity extracting unit2304to identify the entities. For example, a query “my son's soccer game” may be parsed into “my son” and “soccer game.” If the intent engine524estimates, based at least partially on contextual information, that the intent is “checking weather forecast of my son's soccer game,” then the entity extracting unit2304may identify entity “soccer game” from the query.

The private data searching unit2306in this embodiment is responsible for searching the private database548in the person-centric space200to retrieve private data based on the entity. For example, an email sent from the soccer coach about my son's soccer game may be retrieved based on the entity “soccer game.” As described above, data in the person-centric space are associated with one or more cross-linking keys. The cross-linking key identification unit2308can thus identify one or more cross-linking keys associated with each piece of private data retrieved by the private data searching unit2306. In the soccer game example described above, various types of cross-linking keys such as “related person—coach” and “location and date of the game” associated with the retrieved email may be identified by the cross-linking key identification unit2308.

Each of the semi-private data searching unit2310and public data searching unit2312is configured to search in the semi-private database546and public database544, respectively, in the person-centric space200and retrieve data based on one of more types of the identified cross-linking keys. Continuing the soccer game example descried above, soccer pictures shared by the coach in the semi-private database546may be retrieved by the semi-private data searching unit2310based on the cross-linking key of “related person—coach”; most recent local weather forecast of the game day in the public database544may be retrieved by the public data searching unit2312based on the cross-linking keys of “location and date of the game.”

In this embodiment, the query result ranking unit2314ranks the obtained data from the private database548, semi-private database546, and public database544. The ranking may be made based on the estimated intent from the intent engine524. For instance, if the intent is estimated as “checking weather forecast of my son's soccer game,” then the most-recent local weather forecast of the game day in the public database544may be ranked the highest. In some embodiments, the ranking may be made by certain predefined rules, such as ranking private data on top of semi-private data and public data and ranking data from the same space based on recency. Optionally or additionally, the query result ranking unit2314may filter out certain retrieved data based on the estimated intent and/or predefined rules.

The query result presenting unit2316in this embodiment provides the ranked data as a response to the request. In this embodiment, the ranked data may be provided to the dynamic card builder528for building and presenting an intent-based card. In the soccer game example described above, the email from the private space, the soccer pictures shared by the coach from the semi-private space, and the local weather forecast may be provided to the dynamic card builder528to build an answer card in response to the query “my son's soccer game.” In some embodiments, the ranked data may be provided to other components in the person-centric INDEX system202such as the query interface506, Q/A interface508, Q/A engine518, and task generation engine520. The ranked data may also be provided to the person directly or to components outside the person-centric INDEX system202in some other embodiments. When providing the data, the query result presenting unit2316may combine data originating from different spaces to generate combined data and provide the combined data as a response to the request. The query result presenting unit2316may not combine different pieces of data originating from different spaces, but instead, provide them separately based on their rankings.

The system components described above are for illustrative purposes; however, the present teaching is not intended to be limiting and may comprise and/or cooperate with other elements to search in a person-centric space. It is understood that although the present teaching related to searching in a person-centric space is described herein in detail as part of the person-centric INDEX system202, in some embodiments, the system and method disclosed in the present teaching for searching in a person-centric space can be independent from the person-centric INDEX system202or as a part of another system.

FIG. 24is a flowchart of an exemplary process for a person-centric data search module, according to an embodiment of the present teaching. Starting at2402, a search request related to a person is received. Estimated intent of the request is obtained at2404. At2406, one or more entities are extracted from the request. The entities may be determined based on the estimated intent. At2408, private data is searched for the entity. One or more types of cross-linking keys are identified from the search results of the private data at2410. At2412, private data is searched again based on the one or more types of cross-linking keys. At2414, semi-private data is search based on the one or more types of cross-linking keys. At2416, public data is search based on the one or more types of cross-linking keys. The private data, semi-private data, and public data are cross-linked in a person-centric space for the person, which includes the entity and the one or more cross-linking keys. At2418, all the search results are ranked based on the estimated intent.

FIG. 25depicts the architecture of a mobile device which can be used to realize a specialized system implementing the present teaching. In this example, the device on which a person interfaces and interacts with the person-centric INDEX system202is a mobile device2500, including, but is not limited to, a smart phone, a tablet, a music player, a hand-held gaming console, a global positioning system (GPS) receiver, and a wearable computing device (e.g., eyeglasses, wrist watch, etc.), or in any other forms. The mobile device2500in this example includes one or more central processing units (CPUs)2502, one or more graphic processing units (GPUs)2504, a display2506, a memory2508, a communication platform2510, such as a wireless communication module, storage2512, and one or more input/output (I/O) devices2514. Any other suitable component, including but not limited to a system bus or a controller (not shown), may also be included in the mobile device2500. As shown inFIG. 25, a mobile operating system2516, e.g., iOS, Android, Windows Phone, etc., and one or more applications2518may be loaded into the memory2508from the storage2512in order to be executed by the CPU2502. The applications2518may include the entire or a portion of the person-centric INDEX202. User interactions with the user interface502of the person-centric INDEX202may be achieved via the I/O devices2514and provided to any component of the person-centric INDEX202on one or more remote servers via the communication platform2510.

FIG. 26depicts the architecture of a computing device which can be used to realize a specialized system implementing the present teaching. Such a specialized system incorporating the present teaching has a functional block diagram illustration of a hardware platform which includes user interface elements. The computer may be a general purpose computer or a special purpose computer. Both can be used to implement a specialized system for the present teaching. This computer2600may be used to implement any component of the person-centric INDEX system202, as described herein. For example, the person-centric INDEX system202may be implemented on a computer such as computer2600, via its hardware, software program, firmware, or a combination thereof. Although only one such computer is shown, for convenience, the computer functions relating to associating data from different sources and searching in a person-centric space as described herein may be implemented in a distributed fashion on a number of similar platforms, to distribute the processing load.

The computer2600, for example, includes COM ports2602connected to and from a network connected thereto to facilitate data communications. The computer2600also includes a central processing unit (CPU)2604, in the form of one or more processors, for executing program instructions. The exemplary computer platform includes an internal communication bus2606, program storage and data storage of different forms, e.g., disk2608, read only memory (ROM)2610, or random access memory (RAM)2612, for various data files to be processed and/or communicated by the computer, as well as possibly program instructions to be executed by the CPU2604. The computer2600also includes an I/O component2614, supporting input/output flows between the computer and other components therein such as user interface elements2616. The computer2600may also receive programming and data via network communications.

Those skilled in the art will recognize that the present teachings are amenable to a variety of modifications and/or enhancements. For example, although the implementation of various components described above may be embodied in a hardware device, it may also be implemented as a software only solution—e.g., an installation on an existing server. In addition, the method and system of associating data from different sources and searching in a person-centric space as disclosed herein may be implemented as a firmware, firmware/software combination, firmware/hardware combination, or a hardware/firmware/software combination.

While the foregoing has described what are considered to constitute the present teachings and/or other examples, it is understood that various modifications may be made thereto and that the subject matter disclosed herein may be implemented in various forms and examples, and that the teachings may be applied in numerous applications, only some of which have been described herein. It is intended by the following claims to claim any and all applications, modifications and variations that fall within the true scope of the present teachings.