Knowledge representation (KR) is the theory for expressing information in computer systems. Fundamentally, the task of defining an interface is a matter of knowledge representation; how should the information passed to AI modules be encoded? Fortunately, beyond our experience with data structures, the theory of knowledge has been extensively studied within the field of AI [Davis93, Cawsey94, Yang01].
Fundamentally, a KR is a substitute for the real information (that is, it's a surrogate). Even with virtual worlds, we cannot provide the AI with the entire information available, so it often needs to be represented concisely.
KR languages are the means for formalizing the representation. The expressiveness of a language determines how well it represents knowledge in general. The information is partly in notational form (specified explicitly) and inferential form (deduced from existing knowledge).
The efficiency of the KR language is paramount for AI systems. Trade-offs apply when preferring a particular option; disk storage limits the notational aspect, whereas computational power prevents highly inferential approaches.
By supporting inference, a KR language is also a fragmentary theory for intelligent computing—with well-defined syntax (specifying the structure of sentences) and semantics (defining their meaning). A language should be consistent, guaranteeing that statements are valid and that conclusions drawn by the system are sound.
The completeness of a language is a measure of how well the required knowledge is expressed. The extensibility of a language determines how easy it is to customize to particular problems (either manually or automatically). Some languages are also more natural than others, easier to understand or write by humans wanting to communicate with the computer.
There is a very strong link between interface representation and reasoning. Choosing a representation is in fact an ontological commitment (that is, deals with the nature and relation of entities); these commitments accumulate in layers as the architecture is refined.
However, KR formalisms can almost always be roughly converted from one to another. This provides much more freedom during the interface design because we can specify a flexible representation, converting it internally to a format convenient for implementation.