The development and verification of software models that are applicable across multiple domains remains a difficult problem. We propose a novel approach to model-driven software development based on ontologies and Semantic Web technology. Our approach uses three ontologies to define software models: a task ontology, a domain ontology and a top-level ontology. The task ontology serves as the conceptual model for the software, the domain ontology provides domain-specific knowledge and the top-level ontology integrates the task and domain ontologies. Our method allows the verification of these models both for consistency and ontological adequacy. This verification can be performed both at development and runtime. Domain ontologies are replaceable modules, which enables the comparison and application of the models built using our method across multiple domains. We demonstrate the viability of our approach through the design and implementation of a semantic wiki and a social tagging system, and compare it with model-driven software development to illustrate its benefits.