XML Document for "XMLTalk" Presentation

<!DOCTYPE slides SYSTEM "slides.dtd">
<slides><title>XML Talk</title>
  
  <slide name="root"><title>XML</title>
    <itemize>
      <item><uri href="what.html">What is it?</uri></item>
      <item><uri href="why.html">Why use it?</uri></item>
      <item><uri href="how.html">How does it work?</uri></item>
      <item><uri href="examples.html">An example</uri></item>
      <item><uri href="conclusions.html">Conclusions</uri></item>
    </itemize>
  </slide>

  <slide name="what" next="why"><title>XML - What is it?</title>
    <itemize>
      <item>A Document Protocol
        <itemize>
          <item><uri href="organize.html">how to organize documents</uri></item>
        </itemize>
      </item>
      <item>A Markup Language
        <itemize>
          <item><uri href="markup.html">how to "markup" a document</uri></item>
        </itemize>
      </item>
      <item>A Document Processing Context
        <itemize>
          <item><uri href="handling.html">Programs for handling documents</uri></item>
        </itemize>
      </item>
    </itemize>
  </slide>

  <slide name="organize" next="what"><title>Organizing a Document</title>
    Here is an example of an XML document:
    <code><includeHTML file="organize.xml" translate="yes"/></code>
  </slide>

  <slide name="markup" next="what"><title>"Marking Up" a Document</title>
    <p>Documents are "marked up" by inserting <em>tags</em> describing the
      <em>structure</em> of the document.</p>
    <p>The emphasis is upon describing the structure, <em>not</em> the
      presentation.</p>
    <p>For this reason, the <em>not</em> in the last sentence (and this
      one too!) was surrounded with &lt;em> tags, not &lt;I> tags</p>
    <code>
      &lt;p>The emphasis is upon describing the structure, 
      &lt;em>not&lt;/em> the presentation.&lt;/p>
    </code>
  </slide>

  <slide name="handling" next="handling2"><title>Programs to Handle XML Documents (1)</title>
    <p>A wide range of choices, using a wide variety of languages!</p>
    <p>Here just look at the Perl range.</p>
    <p>Why Perl?
      <itemize><item>Widely available</item>
        <item>Used in CGI scripts anyway</item>
        <item>Short development time</item>
        <item>excellent for string processing</item>
        <item>highly interactable with system features, programs</item>
      </itemize>
    </p>
  </slide>

  <slide name="handling2" next="what"><title>Programs to Handle XML Documents (2)</title>
    <description>
      <item><term>Perl module XML::Parser</term>
        <p>This is a Perl interface to the C-based parser "Expat".  It comes
          in a number of <em>styles</em>: streaming, subroutine-ing, tree,
          objects, debug</p></item>
      <item><term>Perl module XML::DOM</term>
        <p>This is a Perl implementation of the W3C "Domain Object Model", a
          tree-based parser.</p>
      </item>
      <item><term>AJH program AXE</term>
        <p>This is based upon XML::Parser, and does translations of XML to an
          arbitrary markup.  Currently HTML and TeX translations are
          defined.  It is table driven, thus simplfying the work of writing
          a new parser/translator program.</p>
      </item>
      <item><term>AJH program XLP</term>
        <p>This is a literate programming system, based upon NutWeb, and
          generates XML code for subsequent processing by AXE.</p></item>
    </description>
  </slide>

  <slide name="why" next="how"><title>XML - Why use it?</title>
    <itemize>
      <item>Key issue is the separation of structure from
        presentation</item>
      <item>Tags can be arbitrary, and have no meaning.  Hence they can be
        chosen by the author to reflect the logical organization of the
        document.
        <p><uri href="example2.html">Example 2</uri></p>
      </item>
      <item>Document has high level of structure, so more meaningful
        searches are possible.
        <p><uri href="example3.html">Example 3</uri> Search for images of 1210:
          look in &lt;descr> field, not &lt;size></p>
      </item>
      <item>Rendering the document for presentation is kept entirely
        separate, and can be done more than one way for different display
        purposes.</item>
    </itemize>
  </slide>

  <slide name="example2" next="why"><title>Example 2</title>
    <code><includeHTML file="Junee-1.xml" translate="yes"/></code>
  </slide>

  <slide name="example3" next="why"><title>Example 3</title>
    <code><includeHTML file="1210-7.xml" translate="yes"/></code>
  </slide>

  <slide name="how" next="examples"><title>XML - How does it work?</title>
    <itemize>
      <item>Need two tools:
        <itemize><item>Parser</item><item>Transformer</item></itemize>
      </item>
      <item>Parser checks that <uri href="document.html">document</uri> is well
        formed (properly nesting tags, and the like); </item>
      <item>Transformer creates the new document by
        specifying <uri href="transforms.html">transforms</uri> of each set of
        tags.</item>
    </itemize>
  </slide>

  <slide name="transforms" next="how"><title>Transform Specification for "slides" to "HTML"</title>
    <code><includeHTML file="slides.html" translate="yes"/></code>
  </slide>

  <slide name="document" next="how"><title>XML Document for "XMLTalk" Presentation</title>
    <code><includeHTML file="XMLTalk.xml" translate="yes"/></code>
  </slide>

  <slide name="examples" next="example-a"><title>An Example: On-line Shopping</title>
    <itemize>
      <item>Suppose you want to buy a book on-line</item>
      <item>You can visit various sites, but each will have its own
      "look-and-feel"</item>
      <item>Search <uri href="amazon-search.jpg">Amazon.com</uri> and
        you get these <uri href="amazon-results.jpg">Results</uri>
      </item>
      <item>Search <uri href="powells-search.jpg">Powells.com</uri> and
        you get these <uri href="powells-results.jpg">Results</uri>
      </item>
      <item>How might we make this more convenient for the shopper?</item>
    </itemize>
  </slide>

  <slide name="example-a" next="example-b"><title>Junglee Shopping
  Guide</title>
    <itemize>
      <item>The <em>Junglee Shopping Guide</em> is a shopping service
        that uses a virtual database (VDB) to aggregate information
        from a range of web sites.</item>
      <item>A customer enters desired attributes, and the <em>Shopping
        Guide</em> does the rest.</item>
      <item>The secret is in using XML to return abstract data.</item>
      <item>The various sites are queried, and the data assembled as
        XML, translating from the original (HTML, .doc, .pdf) as
        necessary.</item>
    </itemize>
  </slide>

  <slide name="example-b" next="example-c"><title>Sample
        Result</title>
    <code><includeHTML file="book-result.xml" translate="yes"/>
    </code>
    <p>This can be rendered with appropriate style sheets</p>
  </slide>

  <slide name="example-c" next="train-search"><title>How it Works</title>
    <itemize>
      <item>When the search values are entered, each site is queried</item>
      <item>Each site has a <em>wrapper</em>, a Java program that
        knows about each site's structure</item>
      <item>The wrapper extracts the data items, and assembles them
        into an XML document.</item>
    </itemize>
  </slide>

  <slide name="train-search" next="root"><title>Train Search</title>
    <itemize>
      <item>My Railways 
        <uri href="http://hawthorn.csse.monash.edu.au/~ajh/trains/">
          web site</uri> uses a similar technique for its search
        engine
      </item>
      <item>Every image in the collection has its own 
        <uri href="description-file.html">description file</uri>
        in XML</item>
      <item>All words in the "description" field are collected into a
        large (static) database</item>
      <item>Each search matches against the database to yield a 
        <uri href="query-result.html">set of XML records</uri>
      </item>
      <item>Apply the translation style sheet to yield 
        <uri href="query-translate.html">HTML</uri>, which then gets 
        <uri href="query.html">rendered</uri>
      </item>
    </itemize>
  </slide>

  <slide name="description-file"
        next="train-search"><title>Description File</title>
    <code>
<includeHTML file="Gundagai-1.xml" translate="yes"/>
    </code>
  </slide>

  <slide name="query-result" next="train-search"><title>Query Result</title>
    <code>
<includeHTML file="query.xml" translate="yes"/>
    </code>
  </slide>

  <slide name="query-translate" next="train-search"><title>Query
        Translate Result</title>
    <code>
<includeHTML file="query.html" translate="no"/>
    </code>
  </slide>

  <slide name="conclusions" next="root"><title>Conclusions</title>
    <itemize>
      <item>XML is a <b>document markup system</b></item>
      <item>XML allows generalized document manipulation,
        deconstruction and reconstruction
      </item>
      <item>XML separates <b>document structure</b> from <b>document
          presentation</b>
      </item>
    </itemize>
  </slide>
</slides>
next