Rewrites queries to cleaner syntax
diff --git a/asterix-app/src/main/resources/sdk/static/AdmAql101/demo.html b/asterix-app/src/main/resources/sdk/static/AdmAql101/demo.html
index 3afaaa4..7ad27ae 100644
--- a/asterix-app/src/main/resources/sdk/static/AdmAql101/demo.html
+++ b/asterix-app/src/main/resources/sdk/static/AdmAql101/demo.html
@@ -6,23 +6,25 @@
<style>
.pretty-printed {
- background-color: #eeeeee;
- margin-bottom: 1em;
+ background-color: #eeeeee;
+ margin-bottom: 1em;
}
.how-to-run {
- background-color: #c8c8c8;
- margin-bottom: 1em;
+ background-color: #c8c8c8;
+ margin-bottom: 1em;
}
.result-output {
- background-color: #BED8E5;
- margin-bottom: 1em;
+ background-color: #BED8E5;
+ margin-bottom: 1em;
+ overflow-x: scroll;
+ overflow-y: none;
}
body {
- font-family : "Helvetica";
- margin-bottom: 1em;
+ font-family : "Helvetica";
+ margin-bottom: 1em;
}
</style>
@@ -46,8 +48,8 @@
<div class="how-to-run"><pre><code class="javascript">
var expression0a = new FLWOGRExpression()
- .bind( new ForClause("user", new AExpression().set("dataset FacebookUsers")))
- .bind( new WhereClause(new AExpression().set("$user.id = 8")))
+ .ForClause("$user", new AExpression("dataset FacebookUsers"))
+ .WhereClause(new AExpression("$user.id = 8"))
.ReturnClause("$user");
</code></pre></div>
@@ -70,12 +72,9 @@
<div class="how-to-run"><pre><code class="javascript">
var expression0b = new FLWOGRExpression()
- .bind( new ForClause("user", new AExpression().set("dataset FacebookUsers")))
- .bind( new WhereClause().and(
- new AExpression().set("$user.id >= 2"),
- new AExpression().set("$user.id <= 4")
- ))
- .ReturnClause("$user");
+ .ForClause("$user", new AExpression("dataset FacebookUsers"))
+ .WhereClause().and(new AExpression("$user.id >= 2"), new AExpression("$user.id <= 4"))
+ .ReturnClause("$user");
</code></pre></div>
<div class="result-output" id="result0b">
@@ -98,11 +97,11 @@
<div class="how-to-run"><pre><code class="javascript">
var expression1 = new FLWOGRExpression()
- .bind( new ForClause("user", new AExpression().set("dataset FacebookUsers")))
- .bind( new WhereClause().and(
- new AExpression().set("$user.user-since >= datetime('2010-07-22T00:00:00')"),
- new AExpression().set("$user.user-since <= datetime('2012-07-29T23:59:59')")
- ))
+ .ForClause("$user", new AExpression("dataset FacebookUsers"))
+ .WhereClause().and(
+ new AExpression("$user.user-since >= datetime('2010-07-22T00:00:00')"),
+ new AExpression("$user.user-since <= datetime('2012-07-29T23:59:59')")
+ )
.ReturnClause("$user");
</code></pre></div>
@@ -129,13 +128,13 @@
<div class="how-to-run"><pre><code class="javascript">
var expression2a = new FLWOGRExpression()
- .bind( new ForClause ("user", new AQLClause().set("dataset FacebookUsers")))
- .bind( new ForClause ("message", new AQLClause().set("dataset FacebookMessages")))
- .bind( new WhereClause (new AExpression().set("$message.author-id = $user.id")))
+ .ForClause ("$user", new AExpression("dataset FacebookUsers"))
+ .ForClause ("$message", new AExpression("dataset FacebookMessages"))
+ .WhereClause(new AExpression("$message.author-id = $user.id"))
.ReturnClause({
- "uname" : "$user.name",
- "message" : "$message.message"
- });
+ "uname" : "$user.name",
+ "message" : "$message.message"
+ });
</code></pre></div>
<div class="result-output" id="result2a">
@@ -161,15 +160,13 @@
<div class="how-to-run"><pre><code class="javascript">
var expression2b = new FLWOGRExpression()
- .bind( new ForClause ("user", new AQLClause().set("dataset FacebookUsers")))
- .bind( new ForClause ("message", new AQLClause().set("dataset FacebookMessages")))
- .bind( new WhereClause (new AExpression().set("$message.author-id /*+ indexnl */ = $user.id")))
- .ReturnClause(
- {
+ .ForClause ("$user", new AExpression("dataset FacebookUsers"))
+ .ForClause ("$message", new AExpression("dataset FacebookMessages"))
+ .WhereClause(new AExpression("$message.author-id /*+ indexnl */ = $user.id"))
+ .ReturnClause({
"uname" : "$user.name",
"message" : "$message.message"
- }
- );
+ });
</code></pre></div>
<div class="result-output" id="result2b">
@@ -195,12 +192,12 @@
<div class="how-to-run"><pre><code class="javascript">
var expression3messages = new FLWOGRExpression()
- .bind( new ForClause("message", new AExpression().set("dataset FacebookMessages")))
- .bind( new WhereClause(new AExpression().set("$message.author-id = $user.id")))
+ .ForClause("$message", new AExpression("dataset FacebookMessages"))
+ .WhereClause(new AExpression("$message.author-id = $user.id"))
.ReturnClause("$message.message");
var expression3 = new FLWOGRExpression()
- .bind( new ForClause ("user", new AQLClause().set("dataset FacebookUsers")))
+ .ForClause ("$user", new AExpression("dataset FacebookUsers"))
.ReturnClause({
"uname": "$user.name",
"messages" : expression3messages
@@ -230,12 +227,12 @@
<div class="how-to-run"><pre><code class="javascript">
var expression4messages = new FLWOGRExpression()
- .bind( new ForClause( "t2", new AExpression().set("dataset TweetMessages")))
- .bind( new WhereClause( new AExpression().set("spatial-distance($t.sender-location, $t2.sender-location) <= 1")))
+ .ForClause( "$t2", new AExpression("dataset TweetMessages"))
+ .WhereClause( new AExpression("spatial-distance($t.sender-location, $t2.sender-location) <= 1"))
.ReturnClause({ "msgtxt" : "$t2.message-text" });
var expression4 = new FLWOGRExpression()
- .bind( new ForClause( "t", new AExpression().set("dataset TweetMessages") ))
+ .ForClause( "$t", new AExpression("dataset TweetMessages"))
.ReturnClause({
"message" : "$t.message-text",
"nearby-messages" : expression4messages
@@ -273,16 +270,16 @@
<div class="how-to-run"><pre><code class="javascript">
var similarUsersExpression = new FLWOGRExpression()
- .bind( new ForClause ("t", new AQLClause().set("dataset TweetMessages")))
- .bind( new LetClause ("tu", new AExpression().set("$t.user")))
- .bind( new WhereClause (new AExpression().set("$tu.name ~= $fbu.name")))
+ .ForClause("$t", new AExpression("dataset TweetMessages"))
+ .LetClause ("$tu", new AExpression("$t.user"))
+ .WhereClause(new AExpression("$tu.name ~= $fbu.name"))
.ReturnClause({
"twitter-screenname": "$tu.screen-name",
"twitter-name": "$tu.name"
});
-
+
var expression5 = new FLWOGRExpression()
- .bind( new ForClause ("fbu", new AQLClause().set("dataset FacebookUsers")))
+ .ForClause ("$fbu", new AExpression("dataset FacebookUsers"))
.ReturnClause(
{
"id" : "$fbu.id",
@@ -311,14 +308,14 @@
<div class="how-to-run"><pre><code class="javascript">
var expression6 = new FLWOGRExpression()
- .bind( new ForClause ("fbu", new AQLClause().set("dataset FacebookUsers")))
- .bind( new WhereClause (
+ .ForClause ("$fbu", new AQLClause().set("dataset FacebookUsers"))
+ .WhereClause(
new QuantifiedExpression (
"some" ,
- {"$e" : new AQLClause().set("$fbu.employment") },
- new AQLClause().set("is-null($e.end-date)")
+ {"$e" : new AExpression("$fbu.employment") },
+ new FunctionExpression("is-null", new AExpression("$e.end-date"))
)
- ))
+ )
.ReturnClause("$fbu");
</code></pre></div>
@@ -331,7 +328,7 @@
<h2>Query 7 - Universal Quantification</h2>
<div class="sample-query">
- <div class="pretty-printed"><pre><pre>
+ <div class="pretty-printed"><pre>
use dataverse TinySocial;
for $fbu in dataset FacebookUsers
@@ -341,18 +338,15 @@
<div class="how-to-run"><pre><code class="javascript">
var expression7 = new FLWOGRExpression()
- .bind( new ForClause (
- "fbu",
- new AQLClause().set("dataset FacebookUsers")
- ))
- .bind( new WhereClause (
- new QuantifiedExpression (
- "every" ,
- {"$e" : new AQLClause().set("$fbu.employment") },
- new AQLClause().set("not(is-null($e.end-date))")
+ .ForClause("$fbu", new AExpression("dataset FacebookUsers"))
+ .WhereClause(
+ new QuantifiedExpression (
+ "every" ,
+ {"$e" : new AExpression("$fbu.employment") },
+ new FunctionExpression("not", new FunctionExpression("is-null", new AExpression("$e.end-date")))
+ )
)
- ))
- .ReturnClause("$fbu");
+ .ReturnClause("$fbu");
</code></pre></div>
<div class="result-output" id="result7">
@@ -374,7 +368,7 @@
var expression8 = new FunctionExpression(
"count",
new FLWOGRExpression()
- .bind( new ForClause("fbu", new AQLClause().set("dataset FacebookUsers")))
+ .ForClause("$fbu", new AExpression("dataset FacebookUsers"))
.ReturnClause("$fbu")
);
</code></pre></div>
@@ -401,12 +395,12 @@
<div class="how-to-run"><pre><code class="javascript">
var expression9a = new FLWOGRExpression()
- .bind( new ForClause("t", new AExpression().set("dataset TweetMessages")))
- .bind( new GroupClause("uid", new AExpression().set("$t.user.screen-name"), "with", "t") )
+ .ForClause("$t", new AExpression("dataset TweetMessages"))
+ .GroupClause("$uid", new AExpression("$t.user.screen-name"), "with", "$t")
.ReturnClause(
{
"user" : "$uid",
- "count" : new FunctionExpression("count", new AExpression().set("$t"))
+ "count" : new FunctionExpression("count", new AExpression("$t"))
}
);
</code></pre></div>
@@ -434,13 +428,13 @@
<div class="how-to-run"><pre><code class="javascript">
var expression9b = new FLWOGRExpression()
- .bind( new ForClause("t", new AExpression().set("dataset TweetMessages")))
- .bind( new AQLClause().set("/*+ hash*/"))
- .bind( new GroupClause("uid", new AExpression().set("$t.user.screen-name"), "with", "t") )
+ .ForClause("$t", new AExpression("dataset TweetMessages"))
+ .AQLClause("/*+ hash*/")
+ .GroupClause("$uid", new AExpression("$t.user.screen-name"), "with", "$t")
.ReturnClause(
{
"user" : "$uid",
- "count" : new FunctionExpression("count", new AExpression().set("$t"))
+ "count" : new FunctionExpression("count", new AExpression("$t"))
}
);
</code></pre></div>
@@ -470,20 +464,17 @@
<div class="how-to-run"><pre><code class="javascript">
var expression10 = new FLWOGRExpression()
- .bind( new ForClause("t", new AExpression().set("dataset TweetMessages")))
- .bind( new GroupClause("uid", new AExpression().set("$t.user.screen-name"), "with", "t") )
- .bind( new LetClause(
- "c",
- new FunctionExpression("count", new AExpression().set("$t"))
- ))
- .bind( new OrderbyClause( new AExpression().set("$c"), "desc" ) )
- .bind( new LimitClause(new AExpression().set("3")) )
- .ReturnClause(
- {
- "user" : "$uid",
- "count" : "$c"
- }
- );
+ .ForClause("$t", new AExpression("dataset TweetMessages"))
+ .GroupClause("$uid", new AExpression("$t.user.screen-name"), "with", "$t")
+ .LetClause("$c", new FunctionExpression("count", new AExpression("$t")))
+ .OrderbyClause( new AExpression("$c"), "desc" )
+ .LimitClause(new AExpression("3"))
+ .ReturnClause(
+ {
+ "user" : "$uid",
+ "count" : "$c"
+ }
+ );
</code></pre></div>
<div class="result-output" id="result10">
@@ -512,18 +503,18 @@
</pre></div>
<div class="how-to-run"><pre><code class="javascript">
- var expression11 = new FLWOGRExpression()
- .bind( new ForClause( "t", new AExpression().set("dataset TweetMessages") ))
+ var expression11 = new FLWOGRExpression()
+ .ForClause( "$t", new AExpression("dataset TweetMessages"))
.ReturnClause({
- "tweet" : new AExpression().set("$t"),
+ "tweet" : new AExpression("$t"),
"similar-tweets": new FLWOGRExpression()
- .bind( new ForClause( "t2", new AExpression().set("dataset TweetMessages") ))
- .bind( new WhereClause().and(
- new AExpression().set("$t2.referred-topics ~= $t.referred-topics"),
- new AExpression().set("$t2.tweetid != $t.tweetid")
- ))
+ .ForClause( "$t2", new AExpression("dataset TweetMessages"))
+ .WhereClause().and(
+ new AExpression("$t2.referred-topics ~= $t.referred-topics"),
+ new AExpression("$t2.tweetid != $t.tweetid")
+ )
.ReturnClause("$t2.referred-topics")
- });
+ });
</code></pre></div>
<div class="result-output" id="result11">