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
Scid-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/scid-users

Reply via email to