Method and system for modeling of complex systems using a two-sorted reasoning system. Information is received by Distributed Feature Extraction Processors. A first level of reasoning is performed on the information by Distributed Regular Reasoning Processors. A second reasoning process is performed on the information by Distributed Situation Reasoning Processors, which use a Functional Fabric configured to analyze the information received and use functions to modify previous inferences. Client applications allow for viewing and manipulating both reasoning systems and their associated information.