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
linktype
attributes 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 > |