30. A system for identifying computer source code constructs comprising computer-executable instructions embodied in a computer-readable storage media, the computer-readable storage media comprising: (a) a source-code-to-fact-set converter for converting computer program source code into a fact set in a mathematical notation that supports direct expression of semantic reliances between elements of source code and is suitable for inputting into an automated inference engine; (b) an elemental design pattern (EDP) catalog including at least one elemental design pattern to be compared to the fact set; (c) a rule set including at least one rule for defining relationships between source code constructs; and (d) an automated inference engine for receiving as input the fact set, the EDP catalog, and the rule set, and for producing output indicative of patterns in the computer program source code.
33. The system of claim 30 wherein the source-code-to-fact-set converter includes a second converter for converting the tree-formatted source code into a pattern object XML (POML) format, and a third converter for converting the POML-formatted source code into the fact set.