Copyright © 1992, 1997 International Organization for Standardization. All rights reserved.

This electronic document is for use during development and review of International Standards. Official printed copies of International Standards can be purchased from the ISO and the national standards organization of your country.

Next ClausePrevious Clause  

homeParent clauseNext major clausePrevious major clauseNext clause at this levelPrevious clause at this level


9 Scheduling module

9.4 Scheduling and extents

Subclauses:


A dimension specification represents a coordinate location on a single axis (see 6.8 Coordinate Specifications). When the scheduling module of HyTime is used, finite coordinate spaces with multiple axes can be defined.

An "extent specification" represents a coordinate location or "bounding box" on all of the axes of a finite coordinate space and consists of one dimension specification per axis.

The set of first quanta of each dimension specification of an extent defines the position of the bounding box. The set of quantum counts for all the dimension specifications defines its size.

NOTE 273 The bounding box need not be rectangular, as HyTime makes no assumptions as to the relationship, if any, between the coordinate axes. However, as HyTime's principal field of application deals with coordinate spaces that can be rendered perceivable by humans, use of terminology that implies orthogonal axes seems justified.

HyTime offers an application a construct for collecting and aligning extents called a "schedule". A schedule allows the application to define the order in which dimensions will be specified (that is, the order of the axes).

9.4.1 Schedules

A schedule is a list of elements, each having a dimension on all axes of the coordinate space in which the schedule occurs or to which it refers. HyTime defines three kinds of schedules: event schedules, wands, and batons; these elements use the schedule (sched) attribute form.

The attribute governing fcs element (fcs) refers to the fcs element that defines the logical FCS within which the scheduled elements occur. If the fcs attribute is not specified, the schedule must be a subelement of an fcs element and is a schedule of the logical FCS corresponding to that fcs element.

The attribute axis order (axisord) specifies the order of axes for extent specification within the schedule if they are different from the order the axes are specified by the axes attribute of the governing fcs element. If at least one axis name is specified, omitted axis names mean all elements in the schedule fully occupy the omitted axes. For each axis name specified, an attribute of the same name may be used to specify the HMU for the axis. The lexical type of such attributes is (ratio, granule?), where the ratio is the number of HMUs per base granule, and the granule, if specified, is the base granule. If a granule is not specified, the default base granule defined by the governing fcs element is used. A specified granule must be defined in terms of the axis SMU. If a value is not supplied for an axis HMU specification attribute, the HMU for that axis is the default HMU defined by the governing fcs element.

The attribute sorted (sorted) specifies whether the order of the SGML representation of the elements in the schedule is sorted. If so, elements with multiple scheduled extents must have their extents sorted, and the elements are sorted by their first extents. The sort order is by position on the axes, in the order specified by the axis order attribute, with the first specified axis being the primary sort key, the second axis the secondary key, and so on.

The attribute extent coverage (coverage) specifies whether or not gaps may occur between the scheduled extents of elements in the schedule.

The attribute extent overlap (overlap) specifies whether or not scheduled extents of elements in the schedule may overlap. If the schedule is a wand, the value of the overlap attribute is ignored and treated as if it were "noverlap".

NOTE 274 The extents of the modscopes on a given wand are never permitted to overlap.

                          <!-- Schedule -->
<![ %sched; [
<!attlist
-- sched --       -- Schedule --
                  -- Clause: 9.4.1 --
   (baton,evsched,wand)

   fcs            -- Governing finite coordinate space element --
      CDATA       -- Reference --
                  -- Reftype: fcs --
      #IMPLIED    -- Default: containing fcs element --
                  -- Constraint: required if schedule is not contained
                     by fcs element. --

   axisord        -- Axis order --
                  -- The order of axes for extent specification within
                     schedule.  For each axis name specified, an
                     attribute of the same name may be used to specify
                     the HMU for the axis.  The lexical type of such
                     attributes is (ratio, granule?), where the ratio
                     is the number of HMUs per base granule, and the
                     granule, if specified, is the base granule.  If a
                     granule is not specified, the default base
                     granule defined by the governing fcs element is
                     used.  A specified granule must be defined in
                     terms of the axis SMU.  If a value is not
                     supplied for an axis HMU specification attribute,
                     the HMU for that axis is the default HMU defined
                     by the governing fcs element. --
      CDATA       -- Lextype: (AXISNM)+ --
                  -- Constraint: axis names must be defined by
                     governing fcs element --
      #IMPLIED    -- Constant --
                  -- Default: Axis order is unchanged from that
                     specified by governing fcs element, and each axis
                     may have an HMU specification attribute. --

   sorted         -- Extent ordering --
                  -- Ordering of elements with respect to the ordering
                     of their scheduled extents. --
      (sorted|unsorted)
      unsorted

   coverage       -- Extent coverage --
                  -- Whether or not gaps may occur between the
                     scheduled extents of elements in the schedule. --
      (solid|sparse)
      sparse

   overlap        -- Extent overlap --
                  -- Whether or not scheduled extents of elements in
                     the schedule may overlap. --
                  -- Constraint: If the schedule is a wand, the value
                     is ignored and is always treated as noverlap. --
      (overlap|noverlap)
      #IMPLIED    -- Default: If the schedule is not a wand, the
                     default value is overlap. --
>
]]><!-- sched -->

9.4.2 Extent specification

The attribute form exspec consists of the single attribute nominal extent specification (exspec), which associates a scheduled extent (or extents) with an element. Multiple scheduled extents can be specified if it is desired to represent the cloning or repetition of the element in more than one position and/or in different sizes.

NOTE 275 The semantic of having multiple extents for a single event is not defined. This means that an application can be defined in such a way that the object scheduled by an event is somehow divided among the extents, or that the object is duplicated, with one whole copy for each extent, or some combination of the two. There are many other possibilities, as well, with many possible refinements.

                    <!-- Extent Specification -->
<![ %sched; [
<!attlist
-- exspec --      -- Nominal extent specification --
                  -- Clause: 9.4.2 --
   (event,modscope,proscope)

   exspec         -- Extent specification --
      CDATA       -- Reference --
                  -- Reftype: (extent|extlist)+ --
      #REQUIRED
>
]]><!-- sched -->

9.4.3 Group extent specification

Events, modscopes, and proscopes can appear within the syntactic container elements evgrp, modgrp, and progrp, respectively. These container elements can appear within evscheds, wands, and batons, respectively, along with events, modscopes, and proscopes that are not contained in evgrps, modgrps, and progrps. Moreover, evgrps, modgrps, and progrps are recursive. The semantic significance of containment within groups is primarily defined by the application. However, the grpdex, repscope, and axis-named attributes of the group derived extent specification (grpdex) and group repetition specification (grprepet) attribute forms, which are used only in the evgrp, modgrp, and progrp element forms, carry HyTime-defined semantics which can be used to make the effective extents of the elements contained by them proportional to, and/or translations of, their nominal extents (grpdex), to specify an area in which the group is repeated (repscope), and to specify other criteria governing repetition and the calculation of the "first" component of a dimension of the syntactically succeeding event, modscope, and proscope, if any, that is expressed using the implicit dimref feature.

The attribute group derived extent specification (grpdex), if specified, specifies one or more derived extents of the group. A subelement with more than one nominal scheduled extent will be given a derived extent for each scheduled extent.

Multiple derived extents can be used to represent repetitions with varying proportions and translations: the group's subelements are positioned in the FCS in each of the derived extents. The application defines the semantics applied when events have multiple distinct extents, e.g., whether the object of the event is duplicated among all the extents, or whether it is somehow distributed among them. However, each distinct extent of a modscope or proscope is treated as if it were a distinct modscope or proscope, with the entire modifier or projector brought to bear by each one.

If a value is specified for the grpdex attribute, for each axis, a matrix calculation is performed for each nominal dimension of each nominal extent against each dimension of each extent specified by the grpdex attribute, in which a set of derived effective dimensions is calculated for each nominal dimension of each extent of each contained element by calculating a derived first quantum and quantum count according to the following formulas:

DerivedFirstQuantum = GrpdexFirstQuantum +
                      (((NominalFirstQuantum - GroupScopeFirstQuantum)
                        * GrpdexQcnt) / GroupScopeQcnt)
DerivedQcnt = (NominalQcnt * GrpdexQcnt) / GroupScopeQcnt
where DerivedFirstQuantum and DerivedQcnt are the "first" and "qcnt" components, respectively, of each derived dimension; NominalFirstQuantum and NominalQcnt are the "first" and "qcnt" components, respectively, of each nominal dimension of each extent of each contained element; GroupScopeFirstQuantum and GroupScopeQcnt are the "first" and "qcnt" components, respectively, of the dimension of the "group scope" (the sum of the extents of the subelements of the group, less any overlap and including any gaps, or, in other words, on each axis, the dimension bounded by the first quantum of the child element with the lowest first quantum, at one end, and the last quantum of the child element with the highest last quantum, on the other end); and GrpdexFirstQuantum and GrpdexQcnt are the "first" and "qcnt" components, respectively, of each dimension of each extent specified by the grpdex attribute. (The asterisks and slashes are multiplication and division operators, respectively.) The resulting dimensions are rounded to the nearest whole MDU.

If no value is specified for the grpdex attribute, the nominal extents of the contained elements are the effective scheduled extents.

NOTE 276 If a value is specified for the grpdex attribute, and it is desired to retain the nominal scheduled extent of each member in addition to the derived extents, an extent equal to the "group scope" extent must be specified as one of the grpdex extents. (The "group scope" extent is the sum of the extents of the subelements of the group, less any overlap and including any gaps, or, in other words, on each axis, the dimension bounded by the first quantum of the child element with the lowest first quantum, at one end, and the last quantum of the child element with the highest last quantum, on the other end.)

If a value is specified for the repetition scope (repscope) attribute, it is the area within which the contained events, modscopes or proscopes are repeated, subject to additional criteria in the value of each axis-named attribute, if any. For each axis, repetition starts at the first quantum of the repetition scope and continues until the repetition scope is exhausted on each axis.

NOTE 277 Repscope can be used to translate the dimensions of the contained elements.

NOTE 278 The effect of repetition is like repeating patterns on wallpaper or the squares of a chessboard. The repetition of patterns along each axis is not necessarily a single row of repetitions; it may be a row of columns of repetitions.

If no value is specified for the repscope attribute, the first or only occurrence of the group is wherever the effective extent of the group places it, and the number of repetitions is limited only by the repeat count limit parameters of the axis-named attributes.

The grprepet attribute form also has optional attributes, one for each axis and having the same name as the axis for which it specifies repetition parameters. Each such attribute is CDATA #IMPLIED, and conforms to the lexical model:

(uint, (("PART"|"NOPART"), unzi)?, unzi?))
where the unsigned integer (uint) is the "repeat count limit" parameter, the specification of "part" or "nopart" ("PART"|"NOPART") is the "allow partial dimensions" parameter, the following unsigned nonzero integer (unzi) is the "start point within pattern" parameter, and the final unsigned nonzero integer (unzi) is the "offset to next occurrence" parameter.

If the value of the repeat count limit parameter is 0, there is no repeat count limit. The group is repeated on this axis from the beginning to the end of the dimension specified by the repscope attribute. If no value is specified for the repscope attribute, the 0 value is treated as if it were 1. If the value of the "repeat count limit" parameter is greater than 0, the number of repetitions is limited to the number specified. If no value is specified for the repscope attribute, the number of repetitions is limited only by the number of repetitions specified and the remaining length of the axis. If no value is specified for an axis-named attribute, the "repeat count limit" parameter is treated as if it were 1.

If the value of the allow partial dimensions parameter is PART, partial repetitions at the beginning and/or end of the series on this axis will be used to completely fill the repetition scope. If the value is NOPART, partial repetitions do not occur. As a result, there may be unoccupied space at the beginning and/or end of the series on this axis within the repetition scope. If no value is specified for this parameter, the group is treated as if the value were "NOPART" for this axis.

The value of the start point within pattern parameter is the number of the HMU within the effective group dimension (where the "first" component of the group's dimension on this axis is considered to be 1) at which the first occurrence in the series begins. If the value is not 1, the remaining partial portion of the group will constitute the first repetition in each series on this axis. This first partial repetition will occur as skipped space if the "allow partial dimensions" parameter's value is "NOPART".

The value of the offset to next occurrence parameter is the number of HMUs that will be treated as the effective qcnt of the group only for purposes of determining the location of the next contiguous repetition, or, in the case of the last or only occurrence of the group, the next dimension with an implicit dimref used as its "first" component. The default value is the effective qcnt of the group.

             <!-- Group Derived Extent Specification -->
<![ %grpdex; [
<!attlist
-- grpdex --      -- Group derived extent specification --
                  -- Clause: 9.4.3 --
   (evgrp,modgrp,progrp)

   grpdex         -- Group derived extent specification --
                  -- Use for resizing, rearrangement, repetition.
                     Group members are given the derived extents.  If
                     nominal extent is also wanted, it must be
                     specified as one of the derived extents. --
      CDATA       -- Reference --
                  -- Reftype: (extent|extlist)* --
      #IMPLIED    -- Default: grpdex is same as overall "group scope",
                     that is, the nominal extents are effective --
>
<!entity % sched "INCLUDE">
]]><!-- grpdex -->
               <!-- Group Repetition Specification -->
<![ %grprepet; [
<!attlist
-- grprepet --    -- Group repetition specification --
                  -- Clause: 9.4.3 --
   (evgrp,modgrp,progrp)

   repscope       -- Repetition scope --
                  -- Scope within which the contained events,
                     modscopes or proscopes are repeated, subject to
                     additional criteria in the value of each
                     axis-named attribute, if any.  For each axis,
                     repetition starts at the first quantum of the
                     repetition scope and continues until the
                     repetition scope is exhausted on each axis. --
       CDATA      -- Reference --
                  -- Reftype: extent --
       #IMPLIED   -- Default: The first or only occurrence of the
                     group is wherever the effective extent of the
                     group places it, and the number of repetitions is
                     limited only by the repeat count limit parameters
                     of the axis-named attributes. --

-- Additional attributes may be defined for client elements, one for
   each axis of the FCS.  The names of the attributes are the axis
   names, and the values of the attributes are specifications
   regarding repetitions of the group and the implicit dimref of the
   succeeding extent along an axis.  Each of the attributes has the
   lexical model (uint,(("NOPART"|"PART"),unzi)?,unzi?), which is
   interpreted as follows:

      "repeat count limit" parameter (uint):
         If the value is 0, there is no repeat count limit.  The group
         is repeated on this axis from the beginning to the end of the
         dimension specified by the repscope attribute.  If no value
         is specified for the repscope attribute, the 0 value is
         treated as if it were 1.  If the value of the "repeat count
         limit" parameter is greater than 0, the number of repetitions
         is limited to the number specified.  If no value is specified
         for the repscope attribute, the number of repetitions is
         limited only by the number of repetitions specified and the
         remaining length of the axis.  If no value is specified for
         an axis-named attribute, the "repeat count limit" parameter
         is treated as if it were 1.

      "allow partial dimensions" parameter ("PART"|"NOPART"):
         If the value is "PART", partial repetitions at the beginning
         and/or end of the series on this axis will be used to
         completely fill the repetition scope.  If the value is
         "NOPART", partial repetitions do not occur.  (There may be
         unoccupied space at the beginning and/or end of the series on
         this axis.)  The default value is "NOPART".

      "start point within pattern" parameter (penultimate unzi):
         The value is the number of the HMU (where the "first"
         component of the group's dimension on this axis is 1) at
         which the first occurrence in the series begins.  If the
         value is not 1, the remaining partial portion of the group
         will constitute the first repetition in each series.  This
         first partial repetition will occur as skipped space if the
         "allow partial dimensions" parameter's value is "NOPART".
         The default value is 1.

      "offset to next occurrence" parameter (final unzi):
         The value is the number of HMUs that will be treated as the
         qcnt of the group for purposes of determining the location of
         the next contiguous repetition (or the next dimension with an
         implicit dimref used as its "first" component).  The default
         value is the effective qcnt of the group. --
>
<!entity % sched "INCLUDE">
]]><!-- grprepet -->

9.4.4 Scheduled extent

The element form scheduled extent (extent) defines the position and size of elements in schedules. By default, the HyTime extent specification notation is used.

NOTE 279 HyTime treats an extent as a resource, which means that it can occur freely in a document and can be referenced by an ID in the contexts in which it is needed. An application could therefore define "named extent" element types that represent, for example, historical periods, and build a resource pool of "period" elements. An attribute of the period elements would be the name of the period, which an application could use for display or other purposes. Events could be positioned with respect to the periods by means of dimension references (see 9.8 Dimension referencing). Such a pool of period elements would comprise what measurement theory calls an "ordinal scale". Named extents can also be used to construct ordinal scales in domains other than time; for example, shades of color on an axis that represents a portion of the visible spectrum.

NOTE 280 Designers can also require that extent specifications occur in the content of events by using the refloc facility to address the extent specification of an event by a tree address relative to the event element itself. For example, if the client document type sets the content model of event-form elements to "(extent, (%event-content;)*)", the tree position "1 1" specified for the exspec attribute of the event element addresses the extent element that is its first subelement:

<!ELEMENT event
   - - (extent,(%event-content;)*)
>
<!ATTLIST event
   HyTime   NAME     #FIXED event
   loctype  CDATA    #FIXED "exspec treeloc"

   -- Tree position of extent subelement --
   exspec   NUMBERS  #FIXED "1 1"
>

            <!-- HyTime Extent Specification Notation -->
<![ %HyExSpec; [
<!notation
   HyExSpec       -- HyTime Extent Specification Notation --
                  -- Clause: 9.4.4 --
                  -- A list of dimensions (in the HyTime Dimension
                     List Notation, after resolution of marker
                     functions) that together specify a single extent
                     on one or more axes. --

   PUBLIC "ISO/IEC 10744:1997//NOTATION
           HyTime Dimension Specification Notation//EN"

-- Attributes [sched]: HyExSpec --
-- CommonAttributes [GenArc]: altreps, included, superdcn --
-- CommonAttributes [base]: bosdatt --
-- CommonAttributes [locs]: egrvplan --
>
<!attlist #NOTATION
   HyExSpec       -- HyTime Extent Specification Notation --
                  -- Clause: 9.4.4 --

   GenArc   NAME     #FIXED GABridN
   superdcn NAME     #FIXED HyDimLst
>
<!entity % HyDimLst "INCLUDE" >
<!entity % sched "INCLUDE">
]]><!-- HyExSpec -->
                           <!-- Extent -->
<![ %sched; [
<![ %HyExSpec; [
   <!entity % dexspec "HyExSpec">
]]>
<!entity %
   dexspec        -- Default extent specification notation --
                  -- Clause: 9.4.5 --
   "#IMPLIED"
>
<!element
   extent         -- Extent --
                  -- Clause: 9.4.4 --
                  -- A position and quantum count along one or more
                     axes. --
   O O
   (%HyCFC;|%dimlist;)*
                  -- Constraint: if no extent specification notation
                     specified, then content is restricted to
                     (dimspec)* --

-- Attributes [sched]: extent --
-- CommonAttributes [GenArc]: dafe, dvlatt, etfullnm, id,
   ireftype, lextype, opacity --
-- CommonAttributes [base]: activity, conloc, dtxtatt, valueref --
-- CommonAttributes [locs]: refctl, refloc, reftype, rflocspn --
-- Referrers [sched]: dimref:elemspec, exspec:exspec, grpdex:grpdex,
   grprepet:repscope --
>
<!attlist
   extent         -- Extent --
                  -- Clause: 9.4.4 --

   notation       -- Extent specification notation --
      NAME        -- Lextype: NOTATION --
      %dexspec;   -- Default: content is restricted to (dimspec)* --
>
]]><!-- sched -->

9.4.5 Scheduled extent list

The element form scheduled extent list (extlist) specifies a list of extents within a finite coordinate space.

                         <!-- Extent List -->
<![ %sched; [
<![ %HyExtLst; [
   <!entity % dextlist "HyExtLst">
]]>
<!entity %
   dextlist       -- Default extent list notation --
                  -- Clause: 9.4.5 --

   "#IMPLIED"
>
<!element
   extlist        -- Extent List --
                  -- Clause: 9.4.5 --
                  -- A list of extents on one or more axes. --
   O O
   (%HyCFC;|%dimlist;|extent|extlist)*
                  -- Constraint: if no extent list notation
                     specified, then content is restricted to
                     (extent|extlist)* --

-- Attributes [sched]: extlist
-- CommonAttributes [GenArc]: dafe, dvlatt, etfullnm, id,
   ireftype, lextype, opacity --
-- CommonAttributes [base]: activity, conloc, dtxtatt, valueref --
-- CommonAttributes [locs]: refctl, refloc, reftype, rflocspn --
-- Referrers [sched]: dimref:elemspec, exspec:exspec, grpdex:grpdex --
>
<!attlist
   extlist        -- Extent List --
                  -- Clause: 9.4.5 --

   notation       -- Extent list notation --
      NAME        -- Lextype: NOTATION --
      %dextlist;  -- Default: content is restricted to
                     (extent|extlist)* --
>
]]><!-- sched -->

9.4.6 HyTime extent list notation

The HyTime extent list notation is an extended form of axis marker list in which dimspecs are derived from the axis markers and extents are then derived from the dimspecs. The list can also contain nested extlists and extents, to any level of nesting, but these will merge to create the effect of a single-level list.

The extent list notation processor must be aware of the number of axes included in the governing axis order of the schedules to which an extent specification applies.

Nested extents and extent lists may be included only at extent specification boundaries within the axis marker list.

NOTE 281 In other words, an extent specification cannot appear within what is effectively another extent specification. A nested element can only appear before or after the dimension specifications for a complete cycle of axes.

                 <!-- HyTime Extent List Notation -->
<![ %HyExtLst; [
<!notation
   HyExtLst       -- HyTime Extent List Notation --
                  -- A list of extents each of which may be specified
                     as an extent, part of another extent list, or or
                     as all or part of a list of axis markers
                     explicitly entered or returned by a marker
                     function. --

   PUBLIC "ISO/IEC 10744:1997//NOTATION
           HyTime Extent List Notation//EN"

-- Attributes [sched]: HyExtLst --
-- CommonAttributes [GenArc]: altreps, included, superdcn --
-- CommonAttributes [base]: bosdatt --
-- CommonAttributes [locs]: egrvplan --
>
<!attlist #NOTATION
   HyExtLst       -- HyTime Extent List Notation --
                  -- Clause: 9.4.6 --

   GenArc   NAME     #FIXED GABridN
   superdcn NAME     #FIXED HyDimLst
>
<!entity % HyDimLst "INCLUDE" >
<!entity % sched "INCLUDE">
]]><!-- HyExtLst -->

Next ClausePrevious Clause  

Copyright © 1992, 1997 International Organization for Standardization. All rights reserved.

This electronic document is for use during development and review of International Standards. Official printed copies of International Standards can be purchased from the ISO and the national standards organization of your country.


HTML generated from the original SGML source using a DSSSL style specification and the SGML output back-end of the JADE DSSSL engine.