ZedDist Profiles Component Pool Principle
From zedwiki
Contents |
Overview
The Component Pool is a principle for Profile composition. It serves as an abstraction layer underlying the concrete profiles. The characteristics of the pool define the maximum amount of variability between profiles. The spec defines which components are available in the pool; these components and the rules/behaviors defined around and within them cannot be changed without a spec revision. Thus, this abstraction is static.
Each Component in the pool has a set of characteristics and features:
- It serves one well-scoped purpose in the context of the DTB logic
- It defines whether its inclusion is optional or required when creating a DTB Profile (Note; a profile adopting an optional component may in its turn make the component required within the scope of the profile)
- It may define one static concrete form, or it may define patterns with which a Profile creator can modify its concrete form at Profile creation time (the latter makes it a polymorph component)
- It defines dependencies: the inclusion of Component X in a Profile may be dependent on (a specific aspect of) Component Y to also being included. Component X is responsible to declare these dependencies.
- It may define "extension points": slots which the Profile creator may activate to allow injection of "foreign" constructs dynamically in instances @@@ bridge to Profile's optional features
Component Pool Strawman 1
In the ZedDist context, a component pool may have the following components, with the following properties:
The Container Component
- Purpose
- provides the physical container for a distribution unit, and a way to express metadata about the distribution unit
- Inclusion
- Required.
- Polymorph
- No.
- Dependencies
- None.
- Extension Points
- None.
- Note
- this component's metadata is not bibliographic but describes information on:
- multi-manifestation publications (see fallbacks/views, note: epub manifest already provides for this in a way)
- multi-publication units
- multi-unit publications
The Package Component
- Purpose
- provides the Package document type, which contains publication metadata
- Inclusion
- Required.
- Polymorph
- Yes. The concrete document type is composed at Profile creation time. The package grammar is based on modules, a majority of which are required in the document type, others optional.
- Dependencies
- None.
- Extension Points
- None. @@@ may need for metadata, may need for spine content types (SMIL, Text, Audio)
Note: package metadata is bibliographic and concerns only one manifestation of a publication
Note: this is based on OPF2.0, but we extend and override as needed this time around.
The Director Component
- Purpose
- provides the presentation spine, timing and multimedia synchronization
- Inclusion
- TBD
- Polymorph
- Yes. The concrete document type is composed at Profile creation time. The SMIL grammar is based on modules, some of which are required in the document type, others optional.
- Dependencies
- None.
- Extension Points
- TBD, depends on design of Profile "optional features"
Note: yet undecided whether to lock on to SMIL here, or be more open at this abstract level. Depends also on scope definition and reqs re video captioning, etc
The Navigation Component
- Purpose
- provides global navigation support through the NCX.
- Inclusion
- Required.
- Polymorph
- Yes. The concrete document type is composed at Profile creation time. The NCX grammar is based on modules, some of which are required in the document type, others optional.
- Dependencies
- None.
- Extension Points
- None. The spec ships with a finite set of NCX modules. @@@ consider allowing contributions to markup in labels
Note: the NCX label media types are included independently of the Media Channel components (for example, the NCX allowing text labels without the Text channel being activated)
The Text Channel Component
- Purpose
- including this component makes the Text media type available in the DTB presentation
- Inclusion
- Optional.
- Polymorph
- Yes. The concrete document type is composed at Profile creation time. Alternatively: this component defines 1-n grammars that the Profile creator can choose 1-n from. (in other words; a profile could allow one or several text grammars (for example: loose or strict))
- Dependencies
- director component: the text element
- package component: contributes to media types enum
- Extension Points
- Yes:
- A CDR extension point, that the Profile creator elects whether to activate
- A CDI extension point, that the Profile creator elects whether to activate
Note: yet undecided whether this channel should mandate a host/core grammar that must always be used, or be more open at this abstract level.
The Audio Channel Component
- Purpose
- including this component makes the Audio media type available in the DTB presentation
- Inclusion
- Optional.
- Polymorph
- Format outer bounds - subsetting allowed. This component defines a set of audio formats out of which the Profile creator must allow at least one. No other formats than those listed here can be used in a Profile.
- Dependencies
- director component: the audio element becomes available
- package component: contributes to media types enum
- Extension Points
- None.
The Image Channel Component
- Purpose
- including this component makes the Image media type available in the DTB presentation
- Inclusion
- Optional.
- Polymorph
- Format outer bounds - subsetting allowed. This component defines a set of image formats out of which the Profile creator must allow at least one. No other formats than those listed here can be used in a Profile.
- Dependencies
- director component: the image element
- package component: contributes to media types enum
- Extension Points
- None.
- Note
- inclusion of images embedded statically in Text is a separate thing, and governed by the document type composed in the Text channel
The Video Channel Component
- Purpose
- including this component makes the Video media type available in the DTB presentation
- Inclusion
- Optional.
- Polymorph
- Format outer bounds - subsetting allowed. This component defines a set of video formats out of which the Profile creator must allow at least one. No other formats than those listed here can be used in a Profile.
- Dependencies
- director component: the video element {...}
- package component: contributes to media types enum
- Extension Points
- None.

