bob wrote:Uri Blass wrote:Vasik Rajlich wrote:bob wrote:CThinker wrote:bob wrote:Harvey Williamson wrote:CThinker wrote:I propose a hybrid.
The tournament would be online (ICC), but the participants would meet locally.
For example, Bob and others could congregate at UAB (this has been done in the previous ACCL). Dann, Kerwin and me would meet at UW or somewhere in Redmond.
This way, travel cost and travel time is really minimized, while at the same time, you get the eye ball experience of the traditional (read archaic) WCCC.
That could work with a few gatherings in different places. However I would not want to play on any server that stops me using a .ctg book easily. I am happy to use an alternative book for tournaments like CCT but our tournament book is maintained in .ctg format and for the World Championship we would want to use this.
This is the primary reason I have maintained that the GUI should _not_ be handling the book facilities. That should be code inside the engine. Then the GUI one uses has nothing to do with playing the game, choosing book moves, and just serves as a user interface, which is where the "UI" in "GUI" comes from. I also strongly believe that an opening book is every bit as unique and important as the chess engine itself, which means one copy of any author's book is allowed in an event, not the multiple copies we have seen in the past.
For the question about EGTBs I don't care. That is static data everyone has access to, how / when you probe them is an internal engine issue anyway so I could care less about what is used there.
Just to clear, we are not really talking about not allowing the GUI to pick the moves (in most cases, opening moves). In the Thinker case, I also wrote the GUI.
I think what we should be saying is that the participating computer player should not pick moves using code that is written by somebody else. It does not matter whether that code is in the GUI or external DLL or main engine. If you did not write the code, it should not be allowed to decide moves for you.
Here some examples of acceptable systems:
1. UI and engine from the same author
a. The Shredder UI connets to the server.
b. The Shredder UI picks the book moves.
c. The Shredder UI asks the Shredder engine to pick a move.
2. UI from one author, and engine from another author
a. The Winboard UI connets to the server.
b. The Winboard UI asks the Crafty engine to pick moves.
c. The Crafty engine book code picks book moves.
d. The Crafty engine code picks moves using search algorithm.
Here are some examples of non-acceptable systems:
1. UI and engine from the same author, but book code from another author
a. The Fritz UI connets to the server.
b. The Fritz UI asks the Fritz engine to pick a move.
c. The Fritz engine asks Polyglot to pick a book move
d. The Fritz engine use a search algorithm to pick non-book moves.
2. UI from one author, and engine from another author
a. The Fritz UI connets to the server
b. The Fritz UI picks book moves.
c. The Fritz UI asks the Crafty engine to pick a move.
Correct. We often diverge into where the dividing line should be between the GUI and the engine. If you write both, you should decide what goes where. My issue is with a GUI that is used by many. In this case, it should be a UI, and only a UI. Not select book moves. Not deal with learning. Nor with EGTBs. etc...
That's primarily an issue with the commercial guys as they share UIs here and there, and in past WCCC events they shared books which is beyond unreasonable IMHO. Xboard is a perfect example of what a GUI should be. It just relays moves back and forth between the engine and the opponent, and otherwise stays out of the way of how the game is actually played.
In practice, we're going to need to allow opening book and EGTB code.

Most engine authors have been operating on the assumption that this is allowed and only a tournament with incredible rewards could entice them to write their own book code.
As far as the theoretical aspect - you could argue this a number of ways. The way to phrase the question is: under what conditions can code written by one person be used by multiple teams in the same tournament?
Compiler/IDE: Obviously yes.
Engine: Obviously no.
Book editing tool: On the border. Like the compiler/IDE, it is (mostly) an offline process. Like the engine, chess-specific logic is involved.
If we could go back several decades and re-design the rules from the ground up, I would still push for allowing teams to share opening book editing tools, for practical reasons. The book tools are separate from the engine - the code base is different, different programming skills are required (book tools are graphical in nature), and having different people write them is a very natural division of labor.
Vas
If tablebases can be used then it is not clear to me that engine is obviously no.
I can imagine that somebody write some function that is part of his engine that get a fen and return one of the following
1)win
2)draw
3)loss
4)do not know.
Practically tablebases do it but it can be extended to non tablebases positions that are draw or win by theory and it can be also more efficient then tablebases because of speed because if the code help to detect fast half of the tablebases positions correctly when in half of the cases the result is do not know then using the code before probing the tablebases may be practically faster.
Suppose the person release his code to decide win or draw or loss or do not know in similiar condition to the nalimov code.
Can people use his code?
If the reply is no then I see no reason that many people can use the nalimov tablebases.
If the reply is yes then the question is if it is not considered as an engine code.
Uri
Why go off on such a wild tangent. Such a function can't be written, so it is irrelevant whether or not everyone could use a thing that will never exist.
I disagree and I think that it is only a question of programming.
If people want to start they can start by simple tablebases.
You can get easily 100% correct for 3 pieces except KPK and for KPK you also can get easily rules that are always correct that catch the majority of the cases.(KQK or KRK is simply winning for the stronger side unless it is the weaker side to move and the weaker side is in stalemate or the weaker side can capture)
Next you continue with 4 pieces.
I believe that some endgames with big material advantage like KQQ vs K or KQR vs K or KRR vs K are also easy and the stronger side can always win unless the position is stalemate,
If I am wrong then it is easy to check it and prove it.
It is also probably easy to catch majority of the draws in KR vs KR by some simple rules.
You can try something that is not correct and use the exceptions to formalize something else that is correct.
the only reason not to draw in KR vs KR may be checkmate or winning the rook.
checkmate can happen only if the king is in the last rank or can be pushed to the last rank and the distance between the kings is small enough and in majority of the positions it is easy to see that it does not happen and capturing the rook can happen only by direct capture of the rook or by check that allow winning the rook(something like Ra8+ when the opponent rook is at h8 or h7 and in majority of the cases it is possible to see that the side not to move has rook in a square that it is impossible
to capture is by check(for example difference of at least 2 ranks and difference of at least 2 files from the relevant king or king that defends the rook when the opponent king does not attack the rook.
Of course you need to check no errors in the rules and I may have some mistake in what I say because it is possible that there are possibilities that I did not check but it is easy to check all the tablebases positions of KR vs KR to check for errors.
There are many cases and the program may be big if you want to have correct rules for half of the 3-6 tablebases positions but I see no reason to assume that it is impossible to write some function that get correct result in half of the tablebases(significantly faster than probing the tablebases) and get does not know result in another half.
Uri