[sc34wg3] Comments on latest TMRM draft

Lars Marius Garshol sc34wg3@isotopicmaps.org
Thu, 14 Jul 2005 20:52:58 +0200

Rather than respond to other people's comments all the time I figured
I would try writing some comments of my own for once. :-)

--- 1

Term "property": this terminology is confusing. Usually properties and
property instances or property value assignments are considered
different things. Here, "key" means property, while "property" means
property value assignment. This seems backwards compared to the normal
usage of these terms.

--- 1.2

It might be better to do without this section, as anyone who does not
already know these symbols is unlikely to get very far in reading this

"set union" is conventionally represented by U (LaTeX \cup). That
symbol is indeed defined below as simply "union", despite also being
"set union". Suggest using only \cup for "set union".

|| is used to mean "or", but generally LaTeX \lor is used for this.
Suggest using \lor instead.

Single right arrow is used for implication, but the conventional
symbol is double right arrow. (Like the symbol for logical
equivalence, but without the left arrowhead.) What is the difference
between "logical implication" and "implication"?

"subset equals" is usually defined as "true subset of *or* equal to".

The "product" symbol looks wrong. Usually \prod is used for this, and
the symbol given usually means coproduct.

What is the difference between proxy delimiters and set delimiters
when proxies are sets?

--- 1.3

These definitions are meaningless out of context.

--- 2

The order of presentation does not seem optimal. It seems best to
start at the bottom and build up instead of starting in the middle.
The order of presentation used defines proxies in terms of properties,
which are not defined yet, then goes on to define properties without
having defined keys and values, and so on...

To say that "values are unconstrained" seems like hand-waving. At the
very least some minimal conditions have to be spelled out.

Another obvious constraint on id and id-1 seems to have been left out,
which is that for all x in X id-1(id(x)) = x. This may be implied by
the function names, but it seems better to spell it out.

On the identity of proxies: the difficulty here is that in mathematics
there is no way to distinguish between two proxies whose values are
equal. However, the TMDM representation done in the TMRA '05 paper by
Barta and Heuer seems to get into difficulties because of this rule.
Further, it does seem that an uneasy relationship between identifiers
and proxies exists in the current draft.

The proxies defined using the set of natural numbers seems very
misplaced. Firstly, it redefines semantics defined in TMDM. Secondly,
it does not seem to serve any obvious purpose. Thirdly, the
definitions seem grotesquely distorted. Suggest that this be cut

Why cannot keys occur more than once in a property, and why is this
constraint first introduced in the definition of the function keys(x)?
This constraint seems likely to cause difficulties further down the
road. Even if keys *did* occur more than once, the result would still
be a set.

Why does values(x) produce a bag? And shouldn't the definition use
some other formalism to indicate that it produces a bag?

The proxy merge view function should surely be defined on a map rather
than a proxy, given that proxies will occur as values in other
proxies? What is the interaction with the id() function?

--- 3, 4, and 5

The purpose of these clauses is not clear. Some clarification would be

Lars Marius Garshol, Ontopian         <URL: http://www.ontopia.net >
GSM: +47 98 21 55 50                  <URL: http://www.garshol.priv.no >