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.

Hello, juist wɑnted to

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

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.

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...

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 don’t want to

I don’t want to Claremont
Well I always get hurt
Be an angle of open graves
Fumble through this year
If it back to your voice
Your

I am regular visitor, how are

I am regular visitor, how are you everybody?
This post posted at this site is genuinely good.

What a data of un-ambiguity

What a data of un-ambiguity and preserveness of valuable familiarity concerning unexpected
emotions.

WOW just what I was searching

WOW just what I was searching for. Came here by searching for
more details

Ciekawy post, ogólnie się z

Ciekawy post, ogólnie się z Tobą zgadzam, jednak w niektórych kwestiach bym się kłóciła.
Na pewno sam blog zasługuje na uznanie. Myślę, że tu jeszcze wpadnę.

Fine way of explaining, and

Fine way of explaining, and pleasant article to get
facts about my presentation subject matter,
which i am going to convey in college.

Good way of telling, and good

Good way of telling, and good piece of writing to take facts on the
topic of my presentation subject matter, which
i am going to deliver in university.

Starting your very own eBay

Starting your very own eBay business isn't hard if
you put your heart and soul into it. Use some
of the many website optimization tools nowadays on marketplace. http://www.etnzn.com/comment/html/?523.html

If some one needs expert view

If some one needs expert view regarding blogging then i propose him/her to
pay a visit this webpage, Keep up the pleasant work.

This article is really a nice

This article is really a nice one it helps new the web people, who are wishing in favor of blogging.

kte

I get along really well with

I get along really well with other active dog's.
Yes, you desire to feature your visual careers. I bet realize there are only what I mean! Telling
yourself fight is buried only undermines you. http://Jinyashengg.com/comment/html/?108232.html

Thanks for any other

Thanks for any other excellent post. Where else may just anyone
get that type of info in such a perfect approach of writing?
I've a presentation subsequent week, and I'm at the search for such info.

Pingback

[...] http://www.mdp.state.md.us/msdc/PFA/Resid_Growth/by_County/howa_ParcelAcres1940_2007.xls http://www.antforge.org/blog/2010/10/25/waql-pp-preprocessor-data-aggregation-query-language http://www.flickr.com/groups/inspiration_faith_wisdom [...]

Hi there, the whole thing is

Hi there, the whole thing is going perfectly here and ofcourse every one is sharing facts, that's in fact
fine, keep up writing.

ROB: Nobody is the most well

ROB: Nobody is the most well organized podcast, though
I think we start a good job of masking that. The Romans only had VHF
and three black and white channels -- all in Latin. The records I've heard to date are unimaginable. https://pruebasatelite.000webhostapp.com/index.php?action=profile;u=18291

Aw, this was an incredibly

Aw, this was an incredibly good post. Finding the time and actual
effort to produce a great article… but what can I say… I procrastinate a lot
and don't manage to get anything done.

Understand these 3 parts you

Understand these 3 parts you may have no trouble at
all bring far more traffic. We could tell the direction belonging to the
sound, but somehow, Received off track again. Forums bring
people together to talk about topics. http://www.kongyaji4s.com.cn/comment/html/?3241.html

An interesting discussion is

An interesting discussion is worth comment. I believe
that you need to publish more about this subject, it might not be a taboo matter but usually people do not discuss these
topics. To the next! Many thanks!!

Pingback

[...] of WAQL-PP, a WAQL Preprocessor for Java I was working on for the last two weeks. In one of the former posts I described the motivation behind this little project and how I planned to implement it. I’m [...]

I'm amazed, I must say.

I'm amazed, I must say. Rarely do I come across a blog that's
both equally educative and amusing, and without a doubt, you have hit the nail on the head.
The issue is an issue that too few people are speaking intelligently about.
Now i'm very happy that I found this during my search for something concerning this.

Very quickly this web page

Very quickly this web page will be famous among all blogging viewers,
due to it's nice content

Excellent website. Lots of

Excellent website. Lots of helpful info here. I'm sending it to a few friends
ans also sharing in delicious. And naturally, thanks in your effort!

Right here is the perfect

Right here is the perfect site for anyone who really wants to understand
this topic. You realize so much its almost tough to argue with you (not that I actually would want to…HaHa).
You certainly put a brand new spin on a subject that has
been written about for many years. Excellent stuff, just excellent!

Pingback

[...] text was crossposted to my personal blog as well. ShareSave Tagged as: JavaCC, WAQL, WS-Aggregation, XQuery Leave a [...]

Hi to every , since I am

Hi to every , since I am truly keen of reading this
website's post to be updated daily. It includes nice material.

Pingback

[...] of WAQL-PP, a WAQL Preprocessor for Java I was working on for the last two weeks. In one of the former posts I described the motivation behind this little project and how I planned to implement it. I’m [...]

Every one wishes to love hot

Every one wishes to love hot girls. They keep nurturing dream of dating a lovely Beirut escort girl.
But to the hard luck of many, beautiful girls have lot of followers behind them.
You might be lucky but chances are slim and competition is stiff.

What's up it's me, I am also

What's up it's me, I am also visiting this website regularly,
this site is in fact nice and the viewers are genuinely sharing
fastidious thoughts.

Hello colleagues, its

Hello colleagues, its enormous piece of writing regarding tutoringand fully defined, keep it up all the time.

Hi I am so glad I found your

Hi I am so glad I found your webpage, I really found
you by error, while I was browsing on Google for something
else, Anyhow I am here now and would just like to say thank you for a tremendous post and a all
round exciting blog (I also love the theme/design), I don't have time to read it all at the minute
but I have saved it and also included your RSS feeds, so when I have time I will
be back to read a lot more, Please do keep up the excellent job.

Ciekawy artykuł, ogólnie się

Ciekawy artykuł, ogólnie się z Tobą zgadzam, choć w kilku kwestiach bym
się kłóciła. Z pewnością Twój blog zasługuje na szacunek.
Z pewnością tu wrócę.

Good day! Wonderful post! I

Good day! Wonderful post! I enjoy the method that you outlined
Reply to comment | antforge.org. Amazing article and thus nice
document! Obviously that the new journalist is normally
qualified and contains a nice knowledge of developing.

Ought to have have a very art! I have to be very nearly in the
developing as you, except it’s certainly not these cup of tea .

It'll make me and my friends structure records furthermore articles by means of different businesses.
In case you are concerned with the following, look for lots of reviews
more income this one relationship youtube.com.
This website holds each day get a experienced producing company

What's up all, here every

What's up all, here every person is sharing these experience,
therefore it's good to read this blog, and I used to visit
this weblog all the time.

Pingback

[...] post:  WAQL-PP: Preprocessor for a Data Aggregation Query Language … By admin | category: VIENNA University of Technology | tags: distributed, language, [...]