[sc34wg3] New TMCL slides

Steve Newcomb srn at coolheads.com
Sun Nov 8 12:07:10 EST 2009

Yes, Newcomb is howling in the distance, but not for the reasons Patrick 
probably suspects. It will take a moment to get to my howl; please bear 
with me.

Dmitry and Lars have different views of what constitutes an association 
type. For Dmitry, it's OK for an association type to have a more complex 
model than Lars Marius would prefer to support. In Dmitry's model of 
association modeling, an association type can be, for example,

Association Type T == ( role A, ( role B | role C)) ## a 2-role 
association model in which the second role is one of two role types.

Lars Marius would prefer to see this as two association types:

Association Type T1 == ( role A, role B)
Association Type T2 == ( role A, role C)

(Personally, I'm sympathetic to Lars Marius's view, because his 
"signatures" formulation of association modeling, which I take to be 
that an association type is neither more nor less than a set of role 
types, is for me the best way to think about association types.)

Patrick says something akin to, "Let a hundred flowers bloom." OK, good 
idea, but I'm not sure we have two distinct flowers here.

Maybe Dmitry's requirements can be fulfilled without abandoning the 
"signatures" approach (I like Lars's "signatures" term). If we say that:

Association Type T3 == ( role A, role B, role C)

and additionally provide that role A must always be played (must have a 
role player), and that either role B or role C must be played, but not 
both, then, for whatever reasons Dmitry needs a single association type 
instead of two different ones, he can still have it, and for whatever 
reasons Lars Marius wants to preserve the "signatures" doctrine, it is 
still preserved.

And there's another way to think about this, that *also* arguably serves 
both Dmitry's and Lars Marius's sensibilities:

Association Type T4 == ( role A, role D)

.... wherein the subject of role D is a subject which is the 
amalgamation of the subjects that were called role B and role C, above. 
Theoretically, at least, there's no problem in having a single subject 
which is the ambiguous amalgamation of other subjects that are 
individually regarded as distinct. Of course, the distinction between B 
and C is blurred in D, and if any disambiguation is needed between the 
two different senses of D, in the case of any particular association, 
that disambiguation will have to be supported by a means other than a 
distinction of role type. Seems complex, but the world is a complicated 
place, and the universes of semantics are far more complex still.

I think Patrick is arguing, in effect, that even the latter (I think 
bizarre) T4 approach need not be ruled out. It's a (weird) flower, but 
Patrick says, "Let it bloom." While I can't normally *recommend* the T4 
approach, like Patrick, I can't think of any reason to make it illegal, 
and I *can* think of a reason *not* to make it illegal. The reason is, 
"...there are more things..., Horatio....". I can easily believe that 
Dmitry, for example, knows more things "than are dreamt of" in the 
"signatures" philosophy that I espouse.

Having said all that, now I'm finally ready to howl. In the above 
explanation, I deliberately committed the very blunder I want to howl about.


Serious topic maps should never tolerate exceptions to the "exactly one 
subject per topic" rule, and yet we sometimes openly tolerate it.

Specifically, when we have two association types,

Association Type T1 == ( role A, role B)
Association Type T2 == ( role A, role C)

...the paramount rule that there can be only one subject per topic is 

It's a violation because, if both T1 and T2 are defined, then role type 
A is necessarily forced to be a topic with two different subjects.

It's a violation because the identities of role types and association 
types, considered as subjects, are mutually dependent. I'm not speaking 
about syntax, here; I'm speaking about subjects. What follows is a 
dialog between "Q:" and "A:". "A:" is I. "Q:" is my imaginary partner in 

Q: What on earth are you talking about?

A: Uh, that's hard to explain, but I'll try. A specific relationship 
instance is like a performance of a play. A play has a "dramatis 
personae" -- a set of the roles ("persona" means "mask") that in the 
instance of the performance, are "played".

Q: You mean, like, I have to be able to tell, when I watch the play, who 
is Romeo and who is Juliet?

A: Yes, exactly. Even if, for experimental or political reasons, or 
perhaps because of a misunderstanding of the essential nature of the 
play (or perhaps in order to reveal a deep insight as to the true nature 
of the play), Romeo is played by a female and Juliet by a male, that 
doesn't change the Romeo role or the Juliet role. The identities of 
those roles have nothing to do with the identities of the actors, but 
they have everything to do with the play. The play is what it is because 
the roles are what they are, and the roles are what they are because the 
play is what it is. [That, for me, is Lars Marius's "signatures" 
doctrine in a nutshell. Did I get that right, LMG?]

Q: OK, but I still don't see why role type A violates the "one subject 
per topic" rule.

A: I think now I'm ready to spell it out for you. Consider:

Association Type "Romeo and Juliet" == ( Romeo, Juliet)
Association Type "Tristan and Isolde" == ( Tristan, Isolde)

No problem so far, right? Now consider:

Association Type "Romeo and Juliet" == ( Romeo, Juliet)
Association Type "Tristan und Isolde" == ( Romeo, Isolde)

The problem with the above is that there's no Romeo in "Tristan und 
Isolde". It is of the very essence of Tristan und Isolde that *Tristan*, 
not *Romeo* is one of the roles.

Well, OK, how about:

Association Type "Romeo and Juliet" == ( Romeo/Tristan, Juliet)
Association Type "Tristan und Isolde" == ( Romeo/Tristan, Isolde)

No, that doesn't work, either. Neither play has a speaking part in its 
dramatis personae that is "Romeo/Tristan". Indeed, there is no such 
subject as Romeo/Tristan in the context of either play. No playwright 
has ever created such a role. I would claim that, in fact, it's 
inconceivable that any playwright ever would create such a role, and 
that to create such a role would have undermined Shakespeare's and/or 
Wagner's own purposes in creating their dramas. The whole idea is 

Q: But what if I want to just say:

Association Type "Boy and Girl" == ( Romeo, Juliet)
Association Type "Boy and Girl" == ( Tristan, Isolde)

A: You're confusing yourself, now. You're confusing association types 
with association instances. You've implicitly defined the roles in the 
name of the association type on the left side, and then you've provided 
the roleplayers, not the roles, inside the parentheses on the right 
side. But if I take your insight to be that roletypes can themselves 
play roles in associations, then, yes, sure, of course. We can certainly 
capture the notion that both association types are instances of a 
meta-association-type "Boy and Girl Roles That Appear In A Play", and 
that "Romeo" is an instance of a Boy-type role, and so on. But that's 
all in association-instance-land. The issue we're discussing is in 

Q: I don't understand why you're so mad at me, or why you think this is 
so important.

A: I'm not mad at you, but you're right when you say I think this is 
very important. It goes to the very heart of what topic mapping is all 
about. It is the responsibility of the topic map author to have exactly 
one subject clearly in mind whenever he or she creates a topic.

A play is its roles, and its roles are the play. The identities of the 
roles "Romeo", "Juliet", and the play "Romeo and Juliet" are mutually 
interdependent and completely inseparable from one another. Even if 
somebody writes a play called "Juliet and Isolde", its title roles are 
absolutely not the same roles as the ones defined, respectively, in 
"Romeo and Juliet" and "Tristan und Isolde".

In exactly the same way, the role types of an association type and the 
association type itself are mutually interdependent. A role type in one 
association type absolutely cannot be the same as any role type in any 
other association type.

Q: Well, OK. But you said yourself that somebody could write a play 
called "Juliet and Isolde". What about that?

A: That's just a matter of topic naming. In a topic map, it's OK for two 
topics to have different identities and yet still have a name in common. 
What I'm saying has nothing to do with naming. It has to do with whether 
it can ever be true that two different association types can have a role 
type (reified as a single topic) in common. For me, it's obvious that 
that situation cannot occur, at least not without violating the 
one-subject-per-topic rule. When the syntax of a topic map claims that 
it is happening, something is seriously wrong.

Q: No matter what you say, I'm not going to worry about this. It just 
doesn't matter to me. My topic maps are *my* topic maps, not yours. 
They're as meaningful as I need them to be. If you want to see more 
meaning in them than I put into them, that's your problem, not mine.

A: Well, it's true, what you say. In a few million years, none of this 
will make any difference, in all likelihood. And even in the shorter 
term, it won't matter very much, unless someone uses your topic maps in 
the expectation that there will always be exactly one subject per topic. 
In that case, and if some topics turn out to have more than one subject, 
the credibility of your whole topic map will suffer. The user will have 
to wonder: "What else is compromised, here?" Topic map authors should 
ask themselves why they choose to write topic maps, if they're not going 
to bother to conform to the paramount rule that every topic represents 
exactly one subject. There's nothing more basic than that.

For me, anyway, a topic map, as a whole, is necessarily consistent with 
*some* vision of *some* universe of distinct and identified subjects, 
and is expressed in a way that corresponds to that universe in such a 
way that there is exactly one subject per topic. Does anybody disagree 
with that?

Q: You ask too much. Anybody who takes topic mapping as seriously as you 
do should have his head examined.

A: Yes, true enough, I should have my head examined. But for me, 
one-subject-per-topic is as fundamental, and it's fundamental to 
disclose role types If the foundation of a topic map is flawed, it's 
inherently unreliable, and it may well be a waste of time, or worse, to 
attempt to use it for some serious purpose.

Q: Are you saying anything, here, that has any relevance to the 
standardization of Topic Maps, and to TMCL specifically?

A: Yes. In my view, it should always be an error for a topic map, or a 
TMCL constraint, or any text or example in any part of the family of 
standards, to claim or imply that a single role type can appear in more 
than one association type. (My very first example, T1/T2 above, is an 
example of an offending example.) It's just not logically possible for 
that to be anything but an error, ever, unless maybe the association 
types are really the same anyway and we're really dealing with some kind 
of syntactic redundancy for which we have some tricky rule.

There are several ways to handle the issues, some tricky, and some 
weaselly, but for me it's just not realistic to pretend that there's no 
issue here, or, having admitted that the issue is real, to ignore it.

One way to approach the problem is to say, well, it's not necessarily 
always true, in a topic map, that there's one subject per topic. I hope 
we don't do that. That would blow everything away.


More information about the sc34wg3 mailing list