<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"><base href="x-msg://5/"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi Matias,<div><br></div><div>Kleene algebra involves the equations that are valid in the interpretation of regular expressions as word languages. So, however a simplifier of regular expressions is defined, its input and output should be equivalent w.r.t. those equations.</div><div><br></div><div>On the web page of my course on compiler construction (<a href="http://fldit-www.cs.tu-dortmund.de/ueb.html">http://fldit-www.cs.tu-dortmund.de/ueb.html</a>) you find a link to the Haskell module <b>Compiler.hs</b>, which<b> </b>includes data types, parsers and compilers for regular expressions. Among them is the algebra <b>regNorm</b>, which reduces regular expressions to a kind of additive normal form.</div><div><br></div><div>Best regards,</div><div>  Peter</div><div><br></div><div><div><div>Am 20.03.2014 um 13:17 schrieb "Berg, Matias Juho" <<a href="mailto:m.berg.10@aberdeen.ac.uk">m.berg.10@aberdeen.ac.uk</a>>:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr" style="font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="font-size: 12pt; background-color: rgb(255, 255, 255); font-family: Calibri, Arial, Helvetica, sans-serif; position: static; z-index: auto; "><div style="font-size: 12pt; background-color: rgb(255, 255, 255); font-family: Calibri, Arial, Helvetica, sans-serif; "><div style="margin-top: 0px; margin-bottom: 0px; ">​Hi all,<br></div><div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px; margin-top: 0px; margin-bottom: 0px; "><br></div><div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px; margin-top: 0px; margin-bottom: 0px; ">I am a final year undergraduate student at a university and I am doing my final honours project on natural language generation from regular expressions. For this to work efficiently I need to simplify the regular expressions before I translate them. It seems that there is some previous work done on this in Haskell but I have only been able to find this code (<a href="http://hackage.haskell.org/package/HaLeX-1.1/docs/src/Language-HaLex-RegExp.html">http://hackage.haskell.org/package/HaLeX-1.1/docs/src/Language-HaLex-RegExp.html</a>​) which does some elementary simplification. </div><div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px; margin-top: 0px; margin-bottom: 0px; "><br></div><div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px; margin-top: 0px; margin-bottom: 0px; ">Does anyone have any suggestions on where to look for more examples so I can see what kinds of attempts people have used to try and solve this problem? Also if someone has worked on this kind of problem was Kleene algebra a good starting point?<br></div><div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px; margin-top: 0px; margin-bottom: 0px; "><br></div><div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px; margin-top: 0px; margin-bottom: 0px; ">Best regards,<br></div><div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px; margin-top: 0px; margin-bottom: 0px; "><br></div><div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px; margin-top: 0px; margin-bottom: 0px; ">Matias<br></div><div style="margin-top: 0px; margin-bottom: 0px; "><br></div></div></div>_______________________________________________<br>Haskell-Cafe mailing list<br><a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br><a href="http://www.haskell.org/mailman/listinfo/haskell-cafe">http://www.haskell.org/mailman/listinfo/haskell-cafe</a></div></blockquote></div><br></div></body></html>