lichess.org
Donate

Opening transposition not indicated in move list

or make an opening tree which can do its work on the system here
thats the best way
We've said it once and we will say it again... someone has to step up and do it:
github.com/ornicar/scalachess/blob/master/src/main/scala/OpeningDB.scala

I personally gave it an earnest try with 3 other people. I think people really underestimate how difficult it is to build a thorough, real-world accurate (especially when each opening has like 5 colloquial names) opening database. Until that person steps up, there will likely be no change.

If you are however interested and have a LOT of time on your hands (this is a major project that we expect commitment to), please join us at #lichess on freenode IRC.
#22 In my opinion there are two parts to this problem:
1. Opening transposition - detect that the game has transposed into some (unclassified) opening; i.e. that for a (PGN) game database and a live game, that the position on the live board exists in the database
2. Opening classification - classify with a name *which* opening the game has transposed into

I'd be glad to (again) demonstrate the former (using PolyGlot + Stockfish + a 2.2-million game database) on my stream, and I agree the latter is difficult and very time-consuming!

IMO classification is a problem currently better-suited for humans than for computers. For example a human would classify:
1. h4? e5 2. e4 Nf6 3. Nc3 Bb4 4. Nf3 O-O 5. Nxe5 d5
as "that looks like a Ruy Lopez reversed plus 1. h4?", whereas almost any computer program would classify that as "1. h4 is an irregular opening"

Solving the classification problem in any satisfactory way requires an advanced language like Chess Query Language (CQL) combined with (presumably human-generated) classification rules based on what humans believe to be the defining characteristics of openings. Classification is difficult!
http://xkcd.com/720/
#22 I fully appreciate how difficult it is to build such a database. Infact, I believe it is impossible. Chess openings continue to evolve and to be named, so any database would need to be updated from time to time and coud never be considered to be "finished".
However, I did not criticize the database itself but its use. If it is not used properly, this renders most improvements of the database uneffective anyhow.
I think i relly boils down to checking FENs instead of PGN strings with the simple loop I explained above.
As soon as we have that, we can always expand on the database later, arbitrarily.
@Allquantor

As of this time, while I have time off from school, I am going to attempt to build a very rough prototype of an opening database through R-shiny. Remarkably, there's a package in R called "R-chess" that lets one output chess positions into plots and other kinds of functions.

If I complete this, I will post the code to github for lichess to use.

It will take me a long time to understand how it works. The update button I'd imagine would be very similar to the insights update button.
#25: I was not talking about the database. I was talking about the algorithm.
#24 #25 #26 Let's be careful here to not equivocate: which problem are you discussing and proposing solving?
1. Opening transposition - detecting that the current position exists somewhere in an opening book
2. Opening classification - labeling the current position with opening name(s)

If you're aiming to solve the former problem, I have repeatedly demonstrated a solution on my stream and would be glad to again demonstrate:
http://github.com/ddugovic/polyglot/tree/learn
I've always thought that opening classification should be done by moving _backwards_ through a game -- the last position in the game that is in the opening database should be used.

Also, I feel that Scid always generates good opening names, and it's open source. Maybe it's algorithm / data set can be adapted for use by Lichess.

This topic has been archived and can no longer be replied to.