A mashup is an application that combines functionalities of other applications to create a new service. In this paper, we propose an ontology-based system by which users without programming experiences can easily construct mashups of Web resources. The system allows users to define their own search parameters using a rule language and expands users' queries using the concepts in ontologies. Then it generates a web page specific to that request. We show how the proposed system can be used to create personalized mashups in the context of adaptive hypermedia.