Systems with human-level intelligence must be both flexible and able to reason in an appropriate time scale. These two goals are in tension, as manifested by the contrasting properties of general inference algorithms and structured knowledge-based systems. The problem of resolving ambiguous, implicit, and nonliteral references exemplifies many of these difficulties. We describe an approach, called reasoned unification, for dealing with these challenges by representing and jointly reasoning over linguistic and nonlinguistic knowledge (including structures such as scripts and frames) within the same inference framework. Reasoned unification enables a treatment of several reference resolution phenomena that to our knowledge have not previously been the subject of a unified analysis. This analysis illustrates how reasoned unification can resolve many difficult problems with using complex knowledge structures while maintaining their benefits.