[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