How was it built ?Simple HTML

What is this view ?This view presents the basics of the Advene model and prototype.

Technical details about Advene


The objective of the advene approach is to help people design and exchange hypervideos. Hypervideos are hypermedias documents composed from audiovisual material plus annotation structure contents. A hypervideo is composed of several views, some of which (static views) can be experienced in a standard web browser, as some of the pages you have read so far. Others views, called dynamic views result from the augmentation of the stream with text, popups, links, and so on. Several other views can be used, such as timeline, transcription related to the stream, etc. For more precisions about the advene project, see the project website on which you can find several articles.

The advene prototype allows you to define your annotation structure (annotation and relation types), to annotate a video, to design queries on the annotation and to create both static and dynamic views. All of this information can then be saved as packages that can freely be shared amongst users, while the video itself has to be retrieved differently depending on the rights attached to it. A freely distributed video can be shared without difficulty, while copyrighted film material would have to be bought by both the producer and the consumer of the package. That is why Advene means Annotate Digital Video, Exchange on the NEt!.

Advene packages

An Advene package contains severals kinds of elements:

Annotations and annotation types

Annotations are pieces of information attached to a fragment of a video. They are defined by two timecodes (begin, end), and they have an id and a content. Annotation types are means to constraint the annotations contents. An annotation type has a name and a content-type.

For instance, a "Fear" annotation type has name "Fear" and defines annotations that have textual content ("text/plain"). Annotations of type "Fear" have textual content, and are defined with two timecodes, for instance the annotation a3280. A "Panel" annotation type defines annotations that have structured content ("application/x-advene-structured"), annotations of type "Panel" have structured content, for instance, the annotation a623

texte=You will have a marvellous journey. And, young as you are...
textefr=Tu vas faire un merveilleux voyage. Et jeune comme tu es...

Relations and relation types

A relation stands between two annotations. It has a content, which type is determined by an annotation type. An annotation type defines the content type of a relation. It also specifies the types of the annotations between which the relations can be put.

For instance, the relation type "Related shot" defines that relations of this type will have textual ("text/plain") content and be put between annotations of types "Panel" and "Shots". This relation type has been designed to illustrate the links between the text of a panel and the shots that actually represent what is said in the texte. Relation "r103" is of type "Related shot".


A view presents material extracted from the video and elements defined in the package. There are several types of views:

Ad-hoc views

Ad-hoc views are programmed views, that can be parameterized rather than defined by the user. The "tree view" allows to browse the elements of the package. The "timeline view" presents the annotations and the relations of the package.A "transcription view" can also be used to textually present annotations of the same type.

You can access to more informations about ad-hoc views on a dedicated page of this hypervideo.

Static views

These views, also called UTBV (User-Time Based Views), are merely standard web documents that use the package elements (mostly annotations). They take advantage of a template attribute language developped in the context tof the Zope application server platform, called ZPT (Zope Page Templates) [Tutorial]. A static view therefore consists in standard XML elements with special TAL attributes that permit simple commands, such as tal:repeat, tal:content, tal:condition, etc. The final construction of the page is done by the ZPT engine, and served by the web server embedded in the Advene application, when accessing the view.

All the pages of this hypervideo are static views. Some are juste plain HTML, other are constructed using TALES expressions to take advantage of the annotations and relations of the package.

Dynamic views

These views, also called STBV (Stream-Time Based Views) are video based, i.e. they consist of the video player augmented with several possibilities: add text on the video, add SVG drawing on the video, navigate to other parts of the stream or to URLs (external or package related), display information popups, activate another dynamic view, etc.

The general approach currently implemented in Advene is based on the ECA (Event-Condition-Action) paradigm, a system we consider generally apprehensible, as anybody can use its principles nowadays for filtering his mail. A dynamic view is simply a set of rules, each rule having that structure: When "event", If "condition" do "actions". Each rule is activated by an event (e.g. beginning of an annotation) and, if a condition applies (e.g. the annotation type is "Actor"), it triggers an action (e.g. caption the name attribute from the content of the annotation).

Each dynamic view is composed of multiple rules. Each rule can have multiple conditions and actions. Actions can have attributes (e.g. a "message" for the popup option), these attributes are TAL expressions (e.g. here/annotation/content/data' for the content of a text annotation).


Queries are applied to any element of a package, they can filter its contents according to various conditions.

For instance, the "includedshots" query applies to any annotation, and returns all the annotations of type "Shot" that are temporally included in it.


Ressources are additional files that are contained in the package. For instance, this package contains a CSS stylesheet and several images that are used for rendering the static part of the hypervideo.