The development of more and more complex distributed applications over large networks of computers has raised the problem of semantic interoperability across applications based on local and autonomous semantic schemas (e.g., concept hierarchies, taxonomies, ontologies). In this paper we propose to view each semantic schema as a context (in the sense defined in [1]), and propose an algorithm for automatically discovering relations across contexts (where relations are defined in the sense of [8]). The main feature of the algorithm is that the problem of finding relationships between contexts is encoded as a problem of logical satisfiability, and so the discovered mappings have a well–defined semantic. The algorithm we describe has been implemented as part of a peer-to-peer system for Distributed Knowledge Management, and tested on significant cases.