Rules not implemented correctly

AGA rules should use situational superko. Positional superko is implemented instead.

Chinese rules should use Chinese superko (like positional superko, but only for 3-play cycles). Positional superko is implemented instead.

There is a similar thread about this but no one seems to care.

It just so happens that my favorite ruleset is area scoring with positional superko and no suicide, which is what’s implemented here as AGA and Chinese, so I can’t complain much. But it’s still sloppy to have rules labeled as AGA and Chinese when they are clearly something else.

I see there are Ing SST rules available as well. Given that hardly anyone understands them, I’d bet they’re wrong as well. (For the record, I don’t understand them, either.)


Positional vs. Situational Superko

I don’t think I’ve ever encountered any of these things. Maybe the best solution is to play so as to avoid the situation. ( <— slippery road warning: ironic when read )


It’s not always possible. That’s why there is a rule for it. Implementing the rules correctly is as easy as implementing them incorrectly.


FWIW the linked sensei’s page lists positional superko as the easiest to implement. So I suspect that’s why it is that way…

1 Like

Yes, hard to blame them. I actually wish the real-life AGA started using positional superko instead. Situational superko is overkill.

But if both Chinese and AGA rulesets as implemented here use positional superko, why have both options available? Aren’t they exactly the same?

My understanding is that chinese is area counting (stones + terrirory are counted, captures are not) and AGA is territory counting (teritory and captures are counted, stones are not) but AGA differs from Japanese in that, when a player passes, their opponent gets a stone (this allows for a player to fill in ko threats at the end of a game before playing bent 4 in the corner ko)

1 Like

AGA uses area scoring, like Chinese rules. Counting (not scoring) can be area or territory. Here it’s implemented as area counting. Pass stones are for territory counting. So here it’s the same as Chinese rules.

I did some testing and noticed that handicap works different in both. Chinese rules allow free placement of handicap stones; AGA rules don’t. This one feature is implemented correctly in both cases.

For what is worth, my opinion is that this web site should implement at least one rule set correctly because until that happens we are in a situation where we do not really know what game we are playing (“Go” is not a single game, but a loosely defined set of games which have nearly interchangeable heuristics –roughly speaking, the same “strategy”).

Excluding rules that have different heuristics (like no-pass) the Tromp-Taylor rules are the simplest to implement. The AGA rules come close in simplicity.

It must be noted that there is no such thing as “Japanese” and “Ing” (SST) rules. The documents which supposedly describe those rules do not in fact describe any game because they leave key terms undefined. Therefore, there should not be an entry in the rules menu claiming to be “Japanese” or “SST”. There are, however, real rules that use territory scoring (E.g.:

I think it’s wonderful that so many people can get so much pleasure and challenge playing while not even knowing what game we are playing!

But of course, that’s not really the case. We do know what game we are playing: we are playing OGS Go. And by definition it is implemented correctly, because it’s implementation defines it.

I think it’s wonderful that so many people can get so much pleasure and challenge playing while not even knowing what game we are playing!

Despite the sarcasm of your comment, that is how actually it is. Such a lack of rigor is not exceptional. For example, at the time that multicore CPUs became common, the Intel ISA manual did not even specify the memory model (which is part of the semantics of the CPU ISA) and still does not (though it now has an informal description which is arguiably sufficient for most purposes).

But of course, that’s not really the case. We do know what game we are playing: we are playing OGS Go. And by definition it is implemented correctly, because it’s implementation defines it.


First, the entries in the rules menu do not say “OGS Go”, but “AGA”, “Japanese”, etc; therefore, “the” definition (if any) is given by the respective documents. As I have already noted, several of those documents fail to define any game. Fortunately the AGA and New Zealand rules are unambiguous[1]. So in this case, the specification is and ; not the implementation.

Moreover, your interpretation –which is equivalent to “the implementation is the specification”– is not strictly speaking self-defeating, but it is even worse, it is masochistic. The reason is that any would-be-bug in the implementation is not a bug under your interpretation (it is just the rules of the game). In other words, by taking this viewpoint you intellectually coerce yourself to accept as part of the game any flaw that the rest would describe as a bug. If you were to lose because of a “bug”, you can not claim that you lost because a bug. You would have lost because of “the OGS Go rules” (according to your viewpoint).

[1] Inasmuch as natural language can be said to be “unambiguous”. In a work of mine (in progress) I formalize some rules of Go (among other things) in higher-order logic. When finished this will be an absolutely unambiguous description of “the” game of Go.

Well, having a debate with a mathemetician about the definition of rules would be as foolhardy as going against a Sicilian when death is on the line, so I’ll pass :wink:

Suffice it to say that there are senses in which it’s important, but they are corner cases in the average person’s experience of the game!

1 Like

Yes. I acknowledge this point. My intent when I first posted in this thread is to bring into attention some issues that are relevant for a computer implementation of Go because I expect that the OGS programmers have or will read this thread. More to the case: One of the applications of formalized definitions (i.e.: definitions in mathematical logic) is precisely to verify that software is correct.

To make it more explicit: My suggestion is to implement either AGA rules (these are notable for being the official rules of a major Go organization; thus in some sense a standard) or Tromp-Taylor and in addition, Ikeda Territory rules I (because some people like territory scoring, and these –or variations thereof– are the simplest.rules that allow a practical implementation of territory scoring).

Other territory rules require either multiple branches (confusing to beginners, cumbersome to implement) or evaluating board positions according to perfect play (computationally infeasible), hence that I recommend Ikeda-style rules for territory.

P.S.: I am an enthusiast self-student of mathematics, but I am not a professional mathematician.

Ikeda rulesets (all six of them) are great. All of them use positional superko. Ikeda’s Area Rules II are what is implemented here as Chinese and AGA.

For those who like Japanese-style rules, Territory Rules I seem ideal. They keep the essence of Japanese rules while being concise and perfectly logical, which Japanese rules very much aren’t. They seem like the natural, much needed last step in the evolution of Japanese rules.

But, for a territory ruleset, I prefer the even simpler Area Rules III, which are territory rules in disguise and brilliantly unify both scoring systems without introducing a second phase of play with different rules.

(Interestingly, Ikeda notes: “Territory rules I give the same result as area rules III, provided no unwarranted passes are made before the end of competitive play.”)

So my suggestion would be to make OGS an Ikeda only site with Area Rules II, Area Rules III and Territory Rules I. Japanese and Ing SST rules should just be scrapped, as they are impossible or nearly impossible to implement correctly.

Also, AlphaGo most probably used Ikeda’s Area Rules II (as do all computer Go events).