Pavel, NOW we are talking about interesting research !!!! :-))))
Sequence comprehension. Here we go….:-) Yes, sequence comprehension (it’s called monoid comprehension in theoretical computer science….) IS the one of the most important things for a high level/declarative language. However, several important remarks: ============ 1. Linq is NOT a new idea. My PhD thesis was (partially) about adding SELECT-FROM-WHERE as an expression to C++. I did it as a pre-processor at that time — remember, it was 1994. Others did it too, decades before me !!!! Remember Pascal-R !??? http://archive.nyu.edu/fda/handle/2451/14595 <http://archive.nyu.edu/fda/handle/2451/14595> (probably not, because you are too young..) 2. in 2015 XQuery has FROM FAR (!!!!!!!!!!) the most advanced, expressive-wise, AND the cleanest semantic-wise version of sequence comprehension. Every other language should use THAT instead of half-baking Yet-Another-Sequence-Comprehension. The FLWOR of XQuery is semantically very clean, has nothing to do with XML, is compositional and elegant, and, moreover, optimizable. 3. The discussion : should we add sequence comprehension to an exiting imperative language vs. adding scripting extensions to XQuery/high level functional language with sequence comprehension is again old as the times. see for example: http://dl.acm.org/citation.cfm?id=1142597&dl=ACM&coll=DL&CFID=522088426&CFTOKEN=80093091 <http://dl.acm.org/citation.cfm?id=1142597&dl=ACM&coll=DL&CFID=522088426&CFTOKEN=80093091> ( Donald Kossmann and I had a detailed tutorial at Sigmod 2006, and the slides were REALLY funny, if I remember correctly) This was in 2006. (when you read the paper just do a global replace “XML” with “semi-structured data”) Now, in 2015, I think BOTH alternatives are good, and viable. For example, adding a FLWOR expression to Javascript is a worthwile thing to do, and I am implementing this as we speak. 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 in PL-SQL was written in Java with SQL. Same story/question again. 4. Sequence comprehension is necessary for processing data in general, structured or non-structured. However, for processing ****SEMI-STRUCTURED DATA**** you need EXTRA other features, non-existing in ANY other language except XQuery and XSLT. I tried to put a list of features needed for semi-structured data in a previous email to this list, …. http://x-query.com/pipermail/talk/2015-May/004718.html http://x-query.com/pipermail/talk/2015-May/004719.html …..but of course I did it fast, and forgot some of the necessary features. In particular, I forgot the ability to do metadata search (aka path expressions where you don’t know the data structure). =========== So, yep. Lots of Computer Science history. This is why it is DAMN SAD to see those barbarians starting to query JSON in 2015 like it’s 1995 again ……. Best Dana > On Jun 23, 2015, at 3:07 PM, Pavel Minaev <[email protected]> wrote: > > I don't mind at all. > > 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. > > 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. > > 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. > > 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. > > On Tue, Jun 23, 2015 at 2:56 PM, daniela florescu <[email protected] > <mailto:[email protected]>> wrote: > Pavel, I hope you don’t mind that I forward your personal email to the main > list. > > Thanks for the links. > > Yes, I am of course aware of the history of it, but I don’t think everyone > else is. > > (I even gave feedback to Erik Meijer before he submitted this proposal to > Bill Gates…. and I lost > a beer with him because we bet who among the two of us knows XML Schema > better — and he did :-). > > This reinforces the ideas that: > > 1. the principles of XQuery are orthogonal to XML itself and > > 2. spelling FROM and SELECT seems to matter to people A LOT. > > Best regards > Dana > > >> On Jun 23, 2015, at 2:44 PM, Pavel Minaev <[email protected] >> <mailto:[email protected]>> wrote: >> >> FWIW, "this language" is actually LINQ: >> >> https://msdn.microsoft.com/en-us/library/bb397896(v=vs.140).aspx >> <https://msdn.microsoft.com/en-us/library/bb397896(v=vs.140).aspx> >> >> 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#: >> >> https://msdn.microsoft.com/en-us/library/ms974195.aspx >> <https://msdn.microsoft.com/en-us/library/ms974195.aspx> >> >> It became LINQ after it dropped ties to XDM and was generalized to operate >> on arbitrary CLI object graphs instead. >> >> On Tue, Jun 23, 2015 at 2:31 PM, daniela florescu <[email protected] >> <mailto:[email protected]>> wrote: >> One thing that did strike me is the link cited in one of the comments about >> this article: >> >> http://queue.acm.org/detail.cfm?id=1961297 >> <http://queue.acm.org/detail.cfm?id=1961297> >> >> Just look at the examples. >> >> Does everyone see what I see !? :-) >> >> Those are just FLWOR expressions, with FOR spelled as FROM and RETURN spelled >> as SELECT. >> >> Can we PLEASE add those as synonyms in the XQuery grammar before you close >> XQuery 3.1 !? >> >> Otherwise we’ll hear for another 100 years that XQuery has nothing to do >> with SQL while THIS language >> describe in this paper DOES. (sic!) >> >> It’s dumb, but that’s how it is. >> >> Pretty please !??? >> >> Thanks >> Dana >> >> >> >>> On Jun 23, 2015, at 11:04 AM, daniela florescu <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>> Ihe, >>> >>> you asked why XQuery is not more popular. >>> >>> Here is another striking answer to your question: NOBODY KNOWS IT EXISTS. >>> >>> Just look at this example. >>> >>> https://www.linkedin.com/pulse/sql-vs-discrepancy-somil-asthana?trk=hp-feed-article-title-like >>> >>> <https://www.linkedin.com/pulse/sql-vs-discrepancy-somil-asthana?trk=hp-feed-article-title-like> >>> >>> I quote: "Indisputably, there may be people who are working on Non >>> Relational >>> Algebra and Non Tuple Relational Calculus, its just that we do not know >>> them.” >>> >>> [[[Can someone just answer this guy, so I don’t have to insult him/her !? >>> Because I feel a really strong urge….I’ll try to breathe and do some >>> meditation….]]] >>> >>> In fact, I know that this is not his/her limitation. >>> >>> It’s our OWN failure to explain to the world what XQuery is, what it does, >>> and what is good at. >>> >>> Best regards >>> Dana >>> >>> >>> 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 >>> their mouth smell of garlic….. >>> >>> They MADE all their money out of the power of XQuery (expressiveness, >>> productivity, etc), yet they pretend they’ve never heard of it…. >>> >>> That’s something that REALLY gets me angry. >>> >>> And this will come back to bait them on the business side very badly too. >>> >>> Oracle would have NEVER done the same thing about SQL…..just saying. >>> >>> >>> >>> >> >> >> _______________________________________________ >> [email protected] <mailto:[email protected]> >> http://x-query.com/mailman/listinfo/talk >> <http://x-query.com/mailman/listinfo/talk> >> > >
_______________________________________________ [email protected] http://x-query.com/mailman/listinfo/talk
