Got a new toy: XQP (XML Query Processor) project

| 6 Comments | No TrackBacks

Well, I was talking about it a lot and finally decided to stop rambling and start doing. Here is my new toy: XQP project. XQP stands for XML Query Processor of course. It's going (if my karma is good enough) to be free open-source XPath2.0/XQuery1.0/XSLT2.0 engine for the .NET platform. SourceForge team kindly approved the project and now we have everything to deliver a killer application!

The main idea behind XQP is to develop a single core runtime engine based on XPath2.0/XQuery1.0 algebra and then to provide XPath 2.0, XQuery 1.0 and XSLT 2.0 compilers for that engine. It's not something brand new of course. Saxon implements both XSLT 2.0, XPath 1.0 and XQuery 1.0 with a single engine. Microsoft went even further ineventing Common Query Runtime (CQR) and common intermediate format (QIL) and implementing its bits in Whidbey as System.Xml.Query. I believe that's a mainstream design pattern, very obvious considering the XPath/XQuery intimacy and XQuery/XSLT functional overlap.

There are some issues I'd like to be clear.

What for? Why not to wait .NET 2.0?
Well, it was announced that System.Xml v2.0 won't support neither XSLT 2.0 nor XPath 2.0. Being XSLT and .NET aficionado I can't imagine the situation when Java has XSLT 2.0 and .NET doesn't. If Microsoft can't deliver it - we can do it.

What's wrong with Saxon.NET?
Well, nothing wrong, cool project. I just don't believe in effective porting of any big system. Saxon is too tied to Java. And after all porting is so boooooring, while I enjoy to develop :)

Why new project?
I considered starting XQP as part of Mvp-Xml project or even Mono, but realized that due to experimental nature of the project I want to rule the it by myself.

Isn't it too huge project? Well, I'm not afraid of it. I was participating in developing two XSLT 1.0 processors (a commercial one and an open-source one) and being Apache committer I was watching closely how the Xalan is cooking. There is nothing scary in implementing XPath or XSLT, all standard techniques like building optimizing compilers apply, after all it's just another programming language to implement, probably the most interesting task for a programmer.

Needless to say, everybody interested is invited to participate. We are currently in the team gathering and initial planning stage. And by the way, we are receiveing donations. If you can't help us developing, but want to support the project - you can donate some money to the XQP project.

Related Blog Posts

No TrackBacks

TrackBack URL: http://www.tkachenko.com/cgi-bin/mt-tb.cgi/310

6 Comments

So may want to join XQP project, shailesh.

That's the way to go.

I implemented an XQuery engine in C# 1 yr back..with SQL extensions. It was tremenmdous fun and gratifying. I also found writing a hand-coded parser much more rewarding than using parser-generators. One has full control over optimizations. Creating something like QIL would be a great start as well.

Good luck.

Shailesh

I'm really sorry you get it this way :(

My point was to have XQP project independent - to draw new developers from both MSFT world and Mono world and just XSLTers from the xsl-list and this is easier with a separate project.

Well, what's done is done anyway.

Being an admin on the Mvp.Xml project just like the rest of us, I can't imagine what more control you'd have need...
Anyway, good luck with it! I bought Kay's XPath 2.0 book and was willing to jump on an XPath 2.0 implementation myself... but I'll stick to Mvp.Xml project... I don't have the time and energy to push more than one OS project at a time, sorry :(

Just give me your sourceforge user name!

Hey! I'd love to get in on helping this out. It definitely sounds like a fun project.

Leave a comment