<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="../../../_utils/schema/yaps.rnc" type="application/relax-ng-compact-syntax"?>
<?xml-model href="../../../_utils/schema/yaps.isosch" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<?xml-stylesheet type="text/xsl" href="yaps2slidy1.xslt"?>
<!-- $Id: where_fits.xml 51709 2026-05-28 23:29:13Z syd $ -->
<TEI xmlns="http://www.wwp.northeastern.edu/ns/yaps">
  <teiHeader>
    <fileDesc>
      <titleStmt>
        <title>XSLT: where does it fit in?</title>
        <author xml:id="jhf">Julia Flanders</author>
	<author xml:id="sbauman.emt">Syd Bauman</author>
      </titleStmt>
      <editionStmt>
        <edition>DHSI 2013, University of Victoria</edition>
      </editionStmt>
      <publicationStmt>
        <distributor>Women Writers Project (via website)</distributor>
        <address>
          <addrLine>url:mailto:wwp@northeastern.edu</addrLine>
        </address>
        <date when="2013-06-06"/>
        <availability status="restricted">
          <p>Copyright 2012 Syd Bauman, Julia Flanders, and the Women Writers Project</p>
	  <p>This TEI-encoded XML file is available under the terms of
	  the <ref target="http://creativecommons.org/licenses/by-sa/3.0/">Creative
	  Commons Attribution-ShareAlike 3.0 (Unported)</ref>
	  license.</p>
        </availability>
        <pubPlace>Providence, RI  USA</pubPlace>
      </publicationStmt>
      <sourceDesc>
        <p>Very brief minimalist coverage of XSLT as part of any basic
        XML publishing tool chain (at a conceptual level).</p>
      </sourceDesc>
    </fileDesc>
    <revisionDesc>
      <change when="2013-03-20" who="#sbauman.emt">
	Created, based wholely on
	_current//presentations/publication/publication_overview.xml
      </change>
    </revisionDesc>
  </teiHeader>
  <text>
    <presentation>
      
      <section>
        <head>
          <q>XML workflow</q>
        </head>
        <slide>
          <figure>
            <graphic height="400px" url="../../../_utils/gfx/workflow_formats_xslt.png"/>
          </figure>
        </slide>
        <lectureNote>
	  <p>One way to orient ourselves in the landscape of transformation is to
	  think about how we use our own data. If we think of the life cycle of a
	  TEI project, there are numerous places along the timeline where we want
	  to express different views of our data, for internal or external
	  viewing:
          <list>
            <item>proofreading and error catching</item>
            <item>formats that extract specific structures to let us
            catch inconsistencies in the encoding</item>
            <item>web publication</item>
            <item>print publication</item>
            <item>formats for contribution to collaborative projects (where we
            might want to simplify or alter our markup to match the target
            encoding of those projects)</item>
            <item>metadata formats (e.g. to expose to metadata harvesters)</item>
            <item>archival formats for committing to a repository</item>
          </list>
          </p>
        </lectureNote>
        <tutorial>
	  <p>One way to orient ourselves in the landscape of transformation is to
	  think about how we use our own data. If we think of the life cycle of a
	  TEI project, there are numerous places along the timeline where we want
	  to express different views of our data, for internal or external
	  viewing:
          <list>
            <item>proofreading and error catching</item>
            <item>formats that extract specific structures to let us
            catch inconsistencies in the encoding</item>
            <item>web publication</item>
            <item>print publication</item>
            <item>formats for contribution to collaborative projects (where we
            might want to simplify or alter our markup to match the target
            encoding of those projects)</item>
            <item>metadata formats (e.g. to expose to metadata harvesters)</item>
            <item>archival formats for committing to a repository</item>
          </list>
          </p>
        </tutorial>
      </section>

      <section>
        <head>Single-source publishing and XSLT</head>
        <slide>
          <figure rend="css( text-align: center; )">
            <graphic height="400px" url="../../../_utils/gfx/single-source_xslt_generic.png"/>
          </figure>
        </slide>
        <lectureNote>
          <p>Another way to approach the topic of this workshop is to
          think about transformation and publishing as a variety of
          informational avenues that radiate out from our TEI data.
          Even though it's probably a familiar concept to many of you,
          it's worth noting an important assumption that underlies
          much of our work with XML: we're creating a single XML
          source from which we are going to generate many different
          kinds of output.</p>
          <p>This is important because the XML source is an expensive
          and valuable information object: it represents a careful
          modeling of our research materials, we've put a lot of work
          into it (transcription, encoding, proofreading, correction,
          annotation, other kinds of enhancement) and we want to
          exploit it in many different ways, automatically, not by
          hand.</p>
          <p>When we generate these different varieties of output, we
          are often losing information: erasing distinctions that are
          present in the source (but unnecessary in the output), or
          moving from a representationally rich language (like TEI) to
          a representationally impoverished language (like HTML)</p>
         <p>But since these output formats are generated
         automatically, rather than by hand, this information loss
         doesn't matter: the source retains its informational
         richness: it represents the full set of possibilities from
         which any specific option can be generated.</p>
        </lectureNote>
        <tutorial>
          <p>Another way to approach the topic of this workshop is to
          think about transformation and publishing as a variety of
          informational avenues that radiate out from our TEI data.
          Even though it's probably a familiar concept to many of you,
          it's worth noting an important assumption that underlies
          much of our work with XML: we're creating a single XML
          source from which we are going to generate many different
          kinds of output.</p>
          <p>This is important because the XML source is an expensive
          and valuable information object: it represents a careful
          modeling of our research materials, we've put a lot of work
          into it (transcription, encoding, proofreading, correction,
          annotation, other kinds of enhancement) and we want to
          exploit it in many different ways, automatically, not by
          hand.</p>
          <p>When we generate these different varieties of output, we
          are often losing information: erasing distinctions that are
          present in the source (but unnecessary in the output), or
          moving from a representationally rich language (like TEI) to
          a representationally impoverished language (like HTML)</p>
         <p>But since these output formats are generated
         automatically, rather than by hand, this information loss
         doesn't matter: the source retains its informational
         richness: it represents the full set of possibilities from
         which any specific option can be generated.</p>
        </tutorial>
      </section>
      
      <section>
        <head>Some examples</head>
        <slide>
          <p><ref target="http://brockdenbrown.cah.ucf.edu/xtf3/view?docId=1811-00322.xml;query=;brand=default">Charles Brockden Brown Archive</ref></p>
          <p><ref target="http://www.marktwainproject.org/xtf/search?iso-year=1853;iso-year-max=1875;category=letters;style=mtp;brand=mtp;sort=date;facet-availability=text">Mark Twain Project</ref></p>
          <p><ref target="http://clover.slavic.pitt.edu:8080/exist/paul/data/paul_main.html">Paul the Simple</ref>, <ref target="http://clover.slavic.pitt.edu:8080/exist/paul/data/paul.xml">XML source</ref></p>
        </slide>
        <lectureNote>
          <p>A few examples:
          <list>
            <item>Charles Brockden Brown</item>
            <item>Mark Twain Project</item>
            <item>Paul the Simple</item>
          </list>
          </p>
        </lectureNote>
        <tutorial>
          <p>A few examples:
          <list>
            <item>Charles Brockden Brown</item>
            <item>Mark Twain Project</item>
            <item>Paul the Simple</item>
          </list>
          </p>
        </tutorial>
      </section>
      
      <section>
        <head>Transformation as a power tool</head>
        <slide>
          <figure>
          <graphic height="400px" url="../../../_utils/gfx/xml_mutability.png"/>
            </figure>
        </slide>
        <lectureNote>
          <p>A third important aspect of our topic is the idea of data
          as a mutable, protean substance: as a kind of plastic
          informational model that we can reshape and manipulate as
          needed.</p>
          <p>In the example here, all four of these examples represent
          pretty much the same pieces of data—any one of them could be
          generated from any of the others. And yet these differences
          might matter in the context of some particular tool or
          standard way of doing things.</p>
          <p>The point is that our data is almost never trapped in its
          current format: when we understand it as transformable, we
          gain power over it and we can use it more flexibly. If a
          collaborator needs some information extracted from our data,
          or if they put their fields in a slightly different order,
          or whatever, it's not a problem.</p>
          <p>The chief tool for doing all of these kinds of work is a
          programming language called XSLT, the Extensible Stylesheet
          Language for Transformations:
            <list>
              <item>it can be used on its own to generate different
              kinds of transformed and manipulated data (such as HTML,
              KML, JSON, other XML formats)</item>
              <item>and it also is built into many (most? all?) of the
              XML publication systems that we use, such as XTF, as the
              way that they take XML data and manipulate it as part of
              their publication activities</item>
            </list>
            Either way, what it does is give us a way of manipulating
            our XML data: to extract pieces of it, reshape them,
            change their format, generally do whatever we want to do
            with them.</p>
        </lectureNote>
        <tutorial>
          <p>A third important aspect of our topic is the idea of data
          as a mutable, protean substance: as a kind of plastic
          informational model that we can reshape and manipulate as
          needed.</p>
          <p>In the example here, all four of these examples represent
          pretty much the same pieces of data—any one of them could be
          generated from any of the others. And yet these differences
          might matter in the context of some particular tool or
          standard way of doing things.</p>
          <p>The point is that our data is almost never trapped in its
          current format: when we understand it as transformable, we
          gain power over it and we can use it more flexibly. If a
          collaborator needs some information extracted from our data,
          or if they put their fields in a slightly different order,
          or whatever, it's not a problem.</p>
          <p>The chief tool for doing all of these kinds of work is a
          programming language called XSLT, the Extensible Stylesheet
          Language for Transformations:
            <list>
              <item>it can be used on its own to generate different
              kinds of transformed and manipulated data (such as HTML,
              KML, JSON, other XML formats)</item>
              <item>and it also is built into many (most? all?) of the
              XML publication systems that we use, such as XTF, as the
              way that they take XML data and manipulate it as part of
              their publication activities</item>
            </list>
            Either way, what it does is give us a way of manipulating
            our XML data: to extract pieces of it, reshape them,
            change their format, generally do whatever we want to do
            with them.</p>
        </tutorial>
      </section>

      <section>
	<head>What you need to know</head>
	<slide>
	  <list type="gloss">
	    <label>input language</label>
	    <item>in our case, TEI P5</item>
	    <label>XSLT</label>
	    <item>XSLT 2.0, icluding XPath 2.0; we will pretty much
	    ignore the existence of XSLT 1.0 or 3.0</item>
	    <label>output language</label>
	    <item>most commonly XHTML or TEI, but could be most
	    anything (SVG, XSL-FO, DocBook, KML, METS, MODS, RDF, EAD,
	    EAC, BiblioML, etc., or a home-grown or proprietary XML
	    language; or plain text output like tab-delimited)</item>
	  </list>
	  <p>In addition, raw (X)HTML typically looks awful; you'll
	  need CSS to make the output look good in a browser</p>
	</slide>
      </section>
	    
      <section>
        <head>Simple publication with XSLT</head>
        <slide>
          <p>Extensible Stylesheet Language transformations allow you
            to transform XML documents into other formats </p>
          <figure>
            <graphic height="400px" url="../../../_utils/gfx/publication_tools_xslt.png"/>
          </figure>
        </slide>
        <lectureNote>
          <p>The Extensible Stylesheet Language allows you to
          transform XML documents into other XML formats</p>
          <p>Essentially XSLT allows you to map a given XML element
          onto another XML element: saying "take in the following
          construct, and put out this other construct"</p>
          <p>It could be a construct in the same language, or in a
          different language such as XHTML, as in the example here</p>
        </lectureNote>
        <tutorial>
          <p>The Extensible Stylesheet Language allows you to
          transform XML documents into other XML formats</p>
          <p>Essentially XSLT allows you to map a given XML element
          onto another XML element: saying "take in the following
          construct, and put out this other construct"</p>
          <p>It could be a construct in the same language, or in a
          different language such as XHTML, as in the example here</p>
        </tutorial>
      </section>
            
    </presentation>
  </text>
</TEI>