Benoit St-Pierre wrote:
Hi!
> Suppose you have a closed tournament. You have all the games, except
> one. That one, you're not sure, or you're waiting for the score to come
> in. It's sensible that you enter the header without providing the score
> : you're waiting. Sometimes, it's empty because the game was forfeited,
> or that the player died of a car accident. Whatever : I am choosing
> extreme examples to illustrate the need to have metadata, not to say
> that it's how we should do it regarding this very project.
Actually, I think you're both right. Benoit is right in the
regards that one should have e.g. the header in this case to
know that this game was played or is played at all. (Think
e.g. about incorporating correspondence games. No need for
one player to die, they take long enough without such
issues.)
Pascal is IMHO right as I'd suggest to set up one db that
first collects the games that should make it to the final
CentriScid-DB. And only once they are checked and complete
they should be committed to CentriScid-DB. Therefore, I'd
suggest to organise the build up in two DBs. For a
collaborative efford it might suite best if each
collaborator takes responsibility of his part on the basis
of an event.
> If that's nonsense to you, imagine you have one game that
> finished in time scramble and you put an "etc" at the end
> of the game. You finally get to the final moves : a
> friend noted them. This is in fact the same process as
> correcting a misspelled name, or a misclicked move : you
> change the game score. This is "good enough".
Point is, that such a game should probably be in the
"todo"-db, but make it only then to CentriScid if it is
finished and complete to the best knowledge.
> Or is it ? We have the best practices for CVS when it comes to
> programming. Do we have them when it comes to archiving ?
I think the CVS approach is pretty applicable. Though I'd
suggest the "to be commited" part as accessible. I may, just
as an example, mention how it's done in a major software
project, where I feel the handling is pretty well and
serves the end product best.
They split their software in three sections:
- Stable:
This is software that is debugged and extensively
checked. This is also the version of the software that is
delivered to the general public and the stage of the
release is only defined by one single criterion: _all_
open bugs are closed. At the point of the release this
software is in fact "100% bug free" to the best of the
knowledge of all programmers. Here, only corrections take
place for errors that are found after the release, but no
new stuff is added here ever. That is if some particulary
part of the package is released in version 1.0 and whilst
the lifetime of stable there is a 2.0 and a 3.0 it will
stay at 1.0 till the next _stable_ version is released.
This thing has a pretty slow evolution but you can really
rely on it. Fixing a bug that shows up has a very high
priority.
In CentriScid terminology this would mark _the_ CentriScid
database. Correction of spelling errors would be ok here.
It would contain only games that meet all criteria of the
collectors concerning tag quality (metadata) and
completeness (e.g. for tournaments one could imagine that
"closed tournaments" have to be complete while opens do
not have to.)
- Testing:
Here you have new software that is considered for the next
release lives. It is tested for bugs which are resolved,
new stuff that seems fit for the next release is added
here once it is considered mature enough.
Bug fixing occurs as soon as bugs show up in the next
higher level and they are propagated to testing. From time
to time the input from Unstable is halted, and then once
testing is 100% bug free to the best knowledge of the team
this version is moved on to stable to replace the old
stable branch: a release is made.
In CentriScid this could e.g. be a level where games and
tournaments live that are complete, passed a first check
(e.g. automatic spell correction without any major
problems) and where the games are finished. This could
also be the stage where flags are added if appropriate or
and missing tags come in or get properly normalised.
- Unstable:
This marks the bleeding edge of development. Software in
this area does not necessarily need to work and is likely
to contain bugs. Here major testing takes place and bugs
are fixed.
In CentriScid this would be the part where all games that
should be in the final database should come in. They are
checked for validity of the moves, first checks for
correct metadata are made. Tournaments do not have to be
completed to be entered here, here also games could live
where only the header stub currently exists without any
move and also games and tournaments that are not yet
finished end up here. This component could "harvest" well
known sources and some automatisation how a game comes in
here could apply. E.g. every week TWIC would end up here
or if CB is offering annotated versions of some games they
could also come in here.
If someone out there sees any similarity to the Debian
project this is sheer chance, but unavoidable ;)
> That might not be a great problem for practical chess.
> Not so for documentary pruposes, would say historian like
> Edward Winter says, who regarding Tartakower vs Przepiorka
> said [1] :
> **
>
> This game provides yet another reminder that databases
> cannot be taken on trust, as the first moves are
> frequently given as 1 e4 e6.
In the workflow outlined above Mr. Winter would definitely
work only with "CentriScid Stable". The average user out
there would probably like testing better as this is on an
actual basis with a timespan of about a month. But there may
be well a bunch of users that use actually the "unstable"
because they feel that this is the most actual basis and
slight errors are not that important as they probably do not
want to generate crosstables or do research on the basis of
Mr. Winter.
The above is just a suggestion how it could look like.
Personally, I just found that this little free software
project mentioned did probably the best job out there for
years and offers a suitable solution for everybodies needs.
--
Kind regards, / War is Peace.
| Freedom is Slavery.
Alexander Wagner | Ignorance is Strength.
|
| Theory : G. Orwell, "1984"
/ In practice: USA, since 2001
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Scid-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/scid-users