<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="../stylesheets/yaps-tei.css"?>
<?oxygen RNGSchema="../schema/yaps.rnc" type="compact"?>
<?oxygen SCHSchema="../schema/yaps.sch"?>
<TEI xmlns="http://www.wwp.brown.edu/ns/yaps/1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
  <teiHeader>
    <fileDesc>
      <titleStmt>
	<title>Understanding the TEI Guidelines</title>
	<author>Julia Flanders</author>
	<author>Syd Bauman</author>
      </titleStmt>
      <xi:include href="./boilerplate_publicationStmt.xml">
	<xi:fallback>
	  <publicationStmt status="restricted">
	    <note type="auto">WARNING: XInclude processing failed &#x2014; this file should not be copied or
	    used (and is invalid) as a result.</note>
	  </publicationStmt>
	</xi:fallback>
      </xi:include>
      <sourceDesc>
	<p>This TEI encoded digital file is the source.</p>
      </sourceDesc>
    </fileDesc>
    <revisionDesc>
      <change when="2007-06-26">Edit, improving many slides, but also
      removing most of what used to be modelling</change>
      <change when="2007-06-19">Merge customization &amp; modelling into
      this file, adding info on class system and reading the Guidelines</change>
      <change when="2006-03-13" who="#SB">automatically converted from
      presentation.odd conforming to yaps.odd conforming using p2y.xslt and
      p2y.perl</change>
    </revisionDesc>
  </teiHeader>
  <text>

    <presentation>

      <!-- 
      * guidelines overall: big set of guidelines divided different ways:
        - topically or by discipline by chapater / module
        - classes w/ xmp
        - prose & reference
      * walk-through of reading reference section
      * ODD structure (from begining of customizatio)
      * customization: what & why (from modelling)
      * Roma demo
      -->

      <section>
        <head>Brief Review of a Few Important Points</head>
        <slide>
          <list>
            <item>Define an encoding language (that is intended to
              be customized)</item>
            <item>Include schemas — formal rules for
              encoding</item>
            <item>Explanations of how to apply these rules</item>
          </list>
        </slide>
        <lectureNote>
          <p>The outward expression of the TEI, from the users point
            of view, is the TEI Guidelines, which include a set of
            schemas, which can be thought of as formal rules for
            encoding documents, and a 1500-page document which
            explains how to apply these rules.</p>
          <p>These Guidelines are not intended to be applied in
            their entirety to every document — rather,
            they define a markup language which can be used in both
            simple and complex ways, depending on the needs of the
            user.</p>
          <p>The TEI can be applied in a highly constraining manner,
            or more loosely; it can be used in accordance with
            standard practices, or when necessary it can be adapted
            to special needs of a small group or even an individual
            scholar.</p>
          <p>Customization is the mechanism that makes all of this
            possible.</p>
        </lectureNote>
      </section>

      <section>
        <head>Yes, they're big</head>
        <slide>
          <p>But they are organized — they are divided: <list>
              <item>topically into chapters &amp; modules</item>
              <item>semantically and functionally into classes</item>
              <item>pedagogically into discussion &amp; reference</item>
            </list>
          </p>
        </slide>
      </section>

      <section>
        <head>Chapters and modules</head>
        <slide>
	  <p>Prose of Guidelines divided into chapters; most address a
	  specific area, topic, or discpline-specific encoding.</p>
	  <p>Those that introduce elements or attributes have an
	  associated <term>module</term>.</p>
          <list>
	    <head>sample modules</head>
            <item>some modules are required, providing general-purpose
            encoding: e.g., the <name type="module">core</name> module
            contains most the basic elements, the <name type="module">header</name> module contains most metadata
            elements for the <gi>teiHeader</gi></item>
            <item>some modules provide genre- or discipline-specific
            elements: e.g., the <name type="module">verse</name>
            module contains <gi>rhyme</gi> and <gi>caesura</gi></item>
	    <item>some modules provide functionality: e.g., the <name type="module">linking</name> module contains markup for
	    encoding arbitrary passages and noting links between
	    them</item>
          </list>
        </slide>
        <lectureNote>
          <p>The ODD source of the TEI is divided into modules, or
            groups of conceptually related elements, which
            constitute different functional components of the
            encoding system:</p>
          <list>
            <item>the core elements which are needed by all
              documents</item>
            <item>the specific modules for different genres, such as
              verse or drama</item>
            <item>the specific modules needed for special types of
              texts, such as dictionaries or manuscripts</item>
            <item>the modules needed for particular specialized
              functions, such as linking, or encoding figures, or
              expressing uncertainty</item>
          </list>
        </lectureNote>
      </section>

      <section>
        <head>Classes</head>
        <slide>
          <p>Classes are functional or semantic groups of elements.</p>
          <p>Two kinds: <list type="gloss">
              <label>model class</label>
              <item>elements that appear in the same place in the logical
                structure — e.g., <name type="class">model.milestoneLike</name>
                contains those <soCalled>milestone</soCalled> elements used to
                describe the physical and typographic structure of a codex:
                  <gi>pb</gi>, <gi>cb</gi>, <gi>lb</gi>, and <gi>milestone</gi>
              </item>
              <label>attribute class</label>
              <item>elements that share a common attribute — e.g.,
                  <name type="class">att.ascribed</name> is the class of
                elements that share the <att>who</att> attribute, i.e. can be
                attributed to an individual, including <gi>change</gi>,
                <gi>q</gi>, and <gi>sp</gi>
              </item>
            </list></p>
        </slide>
	<lectureNote>
	  <p>Club analogy: being a member of a model class is like
	  being a member of a workgroup: you may be called upon for
	  certain tasks; being a member of an attr class is like being
	  a member of a clib with member benefits (i.e.,
	  attributes)</p>
	</lectureNote>
      </section>

      <section>
        <head>Class constituency</head>
        <slide>
	  <p>Classes are composed of elements and sometimes other classes:
          <list>
            <item>elements and attribute classes can be members of attribute
              classes</item>
            <item>a given element (or attribute class) may be a member of more
              than one attribute class</item>
            <item>elements, model classes, or attribute classes can be members
              of model classes</item>
            <item>a given element (or class) may be a member of more than one
              model classs</item>
          </list></p>
        </slide>
      </section>

      <section>
        <head>Datatypes</head>
        <slide>
          <p>Datatypes are constraints on (attribute) values.</p>
	  <p>May limit values to things like: <list>
              <item>a supplied list of possible values:<lb/>e.g.
              <att>sex</att> of <gi>person</gi> or <att>cert</att> of
              <gi>add</gi></item>
	      <item>a user-provided list of possible values:<lb/>e.g.
	      <att>type</att> of <gi>div</gi></item>
	      <item>strings that conform to a specific format:<lb/>e.g.
	      <att>when</att> of <gi>date</gi>, <att>extent</att> of
	      <gi>gap</gi>, or <att>xml:lang</att></item>
	  </list></p>
        </slide>
	<lectureNote>
	  <p>Note: word <mentioned>datatype</mentioned> is not used in
	  the strict computer science sense</p>
	</lectureNote>
      </section>
      <section>
        <head>Components of the Guidelines</head>
        <slide>
	  <p>The TEI Guidelines comprise:
	  <list>
	    <item>a prose discussion of encoding topics; this is the
	    main portion of Guidelines (currently 23 numbered
	    chapters)</item>
	    <item>a reference section, with structured information
	    about each and every element, class, and datatype
	    (appendices A, B, &amp; C)</item>
	    <item>schema fragments, which can be used to constrain
	    your documents so that they are more likely to match the
	    Guidelines</item>
	  </list>
	  </p>
        </slide>
      </section>

      <section>
        <head>Don't Panic</head>
        <slide>
          <p>Reference section can seem daunting — concepts are pretty simple,
            but there are a <emph>lot of elements and classes</emph>, their
            names can be puzzling, and (currently) the formatting is awful.</p>
          <p>Let's have a look, starting with <ref target="http://www.tei-c.org/">TEI website</ref> …</p>
          <p>Bookmark this link: <ref target="http://www.tei-c.org/release/doc/tei-p5-doc/en/html/">http://www.tei-c.org/release/doc/tei-p5-doc/en/html/</ref>.</p>
	  <p>(If you've installed TEI yourself, the Guidelines are
	  probably in <ident type="path">/usr/share/doc/tei-p5-doc/en/html/</ident>.)</p>
        </slide>
      </section>

      <section>
        <head>One Document Does it All (ODD)</head>
        <slide>
          <p>Remember that the TEI Guidelines consist of three interdependant interconnected
            parts: <list>
              <item>the main text of the Guidelines (i.e., all but appendices A,
                B, &amp; C)</item>
              <item>reference documentation for each class, macro, and element</item>
              <item>schemas that constrain encoding</item>
            </list></p>
          <p>These are all extracted from one single source XML
          document, encoded in TEI using the module for tagset
          documentation.</p>
        </slide>
      </section>

      <section>
        <head>ODD: generating TEI guidelines</head>
        <slide>
          <figure>
            <head>Roma as used to generate Guidelines</head>
            <figDesc>Illustration of inputs &amp; outputs to Roma for
              building P5: input=P5 Source ODDS, output=prose guidelines,
              reference documentation, schemas</figDesc>
            <graphic height="450px" url="./gfx/tei_odd.png"/>
          </figure>
        </slide>
      </section>

      <section>
        <head>Customization is fundamental to the TEI</head>
        <slide>
          <list>
            <item>No single canonical view</item>
            <item>All TEI schemas are customizations</item>
            <item>Some are common and frequently used</item>
            <item>Others are rare or unique</item>
          </list>
        </slide>
      </section>

      <section>
        <head>ODD: generating customized schema &amp; documentation</head>
        <slide>
          <figure>
            <figDesc>Illustration of inputs &amp; outputs to Roma for
              generating customization: input=P5 Source ODDS + user's
              customization ODD, output=reference docuemtation &amp; schemas</figDesc>
            <graphic height="450px" url="./gfx/tei_odd_customization.png"/>
          </figure>
        </slide>
      </section>

      <section>
	<head>Why customize the TEI?</head>
	<slide>
	  <p>Produce a schema more closely adapted to your needs:
	  <list>
              <item>a local schema that reflects the structure of your
                data</item>
              <item>a community-specific schema that reflects specific
                methods and agreements</item>
              <item>a task-specific schema to support some particular
                activity</item>
	      </list></p>
	      <p>Produce documentation that matches your actual
	      schema. (For instance compare <ref target="http://www.tei-c.org/P5/Guidelines/ref-model.biblLike.html">the vanilla TEI</ref> class for bibliographic citations
	      with the same class in <ref target="../../demos/support/teach-basic.doc.html#model.biblLike">our teach-basic</ref> customization)</p>
	    </slide>
        <lectureNote>
          <p>example particular activity: data entry</p>
        </lectureNote>
      </section>

      <section>
        <head>What can you customize?</head>
        <slide>
          <p>Customization is a process that includes:</p>
          <list>
            <item>
              <emph>choosing which modules to use, which not to
                use</emph>
            </item>
            <item>choosing which elements in those modules not to
              use</item>
            <item>choosing which attributes on those elements not to
              use</item>
            <item>changing the names of elements or attributes</item>
            <item>restricting the values of attributes
            (<emph>important!</emph>)</item>
            <item>adding new elements</item>
            <item>adding new attributes</item>
          </list>
        </slide>
        <lectureNote>
          <p>The TEI is not used directly in tis raw form. In all
            cases a customized <soCalled>view</soCalled> of the TEI,
            or a <soCalled>customization</soCalled> is what is used.</p>
          <p>When users want to create TEI schemas, they create an
            ODD customization file that lists the modules they would
            like to use, the specific elements they would like to
            add or delete, the attributes they change, etc. </p>
	    <p>It is possible to customize the TEI very radically, but
	    resulting markup languages are not <term>TEI
	    conformant</term>. E.g., one could delete
	    <emph>every</emph> TEI element, and then add all the
	    elements one normally finds in the Historical Event Markup
	    Language.</p>
        </lectureNote>
      </section>

      <section>
        <head>What kinds of things should always be customized?</head>
        <slide>
          <list>
            <item>Values for <att>type</att> attributes</item>
            <item>Values for any kind of information for which a controlled
              vocabulary exists</item>
          </list>
        </slide>
      </section>

      <section>
        <head>What not to customize?</head>
        <slide>
	  <p>In order to remain <term>TEI conformance</term>:
          <list>
            <item>Don’t remove the header!</item>
            <item>Don't remove required elements from the header!</item>
            <item>Don't duplicate things which the TEI already has
            provided</item>
          </list>
	  </p>
        </slide>
      </section>

      <section>
        <head>How do we customize?</head>
        <slide>
          <p>Use <ref target="http://www.tei-c.org.uk/Roma/">Roma</ref>, the
          web-based interface to <name type="cmd">roma</name>, by
          Sebastian Rahtz and Arno Mittelbach.</p>
	  <p>It performs two functions:
	    <list>
              <item>front-end GUI editor for ODD files (mostly
              complete)</item>
              <item>front-end GUI to roma for generating schemas
                &amp; reference documentation</item>
            </list>
	  </p>
        </slide>
        <lectureNote>
          <p>While this customization file is not particularly hard
            to write by hand, creating one is made even easier by a
            web-based front-end-editor called Roma. Many thanks to
            Sebastian Rahtz with the help of Arno Mittelbach for
            creating this wonderful tool.</p>
	    <p>Start from <q>Build schema (Create a new customisation
	    by adding elements and modules to the smallest recommended
	    schema) </q></p>
          <list>
            <item>modules: <list>
                <item>
                  <name type="module">core</name>
                </item>
                <item>
                  <name type="module">header</name>
                </item>
                <item>
                  <name type="module">textstructure</name>
                </item>
                <item>
                  <name type="module">drama</name>
                </item>
                <item>
                  <name type="module">linking</name>
                </item>
                <item>
                  <name type="module">transcr</name>
                </item>
              </list>
            </item>
            <item>delete most elements from most modules</item>
            <item>delete the <att>key</att> attribute from <gi>name</gi></item>
            <item>delete most attrs from <name type="class">att.global</name>
              and <name type="class">att.global.linking</name></item>
            <item>constrain <att>type</att> of <gi>div</gi> or
            <gi>name</gi></item>
          </list>
        </lectureNote>
      </section>
    </presentation>
  </text>
</TEI>
