[computer-go] Problems in SGF format

Mark Boon tesujisoftware at gmail.com
Mon Oct 2 06:38:37 PDT 2006


On 1-okt-06, at 17:49, Antoine de Maricourt wrote:

> 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.

Those are valid points. I agree that storing problems in a database  
offers more flexibility. But it's harder to share. For now I'm happy  
to think of problem collections in an SGF file. Maybe later I'll move  
them to a database, but with the proper access interfaces the  
difference shouldn't be major.

I've been thinking about this and related issues for a few days now  
and haven't gotten to much actual programming. So far I haven't  
concerned myself with any UI for my project, I've used GoGui where an  
interface was required. But now I need to debug a 3-liberty module  
and I need a way to inspect the move-tree and the results of the  
reading process. I may be able to deug it simply using a debugger,  
but I know I'm going to need this later for other readers anyway.

Previously I had made a simple front-end where I used the concept of  
data-providers and tactical-readers. I've discussed data-providers  
before, I'll now concentrate on the tactical-readers. Basically an  
engine will contain several tactical readers to perform different  
tasks. What I'd like to have is a way to ask the engine for the  
readers available. Then I'd like to be able to send a reader a  
problem. This where the bit about standard coding of problems in SGF  
comes in. So I'd probably like to have a GTP command that has the  
form of "read_problem <reader_name> <problem_sgf>" which returns sgf  
containing the move-tree annotated with results.

There are different paths I can now take. I can adapt the simple  
front-end I have to communicate with GTP or I can adapt GoGui. In  
both cases I'll have to add some private extensions to GTP. (I also  
still want my engine to be able to connect to a socket instead of the  
named pipes, so I can use the front-end but run my engine in debug- 
mode. But that's maybe of a later concern.)

Mark


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://computer-go.org/pipermail/computer-go/attachments/20061002/64eb30c3/attachment.htm


More information about the computer-go mailing list