Das Schlüsselwort :relation : position kann in einer Positionsliste verwendet werden. Es erwartet als Argument eine Relationenspezifikation. Eine Relationenspezifikation ist eine Liste von Argumenten für dieses Schlüsselwort.
Beispiel:
(position :relation (:missingpiececount ○ >0))
Diese Positionsliste sucht nach Partien, in denen zwei Positionen identisch sind bis auf das Fehlen von einer oder mehreren weißen Figuren in der späteren Position.
Die Operation :relation arbeitet wie folgt. Eine Positionsliste mit einem :relation-Schlüsselwort filtert eine Position P1 genau dann, wenn zu einem späteren Zeitpunkt in der aktuellen Partie eine Position P2 aufgefunden wird, so daß die Beziehung zwischen P1 und P2 mit der Relationenspezifikation übereinstimmt.
• | :changesidetomove |
• | :flip |
• | :ignoresidetomove |
• | :missingpiececount |
• | :newpiececount |
• | :originaldifferentcount |
• | :originalsamecount |
• | :pattern |
• | :samesidetomove |
• | :shift |
• | :variations |
• | :variationsonly |
P2 muß ein von P1 verschiedenes Zugrecht haben.
Beispiel:
Wird verwendet um Partien zu suchen, in denen die gleiche Position sowohl mit Weiß als auch mit Schwarz am Zug enthalten ist. Dies ist beispielsweise sinnvoll bei der Suche nach beidseitigem Zugzwang, wie folgt:
position :relation (:changesidetomove))
Erlaubt einen Stellungsvergleich unter Einbeziehung von diedrischen Transformationen. Jedoch ist P2 auf keinen Fall erlaubt, nach der Transformation von P1 verschiedene Figuren auf den Feldern zu haben.
Das Zugrecht wird ignoriert beim Stellungsvergleich.
Dieses Schlüsselwort erwartet die gleichen Argumente wie das Schlüsselwort :piececount : position in der Positionsliste: einen Figurenbezeichner gefolgt von einer Bereichsangabe. Eine fehlende Figur ist eine Figur, die in P1 auf einem Feld steht das in P2 leerstehend ist. P2 wird gefiltert wenn die Anzahl der fehlenden Figuren innerhalb des gegebenen Bereichs liegt. Anders als im Fall des Schlüsselworts :piececount : position kann :missingpiececount nur einmalig innerhalb der Relationsliste verwendet werden. Keine diedrische Transformation und auch keine Translation in der beinhaltenden Positionsliste beeinflußt den Figurenbezeichner dieses Schlüsselworts.
Der Standardfigurenbezeichner für :missingpiececount ist
◑
, und der Standardbereich ist Null. D.h. standardmäßig darf
es keine fehlenden Figuren geben.
Dieses Schlüsselwort erwartet die gleichen Argument wie das Schlüsselwort :piececount : position in der Positionsliste: einen Figurenbezeichner gefolget von einer Bereichsangabe. Eine zusätzliche Figur ist eine Figur, die in P2 auf einem Feld steht das in P1 leerstehend ist. P2 wird gefiltert wenn die Anzahl der zusätzlichen Figuren innerhalb des gegebenen Bereichs liegt. Anders als im Fall des Schlüsselworts :piececount : position kann :newpiececount nur einmalig innerhalb der Relationsliste verwendet werden. Keine diedrische Transformation und auch keine Translation in der beinhaltenden Positionsliste beeinflußt den Figurenbezeichner dieses Schlüsselworts.
Der Standardfigurenbezeichner für :newpiececount ist
◑
, und der Standardbereich ist Null. D.h. standardmäßig darf
es keine zusätzlichen Figuren geben.
Dies erwartet als Argument eine Bereichsangabe. Es filtert wenn die Anzahl der erlaubten Felder, die zwischen P1 und P2 verschieden besetzt sein dürfen, innerhalb des gegebenen Bereichs liegt.
Dies erwartet als Argument eine Bereichsangabe. Es filtert wenn die Anzahl der nichtleeren erlaubten Felder, die bei P1 und P2 gleich besetzt sind, innerhalb des gegebenen Bereichs liegt.
Das Schlüsselwort :pattern signalisiert, daß von allen Figurenbezeichnern, die auf oberster Ebene in der Positionsliste, in der die vorliegende Relationsliste enthalten ist, die erlaubten Felder definiert werden. Nur diese zulässigen Felder werden beim Vergleich betrachtet. Standardmäßig sind alle Felder zulässig.
P2 muß das gleiche Zugrecht aufweisen wie P1, Dies ist als Standard vorgegeben.
Erlaubt einen Stellungsvergleich unter Einbeziehung von Translationen. Jedoch ist P2 auf keinen Fall erlaubt, nach der Transformation von P1 verschiedene Figuren auf den Feldern zu haben.
Suche nach P2 innerhalb von Untervarianten und in der Hauptvariante. Standardmäßig wird nur in der Hauptvariante gesucht.
Suche nach P2 nur innerhalb der Untervarianten.