[sc34wg3] Scope, again

Marc de Graauw sc34wg3@isotopicmaps.org
Thu, 28 Nov 2002 01:32:52 +0100


Thank you Steve, for the clear explanation of your ideas on scope, which was -
at least partly - triggered by my recent contribution on structured scope.

* Steven R. Newcomb

<skipped a lot with which I all agree/>

| All relationships can themselves be role players in
| other relationships.  When this happens, something is
| being said *about* the relationship.  If John and Mary
| are asserted to be married:
|
|                       husband-wife
|                          (T)
|             husband       |        wife
|               (R)         |         (R)
|                |          |          |
|                |          |          |
|    (x)--------(C)--------(A)--------(C)--------(x)
|   John                John and                Mary
|                     Mary are married
|
|
| .. then another assertion can say, about their marriage,
| that it's a happy one:
|
|                      class-instance
|                          (T)
|             instance      |        class
|               (R)         |         (R)
|                |          |          |
|                |          |          |
|    (A)--------(C)--------(A)--------(C)--------(x)
|  John and             John's and           happy human
| Mary are married     Mary's marriage       relationships
| (only the a-node     is a happy one
| of this assertion
| is shown here)
|
| What does all this have to do with scope?
|
| Scope is nothing more or less than a catchall
| relationship type that's the easiest, handiest, and
| laziest way to characterize relationships:
|
|
|                      topic-scope
|                          (T)
|              topic        |        scope
|               (R)         |         (R)
|                |          |          |
|                |          |          |
|    (A)--------(C)--------(A)--------(C)--------(x)
|  John and             John's and             set of
| Mary are married     Mary's marriage         subjects S
|                      is characterized
|                      by set S
|
| It's a way for topic map users to avoid having to
| define a bunch of relationship types just so they can
| characterize relationships.

Here I start to disagree. I think your view of scope is at odds with the
current ISO standard, XMT 1.0 and current practice of scope use. We could use
scope in the following way in XTM. (I've taken the liberty to use the topic
names instead of topic references in the elements to keep the example short. I
am sure everybody can expand it to conforming syntax.)

<association>
  <instanceOf>Marriage</instanceOf>
  <scope>Happy human relationships</scope>
  <member>John</member>
  <member>Mary</member>
</association>

This is a mistake. The current ISO standard says scope is an 'extent of
validity' and a 'context'. Now 'happy marriages' is not an extent of validity,
nor a context. If one were to use scope in the way you suggest, as a catchall
way to state anything possible about relationships, it seems to me that would
be a mistake. Take a look at the following pair of assertions:

                      topic-name
                         (T)
            topic         |        name
              (R)         |         (R)
               |          |          |
               |          |          |
   (x)--------(C)--------(A)--------(C)--------(x)
 Paris              Paris has name            "Parijs"
                       "Parijs"

(I use Paris to denote the city and the quoted "Parijs" to denote the name.)

                     topic-scope
                         (T)
             topic        |        scope
              (R)         |         (R)
               |          |          |
               |          |          |
   (A)--------(C)--------(A)--------(C)--------(x)
 Paris has name      Paris has name          Dutch
    "Parijs"       "Parijs" in Dutch
 (A is the assertion
     above)

Though similar-looking, this is a very different way of saying things about
relationships than the "happy marriage" example. The crucial difference is
that the assertion 'Paris has name "Parijs"' is no longer valid when the
scoping topic 'Dutch' does not apply. The name of Paris in Italian is
"Parigi", in English "Paris" et cetera. This is a difference with your
example: your Topic Map asserts: 'John and Mary are married', and this fact
remains valid whether we are looking from a 'happy marriage' or 'unhappy
marriage' perspective. We could use the characterization of the assertion to
filter the Topic Map, i.e. if we only want to look at unhappy marriages we
should not display the marriage of John and Mary. But the fact 'John and Mary
are married' remains asserted by the Topic Map author, regardless from which
perspective we are looking at the Topic Map. In the second Topic Map this is
not the case: the author does not assert 'Paris has name "Parijs"' any longer
when we are inquiring from an English or Italian perspective. The assertion is
no longer true in that context. So I would strongly object to using scope as a
true catchall way to state anything one wants about relationships. This is
neither what ISO 13250:1999 says nor what current practice is (though there
are odd examples of this being done). If you truly want this, I think the text
of the SAM needs editing, and the words 'extent of validity' need to be
removed.

What this leads to is the question whether scope is truly a general mechanism
to say things about assertions, or, on the contrary, a mechanism to say very
specific things about assertions, namely the circumstances in which we deem
assertions to be valid or not. The entire question has a lot in common with
what my logic textbook says on intensional logic (don't worry, I am not going
to argue we should incorporate intensional logic in Topic Maps, just that the
reasons which lead to the development of intensional logic apply to scope as
well).

>From 'Logic, Language and Meaning', L.T.F. Gamut, London 1991, ISBN
0-226-28086-1, loosely quoted from page 13:

In logic, propositions are traditionally supposed to be independent of time
and place, so that they may be said to be unconditionally either true or
false. Examples:

(1) Knowledge implies belief.
(2) 5 + 7 = 12

But most propositions do not have this property:

(3) The queen is delivering an address.

Now (3) could be adapted to something like:

(4) On June 9 at 8 P.M., the queen of the Netherlands is delivering an
address.

Again, a place (palace Noordeinde) could be added and a more specific time,
and an even more specific place et cetera until proposition (3) is altered
beyond all recognition. Instead of doing that, a context could be added to
(3), stating that the proposition is valid only in this context, which is a
much more natural way of interpreting (3).

End of my logic textbook aside.

Now scope should be used to do exactly this: adding contexts in which other
assertions are valid. Out of this context, the assertions are not asserted to
be valid. So instead of using scope as a general catchall mechanism to say
things about relationships, it should be used as a way to say when an
assertion is valid. And this is a very specific and important thing to say
about assertions. Saying 'this assertion is only valid when...' is very
different from saying 'this assertion is (an instance of) a happy one'. I
think this merits a place in the SAM, and I believe it is a very strong
mechanism which enables us to fully acknowledge the fact that most knowledge
is not universal, but bound to certain contexts. Scope should in my eyes not
be a very loosely typed assertion-about-assertions, but a strongly typed one:
scope is a way of saying: what follows affects the validity of this assertion.

I certainly agree with you that scope should be represented as assertions
about assertions in RM4TM and that RM4TM does not need a specific scope
construct - only a proper translation from scope in SAM (XTM, HyTM) to RM4TM
assertions is needed.

I agree that when scopes get big and messy this is a clear cue we should take
something out of the scopes and use specified relationships instead (when time
is important in our Topic Map, we should make above proposition (4), not (3),
translated into Topic Map syntax). Context - and scope - is for things we do
not want to make explicit assertions about. But scope is not for everything:
it has to affect the extent of validity of an assertion, otherwise it's not
scope. So scope to me is just a way to make a specific kind of assertion: an
assertion which limits the validity of another assertion.

<skipped a lot with which I agree, except as mentioned above/>

| There will always be many different philosophies about
| how to use scope.  I would caution against defining
| such a philosophy in the SAM, because that would limit
| the applicability of the SAM, possibly making it
| downright unpopular.

There is a tradeoff between applicability and clarity here. If different
people use scope in different ways because the SAM lets them, that is not
going to help interoperability. From what I have seen of actual scope use,
most use cases are completely in line with the interpretation of scope I have
sketched above, with the noteable exception of qualifying names to avoid
TNC-based merges. Then again, there are a lot of Topic Maps I haven't seen...

| Some have proposed that scopes should have structure,
| instead of just being a sets of
| otherwise-undifferentiated topics.  I would caution
| against inventing anything new in order to accomplish
| this, for at least three reasons:
|
| (1) At the RM level, we already have everything we need
|     to do this.  We don't need to invent anything new.
|     Simply make assertions about the subjects that are
|     in the scopes.  If that's not a sharp-enough
|     scalpel, make assertions about the set-member
|     assertions that establish those topics' memberships
|     in specific scopes.  The only question is whether
|     we want to enable such assertions to be made at the
|     level of the XTM or HyTM syntaxes.  (We can
|     certainly do that, but I think it's not a good
|     idea; see next reason.)

True, at the RM level we already have everything we need.

| (2) If our scopes are getting so big, ugly, and complex
|     that we need to structure them, that should be a
|     signal that what we *really* need to do is to
|     define more specialized ways of characterizing
|     relationships.  In other words, we should define
|     more assertion-characterizing assertion types, in
|     order to relieve our scopes of some of their
|     semantic overload.

True, when scope is overloaded one has to reconsider the Topic Map design. But
I believe it is really helpful to be able to make this very special kind of
assertion: that another assertion is only valid when..., and to be able to
recognize that another Topic Map author is making an assertion of this kind.

| (3) If we add internal structure to scopes, the
|     complexity of establishing namespaces by means of
|     scope increases dramatically.  If two scopes have
|     the same set of subjects, but different internal
|     substructures, are they the same, or not?  I'm very
|     leery of this idea of "structured scopes", because,
|     in the end, I think they would really have to be
|     just little encapsulated topic maps that are
|     somehow excused from participation in the larger
|     topic map.  This is a bad idea because it dishonors
|     the Subject Location Uniqueness Objective.

It would hope we could come to a way where scope is a way to make these
special kind of assertions, while at the RM4TM level the scope is translated
to nodes and arcs like every other construct. And well-formedness,
fully-mergedness and SLUO should apply equally to all nodes and arcs, there is
no excuse from that. I think - more hope, actually - scope can be a normal
part of the Topic Map in every respect except it has this stamp on it: this
part of the Topic Map affects the validity of other parts. I am not certain
this can be achieved because I haven't worked out the details, but so far I am
not pessimistic.

As for structured scopes, actually (perhaps surprisingly) I do not feel to
strongly about them. I realize that once scopes get too complex, it is better
to take things out of the scope and use normal <associations>. In my proposal
I have limited myself therefore to a relatively simple form of structured
scope. I considered the idea of having ALL-scopes and ANY-scopes which each
can incorporate each other. Once you do that, things get completely out of
hand, and establishing merging rules becomes a nightmare. So I proposed only
the incorporation of ALL-scopes, and the interpretation of regular scope as an
ANY-scope. Note too that I said I do not think this should go in the SAM: I
merely said I think TMCL should enable the behaviour I sketched. Your
arguments have definitively convinced me the SAM is not the proper place, but
I would see no objection to TMCL supporting this kind of behaviour. That would
almost imply forbidding applications to use structured scope, and there seems
no reason for that. So maybe there is a middle ground: leave the
interpretation of scope open in the SAM, and investigate ways to express
specific interpretations of scope, and structured scopes, so that people who
do want to do this at least do it the same way.

Marc