/* We could try, for instance, an 'inheritance' model borrowed from class-based OO programming */ // Containers /* Containers are entities that can contain one or more objects, including other containers. They can also be empty. */ Container Container::Book Container::Page Container::Word Container::Sentence Container::Paragraph Container::Box Container::Box::Figure Container::Hyphenated::Pre Container::Hyphenated::Post Container::Frame Container::Frame::Edge // Components Component Component::Character Component::Hyphen Component::Image Component::TextStream Component::Line/shape // Alternative Component::Text:Character Component::Text::Stream Component::Text::Hyphen /* Containers can be visible or invisible (e.g. contour on text boxes) */ /* We should distinguish between text as a stream (source text) and text as an image (rendered text). */ // List of 'objects'