I gratefully acknowledge TechnoTeacher Inc.
for allowing me to use their materials to prepare this.
Republication of this material is expressly verboten. I will
hunt you down like seals on an ice floe and KERWHOP!!!!
;-)
Few explanations of SGML are included to keep this smaller.
I will post this in "chunks" to keep from taking up too much
space on any given day.
Len Bullard
*************************************************************************
A Simple HyTime Primer
HyTime: Standard Hypermedia/Time-based Structuring Language
Defined in: ISO/IEC IS 10744/1992
HyTime is: "a standard neutral markup language for representing
hypertext, multimeida, hypermedia, and time-based documents
in terms of their logical structure". A hyperdocument is a set of
documents and other information objects that refer to one another
through hyperlinks. HyTime can be viewed as an extension to
SGML semantics that allows unambiguous referencing among
documents. A HyTime document may be parsable as SGML.
HyTime defines the syntax for declaring architectural forms.
These can be seen as declarations of classes for element types
and attribute lists. The expression of the archforms uses SGML syntax.
HyTime provides a set of these for use in hypermedia to define
document addresses, relationships, both between document
parts and time and space. HyTime is modular. You only use
the modules and options you need. You declare these to the
receiving system so it can determine what support is required
for the incoming document. HyTime provides a mechanism
for determining *how many levels of links to follow* to package
a hyperdocument for transmission.
HyTime architectural forms have the same relationship to
SGML DTDs that DTDs have to documents. Architectural
forms can be considered a meta-DTD. Where a DTD declares
the classes of elements in document, an archform
declares the structures and attributes of a class of element types
that can be used in DTDs. The ISO 10744 archforms mainly
define classes for declaring DTD element types that define
elements for hyperlinks and locations. Consider the archform
a model for a model for an object.
One must know SGML to understand HyTime. SGML basic
components have element types and attribute types for the
element types. There are also notations, entities, etc., but
these are not considered for the moment. Information can
be modeled an element type:
<!ELEMENT myThang - - (somethang, anotherthang) >
and in attribute types for element types:
<!ATTLIST myThang
id ID #REQUIRED
color (blue | notblue) "notblue"
colorref IDREF #IMPLIED >
To wit: an instance of myThang contains exactly one
someThang followed by exactly one anotherThang.
Any instance of myThang is identified uniquely by an id
value of type ID which is required for all instances,
will be blue if notblue, and might have a reference by
ID value to another element whose contents could
be a table of color values in some notation that myThang
only can find out about by following the reference.
IDREFS must point to IDs contained in the same
document. (Rule of SGML that prompted development
of HyTime). Yes, a parser checks this stuff. In fact,
what the ISO 8879 SGML standard does mostly is
provide the information necessary to write a conforming
parser. This points out an important difference between
SGML and VRML or HTML. The SGML standard provides
the rules for creating applications of which HTML 2.0 is one
and VRML could be should one choose to transcribe it.
The actual storage of SGML is defined by its entity
structure which we won't go into here. Suffice to say,
the entity structure of a document is completely
independent of its logical structure as expressed
by element types. The allows for interchange among
dissimilar computer systems with incompatible
storage constraints.
SGML reference links (term used loosely here) are defined by
the IDREF -> ID combination. The major improvement
of HyTime over SGML is this:
An SGML link only points within the document and is
usually uni-directional among elements. HyTime links
can point outside the document and can be bi-directional
or even n-dimensional. However, this is done by convention
without many extensions to SGML's basic addressing rules.
HyTime can represent a "compound document",
that is, a document made up of many documents declared
as SGML entities and called a "bounded object set". Since
documents point to documents that point to documents
world without end amen, a boslevel attribute allows one to
declare how many levels of pointing to follow when
packing a HyTime hyperdocument. ISO/IEC 9069 (SDIF) specifies
how to pack SGML documents into a single stream for
transmission and reconstitution. The receiving system
can unpack the SDIF stream and store it as it needs to.
The logical structure of the document is unchanged.
The SGML element types constitute a hierarchical
structure (element types can recurse as well, but the
structure is still a branching hierarchy). HyTime adds
the capability to declare multiple hierarchies and
relationships among them. HyTime gives SGML
the ability to define many kinds of structures for
hypermedia. Semantic networks (for example,
the CaPH language) are a favorite for many.
Information can be a directed graph or a "web".
In a web, the hyperlinks are allows the information
structure to be independent of its place in the
containing hierarchy, or in other words, the hyperlink
can impose alternative representations on the
same material (sometimes called a "view").
HyTime provides the means to both hyperlink and to
schedule information (HyTime originated in a
music language committee.. SMDL).
HyTime includes an archform type called a Finite Coordinate
Space or FCS. The is used to schedule information
in time or space or even other semantic coordinate
systems (i.e., n-dimensions of user define coordinate
quanta). There are other archforms for location and
addressing model and a complete document query
language which is an extension of the location models.
HyTime features are separated into modules. Each module
has optional features. The modules are interdependent.
HyTime provides a mechanism called a support declaration
for indicating to a system what features of HyTime are
used by a particular document prior to the system attempting
to process it. This allows the system to reject the document
or provide defaults for any features which it does not fully
support.
To repeat: HyTime provides both a facility to define architectural
forms and a standard set of architectural forms. Archforms
are similar to class definitions in object-oriented programming.
These arch forms are used to define classes of element types
and attribute lists for domain-specific Document Type
Definitions. A Document Type Defintion or DTD is a
hierarchy of element types and attribute types. Therefore,
the archform can be considerd a DTD for writing DTDs. HyTime
standard archforms provides classes of location and addressing
models and a document query language as well as a set
of declarations for determining in advance how much of
HyTime's optional facilities a system must support to
process a given instance.
More later....