[sc34wg3] Which set is the unconstrained scope? (SAM-issue 'scope-unconstrained-rep')

Marc de Graauw sc34wg3@isotopicmaps.org
Sun, 9 Jun 2002 14:31:18 +0200


[Bernard Vatant]

> Marc
>
> > 1) It is kind of strange to put this in a standard like the SAM. It would
> > either require Topic Map authors to reify their Topic Map, or have a Topic
> > Map
> > merge process do it for them. While it is certainly often useful to reify
> > your
> > Topic Map, _requiring_ it would seem unnecessary.
>
> Reification might not be required. Another way would be (have been) to have
> <scope> as
> direct child of <topicMap> itself.
> And when this element is not explicited, then the default scope would be the
> reified
> <topicMap>. or something like that.
>

That's what I mean. A Topic Map engine would add topics (reified Topic Maps) to 
my merged Topic Map that I haven't asked for.

> > 2) What if you really want to say something that is valid always and
> > everywhere? What if I want to express "The subject with identity 'MdG' has
> > as
> > its name 'Marc de Graauw', always and everywhere!" Your solution would
> > automatically scope it down to the containing Topic Map.
>
> Well ... "valid always and everywhere" is something I would never dare
> asserting.

Hmmm. There are statements that are very hard to scope. 'Marc de Graauw' is my 
name in any context. While it is true that I did not exist in the past, 
Nostradamus could have said 'There will be a man called "Marc de Graauw" one 
day". And while not everybody knows me, saying 'Nobody in Buenos Aires knows 
"Marc de Graauw"' is a maeningful statement. So if scope is an extent of 
validity, how do I meaningfully scope the assignment of the name 'Marc de 
Graauw' to a subject with a certain identity? I certainly want to assert much 
more than 'The name of this subject is "Marc de Graauw" within the context of 
this Topic Map', which your interpretation of the unconstrained scope would 
imply if I do not scope my assertion explicitly. Yet what scope do I choose for 
my assertion? Most scopes I can think of (region, language, time period, 
profession etc.) are much more restrictive than I want. So what scope do I 
choose?

Your interpretation of the unconstrained scope is at odds with XTM, where it 
says "Assignments made in the unconstrained scope are always valid", though it 
is not at odds with ISO 13250 where no such statement is made. (Of course being 
at odds with XTM is not necessarily a problem as the XTM and ISO 13250 have 
different positions on this subject.)

> Or publish a PSI for your notion of "always and everyhere" and use it as a
> scope.

I cannot publish PSI's as I am not an organization with the long-term 
commitment that publishing PSI's requires, but maybe you could :-)

> I'm afraid I miss your point. Maybe we should test that on less academic
> examples :))
>

This was a very bad example on my part. Let's try another one:

In my 'Business Map' Topic Map (www.marcdegraauw.com/itm) I want to scope 
associations by (among other things) Business Department: Sales, Marketing, et 
cetera. The association I want to scope is a mapping between elements in 
Business vocabularies, i.e. 'company_name can be used as CustomerName'. 
CustomerName and company_name are (names of) topics themselves. I do not use 
subject indicators because these assertions are unidirectional, i.e. I do not 
know whether 'CustomerName can be used as company_name'. When I scope the 
assignment with {Sales}, I want to assert that the mapping maybe used for the 
business processes of the department Sales. When I scope with {Sales, 
Marketing} I want to assert that the mapping maybe used for the business 
processes of the department Sales and for those of Marketing. When I do not 
scope explicitly, I want to assert that the mapping is valid for all Business 
Departments, not only as a coincidence (all existing business departments to 
have this this mapping) but as a general rule (the definition of CustomerName 
is such that it is a subset of company_name and thus the mapping is always 
valid). Now when I merge, I will often need to clean up the resulting topic 
map. For instance, the resulting Topic Map might have two associations:

- 'CustomerName can be used as company_name' within scope {Sales}
- 'CustomerName can be used as company_name' within scope {Sales, Marketing}

The first association can be thrown away, since the second one already says 
that the mapping is valid for business processes of the Sales department, and 
if the Topic Maps are large this would result in an enormous clutter of 
redundant associations. So my application needs a process that cleans up the 
resulting Topic Map according to this rule: If there are two associations that 
are equal in all respects except scope, and the scope of the former one is a 
subset of the scope of the latter one, the former one can be removed. Now when 
the unconstrained scope is the set of all topics, I could use the unconstrained 
scope for associations that are valid for all business departments, and this 
rule would work fine. For instance, when a Topic Map would contain:

- 'CustomerName can be used as company_name' within scope {Sales}
- 'CustomerName can be used as company_name'

the first association would be cleaned up because {Sales} is a subset of the 
set of all topics, and this is what I want.

When your interpretation of the unconstrained scope were implemented in the 
Topic Map engine I use for merging, I could no longer use the unconstrained 
scope for this purpose, because the Topic Map engine would generate:

- 'CustomerName can be used as company_name' within scope {Sales}
- 'CustomerName can be used as company_name' within scope 
{reified_originating_topic_map}

and {Sales} is not a subset of {reified_originating_topic_map}. This is what I 
mean when I say your solution does not scale well when we expand scope.

I would thus be forced to scope associations that are valid for all business 
departments with either:
1) all business departments, which is a maintenance nightmare when new business 
departments are added, or,
2) a scope meaning all business departments, existing and future, i.e. scope it 
with {this_thing_means_all_departments}.

Now the problem with this second option is that {Sales, Marketing} is not a 
subset of {this_thing_means_all_departments} (since the second set only 
contains a single element and not all departments). So I would need to build a 
special rule into my cleanup process: If there are two associations that are 
equal in all respects except scope, and the scope of the former one is a subset 
of the scope of the latter one OR THE SCOPE OF THE LATTER ONE IS 
{this_thing_means_all_departments} THEN the former one can be removed. This 
would work, but the solution with the unconstrained scope is much more elegant.

Of course I do not want to argue the standard should define the unconstrained 
scope as the set of all topics because this would solve my problem. The point 
is that the behaviour of the Topic Map I described above is of a very general 
type, and I think a lot of applications would want to have implement similar 
behaviour. What I argue is that the unconstrained scope was intended for this 
kind of behaviour, at least in XTM ("Assignments made in the unconstrained 
scope are always valid") and that the representation of the unconstrained scope 
as the set of all topics is in line with this behaviour.

Another point: you propose another solution as the representation of the 
unconstrained scope, and I agree it's a viable and intelligent alternative, 
though I'm not convinced yet it is the best solution. However, in your first 
response you write:

> Saying that the unconstrained scope is an empty set is a non-sense, saying 
it's the set of
> all topics in the topic map is as silly as can be, as you very well show ... 
and saying
> it's universal is arrogant :))

You are a mathematician. So what is wrong with the alternative of saying the 
unconstrained scope is the set of all topics? Does it lead to problems if we 
use that solution?

Marc