[topicmapmail] LTM 1.3 Change Proposal
Lars Marius Garshol
larsga@ontopia.net
Fri, 21 Jan 2005 11:33:18 +0100
* Lars Marius Garshol
|
| [untyped associations, occurrences, and association roles]
|
| We strongly feel that this should not have been in XTM 1.0 to begin
| with, and we very much do not want this to be supported by LTM.
* Murray Altheim
|
| This seems to entirely forget the impetus that intelligently lead to
| the decision taken in XTM 1.0 to not require typing on associations
| and occurrences, as well as a number of other optional but generally
| necessary features. It was (to my recollection) considered by the
| group the domain of a constraint language, not an interchange
| syntax, to prohibit this sort of thing. Nor to my recollection were
| these "strong feelings" voiced during the development of XTM. I seem
| to remember everyone understanding the reasoning behind not
| constraining XTM 1.0 any more than we did. Interchange syntax, not
| constraint language.
I think we (Geir Ove and myself) did raise these concerns at the time,
but that the standard "there may be unknown things during TM editing"
answer pacified us. I now think we were wrong to accept that answer.
As for constraints I think that's a different issue. Allowing untyped
constructs increases implementation and model complexity, and I can't
see that it provides any gain at all. In fact, very much the opposite,
since I don't think anyone really knows what untyped constructs (and
missing role players, for that matter) really *mean*.
So even if XTM 1.0 were right on this, XTM 1.0 only did the job
half-way.
| During many stages of a Topic Map's life cycle there are things that
| are simply unknown. For example, we allow empty <member> objects
| simply because it's got to be possible to create an empty
| association before one can populate it.
It's true that while editing there are things that may be unknown, but
that doesn't necessarily mean that allowing role players to be omitted
is right.
Firstly, if you don't know who is at the other end of the association,
why are you creating it at all? What's the point?
Secondly, assuming there *is* a reason to create the association, why
not create an "unknown" topic there? This should be trivial in any
half-way decent editing tool, and it is better than having a dummy,
because it means the author must make commitments regarding which of
the NULL topics are the same and which are different. With a 25 NULL
topics you have no idea whether this is 1 topic or 25 topics.
| By the same token, not all associations or occurrences have known
| types. Sometimes, one simply knows that a given resource is an
| occurrence of a Topic -- the type may be added later, or not at
| all. Providing no way to specify typeless associations or
| occurrences just leads users to create dummy types in order to
| create a workaround for the (at that point, inappropriate)
| constraint.
It does lead them to create dummy types, but what's wrong with that? I
think dummy types are very much to be preferred, because, again, it
means the author makes some commitments to which missing types are the
same and which ones are different. At present, this is all just
undefined. Also, adding a dummy type should be a negligible amount of
work.
| If we prohibit incomplete information, we just make it much more
| difficult for users to finally fill that information in.
How?
| This kind of constraint is even more of a problem for LTM as an
| authoring language, where people may just be beginning to create a
| Topic Map and not have all the pieces together yet.
Every time that's happened I've simply typed "unknown1", "unknown2",
and suchlike into the file, and it's never even come within a thousand
miles of being an issue, let alone a problem. Nor have I ever heard
any user complain or even mention this as a problem, so I don't really
know where you get this from. You've never requested this feature, for
example.
| If one wants to write a feature into an Topic Map application that
| flags untyped associations and occurrences, that's one thing, but it
| doesn't belong in either an authoring or interchange syntax.
It's not about flagging anything, it's about keeping the syntax and
the model simple, and also about helping people be clear on what they
know and don't know.
--
Lars Marius Garshol, Ontopian <URL: http://www.ontopia.net >
GSM: +47 98 21 55 50 <URL: http://www.garshol.priv.no >