Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fixing Modern Defense names and move orders #90

Draft
wants to merge 20 commits into
base: master
Choose a base branch
from

Conversation

SandroMartens
Copy link
Contributor

  • There was a discussion while back to rename the 1. d4 g6 line to Queen's Pawn Game: Modern defense. I added a Queen's Pawn Game: to all other 1. d4 lines for consistency.

  • I also renamed the Robatsch Defense line to Modern defence, Rossolimo variation with a different move order because the move order was really weird and the position is named otherwise (see chess openings and 365chess). Robatsch defense is synonym for modern defense, so this should be ok

  • Third the Kotov Variation and Randspringer variation are in the averbakh system

@LesCyclopes
Copy link
Contributor

LesCyclopes commented Dec 31, 2022

I don't agree with adding Queen's Pawn Game: to all Modern Defense lines after 1.d4 because these lines are often arrived at after playing 1.c4 1.Nf3 or 1.e4, and not just 1.d4. These lines should all be considered transpositions to the Modern Defense which is a continuation of 1.e4. The Modern Defense is it's own opening that can be transposed to via many different move orders

I assume the reason behind adding the "Queen's Pawn Game: Modern Defense" (I wasn't there) was to provide a name for lines after 1.d4 g6 that didn't transpose into the Modern, the KID, or any other named opening.

@SandroMartens
Copy link
Contributor Author

I assume the reason behind adding the "Queen's Pawn Game: Modern Defense" (I wasn't there) was to provide a name for lines after 1.d4 g6 that didn't transpose into the Modern, the KID, or any other named opening.

I looked an one of my games and saw the opening name change from Queen's Pawn Game: Modern defense to normal Modern defense, but without the move e4. Thats confusing and why I checked in the first place. To just add QPG (if there is no e4) was the easiest way to correct that. The Rossolimo Variation contains e4, but is categorized in the A41 group, so still a QPG (??). I don't know what to do here.

Also, I you play d4 after c4 or Nf3, isn't this usually just a transposition to a d4 opening?

@LesCyclopes
Copy link
Contributor

LesCyclopes commented Dec 31, 2022

I looked an one of my games and saw the opening name change from Queen's Pawn Game: Modern defense to normal Modern defense, but without the move e4.

Looking through the Lichess Opening database I found at one line where this could be possible:

A41 | Modern Defense | 1. d4 g6 2. c4 Bg7 3. Nc3 d6

This line deserves further scrutiny and maybe should be changed to

A41 | Queen's Pawn Game: Modern Defense | 1. d4 g6 2. c4 Bg7 3. Nc3 d6

In any case I don't think you should add "Queens Pawn Game" to the Modern Defenses because its not a d4 opening, If you did you would have to classify the Modern Defense under a different ECO code

@allanjoseph98
Copy link
Member

Sorry, I guess this is my mess. I had added the QPG: Modern hastily for #55. I had actually intended to submit a PR fixing the entire family but I never got around to it 😅.

I left my original intentions here. To surmise:

  1. If pgn starts with d4 and does not contain e4 -> QPG: Modern...
  2. If pgn starts with d4 and contains e4 -> change move order to be an e4 modern (like the rest of the other moderns) in the B list.
  3. A similar operation is required for all the pterodactyls.

I don't agree with adding Queen's Pawn Game: to all Modern Defense lines after 1.d4 because these lines are often arrived at after playing 1.c4 1.Nf3 or 1.e4, and not just 1.d4.

Consider English Opening: Anglo-Scandinavian Defense: 1. c4 d5. If I play 2. d4 it becomes Queen's Gambit. But hang on, I played an English opening, not a Queen's opening, a violation of your reasoning.

  • What we are doing is setting a standard. You may transpose into the standard but that doesn't mean you played the standard.

I hope I was clear.

@LesCyclopes
Copy link
Contributor

LesCyclopes commented Jan 6, 2023

Consider English Opening: Anglo-Scandinavian Defense: 1. c4 d5. If I play 2. d4 it becomes Queen's Gambit. But hang on, I played an English opening, not a Queen's opening, a violation of your reasoning.

I meant that I didn't agree with adding QPG to ALL modern lines after 1.d4, but only the lines without e4.

I agree with your changes @allanjoseph

@SandroMartens
Copy link
Contributor Author

2. If pgn starts with d4 and contains e4 -> change move order to be an e4 modern (like the rest of the other moderns) in the B list.

But the we get a lot of weird lines like this: 1. e4 g6 2. c4 Bg7 3. d4.

@allanjoseph98
Copy link
Member

allanjoseph98 commented Jan 7, 2023

Ofc I don't mean replace e4 with d4 and d4 with e4.

Changing the move order would mean:

  1. Copy the pgn specified by the closest parent line (in this case Modern Defense: 1.e4 g6)
  2. Add the remaining moves in an order that makes sense. Use a source, masters db (lichess DB if not applicable) or your own discretion here.

@SandroMartens
Copy link
Contributor Author

OK, now i see.
The Modern, averbakh system now has the move order from this video: The Averbakh System | Modern Defense Opening Theory

Is there a difference between the Averbakh System and the Averbakh Variation? I feel like the Second one is a mistake and doesn't exist. But I cant find decisive references. chess.com calls this position just Pseudo Sämisch Variation.

@SandroMartens SandroMartens changed the title fixing the d4 modern fixing Modern Defense names and move orders Jan 7, 2023
@allanjoseph98
Copy link
Member

I'd say it's fine to rename it to Modern Defense: Pseudo-Sämisch since after 5... O-O 6. Nc3 we transpose back into a KID: Sämisch. However, you'll need to add a new line for it. Study to help you.

@SandroMartens
Copy link
Contributor Author

However, you'll need to add a new line for it.

Sorry, add a new line for what?

@niklasf niklasf marked this pull request as draft January 31, 2023 17:38
@allanjoseph98
Copy link
Member

This is going to be very convoluted but bear with me:

Hi sorry, you need add a line for KID specifically at 6.Be3. I've updated the study linked previously with clearer descriptions.

  1. Basically, you should see that 6. Nc3 in the mainline and 6. Be3 in the variation are both the same position.
  2. However, there is no specific opening for this FEN (even though it is a KID continuation and there are KID lines beyond it). So, opening explorer just says it's whatever opening you were on previously; which is a KID if you first traversed the d4 line (no problemo, unintentionally correct) or a modern if you first traversed the e4 line (problemo)
  3. Why add a KID line at 6. Be3? To catch all the players transposing back into KID from the modern (imagine you played the study's mainline, the game would be classified as a modern instead of a KID).

@ornicar
Copy link
Contributor

ornicar commented Mar 12, 2023

Thank you all for looking into this. It's a bit of an issue at the moment that Modern Defense refers to very different openings, such as these 2:

@Dboingue
Copy link

Dboingue commented Sep 21, 2023

I am sorry to jump in, like that. but I am wondering if all the naming decisions when unique positions can be reached by different initial sequences, is following case by case issues, or if there has been a convened policy or guidelines. I find the concept of mainline a bit obscure in the context on a evolving sequence knowledge (not the names yet) where new branches are included as the body of knowledge grows or lichess accepts to import such new knowledge to its database of sequences likely expanding on pre-existing branching. Is that a silly question to ask. and here?

I guess to me what matters is not the names, but careful segmentation of all the lines that might share common segments. Perhaps a generalization of transposition, what happens after the first transposition from 2 sequences...

Is there a mechanism to ensure that all common positions in all sequences are known? because those could form the archicture of the opening framework.. and then naming battles or discussions could be done robustly on top of such, but not affecting anymore the segmentation.. Perhaps, such compilation of common unique positions (as EPDs) is being done at each version, and the initial thing was completely scanned.

do I make sense. and if so is this already taken care of. It has been months if not more I have not looked here. I can repost where appropriate.

It is possible that what I am talking about is more of the opening explorer module in lichess, where the games database are similarly being scanned for unique positions. But I don't think, there would have been such a new repository isolating the opening nomenclature (and definition of sequences getting the names), if that we so. My understanding is that both sequence definition and inclusion is done in this repository and that naming happens during or anytime after new sequence inclusion (omitting the deletions if that happened).

Is there a blurb here or in some closed issue, where a pause in explanation of the ongoing process here could answer my concerns. or hint at my misconceptions?

I have seen a repo using graph theory, but used on top of the naming layer, or behind it. While I welcome such fresh air, I am wondering if It could not be done without the names fisrst. with some well identified datasturcutre about unique segments, and common boundaries something equivalent to the full set of opening sequences and their variously named segments but without having to decide on names first. internal unique naming of each atomic segment. and how to patch them together to reproduce the whole opening dataset of fullsequences, knowing no unique position shared across any of them is missed. I guess if only the last position of each named sequence is an EPD, this might mean all of those are already implying what I trying to explain. sorry. if this is not making sense. I may not have found the words. or I might be missing some bolt, or concept.

@Dboingue
Copy link

Dboingue commented Sep 21, 2023

ok. slight misconception. but fixing it might help understand above. The repo in questions is about games from players I think, not about this set of truncated "games" here, which are deemed worthy of opening names in some of their segments. I guess, I would suggest doing the job on this very sequence database, and yes, if really really important using the names instead of positions ids to populate the graph of paths from positions to positions (it shows that I got lost in the name layer intermediate of that repo process).

Why not grind all the truncated opening "games" for all its positions unique ids. and build the same kind of graphs as on that repo.

But as a structure for here to build on ground data of positions, irrespective of naming history. I may not have any sense of dataset size. But would a book digestion not make sure all the sequences common points or segment of points could form the basis of a nameless graph where we would be clear about the circle nature and the link nature. No more confusion between path name and position names or is that only my problem. At the very least it could form some kind of key to the big games database results.. If I could understand from a well defined and uniquified segmentation of all its sequences here, maybe adding the names rules on top after would not be such a chaotic thing to look at. The only problem I had was interpreting the objects the node the linkage, with respect to chess objects. positions moves, sequences of positions, or moves. turn by turn move can be transitively closed if within an atomic segment as i imagine could be figure out from the finite set of opening sequences. So basically, the segments would become the closure links themselves between their boundaries. I guess i may be talking about maximally non-branching segments. not the named segmentation but the segments made by all branching points. ahhh.... idea chunks.. only. sorry. so if a line has not common position with another line, or any others it would be w.r.t to this database framework a full segment. any common position between any seqeunces would become a branching point if the sequences differ. now I am not in a tree... the branching can come from both directions. ok.. i give up.. there is no other way that use a graph to start with with all the finite number of position ids as points... well. as easy as that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants