22. The non-transitory computer readable storage medium of claim 19 , wherein determine the knowledge attributes comprises identify a block in the source code using a first pattern matching at least a part of the source code, and wherein identify the plurality of knowledge elements with the associated knowledge attributes comprises identify the block in the abstract representation.
19. A non-transitory computer readable storage medium structured to store instructions executable by the processor to extract and abstract knowledge embedded in source code of an application the instructions when executed by the processor cause the processor to: receive the source code in a programming language; extract a plurality of knowledge elements from the source code based on predefined patterns responsive to no predefined pattern matching a part of the source code, creating a dynamic pattern using fuzzy-neural rules and dynamic rules and determine whether to store the dynamic pattern in a store; determine knowledge attributes for the extracted knowledge elements by extracting keywords and descriptions from the source code classify each of the extracted knowledge elements into one of a data entity, a variable, and a business rule, using classification patterns and associated knowledge attributes, wherein each of the classification patterns comprises a predefined pattern or a dynamic pattern; generate an abstract representation of the source code in a standard format independent of the programming language of the source code, wherein the abstract representation includes the plurality of knowledge elements; and identify the plurality of knowledge elements with associated knowledge attributes in the abstract representation.