The language for describing inconsistency is underdeveloped. If a knowledgebase (a set of formulae) is inconsistent, we need more illuminating ways to say how inconsistent it is, or to say whether one knowledgebase is "more inconsistent" than another. To address this, we provide a general characterization of inconsistency, based on quasi-classical logic (a form of paraconsistent logic with a more expressive semantics than Belnap’s four-valued logic, and unlike other paraconsistent logics, allows the connectives to appear to behave as classical connectives). We analyse inconsistent knowledge by considering the conflicts arising in the minimal quasi-classical models for that knowledge. This is used for a measure of coherence for each knowledgebase, and for a preference ordering, called the compromise relation, over knowledgebases. In this paper, we formalise this framework, and consider applications in managing heterogeneous sources of knowledge.