1. A computer-implemented method for generating an abstract representation for source code of an application, the method comprising: receiving the source code in a programming language; identifying a plurality of blocks in the source code using first patterns; classifying two or more of the plurality of blocks into a logic block that corresponds to a business rule; extracting a plurality of knowledge elements from the logic block using second patterns; classifying the plurality of knowledge elements using third patterns; determining context for the plurality of knowledge elements using user defined rules; generating the abstract representation of the source code in a standard format independent of the programming language of the source code using a dynamic rule and a fourth pattern, wherein the abstract representation includes the plurality of knowledge elements, wherein each of the first, second, third, and fourth patterns matches at least a part of the source code, and wherein each of the first, second, third, and fourth patterns comprises a predefined pattern or a dynamic pattern; hatching a dynamic pattern when no predefined pattern matches a part of the source code, wherein the dynamic pattern is created using fuzzy-neural rules and dynamic rules and is determined to be stored in a store; and identifying the context of the plurality of knowledge elements in the abstract representation.