<?xml version="1.0"?>
<?xml-stylesheet href="file:///home/ajh/www/trains/ajhwebrail.xsl"?>
<!DOCTYPE TrainPage SYSTEM "file:///home/ajh/www/trains/TrainPage.dtd">
<TrainPage xmlns:xi="http://www.w3.org/2001/XInclude"
  system="" page="index"
  searchbutton="Railway"
  search="trains/">
  <border>Trains:AJH</border>
  <TrainHeader>
    <Shunting system="Central"/>
  </TrainHeader>
  <section>
    <title>Current NEWS ...</title>
    <subsection>
      <title>NEW DOMAIN NAME</title>
      <p>Plans have been announced to remove the domain name
        <c>www.csse.monash.edu.au</c>, and all the pages under it.
        This will probably not happen for a while yet, but in the
        meantime, I have setup a new server (belonging to me, rather
        than the university) which will mirror all the railway
        photograph material for the foreseeable future.  It is
        suggested that you start changing those bookmarks to:</p>
      <narrower style="size:200%"><uri href="http://www.ajhurst.org/~ajh/trains/">
          http://www.ajhurst.org/~ajh/trains/</uri>
      </narrower>
      <p></p>
    </subsection>
    <subsection>
      <title>Themes</title>
      <p>There is a new directory called "themes" containing themed
        photographs.  These are photographs already in the album, but
        linked by a common theme.  See <uri
          href="trains/themes/night.xml">Night Photographs</uri> for an
        example.</p>
    </subsection>
  </section>
  <section>
    <title>Welcome to John Hurst's Railway Photograph Catalogue!</title>
    <p>G'day.  This site started out as a way of cataloging my numerous
      railway pictures, which I first starting building up as a set of
      root window backgrounds.  That was back in 1992, before the
      web. But once I became aware of the web (in 1994), I realised that
      a web page would not only allow me to peruse my catalog easily,
      but might also prove useful to others.</p>
    <p>This site first went on-line in the week starting 3 Jul 1994,
    and I claim it as one of the first railway web pages!  Proof of
    this lies in the school's server log pages, at
    <uri href="http://www.csse.monash.edu.au/usage/cs/1994/week6.html">
      http://www.csse.monash.edu.au/usage/cs/1994/week6.html
    </uri>, under "10 items accessed most ... /image_lib/trains 96".  
    How about that for industrial archaeology? <smiley/>
  </p>
  <p>Anyway, I hope you enjoy these pages.  Many people have written
    to me to say they have enjoyed them, and you are welcome to
    <uri href="mailto:ajh@csse.monash.edu.au">drop me a short (or long!) 
      note with your comments.</uri></p>
  <photo insert="JohnHurst-1"/>
  <p>Whether you are visiting for the first time, or revisiting, you
    will probably find the <uri href="trains/new/index.xml">Recently Added
    Images</uri> page useful to see how things are progressing with
    these pages.  I add things as I get time (which isn't often
    nowadays!) and this page gives you a quick overview of what has
    changed of late.</p>
  <p>The catalog is restricted to photographs where either I own the
    copyright, or permission has been given to include photographs
    here.  Permission is given to copy any these images for personal
    or research use, but not for commercial gain or profit <em>without
      written permission from me or the original copyright owner</em>.  I
    would appreciate 
    <uri href="mailto:ajh@csse.monash.edu.au">hearing</uri>
    how you find these images useful.</p>
  <p>Work has started on archiving photos.  
    Access to the larger images is restricted so that
    they can only be accessed through a cgi interface.  This 
    allows me to track the actual use of the images more easily than
    through log files.  (One of the consequences of this is that
    Internet Explorer browsers cannot access large images, due to a
    fault in IE with how it handles cgi parameters. Sorry, but if you
    use IE, you deserve everything you get!)  In the
    longer term, images will be moved to and from archival storage
    according to demand.  It is intended that thumbnails will continue
    to remain on the web pages, to show what is available.</p>
  <p>I currently also have a rather large backlog of photos to put up,
    and while I am always most pleased to hear from new
    correspondents, I would ask you to note that if you send my photos
    for inclusion in these pages, there may be some delay in placing
    them online.</p>
  </section>
  <title>This page also accessible from
    <uri href="http://tinyurl.com/2u493">http://tinyurl.com/2u493</uri>
   </title>
  <section><title>Catalogue Overview</title>
    <p>This page describes the extensive collection of railway images
      maintained at <uri href="http://www.csse.monash.edu.au/">Computer
        Science</uri>, <uri href="http://www.monash.edu.au/">Monash
        University</uri>.  For my other <b>reciprocal</b> railway links,
      see <uri href="trains/links.xml"> my Railway Links Page </uri> (still
      being updated). If you have a railway page, and you'd like to swap
      links with me, just <uri href="mailto:ajh@csse.monash.edu.au">drop
        me an email note</uri>, and I'll add you in!</p>
    <p>The numbering scheme used for the images themselves is relatively
      straightforward, and provides the basis for referencing all images
      and their descriptions.  Where there is only one locomotive in the
      scene, its class/road number is used as the title.  Multiple
      images of the same loco are reflected in a "-1", "-2", etc.,
      suffix.</p>
    <p>Where there is more than one locomotive in the scene, and the
      locomotives are coupled together, the road numbers are appended in
      the form "leading+trailing+.." as appropriate, again with a "-1"
      suffix to distinguish multiple images.  If the locomotives are on
      separate tracks, the notation "loco=loco-1" is used. Multiple
      parallel running, with multiple coupled locos is handled by
      "loco+loco=loco-1" and so on.</p>
    <p>Occasionally, where many locomotives appear in a scene, only the
      main ones may be identified (such as at roundhouses, etc.).</p>
    <p>Please mail 
      <uri href="mailto:ajh@csse.monash.edu.au">ajh@csse.monash.edu.au</uri> if
      you enjoyed this archive, or if you have any comments or
      complaints!</p>
  </section>

  <section><title>Catalogue Details</title>
    <subsection>
      <title>Dynamic Ranking of Images</title>
      <p>There is a dynamic ranking process that uses access to the
        full images as a voting mechanism.  This does not use the web log
        files, but only records those images accessed by clicking on the
        thumbnails.  See the <uri
          href="http://localhost/~ajh/trains/pops/index.xml"> Vox
          Pops </uri> page for more information, or clink <uri
          href="http://localhost/cgi-bin/ajh/ranktrains.py"> here </uri>.
      </p>
    </subsection>
    <subsection><title>How the Catalogue is Built</title>
      <p>In an ongoing project like this, managing the large amount of
        information that is continually changing can rapidly become
        intractable.  Hence I recognized quite early on that some sort of
        management system was imperative.  Here are the various approaches
        that have been used:
        <enumerate>
          <item>Building all pages in HTML, and editing the raw HTML.  A
            consistent look and feel was established by cutting and
            pasting templates. Needless to say, this approach was quickly
            superceded!</item>
          <item>Defining each page as a literate program, using macro
            processing facilities within the literate programming tools to
            ensure a consistent look and feel.</item>
          <item>Defining each page as a literate program, but
            generating m4 files for handling the macro expansion.
            This complicated the generation process, but provided more
            powerful macro tools.</item>
          <item>Moving the literate programming process from a TeX
            based system (nutweb) to an XML based system (XLP/
            <uri href="http://www.csse.monash.edu.au/~ajh/research/literate/axe.html">
              AXE</uri>).</item>
          <item>Building the pages in XML, using a purpose-built
            markup, and then statically transforming these XML files
            (at the time of upload to the web server) into static HTML
            files.  This system has worked well for several
            years.</item>
          <item>The current system is a bit more elaborate, but has
            the advantage of dynamic rendering, and simpler file
            maintenance.  It is described below.</item>
        </enumerate>
      </p>
    </subsection>
    <subsection><title>The Current System</title>
      <p>Each image has its own description XML file.  The main pages
        are defined as XML documents called <tt>index.xml</tt> that
        "include" the description files.  Such files are then
        translated directly to the corresponding HTML page using an
        XSLT script.  The <em>shunting yards</em>, or navigation bars
        at the head of each page are generated by a series of separate
        xml scripts, such as <uri href="trains/showCentral.html">
        Central.xml</uri>.</p>
      <p>Requests for files from the server can either be to the base
        XML file, or the derived HTML file.  In both cases, a
        .htaccess file gives the server additional information on how
        to render the file.</p>
      <p>For an XML file, there is a handler <tt>index.py</tt>
        that is invoked, and it is passed a parameter string
        indicating the XSLT stylesheet to be used for transforming the
        document into HTML, which is then delivered to the client.
        Dynamic data (such as file modification times) are delivered
        to the XSLT script at this point.</p>
      <p>For an HTML file, if the file exists, it is retrieved and
        returned.  This is a transition phenomenon only, where the
        HTML file is left over from the previous (static) method of
        rendering (see above section).  Where the HTML file has been
        replaced by the XML file however, an Error 404 is generated
        (since the HTML file does not exist), and this is captured by
        the handler.  The corresponding XML file is retrieved, the
        stylesheet name recovered from the nearest upward .htaccess
        file, and the process of the previous paragraph completed. All
        without any obvious action observed by the user (well, there
        is a bit of a speed penalty, but I'm working on that). Neat,
        huh?</p>
      <p>Given any image reference (e.g.,<tt> Gerogery-1</tt>) and its
        directory (e.g., <tt>misc</tt>), all the information required to
        present this image can be constructed from them, relative to the 
        user home directory on the server, viz.:
        <description>
          <term>Full Image</term><item>trains/misc/Gerogery-1.jpg</item>
          <term>Thumbnail Image</term>
          <item>trains/misc/thumb/Gerogery-1.gif</item>
          <term>Description</term><item>trains/misc/Gerogery-1.xml</item>
        </description>
      </p>
    </subsection>
    <subsection><title>Indexing the Catalogue</title> 
      <p>A taxonomy of railway subjects is not straightforward.  I
        have taken the approach of cataloguing by attribute of
        ownership, although the epoch is not necessarily consistent.
        Thus for example, <uri
        href="trains/tourist/pb/pb.xml">Puffing Billy</uri> has a
        separate section, although most of the stock was originally
        built by the <uri href="trains/vic/vic.xml">Victorian
        Railways</uri>.  Visits by rolling stock to other systems
        further confuse this, especially where multiple items of
        different ownership are involved.  Hopefully no one will be
        too confused by the approach taken.  Of course, the author
        will happily entertain any <uri
        href="mailto:ajh@csse.monash.edu.au">debate</uri> upon the
        subject!</p>
    </subsection>
  </section>
  <includeHTML file="WebRing.html"/>
  <TrainTrailer/>
</TrainPage>

