To solve that problem, a person needs several kinds of knowledge: linguistic and factual knowledge for problem translation, schematic knowledge for problem integration, strategic knowledge and beliefs for solution planning and monitoring, and procedural knowledge for solution execution.