I came across this in the PGN standard on this site, section 17, for alternative piece identifiers (emphasis mine):

English language piece names are used to define the letter set for identifying chesspieces in PGN movetext. However, authors of programs which are used only for local presentation or scanning of chess move data may find it convenient to use piece letter codes common in their locales. This is not a problem as long as PGN data that resides in archival storage or that is exchanged among programs still uses the SAN (English) piece letter codes: "PNBRQK".

Followed by a table of symbols for different languages.

The first part seems to suggest that one can use identifiers from other languages to represent the pieces if one so wishes.

However, the highlighted part seems to contradict that, saying that, ultimately, the PGN should use the English identifiers and not those of any other language.

It appears that a mistake in my understanding caused this contradiction, so I'd be glad if someone could please clarify it.

My question

Can one use symbols from languages other than English for representing pieces in a PGN file?

Would something like this work (using the piece identifiers in German)?

[Event "Casual game"]
[Site "Hogwarts"]
[Date "2018.03.09"]
[Round "1"]
[White "Malfoy, Draco"]
[Black "Weasley, Ronald"]
[Result "*"]
[TimeControl "1/15+1"]
[FEN " "]

1. e4 e5 2. Sf3 Sc6 3. Lb5 Sf6 4. O-O Sxe4 *
  • Could someone let me know why this was downvoted? If there's something to fix, I'd be glad for your suggestions! – Myungjin Hyun Mar 9 '18 at 13:50

I read it like this:

The standard is to use the English piece names. Of course, we can't stop authors to adapt this standard in their own programs (sometimes, it might make sense). But pretty please, do always stick to the English names for any data that might be shared between multiple programs.

For example, if I write a program to automatically scan games from old German chess magazines, it makes no sense to let my program try to parse the standard PGN piece names. I'd use German piece names instead, and this is fine in the environment of my own program.

But as soon as I want to store the PGN files in a database, I must translate them to English piece names or my database browser or whatever other program won't be able to read them.

  • I don't fully understand -- if the program in your example scanned games which used German identifiers, would the PGN it internally stores use the German identifiers or the English ones? – Myungjin Hyun Mar 9 '18 at 10:47
  • 2
    If it only stores the PGN locally, it may use whatever format it wants. If it stores the PGN in a database that other programs are supposed to access (e.g. SCID & Co.), or if it directly shares data with other programs (e.g. if I include an automated Stockfish analysis for each game) it has to conform to the international standard. – Annatar Mar 9 '18 at 10:49
  • As such, the paragraph you quote only states the obvious: "You can tinker with the standard in any way you want, but if your program wants to be understood by other programs, you have to translate to English". – Annatar Mar 9 '18 at 10:54
  • So you basically mean that I can make a programme that reads PGN that way, but no mainstream PGN readers does so, right? Thanks for your answer! (+1) – Myungjin Hyun Mar 9 '18 at 13:49
  • @HarryWeasley Yes. – Annatar Mar 9 '18 at 14:04

The specification you have in your link has no practical meaning as the format is not enforced consistently. Steven J. Edwards introduced the format, but he didn't have authority to control how programmers implement PGN.

Most PGN parser would only support the English language.

I've been distributing PGN parsing softwares for years, but I don't think I'll add foreign language support. I assume anyone who is intelligently capable of playing chess would be able to read English piece identifiers.

  • 1
    In case anyone wants to parse Dutch or German input, my pgn-extract program (cs.kent.ac.uk/~djb/pgn-extract) has supported both for most of its life, and there is also an option (-Wsan) that would allow output to an arbitrary set of single-character letters if desired. – kentdjb Mar 10 '18 at 11:18
  • @kentdjb Thanks for your excellent work on PGN. Your software is an exception :-) – SmallChess Mar 10 '18 at 11:37
  • @kentdjb That is very interesting! Thanks! – Myungjin Hyun Mar 12 '18 at 14:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.