SWIM is a knowledge-based system for building Web Service Domains, which are collections or communities of related Web Services that are mediated and/or aggregated by a single Web Service, called the Mediator Service that functions as a proxy for them. When a requestor sends a message to the Mediator Service our system will select one or more of the Web Services to dispatch the message and will fuse the results returned by the selected services. The selection of Web services and the algorithm for fusing the results is defined by the administrator of the Service Domain using a declarative rule language, called X-DEVICE. SWIM system offers services for registering new Web Services and Service Domains. The main advantage of the SWIM system, compared to similar proposed approaches is that it allows the easy definition of arbitrary service selection strategies using a logic-based language. Furthermore, it goes beyond the mere conditional re-routing of Web Service requests by allowing combination of results of multiple Web Services leading to a simple logic-based form for Web Service composition.