1. A computer-implemented method of providing a predicate logic corpus, comprising: under control of one or more computer systems configured with executable instructions, determining at least one source of metadata; executing a series of Structured Query Language (SQL) queries against each determined source of metadata to extract a desired set of metadata; determining context information for the extracted set of metadata using a predicate logic inference engine; storing the extracted set of metadata as a corpus of predicate logic facts according to the determined context information; providing a user interface enabling a user to define rules against the predicate logic facts in the corpus, and further enabling the user to execute queries against the corpus and any result set in the corpus, the queries being written in at least one of a natural language or a predicate logic notation, wherein the predicate logic notation includes an artificial intelligence language notation; receiving a first query that is created and submitted via the user interface; in response to receiving the first query, executing the first query against the corpus of predicate logic facts obtained through the determined context information; and generating a first result set to be presented to the user, the generated first result set including at least one predicate defining a hierarchical relationship between data elements of the corpus; and receiving a second query that is created and submitted via the user interface, the second query including at least one new rule defined by the user to be applied against the generated first result set via the user interface; in response to receiving the second query, executing the second query against the generated first result set; and generating a second result set to be presented to the user, the generated second result set being based at least in part on the generated first result set, wherein when the generated first result set includes at least one set of duplicate data elements, the generated second result set excludes the at least one set of duplicate data elements, the at least one set of duplicate data elements being excluded based at least in part on the defined hierarchical relationship between the data elements of the corpus included in the generated first result set and the at least one set of duplicate data elements.