> Ok, fair enough. In an interactive representation it's as if
> there is an FG after every move, right?
You might put it that way, although it is not really what this is about. SGF
standard always assumed that properties are only valid in the context of the
current node. FG is used to mark where figures begin and where they end.
> Is CR a special markup, different from MA, or SQ for example?
No. I was just implying that it only marks the current move and thus is not
important. Markup holding special information would be e.g. TB, TW (territory
> However, the example I gave had one FG attached to the final
> move, this was intentional. I was discussing the print to paper
> containing various moves:
Well, actually FG should be at the beginning because the spec clearly
The figure property is used to divide a game into
different figures for printing: a new figure starts at the
node containing a figure property.
See also: http://www.red-bean.com/sgf/examples/
> Or could one argue that annotations are included in the diagram
> unless they would obscure other information and are removed after
> the FG has been processed (similar to interactive mode with FG
> at each move)?
The spec is vague at that point. I think up to (and including) FF4 printing
was never a strong point of SGF, although FF4 made some progress in that
direction (FG, PM, VW).
For interactive representation it is clear: remove markup once you leave the
node. Printing applications may have different needs that are currently not
addressed in SGF. Here it is left to the application how to handle this.
The problem is of course, how would your application handle something like
Two problems: 'aa' holds two different markups in two different nodes and
referring to '1' may be ambiguous too: is it 'aa' or 'bb'? In the context of
"interactive displaying" there's no problem as at every node only one label
is visible, thus no ambiguity. In the example files at red-bean I therefore
moved all relevant markup to the last node of the figure.
The real problem is: if you have an SGF file that was edited with printing at
the back of your mind, it will avoid ambiguities. Thus showing all markup
that occurs between two FG properties is straight-forward. One could argue
that you could also move all markup to the last node like I did for the
However, if you have an SGF file that was edited for online representation
(e.g. GTL reviews) you cannot assume that markup will not overlap. Printing
in that case either produces "errors" or needs some kind of user interaction.
My personal opinion is that printing should always involve some kind of dialog
with the user where they can set various kinds of options. Showing "all
markup" or just the "markup of the latest move" being one of those options.