Service matchmaking is the process of finding suitable services given by the providers for the service requests of consumers. Previous approaches to service matchmaking is mostly based on matching the input-output parameters of service requests and service provisions. However, such approaches do not capture the semantics of the services and hence cannot match requests to services effectively. This paper proposes an agent-based approach for matchmaking that is based on capturing the semantics of services and requests formally through temporal logic. Requests are represented as a set of properties and compared to the service representations using model checking, yielding results on whether a service can satisfy a request or not. By help of domain ontologies, our approach also supports flexible matching, where partially matching services are identified. We provide a general framework, where our approach can work with other existing matchmaking approaches and is integrated with current ef...