LAML |
In this chapter we describe some more practical aspects of using LAML. We also touch on the XML-in-LAML approach.
28.1 LAML document processing | 28.4 XML in LAML |
28.2 LAML document styles and tools | 28.5 More information |
28.3 LAML server-side programming - CGI |
28.1. LAML document processing
Contents Up Previous Next Slide Subject index Program index Exercise index
As one of the underlying ideas of LAML, we organize the programmatic source of a web document as a Scheme program. When the Scheme program is executed, the underlying HTML files are generated.
It is of practical importance to make it easy and flexible to execute the Scheme program. Below we summarize the possibilities supported in the LAML system.
The LAML system supports a number of different ways to process a document |
|
Let us be more concrete. Scheme source files with LAML documents are supposed to have the file extension 'laml'. We will assume that we have written source document in a file called 'd.laml'.
From a command prompt or a Unix shell, you can execute it and hereby generate the underlying HTML file by the command laml d.
From a Scheme interpreter (a Scheme prompt) in which the basic LAML software has been loaded, you can type (laml "d") followed by "enter". This is a call of the laml procedure on "d".
From within Emacs (in which the LAML mode has been loaded) you can process a the document directly, by issuing the command M-x laml-process-current-buffer. (It is assumed, however, that the buffer is associated with a file at some location in the file system). The emacs command laml-process-current-buffer is bound to some convenient shortcut, C-o, which makes it very easy to do the processing.
In Emacs, it is possible to start an interactive Scheme/LAML session. This is done with M-x run-laml-interactively. Using this possibility, the Scheme system is started, and selected LAML libraries are loaded. The Emacs Lisp variables interactive-laml-mirror-library and interactive-laml-load-convenience-library control which HTML mirror library and which additional support libraries to load in the interactive LAML session.
The Emacs support of LAML can be seen as powerful environment for programmatic authoring |
As a practical remark, we will strongly recommend that LAML is used via Emacs. Authors of LAML-based materials should make use the features of the Emacs laml mode. Similarly, users who interact with the Scheme system can make good use of the additional support in Emacs, such as the run-laml-interactively command mentioned above, and the variables that control the behavior of this command.
28.2. LAML document styles and tools
Contents Up Previous Next Slide Subject index Program index Exercise index
The purpose of this section is to give a short overview of some of the major document styles and tools in LAML. A document style is a LAML based language. All such new languages are derived from an XML document type definition.
The overview below is by no means comprehensive. You are referred to the LAML Software home page [normark02e] for details.
A number of document styles and tools have been built on top of the basic LAML libraries and the mirrors |
|
28.3. LAML server-side programming - CGI
Contents Up Previous Next Slide Subject index Program index Exercise index
LAML can be used for authoring of static web material using a Scheme mirror of an XML language. LAML has also been used for server side programming using the Common Gateway Interface - CGI.
In this material we will not cover CGI programming in Scheme, but we will refer to an elucidative tutorial on the topic.
An example of CGI Programming in Scheme with LAML |
A number of non-trivial server side web systems have been made in LAML via use of CGI |
|
IDAFUS - Insitut for DAtalogis FjernUndervisnings System - is a major example of a LAML server application used for non-trivial purposes during a number of years in open university educations. The exercise manager is a minor system for synchronous management of exercise sessions. It requires user name and password to try out these systems.
The LAML calendar manager is widely used at Aalborg University for course and semester calendar management. The author's (simple) calendar can be accessed as an example [kn-calendar]. From a given calendar you can create your own, if you want.
28.4. XML in LAML
Contents Up Previous Next Slide Subject index Program index Exercise index
XML-in-LAML is the LAML framework for mirroring of XML languages in Scheme.
In LAML there is a DTD parser, which produces a Lisp representation of a DTD. Based on this representation it is possible to synthesize an exact Scheme mirror of the XML language. The properties of this mirror is described below.
XML-in-LAML is a mirroring technique that makes XML languages available in Scheme |
|
Currently we convert several existing LAML document styles to the XML-in-LAML framework. As an important language for this material - LENO has already been transformed.
28.5. More information
Contents Up Previous Next Slide Subject index Program index Exercise index
There are a number of sources to more information about LAML |
|
The LAML home page [laml-home] contains all the papers that have been written above LAML and LENO.
The aim of the LAML tutorial [laml-tutorial] is to introduce various aspects of LAML in a gentle way.
The LAML software home page [laml-software] contains an overview of all the software, and it gives access to a download page where the latest distribution is made available as free software.
LAML can be downloaded as free software from the LAML home page |
The exercise below is seen as a typical, practically oriented example where LAML can be used for management of everyday information.
Exercise motivation: It is not practical to bind web bookmarks to a single machine nor to a single browser. Therefore we will maintain a list of bookmark entries in a file, and generate web bookmark pages from this description.
We will assume that we maintain a list of bookmark entries, each of the form
The first constituent is a symbol (a tag that distinguishes bookmark entries from other structured data) and the other fields are text strings.
You can find an example of a bookmark list here. See the link in the web version.
The exercise is to complete a frame-based bookmark browser, given a list of bookmarks.You can find an example of a frame-based bookmark browser here. See again the link in the web version. To make it realistic for you to solve this exercises, you are only asked to make the left frame: the category overview frame. The frameset page and the right frame page are already programmed.
You are, however, supposed to understand the pre-programmed frame of the exercise. So start to read through the existing pieces of the program.
You can find the pre-programmed part of the bookmark browser in the zip file bookmarks-zip.zip. Please consult the web version of the material to get access to it. Unzip it, and LAML process the file bookmark.laml. Bring up the file bookmark-frameset.html in a browser to get started.
You are welcome to extend the solution, for example with a good use of the comment field from the bookmark entry.
There is no solution to this exercise28.6. References
[Normark02e] | Kurt Nørmark, "The LAML Software Home Page", 2002-2003. |
[Kn-calendar] | The authors personal LAML calendar http://www.cs.auc.dk/~normark/cgi-bin/calendar/data/normark.html |
[Laml-cgi-tutorial] | Guess a Number - A simple CGI program in Scheme with LAML http://www.cs.auc.dk/~normark/scheme/tutorial/cgi-programming/cgi-programming.html |
[Laml-home] | The LAML home page http://www.cs.auc.dk/~normark/laml/ |
[Laml-tutorial] | The LAML tutorial http://www.cs.auc.dk/~normark/scheme/tutorial/index.html |
[Laml-software] | The LAML software home page - development version http://www.cs.auc.dk/~normark/scheme/index.html |