In 1982, Allen Newell introduced the “knowledge level” principle (Newell, 1982) and revolutionized the traditional way of conceiving the relationships between knowledge management and computer science. According to this principle, the knowledge level represents the highest level in the description of any structured system: Situated above and independent from the “symbol level,” it describes the observed behaviour of the system as a function of the knowledge employed, and independently of the way this knowledge is eventually represented/implemented at the symbol level. “The knowledge level permits predicting and understanding behaviour without having an operational model of the processing that is actually being done by the agent” (Newell, 1982, p. 108). An arbitrary system is then interpreted as a rational agent that interacts with its environment in order to attain, according to the knowledge it owns, a given goal in the best way; from a strict knowledge level point of view, this system is then considered as a sort of “black box” to be modeled on the basis of its input/output behaviour, without making any hypothesis on its internal structure. To sum up, the knowledge level principle emphasises the why (i.e., the goals), and the what (i.e., the different tasks to be accomplished and the domain knowledge) more than the how (i.e., the way of implementing these tasks and of putting this domain knowledge to use).