[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]