Most previous schema mapping works focus on creating mappings in specific data models for data transformation, failing to capture a richer set of possible relationships between schema elements. For example, most schema matching approaches might discover that 'TA' in one schema equals 'grad TA' in another one, even though the relationship can be modeled more accurately by saying that 'grad TA' is a specialization of 'TA'. Deepening the mapping semantics in turn allow richer application semantics. This paper presents and proves the effectiveness of SeMap, a system that constructs a complex, semantically richer mapping (including 'Has-a', 'Is-a', 'Associates' and 'Equivalent' relationship types) that can be used across data models. We achieve this goal by: (1) exploiting semantic evidence for possible matches; (2) finding a globally optimal match assignment; (3) identifying the relationship embedded in the selected matches. We implemented our semantic matching approach within a prototype system, SeMap, and showed its accuracy and effectiveness.