We consider the problem of query evaluation in Peer-to-Peer (P2P) systems that support semantic-based retrieval services. We confine ourselves to the case where the peers employ taxonomies for describing the contents of the objects, and articulations, i.e. inter-taxonomy mappings, for bridging the inevitable naming, granularity and contextual heterogeneities that may exist between the taxonomies of the sources. We identify two basic query evaluation approaches: one based on query rewriting, the other based on direct query evaluation. For each approach we present a centralized and a decentralized algorithm for carrying out the query evaluation task. Finally, we present a qualitative comparison of these algorithms and discuss further optimizations. Correctness of the algorithms presented is based on a mathematical analysis of the problem.