3.1.5.2.4 topicSubjectTable

The <topicSubjectTable> element is a specialized relationship table which allows a map to use relationship tables to associate topics with subjects. Tools (such as search tools) may use these classifications to retrieve content that is relative to a specific subject or combination of subjects.

In a <topicSubjectTable>, the first column is reserved for references to content. Subsequent columns are reserved for subjects that classify the content, each column supplying the subjects for a different category as identified in the header. The table resembles a traditional relationship table in which the first column identifies the source and the other columns identify the targets, but the relationship reflects the subjects covered by the content rather than linking between documents.

In a traditional reltable, topics in any given column establish relationships with topics in every other cell of the same row. In a <topicSubjectTable>, topics in the first column are related to all of the subjects in the row, but no relationship is implied between subjects in different columns of the same row. Instead, relationships are defined between subjects using a subject scheme map (which provides a <subjectRelTable> element for non-hierarchical relationships between subjects).

Contains

Doctype

Content model

classifyMap

( (title) then (topicmeta) (optional) then (topicSubjectHeader) (optional) then (topicSubjectRow) (one or more) )

Contained by

Doctype

Content model

classifyMap

map

Inheritance

+ map/reltable classify-d/topicSubjectTable

Example

The topic subject table below classifies topics with goals for retrieval and with operating systems for filtering. The map makes use of definitions in a subject scheme map, defined separately.

Figure 3-33 Subject scheme map

<subjectScheme>
    <hasKind>
        <subjectdef href="goalType.dita" keys="goal">
            <subjectdef href="performanceGoal.dita" keys="performance"/>
            <subjectdef href="reliabilityGoal.dita" keys="reliability"/>
        </subjectdef>
        <subjectdef href="operatingSystem.dita" keys="os">
            <subjectdef href="linuxOS.dita" keys="linux"/>
            <subjectdef href="unixOS.dita" keys="unix"/>
            <subjectdef href="windowsOS.dita" keys="windows"/>
        </subjectdef>
    </hasKind>
</subjectScheme>

Figure 3-34 Topic subject table

The following <topicSubjectTable> classifies several topics according to subjects in the previous map. As with any <topicSubjectTable>, the first column is used to specify topics. In this specific example, the second column is used to specify a goal, based on the "goal" subject in the header. The third column is used to specify an operating system. Based on those definitions, the following classifications are made by this table:

<map>
...
<topicSubjectTable>
  <topicSubjectHeader>
    <topicCell type="task"/>
    <subjectCell>
      <topicsubject keyref="goal"/>
    </subjectCell>
    <subjectCell>
      <topicapply keyref="os"/>
    </subjectCell>
  </topicSubjectHeader>
  <topicSubjectRow>
    <topicCell>
      <topicref href="webServerStart.dita" navtitle="Configuring cron for efficient startup"/>
      <topicref href="dbDisk.dita" navtitle="Allocating raw storage"/>
    </topicCell>
    <subjectCell>
      <topicsubject keyref="performance"/>
    </subjectCell>
    <subjectCell>
      <topicapply keyref="linux"/>
      <topicapply keyref="unix"/>
    </subjectCell>
  </topicSubjectRow>
  <topicSubjectRow>
    <topicCell>
      <topicref href="webLogAnalyze.dita" navtitle="Analyzing web logs for service issues"/>
      <topicref href="webDenialService.dita" navtitle="Detecting denial-of-service attacks"/>
    </topicCell>
    <subjectCell>
      <topicsubject keyref="reliability"/>
    </subjectCell>
    <subjectCell>
      <topicapply keyref="linux"/>
      <topicapply keyref="unix"/>
      <topicapply keyref="windows"/>
    </subjectCell>
  </topicSubjectRow>
  ...
</topicSubjectTable>
</map>

A table view of this <topicSubjectTable> might look as follows. This is only one of many possible views; to aid in understanding the example, the content topics in the first column are displayed using only their titles, and related subjects are displayed using only their keyref attribute value.

task

goal

os

Configuring cron for efficient startup

Allocating raw storage

performance

linux
unix

Analyzing web logs for service issues

Detecting denial-of-service attacks

reliability

linux
unix
windows

Attributes

Name

Description

Data Type

Default Value

Required?

topicref-atts-no-toc attribute group (collection-type, processing-role, type, scope, locktitle, format, linking, toc, print, search, chunk)

A related set of attributes. See 3.4.1.8 topicref-atts, topicref-atts-no-toc, and topicref-atts-without-format attribute groups.

     

univ-atts attribute group (includes select-atts, id-atts, and localization-atts groups)

A set of related attributes, described in 3.4.1.3 univ-atts attribute group

     

global-atts attribute group (xtrf, xtrc)

A set of related attributes, described in 3.4.1.2 global-atts attribute group

     

class

A common attribute described in 3.4.1.9 Other common DITA attributes

     

Previous Topic:  3.1.5.2.3 topicsubject

Next Topic:  3.1.5.2.5 topicSubjectHeader

Parent Topic:  3.1.5.2 Classification domain elements

Sibling Topics:

3.1.5.2.1 subjectref

3.1.5.2.2 topicapply

3.1.5.2.3 topicsubject

3.1.5.2.5 topicSubjectHeader

3.1.5.2.6 topicSubjectRow

3.1.5.2.7 topicCell

3.1.5.2.8 subjectCell