This page lists an SGF editor feature that could be nice to have. Maybe some editors already have it, not sure about that.
The term "semi-automatic" is chosen because it is still the human that introduces knowledge, but uses a classical SGF editor with additional (dumb) features.
The idea is to let the user create the evaluation tree (this is already possible) but also to assign values to positions; the application shows which path is the best, based on a minimax over the user's evaluation tree. The feature provided by the application is to exploit the FF 'V' property.
- A leaf node is an end node (without variations)
- The value/rating of a node is an integer, positive when the position is good for Black, negative when good for White, or zero if equal. It is up to the user to decide on the meaning of magnitude (eg score estimated, or just a limited ranged such as 2=very good, 1=good, ... ) The essence is that the value will be used by the application to compare and rank nodes.
- A node is unrated if any of its leaves has no value: an unrated node is an indication to the user that (s)he must navigate to the unrated leaf(s) and assign a value.
- creates (manages) variations
- evaluates leaf nodes by assigning a value that is stored by the application in the SGF node's FF 'V' property
- shows which variations need to be explored or evaluated (eg by coloring unrated nodes red)
- presents a best move path (eg. highlight the best move?) as found thru minimax
- In the current node, the user adds (manages) variations (siblings). Some mechanism shows the user which - if any - siblings represent a fully evaluated tree (i.e. each leaf has a value), and its value
- The user selects (enters) a variation and creates deeper variations
- Or, the user assigns a value to the current position (which is a leaf), editor stores that value in node's 'V' property, and switches to the next leaf without a value. This could also be performed by hand by having the user travel up, then look for the next unrated node, then down until the leaf node.
- To investigate: if a node received a value, then later receives child nodes, its value is no longer taken into account.
- The application could erase the value,
- or emit a warning and ignore it (which has the advantage that the value can still be used by the user, especially when the child nodes are destroyed)
When, in a node, all variations have a value, the editor could rename the variations so that variation 1/A becomes the best move at that level. Optionally, the editor allows the current node to become part of the main branch (kind of "stretch" the current path so that it becomes part of the main branch).
As the application knows in each node who is at move, it can indicate the best move (using eg minimax) among the variations (siblings) in that node, and even the best move sequence as deep as possible (until a node is found without rating.)
 Willemien GoHome has something that looks a bit like this (you can add values like w+? and b+? in the tree.and it automaticly shows the value of the best variation. unfortunedly Gohome does not use the V property but puts them into the comment field. I did discuss this with Anders Kierulf the author of SmartGo so maybe it will at some point appear in his programs. (axd: indeed, see my rmq)