<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Lexers are parsers are not difficult (a simple ANTLR grammar takes very little effort, for example), but that is orthoginal to this discussion. &nbsp;I believe the very term DSL is misleading (since DSL implies a separate grammar), but this is more for an intuitive builder API for query creation. &nbsp;And yes, while this does imply knowledge of the API, it is certainly far less verbose and more expressive than the existing query construction mechanism.</div><div><br></div><div>Perhaps as a next step, a grammar can be built on top of this.</div><div><br></div><div>- Manik</div><div><br></div><br><div><div>On 25 Sep 2009, at 18:41, Navin Surtani wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Incase this email didn't go to the full dev-list. I got it as a separate thread so forwarding on.<br><div><br><div>Begin forwarded message:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font face="Helvetica" size="3" color="#000000" style="font: 12.0px Helvetica; color: #000000"><b>From: </b></font><font face="Helvetica" size="3" style="font: 12.0px Helvetica"><a href="mailto:johng.sst@gmail.com">johng.sst@gmail.com</a></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font face="Helvetica" size="3" color="#000000" style="font: 12.0px Helvetica; color: #000000"><b>Date: </b></font><font face="Helvetica" size="3" style="font: 12.0px Helvetica">25 September 2009 16:00:53 BST</font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font face="Helvetica" size="3" color="#000000" style="font: 12.0px Helvetica; color: #000000"><b>To: </b></font><font face="Helvetica" size="3" style="font: 12.0px Helvetica">Navin Surtani &lt;<a href="mailto:nsurtani@redhat.com">nsurtani@redhat.com</a>&gt;</font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font face="Helvetica" size="3" color="#000000" style="font: 12.0px Helvetica; color: #000000"><b>Subject: </b></font><font face="Helvetica" size="3" style="font: 12.0px Helvetica"><b>Re: Re: [hibernate-dev] [infinispan-dev] [HSearch] DSL for Lucene<span class="Apple-converted-space">&nbsp; </span>queries (was: Re: Query module new</b></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div> </div>All,<br><br>I think Hardy's original push back came from the first pass' use of the decorator pattern to try to come up with a DSL. That really isn't much better than knowing the API. The alternate is to come up with a more natural language implementation but that leads to parsers, lexers, etc... I'm not saying it's not worth while but it may be a lot of work.<br><br>John Griffin<br><br>On Sep 25, 2009 8:12am, Navin Surtani &lt;<a href="mailto:nsurtani@redhat.com">nsurtani@redhat.com</a>&gt; wrote:<br>&gt; Just wanted to get this topic re-started again.<br>&gt; <br>&gt; <br>&gt; <br>&gt; <br>&gt; <br>&gt; Essentially what I think this project/DSL/module/thingy-bob is thought<br>&gt; <br>&gt; to become: -<br>&gt; <br>&gt; <br>&gt; <br>&gt; A simple package where a user can build Lucene queries without having<br>&gt; <br>&gt; to know too much about Lucene itself. If I'm headed down the wrong<br>&gt; <br>&gt; thought path then just thwack me.<br>&gt; <br>&gt; <br>&gt; <br>&gt; <br>&gt; <br>&gt; <br>&gt; <br>&gt; On 26 Aug 2009, at 21:08, Hardy Ferentschik wrote:<br>&gt; <br>&gt; <br>&gt; <br>&gt; &gt; On Wed, 2009-08-26 at 13:39 +0200, Emmanuel Bernard wrote:<br>&gt; <br>&gt; &gt;&gt; I've been thinking about a DSL to build Lucene queries in the last<br>&gt; <br>&gt; &gt;&gt; day.<br>&gt; <br>&gt; &gt;&gt; What do you think of this proposal?<br>&gt; <br>&gt; &gt;<br>&gt; <br>&gt; &gt; What do you really gain compared to native Lucene queries?<br>&gt; <br>&gt; <br>&gt; <br>&gt; What's gained I believe is the fact that people can build complex<br>&gt; <br>&gt; lucene queries easier. Currently, it's a bit clunky imo so if we<br>&gt; <br>&gt; provide a cleaner way to build them it can prove beneficial to any<br>&gt; <br>&gt; lucene user (myself included for querying on Infinispan).<br>&gt; <br>&gt; <br>&gt; <br>&gt; Any other thoughts?<br>&gt; <br>&gt; <br>&gt; <br>&gt; <br>&gt; <br>&gt; &gt; If your API achieves exactly the same as what's possible with Lucene<br>&gt; <br>&gt; &gt; it is just a 'useless' wrapper.<br>&gt; <br>&gt; &gt;<br>&gt; <br>&gt; &gt; A wrapper around native Lucene queries would make sense if it could<br>&gt; <br>&gt; &gt; somehow use some of the Hibernate Search specific meta data. As an<br>&gt; <br>&gt; &gt; extreme example one could generate some meta classes a la JPA2. This<br>&gt; <br>&gt; &gt; way<br>&gt; <br>&gt; &gt; one could ensure that you can get help with which field names are<br>&gt; <br>&gt; &gt; available.<br>&gt; <br>&gt; &gt;<br>&gt; <br>&gt; &gt; --Hardy<br>&gt; <br>&gt; &gt;<br>&gt; <br>&gt; &gt; _______________________________________________<br>&gt; <br>&gt; &gt; infinispan-dev mailing list<br>&gt; <br>&gt; &gt; <a href="mailto:infinispan-dev@lists.jboss.org">infinispan-dev@lists.jboss.org</a><br>&gt; <br>&gt; &gt; <a href="https://lists.jboss.org/mailman/listinfo/infinispan-dev">https://lists.jboss.org/mailman/listinfo/infinispan-dev</a><br>&gt; <br>&gt; <br>&gt; <br>&gt; Navin Surtani<br>&gt; <br>&gt; <br>&gt; <br>&gt; Intern Infinispan<br>&gt; <br>&gt; Intern JBoss Cache Searchable<br>&gt; <br>&gt; <br>&gt; <br>&gt; _______________________________________________<br>&gt; <br>&gt; hibernate-dev mailing list<br>&gt; <br>&gt; <a href="mailto:hibernate-dev@lists.jboss.org">hibernate-dev@lists.jboss.org</a><br>&gt; <br>&gt; <a href="https://lists.jboss.org/mailman/listinfo/hibernate-dev">https://lists.jboss.org/mailman/listinfo/hibernate-dev</a><br>&gt;</blockquote></div><br><div> <span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Navin Surtani</div><div><br></div><div>Intern Infinispan</div><div>Intern JBoss Cache Searchable</div></div></span> </div><br></div>_______________________________________________<br>infinispan-dev mailing list<br><a href="mailto:infinispan-dev@lists.jboss.org">infinispan-dev@lists.jboss.org</a><br>https://lists.jboss.org/mailman/listinfo/infinispan-dev</blockquote></div><br><div>
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>--</div><div>Manik Surtani</div><div><a href="mailto:manik@jboss.org">manik@jboss.org</a></div><div>Lead, Infinispan</div><div>Lead, JBoss Cache</div><div><a href="http://www.infinispan.org">http://www.infinispan.org</a></div><div><a href="http://www.jbosscache.org">http://www.jbosscache.org</a></div><div><br></div></div></span><br class="Apple-interchange-newline"></span><br class="Apple-interchange-newline">
</div>
<br></body></html>