question about free interface for analysis

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

Uri Blass
Posts: 10872
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

question about free interface for analysis

Post by Uri Blass »

Suppose I have a pgn of games of human chess players with rating of the players.

I do not want to look at the games but only ask an engine to analyze every position for 1 second in order to get exercises of avoiding blunders.
I want the interface to show me the position including last move of the opponent and ask me what I do.

There is of course a problem how to define a blunder that I will discuss later in a different post.

The problems can be divided to problems of avoiding
blunders of players with rating 2000-2100
blunders of players with rating 2100-2200...

Humans get a fixed time(let say 1 minute) in every position in order to suggest a move and their move is considered correct if they did not make a blunder.

I wonder if there is an interface that does it.
Magnum
Posts: 195
Joined: Thu Feb 04, 2021 10:24 pm
Full name: Arnold Magnum

Re: question about free interface for analysis

Post by Magnum »

Uri Blass wrote: Tue Aug 30, 2022 9:08 am Suppose I have a pgn of games of human chess players with rating of the players.

I do not want to look at the games but only ask an engine to analyze every position for 1 second in order to get exercises of avoiding blunders.
I want the interface to show me the position including last move of the opponent and ask me what I do.

There is of course a problem how to define a blunder that I will discuss later in a different post.

The problems can be divided to problems of avoiding
blunders of players with rating 2000-2100
blunders of players with rating 2100-2200...

Humans get a fixed time(let say 1 minute) in every position in order to suggest a move and their move is considered correct if they did not make a blunder.

I wonder if there is an interface that does it.
That would be great for BanksiaGUI.
You need to ask the developer.
User avatar
phhnguyen
Posts: 1524
Joined: Wed Apr 21, 2010 4:58 am
Location: Australia
Full name: Nguyen Hong Pham

Re: question about free interface for analysis

Post by phhnguyen »

Uri Blass wrote: Tue Aug 30, 2022 9:08 am Suppose I have a pgn of games of human chess players with rating of the players.

I do not want to look at the games but only ask an engine to analyze every position for 1 second in order to get exercises of avoiding blunders.
I want the interface to show me the position including last move of the opponent and ask me what I do.

There is of course a problem how to define a blunder that I will discuss later in a different post.

The problems can be divided to problems of avoiding
blunders of players with rating 2000-2100
blunders of players with rating 2100-2200...

Humans get a fixed time(let say 1 minute) in every position in order to suggest a move and their move is considered correct if they did not make a blunder.

I wonder if there is an interface that does it.
Do you mean a PGN of multi-games (a database)? The short answer is NO.

However, blunder analyzing for multi-games/databases is doable. But I am not sure if you or someone likes or needs high frequency to analyze many games at once.
Also, there are technique issues/complicated interfaces we should consider carefully such as how to store results, and how to report to users (after analyzing do you want/accept to search yourself game by game, move by move to find blunders as comments, or do you want brief information)...

Using more blunder thresholds for different player strengths is doable too, however, that may make the app over-complicated to learn and use.

Magnum wrote: Tue Aug 30, 2022 9:17 am That would be great for BanksiaGUI.
You need to ask the developer.
I am interested in any idea about GUIs in general. I have just implemented blunder analysis (since the latest version 0.55) thus I love to see if it works and how to improve it :D


Image
https://banksiagui.com
The most features chess GUI, based on opensource Banksia - the chess tournament manager
Uri Blass
Posts: 10872
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: question about free interface for analysis

Post by Uri Blass »

phhnguyen wrote: Wed Aug 31, 2022 4:39 am
Uri Blass wrote: Tue Aug 30, 2022 9:08 am Suppose I have a pgn of games of human chess players with rating of the players.

I do not want to look at the games but only ask an engine to analyze every position for 1 second in order to get exercises of avoiding blunders.
I want the interface to show me the position including last move of the opponent and ask me what I do.

There is of course a problem how to define a blunder that I will discuss later in a different post.

The problems can be divided to problems of avoiding
blunders of players with rating 2000-2100
blunders of players with rating 2100-2200...

Humans get a fixed time(let say 1 minute) in every position in order to suggest a move and their move is considered correct if they did not make a blunder.

I wonder if there is an interface that does it.
Do you mean a PGN of multi-games (a database)? The short answer is NO.

However, blunder analyzing for multi-games/databases is doable. But I am not sure if you or someone likes or needs high frequency to analyze many games at once.
Also, there are technique issues/complicated interfaces we should consider carefully such as how to store results, and how to report to users (after analyzing do you want/accept to search yourself game by game, move by move to find blunders as comments, or do you want brief information)...

Using more blunder thresholds for different player strengths is doable too, however, that may make the app over-complicated to learn and use.

Magnum wrote: Tue Aug 30, 2022 9:17 am That would be great for BanksiaGUI.
You need to ask the developer.
I am interested in any idea about GUIs in general. I have just implemented blunder analysis (since the latest version 0.55) thus I love to see if it works and how to improve it :D


Image
I could do blunder analysis when it automatically analyze moves of a game.

I see that it analyzed the game move after move but do not see that it ask me about blunders.
basically what I want even if it is a single game is that the interface shows me a position when one side made a blunder and ask me about the best move to see if I do not make a blunder.

The idea is that I do not see the game before it ask me so I may do the same blunder that the player made or play a worse move or play a better move.

Not looking at the analysis during the game is of course no problem but even if I look at the game during the analysis I do not see an option to look at the positions when one side blundered.

Edit:The only thing that I can see if I look carefully in the pgn is the word blunder after some moves of the game.
User avatar
phhnguyen
Posts: 1524
Joined: Wed Apr 21, 2010 4:58 am
Location: Australia
Full name: Nguyen Hong Pham

Re: question about free interface for analysis

Post by phhnguyen »

Commenting to the game is the standard way a chess GUI does for analysing. It won’t ask via dialogboxes/popups since the number of blunders may be a few and the analysing time could be so long, say, a whole night! The user should have a good dream instead of sitting in the front of the computer waiting for a popup ;)

There is a similar feature which may ask users when analysing. It is called “coach” (BSG doesn’t implement it yet): it analyses games on the fly and message or popup instantly (say, showing a warning and asking if the user wants to take back) when the user makes a blunder move.
https://banksiagui.com
The most features chess GUI, based on opensource Banksia - the chess tournament manager
Uri Blass
Posts: 10872
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: question about free interface for analysis

Post by Uri Blass »

phhnguyen wrote: Wed Aug 31, 2022 5:45 am Commenting to the game is the standard way a chess GUI does for analysing. It won’t ask via dialogboxes/popups since the number of blunders may be a few and the analysing time could be so long, say, a whole night! The user should have a good dream instead of sitting in the front of the computer waiting for a popup ;)

There is a similar feature which may ask users when analysing. It is called “coach” (BSG doesn’t implement it yet): it analyses games on the fly and message or popup instantly (say, showing a warning and asking if the user wants to take back) when the user makes a blunder move.
Analyzing a single game may take only few minutes if I choose 2 seconds per move and the point is that engines are strong enough to catch the important blunders even with 2 seconds per move.

The user may do something else and return to the computer after a few minutes when the analysis is finished and ask the interface to give him positions when the user suggest the best move.

The point is training in critical positions and positions when one side made a blunder are more important because improving in these positions may be more productive for humans who want to improve.
Ferdy
Posts: 4848
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: question about free interface for analysis

Post by Ferdy »

Uri Blass wrote: Tue Aug 30, 2022 9:08 am Suppose I have a pgn of games of human chess players with rating of the players.

I do not want to look at the games but only ask an engine to analyze every position for 1 second in order to get exercises of avoiding blunders.
I want the interface to show me the position including last move of the opponent and ask me what I do.

There is of course a problem how to define a blunder that I will discuss later in a different post.

The problems can be divided to problems of avoiding
blunders of players with rating 2000-2100
blunders of players with rating 2100-2200...

Humans get a fixed time(let say 1 minute) in every position in order to suggest a move and their move is considered correct if they did not make a blunder.

I wonder if there is an interface that does it.
Can you give an example?
Where is your blunder rule?

What I plan is this:
1. User uploads a pgn file.
2. User selects an engine to analyze the game.
3. User presses the button to start the analysis.
4. After the analysis, user selects the rating range of players that made the blunder and the amount of blunder.
5. User presses the button to show the position after the blunder move.
6. The interface will show the board image. Also shows the legal moves in the select box where the user can select before the time limit. I can only show a static board, not an interactive board. That is why the legal moves are hidden in the selectbox.
7. The user presses a submit button.
8. The interface will run the engine to analyze the move of the user.
9. The engine will rate the selected move of the user based from its analysis.
10. User may press a next button to show the next test position.

I will be using the streamlit framework for the interface.
Uri Blass
Posts: 10872
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: question about free interface for analysis

Post by Uri Blass »

Ferdy wrote: Wed Sep 07, 2022 5:16 pm
Uri Blass wrote: Tue Aug 30, 2022 9:08 am Suppose I have a pgn of games of human chess players with rating of the players.

I do not want to look at the games but only ask an engine to analyze every position for 1 second in order to get exercises of avoiding blunders.
I want the interface to show me the position including last move of the opponent and ask me what I do.

There is of course a problem how to define a blunder that I will discuss later in a different post.

The problems can be divided to problems of avoiding
blunders of players with rating 2000-2100
blunders of players with rating 2100-2200...

Humans get a fixed time(let say 1 minute) in every position in order to suggest a move and their move is considered correct if they did not make a blunder.

I wonder if there is an interface that does it.
Can you give an example?
Where is your blunder rule?

What I plan is this:
1. User uploads a pgn file.
2. User selects an engine to analyze the game.
3. User presses the button to start the analysis.
4. After the analysis, user selects the rating range of players that made the blunder and the amount of blunder.
5. User presses the button to show the position after the blunder move.
6. The interface will show the board image. Also shows the legal moves in the select box where the user can select before the time limit. I can only show a static board, not an interactive board. That is why the legal moves are hidden in the selectbox.
7. The user presses a submit button.
8. The interface will run the engine to analyze the move of the user.
9. The engine will rate the selected move of the user based from its analysis.
10. User may press a next button to show the next test position.

I will be using the streamlit framework for the interface.
For 5 I prefer to see the position before the blunder move to see if I can play a better move and not the position after the blunder.

For 4 the problem is how to define a blunder I prefer to have a table that translate evaluation to expected score when a blunder is for example at least 0.2 reduction in the expected score because of the move.

The idea is that reduction from 0.5 to -0.5 may be reduction from expected 0.6 to expected 0.4 and may be the same as reduction from 3 to 1 that is reduction from expected 0.9 to expected 0.7

Note that I do not know to translate score to expected result and it is only an example and you need to try to calculate it based on many games.
Ferdy
Posts: 4848
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: question about free interface for analysis

Post by Ferdy »

Uri Blass wrote: Wed Sep 07, 2022 8:10 pm
Ferdy wrote: Wed Sep 07, 2022 5:16 pm
Uri Blass wrote: Tue Aug 30, 2022 9:08 am Suppose I have a pgn of games of human chess players with rating of the players.

I do not want to look at the games but only ask an engine to analyze every position for 1 second in order to get exercises of avoiding blunders.
I want the interface to show me the position including last move of the opponent and ask me what I do.

There is of course a problem how to define a blunder that I will discuss later in a different post.

The problems can be divided to problems of avoiding
blunders of players with rating 2000-2100
blunders of players with rating 2100-2200...

Humans get a fixed time(let say 1 minute) in every position in order to suggest a move and their move is considered correct if they did not make a blunder.

I wonder if there is an interface that does it.
Can you give an example?
Where is your blunder rule?

What I plan is this:
1. User uploads a pgn file.
2. User selects an engine to analyze the game.
3. User presses the button to start the analysis.
4. After the analysis, user selects the rating range of players that made the blunder and the amount of blunder.
5. User presses the button to show the position after the blunder move.
6. The interface will show the board image. Also shows the legal moves in the select box where the user can select before the time limit. I can only show a static board, not an interactive board. That is why the legal moves are hidden in the selectbox.
7. The user presses a submit button.
8. The interface will run the engine to analyze the move of the user.
9. The engine will rate the selected move of the user based from its analysis.
10. User may press a next button to show the next test position.

I will be using the streamlit framework for the interface.
For 5 I prefer to see the position before the blunder move to see if I can play a better move and not the position after the blunder.

For 4 the problem is how to define a blunder I prefer to have a table that translate evaluation to expected score when a blunder is for example at least 0.2 reduction in the expected score because of the move.

The idea is that reduction from 0.5 to -0.5 may be reduction from expected 0.6 to expected 0.4 and may be the same as reduction from 3 to 1 that is reduction from expected 0.9 to expected 0.7

Note that I do not know to translate score to expected result and it is only an example and you need to try to calculate it based on many games.
Initial draft.

Image

Test positions are generated by a margin of 0.2 score rate.

Currently I use.

Code: Select all

score_rate = 1 / (1 + 10 ^ (-score_p/6))
where:
score_p is the position score in pawn unit.
After the user has selected the move from radio button, the engine starts to evaluate the move. Then the 3 lines below it are displayed showing the selected, game, and engine moves, score cp and score rate.

In the image, I selected Ke5. This is a nice training system :)

The page sidebar is this.

Image

User will load the game and press the analyze button to generate the test positions with sf15 analyzing the games. The test positions are in the browser memory. If you refresh or close it, the test positions will be gone.

A better approach is to just load the test positions from csv file. The csv file is the output from engine analysis that is done separately. I will provide a tool to analyze a pgn file that will output the required csv output format. So the user will just load this csv file. People can contribute with their csv file.

This is a web app that can run on desktop and web online. Will post the code in github later.

User login and progress monitoring is possible here.
CornfedForever
Posts: 648
Joined: Mon Jun 20, 2022 4:08 am
Full name: Brian D. Smith

Re: question about free interface for analysis

Post by CornfedForever »

How does a 'simple' algorithm distinguish a 'blunder' from a mathematical 'innacuracy'?
That is my problem with any I've seen is that they either can't or simply do not do it very well. Then again...it can be a difficult distinction. However, they really are different things.

The ones online at lichess and chess.com (and aimchess) are kind of laughable at times.