1. A method comprising: receiving a data object from a user device, wherein the data object is an uploaded document; analyzing, using one or more computers having one or more processors and one or more non-transitory computer storage media, the data object to extract a plurality of values having corresponding attributes, wherein the analysis is based at least in part on an ontology and wherein the analysis is used to extract one or more values from the data object as corresponding to ontology terms and one or more candidate ontology terms associated with respective attributes, wherein the analysis of the data object further comprises associating the data object with one or more domain models generated through analysis of a plurality of objects from one or more corpora; providing a user interface to a client, the user interface configured to present at least one question as to whether an extracted value of the plurality of values paired with its corresponding attribute accurately characterizes the data object, wherein at least one extracted value paired with its corresponding attribute is a candidate ontology term not found in the ontology and is presented in the at least one question; receiving a response to the at least one question from the client though the user interface indicating that the attribute-value pair accurately characterizes the data object; in response to the indication that the attribute-value pair accurately characterizes the data object, analyzing the attribute-value pair to determine if the attribute and the value are in the ontology; if it is determined that the attribute is not in the ontology, updating the ontology to add the attribute to the ontology; if it is determined that the value is not in the ontology, updating the ontology to add the value to the ontology; and training the analysis to extract values from additional received data objects according to the updated ontology.