[sc34wg3] Question on TNC / Montreal minutes

Marc de Graauw sc34wg3@isotopicmaps.org
Wed, 18 Sep 2002 23:55:00 +0200


* Lars
| This is how we currently use merge-by-name. The autogeneration
| procedure builds subject identifiers from names by normalizing the
| name and inserting the resulting string into a URI template. The
| template chosen defines the namespace and it makes the merging much
| more effective than a simple merge-precise-strings.

This was the approach I originally chose for the Business Maps (albeit by
hand, not automagically), but I dropped it because of the duplication I
described. Do you decompose the URI to show the original name to the user, or
do you take the duplication for granted and have the original name both as
basename and as autogenerated PSI?

* Marc
| Which means making a namespace, which means applying the (optional)
| TNC _for that particular namespace_.

* Lars
| So you still want to tie it to particular scope? What about the
| argument that's been put forward against that, that people may use the
| same scope in different ways?

If you use scopes such as 'dutch' and 'norwegian' I would recommend doing only
TNC-based merges with other Topic Maps under human supervision (i.e. prompt
the user when names clash).

For scope-as-namespaces one has to do it right:

<baseName>
  <scope>
    <topicRef xlink:href="context.xtm#bizwords"/>
  </scope>
  <baseNameString merge="on">CustomerName</baseNameString>
</baseName>

The basename is scoped by topic 'bizwords'. I've taken the liberty to use the
optional TNC in more or less the much-debated Montreal way (other ways will do
too for my example). The scoping topic:

<topic id="bizwords">
  <subjectIdentity>
    <resourceRef xlink:href="http://psi.bizwords.com#bizwords-vocabulary"/>
  </subjectIdentity>
  <baseName>
    <baseNameString merge="off">BizWords!</baseNameString>
  </baseName>
</topic>

Now if one makes this the scoping topic, TNC-based merges won't happen with
the scoping topic, only (safe) PSI-based merges. This ensures the entire
namespace scoped by topic 'bizwords' inherits this safety, and one can do
TNC-based merges within the 'bizwords' scope without problems. Since this is a
controlled vocabulary, problems with names such as capitalization or
whitespace are unlikely - just use the names as defined in the vocabulary.

Seems to me a sensible way to do name-based merges for controlled
vocabularies.

Marc