You can save PGN files into (sqlite) database (using nochetodbload).
Saved games and positions can be used in nocheto opening explorer.
Positions can by evaluated by
Load PGN games into database
nochtodbload filename.pgn to load PGN file into database.
PGN file can contain more than one game.
On the picture above, you can see that the PGN file contained only one game. The game consists of 197 positions, 183 of them were new. The game gets it identification number 532.
If you load the same game twice, you shoud get the same ID. nochetodbload tries to find the same game based on players name, date of event, number of moves etc. That means, you can add alternative lines to the game and then load game again, but the openings explorer will count the moves in move statistics only once.
It could happen thought, that if you download the same game from different sources and the names of the players will differ (i.e. once in PGN is Karpov, second time A.Karpov), nochetodbload will not recognise the games as the same. On the other hand, if you rewrite examples from books and you don't add player names, date of event etc., it could happen that nocheto will consider different games the same (if the have the same number of moves etc.). To be safe, it is recomended to load every game only once.
Evaluate chess positions in database
nochetodbeval to evaluate new positions in database.
Every position is evaluated by engine set in config file
at its strongest level, taking
goseconds seconds. That means, if you need to
evaluate 183 positions and you let them evaluate for 1 seconds, it will last 3 minutes and 3 seconds.
On the picture above, there the last line shows that there are 149 unevaluated positions left.
goseconds was set to 6 (seconds), it will take 14 minutes nad 54 seconds to finish.
If you want to close nochetodbeval sooner, you can use CTR+C to kill it. Nothing bad will happend.
You should not run any processor consuming application during evaluatiing chess position, as it can affects the depth engine can achieve during given time.
Once positions are saved and evaluated in database, you can load evaluation
for any opened file / played game. Use
Once results are loaded, you can see in moves tree some move colored. Thats are the moves, which leads to evaluated position. You might see all moves colored (if you loaded that game into database and let it evaluated), or you might see only comple of moves colored (typically the openings moves, which were loaded in another game starting with the same moves).
Chess openings explorer
Once you have loaded games, you can see them in openings explorer. You can enable/disable
As you can see on the picture above, first colum show all the moves played in the actual position, second column shows how many times that move was played, third column shows the evaluation of that move in centipawns (positive is better for white, negative is better for black). Last three colums show % of wins for white, % of draws and % of wins for black.
First line show the best move for the position and its evaluation. You might ask, why is the evaluation 0, but in the moves list it is 44? It is becase the first number was evaluated by the engine on current position, while the second number evaluated engine after the move was done. The more time you let the engine (nochetodbeval) evaluate positions, the smaller should the diffrence be. (But there will always be some).
You can save games into as many databases as you wish. Just change the database in configuration (add name of directory where the database should be saved).
[explorer] dbname = data/myowngames/
The database is saved in directory which consists of
~/.nocheto/ and this dbname.
Default dbname is
Default dbname is
You must have writte acces to the directory. Sqlite database file is only one file (explorer.sqlite3), but during inserting games it creates some other temporary files. Thats why the dbname is name of a directory, not a file.
Even thought you can have many databases, its recomended to have only one or two (one for your games, other for games you study). The reason is, that you have to evaluate every position again in every database. And evaluating positions is the most time consuming process.