Create the chessex
keyspace in ScyllaDB:
$ docker-compose up -d
$ docker exec -it chessex_scylla-node3_1 cqlsh
cqlsh> CREATE KEYSPACE chessex WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 3};
A personal project to learn more about part of the future stack I'll work with, namely: Go, ScyllaDB and Gin web framework.
Not 100% clear on the full outcome yet, but I'd like to make available aggregated and explorable data about the 1 million chess games I found online.
— [x] Find an open chess database of, at least, 1 million games. — [x] Setup Go project and the ScyllaDB locally. — [ ] Load the million games into ScyllaDB. — [ ] Create the API endpoint for statistics on openings.
I went down the lexical analysis rabbit hole at the third step after trying to extract as much information as possible from the Portable Game Notation (PGN). It is possible with a regurlar expression but after looking into it, I wanted to work on parsing the notation with lexical analysis (refreshing old memories).
I used the alecthomas/participle library which provides "a simple, idiomatic and elegant way of defining parsers in Go".
You can find anything related to PGN parsing into chessex/pgn.go
file.