[tmql-wg] TMQL Proposal
Lars Marius Garshol
Mon, 31 Jan 2005 11:19:15 +0100
* Kal Ahmed
| Graham and I have published a paper proposing a different approach
| to topic map querying. Rather than define a new query language, we
| define a relational view of the topic map data model which can then
| be queried using a standard relational query language such as SQL.
I have read through the paper now, and while I find it interesting I'm
skeptical about proposing a set of SQL views as the standard TMQL, for
a number of reasons.
One is that the solutions to the use cases are very complicated
compared to those for the bespoke TMQLs, and, frankly, the use cases
are simple queries compared to those generally found in real
You've put forward the argument of familiarity as an argument for
choosing TMRQL, but the solutions to the use cases use advanced SQL of
a kind that isn't familiar to many developers.
Another problem is that although SQL-92 is a standard, few databases
actually follow the standard, and so TMRQL would not provide
portability. If we used SQL-92 we wouldn't need to define ORDER BY
ourselves, but NULLs sort differently in different databases (etc
etc), and so portability is compromised.
There's also the issue of what people who don't implement on top of a
relational database (and there are some of those, and likely to be
more in the future) should do. Requiring them to implement SQL-92 in
its full glory doesn't seem too attractive.
I do think some of your concerns are valid, though, and we really
should work to ensure that we have a sound conceptual foundation, that
implementing TMQL isn't too hard, that it isn't difficult to learn,
and, where possible, that it fits well into existing utilities and
The question I'm left with here is: why not just implement a TMQL-to-
TMRQL compiler? TMRQL makes perfect sense to me as a way to implement
TMQL, but as the standard I have all the above concerns with it.
Lars Marius Garshol, Ontopian <URL: http://www.ontopia.net >
GSM: +47 98 21 55 50 <URL: http://www.garshol.priv.no >