use dataverse TinySocial; for $user in dataset FacebookUsers where $user.id = 8 return $user;
var expression0a = new FLWOGRExpression()
.bind( new ForClause("user", new AExpression().set("dataset FacebookUsers")))
.bind( new WhereClause(new AExpression().set("$user.id = 8")))
.ReturnClause("$user");
use dataverse TinySocial; for $user in dataset FacebookUsers where $user.id >= 2 and $user.id <= 4 return $user;
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");
use dataverse TinySocial; for $user in dataset FacebookUsers where $user.user-since >= datetime('2010-07-22T00:00:00') and $user.user-since <= datetime('2012-07-29T23:59:59') return $user;
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')")
))
.ReturnClause("$user");
use dataverse TinySocial; for $user in dataset FacebookUsers for $message in dataset FacebookMessages where $message.author-id = $user.id return { "uname": $user.name, "message": $message.message };
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")))
.ReturnClause({
"uname" : "$user.name",
"message" : "$message.message"
});
use dataverse TinySocial; for $user in dataset FacebookUsers for $message in dataset FacebookMessages where $message.author-id /*+ indexnl */ = $user.id return { "uname": $user.name, "message": $message.message };
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(
{
"uname" : "$user.name",
"message" : "$message.message"
}
);
use dataverse TinySocial; for $user in dataset FacebookUsers return { "uname": $user.name, "messages": for $message in dataset FacebookMessages where $message.author-id = $user.id return $message.message };
var expression3messages = new FLWOGRExpression()
.bind( new ForClause("message", new AExpression().set("dataset FacebookMessages")))
.bind( new WhereClause(new AExpression().set("$message.author-id = $user.id")))
.ReturnClause("$message.message");
var expression3 = new FLWOGRExpression()
.bind( new ForClause ("user", new AQLClause().set("dataset FacebookUsers")))
.ReturnClause({
"uname": "$user.name",
"messages" : expression3messages
});
use dataverse TinySocial; for $t in dataset TweetMessages return { "message": $t.message-text, "nearby-messages": for $t2 in dataset TweetMessages where spatial-distance($t.sender-location, $t2.sender-location) <= 1 return { "msgtxt":$t2.message-text} };
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")))
.ReturnClause({ "msgtxt" : "$t2.message-text" });
var expression4 = new FLWOGRExpression()
.bind( new ForClause( "t", new AExpression().set("dataset TweetMessages") ))
.ReturnClause({
"message" : "$t.message-text",
"nearby-messages" : expression4messages
});
use dataverse TinySocial; set simfunction "edit-distance"; set simthreshold "3"; for $fbu in dataset FacebookUsers return { "id": $fbu.id, "name": $fbu.name, "similar-users": for $t in dataset TweetMessages let $tu := $t.user where $tu.name ~= $fbu.name return { "twitter-screenname": $tu.screen-name, "twitter-name": $tu.name } };
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")))
.ReturnClause({
"twitter-screenname": "$tu.screen-name",
"twitter-name": "$tu.name"
});
var expression5 = new FLWOGRExpression()
.bind( new ForClause ("fbu", new AQLClause().set("dataset FacebookUsers")))
.ReturnClause(
{
"id" : "$fbu.id",
"name" : "$fbu.name",
"similar-users" : similarUsersExpression
}
);
use dataverse TinySocial; for $fbu in dataset FacebookUsers where (some $e in $fbu.employment satisfies is-null($e.end-date)) return $fbu;
var expression6 = new FLWOGRExpression()
.bind( new ForClause ("fbu", new AQLClause().set("dataset FacebookUsers")))
.bind( new WhereClause (
new QuantifiedExpression (
"some" ,
{"$e" : new AQLClause().set("$fbu.employment") },
new AQLClause().set("is-null($e.end-date)")
)
))
.ReturnClause("$fbu");
use dataverse TinySocial; for $fbu in dataset FacebookUsers where (every $e in $fbu.employment satisfies not(is-null($e.end-date))) return $fbu;
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))")
)
))
.ReturnClause("$fbu");
use dataverse TinySocial; count(for $fbu in dataset FacebookUsers return $fbu);
var expression8 = new FunctionExpression(
"count",
new FLWOGRExpression()
.bind( new ForClause("fbu", new AQLClause().set("dataset FacebookUsers")))
.ReturnClause("$fbu")
);
use dataverse TinySocial; for $t in dataset TweetMessages group by $uid := $t.user.screen-name with $t return { "user": $uid, "count": count($t) };
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") )
.ReturnClause(
{
"user" : "$uid",
"count" : new FunctionExpression("count", new AExpression().set("$t"))
}
);
use dataverse TinySocial; for $t in dataset TweetMessages /*+ hash*/ group by $uid := $t.user.screen-name with $t return { "user": $uid, "count": count($t) };
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") )
.ReturnClause(
{
"user" : "$uid",
"count" : new FunctionExpression("count", new AExpression().set("$t"))
}
);
use dataverse TinySocial; for $t in dataset TweetMessages group by $uid := $t.user.screen-name with $t let $c := count($t) order by $c desc limit 3 return { "user": $uid, "count": $c };
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"
}
);
use dataverse TinySocial; set simfunction "jaccard"; set simthreshold "0.3"; for $t in dataset TweetMessages return { "tweet": $t, "similar-tweets": for $t2 in dataset TweetMessages where $t2.referred-topics ~= $t.referred-topics and $t2.tweetid != $t.tweetid return $t2.referred-topics };
var expression11 = new FLWOGRExpression()
.bind( new ForClause( "t", new AExpression().set("dataset TweetMessages") ))
.ReturnClause({
"tweet" : new AExpression().set("$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")
))
.ReturnClause("$t2.referred-topics")
});