[tmql-wg] Result set requirements

Dmitry dmitryv@cogeco.ca
Wed, 25 Feb 2004 21:06:48 -0500

From: "Lars Marius Garshol"
> |
> | I personally prefer explicit XQuery-like constructors.
> |
> | We can have constructors for XML, lists and Topic Maps as default set.
> |
> | And we can allow to provide additional set of constructors (wiki
> | pages, for example)
> |
> | Constructors, I think, can be mixed with any "select" query language.
> That's an interesting idea, I think. Personally, I'm not clear on what
> I prefer, but it would be interesting to see the constructor approach
> and compare it with what AsTMa? does.
> I have to admit I hadn't thought of this myself, but it does seem that
> you can do TM -> TM transformations even with something as un-tm-ish
> (to use Robert's terminology :) as tolog. I already had an idea for TM
> constructors for tolog, but didn't think of them being used in this
> way.

I am thinking about something like this (I just rewrote my TMPath
implementation using Tolog for "select" queries):


Select only journal papers and deliver them together with the relevant
author associations as
topic map (fragments [xtmfragments]). There is no need to include the author
topics as well.
Replace all occurrences of type publication-date with associations of type
For the date-role the topic players should use ids of the form x-dates-yyyy.

declare default subjectIndicator

        for $JournalPaper in instanceOf($JournalPaper,journal-paper)
        for $IsAuthor in

topic($JournalPaper,$NewTopic){                              ## we construct
new topic based on existing one and $newTopic binds to it
                            retract publication-date($Self,_)
## delete some assertions from $newTopic

association($IsAuthor,_){                                           ##copy
and modify association, association constructor takes care of referencing
"hidden" topics
                         replace role opus{$NewTopic}
was-published-in{                                    ## create new
                         role opus {$NewTopic}
                         role date-role {
                                                 select $PubDate from
                                                 select $NewValue from
                                                 return $NewValue