This page features a simple front-end to the database of chess problems. This project is designed to be a proof of concept that complex searches for chess problems can be fast and served online. The primary purpose of such searches is finding anticipations. Another purpose is being a beta testing facility for the `theme checker'. I'll gladly share the whole source code and the data with anyone interested in it.
Currently there are 350400 problems in the database (1601 added in last 30 days). Duplicates and incorrect positions are many.
I'd like to thank all the people who collect chess problems and don't mind sharing their collections.Currently, this database comprises the following sources:
Of course all new contrubutions are very welcome. I'm not promising i'll add them overnight, but i'll try to do my best.
Also i'd like to thank developers and maintainers of the Popeye - a free solving program which was used to solve many problems in the database.
|Problem||Edited by||When||View changes|
|376126.||Goumondy, Claude h#2||Gabriel Torok||1 minute ago||12 bytes|
|376125.||Goumondy, Claude h#2||Gabriel Torok||5 minutes ago||12 bytes|
|376124.||Goumondy, Claude h#2||Gabriel Torok||9 minutes ago||12 bytes|
|68008.||Weber, Wolfgang s#7||Lyubashevsky Leonid||51 minutes ago||28 bytes|
|244204.||Kniest, Peter #2||Rainer Staudte||1 hour ago||56 bytes|
|242465.||Henning, Hans #2||Rainer Staudte||1 hour ago||56 bytes|
|68058.||Müller, Frank s#7||Lyubashevsky Leonid||1 hour ago||28 bytes|
|376121.||Chivu, Neculai s#5||Rainer Staudte||1 hour ago||68 bytes|
|260109.||Libiš, Zdeněk s#5||Rainer Staudte||1 hour ago||1028 bytes|
|376123.||Bakke, Nils Adrian h#2||Anatoly Mukoseev||1 hour ago||12 bytes|
|376122.||Libiš, Zdeněk s#7||Rainer Staudte||1 hour ago||12 bytes|
|376121.||Chivu, Neculai s#5||Rainer Staudte||1 hour ago||12 bytes|
|375902.||Holubec, Jozef s#10||Rainer Staudte||2 hours ago||48 bytes|
|203426.||Mira-Kraft, Edwin #2||Rainer Staudte||2 hours ago||44 bytes|
|376120.||Makaronez, Leonid #3||Rainer Staudte||2 hours ago||12 bytes|
|376119.||Lind, Ingemar #3||Rainer Staudte||2 hours ago||40 bytes|
|376119.||Lind, Ingemar #3||Rainer Staudte||2 hours ago||12 bytes|
|375866.||Labai, Zoltán #3||Rainer Staudte||2 hours ago||92 bytes|
|376118.||Leopold, Rudolf #2||Rainer Staudte||3 hours ago||12 bytes|
|376117.||Baumann, Anton #14||Rainer Staudte||4 hours ago||12 bytes|
--- authors : - Valuska, Ján source : Al Hamishmar date: 1987 distinction: Special HM algebraic : white: [Kc4, Bf8, Be6, Sg3, Se1, Pf2, Ph5, Pf6] black: [Kg5, Pf3] stipulation : "#2" twins : b : Stipulation =2 solution : | "a) 1.Kd5! zz 1...Kxf6 2.Se4# 1...Kh4 2.Sxf3# 1...Kf4 2.Bh6# b) =2 1.Kd5! zz 1...Kxf6 2.Sxf3= 1...Kh4 2.Bh6= 1...Kf4 2.Se4=" keywords : - Lacny comments : - This is an example comment, it is not actually in the database. - | "This is a multi-line comment, It also includes a # sign and thus must be quoted." - Check also >>83064As you see, the document is actually a dictionary of key : value pairs where key is a string and value is either a string, or a list (each entry starts with '-') or another dictionary. Currently there are 14 keys (or fields) recognized by the YACPDB (in the example there are just 8: fen, options, intended-solutions and source-id are not used).
---This is not a field, this is a record separator in YAML. Here it is used to indicate the beginning of a new entry.
authors : - Valuska, JánThis is a list of people who composed this problem. If there was more than one of them it would go like this:
authors : - Doe, John - Doe, JaneNote: not "- DOE John and Jane". The automatic unification of all composer names is currently under development. The canonical name representation will be:
authors : - Last-Or-Family Name, Given And Patronymic Names And Disambiguationsin author's original language, however database search facilities will accept "Loshinski" and fetch you "Лошинский, Лев Ильич". Future tense. Not ready yet.
source : Al HamishmarName of the periodical/book or tourney in which this problem has first featured. This field is not a list, please use comments field if you want to list the reproductions.
source : ProblemOnline source-id : A0036Sources often use their own enumeration/labeling for original materials. Supplying these may help future inquirers. Also source-id can be used to indicate the issue number:
source : MatPlus source-id : 36/1486 # i.e. problem number 1486 published in the 36th issue of the MatPlus
date : 1987When this problem first appeared in source. In case of tourneys that run for several years (like WCCT) please indicate only the beginning year. You can also optionally provide month and date in this format: YYYY[-MM[-DD]] (attention, american friends). The benefit of putting numbers in this way is that chronological order matches lexicographical order.
distinction: Special HMHow this problem was awarded. The general format is
algebraic : white: [Kc4, Bf8, Be6, Sg3, Se1, Pf2, Ph5, Pf6] black: [Kg5, Pf3]Note S for the knights as N is reserverd for Nightriders. Fairy pieces are suported and use the same syntax as in Popeye solving program. Popeye reference manual can be found within the popeye distribution or at the Joost de Heer website here.
algebraic : white: [Ka1, Pag7] # white pao (chinese rook) g7 black: [Royal Zf3, Qh8] # black royal zebra (2,3-leaper) f3 neutral: [Pa2, HurdleColourChanging Ga5] # neutral grasshopper at a5 that changes the color of the piece it hops overFor convenience lists of supported fairy pieces, specifications and conditions are available at the edit form via the `Insert' pulldown menu.
fen : 5B2/8/4BP2/6kP/2K5/5pS1/5P2/4S3The diagram may be specified in Forsyth-Edwards Notation as well.
stipulation : "#2"If possible, stipulation should be given in the same notation as used by the Popeye solving program (english input). Please also note the double-quotes around the #2. The reason they are there is that # (number sign) is used for comments in YAML, and to keep it as the part of the content it should be escaped by surrounding the whole stipulation string in double-quotes.
intended-solutions: 3 intended-solutions: 22.214.171.124 intended-solutions: 4.1.1...When author intended more than one solution to his problem, this can be indicated under the diagram using one of these three example formats.
options : - SetPlay - CirceThe list of extra options and conditions. Allowed is everything that can be used with the Popeye directives Option and Condition except options that do not make sense in the database context (e.g. NoBoard or StopOnShortSolutions).
twins : b : Stipulation =2Twins use the Popeye syntax too, with one little difference: in case of Zero-positions first twin must be labeled 'a', the second - 'b' etc, and in case of normal twins the first is 'b', the second - 'c' and so on. Please note that Popeye is aware of fairy pieces, so it is "Add white Sa1", not "Add white Na1" to add a white knight. Here's a Popeye twins memo written by Rainer Staudte:
solution : | "a) 1.Kd5! zz 1...Kxf6 2.Se4# 1...Kh4 2.Sxf3# 1...Kf4 2.Bh6# b) =2 1.Kd5! zz 1...Kxf6 2.Sxf3= 1...Kh4 2.Bh6= 1...Kf4 2.Se4="Note: the blank line between the solutions of the twins is not actually empty, there are 2 whitespace characters on it because YAML is all about indentation. To make copying and pasting the solution from other programs easier, YAML edit form has indent buttons. So you copy the solution, paste it into the edit form, select it again and click the 'Indent Right' button. This will add 2 spaces to the beginning of every line and solution will be properly indented. 'Indent Left' button strips 2 spaces from the beginning of every line, it can be used if you accidentaly clicked 'Indent Right' too many times for example.
keywords : - LacnyThe list of the keywords associated with the problem. Anything will do as keywords, but if the keyword can be found in the general YACPDB search form then it is advised that you use that exact spelling. This way the problem will become a subject to the keyword search. However feel free to add any keywords, eventually they'll get to the search form, it is just not an automated process (keywords need to be categorized, they may have dependencies etc).
comments : - This is an example comment, it is not actually in the database. - | "This is a multi-line comment, It also includes a # sign and thus must be quoted." - Check also >>83064 - Visit http://example.com/This will be rendered as: