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.

Right away I am ready to do

Right away I am ready to do my breakfast, later than having my breakfast coming again to read further
news.

Thanks for finally writing

Thanks for finally writing about >Reply to comment | antforge.org <Liked it!

Can I simply say what a

Can I simply say what a comfort to uncover someone that genuinely understands what they are talking
about on the internet. You actually realize how to bring
a problem to light and make it important. A lot more people should look
at this and understand this side of the story.
It's surprising you aren't more popular since you surely
possess the gift.

This is really fascinating,

This is really fascinating, You are an excessively skilled blogger.
I've joined your feed and look forward to searching for extra of your great post.
Additionally, I have shared your website in my social networks

Thanks for another great

Thanks for another great post. The place else may anyone get that
kind of information in such an ideal method of writing?
I have a presentation subsequent week, and I'm on the look for such information.

I have read so many posts

I have read so many posts concerning the blogger lovers however this post is
really a nice paragraph, keep it up.

Wonderful goods from you,

Wonderful goods from you, man. I've consider your stuff previous
to and you're just extremely fantastic. I actually like what you have received here,
really like what you're stating and the way in which during which you assert
it. You make it enjoyable and you still care for to stay it smart.
I cant wait to learn far more from you. This is actually a great
site.

We absolutely love your blog

We absolutely love your blog and find nearly all of your post's to be just what I'm looking for.
Would you offer guest writers to write content for you?
I wouldn't mind producing a post or elaborating on some of the subjects you write regarding here.
Again, awesome web log!

Very good website you have

Very good website you have here but I was wanting to know if you knew of any community forums that cover the same
topics discussed in this article? I'd really like to be a part of community where I can get comments from other knowledgeable individuals that share the same
interest. If you have any suggestions, please let me know.
Appreciate it!

Hurrah! Finally I got a

Hurrah! Finally I got a weblog from where I can actually get
valuable data regarding my study and knowledge.

Hello to every body, it's my

Hello to every body, it's my first visit of this blog; this website carries amazing and actually excellent data
for readers.

Very rapidly this web site

Very rapidly this web site will be famous amid all
blog visitors, due to it's pleasant articles

What's up friends, how is the

What's up friends, how is the whole thing, and what you desire to say about this
piece of writing, in my view its genuinely amazing for me.

My family members always say

My family members always say that I am wasting my time here
at net, however I know I am getting familiarity daily by reading
thes nice content.

Thank you for the good

Thank you for the good writeup. It in truth used to be a amusement account it.

Glance complicated to far added agreeable from you! By the way, how could we
be in contact?

You will have to enter each

You will have to enter each Hyperlink to know about its SEO statistics.

You need to participate on these sites to announce your
goods and services among the world audiences.
This book covers the easy yet productive. http://bbs.dedecms.com/goto.php?url=HTTP://kiosk.magkmusic.com/component...

Article writing is also a

Article writing is also a excitement, if you be familiar with then you can write otherwise it is complex
to write.

Remarkable! Its really

Remarkable! Its really amazing article, I have got
much clear idea on the topic of from this post.

Hey there this is somewhat of

Hey there this is somewhat of off topic but I was wondering
if blogs use WYSIWYG editors or if you have to manually code with HTML.
I'm starting a blog soon but have no coding know-how so I wanted to get advice from someone with experience.
Any help would be enormously appreciated!

Hey very cool site!! Man ..

Hey very cool site!! Man .. Excellent .. Wonderful .. I will bookmark your
site and take the feeds also? I am happy to search out so many helpful info here within the post,
we'd like develop more techniques on this regard, thank
you for sharing. . . . . .

An intriguing discussion is

An intriguing discussion is worth comment. I believe that
you should publish more on this issue, it may not be a taboo subject but typically people do not speak about
these issues. To the next! All the best!!

Magnificent beat ! I wish to

Magnificent beat ! I wish to apprentice even as you amend your web site, how could i subscribe for a blog site?
The account helped me a applicable deal. I had been a little bit
acquainted of this your broadcast provided brilliant transparent concept

Remarkable things here. I'm

Remarkable things here. I'm very happy to look your post. Thank you so much and I am looking forward
to touch you. Will you kindly drop me a e-mail?

Simply wish to say your

Simply wish to say your article is as astounding.
The clearness to your submit is simply cool and i can assume you are
knowledgeable on this subject. Fine with your permission allow me to take
hold of your RSS feed to keep updated with forthcoming post.

Thanks a million and please carry on the enjoyable work.

Hello to all, the contents

Hello to all, the contents existing at this web page are actually awesome for
people knowledge, well, keep up the nice work fellows.

It's a shame you don't have a

It's a shame you don't have a donate button! I'd most certainly donate to
this superb 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 share this blog with
my Facebook group. Talk soon!

If you are going for finest

If you are going for finest contents like I do, only pay a visit
this web site all the time because it gives feature contents, thanks

Hi there colleagues, how is

Hi there colleagues, how is everything, and what you
desire to say concerning this paragraph, in my view its actually remarkable designed for me.

This is the perfect blog for

This is the perfect blog for anybody who wishes to find out about
this topic. You know so much its almost tough to argue
with you (not that I actually will need to…HaHa). You certainly put a brand new spin on a topic which has been written about for
decades. Great stuff, just wonderful!

Great information. Lucky me I

Great information. Lucky me I recently found your blog by accident (stumbleupon).
I've saved as a favorite for later!

Why visitors still use to

Why visitors still use to read news papers when in this technological globe the whole thing is existing on net?

Good way of telling, and

Good way of telling, and fastidious paragraph to obtain information concerning my presentation focus,
which i am going to deliver in academy.

Awesome blog you have here

Awesome blog you have here but I was wanting to know if you knew of any user discussion forums that cover the same
topics discussed here? I'd really love to be a part of online community where I can get responses
from other knowledgeable people that share the same interest.

If you have any suggestions, please let me know.
Thanks a lot!

Definitely consider that that

Definitely consider that that you said. Your favourite reason seemed to be on the internet
the easiest thing to remember of. I say to you, I definitely get annoyed while other people
consider worries that they plainly don't realize about.
You controlled to hit the nail upon the top and defined out the whole
thing without having side effect , people could take a signal.
Will probably be back to get more. Thanks

Pretty! This has been an

Pretty! This has been an extremely wonderful article.
Thank you for providing these details.

I have read so many articles

I have read so many articles about the blogger lovers except this post is really a pleasant post, keep it up.

Do you mind if I quote a few

Do you mind if I quote a few of your posts as long as I provide credit and sources back
to your website? My website is in the exact same niche as yours and my users would genuinely benefit from
a lot of the information you provide here. Please
let me know if this ok with you. Thanks a lot!

wonderful post, very

wonderful post, very informative. I ponder why the opposite specialists of
this sector don't realize this. You must continue your writing.

I'm sure, you've a great readers' base already!

I believe everything said

I believe everything said made a bunch of sense.
However, what about this? suppose you were to write a awesome headline?
I mean, I don't want to tell you how to run your website, but suppose you
added something to possibly get a person's attention? I mean Reply to comment
| antforge.org is a little boring. You should look at Yahoo's front page and see how they create news headlines to get people interested.

You might add a related video or a related
pic or two to get people excited about what you've got to say.
Just my opinion, it might bring your blog a little bit more interesting.

I'm amazed, I must say.

I'm amazed, I must say. Seldom do I encounter a blog that's both educative and engaging,
and let me tell you, you've hit the nail on the head.
The issue is something too few men and women are speaking intelligently about.
I am very happy that I found this during my search for something regarding this.

Wow, that's what I was

Wow, that's what I was looking for, what a information! present here at this weblog, thanks admin of
this site.

What's up, after reading this

What's up, after reading this remarkable piece of writing i am also happy to
share my familiarity here with colleagues.

Appreciating the dedication

Appreciating the dedication you put into your website and
in depth information you offer. It's good to come across a blog every once in a while that isn't the same old rehashed material.

Wonderful read! I've bookmarked your site and I'm including your RSS feeds to my Google account.

There is definately a lot to

There is definately a lot to know about this issue.

I love all of the points you made.

Amazing! Its genuinely

Amazing! Its genuinely awesome article, I have got much
clear idea regarding from this post.

Hey there, You've done a

Hey there, You've done a fantastic job. I'll certainly digg it and personally recommend to
my friends. I am confident they'll be benefited from this web site.

If some one desires expert

If some one desires expert view regarding running a blog
after that i propose him/her to go to see this blog, Keep up the pleasant work.

What a data of un-ambiguity

What a data of un-ambiguity and preserveness of valuable familiarity on the topic of unexpected feelings.

I've been exploring for a bit

I've been exploring for a bit for any high-quality articles or blog posts in this sort of house
. Exploring in Yahoo I eventually stumbled upon this
site. Studying this information So i'm satisfied to show that I've an incredibly excellent uncanny feeling I discovered exactly what
I needed. I most without a doubt will make certain to do not overlook this site and give it a look regularly.

I've learn a few excellent

I've learn a few excellent stuff here. Certainly price bookmarking for revisiting.
I surprise how much effort you set to make any such wonderful informative site.