How can I programmatically detect kings side / queen side pawn storm I read from wikipedia that:


  A pawn storm is a chess strategy in which several pawns are moved in
  rapid succession toward the opponent's defenses. A pawn storm usually
  involves adjacent pawns on one side of the board—the queenside (a, b,
  and c files) or the kingside (f, g, and h files).


But it does give an exact definition. Is there a precise definition of king-side/queen-side pawn storm, that I can use to programmatically detect this theme?
I doubt there is any generally accepted definition for a pawn storm. Chess is not a science after all. Anyway, it should be possible to write a program detecting most pawn storms with only few false positives. Because of the lack of any clear definition, other chess players will be more or less satisfied with your results.

So here is my approach. Obviously this is quite subjective – it highly depends on my view of pawn storms.


At first you have to rule out endgames. In a King and Pawn endgame I would not call rapid pawn movements a pawn storm. There is also no clear definition when an endgame starts, but the number of pieces (and their value) one the board could give a clue.
In my experience the phrase "pawn storm" is mostly used for a pawn storm towards the king. I would not call a minority attack a pawn storm. So if the king is on the f,g or h files, the pawn storm should occur on these files as well (which can be easily checked by your program.) If you want to include minority attacks, just ignore this point.
For the actual pawn storm I‘d just use a simple numeric value, eg. "two pawns on adjacent flank files have reached the fifth rank".
As "rapid" is in Wikpedia‘s explanation: Again, use some numeric value such as "For a certain amount of moves at least all three moves a pawn on that flank is moved."