TeachML

The educational technology and digital learning wiki
Jump to navigation Jump to search

Definition

TeachML is an educational modelling language for contents. The code can be run in the Targeteam software.

This project may be dead since the homepage of the project is dead. See ELML, a very similar (and alive) project.

TeachML has been created in the TArgeted Reuse and GEneration of TEAching Materials (Targeteam) project). “Targeteam is a system for supporting the preparation, use, and reuse of teaching materials. It is centered around the XML based language TeachML which can be classified as an "educational modelling language".” ([1], retrieved 15:50, 29 May 2007 (MEST)).

The Targeteam project is a joint development effort of the group of Prof. Gunnar Teege, University of the Armed Forces, and Prof. Johann Schlichter, Technical University, both at faculty of Informatics, in Munich, Germany. The Targeteam System is an Open Source development, implemented completely in Java. The System and all documentation can be downloaded from the Targeteam homepage and can freely be used and distributed.

TeachML architecture

The most important element of TeachML is the issue: “Targeteam [...] provides an abstract structure in the form of a homogeneous hierarchy of issues . Content chunks are not identified as “chapter”, “section”, “paragraph”, “list entry”, “exercise”, “slide”, “course unit” etc. Instead, the actual structure is generated automatically from the homogeneous hierarchy when the delivery format is produced. The abstract structure makes it possible, to reuse Targeteam content chunks in differently structured contexts. The same issue can be used in one context as a subsection where the subissues become list entries, and in another context as a separate chapter where the subissues become sections” (Teege, 2002)

The main structure of TeachML can be formalized with a UML class diagram

UML diagram of the main structure in TeachML (Teege, 2002)

TeachML 1.2 Integrated Materials Language

<?xml version="1.0" encoding="ISO-8859-1"?>

<!-- ................................... -->
<!-- TeachML 1.2 Integrated Materials Language -->
<!-- file: TeachML-Int.dtd

   This is the TeachML language for complete integrated
   TeachML materials. It consists of all TeachML language
   modules but TeachML Integration. 

   Note, that this is not the real DTD, as it is used in the
   Targeteam system. The real DTD is modularized into several files,
   according to DTD modularization in XHTML, and it makes heavy use of
   parameter enities. This file contains all DTD modules and
   most parameter entities have been eliminated for better
   readability. This file is provided for getting a first quick
   impression of the Targeteam DTD.

   More information about the elements, their semantics, their use and
   examples can be found in the Targeteam documentation, available at
   the Targeteam homepage: 
     http://www11.in.tum.de/forschung/projekte/targeteam/

   .................................... -->

<!-- The document element is teachml. -->

<!-- TeachML document element ..................... -->
<!ELEMENT teachml ( module ) >

<!-- Next, all sublanguages for content are integrated. Each 
     sublanguage XXX contributes the elements in ContentXXX.mix
     to the elements which may be used anywhere in content. -->

<!-- Language Core -->
<!-- content contribution elements: -->
<!ENTITY % ContentCore.mix
  "note | definition | code | defined | emph | quote | ref | whatsit | xor"
 >

<!-- complete element set: -->
<!ENTITY % ElementsCore.mix 
  "%ContentCore.mix; | header | intro | kernel 
   | details | illustration | exercises | metaissues | summary
   | module | issue " >

<!-- Sublanguage Box -->
<!-- complete element set: -->
<!ENTITY % ElementsBox.mix "vbox | hbox | cbox | ivbox | ihbox" >

<!-- content contribution elements: all -->
<!ENTITY % ContentBox.mix "%ElementsBox.mix;" >

<!-- Sublanguage Tup -->
<!-- complete element set: -->
<!ENTITY % ElementsTup.mix "tuples | metatuple | tuple | ten" >

<!-- content contribution element: tuples -->
<!ENTITY % ContentTup.mix "tuples" >

<!-- Sublanguage Astep -->
<!-- complete element set: -->
<!ENTITY % ElementsAstep.mix "atom-stepping | atoms | step | nosteps" >

<!-- content contribution elements: all -->
<!ENTITY % ContentAstep.mix "%ElementsAstep.mix;" >

<!-- Additionally, content elements which are only present
     after integration (this is the atom element) -->
<!-- complete element set: -->
<!ENTITY % ElementsIntegrated.mix "atom" >

<!-- content contribution elements: all -->
<!ENTITY % ContentIntegrated.mix
  "%ElementsIntegrated.mix;"
 >

<!ENTITY % Content.mix 
  "| %ContentCore.mix; | %ContentBox.mix; | %ContentTup.mix; | 
   %ContentAstep.mix; | %ContentIntegrated.mix;" >

<!ENTITY % Elements.mix 
  "| %ElementsCore.mix; | %ElementsBox.mix; | %ElementsTup.mix; | 
   %ElementsAstep.mix; | %ElementsIntegrated.mix;" >

<!-- Now we define the language modules. They only
     interact via the Content.mix parameter. -->

<!-- TeachML core language ..................... -->
<!-- Parameter defaults: -->
<!ENTITY % Inissue.class
  "header | intro | kernel 
   | details | illustration | exercises | metaissues | summary"
 >

<!-- The Root Element: module.  -->

<!ELEMENT module ( issue )+ >
<!ATTLIST module
    id ID #IMPLIED >

<!-- ********************************* -->
<!-- The sublanguage for structuring   -->

<!ELEMENT issue ( %Inissue.class; )* >
<!ATTLIST issue 
     id ID #IMPLIED
     kind CDATA #IMPLIED
     author CDATA #IMPLIED
     affiliation CDATA #IMPLIED > 

<!ELEMENT header ( #PCDATA %Content.mix; )* >

<!ELEMENT intro ( #PCDATA %Content.mix; )*" >
<!ATTLIST intro id ID #IMPLIED>

<!ELEMENT kernel ( #PCDATA %Content.mix; )* >
<!ATTLIST kernel id ID #IMPLIED>

<!ELEMENT summary ( #PCDATA %Content.mix;  )* >
<!ATTLIST summary id ID #IMPLIED>

<!ELEMENT xor ( alt  )* >

<!ELEMENT alt ( #PCDATA | issue %Content.mix;  )* >
<!ATTLIST alt types NMTOKENS "standard">

<!-- Issue groups: -->

<!ENTITY % [http://www.eurodl.org/materials/contrib/2002/7teege/teege.htm Teege, 2002]Issuegroup.attrib "
  id ID #IMPLIED
  header CDATA #IMPLIED
  labels (numbers | letters | capletters | dots) #IMPLIED
  first-label CDATA #IMPLIED
  label-pre CDATA #IMPLIED
  label-post CDATA #IMPLIED
" >

<!ELEMENT details ( issue | xor )* >
<!ATTLIST details %Issuegroup.attrib; >

<!ELEMENT illustration ( issue | xor )* >
<!ATTLIST illustration %Issuegroup.attrib; >

<!ELEMENT metaissues ( issue | xor )* >
<!ATTLIST metaissues %Issuegroup.attrib; >

<!ELEMENT exercises ( issue | xor )* >
<!ATTLIST exercises %Issuegroup.attrib; >

<!-- *********************************** -->
<!-- The sublanguage for textual content -->

<!ELEMENT definition ( #PCDATA %Content.mix;  )* >
<!ATTLIST definition id ID #IMPLIED>

<!ELEMENT note ( #PCDATA %Content.mix;  )* >
<!ATTLIST note id ID #IMPLIED>

<!ELEMENT code ( #PCDATA %Content.mix;  )* >

<!ELEMENT defined ( #PCDATA %Content.mix;  )* >

<!ELEMENT emph ( #PCDATA %Content.mix;  )* >

<!ELEMENT quote ( #PCDATA %Content.mix;  )* >

<!ELEMENT whatsit ( #PCDATA %Content.mix;  )* >
<!ATTLIST whatsit kind CDATA #REQUIRED>

<!-- ************************************ -->
<!-- The sublanguage for cross references -->

<!ELEMENT ref ( #PCDATA %Content.mix;  )* >
<!ATTLIST ref target-module NMTOKEN #IMPLIED
              target-atom NMTOKEN #IMPLIED
              target NMTOKEN #IMPLIED
              url CDATA #IMPLIED>

<!-- ************************************ -->
<!-- The sublanguage for simple includes  -->

<!ELEMENT include EMPTY >
<!ATTLIST include select CDATA #REQUIRED>

<!-- TeachML Box ................... ..................... -->

<!ELEMENT vbox ( %ElementsBox.mix;  )+ >
<!ATTLIST vbox
    width CDATA #IMPLIED
    id ID #IMPLIED >

<!ELEMENT hbox ( %ElementsBox.mix;  )+ >
<!ATTLIST hbox
    width CDATA #IMPLIED
    id ID #IMPLIED >

<!ELEMENT cbox ( #PCDATA %Content.mix;  )* >
<!ATTLIST cbox
    width CDATA #IMPLIED
    id ID #IMPLIED >

<!ELEMENT ivbox ( %ElementsBox.mix;  )+ >
<!ATTLIST ivbox
    width CDATA #IMPLIED
    id ID #IMPLIED >

<!ELEMENT ihbox ( %ElementsBox.mix;  )+ >
<!ATTLIST ihbox
    width CDATA #IMPLIED
    id ID #IMPLIED >

<!-- TeachML Tup ................... ..................... -->

<!ELEMENT tuples ( metatuple?, tuple+ ) >
<!ATTLIST tuples
    arity CDATA #IMPLIED
    id ID #IMPLIED >

<!ELEMENT metatuple ( ten+ ) >

<!ELEMENT tuple ( ten+ ) >

<!-- "ten" is the abbreviation of Tuple ENtry -->
<!ELEMENT ten ( #PCDATA %Content.mix;  )* >

<!-- TeachML Astep ................... ..................... -->

<!ELEMENT atom-stepping ( #PCDATA %Content.mix;  )* >
<!ATTLIST atom-stepping
    id ID #IMPLIED  >

<!ELEMENT atoms ( atom )+ >

<!ELEMENT step ( #PCDATA %Content.mix;  )* >
<!ATTLIST step
    atom CDATA #REQUIRED
    initial (true|false) "false" >

<!ELEMENT nosteps EMPTY >
<!ATTLIST nosteps
    atom CDATA #REQUIRED >

<!-- TeachML Integration extensions  .................... -->
<!ELEMENT atom ( alternative )+ >
<!ATTLIST atom
    id ID #IMPLIED >

<!ELEMENT alternative EMPTY >
<!ATTLIST alternative
    name         CDATA #REQUIRED 
    extension    CDATA #REQUIRED
    type         CDATA #REQUIRED
    derived-from CDATA #IMPLIED
    derived-by   CDATA #IMPLIED>

Discussion

The following text is copy/paste from http://www.targeteam.net/ (!), , retrieved 15:50, 29 May 2007 (MEST).

Learner's Experience

The feedback from learners was positive about the rich offer of different delivery formats which can be selected according to the learning situation and personal preferences. The main delivery formats offered where a fulltext script in PDF, a fulltext online script as structured HTML, and a short "slide" version in HTML used during the lectures.

Authors Experience

After a period of accomodation the abstract structure and the separation from layout of the Targeteam content was perceived by authors as making the development of teaching materials substantially easier. However, this is only true for the development of new content or the reuse of Targeteam content. The reuse of "legacy content", such as content in LaTeX, Powerpoint or Word format, is rather difficult.

Links

Bibliography

  • Teege, Gunnar (2002), Reuse of Teaching Materials in Targeteam HTML
  • Ruch, Tobias (2008). Konzeption und Realisierung eines Layout-Editors für TeachML-Kursinhalte, Vdm Verlag Dr. Müller, ISBN 3639046293.
  • Wehner, F. & Lorz, A. (2001). Developing Modular and Adaptable Courseware Using TeachML. In C. Montgomerie & J. Viteli (Eds.), Proceedings of World Conference on Educational Multimedia, Hypermedia and Telecommunications 2001 (pp. 2013-2018). Chesapeake, VA: AACE. Abstract/PDF