[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.
<howl>
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
violated.
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
dialog.
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
nonsensical.
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
association-type-land/role-type-land.
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.
</howl>
More information about the sc34wg3
mailing list