Secondary notation is the set of visual cues used to improve the readability of a formal notation. Secondary notation is often not a part of the formal notation itself. Rather, it is a method of organizing the formal notation to allow it to be more easily understood. Thus, secondary notation does not change the actual meaning of the formal notation, rather it allows for the meaning to be readily understood. In text such as programming languages, this can be done using cues such as indentation and coloring. In formal graphical notations, this can be done through the use of symmetry or proximity to indicate relatedness.
Secondary notation annotates formal notation in a number of contexts which can be broken down to two main domains: text and graphics.
There are a number of common instances of secondary notation that are seen in text. Secondary notation is common in typography and in code editors appearing as boldness, italics, and spacing/indentation.
Secondary notation in the form of coloring and indentation is commonly implemented in integrated development environments to make source code more readable and make the formal notation more understandable. The following C source code does not use secondary notation to ease the interpretation of the formal notation:
int main(){while(true){printf("I'm stuck in an infinite loop!");}}
The following is the same code, but with indentation and syntax highlighting. As a result, the formal notation of C is easier to read:
A number of examples of secondary notation that commonly appear in English writing include
Secondary notation is commonly used in graphical contexts to better convey information beyond what the formal notation of the graphic makes explicit.
A graphical representation that has been well studied and can be heavily impacted by secondary notation is a flowchart and especially drakon-charts. Research has shown that there are a number of layout factors unicorporated into the formal notation that impact a flowchart's ease of understanding:
The examples on the right show how these techniques can drastically affect the ease of understanding when looking at a process model. The model depicts a simplified process for ordering products from a website. Both diagrams contain exactly the same blocks with the same interconnections. However, the one that uses better secondary notation can be readily understood whereas the other model requires careful analysis to understand its contents.