IP Library Granted Patent US 11,194,840
Granted Patent B2
US 11,194,840 · App. 16/601,082 · Granted Dec 7, 2021

Incremental clustering for enterprise knowledge graph

Inventors: Dmitriy Meyerzon (Bellevue, WA); Jeffrey L. Wight (Kirkland, WA); Nikita Voronkov (Bothell, WA); Vladimir V. Gvozdev (Sammamish, WA); John Michael Winn (Cambridge, GB); John Guiver (Saffron Walden, GB); Ivan Korostelev (Cambridge, GB); Matteo Venanzi (London, GB); Alexander Armin Spengler (Cambridge, GB)
Assignee: Microsoft Technology Licensing, LLC
G06F16/285G06F16/2465G06F16/9024
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,194,840
App. No.
16/601,082
Granted
Dec 7, 2021
Kind
B2
Abstract

Examples described herein generally relate to a computer system including a knowledge graph storing a plurality of entities. The computer system compares source documents within an enterprise intranet to a plurality of templates defining potential entity attributes to identify extracts matching at least one of the plurality of templates. The computer system parses the extracts according to respective templates of the plurality of templates that match the extracts to determine instances. The computer system performs incremental clustering on a number of the instances to determine potential entity names. The computer system queries the knowledge graph with the potential entity names to obtain a set of candidate entity records. The computer system links the potential entity names with at least partial matching ones of the set of candidate entity records to define updated matching candidate entity records. The computer system updates the knowledge graph with the updated matching candidate entity records.

Claims (47)

1. A computer system, comprising:

a knowledge graph storing a plurality of entities associated with an enterprise;

a memory storing computer-executable instructions; and

a processor configured to execute the instructions to:

compare enterprise source documents within an enterprise intranet to a plurality of templates defining potential entity attributes to identify extracts of the enterprise source documents matching at least one of the plurality of templates;

parse the extracts according to respective templates of the plurality of templates that match the extracts to determine instances;

perform incremental clustering on a number of the instances to determine potential entity names, wherein the number of the instances is based on an amount of the memory required to store the number of the instances and associated clustering metadata, and wherein performing the incremental clustering includes performing clustering on the number of the instances and performing clustering on a second set of the number of the instances, and wherein the incremental clustering uses less memory than performing the clustering on a set of instances including twice the number of the instances;

query the knowledge graph with the potential entity names to obtain a set of candidate entity records;

link the potential entity names with at least partial matching ones of the set of candidate entity records to define updated matching candidate entity records including attributes corresponding to instances associated with the potential entity names; and

update the knowledge graph with the updated matching candidate entity records and with new entity records for unmatched potential entity names, wherein the unmatched potential entity names are defined by ones of the potential entity names that do not match with any of the set of candidate entity records.

2. The computer system of claim 1 , wherein the processor is configured to:

determine that one of the enterprise source documents associated with a candidate entity record of the set of candidate entity records is more relevant to one of the potential entity names than the candidate entity record;

link the one of the enterprise source documents to the one of the potential entity names; and

store the one of the potential entity names in the knowledge graph as a new entity record.

3. The computer system of claim 1 , wherein a level of uncertainty is associated with a potential entity name, wherein the processor is configured to query the knowledge graph using alternative potential entity names based on the level of uncertainty.

4. The computer system of claim 1 , wherein the processor is configured to determine a level of uncertainty associated with a candidate entity record of the set of candidate entity records based on supporting documents associated with the candidate entity record in the knowledge graph.

5. The computer system of claim 4 , wherein the processor is configured to link one or more of the potential entity names with the candidate entity record based on the one or more of the potential entity names partially matching the candidate entity record according to the level of uncertainty of the candidate entity record.

6. The computer system of claim 1 , wherein the processor is configured to determine a status of each of the updated matching candidate entity records and each of the new entity records as one of established or formative based on a level of uncertainty for a respective entity record.

7. The computer system of claim 1 , wherein the processor is configured to display at least a portion of an entity page including a plurality of attributes of an entity record in the knowledge graph to a user based on permissions of the user to view the enterprise source documents associated with the entity record.

8. A method of incrementally building a knowledge graph storing a plurality of entities associated with an enterprise, comprising:

comparing enterprise source documents within an enterprise intranet to a plurality of templates defining potential entity attributes to identify extracts of the enterprise source documents matching at least one of the plurality of templates;

parsing the extracts according to respective templates of the plurality of templates that match the extracts to determine instances;

performing incremental clustering on a number of the instances to determine potential entity names, wherein the number of the instances is based on an amount of computer memory required to store the number of the instances and associated clustering metadata, and wherein performing the incremental clustering includes performing clustering on the number of the instances and performing clustering on a second set of the number of the instances, and wherein the incremental clustering uses less memory than performing the clustering on a set of instances including twice the number of the instances;

querying the knowledge graph with the potential entity names to obtain a set of candidate entity records;

linking the potential entity names with at least partial matching ones of the set of candidate entity records to define updated matching candidate entity records including attributes corresponding to instances associated with the potential entity names; and

updating the knowledge graph with the updated matching candidate entity records and with new entity records for unmatched potential entity names, wherein the unmatched potential entity names are defined by ones of the potential entity names that do not match with any of the set of candidate entity records.

9. The method of claim 8 , wherein linking the potential entity names with at least partial matching ones of the set of candidate entity records to define updated matching candidate entity records comprises:

determining that one of the enterprise source documents associated with a candidate entity record of the set of candidate entity records is more relevant to one of the potential entity names than the candidate entity record;

linking the one of the enterprise source documents to the one of the potential entity names; and

storing the one of the potential entity names in the knowledge graph as a new entity record.

10. The method of claim 8 , wherein a level of uncertainty is associated with each attribute associated with a potential entity name, wherein querying the knowledge graph comprises querying the knowledge graph using alternative potential entity names based on the level of uncertainty.

11. The method of claim 8 , further comprising determining a level of uncertainty associated with a candidate entity record of the set of candidate entity records based on supporting documents associated with the candidate entity record in the knowledge graph, wherein linking the potential entity names with at least partial matching ones of the set of candidate entity records comprises linking one or more of the potential entity names with the candidate entity record based on the one or more of the potential entity names partially matching the candidate entity record according to the level of uncertainty of the candidate entity record.

12. The method of claim 8 , further comprising displaying at least a portion of an entity page including a plurality of attributes of an entity record in the knowledge graph to a user based on permissions of the user to view the enterprise source documents associated with the entity record.

13. A non-transitory computer-readable medium storing computer-executable instructions for incrementally building a knowledge graph storing a plurality of entities associated with an enterprise, that when executed by a computer processor cause the computer processor to:

compare enterprise source documents within an enterprise intranet to a plurality of templates defining potential entity attributes to identify extracts of the enterprise source documents matching at least one of the plurality of templates;

parse the extracts according to respective templates of the plurality of templates that match the extracts to determine instances;

perform incremental clustering on a number of the instances to determine potential entity names, wherein the number of the instances is based on an amount of computer memory required to store the number of the instances and associated clustering metadata, and wherein performing the incremental clustering includes performing clustering on the number of the instances and performing clustering on a second set of the number of the instances, and wherein the incremental clustering uses less memory than performing the clustering on a set of instances including twice the number of the instances;

query the knowledge graph with the potential entity names to obtain a set of candidate entity records;

link the potential entity names with at least partial matching ones of the set of candidate entity records to define updated matching candidate entity records including attributes corresponding to instances associated with the potential entity names; and

update the knowledge graph with the updated matching candidate entity records and with new entity records for unmatched potential entity names, wherein the unmatched potential entity names are defined by ones of the potential entity names that do not match with any of the set of candidate entity records.

14. The non-transitory computer-readable medium of claim 13 , wherein the instructions to link the potential entity names with at least partial matching ones of the set of candidate entity records to define updated matching candidate entity records comprise instructions to:

determine that one of the enterprise source documents associated with a candidate entity record of the set of candidate entity records is more relevant to one of the potential entity names than the candidate entity record;

link the one of the enterprise source documents to the one of the potential entity names; and

store the one of the potential entity names in the knowledge graph as a new entity record.

15. The non-transitory computer-readable medium of claim 13 , wherein a level of uncertainty is associated with each attribute associated with a potential entity name, wherein the instructions to query the knowledge graph comprises instructions to query the knowledge graph using alternative potential entity names based on the level of uncertainty.

16. The non-transitory computer-readable medium of claim 13 , further comprising instructions to determine a level of uncertainty associated with a candidate entity record of the set of candidate entity records based on supporting documents associated with the candidate entity record in the knowledge graph, wherein linking the potential entity names with at least partial matching ones of the set of candidate entity records comprises linking one or more of the potential entity names with the candidate entity record based on the one or more of the potential entity names partially matching the candidate entity record according to the level of uncertainty of the candidate entity record.

17. The non-transitory computer-readable medium of claim 13 , further comprising instructions to display at least a portion of an entity page including a plurality of attributes of an entity record in the knowledge graph to a user based on permissions of the user to view the enterprise source documents associated with the entity record.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2019
From: MEYERZON, DMITRIY; WIGHT, JEFFREY L.; VORONKOV, NIKITA; GVOZDEV, VLADIMIR V.; WINN, JOHN MICHAEL; GUIVER, JOHN; KOROSTELEV, IVAN; VENANZI, MATTEO; SPENGLER, ALEXANDER ARMIN
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 050777/0619 →
Continuity (1)
Related Publication 20210109952A1 · Apr 15, 2021