Cyril Kato's blog

PCN and PGN: Complementary Approaches to Game Notation

PGN (Portable Game Notation) is the de facto plain-text standard for recording chess games—both human-readable and machine-parsable. Its long-standing strengths include interoperability (engines, GUIs, databases), longevity (plain text that's easy to archive and version), rich annotations (comments, NAGs, and variations), and standardized metadata tags (event, players, Elo, date, result). PGN enables sharing and archival (clubs, online repositories), supports import/export for engine analysis and preparation, can serve live relays, and powers training material through annotated collections.

Historically, PGN emerged in the early 1990s and has remained focused on Western chess.

A classic PGN example

The following miniature is traditionally attributed to Gioachino Greco (early 17th century). Many “Greco games” are didactic constructions rather than authenticated over-the-board records.

[Event "Rome"]
[Site "Rome ITA"]
[Date "1620.??.??"]
[Round "?"]
[White "Gioachino Greco"]
[Black "NN"]
[Result "1-0"]
[TimeControl "-"]

1. e4 e5 2. Nf3 Qf6 3. Bc4 Qg6 4. O-O Qxe4 5. Bxf7+ Ke7 6. Re1 Qf4
7. Rxe5+ Kxf7 8. d4 Qf6 9. Ng5+ Kg6 10. Qd3+ Kh5 11. g4+ 1-0

PGN excels at representing Western chess and is deliberately optimized for it: 8×8 grid, specific piece symbols (K, Q, R, B, N, P), no drop mechanics, and metadata conventions aligned with traditional chess requirements.

PGN's limitations with other variants

Shōgi

Shōgi relies on established encodings—KIF (traditional text), CSA (software-oriented), and SFEN/USI (modern engine/UI). While PGN could be extended, its current design doesn't natively support shōgi's core mechanics—especially drops from reserve—without significant changes.

Xiangqi

Xiangqi uses a 9×10 grid with distinct piece sets and movement rules, plus river and palace constraints. PGN is anchored in Western chess assumptions, so faithful xiangqi representation would require fundamental restructuring. As a result, xiangqi communities favor formats such as XQF and standardized server notations.

The case for a broader approach

PGN achieves excellence—within chess. To document multiple board-and-piece traditions across cultures and variants, a more flexible, rule-agnostic system improves preservation, analysis, and interoperability among related abstract strategy games.

  • Cross-platform compatibility: unified viewers, analysis tools, and archives across chess-family traditions.
  • Cultural preservation: regional and historical systems maintained within a shared framework.
  • Research & AI: consolidated datasets for comparative analysis and machine learning.
  • Creative exploration: emerging variants and hybrids without inventing a new protocol per game.

PCN: a focused alternative (not universal coverage)

PCN (Portable Chess Notation) is a JSON-based recording system designed to remain rule-agnostic across many chess-family traditions. It does not claim universal coverage; it targets board-and-piece contests where positions and atomic actions map cleanly.

PCN leverages modular specifications:

  • PAN (Portable Action Notation) for atomic actions (e.g., e2-e4 displacement, d1+f3 capture, e1~g1 castling).
  • FEEN (Forsyth–Edwards Enhanced Notation) for positions, including reserves.
  • SNN (Style Name Notation) to identify the ruleset (“style”) in use (enabling cross-style encounters like Chess vs Shōgi).
  • CGSN (Chess Game Status Notation) for standardized, observable outcomes.

This modular architecture allows components to evolve independently while keeping the overall system coherent.

Greco's miniature in PCN

The same sequence expressed in PCN (moves via PAN tuples, position via FEEN). Times below are illustrative.

{
  "meta": {
    "event": "Rome",
    "location": "Rome ITA",
    "started_at": "1620-01-01T00:00:00Z",
    "name": "Gioachino Greco vs NN"
  },
  "sides": {
    "first":  { "name": "Gioachino Greco", "style": "CHESS" },
    "second": { "name": "NN",              "style": "chess"  }
  },
  "setup": "+rnbq+kbn+r/+p+p+p+p+p+p+p+p/8/8/8/8/+P+P+P+P+P+P+P+P/+RNBQ+KBN+R / C/c",
  "moves": [
    ["e2-e4", 2.0], ["e7-e5", 2.0],
    ["g1-f3", 3.0], ["d8-f6", 3.0],
    ["f1-c4", 2.0], ["f6-g6", 2.0],
    ["e1~g1", 2.0], ["g6+e4", 3.0],
    ["c4+f7", 4.0], ["e8-e7", 2.0],
    ["f1-e1", 2.0], ["e4-f4", 2.0],
    ["e1+e5", 3.0], ["e7+f7", 2.0],
    ["d2-d4", 2.0], ["f4-f6", 2.0],
    ["f3-g5", 3.0], ["f7-g6", 2.0],
    ["d1-d3", 2.0], ["g6-h5", 2.0],
    ["g2-g4", 2.0]
  ],
  "status": "resignation"
}

PCN's distinctive features

  1. JSON architecture: native in modern languages, services, and storage.
  2. Unambiguous actions: each move is a single PAN operation with explicit source/target semantics.
  3. Comprehensive metadata: preserves context (event, site, players, links, timestamps).
  4. Flexible across variants: covers many chess-family traditions and cross-style matches.
  5. Time control ready: per-player, period-based timing with moves recorded as ["<PAN>", <seconds>].

Conclusion

PGN and PCN serve complementary purposes. PGN remains the definitive standard for Western chess, backed by decades of tooling and adoption. PCN offers a contemporary option when projects need JSON-native structures, multi-variant capability, or tight integration with modular specs like PAN, FEEN, SNN, and CGSN.

For chess-only workflows that rely heavily on inline annotations and branching analysis, PGN is often ideal. For managing diverse, related traditions or implementing structured, machine-friendly records, PCN provides clear benefits—within its intentionally scoped domain.