1. A method for extracting and abstracting knowledge embedded in an input data stream, comprising: receiving an input data stream; extracting a knowledge element in the input data stream using a first pattern matching at least a part of the input data stream; identifying a context attribute in the input data stream using a second pattern matching at least a part of the input data stream; marking the knowledge element and the context attribute in an abstracted data stream; classifying the knowledge element as a data entity or a business rule using the context attribute and a third pattern matching at least a part of the abstracted data stream; and outputting the abstracted data stream.