9. A method for complex procedural query execution, the method comprising: a. executing an entire complex procedural query defined using a general-purpose functional programming language, detecting a soft failure, indicative that the execution of the query resulted in incomplete information, and noting any unresolved data which the query needs but does not have; b. identifying sub-queries to be executed separately; c. referring unresolved data needs to at least one database adaptor; d. storing resulting responses in a query cache for a future execution; and e. iteratively executing (a), (b), (c), and (d) using the resulting responses until no more soft failures occur, wherein the complex procedural query is severable such that at least a first portion of the complex procedural query can proceed even if a second portion of the complex procedural query fails.
9. A method for complex procedural query execution, the method comprising: a. executing an entire complex procedural query defined using a general-purpose functional programming language, detecting a soft failure, indicative that the execution of the query resulted in incomplete information, and noting any unresolved data which the query needs but does not have; b. identifying sub-queries to be executed separately; c. referring unresolved data needs to at least one database adaptor; d. storing resulting responses in a query cache for a future execution; and e. iteratively executing (a), (b), (c), and (d) using the resulting responses until no more soft failures occur, wherein the complex procedural query is severable such that at least a first portion of the complex procedural query can proceed even if a second portion of the complex procedural query fails. 11. The method of claim 9 wherein the query language is maximally severable.