[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [dita] Content model options for #12011 - Generic Task Type
The issues seem to revolve around these key questions: - Should a single task allow multiple <steps> elements? If it does, how should content specific to a given <steps> element be bound to it (e.g., <context>)? Other than <section>, DITA 1.2 currently provides no generic wrapper element that could be used to bind <context> and <steps> and relying on sequences of pairs is not workable since the resulting content model would be (context?, steps)+ which is functionally equivalent to (context | steps)+ which doesn't really impose the desired constraint. Putting an element within <steps> as some sort of intro won't work without extending the current base list model to allow it (that is, anything within <steps> must be specialization of <li> as DITA 1.1 is defined). - Should there be a way to group steps within a single <steps> element that is not substeps within steps? Key use cases here are tutorials and troubleshooting, where you want to have some discussion that encompasses all the foregoing or all following steps in a group (e.g., talking about where you've gotten after 4 steps of a 6-step atomic process within a tutorial). The current content model requires that this content be either outside of <steps> entirely or bound within a specific step within the procedure, neither of which are completely satisfactory. The problem here is that, again, the base list model would need to be extended to provide a grouping element for list items. Making that change would require a separate proposal and might itself be controversial. With regard to the specifics in Alan's note, my feeling is: For the content model of <step>: - Allowing note at start of step is absolutely essential for all the reasons cited (e.g., by the Machine Industry SC) - I see the value of allowing <itemgroup> to enable arbitrary specialization that is not based on <info>. However, I would be OK with not allowing <itemgroup> if we agree that <info> is sufficiently generic. I don't think that concerns about the base content model being too open are appropriate in general for DITA because of its inherent need for generality, which will only increase over time and I certainly don't think that such concerns outweigh the potential utility of <itemgroup> in this case. But since there's already <info> I don't see the need for <itemgroup> to be that compelling either. - As discussed on the call, I don't see the value in allowing <cmd> to be optional--it's not clear what a step with no command would be in that case. It seems to me that having a command is the essential distinguisher between steps and ordered list items. (That and being explicitly part of a task.) For the content model of <steps>: - See discussion above. In addition, I agree with Michael P. that allowing multiple <steps> seems to be fundamentally at odds with the general DITA principle of modularity and using subtopics. In addition, groups of related steps can be organized as a sequence of steps with substeps if the requirement is to have the whole lot followed by the usual task post-steps stuff. One issue I have run into in trying to do more complicated procedures is the unavoidable need to have xrefs from high-level process descriptions to individual task topics that describe each component process. It would be nice if those links could be defined and managed at the map level but I can't think of a way it could be done with current mechanisms (although keyref would probably help). It may be that complex tasks are simply a case where embedded topic-to-topic links are unavoidable, but it's something I certainly need to think about more. But I don't think that allowing multiple <steps> would be the right answer in any case. I know that there's a concern that there is a lot of legacy content that just won't map easily to a single-<steps> model but I think that's just an unavoidable cost of moving to DITA. For the content model of taskbody: - I would definitely like to be able to choose the order of things before and after <steps> (e.g., put context before prereqs). Alan's option 2 seems the best but the more general option 3 also appeals simply because it is the least constrained. - I don't understand the value of allowing <ol> or <ul> in place of <steps> in any of these options. What is the motivation there? Is it simply to allow tasks that are described in unstructured prose rather than as a sequence of steps? If so, I would prefer an alternative to <steps> that then allows arbitrary text, e.g. <process-description> or something. Otherwise there seems to be too much risk of <ol> or <ul> being used when <steps> or <steps-unordered> should be used. That is, containing <steps> is the essential distinguisher of task from topic. - I think allowing <section> is probably essential--it adds options for specialization (e.g., as typified the Machine Industry task specialization proposal) without diluting the essential task nature. Thus I think I would prefer a content model for taskbody more like this: ((context | prereq | section)*, (steps | steps-unordered | process-description), (result | example | postreq | section)* ) Where <process-description> is a specialization of <section> with the same content model as <section>. With this content model, the minimum required taskbody would be a single <process-description> or <steps> or <steps-unordered> but much richer models before and after the process description/definition would be allowed. Cheers, Eliot -- Eliot Kimber Senior Solutions Architect "Bringing Strategy, Content, and Technology Together" Main: 610.631.6770 www.reallysi.com www.rsuitecms.com
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]