PGN формат в шахматной композиции.

Jan 14, 2016 16:01

Думаю, нет любителя шахмат в интернете, который не знал бы, что такое PGN [1]. Это сравнительно простой текстовый формат для описания шахматных партий и позиций [2]. Однако меня, как шахматного композитора и программиста данный формат не может удовлетворять. Ниже я хочу представить проблемы, которые PGN не решает, предложить своё решение и спросить совета.

I. автор, публикация и т.д.

Первое, что важно и нужно, и что отсутствует в PGN, это сопроводительная информация к позиции. В этом случае каждый автор изгаляется, как может: имя прописывается в теге White, задание - в тегах Black, Result, информация об издании в тегах Site и Event. Строго говоря, указанные теги имеют другое назначение, и они не годятся для описания задачи или этюда. В стандарте PGN строго указана последовательность из обязательных 7 тегов, определяющих партиюREF. Но в случае описания позиции последовательность тегов должна быть другой. За основу взят формат olv [3]:

[Authors "Valuska, Ján"]
[Source "Al Hamishmar"]
[Date "1987"]
[FEN "8/8/8/8/8/8/8/8"]
[Stipulation "#2"]

В примере приведены обязательные элементы. Естественно, существуют и дополнительные: Distinction, Source-id, Twins, Country...
II. что в имени?!

Другая проблема - стандартизация записи имен, названий. Естественно, все понимают, что "Valuska=J" и "Valuska Jan" это один и тот же человек. Но компьютеру это не так очевидно. Поэтому необходимо стандартизировать и форму записи имен, отличий и т.д. чтобы не плодить количество виртуальных композиторов в различных базах. Лично у меня при работе с базой данных это вызывает определенные проблемы.
III. параллельные варианты

В шахматной партии запись ходов однозначна. Добавление вариантов понятно. Но описание этюда и задачи не может выражаться тем механизмом, который используется в PGN. Поэтому, при записи решения в данном формате, пользуются комментариями. Однако, я считаю, что необходим механизм описания равнозначных вариантов. К сожалению, пока не представляю, как это можно реализовать на основе стандарта PGN, разве что помечать вариант некоторым специальным символом, например, *.

Пример записи этюда:

[Event "?"]
[Source"Magyar Sakkélet"]
[Distinction "2nd special HM"]
[Date "1981"]
[Authors "Costeff Gady"]
[FEN "2r1R3/8/3P4/1B1p4/3p4/3P4/1R2pp2/1r3k1K w - - 0 1"]
[Stipulation "White wins"]

1. d7 Rxe8 2. Rxb1+ { with three variations:}
(* 2... e1=Q! 3. dxe8=Q! Qxb1 4. Bd7 Qxd3 5. Bb5 1-0)
(* 2... e1=B! 3. dxe8=B! ( 3. dxe8=N Ke2 4. Rb2+ Bd2 5. Rb1 Be1 )
3... Ke2 4. Bh5+ Ke3 5. Kg2 1-0)
(* 2... e1=N! 3. dxe8=N! ( 3. dxe8=B Ke2 4. Rb2+ Ke3 )
3... Ke2 4. Rb2+ Ke3 5. Rxf2 Kxf2 6. Nf6 Ke2 7. Nxd5 Kd2
8. Nf4 Ke3 9. Ng2+ 1-0) { 3/4 Babson task. }
выводы

Конечно, можно не задумываться и использовать уже существующие форматы для описания композиций. Однако, мне формат PGN нравится, и хотелось бы его использовать. В частности, для работы с этюдами, так как он в основном и используется. Но возможности формата неудовлетворительны, так почему же не предложить соответствующие изменения?!
Ссылки

  1. Portable Game Notation: WIKI
  2. Standard: Portable Game Notation Specification and Implementation Guide
  3. YACPDB: Wiki Help / Guidelines

pgn, определения, техническое

Previous post Next post
Up