[topicmapmail] Topic Map Modularity
Murray Altheim
m.altheim@open.ac.uk
Wed, 18 Jun 2003 11:54:23 +0100
I've been mulling over some ideas on modularity in topic maps for
awhile now. What I mean by modularity might be expressed by this
example: let's say you have a small topic map, expressed in LTM:
[Language]
Speaks([Bob : Speaker], [English : Language])
Now, "English" is one language of many. In the ISO set there are
hundreds. If I were to develop a GUI to allow setting of the language
that Bob speaks, I'd want to allow the "Language" topic to pull from
the entire ISO list, but I don't want that huge topic map included in
my little Bob Speaks topic map, which is many orders of magnitude
smaller. But I do want some way of indicating that the Language topic
is of a type that has this big list out there, available but not
"loaded".
One way I can think of to do this is to make Language have the
same subject identity as the language.xtm topic map, as in
[Language
@"http://topicmaps.org/xtm/1.0/language.xtm#lang-code"]
which (barring any semantic differences with "language" and "language
code", as has been pointed out before), would mean that "Language"
has a specific subject. But it wouldn't load the language.xtm topic
map, nor does it indicate that there are several hundred instances
available to choose from ("English", "Hungarian", "Icelandic", etc.).
Another might be to create a predicate, "has list", or modify the
existing class-instance as "hasInstances":
[Language
@"http://topicmaps.org/xtm/1.0/language.xtm#lang-code"]
hasInstances([Language : Class],[LanguageList : Instances])
and then do something like express a set of occurrences:
{LanguageList, Instances,
"http://topicmaps.org/xtm/1.0/language.xtm"}
but this only points to the language.xtm topic map, doesn't really
tell *which* topics are actually instances. But since we at least
know we can get a list of instances via the "hasInstances" predicate,
this might indicate to a savvy processor that there was a list and
that it could be found by loading any of the occurrences of
LanguageList.
This all is going to require a new PSI or two, but I was wondering
if anyone had a nice elegant solution already, so that whatever I
do would interoperate with existing solutions.
This kind of thing will be valuable whenever one wants to select
one item from a large set of options, such as languages, color
names, datatypes, countries, products, people, etc. Being able to
break up a large topic map into many smaller modules is a good
thing, especially if we can do this without resorting to <mergeMap>.
I'd think any dialogue on this topic would be valuable nonetheless.
Thanks,
Murray
......................................................................
Murray Altheim <http://kmi.open.ac.uk/people/murray/>
Knowledge Media Institute
The Open University, Milton Keynes, Bucks, MK7 6AA, UK
Boundless wind and moon - the eye within eyes,
Inexhaustible heaven and earth - the light beyond light,
The willow dark, the flower bright - ten thousand houses,
Knock at any door - there's one who will respond.
-- The Blue Cliff Record