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

 


Help: OASIS Mailing Lists Help | MarkMail Help

dita-learningspec message

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


Subject: Proposal: New Base Class for all L&T Interaction Elements


The interaction elements: lcTrueFalse, lcSingleSelect, lcSequencing,
lcMatching, lcHotspot, lcOpenQuestion currently have as their common
ancestor topic/fig.

However, there are two general requirements that suggest having a common
ancestor type that indicates "this is an interaction" would be useful, if
not strongly indicated:

1. The ability to find all questions with a single query or recognize
questions as questions with a single match.

With the current design, to distinguish questions from other things, you
must explicitly match on each of the seven types above, e.g.:

<xsl:template 
match="*[contains(@class, ' learning-d/tcTrueFalse ') or
contains(@class, ' learning-d/lcSingleSelect ') or
contains(@class, ' learning-d/lcSequencing ') or
contains(@class, ' learning-d/lcMatching ') or
contains(@class, ' learning-d/lcHotspot ') or
contains(@class, ' learning-d/lcOpenQuestion ')]" >
 <xsl:apply-templates mode="render-interactions"/>
</xsl:template>

With this type of code, adding a new interaction type, for example as a
local specialization, requires updating all such matches because there's no
single indicator that something is or isn't an interaction.

2. The ability to declare new interaction types that are clearly identified
as being semantically interactions within the L&T model.

Currently, while one can define new vocabulary modules with new interactions
and use the L&T-defined interaction components (e.g., the feedback
elements), there is nothing you can put in those elements that unambiguously
or clearly identifies them as being interactions.

---------------
Proposed Change

The solution is to define a new base type from which all interactions are
then specialized, e.g., "lcInteractionBase". This represents an "abstract"
type (in the Java sense of abstract classes or interfaces) that serves only
to indicate that its subtypes are interactions, regardless of what their
details might be (see draft module declarations below).

The change to the existing learningDomain module would be to add this new
type to the class= values of the L&T-defined interaction types. There would
be no structural or functional change and no additional constraints added.
The current L&T-defined shell DTDs would need to include the
learningInteractionBase module.

The new class declarations would be:

<!ATTLIST lcTrueFalse %global-atts;
    class CDATA "+ topic/fig lcInteractionBase-d/lcInteractionBase
learning-d/lcTrueFalse ">
<!ATTLIST lcSingleSelect %global-atts;
    class CDATA "+ topic/fig lcInteractionBase-d/lcInteractionBase
learning-d/lcSingleSelect ">
<!ATTLIST lcMultipleSelect %global-atts;
    class CDATA "+ topic/fig lcInteractionBase-d/lcInteractionBase
learning-d/lcMultipleSelect ">
<!ATTLIST lcSequencing %global-atts;
    class CDATA "+ topic/fig lcInteractionBase-d/lcInteractionBase
learning-d/lcSequencing ">
<!ATTLIST lcMatching %global-atts;
    class CDATA "+ topic/fig lcInteractionBase-d/lcInteractionBase
learning-d/lcMatching ">
<!ATTLIST lcHotspot %global-atts;
    class CDATA "+ topic/fig lcInteractionBase-d/lcInteractionBase
learning-d/lcHotspot ">
<!ATTLIST lcOpenQuestion %global-atts;
    class CDATA "+ topic/fig lcInteractionBase-d/lcInteractionBase
learning-d/lcOpenQuestion ">


This change is backward compatible for all existing content and for
processors that currently key on learning-d/* or the L&T-defined tagnames
for recognizing interactions. That is, the change cannot break any existing
processing. 

Cheers,

Eliot

------------
Here is my first attempt at defining the .ent and .mod DTD files for this
new vocabulary module:

----------------------------
learningInteractionBase.ent:

<!-- This file is part of the DITA learning and training content
     specialization working design. It is a work-in-progress by
     the OASIS DITA learning and training content specialization
     sub-committee.-->
<!--             (C) Copyright OASIS Open 2009.                    -->
<!--             All Rights Reserved.                              -->
<!-- ============================================================= -->
<!--                    HEADER                                     -->
<!-- ============================================================= -->
<!--  MODULE:    DITA learningInteractionBaseDomain.ent            -->
<!--  VERSION:   1.0                                               -->
<!--  DATE:      July 2009                                         -->
<!--                                                               -->
<!-- ============================================================= -->

<!--learning interaction base domain entities -->
<!-- NOTE: learningInteractionBase is intended to be an "abstract"
           type that is never used directly instances. Thus there
           is no content model extension parameter entity for it.
  -->
<!ENTITY learningInteractionBase-d-att "(topic learningInteractionBase-d)">
<!-- End of learning interaction base entity decls -->


----------------------------
learningInteractionBase.mod:

<!-- This file is part of the DITA learning and training content
     specialization working design. It is a work-in-progress by
     the OASIS DITA learning and training content specialization
     sub-committee.-->
<!--             (C) Copyright OASIS Open 2009.                    -->
<!--             All Rights Reserved.                              -->
<!-- ============================================================= -->
<!--                    HEADER                                     -->
<!-- ============================================================= -->
<!--  MODULE:    DITA learningInteractionBaseDomain                -->
<!--  VERSION:   1.0                                               -->
<!--  DATE:      July 2009                                         -->
<!--                                                               -->
<!-- ============================================================= -->

<!-- ============================================================= -->
<!--                    PUBLIC DOCUMENT TYPE DEFINITION            -->
<!--                    TYPICAL INVOCATION                         -->
<!--                                                               -->
<!--  Refer to this file by the following public identfier or an
      appropriate system identifier
PUBLIC "-//OASIS//ELEMENTS DITA Learning Interaction Base Domain//EN"
      Delivered as file "learningInteractionBaseDomain.mod"
                                                                   -->

<!-- ============================================================= -->
<!-- SYSTEM:     Darwin Information Typing Architecture (DITA)     -->
<!--                                                               -->
<!-- PURPOSE:    Declaring the elements and specialization         -->
<!--             attributes for Learning Base                      -->
<!--                                                               -->
<!-- ORIGINAL CREATION DATE:                                       -->
<!--             May 2007                                          -->
<!--                                                               -->
<!--             (C) Copyright OASIS Open 2009.                    -->
<!--             All Rights Reserved.                              -->
<!-- ============================================================= -->

  

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   - ENTITY DECLARATIONS FOR DOMAIN SUBSTITUTION
   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->

<!ENTITY % lcInteractionBase "lcInteractionBase">

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   - INTERACTION DEFINITIONS
   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
   
<!-- Common base type for learning interactions -->

<!ENTITY % lcInteractionBase.content
                       "((%title;)?,
                         (%desc;)?,
                         (%figgroup; |
                          %fig.cnt;)* )"
>
<!ENTITY % lcInteractionBase.attributes
 "            id          NMTOKEN  #REQUIRED
            conref      CDATA    #IMPLIED
            %select-atts;
            translate   (yes|no) #IMPLIED
            xml:lang    NMTOKEN  #IMPLIED
            outputclass CDATA    #IMPLIED
"
>
<!ELEMENT lcInteractionBase %lcInteractionBase.content; >
<!ATTLIST lcTrueFalse %lcInteractionBase.attributes; >


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
   - CLASS ATTRIBUTES FOR ANCESTRY DECLARATION
   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
<!ATTLIST lcTrueFalse %global-atts;
    class CDATA "+ topic/fig lcInteractionBase-d/lcInteractionBase ">

<!-- End of lcInteractionBase module -->
----
Eliot Kimber | Senior Solutions Architect | Really Strategies, Inc.
email:  ekimber@reallysi.com <mailto:ekimber@reallysi.com>
office: 610.631.6770 | cell: 512.554.9368
2570 Boulevard of the Generals | Suite 213 | Audubon, PA 19403
www.reallysi.com <http://www.reallysi.com>  | http://blog.reallysi.com
<http://blog.reallysi.com> | www.rsuitecms.com <http://www.rsuitecms.com> 



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