1. A method for creating a predictive model, the method comprising the steps of: determining trends and patterns in electronic data, using at least a first machine language algorithm; refining the determination of the algorithm; searching for social models that describe the identified trends and patterns using at least a second machine language algorithm; verifying causal links; constructing at least one model about human node behavior and interactions; utilizing the social models to do at least one of the following: validate hypotheses, predict future behavior, and examine hypothetical scenarios; automatically updating predictions when new data is introduced; using probabilistic techniques to learn hierarchical structure in unstructured text; continuously updating a set of themes; examining grammatical rules of each component of text; matching grammatical constituents to semantic roles; and, reorganizing data into clusters of entities with common attributes.