Next in thread → Next in month →

RE: [dita] Nested Sections - counterexample

From
France Baril <>
Date
2005-11-23T18:53:12+00:00
ID
Thread
RE: [dita] Nested Sections - counterexample
Thanks to you,

 

Discussions always bring more dimensions to issues 
that seem very simple at first. I had fun playing with your examples. 

 

I hope you can let us know the results of your project once 
its implemented.

 

<info> vs <itemgroup> --> They are similar 
because task/info is a specialization of topic/itemgroup :-)

 

France

From: Esrig, Bruce (Bruce) 
[mailto:] 
Sent: 23 novembre 2005 12:58
To: 
France Baril
Subject: RE: [dita] Nested Sections - 
counterexample

Yes, 
thanks very much for the discussion, France.

 

> 
an alternate command

 

It 
would be great if we could conref the actual command template from somewhere, 
but we don't have a fine-grained conref in our XML environment. We have the 
ability to incorporate content by reference, but it incorporates the entire 
target file. Also, we restrict its use to larger chunks such as chapters, 
LU-LiPP sections (similar to DITA topicgroup), topics, LU-LiPP blocks 
(equivalent to DITA sections), and s few smaller chunks such as figures and 
graphics.

 

> 
<info> vs <itemgroup>

 

I'm 
hoping that Michael or Rob Anderson will take note of this. The content models 
are so similar that it seems to me that one element could serve for both. Maybe 
we can merge them in DITA 2.0.

 

> 
leverage on meaning and really separate content from 
presentation

 

This is a really interesting theme in your use of 
DITA.

 

The part that scares me about this is that I've seen people use 
markup for enforcement purposes. "This is what the markup allows, so this is 
what you have to do."

 

I'm in 
favor of specializations that provide guidance and structure. I love to 
formalize things. And I can see that specialization can provide meaningful 
elements that then can serve as guideposts for users, and triggers for special 
treatment during various transformations (transformations for alternate outputs, 
for translation to other notations, and to perform actual output 
processing).

 

In the 
base language, we should be as generic as we can afford to be, since there is 
nowhere else to start when specializing. There is a danger of doing so much 
specializing that the set of viable elements at a given point becomes 
unmanageably large for the authors. So specializations should be used only when 
there is a clear small set of choices that will be candidates in any given 
situation.

 

The 
modular nature of DITA encourages specialization since it permits use only of 
those specializations that are appropriate to the application that the author is 
working with. It also enables specialization to be done in a more distributed 
manner, by information architects comparatively close to the authors that have 
the need for specialized elements.

 

With 
appropriate generalization, we can keep the need for specialized elements from 
becoming overwhelming. So "alternate command" becomes a good auto-generated 
title for additional information within a step (when the information needs to be 
presented in a separately-labeled chunk such as a 
paragraph).

 

This 
also preserves Michael's cherished value: that DITA should be restrictive, and 
not permit user-defined titles to appear in arbitrary places. Considering that 
the topic has a user-defined title, and there is one more level of user-defined 
title permitted within that, any further urge to have user-defined titles may 
indeed indicate a chunking failure: somewhere, something needs to be elevated 
and made into a separate topic.

 

I have 
tried a couple of times to disprove this rule and in all honesty, I can't do it. 
I hope that we don't put a complex mechanism in place to enforce the rule and 
then find out it is incorrect. For cognitive reasons, I have hope that the rule 
is correct. That is, topics should have a well-defined structure, and one level 
of user-defined title within a topic is enough. Without that limitation, the 
topic is too free-form, and the end user will see information that is not 
sufficiently consistent.

 

I'll 
keep looking for examples, but I am thinking that this rule will 
survive.

 

Again, 
thank you for your prominent defense of the point of view that specialization is 
a good way to achieve controlled variation. I think it transfers the obligation 
for creative generalization to information architects, which may be a good place 
(at least for us!) for that obligation to reside.

 

Best 
wishes,

 

Bruce

  
-----Original Message-----
From: France Baril 
  [mailto:]
Sent: Wednesday, November 23, 
  2005 11:49 AM
To: Esrig, Bruce (Bruce)
Subject: RE: [dita] 
  Nested Sections - counterexample

  
Hi Bruce, 

  
 

  
I agree that putting all related links at the end is a 
  great idea. Keeps you away from a link management 
  nightmare.

  
 

  
I didn't realize that the alternate command, was 
  something different from the link. For me linking to the command 
  meant that you don't actually need to rewrite it and you get updates when the 
  original command changes. My idea was to make it more of a conref than a 
  xref or related-link/link. If you are going to use my conref idea, I'd suggest 
  that you make sure that your tool set supports you in managing those multiple 
  conrefs. Whether you find help in the authoring tool and/or with a good 
  validation process at check-in and/or before processing.

  
 

  
As for <info> vs <itemgroup>, I believe it's 
  just a semantic difference. Itemgroup is not very precise, it doesn't say whay 
  type of content is included in the tag.  The documentation suggests that 
  it was created as a container to enable users to create more specific 
  elements that can be used in li elements and their specializations. 
   However, info means that it is extra information concerning 
  the parent step. The key here is to have elements that really have a 
  specific meaning as opposed to something generic that doesn't qualify the 
  information inside the element. This is what is going to let you leverage on 
  meaning and really separate content from presentation.

  
 

  
I hope this helps,

  
 

  
France

  
 

  
 

  
 

  

  
  From: Esrig, Bruce (Bruce) 
  [mailto:] 
Sent: 22 novembre 2005 
  17:04
To: France Baril
Cc: 
  
Subject: RE: [dita] Nested Sections - 
  counterexample

  

  
Hmm 
  ... let's try in that spirit ... (I can see this affecting the way that we 
  choose to generalize task.)

  
 

  
According to this scenario, if we're offering an 
  alternate command, we'd have to agree in the information architecture on what 
  label to autogenerate for it. It wouldn't be 
user-settable.

  
 

  
If we grant that, 
  another deviation is that it looks as though the link inside a step is a 
  non-DITA thought. In fact, putting a jump to a related topic in every step 
  might not be the right thing to do.

  
 

  
Note also the implicit 
  query here: why do we distinguish <info> from <itemgroup>? At 
  first glance, the similarities are striking.

  
 

  
Best 
  wishes,

  
 

  
Bruce

  
 

  
===========

  
 

  
lu-task is a specialization of 
  topic/topic

  
 

  
lu-taskbody is a specialization of 
  topic/body

  
 

  
Anything I want before the steps is a specialization 
  of one of our div elements, or of section.

  
There could be a section that contains the steps (not shown, and 
  perhaps not part of the solution).

  
 

  
The 
  steps might need to be generalized a little bit.

  
If 
  <info> can contain everything that <itemgroup> can contain, then 
  it's not a big deal.

  
gen-step is a specialization of li

  
cmd 
  and stepresult are as currently defined

  
alternate-cmd is a new element that extends gen-step compared with step 
  and is a specialization of itemgroup

  
If 
  it autogenerates a label, it would have to be something generic such as 
  "Alternate".

  
 

  
related-step is a specialization of link. It's pretty radical, 
  right? Even going up to topic, I'm having trouble finding a context that would 
  allow a link.

  
 

  

  
<lu-task 
  otherprops="lang(1)">

  
<shortdesc>Short description of the full 
  procedure</shortdesc>

  
<lu-taskbody>

  

  
<gen-steps>

  
   <gen-step>

  
       <cmd> what to do in Lang 
  1

  
       
  <stepresult>what you have accomplished  <!-- A label such 
  as "Result" will be autogenerated 
  -->

  
       
  <alternate-cmd>lang 2 command to achieve the same result <!-- may be 
  suppressed in some outputs -->

  
       <related-step 
  href="reference to the full procedure in Lang 2#correspondingcmd"> <!-- 
  may be suppressed in some outputs -->

  

  

  
  </gen-step>

  
  <gen-step> 
  
       <cmd> what to do in Lang 1 for next 
  step

  
       
  <stepresult>what you have accomplished  <!-- A label such 
  as "Result" will be autogenerated 
  -->

  

  
       
  <alternate-cmd>lang 2 command to achieve the same result <!-- may be 
  suppressed in some outputs -->

  
       <related-step 
  href="reference to the full procedure in Lang 2#correspondingcmd"> <!-- 
  may be suppressed in some outputs 
  -->

  

  

  
  </gen-step>

  
</gen-steps>

  
</lu-taskbody>

  
<related-links>

  
    <link href="cross-reference to 
  the full procedure in Lang 2"> <!-- Layout may include shortdesc of 
  referenced procedure -->

  
</related-links>

  
</lu-task>

  
    
-----Original Message-----
From: France Baril 
    [mailto:]
Sent: Tuesday, November 22, 
    2005 4:26 PM
To: Esrig, Bruce (Bruce); 
    
Subject: RE: [dita] Nested Sections - 
    counterexample

    

    
Hi 
    Bruce.

    
 

    
If I understand your email correctly, you are 
    questioning the fact that the current DITA model could be used in this 
    specific case.

    
 

    
My uneducated answer would be a specialization 
    similar to this (uneducated because I might be missing part of the 
    context):

    
 

    
<lucenttask 
    otherprops="lang(1)">

    
<shortdesc>Short description of the full 
    procedure</shortdesc>

    
<lucenttaskbody>

    

    
<steps>

    
   <step>

    
       <cmd> what to do in Lang 
    1

    
       
    <stepresult>what you have accomplished  <!-- The label is not 
    necessary in the XML -->

    
       <related-step 
    href="conreference to the full procedure in Lang 2#correspondingcmd"> 
    <!-- output may or not include text of related cmd in lang 
    2 -->

    

    

    
  </step>

    
<step> 
    
       <cmd> what to do in Lang 1 for next 
    step

    
       
    <stepresult>what you have accomplished  <!-- The label is not 
    necessary in the XML -->

    
       <related-step 
    href="conreference to the full procedure in Lang 2#correspondingcmd"> 
    <!-- output may or not include text of related cmd in lang 
    2 -->

    

    

    
  </step>

    
</steps>

    
<taskbody>

    
<related-links>

    
    <link href="cross-reference 
    to the full procedure in Lang 2"> <!-- Layout may include shortdesc of 
    referenced procedure -->

    
</related-links>

    
</task>

    

Is this a specialization, yes. Is this an issue? If you are 
    going to base a whole project on the fact that you can reference another 
    task in parallel, why not take the time to specialize and have a model that 
    matches your specific needs? Creating a specialization is not a long task to 
    perform, being able to change your mind on the presentation based on 
    semantics might however save you a lot of time. 
    

    
 

    
What if you 
    decide to hide this info to some people? What if you want to 
    display the text in gray or with a different background-color so 
    that readers see it as extra information, not core info? What if you 
    want to generate reports on what references to what? What if you don't 
    want to see the preceding label anymore? What if you want to inforce your 
    model so that authors always write the stepresults before the 
    related-steps? What if related-steps are treated differently then other 
    regular xrefs so that they actually extract the text from the referenced 
    cmd?

    
 

    
This sounds to me like a big enough requirement to 
    justify sending a new request to the development team. A few hours 
    of development on the core model might save you long hours of 
    hacking.
Next in thread → Next in month →