<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Pavel,</div><div class=""><br class=""></div><div class="">NOW we are talking about interesting research !!!! :-)))) </div><div class=""><br class=""></div><div class="">Sequence comprehension. Here we go….:-)</div><div class=""><br class=""></div><div class="">Yes, sequence comprehension  (it’s called monoid comprehension in</div><div class="">theoretical computer science….)   IS the one of the most important things</div><div class=""> for a high level/declarative language.</div><div class=""><br class=""></div><div class="">However, several important remarks:</div><div class=""><br class=""></div><div class="">============</div><div class=""><br class=""></div><div class="">1. Linq  is NOT a new idea. My PhD thesis was (partially) about adding SELECT-FROM-WHERE</div><div class="">as an expression to C++. I did it as a pre-processor at that time — remember, it was 1994.</div><div class="">Others did it too, decades before me !!!!  Remember Pascal-R !??? <a href="http://archive.nyu.edu/fda/handle/2451/14595" class="">http://archive.nyu.edu/fda/handle/2451/14595</a> </div><div class="">(probably not, because you are too young..)</div><div class=""><br class=""></div><div class="">2. in 2015 XQuery has FROM FAR (!!!!!!!!!!)  the most advanced,  expressive-wise, AND</div><div class=""> the cleanest semantic-wise version of sequence comprehension.</div><div class=""><br class=""></div><div class="">Every other language should use THAT instead of half-baking Yet-Another-Sequence-Comprehension.</div><div class=""><br class=""></div><div class="">The FLWOR of XQuery is semantically very clean, has nothing to do with XML, is compositional and elegant,</div><div class="">and, moreover, optimizable.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">3. The discussion : should we add sequence comprehension to an exiting imperative language vs. </div><div class="">adding scripting extensions to XQuery/high level functional language with sequence comprehension</div><div class=""> is again old as the times.</div><div class=""><br class=""></div><div class="">see for example:</div><div class=""><a href="http://dl.acm.org/citation.cfm?id=1142597&dl=ACM&coll=DL&CFID=522088426&CFTOKEN=80093091" class="">http://dl.acm.org/citation.cfm?id=1142597&dl=ACM&coll=DL&CFID=522088426&CFTOKEN=80093091</a></div><div class="">( Donald Kossmann and I  had a detailed  tutorial at Sigmod 2006, and the slides were REALLY funny, if I remember correctly) </div><div class=""><br class=""></div><div class="">This was in 2006. (when you read the paper just do a global replace “XML” with “semi-structured data”)</div><div class=""><br class=""></div><div class="">Now, in 2015, I think BOTH alternatives are good, and viable.</div><div class=""><br class=""></div><div class="">For example, adding a FLWOR expression to Javascript is a worthwile thing to do, and I am implementing this as we speak.</div><div class=""><br class=""></div><div class="">Another example: what do you think that Oracle Fusion was (multi-billion failure..)!? Just a rewrite of Oracle application, where the code instead of being written</div><div class="">in PL-SQL was written in Java with SQL. </div><div class=""><br class=""></div><div class="">Same story/question again. </div><div class=""><br class=""></div><div class="">4.  Sequence comprehension is necessary for processing data in general, structured or non-structured.</div><div class=""><br class=""></div><div class="">However, for processing ****SEMI-STRUCTURED DATA**** you need EXTRA other features, non-existing in </div><div class="">ANY other language except XQuery and XSLT.</div><div class=""><br class=""></div><div class="">I tried to put a list of features needed for semi-structured data in a previous email to this list, ….</div><div class=""><a href="http://x-query.com/pipermail/talk/2015-May/004718.html" class="">http://x-query.com/pipermail/talk/2015-May/004718.html</a></div><div class=""><a href="http://x-query.com/pipermail/talk/2015-May/004719.html" class="">http://x-query.com/pipermail/talk/2015-May/004719.html</a></div><div class=""><br class=""></div><div class="">…..but of course I did it fast, and forgot some of the necessary features.</div><div class="">In particular, I forgot the ability to do metadata search (aka path expressions where you don’t know the data structure).</div><div class=""><br class=""></div><div class="">===========</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">So, yep. Lots of Computer Science history.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">This is why it is DAMN SAD to see those barbarians starting to query JSON in 2015  like it’s 1995  again …….</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Best</div><div class="">Dana</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><br class=""><div><blockquote type="cite" class=""><div class="">On Jun 23, 2015, at 3:07 PM, Pavel Minaev <<a href="mailto:int19h@gmail.com" class="">int19h@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">I don't mind at all.<br class=""><br class="">And of course XQuery (well, the parts that are not tied to XDM) is orthogonal to XML. The way I see it, FLWOR syntax (as well as LINQ etc) is basically just a very fancy sequence comprehension, and obviously sequences and trees aren't XML-specific at all. <div class=""><br class=""></div><div class=""><div class="">FWIW, back when I first saw XQuery (which was after LINQ for me), I remember being somewhat surprised at the choice of "return" especially for a keyword. It's not that it was unclear what it did, and the mapping to the more familiar syntax was obvious. It's just that it implies some transfer of control traditionally, which is obviously not the case here. "yield", as used in Scala and F#, made a lot more sense.<br class=""></div><div class=""><br class=""></div><div class="">I don't mind "for" as much, on the other hand, seeing how it's pretty commonly used for sequence comprehensions elsewhere (Python, Scala, F# ...). I think the main reason why LINQ used "from" instead is to induce a sense of familiarity for those coming from SQL background, which was 99% of its target audience.</div></div><div class=""><br class=""></div><div class="">Side note: I don't think that standalone query languages make much sense now that integrated syntax for sequence comprehensions has become mainstream for high-level languages. It's just too much effort to do explicit interop from, say, Java, C# and JS, to XQuery or JSONiq, and it introduces a new syntax for concepts which are already represented in the host language, with said syntax being constrained to one narrow domain (XML/JSON). I think that the way forward is going to be more like LINQ - taking (hopefully!) the lessons learned from dedicated query languages and seamlessly integrating them into the language such that they can work on its native data model, and mapping XML, JSON etc to that model as transparently as possible.</div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Tue, Jun 23, 2015 at 2:56 PM, daniela florescu <span dir="ltr" class=""><<a href="mailto:dflorescu@me.com" target="_blank" class="">dflorescu@me.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class="">Pavel, I hope you don’t mind that I forward your personal  email to the main list.<div class=""><br class=""></div><div class=""><div class="">Thanks for the links. </div><div class=""><br class=""></div><div class="">Yes, I am of course aware of the history of it, but I don’t think everyone else is.</div><div class=""><br class=""></div><div class="">(I even gave feedback to Erik Meijer before he submitted this proposal to Bill Gates…. and I lost</div><div class="">a beer with him because we bet who among the two of us knows XML Schema better — and he did :-).</div><div class=""><br class=""></div><div class="">This reinforces the ideas that:</div><div class=""><br class=""></div><div class="">1. the principles of XQuery are orthogonal to XML itself and</div><div class=""><br class=""></div><div class="">2. spelling FROM and SELECT seems to matter to people A LOT.</div><div class=""><br class=""></div><div class="">Best regards</div><div class="">Dana</div><div class=""><div class="h5"><div class=""><br class=""></div><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Jun 23, 2015, at 2:44 PM, Pavel Minaev <<a href="mailto:int19h@gmail.com" target="_blank" class="">int19h@gmail.com</a>> wrote:</div><br class=""><div class=""><div dir="ltr" class="">FWIW, "this language" is actually LINQ:<div class=""><br class=""></div><div class=""><a href="https://msdn.microsoft.com/en-us/library/bb397896(v=vs.140).aspx" target="_blank" class="">https://msdn.microsoft.com/en-us/library/bb397896(v=vs.140).aspx</a><br class=""></div><div class=""><br class=""></div><div class="">Which, ironically, came out of an earlier Microsoft project called Cω (and specifically, the subset of it called X#), which was basically an attempt to graft a subset of XQuery onto C#:</div><div class=""><br class=""></div><div class=""><a href="https://msdn.microsoft.com/en-us/library/ms974195.aspx" target="_blank" class="">https://msdn.microsoft.com/en-us/library/ms974195.aspx</a><br class=""></div><div class=""><br class=""></div><div class="">It became LINQ after it dropped ties to XDM and was generalized to operate on arbitrary CLI object graphs instead.<br class=""></div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Tue, Jun 23, 2015 at 2:31 PM, daniela florescu <span dir="ltr" class=""><<a href="mailto:dflorescu@me.com" target="_blank" class="">dflorescu@me.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class="">One thing that did strike me is the link cited in one of the comments about this article:<div class=""><br class=""></div><div class=""><span style="color:rgb(51,51,51);font-family:Helvetica,Arial,sans-serif;font-size:13px;line-height:17px;white-space:pre-line;background-color:rgb(255,255,255)" class=""><a href="http://queue.acm.org/detail.cfm?id=1961297" target="_blank" class="">http://queue.acm.org/detail.cfm?id=1961297</a></span></div><div class=""><font color="#333333" face="Helvetica, Arial, sans-serif" size="2" class=""><span style="line-height:17px;white-space:pre-line;background-color:rgb(255,255,255)" class=""><br class=""></span></font></div><div class=""><font color="#333333" face="Helvetica, Arial, sans-serif" size="2" class=""><span style="line-height:17px;white-space:pre-line;background-color:rgb(255,255,255)" class="">Just look at the examples.</span></font></div><div class=""><font color="#333333" face="Helvetica, Arial, sans-serif" size="2" class=""><span style="line-height:17px;white-space:pre-line;background-color:rgb(255,255,255)" class=""><br class=""></span></font></div><div class=""><font color="#333333" face="Helvetica, Arial, sans-serif" size="2" class=""><span style="line-height:17px;white-space:pre-line;background-color:rgb(255,255,255)" class="">Does everyone see what I see !? :-)</span></font></div><div class=""><font color="#333333" face="Helvetica, Arial, sans-serif" size="2" class=""><span style="line-height:17px;white-space:pre-line;background-color:rgb(255,255,255)" class=""><br class=""></span></font></div><div class=""><font color="#333333" face="Helvetica, Arial, sans-serif" size="2" class=""><span style="line-height:17px;white-space:pre-line;background-color:rgb(255,255,255)" class="">Those are just FLWOR expressions, with FOR spelled as FROM and RETURN spelled</span></font></div><div class=""><font color="#333333" face="Helvetica, Arial, sans-serif" size="2" class=""><span style="line-height:17px;white-space:pre-line;background-color:rgb(255,255,255)" class="">as SELECT.</span></font></div><div class=""><font color="#333333" face="Helvetica, Arial, sans-serif" size="2" class=""><span style="line-height:17px;white-space:pre-line;background-color:rgb(255,255,255)" class=""><br class=""></span></font></div><div class=""><font color="#333333" face="Helvetica, Arial, sans-serif" size="2" class=""><span style="background-color:rgb(255,255,255)" class=""><span style="line-height:17px;white-space:pre-line" class="">Can we PLEASE add those as synonyms in the XQuery grammar before you close XQuery 3.1  !?</span></span></font></div><div class=""><font color="#333333" face="Helvetica, Arial, sans-serif" size="2" class=""><span style="background-color:rgb(255,255,255)" class=""><span style="line-height:17px;white-space:pre-line" class=""><br class=""></span></span></font></div><div class=""><font color="#333333" face="Helvetica, Arial, sans-serif" size="2" class=""><span style="background-color:rgb(255,255,255)" class=""><span style="line-height:17px;white-space:pre-line" class="">Otherwise we’ll hear for another 100 years that XQuery has nothing to do with SQL while THIS language</span></span></font></div><div class=""><font color="#333333" face="Helvetica, Arial, sans-serif" size="2" class=""><span style="background-color:rgb(255,255,255)" class=""><span style="line-height:17px;white-space:pre-line" class="">describe in this paper DOES. (sic!)</span></span></font></div><div class=""><font color="#333333" face="Helvetica, Arial, sans-serif" size="2" class=""><span style="background-color:rgb(255,255,255)" class=""><span style="line-height:17px;white-space:pre-line" class=""><br class=""></span></span></font></div><div class=""><font color="#333333" face="Helvetica, Arial, sans-serif" size="2" class=""><span style="background-color:rgb(255,255,255)" class=""><span style="line-height:17px;white-space:pre-line" class="">It’s dumb, but that’s how it is.</span></span></font></div><div class=""><br class=""></div><div class=""><div class=""><font color="#333333" face="Helvetica, Arial, sans-serif" size="2" class=""><span style="background-color:rgb(255,255,255)" class=""><span style="line-height:17px;white-space:pre-line" class="">Pretty please !???</span></span></font></div></div><div class=""><font color="#333333" face="Helvetica, Arial, sans-serif" size="2" class=""><span style="background-color:rgb(255,255,255)" class=""><span style="line-height:17px;white-space:pre-line" class=""><br class=""></span></span></font></div><div class=""><font color="#333333" face="Helvetica, Arial, sans-serif" size="2" class=""><span style="background-color:rgb(255,255,255)" class=""><span style="line-height:17px;white-space:pre-line" class="">Thanks</span></span></font></div><div class=""><font color="#333333" face="Helvetica, Arial, sans-serif" size="2" class=""><span style="background-color:rgb(255,255,255)" class=""><span style="line-height:17px;white-space:pre-line" class="">Dana</span></span></font></div><div class=""><font color="#333333" face="Helvetica, Arial, sans-serif" size="2" class=""><span style="background-color:rgb(255,255,255)" class=""><span style="line-height:17px;white-space:pre-line" class=""><br class=""></span></span></font></div><div class=""><font color="#333333" face="Helvetica, Arial, sans-serif" size="2" class=""><span style="background-color:rgb(255,255,255)" class=""><span style="line-height:17px;white-space:pre-line" class=""><br class=""></span></span></font></div><div class=""><font color="#333333" face="Helvetica, Arial, sans-serif" size="2" class=""><span style="line-height:17px;white-space:pre-line;background-color:rgb(255,255,255)" class=""><br class=""></span></font><div class=""><blockquote type="cite" class=""><div class="">On Jun 23, 2015, at 11:04 AM, daniela florescu <<a href="mailto:dflorescu@me.com" target="_blank" class="">dflorescu@me.com</a>> wrote:</div><br class=""><div class=""><div style="word-wrap:break-word" class="">Ihe,<br class=""><div class=""><br class=""></div><div class="">you asked why XQuery is not more popular.</div><div class=""><br class=""></div><div class="">Here is another striking answer to your question: NOBODY KNOWS IT EXISTS.</div><div class=""><br class=""></div><div class="">Just look at this example.<div class=""><br class=""></div><div class=""><a href="https://www.linkedin.com/pulse/sql-vs-discrepancy-somil-asthana?trk=hp-feed-article-title-like" target="_blank" class="">https://www.linkedin.com/pulse/sql-vs-discrepancy-somil-asthana?trk=hp-feed-article-title-like</a></div><div class=""><br class=""></div><div class="">I quote: "<span style="color:rgb(77,79,81);font-family:Helvetica,Arial,sans-serif;font-size:16px;line-height:24px;background-color:rgb(255,255,255)" class="">Indisputably, there may be people who are working on Non Relational</span></div><div class=""><span style="color:rgb(77,79,81);font-family:Helvetica,Arial,sans-serif;font-size:16px;line-height:24px;background-color:rgb(255,255,255)" class=""> Algebra and Non Tuple Relational Calculus, its just that we do not know them.</span><font color="#4d4f51" face="Helvetica, Arial, sans-serif" size="3" class=""><span style="line-height:24px" class="">”</span></font></div><div class=""><span style="color:rgb(77,79,81);font-family:Helvetica,Arial,sans-serif;font-size:16px;line-height:24px;background-color:rgb(255,255,255)" class=""><br class=""></span></div><div class=""><span style="background-color:rgb(255,255,255)" class=""><font color="#4d4f51" face="Helvetica, Arial, sans-serif" size="3" class=""><span style="line-height:24px" class="">[[[Can someone just answer this guy, so I don’t have to insult him/her !?</span></font></span></div><div class=""><span style="background-color:rgb(255,255,255)" class=""><font color="#4d4f51" face="Helvetica, Arial, sans-serif" size="3" class=""><span style="line-height:24px" class="">Because I feel a really strong urge….I’ll try to breathe and do some meditation….]]]</span></font></span></div><div class=""><span style="background-color:rgb(255,255,255)" class=""><font color="#4d4f51" face="Helvetica, Arial, sans-serif" size="3" class=""><span style="line-height:24px" class=""><br class=""></span></font></span></div><div class=""><span style="background-color:rgb(255,255,255)" class=""><font color="#4d4f51" face="Helvetica, Arial, sans-serif" size="3" class=""><span style="line-height:24px" class="">In fact, I know that this is not his/her limitation.</span></font></span></div><div class=""><span style="background-color:rgb(255,255,255)" class=""><font color="#4d4f51" face="Helvetica, Arial, sans-serif" size="3" class=""><span style="line-height:24px" class=""><br class=""></span></font></span></div><div class=""><span style="background-color:rgb(255,255,255)" class=""><font color="#4d4f51" face="Helvetica, Arial, sans-serif" size="3" class=""><span style="line-height:24px" class="">It’s our OWN failure to explain to the world what XQuery is, what it does, and what is good at.</span></font></span></div><div class=""><span style="background-color:rgb(255,255,255)" class=""><font color="#4d4f51" face="Helvetica, Arial, sans-serif" size="3" class=""><span style="line-height:24px" class=""><br class=""></span></font></span></div><div class="">Best regards</div></div><div class="">Dana</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">P.S. And after that, please DON’T ask me why I am SO pissed off at MarkLogic who pretend they never ate the garlic, not does</div><div class="">their mouth smell of garlic…..</div><div class=""><br class=""></div><div class="">They MADE all their money out of the power of XQuery  (expressiveness, productivity, etc), yet they pretend they’ve never heard of it….</div><div class=""><br class=""></div><div class="">That’s something that REALLY gets me angry.</div><div class=""><br class=""></div><div class="">And this will come back to bait them on the business side very badly too. </div><div class=""><br class=""></div><div class="">Oracle would have NEVER done the same thing about SQL…..just saying.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div></div></div></blockquote></div><br class=""></div></div><br class="">_______________________________________________<br class="">
<a href="mailto:talk@x-query.com" target="_blank" class="">talk@x-query.com</a><br class="">
<a href="http://x-query.com/mailman/listinfo/talk" rel="noreferrer" target="_blank" class="">http://x-query.com/mailman/listinfo/talk</a><br class=""></blockquote></div><br class=""></div>
</div></blockquote></div><br class=""></div></div></div></div></div></blockquote></div><br class=""></div>
</div></blockquote></div><br class=""></body></html>