Semantic service description and matchmaking are needed in embedded and disappearing computing, cooperative multiagent systems, and the semantic web. Standard program semantics formalizations are not suited to modeling service semantics, because they are generic w.r.t. the data manipulated by programs, and because computation details are often irrelevant to the aforementioned applications of service descriptions. An ontology-based approach seems more appropriate. However, current ontology specification languages do not have primitives for service description. In this paper, we identify some useful service description constructs and study their impact on the decidability of reasoning with description logics.