HOME XML-SCHEMA XML-EXAMPLES CHESS VARIANTS FBR MBN ANCP FAQ RESOURCES ABOUT

CIF - Game Data


<xs:complexType name="Game"> <xs:sequence> <xs:element name="info" type="GameInfo"/> <xs:element name="moves" type="MoveSection"/> <xs:element name="data" type="GameData" minOccurs="0"/> </xs:sequence> <xs:attribute name="variant" type="Variant" default=":Chess"/> <xs:attribute name="tandem" type="xs:boolean" default="false"/> <xs:attribute name="startposition" type="StartPosition" default=":standard"/> <xs:attribute name="controlposition" type="StartPosition" default=""/> <xs:attribute name="invalid" type="xs:boolean" default="false"/> <xs:attribute name="pieces" type="ListOfNotations" default=""/> <xs:attribute name="rules" type="ListOfRules" default=""/> <xs:attribute name="boardsize" type="BoardSize" default="8x8"/> <xs:attribute name="boardpath" type="xs:string" default="8x8"/> <xs:attribute name="coloration" type="xs:string" default=""/> <xs:attribute name="signature" type="Signature" default=""/> <xs:attribute name="languages" type"ListOfLanguages" default""/> <xs:attribute name="fragment" type="xs:string"/> </xs:complexType> <xs:simpleType name="ListOfNotations"> <xs:list itemType="xs:string"/> <!-- Modified Betza Notation --> </xs:simpleType> <xs:simpleType name="ListOfRules"> <xs:list itemType="xs:string"/> <!-- Formalized Board Rules --> </xs:simpleType> <xs:simpleType name="ListOfLanguages"> <xs:list itemType="xs:language"/> </xs:simpleType>

A game consists of three section: the game information section, the move data section, and optionally the game data section. This sequence must be observed.

Normally element game must not have attributes, the default values are fulfilling the requirements of standard chess. Note that Chess 960 in not a chess variant, although many people are believing this, it is a superset of start positions – the same applies to Shuffle Chess.

The attribute variant is specifiying the variant of this game. Note that there is a relationship between this attribute and the attributes pieces and rules. The attribute variant contains a user defined variant (this means the given variant is not predefined) if and only if the attributes pieces and rules are also defined. The value of pieces is a list of piece notations (see Modified Betza Notation), and the value of rules is a list of board rules (see Formalized Board Rules). Note that C/CIF cannot support more than 128 different pieces.

For the sepcification of board paths see Board Identification. Attribute boardpath is specifiying the path of the board, this is the part after the specification of the dimensions. Example: the board identification "9x19v" contains the dimensions ("9x19") and the path ("v").

Attribute coloration specifies the coloration of the board. The default is a checkered board with light and dark sqaures, the lower left corner (square a1) is dark colored. A more detailed description about the format has not yet been done.

Attribute signature should not be set to any other value than ":PGN" if it is not guaranteed that the move data section contains valid data (any move is either valid/legal or the appropriate flag is set). If the signature is not specified, or if the signature is ":PGN" than the reader of the archive has to check the validity/legality of each move, otherwise the reader can trust that the move data is correct. Note that this attribute will be overruled from the attribute creator given in the archive information section. If the creator is not empty, and not set to ":PGN", and none of the attributes modifiedby is set to ":PGN", than any game inside the archive contains valid move data (the writer of the archive has to guarantee this). Note: if the archive contains an index section, then both elements, the index game entry, and the game data element, must contain the same signature.

Attribute tandem is required if the given variant is a tandem chess game.

The start position will be specified with attribute startposition. Attribute invalid specifies whether the given start position is invalid; example: in standard chess a start position without any king on board is invalid, but can be useful for demonstration purposes. Note that the value :standard for attribute startposition is defining the standard start position of the specified chess variant in attribute variant. See page chess variants for the definition of the standard start positions. It is also allowed to use numbers for the start position, for example Chess-960 positions will be idenfified with the Chess960 numbering scheme.

In many chess variants the standard piece set is not defined, this means any application is using his own set of piece identifiers. In such cases the attribute controlposition should be given with the standard board setup, the reader of this game gets a chance to identify the pieces with an analysis of the specified standard start position. The page chess variants gives information which variants are affected.

Attribute fragment exists if and only if this game is a fragment of a live game, the value of this attribute is an identifier for this game. This identifier should be unqiue for each game as long as the live session is running.

Extension for Tandem chess games (Bughouse)

For Tandem chess games both boards will be stored inside one move section, see MoveSection for further details.

In rare cases a Tandem chess game may start with different start positions. In this case both start positions will be given in attribute startposition, but delimited with a vertical bar (this is also defined in BPGN), so that the first part is the start position belonging to the first board, and the second part is the start position belonging to the second board. If a start position is given with only one part (no vertical bar), then it will be assumed that this is the start position for both boards.



Google translation

Share this page

C/CIF at Sourceforge

C/CIF at Sourceforge

C/CIF at Launchpad

C/CIF at Launchpad