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 <em> tags, not <I> tags</p>
<code>
<p>The emphasis is upon describing the structure,
<em>not</em> the presentation.</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 <descr> field, not <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>