1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195
|
<!DOCTYPE HTML>
<html>
<head>
<title>pgn-extract: Portable Game Notation (PGN) Manipulator for Chess Games</title>
<link rev="made" href="mailto:d.j.barnes @ kent.ac.uk">
<meta name="Author" content="David J. Barnes">
<meta name="Description"
CONTENT="Directory with source of program to manipulate
chess games recorded in Portable Game Notation (PGN)
format">
<meta name="Keywords" content="Chess PGN Portable Game Notation
Database
pgn-extract">
<link href="style.css" rel="stylesheet" type="text/css" media="all">
</head>
<body>
<div id="body">
<div id="banner-wrapper">
<div id="banner">
<h1 align="center">pgn-extract:<br />A Portable Game Notation (PGN) Manipulator for Chess Games<br />
Version 19-04 by <a href="https://www.cs.kent.ac.uk/~djb/">David J. Barnes</a>
(<a href="https://twitter.com/kentdjb">@kentdjb</a>)<br />
<a href="pgn-extract.xml">
<img alt="RSS feed image" src="feed.png" width="25" height="25"></a>
</h1>
</div>
</div>
<div id="page-wrapper">
<div id="page">
<h2>Introduction</h2>
<p>This is the home page for
the <em>pgn-extract</em> program,
which is a <em>command-line</em> program for searching, manipulating and formatting
chess games recorded in the Portable Game Notation (PGN) or something close. It
is capable of handling files containing millions of games. It also recognises Chess960
encodings.
<p>A <a href="https://www.cs.kent.ac.uk/people/staff/djb/pgn-extract/help.html">full
description of pgn-extract's functionality</a> is available and included
with the sources.
<p>Here you can find the C source code and win32 binary for the current
version.
pgn-extract compiles and runs under Windows, Linux and Mac OS X.
This program is made available under the terms of the
<a href="https://www.cs.kent.ac.uk/~djb/pgn-extract/COPYING">GNU
General Public License (Version 1).</a>
<h2>Getting-started video for Windows users</h2>
<p>For Windows users who are really only interested in getting
the binary working, there is <a href="https://www.cs.kent.ac.uk/~djb/pgn-extract/intro.mp4">a short introductory video</a>.
<h2>Blog post about data mining with pgn-extract</h2>
<p>In October 2018 I wrote <a href="http://blogs.kent.ac.uk/djb/2018/10/14/data-mining-with-pgn-extract/">blog post</a>
about using pgn-extract to mine a PGN database.
As an example it looks at the effect of having a bishop pair versus a knight pair.
<h2>Overview</h2>
<p>The program is designed to make it easy to extract and format selected games from a
PGN format data file based on a wide variety of criteria.
The criteria include:
<ul>
<li><p>textual move sequences;</p></li>
<li><p>the position reached after a sequence of moves;</p></li>
<li><p>information in the tag fields;</p></li>
<li><p>fuzzy board position;</p></li>
<li><p>and material balance in the ending.</p></li>
</ul>
<p>Over the on-going 20+ year course of its development, it has also added
lots of features for controlling what is output (e.g., different
algebraic formats, EPD, no move numbers, restricting game length, etc.)
<p>The program includes a semantic analyser which will
report errors in game scores and it is also able to detect duplicate
games found in its input files.
<p>The range of input move formats accepted is fairly wide and includes
recognition of lower-case piece letters for English and upper-case
piece letters for Dutch and German. The output is normally in English Standard
Algebraic Notation (SAN), but this can be varied.
<p>Extracted games may be written out either including or excluding
comments, NAGs, variations, move numbers, tags and/or results.
Games may be given ECO classifications
derived from the accompanying file eco.pgn, or a customised version
provided by the user.
<p>The program is designed to be relatively memory-friendly, so it
does not retain a game's moves in memory once it has been processed.
This also makes it suitable for bulk processing very large collections of games
- it can efficiently process files containing several millions of games.
<p>Use the <em>--help</em> argument to the program to
get the full lists of arguments.
<h2>New in recent versions</h2>
<p>These are the main changes in the most recent versions:
<ul>
<li><p>Accept Z0 as an alternative to --.
<li><p>Added -y as an alternative to -z for colour-specific material matches.
<li><p>Added --dropbefore to drop ply occuring before a particular comment pattern.
<li><p>With --allownullmoves uppress the warning for null moves.
<li><p>Added --dropply.
<li><p>Added --nestedcomments to allow non-standard nested comments.
<li><p>Corrected failure to OR rather than AND the pseudo Elo
tag used with -t.
<li><p>Fixed a memory leak with -z.
<li><p>Made it possible to identify which -z pattern
was matched in a game.
</ul>
<h2>Available Files</h2>
<p>You can take a copy of the full source and
documentation as either
<a href="https://www.cs.kent.ac.uk/~djb/pgn-extract/pgn-extract.tgz">pgn-extract.tgz</a>
or
<a href="https://www.cs.kent.ac.uk/~djb/pgn-extract/pgn-extract.zip">pgn-extract.zip</a>.
Alternatively, <a
href="https://www.cs.kent.ac.uk/~djb/pgn-extract/pgn-extract.exe">a win32
binary</a> is available.
</p>
<table>
<tr>
<td align="center"><b>Name</b></td>
<td align="center"><b>Description</b></td>
<td align="center"><b>Size</b></td>
<td align="center"><b>Date</b></td>
</tr>
<tr valign="top">
<td><a href="https://www.cs.kent.ac.uk/~djb/pgn-extract/pgn-extract.tgz">pgn-extract.tgz</a><br>
<td>GZipped tar file
of the complete source of the latest version of the program.<br>
Includes <a href="https://www.cs.kent.ac.uk/~djb/pgn-extract/help.html">usage documentation</a>,
Makefile for compilation and
<a href="https://www.cs.kent.ac.uk/~djb/pgn-extract/eco.pgn">eco.pgn</a> file for ECO classification.</td>
<td align="right">393K bytes </td><td>14 Oct 2018</td>
</tr>
<tr valign="top">
<td><a href="https://www.cs.kent.ac.uk/~djb/pgn-extract/pgn-extract.zip">pgn-extract.zip</a></td>
<td>Zipped file of the complete source of the latest version of the program.<br>
Includes <a href="https://www.cs.kent.ac.uk/~djb/pgn-extract/help.html">usage documentation</a>, Makefile for compilation and
<a href="https://www.cs.kent.ac.uk/~djb/pgn-extract/eco.pgn">eco.pgn</a> file for ECO classification.</td>
<td align="right">547K bytes </td><td>14 Oct 2018</td>
</tr>
<tr>
<td><a href="https://www.cs.kent.ac.uk/~djb/pgn-extract/pgn-extract.exe">pgn-extract.exe</a></td>
<td>win32 binary of the latest version of the program.</td>
<td align="right">687K bytes </td><td>14 Oct 2018</td>
</tr>
<tr>
<td><a href="https://www.cs.kent.ac.uk/~djb/pgn-extract/eco.zip">eco.zip</a></td>
<td>Zipped version of <a href="https://www.cs.kent.ac.uk/~djb/pgn-extract/eco.pgn">eco.pgn</a>.</td>
<td align="right">32K bytes </td><td>May 24 2013</td>
</tr>
<tr valign="top">
<td><a href="https://www.cs.kent.ac.uk/~djb/pgn-extract/eco.pgn">eco.pgn</a></td>
<td>File of openings with PGN classification.<br>
This file is already included in the source archives.
</td>
<td align="right">254K bytes </td><td>May 24 2013</td>
</tr>
<tr>
<td><a href="https://www.cs.kent.ac.uk/~djb/pgn-extract/COPYING">COPYING</a></td>
<td>GNU General Public License (version 3).</td>
<td align="right">35K bytes </td><td> </td>
</tr>
</table>
<h2>Feedback</h2>
<p>Feedback and suggestions for further features are always welcome, although I can't always
promise to undertake significant development work.
<hr>
</div>
</div>
<div id="footer">
<address>
<p>© 1994-2019 David J. Barnes<br />
<a href="https://www.cs.kent.ac.uk/~djb/">My home page</a> at the University of Kent.<br />
<a href="mailto:d.j.barnes @ kent.ac.uk">d.j.barnes @ kent.ac.uk</a><br />
<a href="https://twitter.com/kentdjb">@kentdjb</a><br />
Last updated: 23rd April 2019: version 19-04 released.<br />
</p>
</address>
</div>
</div>
</body>
</html>
|