OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

dita message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Updated stage 2 proposal: Chunking (based on TC meeting last week)


Updates over last week:
1. In the definition about chunk="split", change the interpretation of where nested topicref elements appear (also added short examples in that section to clarify, and updated a larger example near the end)
2. In item number 4 of the proposed solution, about link management, added a note about the lack of a standard-defined way to associate keys or URIs with context-dependent nested topics that will be split

Everything else is the same, apart from correcting one typo and updating the links to reflect this second version.

DITA 2.0 proposed feature #105: Redesign chunking

Simplify how the @chunk attribute is defined to 1) make it easier to use, and 2) make implementation easier and more reliable.

Date and version information
Include the following information:
Date that this feature proposal was completed

Champion of the proposal Links to any previous versions of the proposal Links to minutes where this proposal was discussed at stage 1 and moved to stage 2 Reviewers for Stage 2 proposal Links to e-mail discussion that resulted in new versions of the proposal Link to the GitHub issue Original requirement or use case
Redesign the chunk attribute for the following reasons / benefits: Use casesNew terminology

N/A

Proposed solution

The overall goal with this solution is to preserve (mostly intact) the two most useful existing cases for chunking.

Important:


These are the two operations people already think of or look for when they ask about chunking: the ability to publish many documents as if they were one, and the ability to publish one document as if it was many. To that end, the proposed solution is: Benefits
Who will benefit from this feature? What is the expected benefit? How many people probably will make use of this feature? How much of a positive impact is expected for the users who will make use of the feature? Technical requirements
Renaming or refactoring elements and attributes Processing impact Overall usability Backwards compatibility
Was this change previously announced in an earlier version of DITA? Changing the meaning of an element or attribute in a way that would disallow existing usage? Migration plan
Documents Processors Might any existing specialization or constraint modules need to be migrated? Costs
Maintainers of the grammar files Editors of the DITA specification Vendors of tools DITA community-at-large Producing migration instructions or tools Examples
Figure 1. Creating a single monolithic result document from a root map
<map chunk="combine">
  <title>Previously this would have been chunk="to-content"</title>
  <topicref href="">   <topicref href="">   ...
</map>
 

Figure 2. Creating multiple result documents from a single document

In the case where hello.dita contains 5 topics (either nested or peers within a <dita> element), the following markup would result in hello.dita being split into 5 individual documents. How the documents are handled at that point is up to the processor (in HTML5 output where one input file generally = one output file, this would turn hello.dita into five output files, presumably named after topic IDs within the original document). Note that the chunk="split" value has no impact on content within the nested reference notchunked.dita. In the resulting hierarchy, the reference to notchunked.dita should end up as the final nested topic within the root topic of hello.dita (when that file has a root topic), or as the final nested topic within the final child of <dita> (when that file has a root <dita> element).

<map>
  <title>Previously this would have used chunk="by-topic"</title>
  <topicref href="" chunk="split">
    <topicref href="">   </topicref>
  <topicref href="">   ...
</map>
 

Figure 3. Creating multiple result documents from every source DITA document

In the case where hello.dita and world.dita each contain 5 topics each (either nested or peers within a <dita> element), the following markup would result in the two original documents being split into 10 individual documents, with the same handling caveats as above.

<map chunk="split">
  <title>Previously this would have used chunk="by-topic"</title>
  <topicref href="">     <topicref href="">    </topicref>
</map>
 

Figure 4. Explicit example of split topic with resulting hierarchy

Assume the very simple map below with a single topic simple.dita, and the contents of simple.dita are also shown.

<map>
  <title>Very simple "split" example</title>
  <topicref href=""></map>

simple.dita:
<topic id="a">
 <title>Root topic</title>
 <body>...</body>
 <topic id="b">
   <title>Sub-topic</title>
   <body>...</body>
   <topic id="c">
     <title>sub-sub-topic</title>
     <body>...</body>
   </topic>
 </topic>
 <topic id="jumpup">
   <title>another sub-topic</title>
   <body>...</body>
 </topic>
</topic>

The document simple.dita contains four topics; the chunking operation split effectively results in the following map, with each document containing only one topic. For this sample the file names are taken from the topic IDs for clarity but this is not required.
<map>
 <title>Very simple "split" example</title>
 <topicref href="">    <topicref href="">      <topicref href="">    </topicref>
   <topicref href="">  </topicref>
</map>

Figure 5. "split" when used on a grouping element
Assume the following map, where chunk="split" is used on grouping elements:
<map>
 <title>Groups are split</title>
 <topicgroup chunk="split">
   <topicref href="">    <topicref href="">  </topicgroup>
 <topichead chunk="split">
   <topicmeta><navtitle>Heading for a branch</navtitle></topicmeta>
     <topicref href="">      <topicref href="">  </topichead>
</map>

Figure 6. "combine" when used on a grouping element
Assume the following map, where chunk="combine" is used on grouping elements:
<map>
 <title>Groups are combined</title>
 <topicgroup chunk="combine">
   <topicref href="">    <topicref href="">  </topicgroup>
 <topichead chunk="combine">
   <topicmeta><navtitle>Heading for a branch</navtitle></topicmeta>
     <topicref href="">      <topicref href="">  </topichead>
</map>
Figure 7. Edge case: "split" becomes "combine"

Assume the following map, where chunk="split" on the root element means that all topics within this map structure are split by default, but a branch within the map sets chunk="combine":

<map chunk="split">
 <title>Split most, but not one branch</title>
 <topicref href="">  <topicref href="" chunk="combine">...</topicref>
 <topicref href=""></topicref>

Assume as well that no other @chunk attributes are specified in this map. The following is true:

Figure 8. Edge case: ignoring "split" values within a combined branch
Assume the following map, where a branch is combined, but a nested <topicref> specifies "split":
<map>
 <title>Ignoring split value</title>
 <topicref href="" chunk="combine">
   <topicref href="">    <topicref href="" chunk="split"/>
   <topicref href="">  <topicref>
 ...
</map>

In this case:

Robert D. Anderson
DITA-OT lead and Co-editor DITA 1.3 specification
Marketing Services Center

E-mail: robander@us.ibm.com

11501 BURNET RD,, TX, 78758-3400, AUSTIN, USA
IBM




[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]