About extracting FEN positions from games, annotating FEN positions and somehow using Tiddlywiki as a small database I don’t really get it. ¿Can you explain a short use case? For example, if I have pgn’s of all my sicilian defense Lichess games (quite a lot!
), ¿How would I use Tiddlywiki to study them and improve?
This is going to be a long post, so my apologies for eventually sliding too far from your question.
Preface
Many years ago I was reading this chess book https://www.houseofstaunton.com/mikhail-botvinnik-analytical-and-critical-work-articles-1923-941-russian-edtiion by Botvinnik. In game 117 (played in 1941) close to the end of the book he wrote (freestyle unprofessional translation is mine): “In vain Boleslavsky tried to test my knowledge, because I studied this endgame fifteen years ago.”. And he refered to the very beginning of the book, to game 8, which was played in 1926.
After the initial mix of shock, fear and awe passed, I thought, ok we mere mortal amateurs are not Botvinniks, we can’t be like this. Yet we live like half a century after these events, we have these fancy computers. Can we have them help us at least at remembering our past forgotten chess knowledge that we recorded, during a game analysis? After having the thought slowly boil in my mind for a while, I was able to formalize this thought a bit better: I analyze a game of mine, move by move. After each move the position on the board changes. Some positions are more “interesting” than the rest, certain are most “interesting” (I also call them “critical”), I spend more time thinking about them, and to record my thought process, I annotate them. Technically, before that moment I used to think I write the annotations after the moves, so it may look like I’m annotating moves, but something like “after 7. Nf5 I get an “immortal” knight” does not mean much out of any context. Better is “after 7. Nf5 I get an “immortal” knight, because it blocks isolated double pawns”. And ideally the context should include the whole board. This is when it clicked, I had one of those rare (being a slow thinking self taught chess player is hard) Eureka moments and I’ve realized that annotations in a PGN game are, in fact, annotations of positions (which are identified by unique FEN strings). So I continued and thought if I’m annotating a position and write down some findings, how cool would it be if a program could remind me whenever this position may occur again in another game.
For simplicity, in context of FEN strings I restricted the problem to identical FEN strings. Albeit there can be identical positions with different FEN strings. For example with different value for 50 move rule part. Or different number of halfmoves (initial position with no moves made and position after 1. Nf3 Nf6 2. Ng1 Ng8 are identical, yet their FEN strings are different).
Again, for simplicity, consider a very simple game. 1. e3 e6 2. d3 d6
it has the FEN rnbqkbnr/ppp2ppp/3pp3/8/8/3PP3/PPP2PPP/RNBQKBNR w KQkq - 0 1
. A game of yours started like this, you considered the position “interesting” and annotated it. Some future game started like this: 1. e3 d6 2. d3 e6
. It has the FEN rnbqkbnr/ppp2ppp/3pp3/8/8/3PP3/PPP2PPP/RNBQKBNR w KQkq - 0 1
. You can see they are identical. Would it be nice if your chess database program reminded you that you already analyzed this position, and would show your annotation? This is just non-intrusive spaced repetition. And it works great for your opening use case. And works well too for endgame positions (see the Botvinnik story above).
If you’re familiar with Scid or Scid vs PC - the FOSS chess database software, it can do this via mask files - position annotations kept outside of PGN game records. See the link above in this thread.
In context of TiddlyWiki, this is how I imagine it could work. We have a tiddler with the first game 1. e3 e6 2. d3 d6
in the text field. This is a game with 5 positions: the initial one +1 per each move made. This could be rendered through a view template to make it look like [FEN] 1. e3 [FEN] e6 [FEN] 2. d3 [FEN] d6 [FEN]
. Each [FEN]
would be a button which, when clicked, would open the corresponding FEN tiddler. That’s why it’s important to have a way to know all the FENs. So when you’ll click the last one after d6, you will annotate that position and save the tiddler. Later, when you will analyze the second game 1. e3 d6 2. d3 e6
and will click the FEN button after e6, it will load the same FEN tiddler with your saved position annotation from the first game, refreshing the position pattern in your memory!
This is pretty much the main idea.
I know you asked for something short. I ended writing a short book. Sorry! 