Hi Vincent, ever thought of a users conference ?
Its a bit exhausting discussing stuff like this on a mailing list ... Well - if you ever plan to held one you can count on me if it's in one of the famous french ski ressorts. Earlier this year I'd been to Portes du soleil -Avoriaz - Morzine .. e.t.c - you can count on me during the season ;) Am 05.04.2011 19:40, schrieb Vincent Massol: > Hi Andreas, > > On Apr 5, 2011, at 7:17 PM, Andreas Hahn wrote: > >> Again this is sort of scaring discussion to me. >> >> For minimal benefits - and there is still no persuasive example around - >> you want to sacrifice proven (to avoid the word 'standard') query >> language implementations to provide an own 'exotic' implementation ? >> >> This doesn't make any sense to me except that it might be more fun to >> write such an implementation >> as to fix all outstanding JIRA issues. >> >> Hibernate HQL is documented on ~30 printed pages with quite some examples: >> http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html > So? Java EE is also documented. That doesn't mean we should use it... We > should use what fits our needs. We've already talked a LOT in the past about > HQL and listened to a *LOT* of users telling us it's hard to use. This is > what drove the creation of XWQL a few years ago. > Can you please point me to a document that explains XWQL - its abstraction details considering XWikis Meta data model, the differences to HQL or JPQL other than the trivial examples shown here: http://incubator.myxwiki.org/xwiki/bin/view/XWQL/WebHome From this document http://platform.xwiki.org/xwiki/bin/view/DevGuide/QueryGuide it seems to me that XWQL does ~some undocumented magic due to XWikis meta data-model that might be reasonable or not - but where is the explanation ? >> The HQL chapter in Gavin King and Christian Bauers 'standard' 'Java >> Persistence' book is about 50 pages long. >> Both documentations sort of scratch the surface - they are still lacking >> when it comes to writing real complex stuff. >> aggregations / joins all the like ... >> >> So - now you propagate a new QL. > What new QL? Are you talking about XWQL (it's several years old)? Or are you > talking about Caleb's suggestion to add support for an existing well known QL > instead? > Yes - sorry I mean XWQL - HQL is supported already and IMO that's sufficient although I may not be entitled to say that. >> Maybe it is better - who knows ? >> It's not useful if there is just a basic documentation. >> Even with a very good documentation it needs to be learned and understood. >> >> From the users point of view it would be more beneficial to focus >> efforts on making XWiki more concise. >> Just as an example this issue >> http://jira.xwiki.org/jira/browse/XRENDERING-75 >> seems to be open since 2 years ... > This is a bad example. This issue has been there for 2 years because it's not > really needed! Well - it's flagged as *MAJOR* . Are you saying that JIRA priority statements are meaningless and nobody doesn't care anyway ? > Macros already support parameters and in addition format parameters are > supported for inline and if you need them for standalone it's also possible > using groups: > (% ... %)((( > {{macro/}} > ))) > Again - another 'pitfall' in my eyes (at least in terms of documentation) I've learned that this artifact always renders to wrapping the macro in <div> {{macro}} </div> enclosures instead of passing any parameters (% ... %) ((( {{macro}} ))) but this artifact (inline) passes parameters to the macro (% ... %) {{macro}} while this artifact (standalone) is not supported (not needed ?) (% ... %) {{macro}} That's what I mean that from a users POV XWiki might well deserve to become more 'concise'. >> Again I don't mean to criticize. But from time to time please try to see >> your work through users glasses ... > I think you're mistaken about a few things here: > > 1) this is a discussion started by someone. We're not refusing discussions be > them from users, contributors or committers. Nothing has been agreed. Why > would we close discussions and told people to shut up because they're not > talking about something that one user considers not useful? > > 2) why do you say we (as in xwiki committers) don't see through "user > glasses". We keep doing this all the time. Look around at all the issues that > are closed every day and that are user specific. > > 3) Developers need to think about a lot more things than you have to think > about as a user: stability of the platform, performance, api design (since > it's a web development platform), maintenance, etc. We need to think a few > years ahead of users. With a reasoning like "we fix only user stuff and don't > do anything not directly user-related" you wouldn't have a lot of things you > like in xwiki and we would be lagging behind other wikis. > > So please don't generalize. If you have a specific wish/need please state it. > You mentioned XRENDERING-75 above and I've answered you (I already did on > another thread btw). > > Thanks > -Vincent > Anyway, I'd like to say *THANK YOU* for the passion and supportive attitude here on the list. kind regards Andreas >> regards >> >> Andreas >> >> >> >> >> >> Am 04.04.2011 16:37, schrieb Caleb James DeLisle: >>> On 04/04/2011 10:01 AM, Sergiu Dumitriu wrote: >>>> On 04/02/2011 02:22 PM, Caleb James DeLisle wrote: >>>>> After searching through documentation on JPQL (JPA's query language) I >>>>> was unable to find any >>>>> example of the "doc.object(XWiki.XWikiUsers)" construct. This means XWQL >>>>> is it's own standard and >>>>> there is no authoritative reference on it. What makes an implementation >>>>> compliant? I have found that >>>>> most HQL queries can be executed as XWQL queries with little or no >>>>> modification so if compliance is >>>>> defined as being "just like the reference implementation" then nearly all >>>>> HQL must be implemented in >>>>> order to be compliant. >>>> The goal of XWQL was to not be bound to a certain query language, but to >>>> be able to map it to as many QLs as possible, be they SQL-related, like >>>> HQL or JPQL, or other types of queries, like QBE, XPath, SPARQL. So, it >>>> wasn't meant from the start to be compatible with any standard. >>> The problem now is we don't have any specification to tell us what is valid >>> and what is not. >>> Is this a valid XWQL query? >>> >>> $services.query.xwql("from BaseObject as obj where doc.fullName = obj.name >>> and obj.className = >>> 'XWiki.XWikiUsers'").execute() >>> >>> Run it and you might be surprised. >>> Based on that, we have no way of ensuring that a query which works now will >>> work in a new XWQL >>> implementation which defeats the purpose of abstracting the user away from >>> HQL. >>> >>>> Now, I'm not sure if the right thing to do is to move to a standard >>>> query language, or to stick with our own. >>> If we're going to define our own query language (I think there are enough >>> already) there are certain >>> things we have to do such as writing a specification. I frankly find this >>> thing embarrassing. >>> >>>> - Is there any tool that allows mapping a JPQL or JDOQL query into other >>>> query languages? >>> http://www.datanucleus.org/products/accessplatform_3_0/datastores.html >>> These folks are mapping JDOQL and JPQL into a whole bunch of different >>> types of storage. >>> >>>> - Is there a way to parse a query into a tree/AST? >>>> - Other than the fact that it's a non-standard language (and all the >>>> consequences of this, like no support from tools and libraries), are >>>> there any downsides to having our own query language? >>> This particular one has 2 downsides: >>> 1. There is no official specification. >>> 2. HQL can be run as shown above. >>> >>> The major downside of implementing one correctly is that it is massively >>> complicated. >>> >>> Caleb >>> >>>> The benefit of XWQL was that it allowed to write domain specific >>>> queries, which are shorter and easier to understand (at least in theory). >>>> >>>>> Looking at the specifications I have rewritten the example query in >>>>> compliant JPQL and JDOQL. >>>>> I wrote these so that they would work if all objects were custom mapped >>>>> which is similar to the >>>>> appearance XWQL gives. >>>>> >>>>> XWQL: >>>>> (SELECT doc.fullName FROM XWikiDocument as doc) where doc.author = >>>>> 'XWiki.LudovicDubost' and >>>>> doc.object(XWiki.XWikiUsers).email like '%xwiki.com' >>>>> >>>>> JPQL: >>>>> SELECT doc.fullName FROM XWikiDocument as doc, IN(doc.xObjects) obj WHERE >>>>> obj.className = >>>>> 'XWiki.XWikiUsers' and obj.email LIKE '%xwiki.com' >>>>> >>>>> JDOQL: >>>>> SELECT this.fullName FROM XWikiDocument WHERE >>>>> this.xObjects.containsValue(obj)&& obj.className == >>>>> "XWiki.XWikiUsers"&& obj.email.startsWith("xwiki.com") >>>>> >>>>> >>>>> I understood that XWQL was simply a translation scheme which made it >>>>> appear that we were using JPQL >>>>> with the schema we wanted when really we were using HQL with the schema >>>>> we had. Given that it is not >>>>> compliant JPQL that is not the case. >>>>> >>>>> I think when we update the schema, we should cut our losses with this >>>>> thing and move to something >>>>> which has a reference document and is more widely used. >>>>> >>>>> WDYT? >>>>> >>>>> Caleb >>>>> >>>>> >>>>> >>>>> The JPQL specification (originally called EJBQL): >>>>> ejb-3_0-fr-spec-ejbcore.pdf chapter 9. >>>>> http://jcp.org/aboutJava/communityprocess/final/jsr220/ >>>>> >>>>> The JDOQL specification: >>>>> jdo-3_0-mrel3-spec.pdf chapter 26. >>>>> http://db.apache.org/jdo/specifications.html >>>>> >>>>> Easy to read, example rich descriptions: >>>>> http://www.datanucleus.org/products/accessplatform_3_0/jpa/jpql.html >>>>> http://www.datanucleus.org/products/accessplatform_3_0/jdo/jdoql.html > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs > _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

