ndbd wrote: ↑Sun Dec 19, 2021 10:37 pm
I am lurking here and reading this thread with interest. First I want to say that I think BanksiaGUI is a great program and obviously Pham is a talented programmer. But:
Please note that the main purpose of this project is a standard to share game databases between programs and can be used directly for some programs. IMHO, it has reached about 90% of the purpose (to share and to be able to be used directly in some programs).
I have been working on other targets: pushing all boundaries to see how far we can go.
ndbd wrote: ↑Sun Dec 19, 2021 10:37 pm
There are two existing widely used database formats, CBH/CBF/CBV (Chessbase) and SCID.
Those formats are not the answer. Some are proprietary of some companies and/or have some strict licenses which could not be supported by other programs (Banksia GUI can't use SCID code since it is still a close source).
All those formats have some disadvantages I have mentioned in the project's GitHub repository: hard to support other chess variants; hard to convert to other formats; fixed data structures (hard to modify or add new fields); supported by very specific software...
ndbd wrote: ↑Sun Dec 19, 2021 10:37 pm
All the issues that are talked about in this thread have been mostly solved already with these formats. Moreover it is not difficult to enhance these formats.
If ChessBase can do something with their software doesn’t mean other software can do it, our knowledge, our understanding can get benefits from it since ChessBase won’t share anything. I knew someone did reverse engineering (it is a kind of hack IMO) to get Chessbase database formats but they got nothing about position-searching because it is their secret algorithm.
The situation is better for SCID since it is open source but it is still a problem I will mention below.
ndbd wrote: ↑Sun Dec 19, 2021 10:37 pm
They are, after all, essentially binary database tables with custom index informations, ideally suited for chess.
So far, based on my tests, attempts, I can confirm SQL can do somewhat the same levels for chess databases. Even binary databases can be a bit faster and a few times smaller (not big advantages with modern hardware) but SQL has many stronger points too.
What the missing (and we have been working on) is position-searching. However, that feature (of SCID) didn't come with the original design but come as an extra work of a 3rd party (by the authors of Chess Query Language, for only one but all folks of SCID). If one day someone develops that feature for SQL databases, we will have it too. Otherwise, we have been moving anyway...
ndbd wrote: ↑Sun Dec 19, 2021 10:37 pm
The original intention here was to figure out if SQL or SQLlite creates an _easy_ and straight-forward way of maintaining, storing and accessing game information, and all that without required space not going rampant. With several tries required by a skilled programmer, it is clear that it's not straight-forward and so easy, and that thought must be put into everything.
The fact that Bill Forster (Tarrasch GUI, has a blog post about that) didn't get it working quickly and opted for an in-memory approach supports the above. Indeed, it is very likely that Shane Hudson also considered SQL when designing SCID.
That just confirmed it is a big challenge!
IMHO, it is not right if we all give up easily without reviewing and trying after a such long period (all those databases are over 20 years old).
If we don't try we don't know.
ndbd wrote: ↑Sun Dec 19, 2021 10:37 pm
There is a vast material out there in CBH/CBF/CBV and SCID, and it is most easy for users if they can keep their data in the format. It also makes it easy for them to transition from an existing program to another.
If the time to figure out how to get a clean fast and nice SQL implementation would have been spent to document the SCID file-format and implement it, a fast solution might already be in production. There are some issues with SCID4, like the hard-coded index value which limits databases to maximum of 2^32 games, but these things can be easily extended. It is also not difficult to imagine more tables (more indices) if one wants to index certain searches more efficiently. Even though position search is so fast in SCID, that it might not be required.
For clearing: developing, fixing SCID… are the tasks of their developers such as Fulvio, stevenaaus..., not me (who even is not the user nor understanding their structures and codes). I knew they have been working hard for 20 years to improve and they are responsible for requirements from users.
Frankly speaking, if SCID, Chessbase's software could easily share databases (not via PGN) I wouldn't bored to think about a new database format. Many people have been waiting for that feature for 20 years too. Should we wait for more time?
ndbd wrote: ↑Sun Dec 19, 2021 10:37 pm
As for CBH/CBF/CBV, there is quite a degree of information out there, for example here github.com/antoyo/uncbv or even here on talkchess.
Those databases/files are proprietary of Chessbase. Since Chessbase doesn't want to share why do we insist? You can't get their position-searching anyway.
ndbd wrote: ↑Sun Dec 19, 2021 10:37 pm
Again, I'd love to see database support coming to BanksiaGUI, but I think you guys make everything more difficult than it has to be. Also there are some things that I think are currently not addressed, like searching for comments within games...
No, I did not want to add nor face difficulties. Simply old ways won't work for me.