# [tmql-wg] Comments against TMQL draft 2006-02-22

Robert Barta rho at bigpond.net.au
Sat Mar 10 22:57:13 EST 2007

On Sat, Mar 10, 2007 at 03:20:04PM +0100, Lars Marius Garshol wrote:
> >[Why isn't navigation along axes a QL thing?]
> >
> >Because it is a model thing? The navigation section is the _only_
> >thing in TMQL which touches TMDM. The rest is vanilla query
> >mechanics. This is an indicator for me, that that part might go
> >elsewhere later.
>
> Well. Since we all agree that this won't happen now I think we can
> save time by not discussing this now. (Ie: I don't agree, but it
> doesn't matter now, so I'll concentrate on issues that do matter now.)

It matters in that I am ramping up arguments agains "TMQL is too big". My
line of argumentation is that there is a reason that SPARQL does not contain

- predicates (this is ontology stuff)
- functions (they come externally)
- model match (this is RDF(S) model semantics)

And TMQL is additionally coupled with CTM because it is MUCH harder to
denote maps than triples.

> I understand. That sounds like a way to meet the requirement I hint
> at above. I'm curious why this operator was introduced, though. What
> was the rationale?

The motivation for this shortcut is/was that one may need this a lot
when occurrence values are just missing:

select $person / name,$person / shoesize || "no shoesize"
where ...

It also can come handy if you want to implement a function/predicate with
default values:

likes-to-work-at-university isa tmql:predicate
tmql:where : """
is-employed-at (employee: $person, employer:$employer || bond-uni)
& \$person / salary > "100000000000"^http://en.wikipedia.org/wiki/Papua_New_Guinean_kina
"""

\rho