MatPlus.Net

 Website founded by
Milan Velimirović
in 2006

7:44 CET
 
  Forum*
 
 
 
 

Username:

Password:

Remember me

 
Forgot your
password?
Click here!
SIGN IN
to create your account if you don't already have one.
CHESS
SOLVING

Tournaments
Rating lists
01-Oct-2019

B P C F





 
 
MatPlus.Net Forum Internet and Computing Megalomania: PDN (a proposal for a PGN derivative)
 
You can only view this page!
(1) Posted by Siegfried Hornecker [Saturday, Oct 11, 2008 12:16]; edited by Siegfried Hornecker [08-10-11]

Megalomania: PDN (a proposal for a PGN derivative)


I propose PDN, a PGN derivative (PDN means Portable Database Notation) with the following advantages:
- Better administration for databases, especially unification of names
- Support for several more pieces (up to 26, of which 19 are yet to be defined)
- Piece letters can be interchanged
- Can read PGN files
- XFEN support

Disadvantages:
- Bigger size of files if not used for databases but for only one or a few entries or too many uniquely used names, tourneys etc.
- Can't be read by classic PGN readers


Of course, I don't know if it is possible to make it work as intended, but I don't see any problems with this. Note that this is meant for databases, NOT for a small number of entries (except they use fairy pieces).


Classical PGN is like this:

 QUOTE 

[Event "tp31#E168"]
[Site "?"]
[Date "2004.10.14"]
[Round "?"]
[White "Hornecker, Siegfried"]
[Black "?"]
[Result "*"]
[Annotator "Hornecker"]
[SetUp "1"]
[FEN "8/r4pK1/5Pp1/4P1Pk/4B3/5Rnr/8/8 w - - 0 1"]
[PlyCount "27"]
[EventDate "2005.01.??"]

{Remis} 1. e6 $1 (1. Rxg3 $2 Rxg3 2. e6 fxe6+ 3. f7 Rg4 4. Bf3 Kxg5 $19) (1.
Bxg6+ $2 fxg6+ 2. f7 Nf5+ 3. Rxf5 gxf5 $19) (1. Bd5 $2 Kxg5 2. Kg8 Rc7 3. Bxf7
(3. Rf2 Nf5 4. Bxf7 Nh6+ $19) 3... Rc8+ $1 4. Be8 Rxe8+ 5. Kf7 Rxe5 $19) 1...
Nf5+ $1 (1... fxe6+ $5 2. f7 Kxg5 (2... Rxf7+ 3. Kxf7 Nxe4 4. Rxh3+ $11) (2...
Kg4 3. Kxg6 $1 (3. Kg8 $2 Rxf7 4. Kxf7 Nxe4 5. Rxh3 Nxg5+ $19) 3... Rxf7 (3...
Rh8 4. Bc6 $1 Nf5 5. Kf6 $3 Nd4 6. Rc3 $11) 4. Kxf7 Nxe4 5. Rxh3 Nxg5+ 6. Kf6
Kxh3 7. Kxg5 Kg3 8. Kf6 Kf4 9. Kxe6 $11) (2... Rc7 3. Kg8 Rc8+ (3... Nxe4 $2 4.
Rxh3+ $1 $18) 4. f8=Q Rxf8+ 5. Kxf8 Kxg5 6. Bc6 Kh4 7. Kf7 g5 8. Kxe6 g4 9. Rf2
Kg5 10. Ke5 Rh7 11. Bd5 Re7+ 12. Be6 Nh5 13. Kd6 Ra7 14. Bxg4 Kxg4 $11) 3. Kg8
Rxf7 4. Kxf7 Rh7+ (4... Nxe4 5. Rxh3 $11) 5. Kg8 $1 Nxe4 6. Kxh7 $11) (1...
Nxe4 2. Rxh3+ $11) 2. Kg8 $1 (2. Kf8 $2 Rxf3 3. Bxf3+ Kxg5 4. e7 Nd6 $1 $19) (
2. Kh8 $2 Rxf3 3. Bxf3+ Kxg5 4. exf7 Rxf7 $19) (2. Rxf5 $2 fxe6+ $1 $19) 2...
Rxf3 3. exf7 $3 (3. Bxf3+ $2 Kxg5 4. exf7 Nh6+ $1 $19) (3. e7 $2 Nxe7+ 4. fxe7
Rxe7 5. Bxf3+ Kxg5 $19) 3... Nh6+ $1 (3... Rf4 4. f8=Q Rxe4 5. Qb8 $1 $11) (
3... Rxf7 4. Bxf3+ Kxg5 5. Kxf7 $11) (3... Rf4 4. f8=Q Rxe4 5. Qb8 $1 Ne7+ {
"-/+" Bachmann} 6. fxe7 (6. Kf8 Nc6 7. Qh2+ Rh4 8. Qe2+ Rg4 9. Qh2+ Kxg5 10. f7
Rd7 11. Qe2 $11) (6. Kh8 Nc6 7. Qh2+ $1 Kxg5 8. Qg2+ Kf5 9. Qf3+ Rf4 10. Qxc6
$11) 6... Rexe7 (6... Raxe7 7. Qg3 Re3 8. Qg2 R7e5 9. Kg7 Rxg5 10. Qh1+ Kg4 11.
Kf6 Ree5 12. Qg2+ $11) 7. Qh2+ $3 Kxg5 8. Qg3+ Kf5 9. Qf3+ $11) 4. gxh6 Rxf6 5.
h7 (5. f8=Q $2 Rxf8+ 6. Kxf8 Kxh6 $19) 5... Raxf7 $1 (5... Rfxf7 6. h8=Q+ $11)
(5... Kg5 6. Bd5 $11) 6. Bxg6+ $3 (6. h8=Q+ $2 Kg5 7. Bxg6 (7. Qg7 Rxg7+ 8.
Kxg7 Re6 9. Bf3 Re7+ 10. Kf8 Kf6 11. Bg4 Re6 12. Bxe6 Kxe6 13. Kg7 g5 14. Kg6
g4 15. Kg5 g3 16. Kf4 g2 17. Kf3 g1=Q $19) (7. Qh3 Rf8+ 8. Kh7 R6f7#) 7... Rf8+
(7... Kxg6 $2 8. Qh7+ Rxh7 $11) 8. Kg7 Rxh8 $19) 6... Kxg6 (6... Rxg6+ 7. Kxf7
Rh6 $11) 7. h8=N+ $1 {#} (7. h8=Q $2 Rf8#) 7... Kf5 (7... Kg5 8. Nxf7+ Kf5 9.
Kg7 $1 Rg6+ 10. Kf8 $1 Ke6 11. Nd8+ Kd7 12. Nf7 $1 Ke6 13. Nd8+ $1 Kd7 14. Nf7
$1 $11) 8. Nxf7 Rg6+ (8... Ke6 9. Ng5+ $11 (9. Nd8+ $2 Kd7 10. Nf7 Ke7 11. Ne5
Re6 $19)) 9. Kf8 Ke6 10. Nd8+ $1 (10. Nh8 $2 Rg1 11. Nf7 Rf1 $19) (10. Ke8 $2
Rg8#) 10... Kd7 11. Nf7 $1 (11. Nb7 $2 Rg5 $19) 11... Ke6 (11... Rf6 12. Kg7 $1
$11) 12. Nd8+ Kd7 13. Nf7 Rf6 14. Kg7 $11 (14. Kg8 $2 Ke7 15. Ne5 Re6 16. Nd3
Kf6 17. Nc5 Re8+ 18. Kh7 Re1 19. Kg8 Rd1 20. Na4 Rd8+ 21. Kh7 Rd6 22. Nc5 Kf7
23. Ne4 Rd4 24. Ng5+ Kf6 $1 25. Nf3 Rd3 26. Ne1 Re3 27. Nc2 Re7+ 28. Kg8 (28.
Kh6 Re2 $19) 28... Rg7+ 29. Kf8 Rc7 $19) *



PDN would look like this:
 QUOTE 

[setpieces "KQRBSP"]
[setpiece "Nightrider" "N"]

[seteventid "0" "?"]
[seteventid "1" "tp31#E168"]

[setsiteid "0" "?"]
[setsideid "1" "site1"]

[setplayerid "0" "?"]
[setplayerid "1" "Hornecker, Siegfried"]

[setannotatorid "0" "?"]
[setannotatorid "1" "Hornecker"]


[Event "1"]
[Site "0"]
[Date "2004.10.14"]
[Round "?"]
[White "1"]
[Black "0"]
[Result "*"]
[Annotator "1"]
[SetUp "1"]
[Board "8.8"]
[FEN "8/r4pK1/5Pp1/4P1Pk/4B3/5Rnr/8/8 w - - 0 1"]
[PlyCount "27"]
[EventDate "2005.01.??"]

{Remis} 1. e6 $1 (1. Rxg3 $2 Rxg3 2. e6 fxe6+ 3. f7 Rg4 4. Bf3 Kxg5 $19) (1.
Bxg6+ $2 fxg6+ 2. f7 Sf5+ 3. Rxf5 gxf5 $19) (1. Bd5 $2 Kxg5 2. Kg8 Rc7 3. Bxf7
(3. Rf2 Sf5 4. Bxf7 Sh6+ $19) 3... Rc8+ $1 4. Be8 Rxe8+ 5. Kf7 Rxe5 $19) 1...
Sf5+ $1 (1... fxe6+ $5 2. f7 Kxg5 (2... Rxf7+ 3. Kxf7 Sxe4 4. Rxh3+ $11) (2...
Kg4 3. Kxg6 $1 (3. Kg8 $2 Rxf7 4. Kxf7 Sxe4 5. Rxh3 Sxg5+ $19) 3... Rxf7 (3...
Rh8 4. Bc6 $1 Sf5 5. Kf6 $3 Sd4 6. Rc3 $11) 4. Kxf7 Sxe4 5. Rxh3 Sxg5+ 6. Kf6
Kxh3 7. Kxg5 Kg3 8. Kf6 Kf4 9. Kxe6 $11) (2... Rc7 3. Kg8 Rc8+ (3... Sxe4 $2 4.
Rxh3+ $1 $18) 4. f8=Q Rxf8+ 5. Kxf8 Kxg5 6. Bc6 Kh4 7. Kf7 g5 8. Kxe6 g4 9. Rf2
Kg5 10. Ke5 Rh7 11. Bd5 Re7+ 12. Be6 Sh5 13. Kd6 Ra7 14. Bxg4 Kxg4 $11) 3. Kg8
Rxf7 4. Kxf7 Rh7+ (4... Sxe4 5. Rxh3 $11) 5. Kg8 $1 Sxe4 6. Kxh7 $11) (1...
Sxe4 2. Rxh3+ $11) 2. Kg8 $1 (2. Kf8 $2 Rxf3 3. Bxf3+ Kxg5 4. e7 Sd6 $1 $19) (
2. Kh8 $2 Rxf3 3. Bxf3+ Kxg5 4. exf7 Rxf7 $19) (2. Rxf5 $2 fxe6+ $1 $19) 2...
Rxf3 3. exf7 $3 (3. Bxf3+ $2 Kxg5 4. exf7 Sh6+ $1 $19) (3. e7 $2 Sxe7+ 4. fxe7
Rxe7 5. Bxf3+ Kxg5 $19) 3... Sh6+ $1 (3... Rf4 4. f8=Q Rxe4 5. Qb8 $1 $11) (
3... Rxf7 4. Bxf3+ Kxg5 5. Kxf7 $11) (3... Rf4 4. f8=Q Rxe4 5. Qb8 $1 Se7+ {
"-/+" Bachmann} 6. fxe7 (6. Kf8 Sc6 7. Qh2+ Rh4 8. Qe2+ Rg4 9. Qh2+ Kxg5 10. f7
Rd7 11. Qe2 $11) (6. Kh8 Sc6 7. Qh2+ $1 Kxg5 8. Qg2+ Kf5 9. Qf3+ Rf4 10. Qxc6
$11) 6... Rexe7 (6... Raxe7 7. Qg3 Re3 8. Qg2 R7e5 9. Kg7 Rxg5 10. Qh1+ Kg4 11.
Kf6 Ree5 12. Qg2+ $11) 7. Qh2+ $3 Kxg5 8. Qg3+ Kf5 9. Qf3+ $11) 4. gxh6 Rxf6 5.
h7 (5. f8=Q $2 Rxf8+ 6. Kxf8 Kxh6 $19) 5... Raxf7 $1 (5... Rfxf7 6. h8=Q+ $11)
(5... Kg5 6. Bd5 $11) 6. Bxg6+ $3 (6. h8=Q+ $2 Kg5 7. Bxg6 (7. Qg7 Rxg7+ 8.
Kxg7 Re6 9. Bf3 Re7+ 10. Kf8 Kf6 11. Bg4 Re6 12. Bxe6 Kxe6 13. Kg7 g5 14. Kg6
g4 15. Kg5 g3 16. Kf4 g2 17. Kf3 g1=Q $19) (7. Qh3 Rf8+ 8. Kh7 R6f7#) 7... Rf8+
(7... Kxg6 $2 8. Qh7+ Rxh7 $11) 8. Kg7 Rxh8 $19) 6... Kxg6 (6... Rxg6+ 7. Kxf7
Rh6 $11) 7. h8=S+ $1 {#} (7. h8=Q $2 Rf8#) 7... Kf5 (7... Kg5 8. Sxf7+ Kf5 9.
Kg7 $1 Rg6+ 10. Kf8 $1 Ke6 11. Sd8+ Kd7 12. Sf7 $1 Ke6 13. Sd8+ $1 Kd7 14. Sf7
$1 $11) 8. Sxf7 Rg6+ (8... Ke6 9. Sg5+ $11 (9. Sd8+ $2 Kd7 10. Sf7 Ke7 11. Se5
Re6 $19)) 9. Kf8 Ke6 10. Sd8+ $1 (10. Sh8 $2 Rg1 11. Sf7 Rf1 $19) (10. Ke8 $2
Rg8#) 10... Kd7 11. Sf7 $1 (11. Sb7 $2 Rg5 $19) 11... Ke6 (11... Rf6 12. Kg7 $1
$11) 12. Sd8+ Kd7 13. Sf7 Rf6 14. Kg7 $11 (14. Kg8 $2 Ke7 15. Se5 Re6 16. Sd3
Kf6 17. Sc5 Re8+ 18. Kh7 Re1 19. Kg8 Rd1 20. Na4 Rd8+ 21. Kh7 Rd6 22. Sc5 Kf7
23. Se4 Rd4 24. Sg5+ Kf6 $1 25. Sf3 Rd3 26. Se1 Re3 27. Sc2 Re7+ 28. Kg8 (28.
Kh6 Re2 $19) 28... Rg7+ 29. Kf8 Rc7 $19) *


While the use of the most integers should be clear, I still think, a detailed list is necessary.

[setpieces] is used to set the pieces King, Queen, Rook, Bishop, Knight, Pawn (in that order) to letters. If not defined, KQRBNP should be used.

[setfairypieces] is used to set 20 fairy pieces to the letters. Which fairy pieces are used, is still debatable. Nightrider must be supported, though!

[setpiece] is used to set fairy pieces to letters. If not defined, no fairy pieces are used. If more than 20 fairy pieces are used, the non-standard fairy pieces can be set to letters only here. However, no more than 26 different pieces may be used in a single database.

There also could be used a switch to determine if FEN notation is affected. However, client readers must support standard FEN and EPD.

-----

[seteventid] is used to set events to a number that is entered in the Event field. This is useful for database managing (e.g. correcting multiple spellings of the same name). If seteventid isn't used, events are written as normal. However, if seteventid appears at the top of the file, all events should be written in this way.
[setsideid] see above
[setnameid] see above, must be usable for both Black and White
[setannotatorid] see above. A special key is [setannotatorid "nameid"] which makes the nameid usable in the annotatorfield. Since annotators use last names and the first first name letter only while names show the full first name (at least in most databases), this is different. However, the effect can be made by [setannotatorid "nameidshort"] for only the first letter of the first name added and [setannotatorid "nameidnof"] for no first name.



In the actual game notation: [Board] determines the board size as "x.y". If the parameter is not used, 8x8 should be default. There is no support for three-dimensional boards but the parameter could be advanced to "x.y.z" if necessary.
 
(Read Only)pid=2803
(2) Posted by Kevin Begley [Saturday, Oct 11, 2008 14:12]

I don't like it.
What is gained by supporting exactly 20 fairy units?
The standard would only be useful to programs which would soon need to upgrade your standard.

If the goal is to support fairy units, you should use an expandable fairy-FEN string, which can support all fairy units, plus any fairy units yet to be invented...

And, take it one step further...

Imbed the fairy glossary into your PDN.
For example, a problem which employs both Nightriders and Roses should define, in the PDN, the shape of each fairy unit.

Sorting these by some priority algorithm is a complex matter.
Better, imho, to let users dictate the glossary, and declare it within the notation.
 
 
(Read Only)pid=2804
(3) Posted by Siegfried Hornecker [Saturday, Oct 11, 2008 15:05]

No, the fairy support addition is only a bonus. The standard use will be in databases where things easily can be filtered and names preserved from misspelling (which is useful for those huge databases). Of course, the parameters should be used internally (externally still names etc. should be entered as usual).
 
   
(Read Only)pid=2805
(4) Posted by Siegfried Hornecker [Thursday, Oct 16, 2008 07:12]

The whole idea was bad. I apologize! PDN already exists for draughts, although it is different from mine.

Also, it's too database specific and useless for composition. Someone told me, XML will be the format that is useful.

To me the theme is through, I'm 20 years too late...
 
   
(Read Only)pid=2836
(5) Posted by Joost de Heer [Thursday, Oct 16, 2008 10:19]

Thomas Maeder is already working on an XML format for chess problems: http://problem-xml.sourceforge.net/
 
 
(Read Only)pid=2837

No more posts


MatPlus.Net Forum Internet and Computing Megalomania: PDN (a proposal for a PGN derivative)