OASIS Darwin Information Typing Architecture (DITA) TC

  • 1.  RE: [dita] Policy Decision: Loose or Not

    Posted 01-24-2007 01:02
    
    
    
    
    
    Implementors can already constrain users to single typed topics by changing the doctype to use the appropriate concept/task/concept/reference DTD. 
     
    In terms of conversion, there could be cases where legacy conversion to DITA would result in a single topic with mixed information type sub-topics. 
    In terms of specialization, ditabase is intentionally lax to serve as an appropriate base for specialization. 
     
    I agree with JoAnn that authoring with ditabase might not follow the best practice but I don't see the justification for eliminating it for DITA 1.1.   
     
    Lets consider leaving ditabase loose and encourage implementors to use the single-typed DTDs for the appropriate information type.  Providing a ditabase DTD for composite documents might be an option that some users, conversion vendors and specializers might want to keep. 
     
    Finally, this feels like a large change given the timeline for DITA 1.1's release.  If the rest of the TC members feel strongly that it should be eliminated,  I'd hope that we'd start with deprecation rather than elimination.
     
    Yas Etessam  
     

    From: JoAnn Hackos [mailto:joann.hackos@comtech-serv.com]
    Sent: Tuesday, January 23, 2007 4:10 PM
    To: Dana Spradley; dita@lists.oasis-open.org
    Subject: RE: [dita] Policy Decision: Loose or Not

    This is my position exactly. Let's eliminate ditabase. I'm attending a meeting this week battling with a "consultant" who has used ditabase to recreate docbook inside a dita topic.The entire book is in one topic. It's infuriating that people want to corrupt the entire concept.
     
    JoAnn

    JoAnn T. Hackos, PhD
    President
    Comtech Services, Inc.
    710 Kipling Street, Suite 400
    Denver CO 80215
    303-232-7586
    joann.hackos@comtech-serv.com

     


    From: Dana Spradley [mailto:dana.spradley@oracle.com]
    Sent: Tuesday, January 23, 2007 5:04 PM
    To: dita@lists.oasis-open.org
    Subject: Re: [dita] Policy Decision: Loose or Not

    Then the most logical choice would be to eliminate ditabase from the standard - and let implementors do their own ditabases as a practical measure, if they want to give authors a way of writing non-conformant topic collections prior to splitting them up into conformant topics.

    --Dana

    W. Eliot Kimber wrote:
    Dana Spradley wrote:
    This would be a rather extreme change of policy, wouldn't it?

    As I understand it, ditabase is expliticly *non*-normative, and as the spec currently says any nesting or other arrangement of topics in it "has no particular output implications; it simply allows you to create multiple topics of different types at the same level in a single document."

    Unless I've completely misunderstood the implications of how things are delivered, all the declarations are normative. That is, the DITA standard consists of the architecture specification, the language reference, and the accompanying DTD and XSD declarations, all of which are normative.

    That is, the very fact that we need to have language in the language reference about when different containment rules apply indicates that we have two different but normative rules.

    If it wasn't normative then we wouldn't have the language in the spec.

    Cheers,

    E.


  • 2.  RE: [dita] Policy Decision: Loose or Not

    Posted 01-24-2007 13:58
    Time to move the conversation back to Eliot's suggestion for edits that
    improve how the compound document type is represented in the 1.1 Spec.
    
    As Eliot points out, a generalized specification offers multiple paths of
    opportunity for knowledgeable users, which is the historical reason why it
    was in IBM's original donation for the Spec.  It has been incredibly useful
    as a migration staging ground, a storage BLOB, for writing the original
    developerWorks articles that defined DITA, as a single container for many
    kinds of conref targets, and surely much more.  Implementors who care
    deeply about using schemas to constrain the authoring options (truly making
    the system "damnfoolproof" if that were possible) can easily banish the
    ditabase.dtd from their systems, specialize their DTDs to eliminate nesting
    options, and more--that is the power of a sufficiently generalized system.
    Insofar that the compound document type is already a widely deployed aspect
    of DITA's approved design, let's keep the focus on getting to Committee
    Draft.
    
    Regards,
    --
    Don Day
    Chair, OASIS DITA Technical Committee
    IBM Lead DITA Architect
    Email: dond@us.ibm.com
    11501 Burnet Rd. MS9033E015, Austin TX 78758
    Phone: +1 512-838-8550
    T/L: 678-8550
    
    "Where is the wisdom we have lost in knowledge?
     Where is the knowledge we have lost in information?"
       --T.S. Eliot
    
    


  • 3.  Re: [dita] Policy Decision: Loose or Not

    Posted 01-24-2007 17:07
    What edits was Eliot suggesting?
    
    I thought he was suggesting making ditabase normative as our compound 
    document model.
    
    As for edits, I would suggest making it clearer in the spec that the 
    dita element in ditabase is an element like required-cleanup: a stop 
    gap, and not the normative compound model.
    
    This is already implied in the spec through the language about it 
    ditabase having no output implications, and not being suitable for 
    specialization.
    
    But apparently this was ambiguous enough for even Eliot to be confused 
    about its normative nature.
    
    Can we make it more explicit that the dita element is non-normative?
    
    --Dana
    
    Don Day wrote:
    
    >Time to move the conversation back to Eliot's suggestion for edits that
    >improve how the compound document type is represented in the 1.1 Spec.
    >
    >As Eliot points out, a generalized specification offers multiple paths of
    >opportunity for knowledgeable users, which is the historical reason why it
    >was in IBM's original donation for the Spec.  It has been incredibly useful
    >as a migration staging ground, a storage BLOB, for writing the original
    >developerWorks articles that defined DITA, as a single container for many
    >kinds of conref targets, and surely much more.  Implementors who care
    >deeply about using schemas to constrain the authoring options (truly making
    >the system "damnfoolproof" if that were possible) can easily banish the
    >ditabase.dtd from their systems, specialize their DTDs to eliminate nesting
    >options, and more--that is the power of a sufficiently generalized system.
    >Insofar that the compound document type is already a widely deployed aspect
    >of DITA's approved design, let's keep the focus on getting to Committee
    >Draft.
    >
    >Regards,
    >--
    >Don Day
    >Chair, OASIS DITA Technical Committee
    >IBM Lead DITA Architect
    >Email: dond@us.ibm.com
    >11501 Burnet Rd. MS9033E015, Austin TX 78758
    >Phone: +1 512-838-8550
    >T/L: 678-8550
    >
    >"Where is the wisdom we have lost in knowledge?
    > Where is the knowledge we have lost in information?"
    >   --T.S. Eliot
    >
    >  
    >
    
    


  • 4.  Re: [dita] Policy Decision: Loose or Not

    Posted 01-24-2007 17:42
    Dana Spradley wrote:
    > What edits was Eliot suggesting?
    
    What I'm suggesting is that the normative value of info-types be "topic 
    | concept | reference | task | glossentry", which is the value used in 
    the ditabase declaration set. We further say that the shell document 
    types "concept.dtd", "reference.dtd", and "task.dtd" are *examples* of 
    how the loose constraints can be tightened using the provided 
    configuration mechanisms.
    
    This has the effect of removing the need to explain why there are two 
    different effective "contained by" statements for various elements and 
    makes it clear that the standard is not imposing *required* constraints 
    as reflected in the topic-type-specific shell document types.
    
    Note that this doesn't require any change to the existing declarations, 
    just a clarification that the type-specific shells are *examples*.
    
    Note that I *am not* saying that the "dita" element as currently defined 
    is inherently good or bad--that's irrelevant to this discussion. I'm 
    just asserting that the normative constraints defined by the 
    specification should be clearly stated as being "as far as the standard 
    is concerned, any topic type can contain any other topic type". This 
    does not preclude adding (or retaining, if there is one) statements to 
    the effect that, in practice, one should only nest topics of different 
    types when it is clearly appropriate. I think the specification is very 
    clear that using 


  • 5.  Re: [dita] Policy Decision: Loose or Not

    Posted 01-24-2007 18:50

    I don't see the problem in there being two normative doctype alternatives. Each one is clear in its context. If you are using ditabase.dtd, you must allow nesting of other types; if you are using concept.dtd, you must not.

    If we do need to address this in 1.1, I'd suggest saying that the rules on which topic types can nest which other types are not normative, and the rules set in the doctypes can be changed by customized doctypes.

    If we want to ditch normative nesting for one, we should ditch it for both. Otherwise I don't see how we can say concept must allow nesting of task in ditabase.dtd, and that's normative, but it can disallow it in concept.dtd, and that's not.

    Michael Priestley
    IBM DITA Architect and Classification Schema PDT Lead
    mpriestl@ca.ibm.com
    http://dita.xml.org/blog/25



    "W. Eliot Kimber" <ekimber@innodata-isogen.com>

    01/24/2007 12:42 PM

    To
    "Dana Spradley" <dana.spradley@oracle.com>
    cc
    <dita@lists.oasis-open.org>
    Subject
    Re: [dita] Policy Decision: Loose or Not





    Dana Spradley wrote:
    > What edits was Eliot suggesting?

    What I'm suggesting is that the normative value of info-types be "topic
    | concept | reference | task | glossentry", which is the value used in
    the ditabase declaration set. We further say that the shell document
    types "concept.dtd", "reference.dtd", and "task.dtd" are *examples* of
    how the loose constraints can be tightened using the provided
    configuration mechanisms.

    This has the effect of removing the need to explain why there are two
    different effective "contained by" statements for various elements and
    makes it clear that the standard is not imposing *required* constraints
    as reflected in the topic-type-specific shell document types.

    Note that this doesn't require any change to the existing declarations,
    just a clarification that the type-specific shells are *examples*.

    Note that I *am not* saying that the "dita" element as currently defined
    is inherently good or bad--that's irrelevant to this discussion. I'm
    just asserting that the normative constraints defined by the
    specification should be clearly stated as being "as far as the standard
    is concerned, any topic type can contain any other topic type". This
    does not preclude adding (or retaining, if there is one) statements to
    the effect that, in practice, one should only nest topics of different
    types when it is clearly appropriate. I think the specification is very
    clear that using <dita> to contain elements has no processing implications.

    Note that as a practical matter, there *has to be* a general containing
    element that allows, as direct children, any topic type. This is needed
    simply so that authors have full choice over how they organize topics
    into documents *for storage purposes*. But allowing a container like
    "dita" to contain, as direct children, any topic type  is not the same
    as allowing those child topics to contain any topic type: the
    declarations are specifically designed to allow you to still control, on
    a topic type basis, what they can and can't contain.

    That is, I can (more or less easily) configure the ditabase declarations
    to allow <dita> to contain any topic type but not to allow those topics
    to contain any topics types I don't want them to contain. Looking at
    ditabase.dtd, the only change that I think would be useful would be to
    change the declaration of the dita element to use a new parameter
    entity, dita-info-types, declared as follows:

    <!ENTITY % dita-info-types
      "%info-types;"
    >

    This makes it parallel with the other shell document types and allows a
    configurator to control the topics allowed within <dita> separate from
    those allowed within the individual types, by replacing "%info-types;"
    with an explicit list of topic types (and the existing mechanism of just
    setting info-types would also work).

    While I appreciate JoAnn's concerns about people misusing DITA, that is
    outside the purview of the standard--it's not the standard's job to
    enforce good practice, only to allow it and encourage it. Misuse of
    <dita> is both a matter of opinion and a matter of education. The most
    we can say in the standard is that that use of <dita> is considered to
    be poor practice.

    Cheers,

    Eliot

    --
    W. Eliot Kimber
    Professional Services
    Innodata Isogen
    8500 N. Mopac, Suite 402
    Austin, TX 78759
    (214) 954-5198

    ekimber@innodata-isogen.com
    www.innodata-isogen.com




  • 6.  Re: [dita] Policy Decision: Loose or Not

    Posted 01-24-2007 20:15
    
    
      
      
    
    
    I also don't see any problem with there being two
    normative alternatives for compound documents: one the actual standard
    (you can only nest topics of the same infotype, and even that is
    discouraged), the other a standard way for people to deviate from the
    actual standard, up to a point (ditabase at composition time, and
    perhaps for storage - but not for output).

    Misusing <dita> to support complex compound documents for which the standard provides a normative alternative - maps - seems to me to violate the standard - in much the same way as using requiredcleanup for other than conversion purposes would.

    What's the use of a standard, if it doesn't enforce some pretty tight rules, consonant with its guiding principles (here, topic orientation)?

    At least DITA is also pragmatic enough to also provide some normative ways of subverting the rules, if you want to.

    The looseness Eliot is advocating is part of what has turned people off to DocBook.

    --Dana

    Michael Priestley wrote:

    I don't see the problem in there being two normative doctype alternatives. Each one is clear in its context. If you are using ditabase.dtd, you must allow nesting of other types; if you are using concept.dtd, you must not.

    If we do need to address this in 1.1, I'd suggest saying that the rules on which topic types can nest which other types are not normative, and the rules set in the doctypes can be changed by customized doctypes.

    If we want to ditch normative nesting for one, we should ditch it for both. Otherwise I don't see how we can say concept must allow nesting of task in ditabase.dtd, and that's normative, but it can disallow it in concept.dtd, and that's not.

    Michael Priestley
    IBM DITA Architect and Classification Schema PDT Lead
    mpriestl@ca.ibm.com
    http://dita.xml.org/blog/25



    "W. Eliot Kimber" <ekimber@innodata-isogen.com>

    01/24/2007 12:42 PM

    To
    "Dana Spradley" <dana.spradley@oracle.com>
    cc
    <dita@lists.oasis-open.org>
    Subject
    Re: [dita] Policy Decision: Loose or Not







    Dana Spradley wrote:
    > What edits was Eliot suggesting?

    What I'm suggesting is that the normative value of info-types be "topic
    | concept | reference | task | glossentry", which is the value used in
    the ditabase declaration set. We further say that the shell document
    types "concept.dtd", "reference.dtd", and "task.dtd" are *examples* of
    how the loose constraints can be tightened using the provided
    configuration mechanisms.

    This has the effect of removing the need to explain why there are two
    different effective "contained by" statements for various elements and
    makes it clear that the standard is not imposing *required* constraints
    as reflected in the topic-type-specific shell document types.

    Note that this doesn't require any change to the existing declarations,
    just a clarification that the type-specific shells are *examples*.

    Note that I *am not* saying that the "dita" element as currently defined
    is inherently good or bad--that's irrelevant to this discussion. I'm
    just asserting that the normative constraints defined by the
    specification should be clearly stated as being "as far as the standard
    is concerned, any topic type can contain any other topic type". This
    does not preclude adding (or retaining, if there is one) statements to
    the effect that, in practice, one should only nest topics of different
    types when it is clearly appropriate. I think the specification is very
    clear that using <dita> to contain elements has no processing implications.

    Note that as a practical matter, there *has to be* a general containing
    element that allows, as direct children, any topic type. This is needed
    simply so that authors have full choice over how they organize topics
    into documents *for storage purposes*. But allowing a container like
    "dita" to contain, as direct children, any topic type  is not the same
    as allowing those child topics to contain any topic type: the
    declarations are specifically designed to allow you to still control, on
    a topic type basis, what they can and can't contain.

    That is, I can (more or less easily) configure the ditabase declarations
    to allow <dita> to contain any topic type but not to allow those topics
    to contain any topics types I don't want them to contain. Looking at
    ditabase.dtd, the only change that I think would be useful would be to
    change the declaration of the dita element to use a new parameter
    entity, dita-info-types, declared as follows:

    <!ENTITY % dita-info-types
      "%info-types;"
    >

    This makes it parallel with the other shell document types and allows a
    configurator to control the topics allowed within <dita> separate from
    those allowed within the individual types, by replacing "%info-types;"
    with an explicit list of topic types (and the existing mechanism of just
    setting info-types would also work).

    While I appreciate JoAnn's concerns about people misusing DITA, that is
    outside the purview of the standard--it's not the standard's job to
    enforce good practice, only to allow it and encourage it. Misuse of
    <dita> is both a matter of opinion and a matter of education. The most
    we can say in the standard is that that use of <dita> is considered to
    be poor practice.

    Cheers,

    Eliot

    --
    W. Eliot Kimber
    Professional Services
    Innodata Isogen
    8500 N. Mopac, Suite 402
    Austin, TX 78759
    (214) 954-5198

    ekimber@innodata-isogen.com
    www.innodata-isogen.com