Integrating and composing web services from different providers requires a solution for the problem of different providers using different names for the same object. We argue that while URIs might be adequate for creating shared namespaces for classes and property types, the practical difficulties associated with everyone using the same URI for individual objects makes exclusive dependence on this approach untenable. We first consider the use of shared keys to solve this matching problem and discuss some of the problems associated with this approach. We introduce the concept of DD, a generalization of keys and discuss some conditions under which common DDs guarantee correct matches. We then propose a probabilistic approach to matching and consider, with empirical validation, approximations as a solution to the problem of requiring a combinatorially large number of probabilities. Finally, we introduce Semantic Negotiation, a process by which two agents can negotiate a mutually comprehensible reference for an object.