The extensive work on Knowledge Engineering in the 1990s has resulted in a systematic analysis of task-types, and the corresponding problem solving methods that can be deployed for different types of tasks. That analysis was the basis for a sound and widely accepted methodology for building knowledge-based systems, and has made it is possible to build libraries of reusable models, methods and code. In this paper, we make a first attempt at a similar analysis for Semantic Web applications. We will show that it is possible to identify a relatively small number of tasktypes, and that, somewhat surprisingly, a large set of Semantic Web applications can be described in this typology. Secondly, we show that it is possible to decompose these task-types into a small number of primitive (“atomic”) inference steps. We give semi-formal definitions for both the task-types and the primitive inference steps that we identify. We substantiate our claim that our task-types are sufficient to cov...