Sophisticated cooperative reasoning among agents requires that the agents be able to share models of their reasoning processes. Developing intelligent systems costeffectively necessitates that components be reused. In order to facilitate sharing and reusing knowledge among distributed (knowledge-based) applications, we have been developing a canonical representation for acquiring and transmitting semantics. This representation will include both a scheme for representing semantics and a hierarchy of concepts used to describe predicates. We have been developing and formalizing a hierarchy describing knowledge to facilitate (1) the specification knowledge and assumptions employed by a system, (2) transferring knowledge among agents (applications) in system and (3) for resolving conflicts among these agents (Figure 1). We are utilizing derivatives of object diagrams [Rumbaugh91], semantic networks [CQ69], and conceptual dependencies [SR74] to describe the fundamental concepts which underlay various algorithms and knowledge representations. By formally describing higher level concepts via these fundamental concepts, we intend to reason about the semantics of and translate knowledge among applications employing different knowledge representations. This hierarchy of concepts will be validated by performing analysis on a complex domain (probably plastics manufacturing) to ensure that the formalisms used to describe elements in the hierarchy are sufficient.