Generating, updating, and using a knowledge graph. Concepts in a knowledge graph can have relations to one another. These relations may be expressed as confidence values. A training data set may be split into two portions, with the first portion used to update confidence values for existing relations between concept pairs, using the knowledge graph. These confidence values can be used, together with the second portion used to update confidence values for known phrases that express known relations. These confidence values, in turn, can be used, together with the first portion, to increase the accuracy of the original confidence scores with respect to existing relations. The process may be iteratively employed, with each iteration increasing the accuracy of confidence scores.