[tmql-wg] Result set requirements
Robert Barta
rho@bigpond.net.au
Fri, 20 Feb 2004 21:29:42 +1000
On Thu, Feb 19, 2004 at 08:57:49PM +0100, Rani Pinchuk wrote:
> > From Lars:
> > - information need
> > - describe desired result set as query and send of to server
> > - server extracts result set (essentially a subset of the queried
> > map) and sends it off to client
> > - client TMQL library turns (however serialized) result set into
> > a topic map object
> > - client uses API as desired
>
> I am not sure that I understood this - Do you mean that you return
> light topics (so let's say, for a base names query you return the
> resulted topic objects where only their base names are populated), or
> light topic map (so you return full topic objects, but only the ones
> that are resulted from the query)?
Or both.
Consider the symmetry and its consequences if we allow TMQL also
to generate TMs out off a TM-server:
- in the simplest case the query simply extracts the requested
information from the backend and creates a small sub-map with
all the required information. That is returned to the application
and that will use a TM API for processing.
- in the general case the query may create a completely new TM. This
means that TMQL is a TM-to-TM transformer. The new TM can be following
a completely different ontology that the original TM.
[ I once tried an experiment at
http://astma.it.bond.edu.au/junk/bibtex-use-case.dbk?section=4 ]
> However, if the intention is to generate _different_ XMLs and
> other formats, so custom XMLs for a query, or for an application,
> I would suggest to create those XML (or other textual outputs)
Again, this is NOT textual!
> outside of the TMQL engine: The TMQL will generate the result sets,
> the API will get them, and then in the environment that the user is
> used to, a generator of XML with that data will be written.
>
> What I try to avoid is that TMQL should generate a custom formats like
> the one described in
> http://www.y12.doe.gov/sgml/sc34/document/0449.htm#id2612104.
>
> The reason is that I think that the scope of TMQL should be retrieving
> data from Topic maps and not generation of XML from data.
But _generating data_ is one of the main tasks of a query language.
SQL does this:
SELECT name, age FROM ....
^^^^^^^^^^^^^^^^
generates a new table
XQuery does this
let $authors := /book/author
return
<AUTHORS>
{
$authors
}
</AUTHORS>
generates new XML
So why should not TMQL generate something which the application
can directly post-process?
And pretty much every major DB vendor now allows the generation of XML
__DIRECTLY__ from the data. Exactly because it is such a frequent
operation and creating XML 'manually' is booooooooooooring. :-)
\rho