diff --git a/specification/archSpec/base/cascading-of-attributes-from-map-to-map.dita b/specification/archSpec/base/cascading-of-attributes-from-map-to-map.dita
index f8b0e628..1019690e 100644
--- a/specification/archSpec/base/cascading-of-attributes-from-map-to-map.dita
+++ b/specification/archSpec/base/cascading-of-attributes-from-map-to-map.dita
@@ -23,6 +23,7 @@
translate
processing-role
cascade
+ subjectrefs
As with values that cascade within a map, the cascading is additive
if the attribute permits multiple values,
diff --git a/specification/archSpec/base/cascading-of-roles-in-specialized-maps.dita b/specification/archSpec/base/cascading-of-roles-in-specialized-maps.dita
index 1cb88cef..3a3a0b2c 100644
--- a/specification/archSpec/base/cascading-of-roles-in-specialized-maps.dita
+++ b/specification/archSpec/base/cascading-of-roles-in-specialized-maps.dita
@@ -16,9 +16,9 @@
-
- We need to look at the instances of "should" in this topic. Can they be recast? Do we need
- to introduce RFC-2119 language?
+
+ Proposal #670, championed by Robert Anderson, will rework this
+ content.
The semantic role reflects the class hierarchy of
the referencing topicref elementmapref element references a DITA map (giving
it the role of "DITA map").
- The following paragraph includes the
- statement: "the non-default behavior should be clearly specified"We do not say how or
- where. For mapgroup, I believe it is only specified here in this topic. I think either we
- need this as part of every mapgroup element definition, in "Processing expectations", or we
- need a clear table here listing every element where this behavior does not
- apply.
+
Unless otherwise instructed, a specialized topicref element that
references a map supplies a role for the referenced content. This means that, in effect, the
class attribute of the referencing element cascades to top-level topicref
diff --git a/specification/archSpec/base/example-a-subject-scheme-map-used-to-define-taxonomic-subjects.dita b/specification/archSpec/base/example-a-subject-scheme-map-used-to-define-taxonomic-subjects.dita
new file mode 100644
index 00000000..2eee5866
--- /dev/null
+++ b/specification/archSpec/base/example-a-subject-scheme-map-used-to-define-taxonomic-subjects.dita
@@ -0,0 +1,71 @@
+
+
+
+ Example: A subject scheme map used to define taxonomic
+ subjects
+ A subject scheme map can be used to define taxonomic subjects.
+ Once defined, the subjects can be referenced by applying a
+ subjectrefs attribute to a
+ topicref element.
+
+
+
+ examplessubject scheme
+ mapsdefining taxonomic
+ subjects
+
+
+
+
+ The following subject scheme map defines a set of subjects that are
+ used to classify content:
+ <subjectScheme>
+ <subjectdef keys="content-types">
+ <subjectdef keys="conceptual-material"/>
+ <subjectdef keys="reference"/>
+ <subjectdef keys="tutorial"/>
+ </subjectdef>
+ <subjectdef keys="operating-systems">
+ <subjectdef keys="linux"/>
+ <subjectdef keys="macosx"/>
+ <subjectdef keys="windows"/>
+ </subjectdef>
+ <subjectdef keys="user-tasks">
+ <subjectdef keys="administering"/>
+ <subjectdef keys="developing"/>
+ <subjectdef keys="installing"/>
+ <subjectdef keys="troubleshooting"/>
+ </subjectdef>
+</subjectScheme>
+ The keys assigned to the subject definitions can be referenced by
+ specifying the subjectrefs attribute on topic
+ references in a navigation map:
+ <map>
+<title>User assistance for the Acme Widget</title>
+<!-- ... -->
+<topicref keyref="install-overview" subjectrefs="installing">
+ <topicref keyref="install-linux"/>
+ <topicref keyref="install-macosx"/>
+ <topicref keyref="install-windows"/>
+ <topicref keyref="install-troubleshooting" subjectrefs="troubleshooting"/>
+</topicref>
+<!-- ... -->
+</map>
+ Because the subjectrefs attribute cascades, the
+ effective value of the above markup is the same as the following
+ markup:
+ <map>
+<title>User assistance for the Acme Widget</title>
+<!-- ... -->
+<topicref keyref="install-overview" subjectrefs="installing">
+ <topicref keyref="install-linux" subjectrefs="installing"/>
+ <topicref keyref="install-macosx" subjectrefs="installing"/>
+ <topicref keyref="install-windows" subjectrefs="installing"/>
+ <topicref keyref="install-troubleshooting" subjectrefs="installing troubleshooting"/>
+</topicref>
+<!-- ... -->
+</map>
+
+
diff --git a/specification/archSpec/base/example-cascade-map-to-map-attributes.dita b/specification/archSpec/base/example-cascade-map-to-map-attributes.dita
index 79713a4a..bf29a9d9 100644
--- a/specification/archSpec/base/example-cascade-map-to-map-attributes.dita
+++ b/specification/archSpec/base/example-cascade-map-to-map-attributes.dita
@@ -15,12 +15,13 @@
Assume the following references in
- test.ditamap:<map>
+ test.ditamap:<map>
<topicref href="a.ditamap" format="ditamap" toc="no"/>
- <mapref href="b.ditamap" audience="developer"/>
- <mapref href="c.ditamap#branch2" platform="myPlatform"/>
+ <mapref href="b.ditamap" audience="developer"/>
+ <mapref href="c.ditamap#branch2" platform="myPlatform"/>
+ <mapref> href="d.ditamap" subjectrefs="puzzles"/>
</map>
-
+
- The map a.ditamap is treated as if
toc="no" is specified on the root
map element. This means that the topics
@@ -29,15 +30,27 @@
except for branches within the map that explicitly set
toc="yes".
- The map b.ditamap is treated as if
- audience="developer" is set on the root map
- element. If the audience attribute is already set on the root
- map element within b.ditamap, the value
- "developer" is added to any existing values.
+ audience="developer" is set on the root
+ map element. If the
+ audience attribute is already set on the root
+ map element within
+ b.ditamap, the value
+ developer is added to any existing
+ values.
- The element with id="branch2" within the map
- c.ditamap is treated as if platform="myPlatform" is
- specified on that element. If the platform attribute is already specified
- on the element with id="branch", the valuemyPlatform is
- added to existing values.
+ c.ditamap is treated as if
+ platform="myPlatform" is specified on that
+ element. If the platform attribute is already
+ specified on the element with id="branch", the
+ valuemyPlatform is added to existing
+ values.
+ - The map d.ditamap is treated as if
+ subjectrefs="puzzles" is set on the root
+ map element. If the
+ subjectrefs attribute is already set on the root
+ map element within
+ d.ditamap, the value
+ puzzles is added to any existing values.
diff --git a/specification/archSpec/base/example-cascading-topicref-roles.dita b/specification/archSpec/base/example-cascading-topicref-roles.dita
index c30cec3b..4601a751 100644
--- a/specification/archSpec/base/example-cascading-topicref-roles.dita
+++ b/specification/archSpec/base/example-cascading-topicref-roles.dita
@@ -17,6 +17,10 @@
+
+ Proposal #670, championed by Robert Anderson, will rework this
+ content.
+
Consider the scenario of a chapter element from the Book map
specialization that references a DITA map. This scenario could take several forms:
diff --git a/specification/archSpec/base/processing-cascading-attributes-in-a-map.dita b/specification/archSpec/base/processing-cascading-attributes-in-a-map.dita
index 857abbf6..e7eab271 100644
--- a/specification/archSpec/base/processing-cascading-attributes-in-a-map.dita
+++ b/specification/archSpec/base/processing-cascading-attributes-in-a-map.dita
@@ -5,6 +5,10 @@
Certain rules apply to processors when they process cascading attributes in a
map.
+
+ Robert Anderson has an open action item to rework the ordered
+ list.
+
When determining the value of an attribute, processors MUST evaluate each attribute on each
individual element in a specific order. This
diff --git a/specification/archSpec/base/subject-scheme-maps.ditamap b/specification/archSpec/base/subject-scheme-maps.ditamap
index 6eb2f93a..cada8e7d 100644
--- a/specification/archSpec/base/subject-scheme-maps.ditamap
+++ b/specification/archSpec/base/subject-scheme-maps.ditamap
@@ -9,8 +9,11 @@
-
+
+
+
diff --git a/specification/archSpec/base/subjectSchema.dita b/specification/archSpec/base/subjectSchema.dita
index 109078de..fbf34661 100644
--- a/specification/archSpec/base/subjectSchema.dita
+++ b/specification/archSpec/base/subjectSchema.dita
@@ -34,12 +34,10 @@
value that is not one of the controlled values.
Controlled
values can also be used to select content for
filtering and flagging at build time.
- Subject definitions are classifications and
- sub-classifications that compose a tree. Subject definitions provide semantics that can
- be used in conjunction with taxonomies and ontologies. In conjunction with the
- classification domain, subject definitions can be used for retrieval and traversal of
- the content at run time when used with information viewing applications that provide
- such functionality.
+ Subject definitions are classifications and
+ sub-classifications that compose a tree. Subject definitions provide
+ semantics that can be used in conjunction with taxonomies and
+ ontologies.
Key references to controlled values are resolved to a key
definition using the same precedence rules as apply to any other key. However, once a
key is resolved to a controlled value, that key reference does not typically result in
diff --git a/specification/archSpec/base/the-subjectrefs-attribute.dita b/specification/archSpec/base/the-subjectrefs-attribute.dita
new file mode 100644
index 00000000..0ec500f4
--- /dev/null
+++ b/specification/archSpec/base/the-subjectrefs-attribute.dita
@@ -0,0 +1,22 @@
+
+
+
+ The subjectrefs attribute
+ The subjectrefs attribute specifies one or
+ more keys that are defined by a subject definition in a subject scheme
+ map. Multiple values are separated by white space.
+
+
+
+ subjectrefsoverview
+
+
+
+
+ The subjectrefs attribute cascades. It can be used
+ on a topicref element to associate the
+ referenced topic with a subject defined in a subject scheme map.
+ The subjectrefs attribute has no meaning if it is
+ specified on a key definition that does not reference a resource.
+
+
diff --git a/specification/common/conref-file.dita b/specification/common/conref-file.dita
index dd50ee1d..416e6a96 100644
--- a/specification/common/conref-file.dita
+++ b/specification/common/conref-file.dita
@@ -126,6 +126,7 @@ to alert more birds to the presence of your bird feeder.</shortdesc>
translate
processing-role
cascade
+ subjectrefs
diff --git a/specification/resources/DITA2.0-spec.ditaval b/specification/resources/DITA2.0-spec.ditaval
index db796972..0ba0fa79 100644
--- a/specification/resources/DITA2.0-spec.ditaval
+++ b/specification/resources/DITA2.0-spec.ditaval
@@ -121,5 +121,13 @@
◄
-->
+
+
+