A move token such as Nf3 describes one move.
Annotated chess must represent more:
- whose move it is;
- where a fragment begins;
- which line is the main continuation;
- which moves are alternatives;
- what the annotator thinks;
- what comments explain.
This creates a variation tree.
Full moves and ply
Chess uses two related counting units.
Full move
A move number normally groups:
- White's move;
- Black's reply.
Example:
1. e4 e5
Ply / half-move
One individual move by one side.
So:
1.e4= one ply;1...e5= another ply.
Two plies ordinarily complete one full move number.
Move number and ply are not synonyms.
This distinction reappears in:
- FEN halfmove clock;
- PGN
PlyCountmetadata; - engine analysis.
Standard move numbering
A conventional sequence:
1. e4 e5
2. Nf3 Nc6
3. Bb5 a6The integer marks the fullmove number.
A single period is associated with a White move in PGN export numbering.
Starting a fragment with Black to move
Sometimes an analysis fragment begins with Black's move.
Human prose may show:
1... c5
or if continuing an existing game:
12...Nf6.
PGN export uses three periods before a Black move when a move-number indication is required:
12... Nf6.
`12.` points to White's move. `12...` points to Black's move.
Main line and variation
Main line
The primary sequence currently being presented.
Variation
An alternative continuation branching from an earlier position.
Branch point
The position where the alternative diverges.
Example prose:
1. e4 e5 2. Nf3 Nc6Alternative after 1.e4:
1... c5The alternative does not happen after 1...e5. It replaces it from the branch point.
Parenthesized variations
PGN uses Recursive Annotation Variations — RAVs — in parentheses.
Example:
1. e4 e5 (1... c5 2. Nf3) 2. Nf3The parenthesized line is an alternative to the move immediately before the RAV after backing up to the correct branch position under PGN's rule.
Parentheses represent a branch, not an extra move played in the main game.
Reading a variation safely
When entering a variation:
- identify which main-line move it replaces;
- mentally restore the branch-point position;
- follow the moves inside parentheses;
- when the variation ends, return to the main-line position outside it.
e4e5e4c5Nested variations
RAVs can be nested.
Example structure:
1. e4 e5
(1... c5 2. Nf3 (2. Nc3 Nc6) 2... d6)
2. Nf3The inner variation branches from a position inside the outer variation.
Reading hierarchy
Use levels:
- Level 0 → main line;
- Level 1 → first alternative;
- Level 2 → alternative inside that alternative.
Comments
Comments explain information that SAN alone cannot encode.
Possible content:
- move idea;
- factual context;
- alternative plan;
- warning;
- historical note;
- evaluation explanation.
PGN brace comments
PGN allows comments enclosed in braces:
1. e4 {White occupies the center.} e5Semicolon comments
PGN also defines a rest-of-line comment beginning with:
;
This is more technical and less common in published human-facing PGN.
Editorial prose vs machine data
A webpage may display:
White chooses a forcing continuation.
That sentence is editorial presentation.
Inside actual PGN data, the portable comment form would be:
{White chooses a forcing continuation.}Do not confuse:
- rendered prose;
- raw PGN syntax.
Traditional move annotations
Common suffixes:
!good move;?poor move;!!especially strong/brilliant move;??serious blunder;!?interesting/enterprising move;?!dubious/questionable move.
These are subjective/editorial evaluations.
Their meaning is conventional rather than mathematically exact.
Do not teach a universal engine threshold for !, ?, !!, etc.
Publishers and annotators differ.
Position evaluation symbols
Chess annotations also use symbols for a position, not only a move.
Common families express:
- equality;
- slight advantage;
- clear advantage;
- decisive advantage;
- unclear position;
- compensation.
Examples in print traditions can include glyphs such as:
=;±;∓;+−;−+;∞;- compensation symbols.
Numeric Annotation Glyphs — NAGs
PGN provides language-independent numeric annotations.
Form:
$+ non-negative integer.
Examples:
$1;$2;$3.
The original PGN specification defines the NAG number range:
- 0–255.
Important common move NAGs include:
$1good move!;$2poor move?;$3very good move!!;$4very poor move??;$5speculative/interesting!?;$6questionable?!.
NAGs encode annotation semantics in a language-independent numeric form.
A reader does not need to memorize the entire namespace.
Traditional suffixes in PGN import/export
The original PGN specification allows the six traditional suffixes in import movetext.
Canonical export translates them to NAG tokens.
Example concept:
Import-friendly:
Qxa8?
Canonical export:
Qxa8 $2
Human-friendly punctuation and canonical machine-portable annotation can be different representations of the same judgement.
Objective vs subjective symbols
This separation must survive every future layout.
| Symbol family | Example | Meaning type |
|---|---|---|
| Game-state suffix | + | objective check |
| Game-state suffix | # | objective mate |
| Move annotation | ! | subjective/editorial praise |
| Move annotation | ? | subjective/editorial criticism |
| Position evaluation | ± | assessment of resulting position |
| NAG | $1 | portable annotation code |
Check/mate notation is not annotation. Annotation is not legality. Evaluation is not move syntax.
Reading an annotated variation tree
Consider a pedagogical structure:
1. e4 e5
2. Nf3 Nc6
3. Bb5 {The main line continues with pressure on c6.}
(3. Bc4 Nf6 (3... Bc5 4. c3) 4. d3)
3... a6 $1
4. Ba4 Nf6Read it in layers.
Main line
- 1.e4 e5
- 2.Nf3 Nc6
- 3.Bb5 a6
- 4.Ba4 Nf6
Comment
After 3.Bb5:
- prose explanation.
First variation
Instead of 3.Bb5:
3.Bc4 Nf6 4.d3.
Nested variation
Inside that alternative:
- Black can instead play
3...Bc5 4.c3.
Annotation
$1evaluates...a6as a good move under the NAG convention.
Variation-tree mistakes
"Everything inside parentheses happened in the game."
Wrong. It is an alternative branch.
"A nested variation branches from the main line automatically."
Wrong. It branches from the position inside the enclosing variation.
"+ means good move."
Wrong. It means check.
"! is an objective rules symbol."
Wrong. It is an annotation judgement.
Three annotation layers to keep separate
Annotated chess often puts several kinds of information next to the same move. They should not be treated as one vocabulary.
Move-state information
Examples:
+check;#checkmate.
These describe objective consequences of the move.
Move-quality judgement
Examples:
!;?;!?;- NAG equivalents such as
$1and$2.
These express an annotator's judgement. Their thresholds are conventional, not universal engine laws.
Position evaluation
Symbols such as equality, slight advantage or decisive advantage evaluate the position reached, not merely whether the last move was "good" or "bad".
Keeping these layers separate prevents a common reading error: interpreting every symbol after a move as if it described the same thing.
How to navigate a dense variation tree
For long analysis, use the board position as your anchor.
Before entering a parenthesis:
- identify the move the variation is replacing;
- restore the branch-point position;
- play only the moves inside that variation;
- if a nested variation begins, repeat the process from its local branch point;
- when a variation closes, return to the position of its parent line.
If you lose the position, stop and reconstruct it. Guessing from move text is especially dangerous when the same piece can reach several squares or when captures have changed the board materially.
Human annotations and portable data
Printed books and websites often favor familiar punctuation because it is immediately readable. PGN can encode many of those judgements as Numeric Annotation Glyphs, which are more language-independent for interchange.
That does not mean every interface must display $1 to a reader. A database can store a portable annotation and render it as !, a symbol, or explanatory prose.
Representation and presentation are separate choices.
Frequently asked questions
What does ... mean after a move number?
It marks that the move shown is Black's move for that fullmove number, as in 17...Nf6.
Does a parenthesized PGN variation happen after the main-line move before it?
Not in the simple "continue from here" sense. A Recursive Annotation Variation is an alternative branch and must be read from the correct branch-point position.
Are ! and ? objective engine scores?
No. They are conventional annotations. Engines may inform the judgement, but there is no universal centipawn threshold that makes ! or ? objectively mandatory.
Key takeaways
Annotated chess combines:
- move numbers;
- SAN;
- variations;
- comments;
- subjective move symbols;
- position evaluations;
- NAGs.
Critical distinctions:
- fullmove ≠ ply;
n.≠n...;- main line ≠ variation;
- nested branch inherits its local position;
+/#≠!/?;- evaluation glyphs ≠ move syntax;
- NAGs provide portable annotation codes.
Check your understanding
- [ ] I distinguish fullmoves and plies.
- [ ] I read White and Black move numbering.
- [ ] I can follow parenthesized RAVs.
- [ ] I can follow one nested RAV.
- [ ] I understand brace comments.
- [ ] I know the six traditional move annotations.
- [ ] I distinguish move annotation from position evaluation.
- [ ] I understand NAG purpose.
- [ ] I can read a short annotated variation tree.