[tmql-wg] Result set requirements

Dmitry dmitryv@cogeco.ca
Mon, 23 Feb 2004 21:26:21 -0500


>
> Introducing all TMDM data structures would probably add another
> type dimension into TMQL.
>
> --
>
> One option we have is to treat this as "language pragma"
>
>   pragma INTERFACE_MODEL (TMDM)
>   return $t/bn   # returns basename item
>
>   pragma INTERFACE_MODEL (simple)
>   return $t/bn   # return string
>
>   pragma INTERFACE_MODEL (maplet)
>   return $t      # returns topic as part of a maplet
>
> only allowed on the outest level so that it does not affect language
> semantics, but only interface semantics.
>
> Or, to choose a reasonable default and use 'ATTRIBUTE'
> (meta-information on data):
>
>   return $t/bn'TMDM   # returns basename as item
>   return $t/bn        # default is stringification
>   return $t/bn'VALUE  # same
>
>

I am not sure about Toma and AsTMa but in TMPath I have special 
'shortcuts' which help to get and return values.

If I need base name node I use:

$topic/bn[<name type>] or just $topic/bn

If I need value I use $topic/bn::<name type> or $topic/bn::*

TMPath provides access and allow to return TMDM constructs.

For example, long path:
$topic/roleOf[who]/association[born-in]/role[where]/topic[city]
goes by all TMDM nodes.

But there are also 'shortcuts' which help to move in 'hyper space'.

$topic/roleOf::who[born-in]/role::where[city]

or   $topic/who[born-in]/where[city]

or (with binary projection bornIn for association born-in)

$topic/bornIn[city]

Detailed paths are used typically in questions with introspection.

Shortcuts are used when I know types of names, occurrences, roles and 
associations and I am interested in "values".

I think that "full" result sets such as XML, TopicMaps/fragments and 
tables can be reasonably easy integrated with host environment.
XML->DOM or SAX
Topicmap -> TMAPI based set of classes
tuple streams -> lists or streams or cursors

I am not so sure about partial results such as list of base names. 
Partial results are useful between TMQL layers (TOLOG->TMTL)
But I do not see "standard" way of integration of partial results with 
hosting languages.


Dmitry