Dynamic composition of complex services from primitive components brings flexibility and adaptability to future applications. By properly selecting and combining components on demand, applications would adapt to individual user preference and would consider available context information. Existing service composition systems often require users to request services in strict syntax formats, such as
... [Show full abstract] data types, service templates or logic formulas. This requirement may become an obstacle for end-users to use such systems. Instead, service composition should be semantics-based so that a service is requested and composed not by its syntax but by its semantics. In order to enable semantics-based dynamic service composition, both the modeling of components as well as the service composition mechanism must support semantics. To satisfy the requirement of semantic support in the component modeling, we have designed a new model named Component Service Model with Semantics (CoSMoS). CoSMoS integrates the semantic information of a component and the functional information of a component into a single semantic graph representation. A unified interface named Component Runtime Environment (CoRE) is developed to convert different component implementations onto the CoSMoS representation. Using the semantic support of CoSMoS, we have developed a semantics-based service composition mechanism named Semantic Graph based Service Composition (SeGSeC). SeGSeC generates the execution path of the requested service, and checks the semantics of the path against the request. We have implemented a service composition system using the above techniques, and demonstrated that our system supports semantics-based dynamic service composition.