DSSSL Documentation Project


This glossary is provided by the DSSSL Documentation Project. It comprises glossary entries contributed by subscribers to DSSSList. While every precaution has been taken in preparation of this glossary, no-one assumes any responsibility for error or omissions, or for damages resulting from the use of the information contained herein.


Within a transformation specification, associations indicate how a source grove is to be transformed in one or more result groves.

An association consists of a query expression and a transform expression, with optionally a priority expression as a third part.

The query expression is evaluated and returns a (possibly empty) list of nodes in the source grove, to which the transform expression can be applied. If a given node is a candidate for transformation by more than one association, only the one with the highest priority is actually applied.

See Also grove , transformation.

atomic flow object

Atomic flow objects are flow objects which do not have ports, because they do not relate other flow objects together. Atomic flow objects are flow object which are terminal with respect to a given branch in a flow object tree. Contrast this to a flow object which is non-atomic.

See Also flow object , port .


With respect to Jade, one of a number of post-processing avaiable to present user output.

See Also Jade .


*** Definition needed ***

construction rule

*** Definition needed ***

content expression

*** Definition needed ***

core expression language

A subset called the Core Expression Language that must be supported by all DSSSL implementations. DSSSL implementations may optionally support the full expression language.

The core expression language is defined in section 8.6 of the standard. It comprises a set of productions defining the syntax and a list of standard procedures.

See Also expression language , primitive expression , derived expression .


CSS. Cascading Style Sheet.

A Specification for the presentation of html marked documents.

Cascading style sheets work like a template, allowing Web developers to define a style for an HTML element and then apply it to as many Web pages as they'd like. With CSS, when you want to make a change, you simply change the style, and that element is updated automatically wherever it appears within the site. Both Navigator 4.0 and Internet Explorer 4.0 support cascading style sheets.


Catalog. The catalog expected by many SGML applications is a file containing the equivalences between the long formal public identifiers used in document type declarations and the actual filenames of DTDs and entity files on your hard disk, done as lines like this:

SGMLDECL "/my/dtds/sgml.decl"
PUBLIC   "-//Foo, Inc//DTD Report//EN"   "/my/dtds/report.dtd"
PUBLIC   "-//IETF//DTD HTML 2.0//EN"     "/her/dtds/html2.dtd"

All the DTDs and entity files your system is going to reference must be included in the catalog, otherwise nothing will work.

A common format for catalogues was codified by the SGML Open organization.

derived expression

An expression, part of the syntax of DSSSL's Expression Language, that, although defined as part of the Expression Language, can be defined in terms of the primitive expression types of the Expression Language.

See Also expression language , primitive expression .


dsssl-o stands for DSSSL Online, an application profile of DSSSL designed for on-line display. The dsssl-o specification and its later revisions were issued by Jon Bosak. The dsssl-o specification grew out of discussions on the former DSSSL-Lite mailing list during the period from September through November 1995. These discussions culminated in a December 9, 1995 meeting of key SGML and DSSSL implementors in Boston hosted by Jon Bosak, then of Novell, and chaired by the late Yuri Rubinsky of SoftQuad. The application profile resulting from that meeting was published on the Internet on December 12, 1995 as the document 951212.htm and announced at a workshop of the Fourth International World Wide Web Conference the same day. The application profile was subsequently revised and reissued on August 16, 1996 and again on May 22, 1997.

XSL, Extensible Style Language, has superseded dsssl-o.

See Also XSL .

DSSSL Documentation Project

The DSSSL documentation project is a collaborative effort by DSSSL users to write and disseminate documentation on all aspects of DSSSL.


The DSSSL user's mailing list. See http://www.mulberrytech .com/dsssl/dssslist.


Document Type Definition, provides a rigorous description of a class of SGML documents

See Also SGML .


*** Definition needed ***

expression language

Based on R4RS Scheme and/or the IEEE Scheme Programming Language, the expression language is used in SDQL, the transformation language, and the style language for the creation and manipulation of objects.

DSSSL uses only a functional, side-effect free subset of the full Scheme language.

The standard defines a full expression language and a subset called the Core Expression Language. DSSSL implementations must support the Core Expression Language, and may optionally support the full expression language.

See Also core expression language , primitive expression , derived expression .


*** Definition needed ***


False. Any expression language value may be used as a boolean value for the purpose of a conditional test. All values count as true in a test except for #f. This Standard uses the word true to refer to any value that counts as true, and the word false to refer to #f.

flow object

An object which implicitly (via the class name) or explicitly (through attributes) contains formatting requirements as well as the document instance data which are required to achieve the formatting. Non-atomic flow objects use the Principle Port or named ports to attach to a stream of contents, while atomic flow objects are self contained.

See Also atomic flow object .

font posture

*** Definition needed ***

font weight

*** Definition needed ***

formatting object

*** Definition needed ***


*** Definition needed ***


A grove is a standardized representation of the information contained within an SGML document. The acronym is defined in the (corrected) HyTime standard as Graph Representation of Property Values. The objects defined in the SGML Property Set are represented as nodes, grouping their property assignments.

The value of some properties can be a node (or a nodelist) in its own right, thus constituting subnodes for the current nodes or references to a node elsewhere in the grove (irefnodes)

A grove is a set of trees; it could be seen as a tree of nodes, although there are a lot of relationships which are not of a parent-child or sibling nature. A grove contains much more than a tree of logical elements.

See Also grove plan , SGML , SGML Property Set .

grove plan

A grove plan indicates which modules of the SGML Property Set have to be taken into account to build the grove from parsing an SGML document.

In this way, the application can select which information from the SGML document will be taken into account. The following modules are included automatically:

  • intrinsic data types (INTRDT)

  • intrinsic base classes and properties (INTRBASE)

  • base abstract classes and properties(BASEABS)

  • prolog-related abstract classes and properties (first level: RLGABS0)

  • instance-related abstfract classes and properties (INSTABS)

When a transformation specification is present, the PRLGABS1 module is also automatically included.

See Also grove , SGML Property Set .


Hypermedia/Time-based Structuring Language, ISO/IEC 19744. The standard was first published in 1992 and has undergone a major correction, which is now [June 1997] ready for publication. This Technical Corrigendum includes major parts which are shared with DSSSL, such as the Standard Document Query Language and Property Sets.

HyTime provides facilities for representing static and dynamic information that is processed and interchanged by hypertext and multimedia applications. HyTime doesn't intend to provide a standardised way of coding hypermedia presentations. For example, it doesn't prescribe a particular format for coding moving images; instead, it provides a language that can be used to describe how any set of hypermedia objects is interconnected and how users are meant to access them.

The emphasis is on identifying specific types of hypermedia objects (such as links and other events which can be located) and on addressing mechanisms that will identify any segment of documents needing to be accessed or presented, independently of the coding of these documents.

IEEE Standard for the Scheme Programming Language

See IEEE P1178

IEEE P1178

IEEE P1178 is IEEE Standard 1178-1990, "IEEE Standard for the Scheme Programming Language", published by IEEE in 1991. ISBN 1-55937-125-0. It is now also an ANSI standard. It may be ordered from IEEE by calling 1-800-678-IEEE or 908-981-1393 or writing IEEE Service Center, 445 Hoes Lane, P.O. Box 1331, Piscataway, NJ 08855-1331, and using order number SH14209 ($28 for IEEE members, $40 others).


James' DSSSL Engine. Jade is an implementation of the DSSSL style language. See http://www.jclark.com/jade.


Emphasizing mark used in Japanese typography

See Also emphasizing-mark.

kendot scoring

See kendot

lambda [function]

An anonymous function. The significance of the lambda construct is that functions can be nested and passed as arguments to other functions in a sound fashion that avoids variable capture. The keyword lambda comes from the "lambda-calculus", a formal system of effectively computable functions developed by Alonzo Church in the 1930's.

In a lambda expression, e.g.
    (lambda (x y) (+ m x y n)) ,
we say that the x and y are the formal arguments of the function; furthermore, we say that occurrences of x and y in the body are bound, and that occurrences of m and n in the body are free. Note that free variables must be bound in some outer scope.

When a lambda expression is evaluated, it becomes a closure, which can be thought of as consisting in two parts. The first part is a list of all the free variables appearing in the body paired with their respective values. The second part is the body of the function itself.

When the closure is applied to a list of actual arguments (or operands), as in
    (let ((m 1)
          (n 4))
     ((lambda (x y) (+ m x y n)) 2 3))
(here 2 and 3 are the actuals), the actuals are first evaluated in some unspecified order and then bound to the formal arguments in the body of the function. Next, the body of the closure is evaluated in an environment where the free variables are bound to the values specified in the first part of the closure, the result is returned, and the environment is restored to its previous state.

The following code snippet illustrates the utility of lambda expressions.
    (define (curry f x)
      (lambda (y)
	(f x y)))

    (define (inc x)
      (curry + x))

curry is a function that accepts another function of two arguments, f, and a value, x. It returns a closure that saves the value of x and accepts another argument y. When applied, this closure applies f to both x and y. In other words, curry converts a function of two arguments into a function of one argument which returns as result another function. If the result function is applied to a the second actual, we get the original result. Hence we can write:
    ((inc 6) 2) = (+ 6 2) = 8 .


A macro package for TeX created by Leslie Lamport, aimed at providing higher-level abstractions (e.g., hierarchies of sections, typefaces, etc.) for typesetting complex documents. LaTeX is much more of a markup language than TeX is alone, but since nearly all of the low-level facilities of TeX are available (and routinely used) from LaTeX, there is no straightforward way of enforcing structural markup.

See Also TeX .


A quantity of dimension 1. See section of the DSSSL standard.


An object of type length-spec specifies a length as a linear combination of other lengths, and those other lengths are not necessarily known. See section 12.5.2 of the DSSSL standard.

See Also length .

named port

A port on a (non-atomic) flow object, other than the principal port, which points to content and to which a name has been assigned. As with all ports, the content is a stream of flow objects. Named ports supplement the principle port by providing a connection point for alternative, additional, or parallel representations of the content of a given flow object.

See Also atomic flow object , flow object , port , principal port .


The constituent objects in a grove. They are connected through their properties.

See Also grove , SGML Property Set .


See processing instruction


A port is connection to a stream of flow objects. The stream represents a list of contents of the flow object which has the port. The role of the stream thus connected is presumably subservient, subordinate, prepositional, etc., with respect to the flow object which has the port. Flow objects in DSSSL order themselves by reference to one another, in a flow object tree. This collection is abstracted as a list (called a stream), and the flow-object datum that gets you access to this list is called a Port.

Non-atomic flow objects have a Principal Port, and may also have one or more Named Ports.

See Also atomic flow object , flow object , named port, principal port .

primary flow object

The flow object associated with a node that is more closely associated with that node than any other flow object associated with the node. A flow object is associated with a node if the flow object was constructed when that node was the current node and the flow object occurs in the flow object tree. See section 12.4.2 of the DSSSL standard.

primitive expression

An expression, part of the syntax of DSSSL's Expression Language, that cannot be defined in terms of the other primitive expression types of the Expression Language.

See Also expression language , derived expression .

principal port

A port on a (non-atomic) flow object which points to the primary content. As with all ports, the content is a stream of flow objects. Many flow objects will need to have a port, because they relate other formatting objects together in some way. DSSSL provides a default port called the Principal Port, to which contained flow objects will be connected unless otherwise specified. (Contrast these flow objects to atomic flow objects).

See Also atomic flow object , flow object , named port, port .


*** Definition needed ***

processing instruction

*** Definition needed ***

public identifier

*** Definition needed ***


*** Definition needed ***

query language

An abbreviated form of Standard Document Query Language

See Also Standard Document Query Language .


"Revised4 Report on the Algorithmic Language Scheme". This is a defining description of the programming language Scheme. It is the latest in a series of "Revised Reports" published by a group of the major implementors of Scheme. The group's purpose is to develop a better and more widely accepted standard for Scheme.

R4RS Scheme does, however, differ from the "IEEE Standard for the Scheme Programming Language", IEEE std 1178-1990.

See Also IEEE P1178 , Scheme .


Scheme is a statically scoped and properly tail-recursive dialect of the Lisp programming language invented by Guy Lewis Steele Jr. and Gerald Jay Sussman. It was designed to have an exceptionally clear and simple semantics and few different ways to form expressions. A wide variety of programming paradigms, including imperative, functional, and message passing styles, find convenient expression in Scheme.

See Also IEEE P1178 , R4RS .


See Standard Document Query Language


Standard Generalized Markup Language. See Robin Cover's orientation to SGML for more information.

SGML Property Set

The SGML Property Set defines a complete inventory of the information possibly contained within an SGML document, i.e. its content, its structure, its SGML declaration and prolog and its encoding.

The SGML Property Set perceives a document as a set of objects which have certain properties. It defines a number of classes, of which these objects are instantiations, with their properties.

The Property Set is composed of a number of modules, distinguished in function of what they define:

  • 'abstract' classes and properties (such as ELEMENT),

  • SGML document strings, i.e. character strings and other characteristics specific to the parsed document (such as SSEP, white space separator(s), or SGMLDCL, the SGML declaration sequence such as <!SGML "ISO 8879:1986 (ENR)"),

  • base classes and properties,

  • information from the SGML declaration, the prolog or the document instance,

  • information in case support of optional features is included (DATATAG, RANK, SHORTREF, LINK, SUBDOC or FORMAL).

The distinction is visible in the module names, composed of elements such as BASE..., SDCL..., PRLG..., INST..., ...BAS, ...SDS. For some modules, several levels of support are defined. The basic level starts at zero.

See Also grove , grove plan .

simple page sequence

*** Definition needed ***


A specification of a sequence of flow objects. See section 12.4.3 of the DSSSL standard.

Standard Document Query Language

A query language used for identifying portions of an SGML document. See section 10 of the DSSSL standard.

In addition to the full query language, the DSSSL standard defines a subset called the core query language. See section 10.2.4 of the DSSSL standard.

style sheet

*** Definition needed ***


(The 'X' is pronounced as a hard 'H' or 'KH' as in Russian or Greek.) A batch-style typesetting system developed by Donald Knuth for creating beautiful books, especially books containing a lot of mathematics. TeX is a full-blown macro language where, in contrast with SGML, formatting commands are interspersed textual data.

See Also LaTeX .


A transformation takes an SGML document and transforms it into a different SGML document. More than one document can be used as input or produced as output.

A transformation consists of three processes:

  • the grove builder takes an SGML document as input and produces a grove;

  • the transformer takes the constructed grove, applies the associations from the transformation specification and produces one (or more) result groves;

  • the SGML generator verifies each result grove to see if it is valid; if this is the case, it generates an SGML document or subdocument.

See Also association .


One of True or False. Any expression language value may be used as a boolean value for the purpose of a conditional test. All values count as true in a test except for #f. DSSSL uses the word true to refer to any value that counts as true, and the word false to refer to #f.


Unicode is intended to be a Universal character set supporting every written script used on Earth (and some that are not). Unicode attempts to draw a line between a character, a unit of phonetic or semantic meaning, and a rune or glyph, a characters visual representation. Thus a single character that has different appearances has multiple runes. E.g. Arabic characters change appearance dependent on the position in a word.


XSL stands for Extensible Style Language, the style component and third deliverable of the XML (Extensible Markup Language) effort. See http://www.w3.org/TR/NOTE-XSL.html.

See Also dsssl-o .


Working Group 8 short form of ISO/IEC JTC1/SC18/WG8. See http://www.ornl.gov/sgml/ WG8/wg8home.htm.