WAQL-PP: Preprocessor for a Data Aggregation Query Language

This week I started to design and implement a preprocessor for the Web-service Aggregation Query Language (WAQL) which is an extension of XQuery. This language is used as part of the WS-Aggregation framework developed at the Distributed Systems Group of the Vienna University of Technology. With this text I want to explain the motivation behind WAQL and how the preprocessor will be designed. The motivation is nicely stated as part of my task description.

The key idea of WAQL is that it provides a convenience syntax for XQuery, which otherwise tends to become complex and hardly comprehensible in bigger scenarios. WAQL queries are transformed into valid XQuery expressions, which are finally executed by a (third-party) XQuery engine.

First of all we need to get a grasp of what the WAQL extensions to the XQuery language are. Since WAQL is still in its experimental stages, there is no exact specification of the language and it may change or grow over time. At the moment WAQL consists of two language constructs:

  • Template Lists: This extension tries to simplify the specification of generated inputs. It basically is syntactical sugar representing a XQuery for-loop construct and as such can be transformed easily.
  • Data Dependencies: This second extension is the interesting one, it can express dependencies between several different queries. The framework has to identify these dependencies and execute the queries in a valid order, so that all dependencies can be resolved.

The above two constructs should explain why the actual transformation has to be split into several phases which can be triggered by the framework at different points in time. The separate steps the preprocessor has to perform are as follows:

  1. Parsing: The textual WAQL query is parsed and an intermediate representation is constructed. Since WAQL is an extension which enhances the set of expressions for the XQuery language, the actual parser has to understand the full XQuery grammar. This may sound like a lot of work, but the XQuery specification provides a detailed description of the grammar in about 140 EBNF rules. So defining a valid parser is a doable job.
  2. Resolving of data dependencies: At this point the preprocessor has generated a list of all unresolved data dependencies. However the preprocessor has no idea which other queries are linked to the one currently being processed. So the actual resolving has to be done by the framework, the preprocessor just adapts the intermediate representation to the data provided by the framework.
  3. Transformation: Once all dependencies have been resolved the intermediate representation can be transformed back into a textual XQuery (without any WAQL extensions), which can then be passed on to a third-party XQuery engine.

Now that the basic operations are defined, we are able to give a rough description of the WAQL preprocessor and how it can be embedded into the existing framework. The two basic modules are a generated parser (obviously performing the parsing step) and a driving engine (performing the resolving and transformation steps). The parser will most certainly be generated using the JavaCC parser generator. The below graphic should explain the architecture.

Architecture of the WAQL preprocessor

Note that the above explanation is written from the compiler-constructor point of view, it just covers the preprocessor as part of the framework. All the other nasty details of WS-Aggregation are beyond the scope of this text. If you are interested you should read the paper or contact Waldemar Hummer who was kind enough to explain it to me. Also I will continue to write about the ongoing development of the preprocessor, so stay tuned.

Update: This text was crossposted to the DSG Praktika Blog as well.

Hi, all is going sound here

Hi, all is going sound here and ofcourse every one
is sharing data, that's in fact excellent, keep up writing.

Hey terrific blog! Does

Hey terrific blog! Does running a blog similar to this take a lot of work?
I have very little knowledge of computer programming however I was hoping to start my own blog in the near
future. Anyway, should you have any recommendations
or techniques for new blog owners please share. I understand this is off subject nevertheless I simply needed to ask.

Thank you!

This post will help the

This post will help the internet visitors for creating new
webpage or even a weblog from start to end.

Right away I am going to do

Right away I am going to do my breakfast, later than having my breakfast
coming over again to read more news.

Buying internet media, for

Buying internet media, for instance impressions,
emails distributed, sponsorships, so on. There are pretty
straight forward systems you can executed to assist you concentrate on your small business.
In order to view positive results inside shortest time possible, there can be a few guidelines that needs to
be followed.

It's really a great and

It's really a great and useful piece of information. I'm happy
that you just shared this useful info with us. Please stay us informed like this.
Thank you for sharing.

You really make it appear so

You really make it appear so easy together with your presentation but I to find
this topic to be really something which I believe I'd by no means understand.
It kind of feels too complicated and extremely wide for
me. I am looking forward to your next put up, I will attempt to get the cling
of it!

Hello, juist wɑnted to

Hello, juist wɑnted to mention, Ӏ loved ths post.
Ιt was helpful. Keeep оn posting!

I do trust all the concepts

I do trust all the concepts you've presented in your
post. They are really convincing and can certainly work.
Still, the posts are too brief for beginners. May
you please prolong them a bit from next time?
Thanks for the post.

That is really fascinating,

That is really fascinating, You're an excessively professional blogger.
I've joined your feed and look forward to searching for more
of your fantastic post. Additionally, I have shared your site in my social networks

Hi there it's me, I am also

Hi there it's me, I am also visiting this site daily, this site is
really fastidious and the viewers are actually sharing good thoughts.

wonderful issues altogether,

wonderful issues altogether, you simply gained a logo new reader.
What might you suggest about your put up that you made a few days in the past?
Any positive?

If some one desires expert

If some one desires expert view concerning running a
blog afterward i propose him/her to pay a quick visit this blog, Keep
up the good job.

I used to be recommended this

I used to be recommended this website via my cousin. I am no longer sure whether this submit is written by means
of him as no one else recognize such specific about my trouble.
You are amazing! Thank you!

Another purpose is that you

Another purpose is that you are giving incentives for many other players to remain in the hand.
Poker is the high yielding senior member of card games.

Is bluffing useful when all the other players verify or should you try to snare your competitors as soon as you are dealt a
hand? You can turn many games into writing video games
for kids. And if you are addicted to poker, find help immediately.

Unquestionably believe that

Unquestionably believe that which you said. Your favorite reason appeared to be on the internet the easiest thing to be aware of.
I say to you, I definitely get annoyed while
people think about worries that they plainly don't know about.
You managed to hit the nail upon the top and also defined out
the whole thing without having side effect
, people could take a signal. Will likely be back to get more.

Thanks

Great article.

Great article.

This site was... how do I say

This site was... how do I say it? Relevant!! Finally I have found something which helped
me. Cheers!

It's an amazing article in

It's an amazing article in favor of all the internet users; they will take advantage from it I am sure.

It's going to be ending of

It's going to be ending of mine day, but
before ending I am reading this impressive piece of writing to increase my knowledge.

Simply considered a few of

Simply considered a few of your images (: i'm really happy
i reached job shadow you. You're terrific! http://journals.cincader.org/index.php/eesj/comment/view/68/0/197548

For latest information you

For latest information you have to pay a visit world-wide-web and on the web I
found this website as a best web page for most recent updates.

Wonderful beat ! I would like

Wonderful beat ! I would like to apprentice while you amend your
site, how could i subscribe for a blog site?
The account helped me a acceptable deal. I were tiny bit acquainted of this your broadcast provided vibrant clear concept

I feel that is one of the

I feel that is one of the such a lot significant info for
me. And i'm glad reading your article. But should commentary on few common things, The web site style is great, the articles
is in reality great : D. Excellent activity, cheers

Thanks in favor of sharing

Thanks in favor of sharing such a good thinking, paragraph is pleasant, thats why i have read it
entirely

I am in fact happy to read

I am in fact happy to read this webpage posts
which consists of plenty of helpful data, thanks for providing
these kinds of data.

Every weekend i used to go to

Every weekend i used to go to see this site, for the reason that i
want enjoyment, since this this web page conations genuinely good funny material too.

Hmm it seems like your blog

Hmm it seems like your blog ate my first comment (it was super long) so I guess I'll just sum it up what I
had written and say, I'm thoroughly enjoying your blog.
I too am an aspiring blog writer but I'm still new to everything.
Do you have any tips and hints for newbie blog writers?
I'd genuinely appreciate it.

Right away I am ready to do

Right away I am ready to do my breakfast, after having my breakfast coming again to read
additional news.

Awesome things here. I am

Awesome things here. I am very glad to look your post. Thanks so much and I'm taking a look forward to contact you.
Will you please drop me a e-mail?

Thank you a bunch for sharing

Thank you a bunch for sharing this with all folks you actually
know what you are talking about! Bookmarked.

Kindly additionally discuss with my website =). We may have a link trade agreement between us

My brother suggested I may

My brother suggested I may like this blog. He was entirely right.
This publish truly made my day. You cann't consider simply how a lot
time I had spent for this information! Thank you!

That is very fascinating,

That is very fascinating, You're a very skilled blogger.

I've joined your rss feed and look forward to in the hunt for extra of your fantastic
post. Additionally, I have shared your web site in my social networks

What's Going down i am new to

What's Going down i am new to this, I stumbled upon this I've discovered It positively helpful
and it has helped me out loads. I am hoping to contribute & help different customers like its
aided me. Good job.

Everything is very open with

Everything is very open with a very clear explanation of the challenges.
It was really informative. Your site is extremely helpful.
Thanks for sharing!

It's a shame you don't have a

It's a shame you don't have a donate button! I'd certainly donate to this excellent blog!
I suppose for now i'll settle for book-marking and adding your RSS feed
to my Google account. I look forward to brand new updates and will talk about this website with my Facebook group.
Chat soon!

Very good info. Lucky me I

Very good info. Lucky me I found your website by
chance (stumbleupon). I have saved it for later!

I quite like looking through

I quite like looking through an article that can make people think.
Also, thanks for allowing for me to comment!

I'm impressed, I must say.

I'm impressed, I must say. Seldom do I encounter a blog that's both equally educative and engaging, and let me tell
you, you've hit the nail on the head. The problem is something
which not enough folks are speaking intelligently about.
I am very happy I stumbled across this in my hunt for something concerning this.

With havin so much content do

With havin so much content do you ever run into any problems of plagorism or copyright violation? My site has
a lot of completely unique content I've either written myself or outsourced but it looks like a lot of it is
popping it up all over the internet without my authorization. Do you know any solutions to help stop
content from being ripped off? I'd certainly appreciate it.

It's impressive that you are

It's impressive that you are getting thoughts from this
article as well as from our discussion made at
this time.

Great post! We are linking to

Great post! We are linking to this great content
on our site. Keep up the great writing.

Thanks for the good writeup.

Thanks for the good writeup. It in fact was once a enjoyment account it.

Look advanced to more introduced agreeable from you!
However, how can we keep in touch?

Asking questions are

Asking questions are genuinely good thing if you are not understanding something fully,
except this post gives good understanding yet.

It's really very complex in

It's really very complex in this full of activity
life to listen news on TV, thus I only use internet for that reason, and get the newest news.

I am regular visitor, how are

I am regular visitor, how are you everybody? This post posted at this website is in fact pleasant.

What's up friends, pleasant

What's up friends, pleasant article and pleasant
arguments commented at this place, I am really enjoying by these.

Definitely consider that that

Definitely consider that that you said. Your favorite reason appeared to be
at the net the easiest factor to remember of. I say to you, I definitely get annoyed even as other people think about worries that
they plainly do not recognise about. You managed to hit the nail upon the top and also defined
out the whole thing with no need side-effects , folks could take a signal.

Will probably be back to get more. Thanks

An impressive share! I've

An impressive share! I've just forwarded this onto a colleague who was doing
a little research on this. And he actually ordered me breakfast because I discovered
it for him... lol. So let me reword this.... Thank YOU for the meal!!
But yeah, thanx for spending time to talk about this issue here on your site.

I'm extremely pleased to

I'm extremely pleased to discover this site.
I wanted to thank you for your time for this particularly fantastic read!!
I definitely loved every little bit of it
and i also have you bookmarked to look at new things on your website.