S-Match: an algorithm and an implementation of semantic matching