Right now you are reading a sentence. Earlier, you might have been looking at a realistic picture, such as a photograph, or an outline drawing in a set of instructions. If you are a programmer, you work with sentence-like structures, such as code, or a system diagram. These are all graphic representations. To varying degrees, the effectiveness of every graphic representation relies on its ability to convey the designer’s intended meaning and elicit the intended reaction from its audience. However, the design of graphic representations, even in technical domains such as visual programming language design or interactive information visualization, currently relies heavily on general principles based solely on practice, intuition, and informal...