This part aims at giving a user-targeted description of the concepts used in Cinelab.
A package is a consistent set of references to medias, description schemas, annotations, relations, views, resources, queries, sets (in the form of list or tags), and other packages (dynamically imported/referenced).
Elements from a dynamically imported package can be accessed from the importer package.
A dynamic import is a simple reference to the imported package. The content of the imported package is available “in” the importer package, but cannot be directly modified from the importer package. If data has to be modified, then the user has to import it by copying the original elements into the desired package. Each copied element would then be duplicated, and both instances (original and copy) could be modified independently.
An annotation is data - called annotation content - linked to a temporal fragment of a movie.
An annotation belongs to a type (a category).
An annotation type offers a way to categorise annotations. This categorisation has two goals:
A “General annotation” type always exists.
A relation can link multiple annotations - called relation members - and can possess a content. It belongs to a type (a category).
For instance, a binary relation between two annotations of type Shot may allow to describe a narrative consequence between two shots, describing this consequence in the relation content.
A relation type categorises relations. This categorisation has two goals:
A “General relation” type always exists.
A resource is a data file linked to a package. It can be involved in view renditions.
A group allows to define element categories in a more flexible way than the annotation types and relations types :
Any element (annotation, relation, schema, type, view...) can be associated to a group.
Groups are expressed as lists (enumerations) and tags in the model.
A query returns a set of elements from the package that match a number of criteria.
A description schema is a way to describe the structure of a movie annotations.
A description schema defines categories of annotations (possibly specifying their contents), ways of linking annotations (through typed relations), etc., that it to say annotation types and relation types.
A view is a way to present a set of annotations and the videos they are linked with. As is often the case, there can sometimes be a confusion between the view specification (for instance a HTML template with processing directives) and the view rendition (with the previous example, the generated HTML document, where directives inserted data from specified elements). Thus, a view can be transmitted by transmitting its specification (then the directives processing will be carried out by the destination), or by transmitting its rendition. The precise term (specification or rendition) will be used in case of ambiguity.
For instance, a HTML document presenting a table of contents for a video, generated from annotation indicating different sequences and offering a direct access to the video, is an example of view that can be qualified as static. The specification of this view can be realised through a template language, as is done in Advene.
Overlaying the video with textual information (captioning) is another view example, that can be qualified as dynamic. The specification of this kind of views needs specific formats and models, such as a Event-Condition_Action as done in Advene, or a declarative specification as done in SMIL.