The Cinelab application model defines some higher-level concepts such
as annotation types, relation types and schemas, relying on the data
model defined in the hypervideo model. The following figure gives an
overview of these new element types. It also specifies more precisely
some metadata associated to elements of the model.
Package
In order to ease elements addressing, package elements SHOULD be
addressable through the TALES syntax as in the current Advene version. This syntax
offers a uniform access to the data model, that can be stored in
various ways (XML file, database, etc). Moreover, it allows to use
TALES expressions as URL parts, easing the development of REST-based
architectures.
Any TALES expression must be evaluated in a given context. This
context MUST reference a specific package, named reference
package. It MUST be accessible in TALES through the named
refpackage. When the TALES expression is used inside of an element
content, the reference package is the package that owns the element.
To make them easier to identify, and ease interoperability with other
applications, we define a TALES string as a character string that
can contain TALES expressions identified with the notation
${...}. This makes it possible to gracefully degrade TALES
expression support: applications without TALES support will display
the expression, clearly identified. TALES-supporting systems only have
to systematically preprend the string: prefix to the character
string before sending it to the TALES evaluator.
Content
A content specifies its MIME type.
Some generic MIME types like
application/xml or application/json may specify additional
contraints for some content sub-types (as XML schemas or JSON-schemas
for instances). A content MAY specify a model attribut that will
contain the identifier of a resource whose content will be the
appropriate schema.
The following schemas MAY be implemented:
Schema |
Content MIME type |
Schema MIME type |
Schema content |
Perl Compatible Regular Expression (PCRE) |
text/* |
application/x-advene-schema-pcre |
A regular expression |
RelaxNG |
application/xml |
application/relax-ng-compact-syntax |
A RelaxNG schema in
compact notation |