[topicmapmail] From RM to DM

Jason Cupp jcupp@esri.com
Thu, 18 Dec 2003 16:21:17 -0800


| Do you plan to implement something RM-based?

I'm doing prototypes now for implementing controlled vocabularies (thesauri
& indexes) plus general metadata using a triple-store (RDF).  

Thanks for the scope example. I didn't understand that SIDPs are abstract
(or has a merging-interface), not just subjectIndicator or subjectLocator
(that's SAM-speak).

What if I wanted to reify an ( I think this is a dated term) association
template -- this would be a higher-order subject, or a subject about a
schema contraint. That way I could talk about all the instances of a class
of assertions -- oh, that would be the t-topic, no?

So, if I wanted to I could implement my names-as-subjects (the literals I
was talking about) not as SIDPs but as OPs, but then they wouldn't be
accessable for merging -- effectively turning off the "topic naming
contraint"... but then I couldn't have variant-names, because the names
aren't subjects and therefore able to be reified and used as role-players in
an assertion...

- Jason

| -----Original Message-----
| From: Jan Algermissen [mailto:jalgermissen@topicmapping.com]
| Sent: Thursday, December 18, 2003 11:04 AM
| To: Jason Cupp
| Cc: Topicmapmail
| Subject: Re: [topicmapmail] From RM to DM
| 
| 
| Jason--
| 
| good questions!
| 
| 
| Jason Cupp wrote:
| > 
| > The RM has no mention of Data Model things like 
| occurrences, scope, names,
| > variants, etc... only assertions and sub-graphs of the 
| assertion graph that
| > are targets for reification in the n-ary relationship 
| model: t-topics,
| > c-topics, r-topics, x-topics, a-topics.
| 
| The RM operates at a lower level than the SAM. Since 
| occurrences, names,
| variants etc are essentially all just relationships between subjects,
| assertions are sufficient to represent all of them. The 
| Standard Application
| Model (SAM) is then simple the appropriate set of assertions 
| types and properties.
| 
| The goal of the RM is to enable the definition of such 'sets 
| of semantics' as
| the SAM (in the current RM version, such a definition is 
| coined as 'Disclosure')
| > 
| > But if I'm implementing the DM using the new RM, do I have to do the
| > following things????
| 
| In general, the RM doe in no way constrain an application, 
| the only thing
| you have to do is to document (and thus make explixit) how 
| your application
| maps to the RM. For example, the a-sidp property might well 
| be hidden in
| a certain method on objects of a certain class.
| 
| > 
| > 1) reify every name and occurrence resourceData, they 
| become x-topics in
| > assertions for relating <topic, name>, <name, variant>, and <topic,
| > occurrence>. But reifying literal strings gives me a new reification
| > operator "subjectLiteral", along with subjectLocator, 
| subjectIndicator?
| 
| First let me say that it is really great that you understood 
| (or are very
| close to understandig) the essence of the RM - believe me, I 
| know that it takes
| some effort to make the neccessary mind-shift.
| 
| To answer your question: 
| 
| (Note that 'reification' has a different meaning in the SAM 
| world than in the
| RM world. In the RM understanding, 'to reify' means to 
| provide a surrogate
| (topic (RM-sense)) for a subject. So the question if you want 
| to reify certain
| subjects is a matter of your needs: if you want to make 
| statements about certain
| subjects, you need to reify them otherwise not.
| 
| There are a lot of implications behind such a decision, 
| especially concerning the
| power the Application (the Disclosure) you define will have. 
| If you want, I'll
| go into details on this - please let me know.
| 
| A remark: In my personal opinion the current SAM draft really 
| falls short of the
| power it could have, because certain subjects are NOT reified 
| (RM-sense!) which
| in turn limits the degree of, hmmm, 'information interconnection'.
| 
| OTH, one of the purposes of the RM is to provide a means for 
| investigating and
| discussion these decisions and their implications, so people 
| have a sound basis
| to judge the quality of an Application ('Disclosure').
| 
| Bottom line: you can pretty much do what you like (you can 
| also make everything
| (occurrences,names,etc.) a property) but you need to document 
| what you do, thus
| maximizing the interchangeability of your topic maps.
| 
| > 
| > 2) does DM scope then become the total of all the other 
| assertions (those
| > not included in the DM) made about these other assertions: 
| a) <topic,name>,
| > b) <name, variant>, c) <topic, occurrence>, d) <a-topic, 
| c-topic, c-topic,
| > ...)
| 
| Here are two completely different, yet possible ways to do 
| scope in terms of
| the RM:
| 
| 1) Scope as a property, consisting of a set of topics
| 
| - define a property in your Application/Disclosure that has a 
| value type
|   'set of topics'. Let's call this property 'ScopingTopics'. 
| It is an OP
|   (other property) because it does not serve as a basis for merging.
| 
| - in your systax processing model, define how, for example, 
| XTM's <scope>
|   element and children are to be processed and that the set 
| of topics that
|   make up the scope are to be assigned as the value to the 
| 'ScopingTopics'
|   property of topics that surrogate relationships (<associations>).
| 
| 
| Think of the result as
| 
| t_a --ScopingTopics--> {t1,t2,t3}
| 
| Major advantage of this approach: ease of implementation
| Major disadvantage: The scoping set is not reified, so you do not
| get the possibility to directly see all scoped relationships from
| a given scope (set of topics). This can only be added by a 
| (proprietary!)
| indexing mechanism of a certain software.
| 
| 
| 2) Scope as an assertion between relationships and a subject that is
|    a set of topics
| 
| - define an assertion type 'at-association-scope' and two roles
|    'role-association' and 'role-scope'
| - define a property 'SetMembers' that provides the identity for topics
|   that surrogate sets of topics. It is an SIDP, because 
| topics with the
|   same value for 'SetMembers' must merge (topics that 
| represent the same
|   set represent the same subject and therefore must merge).
| 
| - have your processing model define the correct way to construct the
|   'SetMembers' property and the required assertion(s).
| 
| Your result will look like this:
| 
| 
| 
| 
|             at-association-scope
|                     |
|  role-association   |   role-scope
|              |      |      |
|              |      |      |
|     t_a------C------A------C------x_s[SetMembers={t1,t2,t3}]
| 
| 
| (where t_a is (as above) the topic that represents a given 
| relationship
| and x_s is the topic that represents the set of topics that 
| is the scope).
| 
| Major advantage:  all other relationships that x_s is a scope 
| of will be
| connected to x_s in the same way, so you can directly see from x_s all
| the relationships it scopes. (e.g. to anser the question: 
| "What are all
| occurrences in scpe {t1,t2,t3}). With this approach, this information
| is directly available, no propriatry indexing mechanisms are needed
| (meaning that no matter what SAM-conformant sofware you use, you'll
| allways have that information, likely also in the API then with some
| scope.getAllScopedAssociations() method.
| Major disadvantage: Topic Map (in store) increases in size 
| 
| But again, this is a matter of taste and desired power of 
| your Application.
| 
| 
| > Just curious... jason
| 
| You are welcome! Do you plan to implement something RM-based? I'd be
| happy to give you any information you need.
| 
| Jan
| 
| 
| > 
| > _______________________________________________
| > topicmapmail mailing list
| > topicmapmail@infoloom.com
| > http://www.infoloom.com/mailman/listinfo/topicmapmail
| 
| -- 
| Jan Algermissen                           http://www.topicmapping.com
| Consultant & Programmer	                  
http://www.gooseworks.org