[topicmapmail] Inheriting Scope
Steven Hammond
shammond@northpub.com
Sun, 17 Apr 2005 12:08:11 -0400
This is a multi-part message in MIME format.
--------------040308000407060101030202
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Murray,
Thanks for that answer, I was worried I wouldn't get enough of an
answer... I think I followed most of what you said, but I'm still
thinking about "generalizes" vs. "is a" relationships.
>
> And just to clarify, when you state that one Association is an
> instance of another, do you mean to say:
>
> * the typing Topic used to type Association B is either a
> subclass of the typing Topic of Association A
>
> or
>
> * the typing Topic of association A is being used as the
> typing topic of association B.
>
> I ask because Associations themselves don't have instances. An
> Association type (i.e., a Topic used as a type for an Association)
> can be an instance of a given class, but the Association itself
> can't be considered a class (which would be required in order to
> have instances in the traditional concept of a class-instance
> relation).
In response to your question, let me be more specific about what I'm
trying to do. The application is a tool for mapping characters,
locations and events in a novel or series of novels. At the moment there
are two broad categories of associations, social and geographic and
there are a number of specific types of associations such as "lives-in",
"is-in", and "is-friend-of". I want to scope those broad categories to
define different perspectives on the map. Here is the XTM for the two
associations.
<association id="#lives-in">
<scope>
<topicRef xlink:href="#geographic-association"/>
</scope>
<member>
<roleSpec><topicRef xlink:href="#character"/></roleSpec>
<topicRef xlink:href="#character"/>
</member>
<member>
<roleSpec><topicRef xlink:href="#location"/></roleSpec>
<topicRef xlink:href="#location"/>
</member>
</association>
<association>
<instanceOf><topicRef xlink:href="#lives-in"/></instanceOf>
<member>
<roleSpec><topicRef xlink:href="#character"/></roleSpec>
<topicRef xlink:href="#andrea_mellea"/>
</member>
<member>
<roleSpec><topicRef xlink:href="#location"/></roleSpec>
<topicRef xlink:href="#boston"/>
</member>
</association>
This seems to validate with the xtm1.dtd, but your question leads me to
believe that it is incorrect. Why?
Also, in reading the dtd's the XTM spec at
http://www.topicmaps.org/xtm/index.html#elt-member it defines member as
<!*ELEMENT* member
( roleSpec <http://www.topicmaps.org/xtm/index.html#elt-roleSpec>?, ( topicRef <http://www.topicmaps.org/xtm/index.html#elt-topicRef> | resourceRef <http://www.topicmaps.org/xtm/index.html#elt-resourceRef> | subjectIndicatorRef <http://www.topicmaps.org/xtm/index.html#elt-subjectIndicatorRef> )+ )
>
while the dtd at http://www.topicmaps.org/xtm/1.0/xtm1.dtd defines
member as
<!ELEMENT member
( roleSpec?, ( topicRef | resourceRef | subjectIndicatorRef )* )
>
Which is correct? If the second is correct, then I can define the
general association without the topicRef's, which seems cleaner (i.e.
more like a type definition).
<association id="#lives-in">
<scope>
<topicRef xlink:href="#geographic-association"/>
</scope>
<member>
<roleSpec><topicRef xlink:href="#character"/></roleSpec>
</member>
<member>
<roleSpec><topicRef
xlink:href="#location"/></roleSpec>
</member>
</association>
Hopefully this make some sense.
Thanks,
Steve
--------------040308000407060101030202
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
<br>
Murray,<br>
<br>
Thanks for that answer, I was worried I wouldn't get enough of an
answer... I think I followed most of what you said, but I'm still
thinking about "generalizes" vs. "is a" relationships.<br>
<blockquote cite="mid4261C81A.7020905@open.ac.uk" type="cite"><br>
And just to clarify, when you state that one Association is an <br>
instance of another, do you mean to say: <br>
<br>
* the typing Topic used to type Association B is either a <br>
subclass of the typing Topic of Association A <br>
<br>
or <br>
<br>
* the typing Topic of association A is being used as the <br>
typing topic of association B. <br>
<br>
I ask because Associations themselves don't have instances. An <br>
Association type (i.e., a Topic used as a type for an Association) <br>
can be an instance of a given class, but the Association itself <br>
can't be considered a class (which would be required in order to <br>
have instances in the traditional concept of a class-instance <br>
relation). <br>
</blockquote>
In response to your question, let me be more specific about what I'm
trying to do. The application is a tool for mapping characters,
locations and events in a novel or series of novels. At the moment
there are two broad categories of associations, social and geographic
and there are a number of specific types of associations such as
"lives-in", "is-in", and "is-friend-of". I want to scope those broad
categories to define different perspectives on the map. Here is the XTM
for the two associations.<br>
<br>
<association id="#lives-in"><br>
<scope><br>
<topicRef xlink:href="#geographic-association"/><br>
</scope><br>
<member><br>
<roleSpec><topicRef
xlink:href="#character"/></roleSpec><br>
<topicRef xlink:href="#character"/><br>
</member><br>
<member><br>
<roleSpec><topicRef
xlink:href="#location"/></roleSpec><br>
<topicRef xlink:href="#location"/>
<br>
</member> <br>
</association><br>
<br>
<association><br>
<instanceOf><topicRef
xlink:href="#lives-in"/></instanceOf><br>
<member><br>
<roleSpec><topicRef
xlink:href="#character"/></roleSpec><br>
<topicRef xlink:href="#andrea_mellea"/><br>
</member> <br>
<member><br>
<roleSpec><topicRef
xlink:href="#location"/></roleSpec><br>
<topicRef xlink:href="#boston"/><br>
</member><br>
</association> <br>
<br>
This seems to validate with the xtm1.dtd, but your question leads me to
believe that it is incorrect. Why?<br>
<br>
Also, in reading the dtd's the XTM spec at
<a class="moz-txt-link-freetext" href="http://www.topicmaps.org/xtm/index.html#elt-member">http://www.topicmaps.org/xtm/index.html#elt-member</a> it defines member as
<br>
<pre class="markup" id="e-member"> <!<b>ELEMENT</b> member
( <a class="dref"
href="http://www.topicmaps.org/xtm/index.html#elt-roleSpec">roleSpec</a>?, ( <a
class="dref"
href="http://www.topicmaps.org/xtm/index.html#elt-topicRef">topicRef</a> | <a
class="dref"
href="http://www.topicmaps.org/xtm/index.html#elt-resourceRef">resourceRef</a> | <a
class="dref"
href="http://www.topicmaps.org/xtm/index.html#elt-subjectIndicatorRef">subjectIndicatorRef</a> )+ )
></pre>
while the dtd at <a class="moz-txt-link-freetext" href="http://www.topicmaps.org/xtm/1.0/xtm1.dtd">http://www.topicmaps.org/xtm/1.0/xtm1.dtd</a> defines
member as <br>
<pre><!ELEMENT member
( roleSpec?, ( topicRef | resourceRef | subjectIndicatorRef )* )
></pre>
Which is correct? If the second is correct, then I can define the
general association without the topicRef's, which seems cleaner (i.e.
more like a type definition).<br>
<br>
<association id="#lives-in"><br>
<scope><br>
<topicRef xlink:href="#geographic-association"/><br>
</scope><br>
<member><br>
<roleSpec><topicRef
xlink:href="#character"/></roleSpec><br>
</member><br>
<member><br>
<roleSpec><topicRef
xlink:href="#location"/></roleSpec> <br>
</member> <br>
</association><br>
<br>
<br>
Hopefully this make some sense.<br>
<br>
Thanks,<br>
Steve<br>
<br>
</body>
</html>
--------------040308000407060101030202--