1 """
2 Cinelab Application Model
3 =========================
4
5 This is the canonical example of specializing the CORE model API
6 (`advene.model.core`) into a specific application model.
7
8 Note that two kinds of additional behaviours should be distinguished when
9 extending the core model:
10
11 # creation of additional elements or information in the model: this kind of
12 behaviour is usually to be skipped by the *parser*, since the additional
13 elements or information will later be normally serialized. This kind of
14 behaviour *must* be implemented using *events* (`advene.model.events`),
15 since parsers explicitly inhibit events.
16
17 # integrity checking and other behaviour: this kind of behaviour should
18 always be enforced, including in the parser. They must therefore *not rely*
19 on events, but rather on overriding methods.
20 """
21