1. A method of analyzing a corpus of data artifacts, the method comprising: obtaining, by a computer, a semantic representation of the data artifacts, wherein the semantic representation indicates: entities identified in the data artifacts; and semantic relationships among the entities, as indicated by the data artifacts; clustering the data artifacts, by a computer, into clusters of semantically related data artifacts based on the semantic representation; and inferring, by a computer, additional semantic relationships between pairs of the entities, wherein the inferring comprises: on a cluster-by-cluster basis, applying a multi-tiered network of inference engines to a portion of the semantic representation corresponding to the cluster, wherein the multi-tiered network of inference engines comprises a domain-independent inference tier and a domain-specific inference tier, wherein applying the multi-tiered network of inference engines comprises: applying two or more inference engines sequentially, in parallel, or iteratively according to a static or dynamic schedule.