ISO/IEC JTC 1/SC34 N0391
| Title: | The HyTime Topic Maps (HyTM) Syntax |
| Source: | Martin Bryan, JTC1/SC34 |
| Project: | ISO 13250 |
| Project editors: | Steven R. Newcomb, Michel Biezunski, Martin Bryan |
| Status: | Editor's draft |
| Action: | For review and comment |
| Date: | 2003-03-25 |
| Summary: | |
| Distribution: | SC34 and Liaisons |
| Refer to: | |
| Supercedes: | |
| Reply to: | Dr. James David Mason (ISO/IEC JTC1/SC34 Chairman) Y-12 National Security Complex Information Technology Services Bldg. 9113 M.S. 8208 Oak Ridge, TN 37831-8208 U.S.A. Telephone: +1 865 574-6973 Facsimile: +1 865 574-1896 E-mail: mailto:[email protected] http://www.y12.doe.gov/sgml/sc34/sc34oldhome.htm Mrs. Sara Desautels, ISO/IEC JTC 1/SC 34 Secretariat American National Standards Institute 25 West 43rd Street New York, NY 10036 Tel: +1 212 642-4937 Fax: +1 212 840-2298 E-mail: mailto:[email protected] |
This specification defines a HyTime Topic Maps 1.0 (HyTM) syntax for topic maps based on the use of SGML architectural forms defined in ISO 10744, the Hypermedia/Time-based Structuring Language (HyTime). The syntactical expressions in HyTM documents are constrained using HyTime architectural forms that can be used to identify element types and attributes used to generate topic maps, together with explanatory prose and comments, while their interpretation is defined using [SAM]. Note that this is only a syntax specification; what the syntax represents is defined by [SAM].
This specification replaces the definitions of the architectural forms defined in ISO 13250:2002. For more information on this process, see [tm-guide].
This is $Revision: 0.02 $.
1 Introduction
2
Syntax
2.1
The
topicmap architectural form
2.2 The topic
architectural form
2.3 The topname
architectural form
2.4 The basename,
dispname and sortname architectural forms
2.5 The occurs
architectural form
2.6 The assoc
architectural form
2.7 The assocrl
architectural form
2.8 The addthms
architectural form
2.9 The facet
architectural form
2.10 The fvalue
architectural form
3 Deserialization
3.1
Common
processing rules
3.1.1 Computing
the location of an element
3.2 topicmap
conformant elements
3.3 topic
conformant elements
3.4 topname
conformant elements
3.5 baseName
conformant elements
3.6 dispname
conformant elements
3.7 sortname
conformant elements
3.8 occurs
conformant elements
3.9 assoc
conformant elements
3.10 assocrl
conformant elements
3.11 addthms
conformant elements
3.12 facet
conformant elements
3.13 fvalue
conformant elements
4 Conformance
A References
B
HyTM
meta-DTD
C HyTM Grove
Plan
D Example
Architetural Support Declartion for Topic Maps Architecture
(Informative)
E A sample HyTM
1.0 DTD (Informative)
HyTM 1.0 is a syntax that can be used for the creation of SGML and XML Document Type Definitions (DTDs) which are used to constrain sets of topic map information. The syntax is designed to be extensible so that topic maps expressed in HyTM can be embedded in other XML or SGML syntaxes, and/or derived from XML or SGML documents.
A HyTM topic
map is a topic map that has been identified from a DTD conforming to the
HyTM syntax that consists of a topicmap conformant element with
descendants. A HyTM
resource is a HyTime conformant SGML or XML document that contains one
or more HyTM topic maps. In a process known as deserialization, each HyTM topic
map is read by a topic map processor, which produces from it a representation of
the Standard Application Model (SAM), by following a procedure equivalent to the
one defined in Clause 3 of this specification.
The deserialization procedure is defined as a transformation that takes an element item from the HyTime Property Set defined in the HyTM Grove Plan as input and produces one or more Standard Application Model information items. This specification does not concern itself with the means by which the HyTime Property Set used as input is produced. In most cases it will be produced by SGML architectural processing, but other possibilities are specifically allowed, including parsing an XML document, architectural processing based on W3C Schema abstract types or XSLT transformation from other XML syntaxes.
This section defines the components of the HyTM syntax using prose and a set of SGML Architectural Forms. The full set of architectural forms that make up the HyTM meta-DTD are listed in B The HyTM 1.0 DTD.
HyTM is an enabling document architecture whose definition conforms to the Architectural Form Definition Requirements in Normative Annex A.3 of ISO/IEC 10744:1997, the SGML Architectural Form Definition Requirements (AFDR). The formal definition of the topic map notation is expressed as a meta-DTD that can be mapped to specific instances of topic maps. The specification of the HyTM architecture is accomplished by a combination of formal definitions and comments summarizing the text that formally defines how each construct is to be processed to construct SAM-conformant information items. The formal definitions are expressed using ISO 8879: Standard Generalized Markup Language (SGML).The following HyTime architectural support declaration is required to invoke HyTime processing of HyTM documents:
<!-- HyTime architectural support declarations -->
<?IS10744 ArcBase HyTime>
<!NOTATION HyTime PUBLIC "ISO/IEC 10744:1997//NOTATION AFDR ARCBASE
Hypermedia/Time-based Structuring Language (HyTime)//EN">
<!ATTLIST #NOTATION HyTime
ArcFormA NAME HyTime
ArcNamrA NAME HyNames
ArcSuprA NAME sHyTime
ArcIgnDA NAME HyIgnD
ArcDocF NAME #FIXED HyDoc
ArcDTD CDATA "HyTime"
ArcQuant CDATA #FIXED "NAMELEN 12"
ArcDataF NAME #FIXED HyBridN
ArcBridF NAME #FIXED HyBrid
ArcAuto (ArcAuto|nArcAuto) nArcAuto
ArcOptSA NAMES "base links locs"
hyqcnt NUMBER 32
base CDATA "bos bosspec"
locs CDATA "agrovdef bibloc dataloc datatok grovplan listloc
mixedloc multloc nameloc nmsploc pathloc
pgrovdef proploc queryloc referatt refloc
reftype relloc spanloc treecom treeloc treetype"
links CDATA "varlink"
exrefs NAME exrefs
manyanch NUMBER #IMPLIED >
<!NOTATION AFDRMeta PUBLIC "ISO/IEC 10744//NOTATION AFDR Meta-DTD Notation//EN">
<!ENTITY HyTime PUBLIC "ISO/IEC 10744//DTD AFDR Meta-DTD
Hypermedia/Time-based Structuring Language (HyTime)//EN"
CDATA AFDRMeta > |
The list of location address types in the locs attribute can be
restricted from the full set shown above by any HyTM application that only uses
a subset of these link types.
The following shared attributes and parameter entities must be included within HyTM conformant DTDs to invoke features used within the HyTM syntax:
<!-- HyTime common attributes -->
<!-- The attribute form "HyTime common attributes" (common)
declares the HyTime attributes shared by all topic map forms. -->
<!attlist -- Common --
-- HyTime common attributes --
-- HyTime Clause A.5.2, 7.8 --
#ALL id -- Unique identifier --
ID
#IMPLIED -- Default: None --
-- refloc -- -- Reference Location Address --
-- HyTime Clause: 7.8 --
#ALL loctype -- Reference location addresses type --
-- Each named attribute treated as if it were an
IDREF to a location address element. --
-- Constraint: The declared values of named
attributes must be lexically compatible with
their specified interpretation. --
-- Note: The declared value CDATA always meets this
requirement. --
CDATA -- Lextype: (ATTORCON,("IDLOC"|"TREELOC"|
"PATHLOC"|"RELLOC"|
("QUERYLOC",NOTATION)))+ --
#IMPLIED -- Constant --
-- Default: All references use SGML IDREFs, and each
IDREF in an IDREFS attribute is considered
separately --
rflocsrc -- Reference location source --
-- Associates referential attributes with their
location sources. --
CDATA -- Lextype: (ATTORCON,ATTORCON)+ --
-- Constraint: Attributes named must be referential
attributes. --
#IMPLIED -- Constant --
-- Default: All referential attributes have this
element as their location source. --
-- rflocspn -- -- Reference location span --
-- HyTime Clause: 7.8 --
#ALL rflocspn -- Reference location span --
-- Names pairs of referential attributes that
address spans when both attributes are
specified. --
CDATA -- Lextype: (ATTORCON,ATTORCON)+ --
-- Constraint: Attributes named must be referential
attributes. --
#IMPLIED -- Constant --
><!-- HyTime meta-DTD content model parameter entities -->
<!entity % HyCFC -- HyTime context-free content --
-- Note: %loc, %link, %resorce qualify but are used
as meta-inclusions rather than meta-proper-
subelements --
"HyBrid" >
<!entity % loc -- Location address forms --
"anchloc|bibloc|dataloc|fcsloc|linkloc|listloc|mixedloc|nameloc|
nmsploc|pathloc|proploc|queryloc|relloc|treeloc" >
<!entity % link -- Hyperlink forms --
"varlink" >
<!entity % resbase -- Base module resource forms --
"bosspec" >
<!entity % resloc -- Location address module resource forms --
"agrovdef|datatok|grovplan|pgrovdef" >
<!entity % resorce -- All resource architectural forms --
"%resbase;|%resloc;" > |
The list of location address types in the loc parameter entity
can be restricted from the full set shown above by any HyTM application that
only uses a subset of these link types. Applications may choose to assign fixed
default values to any of the implied attributes.
Do rflocsrc attributes affect Locator items in any way?
HyTM documents must be embedded within documents conforming to the following generalized HyTime document element form:
<!-- HyTime document element form -->
<!element HyDoc -- HyTime document element --
-- HyTime Clause: 6.4 --
- O (%HyCFC;)* +(%link;|%loc;|%resorce;)
-- OptionalAttributes [base]: bos, bosspcat --
-- OptionalAttributes [locs]: dgrvplan --
-- CommonAttributes [locs]: refloc, reftype, rflocspn -- >
<!attlist HyDoc -- bos -- -- HyTime bounded object set --
-- HyTime Clause: 6.5.1 --
maxbos -- Maximum bounded object set level --
-- Bounding level of HyTime bounded object set when
document is a hub or subhub. --
NUMBER -- Constraint: Depth of nested entities to include
in BOS (0=no limit, 1=hub only) --
0
boslevel -- Bounded object set level --
-- Default BOS level used by data entities declared
in hub document. --
NUMBER -- Constraint: Depth of nested entities to include
in BOS (0=no limit, 1=this entity only) --
#IMPLIED -- Default: No HyTime BOS --
-- bosspcat -- -- BOS except specification attributes --
-- HyTime Clause: 6.5.3 --
bosspec -- Bounded object set exception specification --
-- Adjustments to be made to the bounded object set. --
IDREFS -- Reference --
-- Reftype: bosspec+ --
-- Constraint: Must be internal reference --
#IMPLIED -- Default: No BOS exception specification --
-- dgrvplan -- -- HyTime document grove plan --
-- HyTime Clause: 7.1.4.1 --
grovplan -- Grove plan --
-- Grove plan for HyTime extended SGML document
grove --
CDATA -- Reference --
-- Reftype: grovplan --
#IMPLIED -- Default: HyTime default grove plan -- ><!-- HyTime bounded object set control forms -->
<!-- HyTime BOS control data attributes -->
<!attlist #NOTATION
-- bosdatt -- -- HyTime BOS control data attributes --
-- HyTime Clause: 6.5.2 --
#ALL boslevel -- BOS level --
-- Bounded object set level for the entity --
NUMBER -- Constraint: Depth of nested entities to include
in BOS (0=no limit, 1=this entity only) --
#IMPLIED -- Default: Value of boslevel attribute of HyDoc
element. --
inbos -- Include in BOS --
-- Unconditional include in, or exclude from, BOS --
(inbos|notinbos)
#IMPLIED -- Default: Inclusion controlled by BOS level --
bosprrty -- Bounded object set priority --
-- Default BOS priority of objects in entity tree
rooted at this entity. --
(foregrnd|backgrnd)
foregrnd
subhub -- Is entity a subhub? --
(subhub|nosubhub)
nosubhub ><!-- HyTime bounded object set exception specification -->
<!element bosspec -- Bounded object set exception specification --
-- HyTime Clause: 6.5 --
-- Used to affect the HyTime BOS by overriding the
inclusion or exclusion and priority of the
entities identified by the BOS path or paths
given as content. --
- O (#PCDATA) -- Lextype: ((ENTITY,(csname|literal)*)|
(GRPO,ENTITY,(csname|literal)*,GRPC)+) --
-- Constraint: If parentheses are used, each parenthesized
list is a separate BOS path. --
-- Constraint: Each word or literal in a BOS path is
the name of an entity declared in the entity
identified by the previous word, literal, or
entity name. --
-- Attributes [base]: bosspec --
-- Referrers [base]: HyDoc:bosspec -- >
<!attlist bosspec -- Bounded object set exception specification --
-- HyTime Clause: 6.5 --
boslevel -- BOS level --
-- The BOS level from the last entity named in
each specified BOS path to be affected by this
bosspec. --
NUMBER -- Constraint: Depth of nested entities to include
in BOS (0=no limit, 1=last entity only) --
1
inbos -- Include in BOS --
-- Unconditionally include or exclude objects
declared by the last entity named in each BOS
path, to the BOS level specified by this
bosspec's boslevel attribute. --
(inbos|notinbos)
#IMPLIED -- Default: BOS unaffected --
bosprrty -- Bounded object set priority --
-- Unconditionally specify the BOS priority of
objects declared by the last entity named in each
BOS path, to the BOS level specified by this
bosspec's boslevel attribute. --
-- Note: The semantic of the bosprrty attribute is
not affected by the value of the inbos attribute
(that is, whether it is explicitly "inbos" or the
value is implied). --
(foregrnd|backgrnd)
#IMPLIED -- Default: No priority change -- > |
More specific default constraints can be applied to the containing HyTime document where appropriate.
Where a set of exceptions for the bounded object set needs to be specified
for a specific topic map this information can be embedded within a
topicmap conformant HyTM element using an element conforming to the
HyTime bosspec architectural form.
The following entities and elements define properties of topic maps that are shared by more than one element within the HyTM architecture and which are therefore declared as part of the preliminary definitions:
<!entity % TMCFC -- Topic map context-free content -- "topic|assoc|facet|bosspec|addthms|TMBrid" > <!element TMBrid -- Topic map bridge element -- - O ANY > |
TMBrid is a container for any element that is not part of an
topic map architectural form definition. It is used to inhibit topic map
processing for its children. It must be used to provide a container for elements
whose contents are something other than simple text strings.
Note: A HyTM topicmap could consist of only of a set of facet definitions, with associated facet values, or may not contain any facets.
Should the position of any bosspec conformant element be made to
precede that of any of the other TMCFC components? Should we constrain
addthms elements to precede the topics and associations to which
they refer to ensure that HyTM deserialization can be streamed efficiently?
topicmap architectural formThe HyTM topicmap architectural form defines the model for the
root element of all HyTM topic maps. It acts as a container for a topic map, and
can be either the document element of a HyTime document or the root of a subtree
inside a HyTime document that contains more than just a topic map. In both
cases, the input to the HyTM deserialization process is the subtree contained by
the topicmap element.
During deserialization each topicmap conformant element
generates a SAM Topic Map information item.
The topicmap architectural form is declared as follows:
<!element topicmap -- Topic map document element --
-- ISO 13250:2002 Clause 5.1 --
- O (%TMCFC;)* >
<!attlist topicmap addthems -- Added themes --
-- Themes to add to all scopes that govern
the assignments of topic names,
occurrences, and roles played in
associations in this topic map
document. --
CDATA -- Reference --
-- Reftype: topic+ --
#IMPLIED -- Default: No themes added via this attribute. --
-- Architectural form attributes required if topic map is root of document --
HyTime -- HyTime architectural form name --
NAME
HyDoc -- HyTime document element. (This
attribute definition is redundant; it
appears here as an aid to
understanding.) --
-- bos -- -- HyTime bounded object set --
-- HyTime Clause: 6.5.1 --
maxbos -- Maximum bounded object set level --
-- Bounding level of HyTime bounded object set when
document is a hub or subhub. --
NUMBER -- Constraint: Depth of nested entities to include
in BOS (0=no limit, 1=hub only) --
0
boslevel -- Bounded object set level --
-- Default BOS level used by data entities declared
in hub document. --
NUMBER -- Constraint: Depth of nested entities to include
in BOS (0=no limit, 1=this entity only) --
#IMPLIED -- Default: No HyTime BOS --
-- bosspcat -- -- BOS except specification attributes --
-- HyTime Clause: 6.5.3 --
bosspec -- Bounded object set exception specification --
-- Adjustments to be made to the bounded object set. --
IDREFS -- Reference --
-- Reftype: bosspec+ --
-- Constraint: Must be internal reference --
#IMPLIED -- Default: No BOS exception specification --
-- dgrvplan -- -- HyTime document grove plan --
-- HyTime Clause: 7.1.4.1 --
grovplan -- Grove plan --
-- Grove plan for HyTime extended SGML document grove --
CDATA -- Reference --
-- Reftype: grovplan --
#IMPLIED -- Default: HyTime default grove plan -- > |
The following topic map specific attribute is defined in addition to the properties that can optionally be assigned if the topic map element is also the HyTime root element:
addthems
The comment associated with the definition restricts the application of the themes to be added to just topic name, occurrences and roles played by associations, which is more restrictive than the 13250 text, which states that it applies to "the scopes of all the topic characteristic assignments made throughout the document". Should the comment be changed to reflect this statement?
Should the wording used in 13250 to describe the HyTM architectural forms be incorporated into this syntax specification?
topic architectural formThe HyTM topic architectural form is used to identify elements
that define specific topics. It acts as a container and point of reference for
topic information. The child elements of elements conforming to the
topic architectural form identify the names that have been assigned
to the topics (i.e. conform to the topname architectural form) or
identify resources in which the topic has been mentioned (i.e. conform to the
occurs architectural form).
Note: The association roles played by a topic are generated from elements
specified outside of the topic architectural form.
During deserialization each topic conformant element generates a
SAM Topic information item.
The topic architectural form is declared as follows:
<!element topic -- Topic link --
-- ISO 13250:2002 Clause 5.2.1 --
- O ( topname | occurs)* ><!attlist topic id -- Unique identifier --
ID
#REQUIRED -- Required instance of optional HyTime common attribute --
identity -- Subject identity --
-- Reference to information (one or more
subject descriptors) that confers
understanding of the identity of the
subject of this topic link. --
CDATA -- Reference --
#IMPLIED -- Default: No subject descriptors; the
subject must be inferred from the
topic's characteristics. --
types -- Topic types --
-- Topics whose subjects are the classes
of topics of which this topic is an instance. --
CDATA -- Reference --
-- Reftype: topic+ --
#IMPLIED -- Default: No class-instance topic
associations are established via this
attribute. --
-- Note: Some might still be specified by
topic association links, however. --
scope -- Scope --
-- The themes that are added to the scopes
of all the names and occurrences
specified by this topic link. --
CDATA -- Reference --
-- Reftype: topic+ --
#IMPLIED -- Default: No themes are added by this attribute. --
-- HyTime attributes identifying form and role of link --
HyTime -- HyTime architectural form name --
(varlink|HyBrid)
varlink -- Constraint: varlink must be specified
when occurrences exist. If topic has no
occurrences, it must be identified as a
HyTime bridge element (HyBrid). --
linktype -- Hyperlink type --
NAME
#IMPLIED -- Default: Generic identifier -- > |
The attributes have the following significance:
id
id attribute provides a unique identifier for
the topic, which is used to refer to it.
identity
identity attribute can be used to reference a
resource that uniquely identifies the subject of the topic. During
deserialization it becomes the [reference] property of the Locator item with
the role of subjectAddress.
types
types attribute can be used to identify topics
that represent the class(es) which this topic is an instance of. During
deserialization each identified topic is related to this Topic item by the
creation of an association whose subject identifier identifies it as being a
SAM type-instance association.
scope
scope attribute can be used to identify the set
of topics that indicate the contexts in which this topic is valid. These
scoping topics are inherited by all children of the topic, and their
children. During deserialization each scoping topic is related to this
Topic item through a scope connection.
linktype
linktype attribute (which is a HyTime attribute
required by varlink conformant linking elements) can be used to
identify the type of topic being defined. If no value is specified the generic
identifier assigned to the element defined using this architectural form is
used. During deserialization a SAM Topic item is created to represent the
linktype or generic identifier, and a topic-linktype association
is created to this Topic item
SAM does not have a property in which the linktype/GI association can be recorded. Should topics created for linktype associations be typed through a specific PSI?
The SAM model does not currently allow scopes to be associated with topics, only their children. Can we recover the set of topics shared at this level from the set that is defined for the children?
topname architectural formThe HyTM topname architectural form is used to group together a
set of base names, display names and sorting rules that apply to a topic within
a specific scope. A topic may have zero or more sets of name characteristics
(topic names) assigned to it.
The HyTM syntax distinguishes between three kinds of topic name: base
name (basename), display name (dispname)
and name used as sort key (sortname). At least one base name
must be specified for each topic name group. If display names are to be
associated with a set of base names they must follow the last of the base names
and precede any names used as a sort key.
The topname architectural form is declared as follows:
<!element topname -- Topic name --
-- ISO 13250: Clause 5.2.2--
O O (basename+, dispname*, sortname* )
-- If dispnames or sortnames are not
specified, applications use basenames
for display and sorting purposes. -- >
<!attlist topname
scope -- Scope --
-- Reference to a set of themes (topic
links) to be added to the scopes of the
name characteristics specified by the
contained basename, dispname, and
sortname elements. Scopes are sets of
themes that collectively define the
limited context within which
characteristics are validly applicable
to the topic. --
CDATA -- Reference --
-- Reftype: topic+ --
#IMPLIED -- Default: No themes are added via this attribute. -- > |
The optional scope attribute can be used to identify the set of
topics that indicate the contexts (areas of validity) in which this set of topic
names is valid. After having all the added themes defined by the
addthms attribute of the containing topicmap
conformant element together with any assigned to topname conformant
elements using an addthms element that references this topic map
and those of the parent topic conformant element added to the set,
these scoping topics are inherited by all children of the topname
conformant element.
This is the first case in ISO 13250 where a claim is made that if no scope attribute is provided for a particular element type it is "unconstrained". The wording of the subsequent text implies that any themes added by an addthms element (or attribute) only apply if the element has a scope attribute, which can be an empty string. Yet this ruling seems to contradict that given for addthms in 5.4 (third bullet) and Note 34 of clause 5.2.2, which states that such elements can be used to differentiate between topics without scope attributes. In addition, the comment associated with the addthems attribute clearly assigns these themes to the topic name element rather than its children. If "unconstrained" means "having no locally defined or inherited scoping attributes" the above text needs to be extended to allow for this state.
basename, dispname and
sortname architectural formsThe HyTM basename architectural form is used to assign one or
more topic names to the topic created by the topic element that
contains the topname it forms part of. The contents of the
basename conformant element, which must form a string with no
embedded markup, provide the [value] property of a SAM Topic Name item.
Note: More than one base name may be needed for a topic to allow the topic to be used by different linguistic communities.
The HyTM dispname and sortname architectural forms
can optionally be used to create SAM Variant items that are associated with each
of the Topic Name items created by the presence of basename
conformant elements within the same topname conformant element. The
displayable forms of the name created by dispname conformant
elements can either contain a string of displayable data, or a topic map
bridging (TMBrid) conformant element whose structured contents
defines a displayable form of data. This can include data that is in a notation
other than HyTime/SGML/XML providing that the notation used is identified using
the HyTime defined notation common attribute, or can consist of
simply a reference to an external data source. The contents of
sortname conformant element, which must consist of a string of
characters without embedded markup, can be used to indicate the order in which
different sets of topic names are to be sorted when listing currently defined
names. For example, an entry whose base name is Henry VIII could be
assigned a sort name of Henry8 to ensure it is correctly
sorted.
Note: The contents of the basename element provide default text for
displaying and for sorting if no dispname or sortname
conformant element is provided within the same topname conformant
element.
HyTM does not permit two distinct subjects (topics with the same identity) to
have the same name characteristics within exactly the same scope (this is known
as the "topic naming constraint"). When topic maps are processed each distinct
set of themes that serves as a scope constitutes a namespace in which no two
subjects can have the same name. If a situation in which multiple
topic conformant elements with the same name characteristics within
the same scope is detected they must be merged.
Issue (HyTM-13250-notation-common-attribute):
ISO 13250 requires the use of the notation common attribute for
specifying alternative notations for dispname entries, even
though this attribute is not listed in the list of HyTime common attributes
that apply to topic maps. Should it be added to the list of common attributes?
Do we need this restriction for SAM conformance? What is the link, if any,
between the value assigned to the notation attribute and the MIME type
of XML references to external entities?
These architectural forms are declared as follows:
<!element (basename | sortname) -- Base name or Name to be used as sort key --
- O (#PCDATA) -- String to be used as name/sorting sequence -- >
<!element dispname -- Displayable form of name --
- O (#PCDATA|TMBrid)* -- String (or notation data embedded within a TMBrid
conformant element) to be displayed as name -- >
<!attlist ( basename | sortname | dispname)
scope -- Scope --
-- References to a set of themes (topic
links) to be added to the scope of the
name characteristic specified in the
content. --
CDATA -- Reference --
-- Reftype: topic+ --
#IMPLIED -- Default: No themes are added via this attribute. -- > |
The optional scope attribute can be used to identify the set of
topics that indicate the contexts in which this particular name is valid when it
differs from the set applied to the parent topname conformant
element. During deserialization each scoping topic, including those
inherited from parent elements, is related to the Topic Name or Variant item
through a scope connection.
occurs architectural formThe HyTM occurs architectural form is used to define elements
that reference occurrences of the subject identified and named by its
parent topic conformant element. It contains a set of one or more
HyTime location addresses, which are specified using HyTime conformant elements
whose contents allow one or more information resource components to be
identified.
Note: HyTM imposes no constraints on the information objects that can be specified as occurrences of topics, nor on the addressing notations used to reference such occurrences. In particular, HyTime location addresses can identify spans of data, sets of elements, the contents of attributes and subtrees within a document. The locations can be specified using queries, natural language or structured markup. Not all HyTime locations are electronically resolvable. The same information resource components can be addressed in more than one way. No attempt is made to identify whether or not two HyTime location addresses refer to the same set of objects.
During deserialization each occurs conformant element generates
a SAM Occurrence information item.
The occurs architectural form is declared as follows:
<!element occurs -- Topic occurrence --
-- ISO 13250: Clause 5.2.3 --
- O (%loc;)* >
<!attlist occurs scope -- Scope --
-- Reference to themes that are added to
the scope within which the occurrences
are applicable to the topic
characterized by the containing topic link.--
CDATA -- Reference --
-- Reftype: topic+ --
#IMPLIED -- Default: No themes are added to the scope
by means of this attribute. --
occrl -- Occurrence role name --
NAME -- Note: Not displayed for the topic map
user if the topic referenced by the
type attribute has displayable
characteristics within the user's scope. --
#IMPLIED -- Default: GI of element is treated as
occurrence role name. --
type -- Occurrence role type --
-- Reference to the topic that names
and/or otherwise characterizes the
occurrence role. The characteristics
of the referenced topic, if
appropriate, will be displayed to the
user instead of the value of the occrl
attribute. --
CDATA -- Reference --
-- Reftype: topic --
#IMPLIED -- Default: No topic characterizes the
occurrence role, unless this element is
an occurrence (with an occurrence role
whose meaning is instance) of a topic
whose subject is the nature of the
occurrence role. The value of the
occrl attribute will be displayed as
the occurrence role name. --
-- HyTime attributes controlling how embedded locations are to be processed --
HyTime -- HyTime architectural form name --
NAME
#FIXED
anchspec
linktrav -- Hyperlink traversal rules --
-- Traversal between anchors of hyperlinks:
A any traversal or departure (EID)
D departure after internal arrival
E traversal after external arrival
I traversal after internal arrival
N no traversal after internal arrival
P no internal arrival
R return traversal after internal arrival --
NAMES -- Lextype: ("A"|"EI"|"ER"|"ED"|"EN"|"EP"|"ERD"|
"I"|"ID"|"D"|"N"|"P"|"R"|"RD") --
A
listtrav -- List traversal rules --
-- Traversal between members of list anchors:
A adjacent (both left and right) traversal
L left traversal
N no traversal
R right traversal
W wrapping traversal --
NAMES -- Lextype: ("A"|"AW"|"L"|"LW"|"N"|"R"|"RW") --
N -- Default: Show the whole list --
multmem
(single|list|corlist)
list
emptyanc
(error|noterror)
error
HyNames
CDATA
"anchrole occrl" > |
The attributes have the following significance:
scope
scope attribute can be used to identify the set
of topics that indicate the contexts in which this occurrence is valid. These
topics are added to those defined as the scope of the containing
topic conformant elements,
including the added themes defined by the addthems attribute of
the containing topicmap conformant element or any assigned using
an addthms element that references occurs conformant
elements within this document. During deserialization each scoping topic is
related to this Occurrence item through a scope connection.
occrl
occrl attribute can be used to identify the role
the occurrence plays. If no value is specified the generic identifier of the
occurs conformant element is deemed to identify the role played
by the occurrence. This attribute is ignored during deserialization.
type
type attribute can be used to identify the
single topic whose names can be used to display information about the
occurrence role type. During deserialization the identified Topic item is
connected to the Occurrence item through a occurrenceType connection.
If the type attribute is specified, and if the topic
referenced by the type attribute has a name characteristic (base
name or display name) that lies within the scope that is appropriate to the
topic map user's context, the referenced topic name characteristic is used to
characterize the association type for the user. Otherwise the value of the
occrl attribute (or, if the occrl attribute is not
specified, the generic identifier) is used to characterize the
association.
Note: The topic referenced by the type attribute can have
many names in scopes designed for many different user contexts, including many
different natural languages and delivery platforms, while the
occrl attribute or generic identifier is just a single token.
Therefore, use of a topic, referenced by the type attribute, to
characterize the association type offers far more flexibility and
representational power than the simple mnemonic naming facility offered by the
occrl attribute or generic identifier.
The other attributes associated with the occurs architectural
form are used by HyTime engines to manage the way links between lists of anchor
specifications (anchspec) can be traversed. No restrictions are
placed on the use of these anchor specifications by default, the
occrl attribute being mapped to the HyTime anchrole
attribute. These attributes, which will normally be assigned fixed values in the
DTD of a specific application, are ignored during deserialization.
Should occrl be treated as an association of the type used for
linktype attribute values?
assoc architectural formThe HyTM assoc architectural form is used to express
associations (relationships) between topics. The assocrl child
elements provide the association role players of the association.
During deserialization each assocc conformant element generates
a SAM Association information item.
The assoc architectural form is declared as follows:
<!element assoc -- Association link --
-- ISO 13250:2002 Clause 5.3.1 --
- O (assocrl)+ >
<!attlist assoc scope -- Scope --
-- Reference to themes that are added to
the scope within which the association
is applicable. --
CDATA -- Reference --
-- Reftype: topic+ --
#IMPLIED -- Default: Scope is unconstrained. --
linktype -- Hyperlink type. --
-- Mnemonic name for the association type. --
-- Note: Not displayed for the topic map
user if the topic referenced by the
type attribute has displayable
characteristics within the user's scope. --
NAME
#IMPLIED -- Default: Generic identifier --
type -- Association type --
-- Topic whose subject is the class of
association of which this association
is an instance. --
CDATA -- Reference --
-- Reftype: topic --
#IMPLIED -- Default: No type is specified by this attribute. --
-- Note: A type might exist by virtue of
the fact that this association link is
an occurrence (where the occurrence
role means "instance") of a topic whose
subject is the nature of the
association, however. --
-- HyTime attributes identifying how embedded elements are to be processed --
HyTime -- HyTime architectural form name --
NAME
#FIXED
varlink > |
The attributes have the following significance:
scope
scope attribute can be used to identify the set
of topics that indicate the contexts in which this association is valid. These
topics are added to those defined by the added themes defined by the
addthems attribute of the containing topicmap
conformant element or any assigned using an addthms element that
references assoc conformant elements within this document. During
deserialization each scoping topic is related to this Association item through
a scope connection.
linktype
linktype attribute (which is a HyTime attribute
required by varlink conformant linking elements) can be used to
identify the type of link being made. If no value is specified the generic
identifier assigned to the element defined using this architectural form is
used. During deserialization a SAM Topic item is created to represent the
linktype or generic identifier and an association is made between this Topic
item and the Association item created by this assoc conformant
element.
type
type attribute can be used to identify the
single topic whose names can be used to display information about the
association type. During deserialization the identified a Topic
item is connected to the Association item as the
associationType. If the type attribute is specified, and if the topic referenced
by the type attribute has a name characteristic (base name or
display name) that lies within the scope that is appropriate to the topic map
user's context, the referenced topic name characteristic is used to characterize
the association type for the user. Otherwise the value of the
linktype attribute (or, if the linktype attribute is
not specified, the generic identifier) is used to characterize the
association.
Note: The topic referenced by the type attribute can have
many names in scopes designed for many different user contexts, including many
different natural languages and delivery platforms, while the
linktype attribute or generic identifier is just a single token.
Therefore, use of a topic, referenced by the type attribute, to
characterize the association type offers far more flexibility and
representational power than the simple mnemonic naming facility offered by the
linktype attribute or generic identifier.
SAM does not have a property in which the linktype/GI association can be recorded. Should topics created for linktype associations be typed through a specific PSI?
The comment in ISO 13250 to the effect that "Scope is unconstrained" would seem to be incorrect as scope is always constrained by the added themes of the enclosing topic map according to the definitions of the addthms element and addthems attribute.
Do we need to say anything about the class-instance relationships created by type attribute values? In particular should Note 39 of clause 5.3.1 be propagated to this specification? Should SAM make any reference to this relationship?
assocrl architectural fromThe HyTM assocrl architectural form is used to add one or more
players of the same association role type to the association created by a parent
element conforming to the assoc architectural form. The contents of
each assocrl conformant element must one or more HyTime location
addresses that locate one or more topics in a topic map (though not necessarily
in the current topic map).
Note: Within a single association link, more than one assocrl
conformant element may reference the same topic, in which case the topic plays
multiple roles in the association. The containing assoc conformant
element can, therefore, assert that a topic has one or more relationships to
itself.
Note: All topics referenced in the content of a set of
assocrl conformant elements within a given assoc
conformant element play their roles within the same scope, which is specified as
part of the definition of the assoc conformant element.
During deserialization each assocrl conformant element generates
a SAM Association Role information item.
The assocrl architectural form is declared as follows:
<!element assocrl -- Association role --
-- ISO 13250:2002 Clause 5.3.2 --
- O (%loc;)+ -- Reftype: topic+ -- >
<!attlist assocrl anchrole -- Anchor role --
-- Note: Not displayed for the topic map
user if the topic referenced by the
type attribute has displayable
characteristics within the user's scope. --
NAME
#IMPLIED -- Default: GI of element is treated as
anchor role. --
type -- Association role type --
-- Reference to the topic that names
and/or otherwise characterizes the
association role. The characteristics
of the referenced topic, if
appropriate, will be displayed to the
user instead of the value of the
anchrole attribute. --
CDATA -- Reference --
-- Reftype: topic --
#IMPLIED -- Default: No topic characterizes the
association role, unless this element
is an occurrence (with an occurrence
role whose meaning is instance) of a
topic whose subject is the nature of
the association role. The value of the
anchrole attribute will be displayed as
the association role name. --
-- HyTime attributes controlling how embedded locations are to be processed --
HyTime -- HyTime architectural form name --
NAME
#FIXED
anchspec
linktrav -- Hyperlink traversal rules --
-- Traversal between anchors of hyperlinks:
A any traversal or departure (EID)
D departure after internal arrival
E traversal after external arrival
I traversal after internal arrival
N no traversal after internal arrival
P no internal arrival
R return traversal after internal arrival --
NAMES -- Lextype: ("A"|"EI"|"ER"|"ED"|"EN"|"EP"|"ERD"|
"I"|"ID"|"D"|"N"|"P"|"R"|"RD") --
A
listtrav -- List traversal rules --
-- Traversal between members of list anchors:
A adjacent (both left and right) traversal
L left traversal
N no traversal
R right traversal
W wrapping traversal --
NAMES -- Lextype: ("A"|"AW"|"L"|"LW"|"N"|"R"|"RW") --
N -- Default: Show the whole list --
multmem
(single|list|corlist)
list
emptyanc
(error|noterror)
error > |
The attributes have the following significance:
anchrole
anchrole attribute can be used to
provide a mnemonic for the role the association member(s) located by this
assocrl plays. If no value is specified the generic identifier of
the anchrole conformant element is deemed to indicate the role
played by the locators. This attribute is ignored during deserialization.
type
type attribute can be used to identify the
single topic whose name characteristics can be used to display information
about the association role type. During deserialization the identified a
Topic item is connected to the AssociationRole item
as the associationRoleType. If the type attribute is specified, and if the topic referenced
by the type attribute has a name characteristic (base name or
display name) that lies within the scope that is appropriate to the topic map
user's context, the referenced topic name characteristic is used to characterize
the association type for the user. Otherwise the value of the
anchrole attribute (or, if the anchrole attribute is
not specified, the generic identifier) is used to characterize the
association.
Note: The topic referenced by the type attribute can have
many names in scopes designed for many different user contexts, including many
different natural languages and delivery platforms, while the
anchrole attribute or generic identifier is just a single token.
Therefore, use of a topic, referenced by the type attribute, to
characterize the association type offers far more flexibility and
representational power than the simple mnemonic naming facility offered by the
anchrole attribute or generic identifier.
The other attributes associated with the assocrl architectural
form are used by HyTime engines to manage the way links between lists of anchor
specifications (anchspec) can be traversed. No restrictions are
placed on the use of these anchor specifications by default. These attributes,
which will normally be assigned fixed values in the DTD of a specific
application, are ignored during deserialization.
The comment in ISO 13250 to the effect that "Default: No topic
characterizes the association role, unless this element is an occurrence (with
an occurrence role whose meaning is instance) of a topic whose subject is the
nature of the association role" would seem to be incorrect. How can an
association role be defined as an occurrence? The accompanying text suggesting
that an occurrence of the topic could point to assocrl element to
provide a link from the topic to its use introduces a problem in that the
scope of the occurrence can be different for each role of the association, or
for each instance of a particular role, which the model for assoc
seeks to make impossible.
NB: The wording of the comment seems to be
inherited from the wording used for facets.
Do we need to say anything about the class-instance relationships created by type attribute values? In particular should Note 43 of clause 5.3.2 be propagated to this specification? Should SAM make any reference to this relationship?
Should anchrole (and occrl) be used to create SAM Topic items and associations in the same way the linktype attributes for topics and assocs do?
addthms architectural formThe HyTM addthms architectural form is used to add a set of
scoping themes to some of the scoped elements within a topic map, which may be a
topic map other than the local one. This element allows topic maps to assign
differentiating scopes to elements in one or more topic maps that may need to be
merged with each other. Each document to have themes added must be declared as
an entity within the DTD using this architectural form.
The addtms architectural form is declared as follows:
<!element addthms -- Themes to be added --
-- (To scopes specified by topic map
documents and/or by topic links and/or
association links.) --
-- ISO 13250:2002 Clause 5.4 --
- O (TMBrid)* -- No content defined by the Topic Maps architecture -- >
<!attlist addthms -- Themes to be added --
-- ISO 13250:2002 Clause 5.4 --
addthems -- Added themes --
-- Themes to be added to the scopes
specified by the tmdocs and cassign attributes --
CDATA -- Reference --
-- Reftype: topic+ --
#REQUIRED
tmdocs -- Topic map document entities --
ENTITIES -- Constraint: Must be one or
more document entities of
topic map documents. --
#IMPLIED
cassign -- Characteristic assigners --
-- Elements that assign characteristics to
topics. The themes specified by the
addthems attribute are to be added to
the scopes within which the
characteristics they specify are
regarded as valid --
CDATA -- Reference --
-- Reftype: (topic | topname | basename |
dispname | sortname | occurs | assoc)+
--
#IMPLIED > |
The attributes have the following significance:
addthems
addthems attribute must be used to identify
the set of scoping topics that are to be assigned as themes to the identified
documents.
tmdocs
tmdocs attribute can be used to identify a set
of external entities that contain topicmap conforming elements to
which the topics identified by the addthems attribute are to
become part of the added themes set. If no value is specified the scoping
topics are assigned to the local elements of the types identified by the
cassigns attribute.
cassign
cassign attribute identifies the types of HyTM
architectural forms which are to have the scoping themes added to conformant
elements. facet architectural formThe HyTM facet architectural form is used to assign
property/value pairs to information resources including, but not restricted to,
those defined within the topic map. The property being assigned is identified by
facet conforming elements, which can assign multiple values to
multiple locations through the embedded set of fvalue conformant
elements.
During deserialization facet/value pairs are used to automatically generate referencable SAM Topic information items, while the locations assigned the values become SAM Occurrence information items for these Topic items.
The facet architectural form is declared as follows:
<!element facet -- Facet link --
-- ISO 13250:2002 Clause 5.5.1 --
- O (fvalue)+ >
<!attlist facet linktype -- Hyperlink type. --
-- Mnemonic name for the property (facet type). --
-- Note: Not displayed for the topic map
user if the topic referenced by the
type attribute has displayable
characteristics within the user's scope. --
NAME
#IMPLIED -- Default: Generic identifier --
type -- Facet type --
-- Topic whose subject is the property of
the property/value pair(s) being
assigned to the anchor(s). --
CDATA -- Reference --
-- Reftype: topic --
#IMPLIED -- Default: No facet type topic is
specified by this attribute. --
-- Note: A facet type topic might exist by
virtue of the fact that this facet link
is an occurrence (where the occurrence
role means "instance") of a topic whose
subject is the nature of the property,
however. --
-- HyTime attribute identifying form of link --
HyTime -- HyTime architectural form name --
NAME
#FIXED
varlink > |
The attributes have the following significance:
linktype
linktype attribute (which is a HyTime attribute
required by varlink conformant linking elements) can be used to
identify the type of a link being made to the resource by embedded
fvalue elements. If no value is specified the generic identifier
assigned to the element defined using this architectural form is
used. During deserialization a SAM Topic item is created to represent the
linktype or generic identifier and an association is made between this Topic
item and the Topic items created to represent the embedded facet values.
type
type attribute can be used to identify the
single topic whose names can be used to display information about the facet
type. If the type attribute is specified, and if the topic referenced
by the type attribute has a name characteristic (base name or
display name) that lies within the scope that is appropriate to the topic map
user's context, the referenced topic name characteristic is used to characterize
the association type for the user. Otherwise the value of the
linktype attribute (or, if the linktype attribute is
not specified, the generic identifier) is used to characterize the
association.
Note: The topic referenced by the type attribute can have
many names in scopes designed for many different user contexts, including many
different natural languages and delivery platforms, while the
linktype attribute or generic identifier is just a single token.
Therefore, use of a topic, referenced by the type attribute, to
characterize the association type offers far more flexibility and
representational power than the simple mnemonic naming facility offered by the
linktype attribute or generic identifier.
The facet architectural form is derived from the
varlink element type of the HyTime architecture.
Do we need to say anything about the class-instance relationships created by type attribute values? In particular should Note 49 of clause 5.5.1 be propagated to this specification?
fvalue architectural formThe HyTM fvalue architectural form is used to assign
user-defined values to the property identified by the containing facet
conformant element. The information resources with which the property/value pair
is associated are referenced through the HyTime location addresses specified as
the content of the element.
The fvalue architectural form is declared as follows:
<!element fvalue -- Facet value --
-- ISO 13250:2002 Clause 5.5.2 --
- O (%loc;)* >
<!attlist fvalue facetval -- Facet value name --
-- Token is value of property being assigned. --
CDATA
#IMPLIED -- Default: Facet value name is GI of element. --
type -- Facet value type --
-- Reference to a topic whose subject is
the significance of the facet value name. --
CDATA -- Reference --
-- Reftype: topic --
#IMPLIED -- Default: No facet value type topic is
specified by this attribute. --
-- Note: A facet value type topic might
exist by virtue of the fact that this
fvalue element is an occurrence (where
the occurrence role means "instance")
of a topic whose subject is the
significance of the facet value name,
however. --
-- HyTime attributes controlling how embedded locations are to be processed --
HyTime -- HyTime architectural form name --
NAME
#FIXED
anchspec
linktrav -- Hyperlink traversal rules --
-- Traversal between anchors of hyperlinks:
A any traversal or departure (EID)
D departure after internal arrival
E traversal after external arrival
I traversal after internal arrival
N no traversal after internal arrival
P no internal arrival
R return traversal after internal arrival --
NAMES -- Lextype: ("A"|"EI"|"ER"|"ED"|"EN"|"EP"|"ERD"|
"I"|"ID"|"D"|"N"|"P"|"R"|"RD") --
A
listtrav -- List traversal rules --
-- Traversal between members of list anchors:
A adjacent (both left and right) traversal
L left traversal
N no traversal
R right traversal
W wrapping traversal --
NAMES -- Lextype: ("A"|"AW"|"L"|"LW"|"N"|"R"|"RW") --
N -- Default: Show the whole list --
multmem
(single|list|corlist)
list
emptyanc
(error|noterror)
error
HyNames
CDATA
"anchrole facetval" >
|
The attributes have the following significance:
facetval
facetval attribute can be used to identify the
value to be assigned to the property (facet). If no value is specified the
generic identifier of the fvalue conformant element is deemed to
identify the value to be assigned.
type
type attribute can be used to identify the
single topic whose names can be used to display information about the assigned
value. If the type attribute is specified, and if the topic referenced
by the type attribute has a name characteristic (base name or
display name) that lies within the scope that is appropriate to the topic map
user's context, the referenced topic name characteristic is used to characterize
the association type for the user. Otherwise the value of the
facetval attribute (or, if the facetval attribute is
not specified, the generic identifier) is used to characterize the
association.
Note: The topic referenced by the type attribute can have
many names in scopes designed for many different user contexts, including many
different natural languages and delivery platforms, while the
facetval attribute or generic identifier is just a single token.
Therefore, use of a topic, referenced by the type attribute, to
characterize the association type offers far more flexibility and
representational power than the simple mnemonic naming facility offered by the
facetval attribute or generic identifier.
The other attributes associated with the fvalue architectural
form are used by HyTime engines to manage the way links between lists of anchor
specifications (anchspec) can be traversed. No restrictions are
placed on the use of these anchor specifications by default, the
facetval attribute being mapped to the default HyTime
anchrole attribute. These attributes, which will normally be
assigned fixed values in the DTD of a specific application, are ignored during
deserialization.
Do we need to say anything about the class-instance relationships created
by type attribute values? Why does type not have the same
relationship to facetval as applies for linktype for
facet conformant elements?
This section defines deserialization of instances of the HyTM syntax into the Standard Application Model.
There does not seem to be any way a HyTM stream could ever be created from a SAM record of a HyTM instance. Lars Marius thinks this matters, but his solution is based on extending HyTM to "follow improvements in XTM"! This would not, however, solve the problems caused by scopes being forced down to lower levels in the SAM structure than they are defined at within the HyTM representation. Unless there is some way of ensuring that shared scoping properties are specified at the highest permissible level any SAM --> HyTM representation will be less succinct than the HyTM representation used to create the SAM.
The input to the deserialization process is an element that conforms to the
HyTM topicmaps architectural form, together with all its descendant
nodes. The means by which this element node is selected are beyond the scope of
this specification.
Deserialization is achieved by processing each element node in the HyTM Grove of the input subtree in document order. For each element node encountered that conforms to a HyTM architectural form the operations specified in the subsection below labelled with the name of the architectural form are performed. TMBrid conformant elements and their contents are ignored, as are any other elements that are unknown to HyTM.
Ed Question: Elliot -- What distinctive feature identifies a HyTime document as containing a topic map? (The topic map document contains elements identifying it as a HyTime document, but there seems to be no way to link this to the topic map architectural form declaration provided in Annex B of ISO 13250!)
Issue (HyTM-namespace-support):
In Annex B of ISO 13250 a namespace aware processing instruction for identifying topic maps is defined. Must HyTM-based topic map documents contain this processing instruction when encoded in XML?
This section defines common processing rules used throughout this specification. These rules are referenced from the sections they apply to.
The system must turn information used to locate information within the topic map into a reference to the unique identifier used to identify the source topic. The mechanism for achieving this is system dependent.
Issue (HyTM-internal-references):
What form should be used to formalize addresses to objects that have not been assigned unique ids? What happens when something other than a topic is referenced if this does not have a unique identifier?
topicmap conformant
elementsA HyTM topicmap conformant element causes a SAM Topic Map item
to be created.
If the topicmap conformant element has an id
attribute a SAM Locator item is created, with the [notation] property set to
"XPointer" and the [reference] property being assigned an XML
Pointer that resolves to the unique identifier of the topicmap
conformant element, as defined in 3.1.1
Computing the location of an element. A reference to this Locator item
is added to the [source locators] property of the Topic Map item.
The list of topic identifiers provided in the addthems attribute
is recorded in a form that allows these topics to be used as scoping topics for
all embedded architectural elements.
Each topic and assoc conformant element within the
topicmap conformant element is processed to extract the specified
set of information items.
topic conformant elementsA HyTM topic conformant element causes a SAM Topic item to be
created and a reference to this item is inserted into the [topics] property of
the Topic Map item created by the enclosing topicmap conformant
element.
The id attribute causes a SAM Locator item to be created, with
the [notation] property set to "XPointer" and the [reference]
property being assigned an XML Pointer that resolves to the unique identifier of
the topic conformant element, as defined in 3.1.1
Computing the location of an element. A reference to this Locator item
is added to the [source locators] property of the Topic item.
The identity attribute, if it contains a value, causes a SAM
Locator item to be created with the [notation] property set to
"HyTM" and the [reference] property set to a UTF-8 string
containing the value of the identity attribute. This Locator item
is added to the [subject identifiers] property of the Topic item.
Are there circumstances where the value of the identity attribute cannot validly converted to UTF-8?
If the types attribute contains a valid reference to one or more
topics the rules defined in Clause 5.1 of [SAM] are applied to create an
association between this topic and each of the topics identified within the
attribute value. Each association will have its [type] property set to a
reference to a Topic item whose [subject identifiers] property contains a
reference to a Locator item whose notation has been set to "URI"
and whose [reference] property is
http://psi.topicmaps.org/sam/1.0/#type-instance. One of the two
association roles identified by each created association must have a [type]
property set to reference to a Topic item whose [subject identifiers] property
contains a reference to a Locator item whose notation has been set to
"URI" and whose [reference] property is
http://psi.topicmaps.org/sam/1.0/#instance. The [role player]
property of this association role must reference this Topic item. The other
association role identified by each created association must have a [type]
property set to reference to a Topic item whose [subject identifiers] property
contains a reference to a Locator item whose notation has been set to
"URI" and whose [reference] property is
http://psi.topicmaps.org/sam/1.0/#type. The [role player] property
of this association role must reference the Topic item associated with one of
the topics identified in the types attribute.
The list of topic identifiers provided in the scope attribute is
recorded in a form that allows these topics to be added as scoping topics to all
embedded architectural elements. Any additional themes that are assigned to
topic conformant elements by an addthms conformant
element within the same topic map, or by the addthems attribute of
the containing topicmap conformant element, are added to the list
provided by the scope attribute.
If the value assigned to the linktype attribute has not been
used as the value of the linktype attribute for a previous
topic conformant element, a SAM Topic item is created whose [topic
names] property contains a reference to a newly-created Topic Name item whose
[value] property is set to "~topic-xxx-linktype" where
xxx is the value of the linktype attribute. If a value
has not been assigned to the linktype attribute and the generic
identifier assigned to the topic conformant element has not
previously occurred as the generic identifier of a topic conformant
element, a SAM Topic item is created whose [topic names] property contains a
reference to a newly-created Topic Name item whose [value] property is set to
"~topic-xxx-GI" where xxx is the unique identifier
assigned to the topic conformant element being processed.
A SAM Association item is created which its [type] property set to a
reference to a Topic item whose [subject identifiers] property contains a
reference to a Locator item whose notation has been set to "URI"
and whose [reference] property is
http://psi.topicmaps.org/hytm/1.0/#topic-linktype. One of the two
association roles identified by each created association must have a [type]
property set to reference to a Topic item whose [subject identifiers] property
contains a reference to a Locator item whose notation has been set to
"URI" and whose [reference] property is
http://psi.topicmaps.org/hytm/1.0/#topic. The [role player]
property of this association role must reference the unique identifier of this
Topic item, as specified in its id attribute. The other association
role identified by each created association must have a [type] property set to
reference to a Topic item whose [subject identifiers] property contains a
reference to a Locator item whose notation has been set to "URI"
and whose [reference] property is
http://psi.topicmaps.org/hytm/1.0/#linktype. The [role player]
property of this association role must reference the Topic item that represents
the value of the linktype attribute or the generic identifier of
this element.
Should we define a fixed topic or PSI that should be referenced by the [type] property for any name created during the deserialization of
linktypeattributes or the GI name used in the absence of such a value for this attribute? (A predefined type might simplify the separation of auto-generated topics from those defined manually.)
topname conformant
elementsA HyTM topname architectural form has no direct effect on the
information set, but changes the interpretation of its child elements.
After having all the added themes assigned to topname conformant
elements using an addthms element that references this topic map,
the list of topic identifiers provided in the scope attribute is
recorded in a form that allows these topics to be added as scoping topics to all
embedded architectural elements.
If the topname element has an id attribute that
attribute is ignored.
basename conforrmant
elementsA HyTM basename conformant element causes a SAM Topic Name item
to be created, and reference to it to be added to the [topic name] property of
the Topic item created by the parent topic element.
The parsed character data that forms the content of a basename
conformant element is recorded as the [value] property of the Topic Name
item.
If the basename conformant element has an id
attribute a SAM Locator item is created from it, with the [notation] property
set to "XPointer" and the [reference] property being assigned an
XML Pointer that resolves to the unique identifier assigned to this
basename conformant element, as defined in 3.1.1
Computing the location of an element. A reference to the Locator item is
added to the [source locators] property of the Topic Name item.
The list of topic identifiers provided in the scope
attribute, if present, is concatenated with the list of scoping topics assigned
to the enclosing topname conformant element, and those of its
parent topic conformant element, together with the added themes
assigned to the enclosing topicmap conformant element. Any
additional themes that are assigned to basename conformant elements
by an addthms conformant element within the same topic map are
added to the list. For each of the topics in the concatenated list a reference
to the Topic item created to represent the referenced topic is added to the
[scope] property of the Topic Name item.
dispname conformant
elementsA HyTM dispname conformant element causes a SAM Variant item to
be created, and reference to it to be added to the [variants] property of each
of the Topic Name items created for basename conformant elements
that are contained in the parent topname conformant element.
If the dispname conformant elements contains parsed character
data the string is recorded as the [value] property of the Variant item. If the
content of the dispname conformant element is defined within a
TMBrid conformant topic map bridging element the TMBrid element and
any child elements and their contents are serialized as a UTF-8 string before
being recorded within the [value] property.
Issue (HyTM-TMBrid-serialization):
Is it valid to require that the serialized string be UTF-8 conformant, or should it remain in the character set used for the HyTime source document? (Same rules should apply for the contents of location elements used to locate occurrences, etc.)
If the dispname conformant element has an id
attribute a SAM Locator item is created from it, with the [notation] property
set to "XPointer" and the [reference] property being assigned an
XML Pointer that resolves to the unique identifier assigned to the
dispname conformant element, as defined in 3.1.1
Computing the location of an element. A reference to this Locator item
is added to the [source locators] property of the Variant item.
The list of topic identifiers provided in the scope attribute,
if present, is concatenated with the list of scoping topics assigned to the
enclosing topname conformant element, and those of its parent
topic conformant element, together with the added themes assigned
to the enclosing topicmap conformant element. Any additional themes
that are assigned to dispname conformant elements by an
addthms conformant element within the same topic map are added to
the list. For each of the topics in the concatenated list a reference to the
Topic item created to represent the referenced topic is added to the [scope]
property of the Variant item.
Issue (HyTM-dispname-sortname):
How can a dispname variant be distinguished from a sortname variant? Graham Moore suggested that the Variant item be associated with a predefined SAM Topic item that has a subject identifier whose [reference] property contains
http://psi/topicmaps.org/sam/1.0/#sort. The problem with this is that no such link to a Topic item is shown in Section 3.6 of the SAM. Section 5.3 of the SAM model indicates that "A variant item that has a topic with this subject indicator (http://psi/topicmaps.org/sam/1.0/#display) in its [scope] property .... " should be used. The [scope] property is supposed to contain "a reference to the Topic item created to represent the referenced topic". The suggested PSI does not conform to these rules, so we must create a predefined Topic item that can be referenced. This link needs to be recorded in Section 3.6 of the SAM. An alternative approach might be to use a [type] property, of the type assigned to the Base Name item but not used for that item.
sortname conformant
elementsA HyTM sortname conformant element causes a SAM Variant item to
be created, and reference to it to be added to the [variants] property of each
of the Topic Name items created for basename conformant elements
that are contained in the parent topname conformant element. The
Variant item is associated with a predefined SAM Topic item that has a subject
identifier whose [reference] property contains
http://psi/topicmaps.org/sam/1.0/#sort.
The parsed character data becomes the [value] property of the Variant item.
If the sortname conformant element has an id
attribute a SAM Locator item is created from it, with the [notation] property
set to "XPointer" and the [reference] property being assigned an
XML Pointer that resolves to the unique identifier of the sortname
conformant element, as defined in 3.1.1
Computing the location of an element. A reference to the Locator item is
added to the [source locators] property of the Variant item.
The list of topic identifiers provided in the scope attribute,
if present, is concatenated with the list of scoping topics assigned to the
enclosing topname conformant element, and those of its parent
topic conformant element, together with the added themes assigned
to the enclosing topicmap conformant element. Any additional themes
that are assigned to sortname conformant elements by an
addthms conformant element within the same topic map are added to
the list. For each of the topics in the concatenated list a reference to the
Topic item created to represent the referenced topic is added to the [scope]
property of the Variant item.
How can a sortname variant be distinguished from a dispname variant? Graham Moore suggested that the Variant item be associated with a predefined SAM Topic item that has a subject identifier whose [reference] property contains
http://psi/topicmaps.org/sam/1.0/#sort. The problem with this is that no such link to a Topic item is shown in Section 3.6 of the SAM. Section 5.3 of the SAM model indicates that "A variant item that has a topic with this subject indicator (http://psi/topicmaps.org/sam/1.0/#sort) in its [scope] property .... " should be used. The [scope] property is supposed to contain "a reference to the Topic item created to represent the referenced topic". The suggested PSI does not conform to these rules, so we must create a predefined Topic item that can be referenced. This link needs to be recorded in Section 3.6 of the SAM. An alternative approach might be to use a [type] property, of the type assigned to the Base Name item but not used for that item.
occurs conformant
elementsA HyTM occurs conformant element causes a SAM Occurrence item to
be created, and a reference to it to be added to the [occurrences] property of
the Topic item created by the parent topic conformant element.
The HyTime location specifications that form the contents of an
occurs conformant element are serialized into a string of UTF-8
characters and becomes the [value] property of the Occurrence item.
What happens if there is more than one locator? Do we need to create one Occurrence item for each such locator? [Graham Moore thinks we should, but I am not so sure.] Should the string be normalized to contain only UTF-8 compliant characters or left in the original character set associated with the HyTime DTD?
If the occurs conformant element has an id
attribute a SAM Locator item is created, with the [notation] property set to
"XPointer" and the [reference] property being assigned an XML
Pointer that resolves to the unique identifier assigned to the
occurs element, as defined in 3.1.1
Computing the location of an element. A reference to this Locator item
is added to the [source locators] property of the Occurrence item.
The list of topic identifiers provided in the scope attribute,
if present, is concatenated with the list of scoping topics assigned to the
parent topic conformant element, together with the added themes
assigned to the enclosing topicmap conformant element. Any
additional themes that are assigned to occurs conformant elements
by an addthms conformant element within the same topic map are
added to the list. For each of the topics in the concatenated list a reference
to the Topic item created to represent the referenced topic is added to the
[scope] property of the Occurrence item.
If the type attribute contains a valid reference to a topic in
the current topic map a reference to the Topic item created to represent the
referenced topic is added to the [type] property of the Occurrence
item.
assoc conformant elementsA HyTM assoc conformant element causes a SAM Association item to
be created, and a reference to it to be added to the [association] property of
the Topic Map item.
If the assoc conformant element has an id attribute
a Locator item is created, with the [notation] property set to
"XPointer" and the [reference] property being assigned an XML
Pointer that resolves to the unique identifier assigned to the
assoc element, as defined in 3.1.1
Computing the location of an element. A reference to this Locator item
is added to the [source locators] property of the Association item.
The list of topic identifiers provided in the scope attribute,
if present, is concatenated with the added themes assigned to the enclosing
topicmap conformant element. Any additional themes that are
assigned to assoc conformant elements by an addthms
conformant element within the same topic map are added to the list. For each of
the topics in the concatenated list a reference to the Topic item created to
represent the referenced topic is added to the [scope] property of the
Association item.
If the value assigned to the linktype attribute has not been
used as a linktype for a previous assoc conformant element, a SAM
Topic item is created whose [topic names] property contains a reference to a
newly-created Topic Name item whose [value] property is set to
"~assoc-yyy-linktype" where yyy is the value of the
linktype attribute. If a value has not been assigned to the
linktype attribute and the generic identifier of the
assoc conformant element has not been used for a previous
assoc conformant element which had no value for its
linktype attribute, a SAM Topic item is created whose [topic names]
property contains a reference to a newly-created Topic Name item whose [value]
property is set to "~assoc-yyy-GI" where yyy is the
generic identifier assigned to the assoc conformant element being
processed.
A SAM Association item is created which its [type] property set to a
reference to a Topic item whose [subject identifiers] property contains a
reference to a Locator item whose notation has been set to "URI"
and whose [reference] property is
http://psi.topicmaps.org/hytm/1.0/#assoc-linktype. One of the two
association roles identified by each created association must have a [type]
property set to reference to a Topic item whose [subject identifiers] property
contains a reference to a Locator item whose notation has been set to
"URI" and whose [reference] property is
http://psi.topicmaps.org/hytm/1.0/#assoc. The [role player]
property of this association role must reference this Association item. The
other association role identified by each created association must have a [type]
property set to reference to a Topic item whose [subject identifiers] property
contains a reference to a Locator item whose notation has been set to
"URI" and whose [reference] property is
http://psi.topicmaps.org/hytm/1.0/#linktype. The [role player]
property of this association role must reference the Topic item that represents
the value of the linktype attribute or the generic identifier of
this element.
If the type attribute contains a valid reference to a topic in
the current topic map a reference to the Topic item created to represent the
referenced topic is added to the [type] property of the Association
item.
assocrl conformant
elementsA HyTM assocrl conformant element causes a SAM Association Role
item to be created, and a reference to it to be added to the [roles] property of
the parent Association item.
For each topic identified by the embedded HyTime location addresses a reference to the Topic item created to represent the referenced topic is added to the [role playing topic] property of the Association Rule item.
If the assocrl conformant element has an id
attribute a SAM Locator item is created, with the [notation] property set to
"XPointer" and the [reference] property being assigned an XML
Pointer that resolves to the unique identifier assigned to the
assocrl conformant element, as defined in 3.1.1
Computing the location of an element. A reference to this Locator item
is added to the [source locators] property of the Association Rule item.
If the type attribute contains a valid reference to a topic in
the current topic map a reference to the Topic item created to represent the
referenced topic is added to the [type] property of the Association Role
item.
addthm conformant
elementsA HyTM addthm conformant element is used to assign additional
scoping properties to all elements of a specified types within a clearly
identified set of topic maps. The cassign attribute lists the types
of elements the themes are to be assigned to. If no value is specified all
architecturally conforming elements other than those related to the
facet and addthms architectural forms are assigned the
listed scopes. The tmdocs attribute identifies entity declarations
that reference the documents to which the themes are to be added. If no value is
specified the themes are added to those of the topic map containing the
definitions.
Where no value is assigned to the tmdocs attribute, or one of
the entities referenced by the tmdocs attribute is the current
document, the list of topic identifiers provided in the addthems
attribute is recorded in a form that allows these topics to be added to the
requested set of embedded architectural elements identified by the values
assigned to the cassign attribute.
How can the SAM process themes to be added to maps other than the local one?.
facet conformant
elementsEach HyTM facet conformant element requires the creation of a
new SAM Topic item that can be associated with each of the values assigned to
the facet by fvalue conformant elements.
If a value assigned to the linktype attribute has not been used
as the linktype value for a previous facet conformant
element a new SAM Topic item is created whose [topic names] property contains a
reference to a newly-created Topic Name item whose [value] property is set to
"~facet-zzz-linktype" where zzz is the value of the
linktype attribute. If a value has not been assigned to the
linktype attribute and the generic identifier of the
facet conformant element has not been used on any previous
facet conformant element that had no value for its
linktype attribute, a SAM Topic item is created whose [topic names]
property contains a reference to a newly-created Topic Name item whose [value]
property is set to "~facet-zzz-GI" where zzz is the
generic identifier assigned to the facet conformant element being
processed.
If the type attribute contains a valid reference to a topic in
the current topic map the rules defined in Clause 5.1 of [SAM] are applied to
create an association between the topic created to name the facet's property
type and the topic identified within the type attribute value. Each
association will have its [type] property set to a reference to a Topic item
whose [subject identifiers] property contains a reference to a Locator item
whose notation has been set to "URI" and whose [reference] property
is http://psi.topicmaps.org/sam/1.0/#type-instance. One of the two
association roles identified by the association must have a [type] property set
to reference to a Topic item whose [subject identifiers] property contains a
reference to a Locator item whose notation has been set to "URI"
and whose [reference] property is
http://psi.topicmaps.org/sam/1.0/#instance. The [role player]
property of this association role must reference the facet naming Topic
item. The other association role identified by the association must have a
[type] property set to reference to a Topic item whose [subject identifiers]
property contains a reference to a Locator item whose notation has been set to
"URI" and whose [reference] property is
http://psi.topicmaps.org/sam/1.0/#type. The [role player] property
of this association role must reference the Topic item associated with the topic
identified in the type attribute.
fvalue conformant
elementsEach HyTM fvalue conformant element requires the creation of a
SAM Topic item to represent the value being assigned to its parent facet. The
locations to which the value is assigned become Occurrence items for that that
topic.
If the valueassigned to the facetval attribute has not been used
previously to define the same facet/value pairing, a new SAM Topic item is
created whose [topic names] property contains a reference to a newly-created
Topic Name item whose [value] property is set to
"~facet-zzz-value-vvv" where vvv is the value of the
facetval attribute and zzz is the
linktype or generic identifier of the containing facet
conformant element. If a value has not been assigned to the
facetval attribute and the generic identifier of the
fvalue conformant element has not been used without a value for the
facetval attribute within the same type of facet
conformant element, a SAM Topic item is created whose [topic names] property
contains a reference to a newly-created Topic Name item whose [value] property
is set to "~facet-zzz-value-vvv-GI" where vvv is the
generic identifier assigned to the fvalue conformant element being
processed and zzz is the linktype or generic
identifier of the containing facet conformant element.
The HyTime location specifications that form the contents of a
fvalue conformant element are serialized into a UTF-8 string of
characters that becomes the [value] property of a newly-created SAM Occurrence
item. A reference to this Occurrence item is placed in the [occurrences]
property of the Topic item created to represent the facet/value pair.
What happens if there is more than one locator? Do we need to create one Occurrence item for each locator? Should the string be normalized to UTF-8?
If the type attribute contains a valid reference to a topic
within the current topic map the rules defined in Clause 5.1 of [SAM] are
applied to create an association between the facet value/pair and the topic
identified within the attribute value. Each association will have its [type]
property set to a reference to a Topic item whose [subject identifiers] property
contains a reference to a Locator item whose notation has been set to
"URI" and whose [reference] property is
http://psi.topicmaps.org/sam/1.0/#type-instance. One of the two
association roles identified by the association must have a [type] property set
to reference to a Topic item whose [subject identifiers] property contains
a reference to a Locator item whose notation has been set to "URI"
and whose [reference] property is
http://psi.topicmaps.org/sam/1.0/#instance. The [role player]
property of this association role must reference the Topic item representing the
facet/value pair. The other association role identified by the association must
have a [type] property set to reference to a Topic item whose [subject
identifiers] property contains a reference to a Locator item whose notation has
been set to "URI" and whose [reference] property is
http://psi.topicmaps.org/sam/1.0/#type. The [role player] property
of this association role must reference the Topic item associated with the topic
identified in the type attribute.
fvalue conformant element within a
specific facet conformant element a SAM Association element is
created to link the facet property naming Topic item to the facet value Topic
item. Each such Association item will have its [type] property set to a
reference to a Topic item whose [subject identifiers] property contains a
reference to a Locator item whose notation has been set to "URI"
and whose [reference] property is
http://psi.topicmaps.org/hytm/1.0/#facet-value. One of the two
association roles identified by the association must have a [type] property set
to reference to a Topic item whose [subject identifiers] property contains
a reference to a Locator item whose notation has been set to "URI"
and whose [reference] property is
http://psi.topicmaps.org/hytm/1.0/#facet. The [role player]
property of this association role must reference the Topic item used to record
the naming mnemonic assigned to the facet conformant element. The
other association role identified by the association must have a [type] property
set to reference to a Topic item whose [subject identifiers] property contains a
reference to a Locator item whose notation has been set to "URI"
and whose [reference] property is
http://psi.topicmaps.org/hytm/1.0/#value. The [role player]
property of this association role must reference the Topic item used to record
the mnemonic used to identify the fvalue conformant element. A topic map processor conforms to this specification provided that it meets all the requirements given below.
???.
Ed. Note:
What conformance issues can be raised, given that those defined in the SAM constraints and XML well formedness rules cannot apply to HyTime documents.
To be completed |
To be completed |
The following is an example of a topic map architectural support declaration as it might appear in a topic map document that is expressed using SGML.
NOTE: The following example conforms to Annex A.3 of ISO/IEC 10744:1997.
<!NOTATION Topicmap
PUBLIC "ISO/IEC 13250:2000//NOTATION AFDR ARCBASE
Topic Maps//EN"
>
<!ATTLIST #NOTATION TopicMap
ArcFormA NAME Topicmap
ArcNamrA NAME TMNames
ArcSuprA NAME sTopMap
ArcIgnDA NAME TMIgnD
ArcDocF NAME #FIXED topicmap
ArcDTD CDATA "TMDTD"
ArcQuant CDATA #FIXED "NAMELEN 12"
ArcDataF NAME #FIXED TMBridN
ArcBridF NAME #FIXED TMBrid
ArcAuto (ArcAuto|nArcAuto) nArcAuto
>
<!NOTATION AFDRMeta
PUBLIC "ISO/IEC 10744//NOTATION AFDR Meta-DTD
Notation//EN"
>
<!ENTITY TMDTD
PUBLIC "ISO/IEC 13250:2000//DTD AFDR Meta-DTD
Topic Maps//EN"
CDATA AFDRMeta
> |