Semantic Matching: Algorithms and Implementation