[computer-go] Problems in SGF format
Antoine de Maricourt
antoine.de-maricourt at m4x.org
Sun Oct 1 13:49:07 PDT 2006
Martin Müller and Tristan Cazenave developped a language to describe
properties of positions. It seems a little bit complicated for your
purpose. You can have a look at:
http://www.cs.ualberta.ca/~mmueller/cgo/readmenew.html
I was one of the (probably many) people that suggested Thomas Wolf to
use SGF. However, I found out that SGF files were not practical to
handle large collections of problems. I finally developped a small
custom database-like format that I found much more convenient to use.
The main problem I had with SGF files was to automatically add new
positions that caused an assertion to fail in my program (in order to
build non-regression tests), and to ensure I did not add duplicated
positions in the collection.
In order to encode goals attached to a position, I use a straitforward
representation. Primary goals are boolean function of up to 3 block ID.
For instance 'capture(block_X)' or 'connect(block_X,block_Y)'. Then the
goal is encoded as a boolean function of primary goals, using AND, OR
and NOT operators. The format I use allows up to 4 block ID to be used.
I never needed more. The result is the expected value of the boolean
function (true or false) + an ID that identifies the method used to get
this result.
Antoine
> I have a relatively small set with tactical problems that I use for
> unit-tests. When making the Tsume-Go program we used to have a very
> large set of problems we used for regression testing, for which we
> used a custom format.
>
> Instead of hard-coding each problem as a unit-test, what I do now, I
> think it would be much handier if I could put them in a SGF file. So
> my question is if there's a standard way defined to represent such
> problems. What I'm looking for is a standard way to express "Black to
> play and catch the stone(s) at X,Y." Or "Black to play and escape
> (live) with stones X,Y".
>
> Those are probably the only two types of problems I need. But what
> also needs to be expressed in the SGF file is the result of the
> problem so that it can be compared with the result of the search.
> This could look like something like "Black is alive (or escaped) when
> playing X,Y". From the Tsume-Go program I learnt that ko-type
> situations can best be described by a number of passes. For example
> "Black is alive (or escaped) when playing X,Y, White passed twice."
> would mean Black is alive in a two-step ko. The more passes, the worse
> the result. The only exceptions to those were "alive in seki" and
> "dead in bent-four" as special cases. Seki is considered to be
> slightly worse than simply alive, whereas "dead in bent-four" is
> slightly worse than "dead", although it's a minor thing that I
> wouldn't mind lumping together with "alive" and "dead".
>
> Mark
>
> _______________________________________________
> computer-go mailing list
> computer-go at computer-go.org
> http://www.computer-go.org/mailman/listinfo/computer-go/
>
>
More information about the computer-go
mailing list