Re: [computer-go] A thought about Bot-server communications

2007-12-13 Thread Vlad Dumitrescu
On Dec 13, 2007 12:17 PM, Jacques Basaldúa <[EMAIL PROTECTED]> wrote:
> Nick Wedd wrote:
> > In one of the British Championship Match games, a bit over ten years
> > ago, Zhang Shutai made an illegal ko move against Matthew Macfadyen, and
> > immediately conceded that he had lost the game.
>
> Is the game record available? I am interested because I have only found 2
> situations in real games:
>
> a. Triple ko
> b. Double ko when the group sharing the kos has nothing better than life in 
> seki.
>
> Both have cycles smaller than 8 ply and my software doesn't check longer 
> cycles.
>
> I guess any human player would recognize these situations. So if a strong 
> player
> didn't it must be something more complicated.

It doesn't have to be. It can simply be so that he recaptured the ko directly.

I remember (but can't find it) that it was relatively recently that a
japanese 9 dan pro did the same mistake.

regards,
Vlad
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] A thought about Bot-server communications

2007-12-13 Thread Nick Wedd
In message <[EMAIL PROTECTED]>, Jacques Basaldúa 
<[EMAIL PROTECTED]> writes

Nick Wedd wrote:

In one of the British Championship Match games, a bit over ten years 
ago, Zhang Shutai made an illegal ko move against Matthew Macfadyen, 
and  immediately conceded that he had lost the game.


Is the game record available?



This was an ordinary ko, there was nothing remarkable about the game. 
(Anyway the record is no longer available.)


Nick


I am interested because I have only found 2
situations in real games:

a. Triple ko
b. Double ko when the group sharing the kos has nothing better than 
life in seki.


Both have cycles smaller than 8 ply and my software doesn't check 
longer cycles.


I guess any human player would recognize these situations. So if a 
strong player

didn't it must be something more complicated.


Jacques.

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


--
Nick Wedd[EMAIL PROTECTED]
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] A thought about Bot-server communications

2007-12-13 Thread Jacques Basaldúa

Nick Wedd wrote:

In one of the British Championship Match games, a bit over ten years 
ago, Zhang Shutai made an illegal ko move against Matthew Macfadyen, and 
immediately conceded that he had lost the game.


Is the game record available? I am interested because I have only found 2
situations in real games:

a. Triple ko
b. Double ko when the group sharing the kos has nothing better than life in 
seki.

Both have cycles smaller than 8 ply and my software doesn't check longer cycles.

I guess any human player would recognize these situations. So if a strong player
didn't it must be something more complicated.


Jacques.

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] A thought about Bot-server communications

2007-12-12 Thread terry mcintyre
Take this with a grain of salt, since I am a novice, but my understanding
of the distinction is this: violating the ko rule flows from an incorrect
decision made by the player; playing a stone of the wrong color from external 
mishap - the stone should not have been in the player's bowl. Usually one spots
such a mishap and hands the stone to the opponent, but it's possible to be so 
focused on the board that one doesn't actually look at the stone itself until 
it 
has been placed. Hence the two different levels of penalty.

Now, for a computer program, there are no such mitigating circumstances; 
if a white stone appears where a black stone ought to be, that's a bug; best to 
stomp on it before it wreaks more havoc.

From: Nick Wedd <[EMAIL PROTECTED]>

>In serious tournament go the convention is that you lose immediately.
>
>(I haven't heard of a case of someone playing a stone of the wrong
 colour in
>such a tournament, but certainly playing a move forbidden by the ko
 rule
>forfeits the game).

It may depend what you mean by "serious tournament".

In one of the British Championship Match games, a bit over ten years 
ago, Zhang Shutai made an illegal ko move against Matthew Macfadyen,
 and 
immediately conceded that he had lost the game.

In the "Candidates' Tournament", a preliminary round for the British 
Championship, last year. I observed a player play a stone of the wrong 
colour.  The players had no doubt about the correct action:  the stone 
was removed from the board and replaced by one of the correct colour.







  

Looking for last minute shopping deals?  
Find them fast with Yahoo! Search.  
http://tools.search.yahoo.com/newsearch/category.php?category=shopping___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] A thought about Bot-server communications

2007-12-12 Thread Nick Wedd
In message <[EMAIL PROTECTED]>, Matthew 
Woodcraft <[EMAIL PROTECTED]> writes

Don Dailey wrote:

Ok,  let's get into semantics.   Is superko an illegal move?   Is it
simply forbidden or is it part of the rules that you lose immediately if
you play it? In card games that is called an irregularity and there
are separate rules  to deal with these.

If you make some other illegal move what happens?For instance if you
take one the opponents stones and place it on the board?Do you lose
immediately or do you get your hand slapped with the objection that "you
can't make that move,  play something real!"


In serious tournament go the convention is that you lose immediately.

(I haven't heard of a case of someone playing a stone of the wrong colour in
such a tournament, but certainly playing a move forbidden by the ko rule
forfeits the game).


It may depend what you mean by "serious tournament".

In one of the British Championship Match games, a bit over ten years 
ago, Zhang Shutai made an illegal ko move against Matthew Macfadyen, and 
immediately conceded that he had lost the game.


In the "Candidates' Tournament", a preliminary round for the British 
Championship, last year. I observed a player play a stone of the wrong 
colour.  The players had no doubt about the correct action:  the stone 
was removed from the board and replaced by one of the correct colour.


Nick
--
Nick Wedd[EMAIL PROTECTED]
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] A thought about Bot-server communications

2007-12-11 Thread Matthew Woodcraft
Don Dailey wrote:
> Ok,  let's get into semantics.   Is superko an illegal move?   Is it
> simply forbidden or is it part of the rules that you lose immediately if
> you play it? In card games that is called an irregularity and there
> are separate rules  to deal with these.
>
> If you make some other illegal move what happens?For instance if you
> take one the opponents stones and place it on the board?Do you lose
> immediately or do you get your hand slapped with the objection that "you
> can't make that move,  play something real!"

In serious tournament go the convention is that you lose immediately.

(I haven't heard of a case of someone playing a stone of the wrong colour in
such a tournament, but certainly playing a move forbidden by the ko rule
forfeits the game).

-M-

___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] A thought about Bot-server communications

2007-12-11 Thread terry mcintyre
Perhaps servers should have test suites and regression tests for participants. 
These would enable bugs to be worked out before engaging in tournament play.
 
Terry McIntyre <[EMAIL PROTECTED]>
They mean to govern well; but they mean to govern. They promise to be kind 
masters; but they mean to be masters. -- Daniel Webster

- Original Message 
From: Gunnar Farnebäck <[EMAIL PROTECTED]>
To: computer-go 
Sent: Tuesday, December 11, 2007 10:12:57 AM
Subject: Re: [computer-go]  A thought about Bot-server communications


Nick Wedd wrote:
>> Sorry, but I can't take this seriously. If your board update routine
>> fails, just fix it. As long as you trust the controller to send
 legal
>> moves, it's well defined how the board will look. The same board
>> update logic can be used for all rulesets. If you don't agree about
>> the legality, complain in a logfile. If you don't trust the
 controller
>> to send legal moves, you have a problem that is hardly properly
 solved
>> by asking it for a different board state description.
> 
> I agree that the server knows better than me about the legality.  I 
> trust the server to make legal moves.  I just might not know how to 
> update the board state after a move I had not realised was possible.
> 
> In 1998, running the Ing Cup, I tested all the entrants for their 
> behaviour when someone played a suicide move at them.  Many Faces put
 up 
> a polite dialog box explaining that this was an illegal move.  Go++
 was 
> more amusing:  it allowed the move (which you would approve) but left
 
> the suicided stones on the board, where they became almost
 unkillable, 
> it could not capture them by removing their last liberty as they
 didn't 
> have one, the only way to lose them was to capture exactly one of
 their 
> surrounding stones, in a perverted kind of snapback.  I would have 
> preferred these programs to have been able to respond "wtf is going
 on, 
> please tell me the current board state".

Well, the thing is that fixing the board update logic should in most 
cases be a matter of adding a small number of lines, or in extreme
 cases 
even removing some lines. In terms of programming it's a much bigger 
operation to obtain information by external communication and then 
trying to recover the internal data structures.

/Gunnar
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/






  

Never miss a thing.  Make Yahoo your home page. 
http://www.yahoo.com/r/hs___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] A thought about Bot-server communications

2007-12-11 Thread Gunnar Farnebäck

Nick Wedd wrote:

Sorry, but I can't take this seriously. If your board update routine
fails, just fix it. As long as you trust the controller to send legal
moves, it's well defined how the board will look. The same board
update logic can be used for all rulesets. If you don't agree about
the legality, complain in a logfile. If you don't trust the controller
to send legal moves, you have a problem that is hardly properly solved
by asking it for a different board state description.


I agree that the server knows better than me about the legality.  I 
trust the server to make legal moves.  I just might not know how to 
update the board state after a move I had not realised was possible.


In 1998, running the Ing Cup, I tested all the entrants for their 
behaviour when someone played a suicide move at them.  Many Faces put up 
a polite dialog box explaining that this was an illegal move.  Go++ was 
more amusing:  it allowed the move (which you would approve) but left 
the suicided stones on the board, where they became almost unkillable, 
it could not capture them by removing their last liberty as they didn't 
have one, the only way to lose them was to capture exactly one of their 
surrounding stones, in a perverted kind of snapback.  I would have 
preferred these programs to have been able to respond "wtf is going on, 
please tell me the current board state".


Well, the thing is that fixing the board update logic should in most 
cases be a matter of adding a small number of lines, or in extreme cases 
even removing some lines. In terms of programming it's a much bigger 
operation to obtain information by external communication and then 
trying to recover the internal data structures.


/Gunnar
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] A thought about Bot-server communications

2007-12-11 Thread Erik van der Werf
On Dec 11, 2007 2:18 PM, Don Dailey <[EMAIL PROTECTED]> wrote:
>
> >> There is some
> >> question about how you define a position (a board state, or a board
> >> configuration i.e. SSK or PSK)  but you can nitpick if you want and say
> >> that superko has nothing to do with positions repeating but I think when
> >> a position repeats it's superko.
> >>
> >
> > And when you say it's superko my first thought is that the game is
> > over because one player just made an illegal move...
> >
> >
> >
> >> Are you just trying to nitpick semantics?
> >>
> >
> > In a loose informal context this would certainly be nitpicking (e.g.
> > the difference between 'ko' and 'ko-rule'). However when it is about
> > formalizing rules it really helps to be precise and minimize ambiguity
> > (I would think TT-proponents should at least agree with me on this). I
> > really do think it is important to distinguish clearly between
> > conditions (what constitutes a repetition) and consequences (direct
> > loss / continued analysis / no result, etc.).
> >
> Ok,  let's get into semantics.   Is superko an illegal move?

Again, I regard superko as a concept that refers to a special class of
rules for dealing with repetition.

So no, it is not an illegal move.


>Is it
> simply forbidden or is it part of the rules that you lose immediately if
> you play it? In card games that is called an irregularity and there
> are separate rules  to deal with these.
>
> If you make some other illegal move what happens?For instance if you
> take one the opponents stones and place it on the board?Do you lose
> immediately or do you get your hand slapped with the objection that "you
> can't make that move,  play something real!"

OC we have general tournament rules and rules for dealing with
unsportsmanships behavior...

However, slapping you on the hand and giving you the option to alter
your move does not fundamentally change anything to the assumed
illegality of a particular move. For optimal play you still had to
play elsewhere, hence for a sufficiently informed player the effect is
the same. Traditional rules (without superko) can have fundamentally
different game outcomes. Social etiquette alone does not suffice to
remove these differences.

The fundamental problem with superko is failure to distinguish between
balanced and unbalanced cycles.

In an unbalanced cycle, such as send-2-return-1, your suggestion "you
can't make that move,  play something real!" is fine.
In a balanced cycle, such as triple-ko, this is not the obvious thing to say.

Erik
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] A thought about Bot-server communications

2007-12-11 Thread Don Dailey

>> There is some
>> question about how you define a position (a board state, or a board
>> configuration i.e. SSK or PSK)  but you can nitpick if you want and say
>> that superko has nothing to do with positions repeating but I think when
>> a position repeats it's superko.
>> 
>
> And when you say it's superko my first thought is that the game is
> over because one player just made an illegal move...
>
>
>   
>> Are you just trying to nitpick semantics?
>> 
>
> In a loose informal context this would certainly be nitpicking (e.g.
> the difference between 'ko' and 'ko-rule'). However when it is about
> formalizing rules it really helps to be precise and minimize ambiguity
> (I would think TT-proponents should at least agree with me on this). I
> really do think it is important to distinguish clearly between
> conditions (what constitutes a repetition) and consequences (direct
> loss / continued analysis / no result, etc.).
>   
Ok,  let's get into semantics.   Is superko an illegal move?   Is it
simply forbidden or is it part of the rules that you lose immediately if
you play it? In card games that is called an irregularity and there
are separate rules  to deal with these.

If you make some other illegal move what happens?For instance if you
take one the opponents stones and place it on the board?Do you lose
immediately or do you get your hand slapped with the objection that "you
can't make that move,  play something real!"

> Erik
> ___
> computer-go mailing list
> computer-go@computer-go.org
> http://www.computer-go.org/mailman/listinfo/computer-go/
>
>   
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] A thought about Bot-server communications

2007-12-11 Thread Erik van der Werf
On Dec 11, 2007 4:00 AM, Don Dailey <[EMAIL PROTECTED]> wrote:
> Erik van der Werf wrote:
> > On Dec 10, 2007 6:48 PM, Don Dailey <[EMAIL PROTECTED]> wrote:
> >
> >> In Go however, even if the fundamental game is unchanged you may be
> >> playing illegal moves if you are not aware of the superko situation.
> >>
> >
> > And you think superko is part of the fundamental game???
> >
> Well, I seem to be saying here that it is NOT part of the fundamental
> game.

I'm sorry, then I misunderstood what you were trying to say.


> > BTW Several authors here use the words repetition and superko as
> > synonyms; I believe this is misleading.
> >
> They are essentially synonyms - I don't see your point.

I think you've just proven my point ;-)

In my opinion repetition is a more neutral word. It avoids mixing
conditions with consequences.


> There is some
> question about how you define a position (a board state, or a board
> configuration i.e. SSK or PSK)  but you can nitpick if you want and say
> that superko has nothing to do with positions repeating but I think when
> a position repeats it's superko.

And when you say it's superko my first thought is that the game is
over because one player just made an illegal move...


> Are you just trying to nitpick semantics?

In a loose informal context this would certainly be nitpicking (e.g.
the difference between 'ko' and 'ko-rule'). However when it is about
formalizing rules it really helps to be precise and minimize ambiguity
(I would think TT-proponents should at least agree with me on this). I
really do think it is important to distinguish clearly between
conditions (what constitutes a repetition) and consequences (direct
loss / continued analysis / no result, etc.).

Erik
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] A thought about Bot-server communications

2007-12-10 Thread Don Dailey


Erik van der Werf wrote:
> On Dec 10, 2007 6:48 PM, Don Dailey <[EMAIL PROTECTED]> wrote:
>   
>> In Go however, even if the fundamental game is unchanged you may be
>> playing illegal moves if you are not aware of the superko situation.
>> 
>
> And you think superko is part of the fundamental game???
>   
Well, I seem to be saying here that it is NOT part of the fundamental
game.   Really, the game is not changed a bit if you start from a
arbitrary position and ignore history but only because you will
presumably play the same moves for the same reasons and once again
encounter the superko situations that you discarded when you stored the
position without the state.

So what I'm stating here has nothing to do with whether superko is a
fundamental part of the game or not. 


> In my terminology *repetition*, and having some rules to prevent
> infinite games, is a fundamental aspect of the game. Superko is not
> fundamental.
>   
I'm not making an argument either way.   It clearly influences the game
but whether it's fundamental or not I'll leave to the philosophers.

> BTW Several authors here use the words repetition and superko as
> synonyms; I believe this is misleading.
>   
They are essentially synonyms - I don't see your point.   There is some
question about how you define a position (a board state, or a board
configuration i.e. SSK or PSK)  but you can nitpick if you want and say
that superko has nothing to do with positions repeating but I think when
a position repeats it's superko.

Are you just trying to nitpick semantics?

- Don


> Superko refers to a special class of rules for dealing with repetition
> (to avoid infinite games).
>
> Superko rules share the property that they declare moves that create
> repetition illegal. (They differ only in how they define a
> repetition.)
>
> Superko rules always do what they are supposed to do (prevent infinite
> games), but sometimes they do a bit more...
>
> E.
> ___
> computer-go mailing list
> computer-go@computer-go.org
> http://www.computer-go.org/mailman/listinfo/computer-go/
>
>   
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] A thought about Bot-server communications

2007-12-10 Thread Erik van der Werf
On Dec 10, 2007 6:48 PM, Don Dailey <[EMAIL PROTECTED]> wrote:
> In Go however, even if the fundamental game is unchanged you may be
> playing illegal moves if you are not aware of the superko situation.

And you think superko is part of the fundamental game???

In my terminology *repetition*, and having some rules to prevent
infinite games, is a fundamental aspect of the game. Superko is not
fundamental.

BTW Several authors here use the words repetition and superko as
synonyms; I believe this is misleading.

Superko refers to a special class of rules for dealing with repetition
(to avoid infinite games).

Superko rules share the property that they declare moves that create
repetition illegal. (They differ only in how they define a
repetition.)

Superko rules always do what they are supposed to do (prevent infinite
games), but sometimes they do a bit more...

E.
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] A thought about Bot-server communications

2007-12-10 Thread Nick Wedd
In message <[EMAIL PROTECTED]>, Gunnar Farnebäck 
<[EMAIL PROTECTED]> writes

Nick Wedd wrote:

When I play Go on a Go server, I do not try to remember the board
position.  I can always find out what it is by looking at the client
window on my screen.

When a bot plays on a Go server, it does remember the position. This is
something that programs are good at, so it seems reasonable to require
them to do it.

But there can be, very rarely, circumstances where a bot would like to
ask the server "what is the current board position?".  Here are some
examples.
(1)  My bot's opponent has just made a suicide move.  My bot does
not realise that, under the ruleset we are using, suicide is permitted.
Therefore its board-update routine fails.  It knows that its opponent
has moved, and it knows that it does not know the current position.  It
would like to ask the server to send the current position.


Sorry, but I can't take this seriously. If your board update routine
fails, just fix it. As long as you trust the controller to send legal
moves, it's well defined how the board will look. The same board
update logic can be used for all rulesets. If you don't agree about
the legality, complain in a logfile. If you don't trust the controller
to send legal moves, you have a problem that is hardly properly solved
by asking it for a different board state description.


I agree that the server knows better than me about the legality.  I 
trust the server to make legal moves.  I just might not know how to 
update the board state after a move I had not realised was possible.


In 1998, running the Ing Cup, I tested all the entrants for their 
behaviour when someone played a suicide move at them.  Many Faces put up 
a polite dialog box explaining that this was an illegal move.  Go++ was 
more amusing:  it allowed the move (which you would approve) but left 
the suicided stones on the board, where they became almost unkillable, 
it could not capture them by removing their last liberty as they didn't 
have one, the only way to lose them was to capture exactly one of their 
surrounding stones, in a perverted kind of snapback.  I would have 
preferred these programs to have been able to respond "wtf is going on, 
please tell me the current board state".



(2)  As (1), but with a move that my bot thinks, wrongly, is
forbidden by superko.


Same as (1).


(3)  My bot, or the platform on which it is running, has had a
serious accident.  I have relaunched my bot and it wants to resume its
game but has no knowledge of the position.


It's standard practice for the controller to send "play" commands up
to the point of resumption. If the engine has to be restarted the
controller knows that it has lost state, there's no need for the
engine to ask. KgsGtp knows how to do this, the CGOS client knows how
to do this.


It's good to know that.


If my understanding of the GTP spec at
http://www.lysator.liu.se/~gunnar/gtp/gtp2-spec-draft2/gtp2-spec.html is
correct, it is not possible for a bot to say "please tell me the
position".  Should it be possible?


No it shouldn't. GTP is designed to make it easy for engine authors to
implement what the engine needs to play a game. For a go server
protocol it can be useful to have methods to negotiate komi, negotiate
opponents, ask the server all kinds of questions, and so on, but this
is out of scope for GTP.


A similar question applies to time.  When I play in a tournament, I am
allowed to look at my clock to find out how much time I have left.  I am
surprised to find that GTP provides no way for a bot to ask this. (Maybe
I am misunderstanding the spec.  I see that there are commands
'time_settings' and 'time-left' that the server can use to inform the
bot of its remaining time, but I can find no indication of when, if
ever, these commands will be issued.)


For a game with time controls the controller is expected to send
time_left commands once per move to keep the engine informed about the
time situation. While thinking on a move the engine is expected to
keep track of time by itself.


I see.  And that is up to the controller, so it's not mentioned in the 
GTP spec.



By the way, if this has anything to do with KGS, the real problem
there is that people who want to do advanced things with bots cannot
modify kgsGtp, nor speak the server protocol themselves, since those
are both proprietary.

And just to be clear, the normal mode of communication between a bot
and a server, if GTP is involved, is

Server <---server protocol---> Client <---GTP---> Engine



The server protocol and GTP have very different roles, capabilities,
and complexities. In some cases the server protocol can be near GTP in
complexity (CGOS), in some cases the server protocol is not available
(KGS), and in some cases the server protocol can be hugely complex
(IGS and NNGS clones). For the best result the client should have open
code and be very configurable.


Thank you for the explanations.

Nick


/Gunnar
__

Re: [computer-go] A thought about Bot-server communications

2007-12-10 Thread Gunnar Farnebäck

Nick Wedd wrote:
> When I play Go on a Go server, I do not try to remember the board
> position.  I can always find out what it is by looking at the client
> window on my screen.
>
> When a bot plays on a Go server, it does remember the position. This is
> something that programs are good at, so it seems reasonable to require
> them to do it.
>
> But there can be, very rarely, circumstances where a bot would like to
> ask the server "what is the current board position?".  Here are some
> examples.
> (1)  My bot's opponent has just made a suicide move.  My bot does
> not realise that, under the ruleset we are using, suicide is permitted.
> Therefore its board-update routine fails.  It knows that its opponent
> has moved, and it knows that it does not know the current position.  It
> would like to ask the server to send the current position.

Sorry, but I can't take this seriously. If your board update routine
fails, just fix it. As long as you trust the controller to send legal
moves, it's well defined how the board will look. The same board
update logic can be used for all rulesets. If you don't agree about
the legality, complain in a logfile. If you don't trust the controller
to send legal moves, you have a problem that is hardly properly solved
by asking it for a different board state description.

> (2)  As (1), but with a move that my bot thinks, wrongly, is
> forbidden by superko.

Same as (1).

> (3)  My bot, or the platform on which it is running, has had a
> serious accident.  I have relaunched my bot and it wants to resume its
> game but has no knowledge of the position.

It's standard practice for the controller to send "play" commands up
to the point of resumption. If the engine has to be restarted the
controller knows that it has lost state, there's no need for the
engine to ask. KgsGtp knows how to do this, the CGOS client knows how
to do this.

> If my understanding of the GTP spec at
> http://www.lysator.liu.se/~gunnar/gtp/gtp2-spec-draft2/gtp2-spec.html is
> correct, it is not possible for a bot to say "please tell me the
> position".  Should it be possible?

No it shouldn't. GTP is designed to make it easy for engine authors to
implement what the engine needs to play a game. For a go server
protocol it can be useful to have methods to negotiate komi, negotiate
opponents, ask the server all kinds of questions, and so on, but this
is out of scope for GTP.

> A similar question applies to time.  When I play in a tournament, I am
> allowed to look at my clock to find out how much time I have left.  I am
> surprised to find that GTP provides no way for a bot to ask this. (Maybe
> I am misunderstanding the spec.  I see that there are commands
> 'time_settings' and 'time-left' that the server can use to inform the
> bot of its remaining time, but I can find no indication of when, if
> ever, these commands will be issued.)

For a game with time controls the controller is expected to send
time_left commands once per move to keep the engine informed about the
time situation. While thinking on a move the engine is expected to
keep track of time by itself.

By the way, if this has anything to do with KGS, the real problem
there is that people who want to do advanced things with bots cannot
modify kgsGtp, nor speak the server protocol themselves, since those
are both proprietary.

And just to be clear, the normal mode of communication between a bot
and a server, if GTP is involved, is

Server <---server protocol---> Client <---GTP---> Engine

The server protocol and GTP have very different roles, capabilities,
and complexities. In some cases the server protocol can be near GTP in
complexity (CGOS), in some cases the server protocol is not available
(KGS), and in some cases the server protocol can be hugely complex
(IGS and NNGS clones). For the best result the client should have open
code and be very configurable.

/Gunnar
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] A thought about Bot-server communications

2007-12-10 Thread Don Dailey


Erik van der Werf wrote:
> On Dec 10, 2007 6:07 PM, Álvaro Begué <[EMAIL PROTECTED]> wrote:
>   
>> It looks like even under non-superko rules, something special happens if a
>> position is repeated, which means that a program should know the entire
>> history of the game, or it may accidentally repeat a previous position, even
>> if it is winning the game by a large margin.
>> 
>
> Yes, but my point was that this special thing does not necessarily
> have to happen directly.
>
> If both sides have played the full cycle at least once then they have
> had every opportunity needed for analysis and for playing elsewhere.
> If neither side chooses to abandon the cycle (and look-ahead can show
> there is a cycle anywhere in the cycle!) then there is no need to play
> forever and the server (referee) can simply decide the result based on
> a long-cycle analysis.
>
>   
This is exactly how it's used in chess.   In both games a repetition can
be "game changing",  leading to a draw in chess or an illegal move (or
loss) in Go. But when use to record positions it is assumed that
nothing relevant is behind you.Even if it is,  the game isn't
fundamentally changed.   In chess you are given 3 repeats before a draw
can be claimed so one could just view this a a couple more chances.   
Same in Go.

There is an important difference in chess.   In chess, it's not illegal
to repeat the same position even hundreds of times.A draw MUST be
claimed by the player who is about to repeat the position.   If he fails
to claim the draw, the opponent may have the opportunity to claim the
draw (when it is his move)  but neither player is absolutely obligated
to claim it. 

In Go however, even if the fundamental game is unchanged you may be
playing illegal moves if you are not aware of the superko situation.

Such a system is perfectly fine for recording interesting positions such
as test suites and such.

- Don



> Erik
> ___
> computer-go mailing list
> computer-go@computer-go.org
> http://www.computer-go.org/mailman/listinfo/computer-go/
>
>   
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] A thought about Bot-server communications

2007-12-10 Thread Erik van der Werf
On Dec 10, 2007 6:07 PM, Álvaro Begué <[EMAIL PROTECTED]> wrote:
> It looks like even under non-superko rules, something special happens if a
> position is repeated, which means that a program should know the entire
> history of the game, or it may accidentally repeat a previous position, even
> if it is winning the game by a large margin.

Yes, but my point was that this special thing does not necessarily
have to happen directly.

If both sides have played the full cycle at least once then they have
had every opportunity needed for analysis and for playing elsewhere.
If neither side chooses to abandon the cycle (and look-ahead can show
there is a cycle anywhere in the cycle!) then there is no need to play
forever and the server (referee) can simply decide the result based on
a long-cycle analysis.

Erik
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] A thought about Bot-server communications

2007-12-10 Thread Erik van der Werf
On Dec 10, 2007 5:23 PM, Álvaro Begué <[EMAIL PROTECTED]> wrote:
> On Dec 10, 2007 11:05 AM, Erik van der Werf <[EMAIL PROTECTED]>
> > Or simply don't use superko. Normal rules work fine with only some
> > minimal knowledge of the last move. Long cycles are not an issue
> > because they may repeat multiple times without altering the inevitable
> > outcome (which, e.g., can be decided on the server side after n-fold
> > repetition).
> I am not sure what you mean by "normal rules".

Most human players I know use informal Japanese rules (so this is what
is normal for me, and probably most players in the Netherlands). OC
formalizing them is non-trivial, but certainly not impossible. In
practice w.r.t. long-cycles these rules are in pretty good agreement
with traditional Asian rules (Chinese/Japanese).

> Are three kos a draw? What
> about other long cycles?

To formalize this in the following I assume repetitions are always on
even plies (so the player to move must be the same).

For long cycles (anything greater than two moves) you need to
distinguish between the following 3 types:

1) Winning cycle: Each cycle you gain prisoners. (or equivalently, you
pass more, underlining your intent not to continue the cycle)

2) Balanced cycle: both sides capture the same number of opponent stones.

3) Losing cycle: Each cycle you loose prisoners. (or equivalently, you
pass less, underlining your malicious intent to prevent a normal
game-end)

The outcome, to be determined after one or possibly more than one
cycle, is (1) win, (2) draw, or (3) loss.


>  It is not my intention to sound confrontational. I really don't know how
> other rule sets deal with tricky situations.

No problem.

Erik
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] A thought about Bot-server communications

2007-12-10 Thread Nick Wedd
In message <[EMAIL PROTECTED]>, Robert Jasiek <[EMAIL PROTECTED]> 
writes

Nick Wedd wrote:

Chinese:   A player may not repeat a previous board position and
   when he does the game counts as half a win to each
   player.


According to influentual Chinese professionals, the superko rule is a 
fake overridden by the referee ko rules section. Or: pos. superko 
applies to sending-2-returning-1 shapes only.



Ing/SST:   Some repetitions are forbidden by the SST ko rule, which
   very few people understand.


Fewer than 1 :)


AGA:   Positional Superko


According to most interpretors: Situational Superko.


Yes, my mistake, Robert is right here.


According to Terry Benson: Natural Situational Superko


Nick
--
Nick Wedd[EMAIL PROTECTED]
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] A thought about Bot-server communications

2007-12-10 Thread Álvaro Begué
On Dec 10, 2007 11:56 AM, Nick Wedd <[EMAIL PROTECTED]> wrote:

> In message
> <[EMAIL PROTECTED]>, Álvaro
> Begué <[EMAIL PROTECTED]> writes
>
> >It is not my intention to sound confrontational. I really don't know
> >how other rule sets deal with tricky situations.
>
> For long-cycle repetitions:
> Japanese:  A repetition lead to "no result".  The game is replayed.
> Chinese:   A player may not repeat a previous board position and
>when he does the game counts as half a win to each
>player.  (KGS interprets this as Positional Superko.)
> Ing/SST:   Some repetitions are forbidden by the SST ko rule, which
>very few people understand.
> AGA:   Positional Superko
> Tromp-Taylor:  Positional Superko
> NZ:Situational Superko
> France:Natural Situational Superko
>
> Suicide is permitted by Ing/SST, Tromp-Taylor and NZ rules, and
> forbidden by the others listed above.


Thanks for the brief summary of all these rulesets!

It looks like even under non-superko rules, something special happens if a
position is repeated, which means that a program should know the entire
history of the game, or it may accidentally repeat a previous position, even
if it is winning the game by a large margin.


Álvaro.
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] A thought about Bot-server communications

2007-12-10 Thread Robert Jasiek

Nick Wedd wrote:

Chinese:   A player may not repeat a previous board position and
   when he does the game counts as half a win to each
   player.


According to influentual Chinese professionals, the superko rule is a 
fake overridden by the referee ko rules section. Or: pos. superko 
applies to sending-2-returning-1 shapes only.



Ing/SST:   Some repetitions are forbidden by the SST ko rule, which
   very few people understand.


Fewer than 1 :)


AGA:   Positional Superko


According to most interpretors: Situational Superko.
According to Terry Benson: Natural Situational Superko

--
robert jasiek
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] A thought about Bot-server communications

2007-12-10 Thread Álvaro Begué
On Dec 10, 2007 11:48 AM, Don Dailey <[EMAIL PROTECTED]> wrote:

>  Of course if only simple KO is used, then repetition is not an issue -
> you only have to store the simple ko state fen style.
>
> But none of this is any good for a general solution (a simple text based
> position notation.)
>
> We could talk about systems for compressing move lists of course but there
> is probably no simple text based system that will give you anything
> amazing.
>
> Here is an interesting domain specific scheme (that is not text based):
>
>1.  Build a deterministic engine that is good at prediction moves of
> strong players.
>2.  The engine ranks all playable moves in a deterministic way.
>3.  A huffman-like encoding is used where the most popular moves take
> the least number of bits.
>
> If the prediction rate is high,  the number of bits per move might be
> quite low.
>

I don't think this is domain specific at all. It's just a very general way
in which compression algorithms work: predict the next symbol (as a
probability distribution), and encode it using a number of bits close to
-log2(probability).

By the way, finding a probability distribution that results in good
compression using this scheme is basically what Remi did with CrazyStone.


Álvaro.
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] A thought about Bot-server communications

2007-12-10 Thread Nick Wedd
In message 
<[EMAIL PROTECTED]>, Álvaro 
Begué <[EMAIL PROTECTED]> writes



It is not my intention to sound confrontational. I really don't know
how other rule sets deal with tricky situations.


For long-cycle repetitions:
Japanese:  A repetition lead to "no result".  The game is replayed.
Chinese:   A player may not repeat a previous board position and
   when he does the game counts as half a win to each
   player.  (KGS interprets this as Positional Superko.)
Ing/SST:   Some repetitions are forbidden by the SST ko rule, which
   very few people understand.
AGA:   Positional Superko
Tromp-Taylor:  Positional Superko
NZ:Situational Superko
France:Natural Situational Superko

Suicide is permitted by Ing/SST, Tromp-Taylor and NZ rules, and 
forbidden by the others listed above.


Nick
--
Nick Wedd[EMAIL PROTECTED]
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] A thought about Bot-server communications

2007-12-10 Thread Don Dailey
Of course if only simple KO is used, then repetition is not an issue -
you only have to store the simple ko state fen style.  

But none of this is any good for a general solution (a simple text based
position notation.)

We could talk about systems for compressing move lists of course but
there is probably no simple text based system that will give you
anything amazing.  

Here is an interesting domain specific scheme (that is not text based):

   1.  Build a deterministic engine that is good at prediction moves of
strong players.
   2.  The engine ranks all playable moves in a deterministic way.
   3.  A huffman-like encoding is used where the most popular moves take
the least number of bits.

If the prediction rate is high,  the number of bits per move might be
quite low. 

- Don



Álvaro Begué wrote:
>
>
> On Dec 10, 2007 11:05 AM, Erik van der Werf <[EMAIL PROTECTED]
> > wrote:
>
> On Dec 10, 2007 4:35 PM, Álvaro Begué <[EMAIL PROTECTED]
> > wrote:
> > > In GO, this is probably a more serious problem.
> > Yes, there is no such thing as an irreversible move in go.
>
> Well there is the opening move... (unless suicide is legal you can
> never recreate the empty board).
>
> I always think of go as meaning Tromp/Taylor rules. If you are talking
> about some other set of rules, please be as specific as possible about
> what game exactly you are talking about. Even for other rule sets,
> your observation doesn't really change my argument much.
>
>
> > I think we are
> > stuck with sending the whole list of moves every time we want to
> describe
> > the current state of the game.
>
> Or simply don't use superko. Normal rules work fine with only some
> minimal knowledge of the last move. Long cycles are not an issue
> because they may repeat multiple times without altering the
> inevitable
> outcome (which, e.g., can be decided on the server side after n-fold
> repetition).
>
> I am not sure what you mean by "normal rules". Are three kos a draw?
> What about other long cycles?
>
> It is not my intention to sound confrontational. I really don't know
> how other rule sets deal with tricky situations.
>
> Álvaro.
>
>
>
> 
>
> ___
> computer-go mailing list
> computer-go@computer-go.org
> http://www.computer-go.org/mailman/listinfo/computer-go/
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] A thought about Bot-server communications

2007-12-10 Thread Álvaro Begué
On Dec 10, 2007 11:05 AM, Erik van der Werf <[EMAIL PROTECTED]>
wrote:

> On Dec 10, 2007 4:35 PM, Álvaro Begué <[EMAIL PROTECTED]> wrote:
> > > In GO, this is probably a more serious problem.
> > Yes, there is no such thing as an irreversible move in go.
>
> Well there is the opening move... (unless suicide is legal you can
> never recreate the empty board).

I always think of go as meaning Tromp/Taylor rules. If you are talking about
some other set of rules, please be as specific as possible about what game
exactly you are talking about. Even for other rule sets, your observation
doesn't really change my argument much.

>
> > I think we are
> > stuck with sending the whole list of moves every time we want to
> describe
> > the current state of the game.
>
> Or simply don't use superko. Normal rules work fine with only some
> minimal knowledge of the last move. Long cycles are not an issue
> because they may repeat multiple times without altering the inevitable
> outcome (which, e.g., can be decided on the server side after n-fold
> repetition).

I am not sure what you mean by "normal rules". Are three kos a draw? What
about other long cycles?

It is not my intention to sound confrontational. I really don't know how
other rule sets deal with tricky situations.

Álvaro.
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] A thought about Bot-server communications

2007-12-10 Thread Erik van der Werf
On Dec 10, 2007 4:35 PM, Álvaro Begué <[EMAIL PROTECTED]> wrote:
> > In GO, this is probably a more serious problem.
> Yes, there is no such thing as an irreversible move in go.

Well there is the opening move... (unless suicide is legal you can
never recreate the empty board).

> I think we are
> stuck with sending the whole list of moves every time we want to describe
> the current state of the game.

Or simply don't use superko. Normal rules work fine with only some
minimal knowledge of the last move. Long cycles are not an issue
because they may repeat multiple times without altering the inevitable
outcome (which, e.g., can be decided on the server side after n-fold
repetition).

Erik
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/


Re: [computer-go] A thought about Bot-server communications

2007-12-10 Thread Álvaro Begué
On Dec 10, 2007 10:07 AM, Don Dailey <[EMAIL PROTECTED]> wrote:

> I forgot mention why FEN is flawed.   It's because it fails to capture
> the complete state of the game.   It records en-passant information and
> color to move,   but it's does not capture position history so you
> cannot detect draws due to positional repetition.

At least in chess there are irreversible moves (pawn moves and captures)
which guarantee that any position achieved before will not happen again. So
one could write an UCI engine that would send the last position after an
irreversible move followed by the sequence of moves since then.

In GO, this is probably a more serious problem.

Yes, there is no such thing as an irreversible move in go. I think we are
stuck with sending the whole list of moves every time we want to describe
the current state of the game.

Álvaro.
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] A thought about Bot-server communications

2007-12-10 Thread Don Dailey
I forgot mention why FEN is flawed.   It's because it fails to capture
the complete state of the game.   It records en-passant information and
color to move,   but it's does not capture position history so you
cannot detect draws due to positional repetition.

In GO, this is probably a more serious problem. 

- Don


Don Dailey wrote:
> Nick Wedd wrote:
>   
>> When I play Go on a Go server, I do not try to remember the board
>> position.  I can always find out what it is by looking at the client
>> window on my screen.
>>
>> When a bot plays on a Go server, it does remember the position. This
>> is something that programs are good at, so it seems reasonable to
>> require them to do it.
>>
>> But there can be, very rarely, circumstances where a bot would like to
>> ask the server "what is the current board position?".  Here are some
>> examples.
>> (1)  My bot's opponent has just made a suicide move.  My bot does
>> not realise that, under the ruleset we are using, suicide is
>> permitted. Therefore its board-update routine fails.  It knows that
>> its opponent has moved, and it knows that it does not know the current
>> position.  It would like to ask the server to send the current position.
>> (2)  As (1), but with a move that my bot thinks, wrongly, is
>> forbidden by superko.
>> (3)  My bot, or the platform on which it is running, has had a
>> serious accident.  I have relaunched my bot and it wants to resume its
>> game but has no knowledge of the position.
>>
>> If my understanding of the GTP spec at
>> http://www.lysator.liu.se/~gunnar/gtp/gtp2-spec-draft2/gtp2-spec.html
>> is correct, it is not possible for a bot to say "please tell me the
>> position".  Should it be possible?
>>
>> 
> Hi Nick,  
>
> Of course with GTP the engine can never take the initiative to
> communicate with a controller due to the asynchronous nature of GTP.   
> This keeps things simple but has some drawbacks.
>
> UCI  deals with this by always sending the position.   A UCI program
> does not need to track the state of the game since the controller does
> it.   For example UCI sends the whole game via a list of moves before it
> gives the command to search a position.   But even a UCI-like go
> protocol wouldn't solve the issue you are talking about unless the rule
> was to accept any kind of KO or suicide as a legal move for purposes of
> setting up board state.  I think UCI also has a setup mode.  
>
> I don't know how you would make a GTP compatible command because of the
> asynchronous nature of GTP other than having it be initiated by the
> controller. I suggest that such a command should send a list of
> moves (not a board image) because you can construct a proper board state
> from a list of moves for any rule-set - but you cannot do this with a
> board image. 
>
> In computer chess there is a standard way to record a board position,
> but it is flawed.   It's still very useful and heavily used.The same
> format could be used for GO with the same exact drawback.   In chess it
> looks like this:
>
>  r2q1rk1/p3b1pp/2p5/1pn5/1n1Bp1b1/1P6/PQ1PPP2/2RNKBNR b K -
>
> If we did this for GO,  the opening position in 9x9 go might be
> represented like this:
>
>  9/9/9/9/9/9/9/9/9 b -
>
> The hyphen at the end would be ko point - it might be 'e5' if it is now
> illegal to capture e5 due to simple ko,  otherwise it is a hyphen
> placeholder.This represents black to move from the opening position
> with no simply ko capture possible.
>
> Digits represent sequences of empty intersections and we scan them 1 row
> at a time starting with the A9-J9 row (the top row in a digram view.)  
> Slashes separate rows but this is not technically needed if we want to
> save a few bytes (but it makes it more readable.)
>
> On 19x19 boards we have a problem because we cannot represent 19 empty
> spaces with a single digit character.   Even if we use hex digits we are
> limited to 15 distinct digits or 16 if we change the meaning of
> zero.  Even if we use hex digits we have to decide what represents
> white and black stones. We can of course extend the hex system with
> additional letters.  Or we can ignore the problem and use 2 digits to
> make up the difference.If we do that,  I suggest the 0 digit is used
> to extend the alphabet and it simply means 10.  If there are 10 or more
> we insist on using 0 first, then an addition digit  just to be
> consistent. So the opening position in 19x19 might look like this:
>
>   09/09/09/09/09/09/09/09/09/09/09/09/09/09/09/09/09/09/09 b -
>
> Although 2 digits is wasteful, much of this goes away once the positions
> become complicated.
>
> The next issue is how to represent stones.  In chess white pieces are
> represented with upper-case characters and black pieces are represented
> with lower case letters.If we follow that conventions we might pick
> an arbitrary letter of the alphabet to represent a stone and use
> upper/lower case to d

Re: [computer-go] A thought about Bot-server communications

2007-12-10 Thread Don Dailey


Nick Wedd wrote:
> When I play Go on a Go server, I do not try to remember the board
> position.  I can always find out what it is by looking at the client
> window on my screen.
>
> When a bot plays on a Go server, it does remember the position. This
> is something that programs are good at, so it seems reasonable to
> require them to do it.
>
> But there can be, very rarely, circumstances where a bot would like to
> ask the server "what is the current board position?".  Here are some
> examples.
> (1)  My bot's opponent has just made a suicide move.  My bot does
> not realise that, under the ruleset we are using, suicide is
> permitted. Therefore its board-update routine fails.  It knows that
> its opponent has moved, and it knows that it does not know the current
> position.  It would like to ask the server to send the current position.
> (2)  As (1), but with a move that my bot thinks, wrongly, is
> forbidden by superko.
> (3)  My bot, or the platform on which it is running, has had a
> serious accident.  I have relaunched my bot and it wants to resume its
> game but has no knowledge of the position.
>
> If my understanding of the GTP spec at
> http://www.lysator.liu.se/~gunnar/gtp/gtp2-spec-draft2/gtp2-spec.html
> is correct, it is not possible for a bot to say "please tell me the
> position".  Should it be possible?
>
Hi Nick,  

Of course with GTP the engine can never take the initiative to
communicate with a controller due to the asynchronous nature of GTP.   
This keeps things simple but has some drawbacks.

UCI  deals with this by always sending the position.   A UCI program
does not need to track the state of the game since the controller does
it.   For example UCI sends the whole game via a list of moves before it
gives the command to search a position.   But even a UCI-like go
protocol wouldn't solve the issue you are talking about unless the rule
was to accept any kind of KO or suicide as a legal move for purposes of
setting up board state.  I think UCI also has a setup mode.  

I don't know how you would make a GTP compatible command because of the
asynchronous nature of GTP other than having it be initiated by the
controller. I suggest that such a command should send a list of
moves (not a board image) because you can construct a proper board state
from a list of moves for any rule-set - but you cannot do this with a
board image. 

In computer chess there is a standard way to record a board position,
but it is flawed.   It's still very useful and heavily used.The same
format could be used for GO with the same exact drawback.   In chess it
looks like this:

 r2q1rk1/p3b1pp/2p5/1pn5/1n1Bp1b1/1P6/PQ1PPP2/2RNKBNR b K -

If we did this for GO,  the opening position in 9x9 go might be
represented like this:

 9/9/9/9/9/9/9/9/9 b -

The hyphen at the end would be ko point - it might be 'e5' if it is now
illegal to capture e5 due to simple ko,  otherwise it is a hyphen
placeholder.This represents black to move from the opening position
with no simply ko capture possible.

Digits represent sequences of empty intersections and we scan them 1 row
at a time starting with the A9-J9 row (the top row in a digram view.)  
Slashes separate rows but this is not technically needed if we want to
save a few bytes (but it makes it more readable.)

On 19x19 boards we have a problem because we cannot represent 19 empty
spaces with a single digit character.   Even if we use hex digits we are
limited to 15 distinct digits or 16 if we change the meaning of
zero.  Even if we use hex digits we have to decide what represents
white and black stones. We can of course extend the hex system with
additional letters.  Or we can ignore the problem and use 2 digits to
make up the difference.If we do that,  I suggest the 0 digit is used
to extend the alphabet and it simply means 10.  If there are 10 or more
we insist on using 0 first, then an addition digit  just to be
consistent. So the opening position in 19x19 might look like this:

  09/09/09/09/09/09/09/09/09/09/09/09/09/09/09/09/09/09/09 b -

Although 2 digits is wasteful, much of this goes away once the positions
become complicated.

The next issue is how to represent stones.  In chess white pieces are
represented with upper-case characters and black pieces are represented
with lower case letters.If we follow that conventions we might pick
an arbitrary letter of the alphabet to represent a stone and use
upper/lower case to determine - or we could just choose "w" and "b" to
mean white/black stone.   I prefer "w" and "b".

You might think positions look a little cryptic with this notation,  but
in my opinion the real value of fen notation is that you can physically
type in a board position in just seconds.   In chess, you basically scan
the board and type the piece and digits as you scan.  If there are 3
empty squares you just type 3 and you are done.  

In fact, this whole notation is based on what was done 

Re: [computer-go] A thought about Bot-server communications

2007-12-10 Thread Jason House
As I understand it, gtp is for one way communication.  I've heard of this as
an issue when developers try to provide output for the benefit of players
(or bot developer debugging the bot)

There's typically work-arounds that we use to overcome this.
On kgs, to inform the players, the version command is typically made very
long to provide instructions.  Similarly, kgsGtp's config supports a few
lines of text to print at key points in the game.  I don't know if it's
possible to get kgs to display all of them.

time_left is at the whim of the server.  KGS and CGOS both provide it prior
to every move (even when replaying a game).  Neither provide the opponent's
time left, which could be useful.

A flat picture of the board erases super ko details.  kgsGtp does support
replaying the entire game from the beginning (such as when the bot does not
support undo).  I agree, however, that your additional functionality could
be useful.

On Dec 10, 2007 8:23 AM, Nick Wedd <[EMAIL PROTECTED]> wrote:

> When I play Go on a Go server, I do not try to remember the board
> position.  I can always find out what it is by looking at the client
> window on my screen.
>
> When a bot plays on a Go server, it does remember the position. This is
> something that programs are good at, so it seems reasonable to require
> them to do it.
>
> But there can be, very rarely, circumstances where a bot would like to
> ask the server "what is the current board position?".  Here are some
> examples.
> (1)  My bot's opponent has just made a suicide move.  My bot does
> not realise that, under the ruleset we are using, suicide is permitted.
> Therefore its board-update routine fails.  It knows that its opponent
> has moved, and it knows that it does not know the current position.  It
> would like to ask the server to send the current position.
> (2)  As (1), but with a move that my bot thinks, wrongly, is
> forbidden by superko.
> (3)  My bot, or the platform on which it is running, has had a
> serious accident.  I have relaunched my bot and it wants to resume its
> game but has no knowledge of the position.
>
> If my understanding of the GTP spec at
> http://www.lysator.liu.se/~gunnar/gtp/gtp2-spec-draft2/gtp2-spec.htmlis
> correct, it is not possible for a bot to say "please tell me the
> position".  Should it be possible?
>
>
> A similar question applies to time.  When I play in a tournament, I am
> allowed to look at my clock to find out how much time I have left.  I am
> surprised to find that GTP provides no way for a bot to ask this. (Maybe
> I am misunderstanding the spec.  I see that there are commands
> 'time_settings' and 'time-left' that the server can use to inform the
> bot of its remaining time, but I can find no indication of when, if
> ever, these commands will be issued.)
>
> Nick
> --
> Nick Wedd[EMAIL PROTECTED]
> ___
> computer-go mailing list
> computer-go@computer-go.org
> http://www.computer-go.org/mailman/listinfo/computer-go/
>
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

[computer-go] A thought about Bot-server communications

2007-12-10 Thread Nick Wedd
When I play Go on a Go server, I do not try to remember the board 
position.  I can always find out what it is by looking at the client 
window on my screen.


When a bot plays on a Go server, it does remember the position. This is 
something that programs are good at, so it seems reasonable to require 
them to do it.


But there can be, very rarely, circumstances where a bot would like to 
ask the server "what is the current board position?".  Here are some 
examples.
(1)  My bot's opponent has just made a suicide move.  My bot does 
not realise that, under the ruleset we are using, suicide is permitted. 
Therefore its board-update routine fails.  It knows that its opponent 
has moved, and it knows that it does not know the current position.  It 
would like to ask the server to send the current position.
(2)  As (1), but with a move that my bot thinks, wrongly, is 
forbidden by superko.
(3)  My bot, or the platform on which it is running, has had a 
serious accident.  I have relaunched my bot and it wants to resume its 
game but has no knowledge of the position.


If my understanding of the GTP spec at
http://www.lysator.liu.se/~gunnar/gtp/gtp2-spec-draft2/gtp2-spec.html is 
correct, it is not possible for a bot to say "please tell me the 
position".  Should it be possible?



A similar question applies to time.  When I play in a tournament, I am 
allowed to look at my clock to find out how much time I have left.  I am 
surprised to find that GTP provides no way for a bot to ask this. (Maybe 
I am misunderstanding the spec.  I see that there are commands 
'time_settings' and 'time-left' that the server can use to inform the 
bot of its remaining time, but I can find no indication of when, if 
ever, these commands will be issued.)


Nick
--
Nick Wedd[EMAIL PROTECTED]
___
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/