SlideShare une entreprise Scribd logo
1  sur  12
WORLD CONFERENCE 2013
OCTOBER 25- 282013 DUBAI, UAE
Paolo Pasini (2013). QEbu: an advanced graphical editor for the EbuCore Metadata Set.

QEBU: AN ADVANCED GRAPHICAL EDITOR FOR THE
EBUCORE METADATA SET
Paolo PASINI*
Polytechnic University of Turin
Creation and management of metadata documents can be quite a difficult task to accomplish manually. To
address this issue in the context of the EBUCore v1.3 metadata set, we propose a GUI-based metadata
editor, QEbu, developed during the Multimedia Archival Techniques course, held at the Polytechnic
University of Turin in collaboration with RAI.
The aim is to provide a user-friendly graphical editor to create and manage XML documents, relieving the
user from the burden of worrying about the structure of the data and letting him focus on the actual content.
QEbu has been developed in C++ using the cross-platform and open source library Qt 4.8; this framework
was chosen in order to exploit its natural features for developing interface-centered applications.
Keywords: Metadata management | Graphical editor | EbuCore v1.3

INTRODUCTION

In multimedia content analysis the word metadata refers to any piece of information used
to describe a specific content entity. This kind of information requires the definition of a
proper structure, in order to manage, exchange and exploit the available knowledge in a
profitable way. A common choice is to use XML documents for this purpose, and this is
exactly what is achieved with the EBUCore Metadata Set (Ebu Tech, 2011).
Besides the definition of the standard itself, it is equally important to provide
convenient tools which are able to create and manage such data, since it is difficult to do
this by hand, and likely to be error prone as well.
In order to address this last issue, QEbu has been developed and is presented in this
article. QEbu is a GUI-based metadata editor built upon the EBUCore v1.3 specifications.
The proposed tool was developed as an academic term project for the Multimedia
Archival Techniques course held at Polytechnic University of Turin in collaboration with
RAI, within the study plan of the Master of Science in Computer Engineering.
The full team that took part in the project here presented was composed of four other
students, Denis PATTI, Giovanni PESSIVA, Mauro LEVRA and Stefano RICOSSA, to
whichit is attributed all the due merit (Levra, et al. 2013).
OBJECTIVES

QEbu has been developed with the aim of providing a user-friendly graphical editor to
create and manage XML documents according to the EBUCore specifications.
The main idea is to relieve the end user from the burden of worrying about the
structure of the data in order to let him focus on the content. The tool‟s function is to
enforce all the required constraints and guide the user seamlessly toward the creation of
a well formed, and both structurally and semantically coherent, document.
*Paolo Pasini: Department of Control and Computer Engineering | Polytechnic University of Turin
Corso Duca degli Abruzzi 24 | Turin, 10129 | Italy
e-mail: paolo.pasini@polito.it

Copyright © of this paper is the property of the author(s). FIAT/IFTA is granted permission to reproduce copies of this work for
purposes relevant to the above conference and future communication by FIAT/IFTA without limitation, provided that the author(s),
source and copyright notice are included in each copy. For other uses, including extended quotation, please contact the author(s).
Paolo Pasini

The tool is aimed at both experienced users and novices in this field. During the
design phase, the fundamental objective has been to provide something that is easy to
use without intense training, and which does not require any deep knowledge of the
subject, thus gaining immediateness, without losing effectiveness. These aspects will be
made clearer during the overview of the GUI in the following sections.
OVERVIEW

In this section of the document, the main aspects of coding techniques and
implementation details will be covered, analyzing both the conceptual model and the user
interface.
In the following sub-sections all elements worthy of attention are treated individually
and, for some of them, a general code snippet is given, in the form of a template. The
data model will be presented first, followed by parsing/serializing aspects and then
finishing with details about the interface.
THE DATA MODEL

For the purposes of QEbu, it is necessary to provide manipulation functionalities over the
contents of an XML file and to allow creation of valid files from scratch, which require in
turn a coherent model to manage those operation more easily from a programming point
of view.
The choice made was to define stand-alone classes for every item declared within the
schema. This one-to-one mapping provides a layer of separation between the schema
itself and the application's data. Such approach requires a greater effort at the first
stance, but is allegedly more robust to changes in the schema, i.e. a single target to
modify in a well defined point in the code instead of several different references scattered
throughout thousands of lines of code. We preferred to write our own classes, instead of
using an XML data binding library, for several reasons. We wanted to exploit the
functionalities of Qt types and collections, maximize the usage of inheritance and reduce
the number of declared classes to a minimum taking advantage of the similarities existing
between EBU Core elements.
The data model finds its roots directly in the XML schema reference (W3C, 2012); an
almost one-to-one mapping for all data types defined in this document, with just few
exceptions, can be found in the final outcome of the model itself.
Every named data type, either simple or complex, has its own class representing every
single detail of the type itself; while for unnamed types the decision whether to define a
specific class or not has been made considering the situation and context, as they occur
in time sequence.
At the same time, by exploiting objects‟ composition and inheritance, we have tried to
keep the number of defined classes to a reasonable minimum.
As a rule of thumb, the solution that has resulted in a less redundant code with
improved re-usability has been chosen; but there is no absolutely right or wrong
approach in this instance.
The programming style adopted, in terms of naming conventions, spacing and such, is
the one assumed as the standard for Qt GUI framework development, which is already
well documented by the official online community (Qt Project, 2013).
As seen in the code snippet in Figure 1, basically all the classes defined to represent a
type are composed of a public part, which contains the basic methods to create and
destroy the class itself and to access its private members.
Depending on the type of inner members, an appropriate way of accessing them is
defined, but in general objects use pointer logic: predefined types, such as strings, are
handled by value; while lists and collections are treated like live elements, so a reference
to the actual collection is returned by its accessor methods.

2

FIAT/IFTA World Conference 2013 in Dubai
QEbu: an advanced graphical editor for the EbuCore Metadata Set.

Figure 1 Pattern followed in custom type class declaration.

Given the wide range of formatting possibilities defined within the XML schema, a
utility class called TypeConverter has been implemented, along with the model, to
provide basic functionalities of type conversion between dates/times and strings, in
support of parsing/serializing steps and for visualization purposes.
In this instance, the details of the actual implementation of the methods are omitted,
since they are extremely trivial and would not add any relevant information to the present
text.
In the case of highly correlated types or nested declarations, in order to mirror the
relationships found in the reference schema, several classes may have been defined
within the same file, but never with a nested approach: every single definition happens at
the same level, without using inner declarations.
Before describing other aspects of the application, it is worth taking into account how
internal references among objects are managed. There are some elements within the
schema, such as RightsType and PublicationType, that use XML ID and ID-ref in order to
enforce this kind of relationship; it has proven necessary to define a proper way to
manage such a situation.
Although the metadata definition makes use of ID-like fields, the links they represent
are just nominal as there is no sort of control over the matter. In the proposed data
model, a dedicated data structure manages the references among entities, enforcing
underlying constraints and keeping up the referential integrity.Instead of a mere stringbased reference, we decided to introduce an actual pointer among the objects, which
provides a stricter constraint, but in turn requires more careful handling. Since the user is
free to destroy referenced elements at any given time, an additional map of references
has beenintroduced in the model as well. This map contains entries indexed by reference
ID, to which correspond the actual object pointer and a list of listener objects.
Those objects are the ones that are required to be updated in the case of deletion of
the referenced entity, and hence the name „listener‟, in order to avoid breaking the
implied relationships between them.
XML MANAGEMENT

Once the model that provides a custom representation in memory of the schema was
defined, two additional elements, a parser and a serializer, were developed in order to
allow the transition between XML documents and custom in-memory representation.

FIAT/IFTA World Conference 2013 in Dubai3
Paolo Pasini

The framework of choice provides access to the most common APIs for XML
management, and the aforementioned modules use Qt framework DOM functionalities to
read and write XML files and expose simple interfaces to the GUI application code.
For the project requirements, and for the inherent complexity of the schema itself, the
choice of DOM was pretty straightforward in this specific context. Although it is well know
that DOM makes for a less efficient and more memory consuming approach, with respect
of others existing APIs, such as SAX, it is also true that its usage permits to traverse
convoluted data structures in an easier way, which consequentially reduces the required
programming effort as well. It is also to be noted that performance and memory should
not really be an issue, given the average file size the applications is going to work with
and the expected response time. In any case, it is very unlikely for bottlenecks or, far
worse crashes, to happen only because of this choice. Overall, it has been reputed that
DOM represented a valid enough choice, granting flexibility and agile code development.
Furthermore, because of the need to have access for writing APIs, SAX was not really a
sensible alternative, in order to avoid having two different approaches for parsing and
serializing.
There is one aspect of the application, though, that follows a completely different
strategy, and is the one involved in fetching the auto-completion info from external files.
To provide such functionalities within the GUI, as will be thoroughly described later,
the application references external XML files containing sets of standardized values. This
requires a fast skimming of the contents while searching for just the significant nodes
and, given the time constraints and the simpler structure of said files, a SAX API proved
a better candidate as it provided the required data without any noticeable slowing of the
program response in contrast to what happened with a DOM parser. A linear traversal of
the file of interest is more than enough to retrieve all the data required without any
noticeable delay on user's side, if compared with the one a DOM parser would have
introduced.
Concerning the management of actual metadata files, instead, and taking in
consideration the structure of the EBU Core metadata schema itself, which allows
recursive inclusion of elements of a given type within elements of the very same type,
directly or by inheritance, an iterative approach proved infeasible in both parsing and
serializing. The method of choice uses, instead, a depth-first recursive descent through
the data structure, being it either the representation in memory of the DOM object or the
custom model which has been previously introduced, to parse/serialize every node. All
the methods involved in these steps follow an arbitrary standard procedural pattern,
attributes first and children elements later, that should improve code readability and
maintainability. Specific details will be provided shortly.
One last aspect that has to be considered while working with XML files is the concept
of validation. The purpose of QEbu is to either manage already existing files or create
new ones, but in both cases the end result is supposed to be consistent and compliant to
the metadata standard. The first situation is the most critical, because the user may try to
load an invalid file; in this case it is up to the user, upon being notified of the invalidity of
the provided input, to decide whether to continue with the processing, as it may be in his
intentions to correct it. The application still tries to load the given file, ignoring when
possible the errors and keeping the valid portion of the original structure. The imported
document is structurally coherent, but some content may have been lost in the process,
being impossible to guarantee the accuracy of these steps.
On the other hand, while working from scratch the GUI and the controller logic behind
it guarantee the generated file to be inherently valid, enforcing all the rules and
constraints expressed within the reference schema and preventing the user from
introducing inadmissible values or leaving out mandatory branches of the data tree.

4

FIAT/IFTA World Conference 2013 in Dubai
QEbu: an advanced graphical editor for the EbuCore Metadata Set.

Figure 2 Basic snippet of code illustrating parser behavior.

PARSER

Before being parsed into memory, every file is validated against the EBUCore schema by
invoking xmllint, a command line tool provided by the free cross-platform C library
libxml2.
The decision to use an external validator was made after an analysis of XML
processing libraries provided by Qt, which assessed these as inadequate for the
requirements of QEbu.
The xmllint executable should be reachable by the program at run-time. In a
Windows environment this means it can be placed either in the QEbu directory or in a
directory referenced by PATH.
The validator output is parsed, retrieving information about possible errors; such
details are then forwarded to the user.
All validation functionalities are wrapped in the Validator helper class.
If the application cannot access the validator, it will show a warning message asking
the user if he wants to continue with the parsing, even if the file could be invalid or not

FIAT/IFTA World Conference 2013 in Dubai5
Paolo Pasini

well-formed. If a non-validated file is loaded, the application outcome is not predictable;
even though every item is checked for validity, which inherently enables crashes to be
avoided, it is impossible to define the actual result of the parsing itself. In this case, it is
up to the user to decide whether the process produced a sensible enough outcome to
work upon.
This said, the basic approach to parsing a file into memory is exemplified by the
snippet of code in Figure 2, which illustrates the way it is performed given an arbitrary
node element of the DOM tree representation.
Parsing is nothing more than a full visit to the document tree, sequentially descending
through every branch until a leaf is reached. At that point, the terminal element
encountered is mapped into our custom model and appended to the underlying memory
representation. This process iterates until nothing else is left unmanaged.
It may seem unnecessary to have a duplicate memory representation, given the fact
that DOM already builds its own, but this makes for easier management in the following
steps. When it is necessary to have the model interact with the user interface, it is much
more convenient to have specific types and classes, for which it is possible to define
customary constraints, sanity checks and provide proper accessor methods, rather than
use generic nodes or elements in memory.
SERIALIZER

The serializer is the dual counterpart of the parser just introduced, and follows the very
same principle. Once again it is just a full visit to our custom objects graph, to write on file
what is held in memory.
In this case the word graph is used, instead of tree, because it is possible to find, in some
situations, references among objects not linked with parent/child relations. In the schema
it is possible to find elements of IDref type, which are handled like actual pointers in the
proposed model. This results in slightly more complex management processes for the
data, but simplifies the verifications of reference constraints and the general coherence of
the structure, or at least makesnon well-defined references pretty evident, since nonhandled exceptions would result in segmentation issues.
The snippet in Figure 3 provides a quick example of the pattern followed for serializing
data.

Figure 3 Basic snippet of code illustrating serializer behaviour.

6

FIAT/IFTA World Conference 2013 in Dubai
QEbu: an advanced graphical editor for the EbuCore Metadata Set.

GUI AND FUNCTIONALITIES

The EBUCore standard comprises a great quantity of specific data types and so, for the
sake of clarity and to avoid congesting the user interface, for each of these types a
dedicated form has been designed and realized; similarly to the model a specific class
has been implemented.
The form designed for the root element of the schema provides the only entry point to
the underlying structure of custom views, and the user is able to navigate through all the
items and screens in a consistent and, hopefully, sensible way.
As an example, a preview screenshot of one of the QEbu forms is presented inFigure
4. Further screenshots will be introduced in subsequent figures to illustrate additional
details.
It has been chosen to design the interface so that only a single aspect, i.e. an element,
of the XML document is to be considered at a time. The metadata standard is rich in
content and covers a wide range of possible applications, so an improper management of
these aspects could easily lead to a messy and overcrowded interface. To avoid this
possibility, for every element of the schema a dedicated form has been developed,
tailored in a way to maximize the coherence of its content, while still maintaining an
attractive look and feel.
As a rule of thumb, the principal criteria followed while designing each view, can be
summarized as follows:
Whenever possible, attributes are managed via edit fields;

Figure 4 One of the forms of QEbu.

For range-restricted values, pickers are employed, together with additional checkboxes to
handle options;
Child elements come with their own form, with a few exceptions (i.e. groups);
If possible, attributes/elements are grouped together in a meaningful way;
Form parts are reused where possible to give consistency of composition.
FIAT/IFTA World Conference 2013 in Dubai7
Paolo Pasini

Of course, given the variability of types and content, the above example might not be
applicable to every item within the model, but it should be general enough to provide the
generic look and feel that most forms share.
On the other hand, this approach was required also to manage effectively the
transaction between the forms, with the aim to completely avoid popup dialogs, and so
maintain a single evolving window without detached panels scattered all over the screen.
Following the same idea that is used for mobile apps, we decided to implement a custom
stack of forms, or widgets, to model the transactions between elements, in which only the
topmost one is visible and interactive, while the others stay alive but frozen beneath the
surface, waiting to reach the top again. An example of this approach is represented in
Figure 5.
In order to keep navigation among forms consistent, we decided to keep the
transaction model as simple as possible, as exemplified by the life cycle and flow of work
representations in Figure 6 and Figure 7.
The final user is allowed to navigate the data structure only in a strictly linear fashion,
being forbidden to jump across the branches of the underlying tree representing the
document being created of modified.

Figure 5 The structure of the stackable widget solution.

In this scenario, the form designed for the document's root element provides the only
way to access the underlying structure of custom views and becomes the starting point
for all user interactions. The application relies on a custom stack structure to keep track
of the user position within the document itself, as well as to determine which view render
on the user interface. Every time a form relative to a children element is required, a new
form is instantiated on the fly and once fully initialized it is pushed in the aforementioned
stack resulting in an update of the GUI to display the newly created layer. The exact
opposite happens while ascending the tree towards the root element, which causes to
8

FIAT/IFTA World Conference 2013 in Dubai
QEbu: an advanced graphical editor for the EbuCore Metadata Set.

pop the form currently frozen beneath the topmost view at a time, restoring it and giving
back its interactivity.
The logic behind this behavior is defined within a custom widget, namely
„StackableWidget‟, from which all the forms of the application inherit, and that handles
common events that may happen during the lifetime of a specific form, such as its
creation, destruction or change of visibility.

Figure 6 Simplified form life-cycle.

When the user chooses to Add/Edit a child element, a new form is created and
becomes visible, while the parent is temporarily hidden. Then, using the Apply or Cancel
button, it is possible to restore a previously frozen panel, causing the destruction of the
current topmost form and the contextual release of its resources.
As stated previously, when possible, the single forms have been designed to employ
the widgets made available by the Qt framework directly. However, in some specific
cases, custom solutions needed to be designed, due to the limitations of the available
widgets; for example, in the case of long integer values for which Qt's widgets offer no
support, or the peculiar characteristics of some types or attributes. Specifically, some
types with limited content, such as the ElementType, were embedded in fact directly in
the parent object, in order to avoid the proliferation of low content forms.

Figure 7 An example of the flow of work with the evolution of the user interface.

As shown in Figure 7, QEbu permits the handling of even complex situations, such as
the management of parts, with ease. The specification allows the core element to include
one, or more, instances of the same type as the core itself; but this is still
straightforwardly manageable following the linear traversal mode implemented within the
tool.
In addition to this, special attention has been paid to the management of the numerous
sub-elements with unlimited cardinality [0..*] (i.e. lists of unrestricted variable length). The
coexistence in a given element of many of these unbounded sub-elements, often along
FIAT/IFTA World Conference 2013 in Dubai9
Paolo Pasini

with other restricted ones, poses some problems in the design of a clear and userfriendly interface.
Looking at this in more detail, we may identify two critical aspects related to lists.
Firstly, they can quickly lead to congestion in the interface, due to the amount of
information that each list element can carry and that must therefore be represented.
Secondly, without specific care, their coexistence with [0..1] elements could cause minor
incoherencies in the interface, which in turn may prove confusing to the user.
A specific widget has been designed to deal with these problems. The surfeit of
information is addressed by enabling only one list at the time for editing, avoiding the
need to represent in the same view all the details carried by all the lists. The coherency
between unlimited lists and single elements is then maintained by the use of the same
widget in both cases, disabling the possibility of adding new elements after the first
insertion, if necessary.
Given all of the aspects introduced here, and to provide further guidance to the final
user while traversing the structure of a document, several devices have been embedded
directly within the program interface. The application's interface has been designed
keeping in mind the needs of an hypothetical final user. To ensure a fast learning curve
and a good usability for all the typologies of users, besides a clear graphical interface,
several features have been implemented. For first-time users, a quick start tutorial is
available from the menu. In few steps the interface is quickly but comprehensively
explained, allowing inexperienced users to be able to fully exploit the application
possibilities in short time.
A sort of „breadcrumb‟ bar is available at the top of each form, tracking the current
position within the schema, to provide direct feedback about one's depth within the
schema. Additionally, every form contains its own piece of documentation, to provide
further indication on how to fill in each field properly. This should help him distinguish
between the several different, but yet sometimes very similar, elements type that exists
within the schema. When available, external links to further reference schemas are
displayed.
An example is provided in Figure 8.
Another feature of QEbu is the automatic instantaneous validation on every input field.
All constraints expressed in the EBU Core schema are enforced without further effort on
the user side. The idea is to prevent errors during the data entry phase giving the user a
direct feedback about the information entered and their correctness.
Textual fields are checked as well using regular expressions taken from the schema
itself or appropriately designed by us. The only situation in which this has been purposely
avoided, as stated in several best practice guidelines, is in the case of URI and URI-like
fields, given the inherent complexity of their format.
When possible, instead of free text boxes, restricted value pickers or drop down
selection menus have been included within the forms; however, even with the depth
reached by the documentation of the standard, it has been impossible to provide full
cover of all these aspects. Specifically, there are several fields that refer to standardized
values, but only a few of them come with a corresponding dictionary to pick entries from,
referenced in the EBUCore specification. In this case, QEbu fetches data from a set of
XML files, which we retrieved from the EBU website.
In this specific case, given the need to load the data as fast as possible, an
intermediate SAX parser is used to skim through these dictionary files, looking for just the
minimum set of information required to fill in the combo boxes. In this way, it is possible
to provide a response time from the application which goes unnoticed by the user, thus
not detracting from the user experience. At the same time, an internal dictionary stores
the fetched information for further reuse, avoiding multiple reading of the same external
files while still providing a partial auto-completion feature.

10

FIAT/IFTA World Conference 2013 in Dubai
QEbu: an advanced graphical editor for the EbuCore Metadata Set.

Figure 8 At the top of the screen a breadcrumb bar reminds the user of its current position, whilst at the
bottom hints are provided about the currently active field.

FUTURE DEVELOPMENTS

QEbu has been developed with regard to the EBUCore Metadata Set v1.3, so the
limitations encountered refer to this specific version of the schema itself.
The main issue encountered is related to the management of time and duration
values, which often appear in the same form in several different ways, i.e. both full date
and year of publication, or hour of broadcast and full date/timezone reference, which
could lead to potential inconsistencies. At the same time, the specifics do not restrict
properly some of these fields, allowing for instance negative values of duration. In these
cases, QEbu does not enforce further constraints, as we followed the rule that “the
schema is always right”; but this is an area that requires more work.
Also, it would be really useful to determine a comprehensive set of values for those
dictionary driven fields previously cited, in order to guide and restrict the user to just the
specific set of valid values during the input phase.
As stated in the introduction, this tool has been developed as an academic term
project, so it misses direct feedback from people with commercial experience in this field.
We strongly believe that suggestions from experienced users could lead to still better
tailored forms and a more functional application overall, given the review of QEbu from a
wider perspective.
EBUCore is a still evolving standard, so it is natural that QEbu will evolve with it. We
have done our best to make changes as simple as possible, so it should not be a difficult
task to include new features, or to alter what is already available to embrace the changes
introduced with newer versions of the standard itself.
CONCLUSION

This paper describes a GUI-based metadata editor with respect to the EbuCore Metadata
Set v1.3. Its purpose is to provide a way to easily manage and create XML instances,
FIAT/IFTA World Conference 2013 in Dubai11
Paolo Pasini

according to certain specifics, in a simple and coherent way, allowing the user to focus
on the content and avoiding the need to worry about the structure of the documents
themselves.
The aim is that fast and simple creation of this kind of documentation could lead to its
usage in further applications related, for example, to the management of archived
content, whether this is audio, video or any other kind of media. Providing tools to make
these steps easier should have a very positive effect on the whole chain of content
archiving and retrieval.
Because of the user-centred nature of this editor, it requires direct user feedback for its
evolution and improvement. Further enhancement will thus be possible by collating
responses from the content creation community relating to QEbu and this class of
metadata editing tools in general.
QEbu is released as free software under terms of the GPL 3 license.
Source code is available, along with compiled Windows binaries, at the project
repository (QEbu, 2012).
REFERENCES
EBU Tech (October 2011). EBU Tech 3293 - EBU Core Metadata Set (EBUCore), ver 1.3.
W3C (2004-2012).XML Schema reference documentation.
Retrieved July 2013 from http://www.w3.org/standards/techs/xmlschema
Qt Project (2005-2013).Qt GUI framework reference documentation.
Retrieved July 2013 from http://qt-project.org/doc/qt-4.8/
QEbu (June 2012). Project repository.
Retrieved June 2012 from https://github.com/Nazardo/Qebu
Levra M., Pasini P., Patti D., Pessiva G., Ricossa S., (12 June 2013). EBU TechReview - QEbu:
An Advanced Graphical Editor for the EBUCore Metadata Set.
Retrieved July 2013 from http://tech.ebu.ch/docs/techreview/tech-rev_2013-Q3_QEbu.pdf

12

FIAT/IFTA World Conference 2013 in Dubai

Contenu connexe

Tendances

A Personalized Audio Server using MPEG-7 and MPEG-21 standards
A Personalized Audio Server using MPEG-7 and MPEG-21 standardsA Personalized Audio Server using MPEG-7 and MPEG-21 standards
A Personalized Audio Server using MPEG-7 and MPEG-21 standardsUniversity of Piraeus
 
Provenance for Multimedia
Provenance for MultimediaProvenance for Multimedia
Provenance for MultimediaRaphael Troncy
 
Design and Implement a Hybrid WebRTC Signalling Mechanism for Unidirectional ...
Design and Implement a Hybrid WebRTC Signalling Mechanism for Unidirectional ...Design and Implement a Hybrid WebRTC Signalling Mechanism for Unidirectional ...
Design and Implement a Hybrid WebRTC Signalling Mechanism for Unidirectional ...IJECEIAES
 
A Mobile Audio Server enhanced with Semantic Personalization Capabilities
A Mobile Audio Server enhanced with Semantic Personalization CapabilitiesA Mobile Audio Server enhanced with Semantic Personalization Capabilities
A Mobile Audio Server enhanced with Semantic Personalization CapabilitiesUniversity of Piraeus
 
SAIL: demo handout at Future Media Distribution using Information Centric Net...
SAIL: demo handout at Future Media Distribution using Information Centric Net...SAIL: demo handout at Future Media Distribution using Information Centric Net...
SAIL: demo handout at Future Media Distribution using Information Centric Net...SAIL
 
Fuzzy Rules for HTML Transcoding
Fuzzy Rules for HTML TranscodingFuzzy Rules for HTML Transcoding
Fuzzy Rules for HTML TranscodingVideoguy
 
standardization for highschool e-learning
standardization for highschool e-learningstandardization for highschool e-learning
standardization for highschool e-learningWolf Spalteholz
 
Personalized Multimedia Web Services in Peer to Peer Networks Using MPEG-7 an...
Personalized Multimedia Web Services in Peer to Peer Networks Using MPEG-7 an...Personalized Multimedia Web Services in Peer to Peer Networks Using MPEG-7 an...
Personalized Multimedia Web Services in Peer to Peer Networks Using MPEG-7 an...University of Piraeus
 
Design and implementation of a novel secured and wide WebRTC signalling mecha...
Design and implementation of a novel secured and wide WebRTC signalling mecha...Design and implementation of a novel secured and wide WebRTC signalling mecha...
Design and implementation of a novel secured and wide WebRTC signalling mecha...IJECEIAES
 
Cyflwyniad OAIS, Caeredin, 2006-10-13
Cyflwyniad OAIS, Caeredin, 2006-10-13Cyflwyniad OAIS, Caeredin, 2006-10-13
Cyflwyniad OAIS, Caeredin, 2006-10-13Dogfael
 
Map of the CETIS metadata and digital repository interoperability domain
Map of the CETIS metadata and digital repository interoperability domainMap of the CETIS metadata and digital repository interoperability domain
Map of the CETIS metadata and digital repository interoperability domainPhil Barker
 
Moreq 2010 update-s-share
Moreq 2010 update-s-shareMoreq 2010 update-s-share
Moreq 2010 update-s-shareJürg Hagmann
 
Mingyang essay2002
Mingyang essay2002Mingyang essay2002
Mingyang essay2002avysvdsywvdw
 

Tendances (16)

A Personalized Audio Server using MPEG-7 and MPEG-21 standards
A Personalized Audio Server using MPEG-7 and MPEG-21 standardsA Personalized Audio Server using MPEG-7 and MPEG-21 standards
A Personalized Audio Server using MPEG-7 and MPEG-21 standards
 
On MPEG Modern Transport over Network
On MPEG Modern Transport over NetworkOn MPEG Modern Transport over Network
On MPEG Modern Transport over Network
 
Provenance for Multimedia
Provenance for MultimediaProvenance for Multimedia
Provenance for Multimedia
 
Design and Implement a Hybrid WebRTC Signalling Mechanism for Unidirectional ...
Design and Implement a Hybrid WebRTC Signalling Mechanism for Unidirectional ...Design and Implement a Hybrid WebRTC Signalling Mechanism for Unidirectional ...
Design and Implement a Hybrid WebRTC Signalling Mechanism for Unidirectional ...
 
A Mobile Audio Server enhanced with Semantic Personalization Capabilities
A Mobile Audio Server enhanced with Semantic Personalization CapabilitiesA Mobile Audio Server enhanced with Semantic Personalization Capabilities
A Mobile Audio Server enhanced with Semantic Personalization Capabilities
 
SAIL: demo handout at Future Media Distribution using Information Centric Net...
SAIL: demo handout at Future Media Distribution using Information Centric Net...SAIL: demo handout at Future Media Distribution using Information Centric Net...
SAIL: demo handout at Future Media Distribution using Information Centric Net...
 
Introduction to MPEG21
Introduction to MPEG21Introduction to MPEG21
Introduction to MPEG21
 
Fuzzy Rules for HTML Transcoding
Fuzzy Rules for HTML TranscodingFuzzy Rules for HTML Transcoding
Fuzzy Rules for HTML Transcoding
 
standardization for highschool e-learning
standardization for highschool e-learningstandardization for highschool e-learning
standardization for highschool e-learning
 
Personalized Multimedia Web Services in Peer to Peer Networks Using MPEG-7 an...
Personalized Multimedia Web Services in Peer to Peer Networks Using MPEG-7 an...Personalized Multimedia Web Services in Peer to Peer Networks Using MPEG-7 an...
Personalized Multimedia Web Services in Peer to Peer Networks Using MPEG-7 an...
 
Design and implementation of a novel secured and wide WebRTC signalling mecha...
Design and implementation of a novel secured and wide WebRTC signalling mecha...Design and implementation of a novel secured and wide WebRTC signalling mecha...
Design and implementation of a novel secured and wide WebRTC signalling mecha...
 
Cyflwyniad OAIS, Caeredin, 2006-10-13
Cyflwyniad OAIS, Caeredin, 2006-10-13Cyflwyniad OAIS, Caeredin, 2006-10-13
Cyflwyniad OAIS, Caeredin, 2006-10-13
 
Lod2
Lod2Lod2
Lod2
 
Map of the CETIS metadata and digital repository interoperability domain
Map of the CETIS metadata and digital repository interoperability domainMap of the CETIS metadata and digital repository interoperability domain
Map of the CETIS metadata and digital repository interoperability domain
 
Moreq 2010 update-s-share
Moreq 2010 update-s-shareMoreq 2010 update-s-share
Moreq 2010 update-s-share
 
Mingyang essay2002
Mingyang essay2002Mingyang essay2002
Mingyang essay2002
 

Similaire à QEBU: AN ADVANCED GRAPHICAL EDITOR FOR THE EBUCORE METADATA SET | Paolo PASINI, Polytechnic University of Turin

E041131823
E041131823E041131823
E041131823IOSR-JEN
 
Software_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxSoftware_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxArifaMehreen1
 
ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEW
ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEWONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEW
ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEWijait
 
ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEW
ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEW ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEW
ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEW ijait
 
“QEbu: an advanced metadata editor”, Paolo Pasini Polytechnic University o...
“QEbu: an advanced metadata editor”,   Paolo Pasini  Polytechnic University o...“QEbu: an advanced metadata editor”,   Paolo Pasini  Polytechnic University o...
“QEbu: an advanced metadata editor”, Paolo Pasini Polytechnic University o...FIAT/IFTA
 
An overview of foundation models.pdf
An overview of foundation models.pdfAn overview of foundation models.pdf
An overview of foundation models.pdfStephenAmell4
 
IRJET- Plug-In based System for Data Visualization
IRJET- Plug-In based System for Data VisualizationIRJET- Plug-In based System for Data Visualization
IRJET- Plug-In based System for Data VisualizationIRJET Journal
 
Towards From Manual to Automatic Semantic Annotation: Based on Ontology Eleme...
Towards From Manual to Automatic Semantic Annotation: Based on Ontology Eleme...Towards From Manual to Automatic Semantic Annotation: Based on Ontology Eleme...
Towards From Manual to Automatic Semantic Annotation: Based on Ontology Eleme...IJwest
 
Object Oriented Database
Object Oriented DatabaseObject Oriented Database
Object Oriented DatabaseMegan Espinoza
 
IRJET- Hosting NLP based Chatbot on AWS Cloud using Docker
IRJET-  	  Hosting NLP based Chatbot on AWS Cloud using DockerIRJET-  	  Hosting NLP based Chatbot on AWS Cloud using Docker
IRJET- Hosting NLP based Chatbot on AWS Cloud using DockerIRJET Journal
 
TECHNIQUES FOR COMPONENT REUSABLE APPROACH
TECHNIQUES FOR COMPONENT REUSABLE APPROACHTECHNIQUES FOR COMPONENT REUSABLE APPROACH
TECHNIQUES FOR COMPONENT REUSABLE APPROACHcscpconf
 
Trekk cross media series using xml to create once - distribute everywhere - e...
Trekk cross media series using xml to create once - distribute everywhere - e...Trekk cross media series using xml to create once - distribute everywhere - e...
Trekk cross media series using xml to create once - distribute everywhere - e...Jeffrey Stewart
 
Availability Assessment of Software Systems Architecture Using Formal Models
Availability Assessment of Software Systems Architecture Using Formal ModelsAvailability Assessment of Software Systems Architecture Using Formal Models
Availability Assessment of Software Systems Architecture Using Formal ModelsEditor IJCATR
 
A Metamodel and Graphical Syntax for NS-2 Programing
A Metamodel and Graphical Syntax for NS-2 ProgramingA Metamodel and Graphical Syntax for NS-2 Programing
A Metamodel and Graphical Syntax for NS-2 ProgramingEditor IJCATR
 
ap assignmnet presentation.pptx
ap assignmnet presentation.pptxap assignmnet presentation.pptx
ap assignmnet presentation.pptxAwanAdhikari
 
Opensource gis development - part 5
Opensource gis development - part 5Opensource gis development - part 5
Opensource gis development - part 5Andrea Antonello
 
Converting UML Class Diagrams into Temporal Object Relational DataBase
Converting UML Class Diagrams into Temporal Object Relational DataBase Converting UML Class Diagrams into Temporal Object Relational DataBase
Converting UML Class Diagrams into Temporal Object Relational DataBase IJECEIAES
 
Improved Presentation and Facade Layer Operations for Software Engineering Pr...
Improved Presentation and Facade Layer Operations for Software Engineering Pr...Improved Presentation and Facade Layer Operations for Software Engineering Pr...
Improved Presentation and Facade Layer Operations for Software Engineering Pr...Dr. Amarjeet Singh
 

Similaire à QEBU: AN ADVANCED GRAPHICAL EDITOR FOR THE EBUCORE METADATA SET | Paolo PASINI, Polytechnic University of Turin (20)

E041131823
E041131823E041131823
E041131823
 
Sda 9
Sda   9Sda   9
Sda 9
 
Software_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxSoftware_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptx
 
ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEW
ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEWONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEW
ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEW
 
ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEW
ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEW ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEW
ONTOLOGY VISUALIZATION PROTÉGÉ TOOLS – A REVIEW
 
java
javajava
java
 
“QEbu: an advanced metadata editor”, Paolo Pasini Polytechnic University o...
“QEbu: an advanced metadata editor”,   Paolo Pasini  Polytechnic University o...“QEbu: an advanced metadata editor”,   Paolo Pasini  Polytechnic University o...
“QEbu: an advanced metadata editor”, Paolo Pasini Polytechnic University o...
 
An overview of foundation models.pdf
An overview of foundation models.pdfAn overview of foundation models.pdf
An overview of foundation models.pdf
 
IRJET- Plug-In based System for Data Visualization
IRJET- Plug-In based System for Data VisualizationIRJET- Plug-In based System for Data Visualization
IRJET- Plug-In based System for Data Visualization
 
Towards From Manual to Automatic Semantic Annotation: Based on Ontology Eleme...
Towards From Manual to Automatic Semantic Annotation: Based on Ontology Eleme...Towards From Manual to Automatic Semantic Annotation: Based on Ontology Eleme...
Towards From Manual to Automatic Semantic Annotation: Based on Ontology Eleme...
 
Object Oriented Database
Object Oriented DatabaseObject Oriented Database
Object Oriented Database
 
IRJET- Hosting NLP based Chatbot on AWS Cloud using Docker
IRJET-  	  Hosting NLP based Chatbot on AWS Cloud using DockerIRJET-  	  Hosting NLP based Chatbot on AWS Cloud using Docker
IRJET- Hosting NLP based Chatbot on AWS Cloud using Docker
 
TECHNIQUES FOR COMPONENT REUSABLE APPROACH
TECHNIQUES FOR COMPONENT REUSABLE APPROACHTECHNIQUES FOR COMPONENT REUSABLE APPROACH
TECHNIQUES FOR COMPONENT REUSABLE APPROACH
 
Trekk cross media series using xml to create once - distribute everywhere - e...
Trekk cross media series using xml to create once - distribute everywhere - e...Trekk cross media series using xml to create once - distribute everywhere - e...
Trekk cross media series using xml to create once - distribute everywhere - e...
 
Availability Assessment of Software Systems Architecture Using Formal Models
Availability Assessment of Software Systems Architecture Using Formal ModelsAvailability Assessment of Software Systems Architecture Using Formal Models
Availability Assessment of Software Systems Architecture Using Formal Models
 
A Metamodel and Graphical Syntax for NS-2 Programing
A Metamodel and Graphical Syntax for NS-2 ProgramingA Metamodel and Graphical Syntax for NS-2 Programing
A Metamodel and Graphical Syntax for NS-2 Programing
 
ap assignmnet presentation.pptx
ap assignmnet presentation.pptxap assignmnet presentation.pptx
ap assignmnet presentation.pptx
 
Opensource gis development - part 5
Opensource gis development - part 5Opensource gis development - part 5
Opensource gis development - part 5
 
Converting UML Class Diagrams into Temporal Object Relational DataBase
Converting UML Class Diagrams into Temporal Object Relational DataBase Converting UML Class Diagrams into Temporal Object Relational DataBase
Converting UML Class Diagrams into Temporal Object Relational DataBase
 
Improved Presentation and Facade Layer Operations for Software Engineering Pr...
Improved Presentation and Facade Layer Operations for Software Engineering Pr...Improved Presentation and Facade Layer Operations for Software Engineering Pr...
Improved Presentation and Facade Layer Operations for Software Engineering Pr...
 

Plus de FIAT/IFTA

2021 FIAT/IFTA Timeline Survey
2021 FIAT/IFTA Timeline Survey2021 FIAT/IFTA Timeline Survey
2021 FIAT/IFTA Timeline SurveyFIAT/IFTA
 
20211021 FIAT/IFTA Most Wanted List
20211021 FIAT/IFTA Most Wanted List20211021 FIAT/IFTA Most Wanted List
20211021 FIAT/IFTA Most Wanted ListFIAT/IFTA
 
WARBURTON FIAT/IFTA Timeline Survey results 2020
WARBURTON FIAT/IFTA Timeline Survey results 2020WARBURTON FIAT/IFTA Timeline Survey results 2020
WARBURTON FIAT/IFTA Timeline Survey results 2020FIAT/IFTA
 
OOMEN MEZARIS ReTV
OOMEN MEZARIS ReTVOOMEN MEZARIS ReTV
OOMEN MEZARIS ReTVFIAT/IFTA
 
BUCHMAN Digitisation of quarter inch audio tapes at DR (FRAME Expert)
BUCHMAN Digitisation of quarter inch audio tapes at DR (FRAME Expert)BUCHMAN Digitisation of quarter inch audio tapes at DR (FRAME Expert)
BUCHMAN Digitisation of quarter inch audio tapes at DR (FRAME Expert)FIAT/IFTA
 
CULJAT (FRAME Expert) Public procurement in audiovisual digitisation at RTÉ
CULJAT (FRAME Expert) Public procurement in audiovisual digitisation at RTÉCULJAT (FRAME Expert) Public procurement in audiovisual digitisation at RTÉ
CULJAT (FRAME Expert) Public procurement in audiovisual digitisation at RTÉFIAT/IFTA
 
HULSENBECK Value Use and Copyright Comission initiatives
HULSENBECK Value Use and Copyright Comission initiativesHULSENBECK Value Use and Copyright Comission initiatives
HULSENBECK Value Use and Copyright Comission initiativesFIAT/IFTA
 
WILSON Film digitisation at BBC Scotland
WILSON Film digitisation at BBC ScotlandWILSON Film digitisation at BBC Scotland
WILSON Film digitisation at BBC ScotlandFIAT/IFTA
 
GOLODNOFF We need to make our past accessible!
GOLODNOFF We need to make our past accessible!GOLODNOFF We need to make our past accessible!
GOLODNOFF We need to make our past accessible!FIAT/IFTA
 
LORENZ Building an integrated digital media archive and legal deposit
LORENZ Building an integrated digital media archive and legal depositLORENZ Building an integrated digital media archive and legal deposit
LORENZ Building an integrated digital media archive and legal depositFIAT/IFTA
 
BIRATUNGANYE Shock of formats
BIRATUNGANYE Shock of formatsBIRATUNGANYE Shock of formats
BIRATUNGANYE Shock of formatsFIAT/IFTA
 
CANTU VT is TV The History of Argentinian Video Art and Television Archives P...
CANTU VT is TV The History of Argentinian Video Art and Television Archives P...CANTU VT is TV The History of Argentinian Video Art and Television Archives P...
CANTU VT is TV The History of Argentinian Video Art and Television Archives P...FIAT/IFTA
 
BERGER RIPPON BBC Music memories
BERGER RIPPON BBC Music memoriesBERGER RIPPON BBC Music memories
BERGER RIPPON BBC Music memoriesFIAT/IFTA
 
AOIBHINN and CHOISTIN Rehash your archive
AOIBHINN and CHOISTIN Rehash your archiveAOIBHINN and CHOISTIN Rehash your archive
AOIBHINN and CHOISTIN Rehash your archiveFIAT/IFTA
 
HULSENBECK BLOM A blast from the past open up
HULSENBECK BLOM A blast from the past open upHULSENBECK BLOM A blast from the past open up
HULSENBECK BLOM A blast from the past open upFIAT/IFTA
 
PERVIZ Automated evolvable media console systems in digital archives
PERVIZ Automated evolvable media console systems in digital archivesPERVIZ Automated evolvable media console systems in digital archives
PERVIZ Automated evolvable media console systems in digital archivesFIAT/IFTA
 
AICHROTH Systemaic evaluation and decentralisation for a (bit more) trusted AI
AICHROTH Systemaic evaluation and decentralisation for a (bit more) trusted AIAICHROTH Systemaic evaluation and decentralisation for a (bit more) trusted AI
AICHROTH Systemaic evaluation and decentralisation for a (bit more) trusted AIFIAT/IFTA
 
VINSON Accuracy and cost assessment for archival video transcription methods
VINSON Accuracy and cost assessment for archival video transcription methodsVINSON Accuracy and cost assessment for archival video transcription methods
VINSON Accuracy and cost assessment for archival video transcription methodsFIAT/IFTA
 
LYCKE Artificial intelligence, hype or hope?
LYCKE Artificial intelligence, hype or hope?LYCKE Artificial intelligence, hype or hope?
LYCKE Artificial intelligence, hype or hope?FIAT/IFTA
 
AZIZ BABBUCCI Let's play with the archive
AZIZ BABBUCCI Let's play with the archiveAZIZ BABBUCCI Let's play with the archive
AZIZ BABBUCCI Let's play with the archiveFIAT/IFTA
 

Plus de FIAT/IFTA (20)

2021 FIAT/IFTA Timeline Survey
2021 FIAT/IFTA Timeline Survey2021 FIAT/IFTA Timeline Survey
2021 FIAT/IFTA Timeline Survey
 
20211021 FIAT/IFTA Most Wanted List
20211021 FIAT/IFTA Most Wanted List20211021 FIAT/IFTA Most Wanted List
20211021 FIAT/IFTA Most Wanted List
 
WARBURTON FIAT/IFTA Timeline Survey results 2020
WARBURTON FIAT/IFTA Timeline Survey results 2020WARBURTON FIAT/IFTA Timeline Survey results 2020
WARBURTON FIAT/IFTA Timeline Survey results 2020
 
OOMEN MEZARIS ReTV
OOMEN MEZARIS ReTVOOMEN MEZARIS ReTV
OOMEN MEZARIS ReTV
 
BUCHMAN Digitisation of quarter inch audio tapes at DR (FRAME Expert)
BUCHMAN Digitisation of quarter inch audio tapes at DR (FRAME Expert)BUCHMAN Digitisation of quarter inch audio tapes at DR (FRAME Expert)
BUCHMAN Digitisation of quarter inch audio tapes at DR (FRAME Expert)
 
CULJAT (FRAME Expert) Public procurement in audiovisual digitisation at RTÉ
CULJAT (FRAME Expert) Public procurement in audiovisual digitisation at RTÉCULJAT (FRAME Expert) Public procurement in audiovisual digitisation at RTÉ
CULJAT (FRAME Expert) Public procurement in audiovisual digitisation at RTÉ
 
HULSENBECK Value Use and Copyright Comission initiatives
HULSENBECK Value Use and Copyright Comission initiativesHULSENBECK Value Use and Copyright Comission initiatives
HULSENBECK Value Use and Copyright Comission initiatives
 
WILSON Film digitisation at BBC Scotland
WILSON Film digitisation at BBC ScotlandWILSON Film digitisation at BBC Scotland
WILSON Film digitisation at BBC Scotland
 
GOLODNOFF We need to make our past accessible!
GOLODNOFF We need to make our past accessible!GOLODNOFF We need to make our past accessible!
GOLODNOFF We need to make our past accessible!
 
LORENZ Building an integrated digital media archive and legal deposit
LORENZ Building an integrated digital media archive and legal depositLORENZ Building an integrated digital media archive and legal deposit
LORENZ Building an integrated digital media archive and legal deposit
 
BIRATUNGANYE Shock of formats
BIRATUNGANYE Shock of formatsBIRATUNGANYE Shock of formats
BIRATUNGANYE Shock of formats
 
CANTU VT is TV The History of Argentinian Video Art and Television Archives P...
CANTU VT is TV The History of Argentinian Video Art and Television Archives P...CANTU VT is TV The History of Argentinian Video Art and Television Archives P...
CANTU VT is TV The History of Argentinian Video Art and Television Archives P...
 
BERGER RIPPON BBC Music memories
BERGER RIPPON BBC Music memoriesBERGER RIPPON BBC Music memories
BERGER RIPPON BBC Music memories
 
AOIBHINN and CHOISTIN Rehash your archive
AOIBHINN and CHOISTIN Rehash your archiveAOIBHINN and CHOISTIN Rehash your archive
AOIBHINN and CHOISTIN Rehash your archive
 
HULSENBECK BLOM A blast from the past open up
HULSENBECK BLOM A blast from the past open upHULSENBECK BLOM A blast from the past open up
HULSENBECK BLOM A blast from the past open up
 
PERVIZ Automated evolvable media console systems in digital archives
PERVIZ Automated evolvable media console systems in digital archivesPERVIZ Automated evolvable media console systems in digital archives
PERVIZ Automated evolvable media console systems in digital archives
 
AICHROTH Systemaic evaluation and decentralisation for a (bit more) trusted AI
AICHROTH Systemaic evaluation and decentralisation for a (bit more) trusted AIAICHROTH Systemaic evaluation and decentralisation for a (bit more) trusted AI
AICHROTH Systemaic evaluation and decentralisation for a (bit more) trusted AI
 
VINSON Accuracy and cost assessment for archival video transcription methods
VINSON Accuracy and cost assessment for archival video transcription methodsVINSON Accuracy and cost assessment for archival video transcription methods
VINSON Accuracy and cost assessment for archival video transcription methods
 
LYCKE Artificial intelligence, hype or hope?
LYCKE Artificial intelligence, hype or hope?LYCKE Artificial intelligence, hype or hope?
LYCKE Artificial intelligence, hype or hope?
 
AZIZ BABBUCCI Let's play with the archive
AZIZ BABBUCCI Let's play with the archiveAZIZ BABBUCCI Let's play with the archive
AZIZ BABBUCCI Let's play with the archive
 

Dernier

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 

Dernier (20)

Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 

QEBU: AN ADVANCED GRAPHICAL EDITOR FOR THE EBUCORE METADATA SET | Paolo PASINI, Polytechnic University of Turin

  • 1. WORLD CONFERENCE 2013 OCTOBER 25- 282013 DUBAI, UAE Paolo Pasini (2013). QEbu: an advanced graphical editor for the EbuCore Metadata Set. QEBU: AN ADVANCED GRAPHICAL EDITOR FOR THE EBUCORE METADATA SET Paolo PASINI* Polytechnic University of Turin Creation and management of metadata documents can be quite a difficult task to accomplish manually. To address this issue in the context of the EBUCore v1.3 metadata set, we propose a GUI-based metadata editor, QEbu, developed during the Multimedia Archival Techniques course, held at the Polytechnic University of Turin in collaboration with RAI. The aim is to provide a user-friendly graphical editor to create and manage XML documents, relieving the user from the burden of worrying about the structure of the data and letting him focus on the actual content. QEbu has been developed in C++ using the cross-platform and open source library Qt 4.8; this framework was chosen in order to exploit its natural features for developing interface-centered applications. Keywords: Metadata management | Graphical editor | EbuCore v1.3 INTRODUCTION In multimedia content analysis the word metadata refers to any piece of information used to describe a specific content entity. This kind of information requires the definition of a proper structure, in order to manage, exchange and exploit the available knowledge in a profitable way. A common choice is to use XML documents for this purpose, and this is exactly what is achieved with the EBUCore Metadata Set (Ebu Tech, 2011). Besides the definition of the standard itself, it is equally important to provide convenient tools which are able to create and manage such data, since it is difficult to do this by hand, and likely to be error prone as well. In order to address this last issue, QEbu has been developed and is presented in this article. QEbu is a GUI-based metadata editor built upon the EBUCore v1.3 specifications. The proposed tool was developed as an academic term project for the Multimedia Archival Techniques course held at Polytechnic University of Turin in collaboration with RAI, within the study plan of the Master of Science in Computer Engineering. The full team that took part in the project here presented was composed of four other students, Denis PATTI, Giovanni PESSIVA, Mauro LEVRA and Stefano RICOSSA, to whichit is attributed all the due merit (Levra, et al. 2013). OBJECTIVES QEbu has been developed with the aim of providing a user-friendly graphical editor to create and manage XML documents according to the EBUCore specifications. The main idea is to relieve the end user from the burden of worrying about the structure of the data in order to let him focus on the content. The tool‟s function is to enforce all the required constraints and guide the user seamlessly toward the creation of a well formed, and both structurally and semantically coherent, document. *Paolo Pasini: Department of Control and Computer Engineering | Polytechnic University of Turin Corso Duca degli Abruzzi 24 | Turin, 10129 | Italy e-mail: paolo.pasini@polito.it Copyright © of this paper is the property of the author(s). FIAT/IFTA is granted permission to reproduce copies of this work for purposes relevant to the above conference and future communication by FIAT/IFTA without limitation, provided that the author(s), source and copyright notice are included in each copy. For other uses, including extended quotation, please contact the author(s).
  • 2. Paolo Pasini The tool is aimed at both experienced users and novices in this field. During the design phase, the fundamental objective has been to provide something that is easy to use without intense training, and which does not require any deep knowledge of the subject, thus gaining immediateness, without losing effectiveness. These aspects will be made clearer during the overview of the GUI in the following sections. OVERVIEW In this section of the document, the main aspects of coding techniques and implementation details will be covered, analyzing both the conceptual model and the user interface. In the following sub-sections all elements worthy of attention are treated individually and, for some of them, a general code snippet is given, in the form of a template. The data model will be presented first, followed by parsing/serializing aspects and then finishing with details about the interface. THE DATA MODEL For the purposes of QEbu, it is necessary to provide manipulation functionalities over the contents of an XML file and to allow creation of valid files from scratch, which require in turn a coherent model to manage those operation more easily from a programming point of view. The choice made was to define stand-alone classes for every item declared within the schema. This one-to-one mapping provides a layer of separation between the schema itself and the application's data. Such approach requires a greater effort at the first stance, but is allegedly more robust to changes in the schema, i.e. a single target to modify in a well defined point in the code instead of several different references scattered throughout thousands of lines of code. We preferred to write our own classes, instead of using an XML data binding library, for several reasons. We wanted to exploit the functionalities of Qt types and collections, maximize the usage of inheritance and reduce the number of declared classes to a minimum taking advantage of the similarities existing between EBU Core elements. The data model finds its roots directly in the XML schema reference (W3C, 2012); an almost one-to-one mapping for all data types defined in this document, with just few exceptions, can be found in the final outcome of the model itself. Every named data type, either simple or complex, has its own class representing every single detail of the type itself; while for unnamed types the decision whether to define a specific class or not has been made considering the situation and context, as they occur in time sequence. At the same time, by exploiting objects‟ composition and inheritance, we have tried to keep the number of defined classes to a reasonable minimum. As a rule of thumb, the solution that has resulted in a less redundant code with improved re-usability has been chosen; but there is no absolutely right or wrong approach in this instance. The programming style adopted, in terms of naming conventions, spacing and such, is the one assumed as the standard for Qt GUI framework development, which is already well documented by the official online community (Qt Project, 2013). As seen in the code snippet in Figure 1, basically all the classes defined to represent a type are composed of a public part, which contains the basic methods to create and destroy the class itself and to access its private members. Depending on the type of inner members, an appropriate way of accessing them is defined, but in general objects use pointer logic: predefined types, such as strings, are handled by value; while lists and collections are treated like live elements, so a reference to the actual collection is returned by its accessor methods. 2 FIAT/IFTA World Conference 2013 in Dubai
  • 3. QEbu: an advanced graphical editor for the EbuCore Metadata Set. Figure 1 Pattern followed in custom type class declaration. Given the wide range of formatting possibilities defined within the XML schema, a utility class called TypeConverter has been implemented, along with the model, to provide basic functionalities of type conversion between dates/times and strings, in support of parsing/serializing steps and for visualization purposes. In this instance, the details of the actual implementation of the methods are omitted, since they are extremely trivial and would not add any relevant information to the present text. In the case of highly correlated types or nested declarations, in order to mirror the relationships found in the reference schema, several classes may have been defined within the same file, but never with a nested approach: every single definition happens at the same level, without using inner declarations. Before describing other aspects of the application, it is worth taking into account how internal references among objects are managed. There are some elements within the schema, such as RightsType and PublicationType, that use XML ID and ID-ref in order to enforce this kind of relationship; it has proven necessary to define a proper way to manage such a situation. Although the metadata definition makes use of ID-like fields, the links they represent are just nominal as there is no sort of control over the matter. In the proposed data model, a dedicated data structure manages the references among entities, enforcing underlying constraints and keeping up the referential integrity.Instead of a mere stringbased reference, we decided to introduce an actual pointer among the objects, which provides a stricter constraint, but in turn requires more careful handling. Since the user is free to destroy referenced elements at any given time, an additional map of references has beenintroduced in the model as well. This map contains entries indexed by reference ID, to which correspond the actual object pointer and a list of listener objects. Those objects are the ones that are required to be updated in the case of deletion of the referenced entity, and hence the name „listener‟, in order to avoid breaking the implied relationships between them. XML MANAGEMENT Once the model that provides a custom representation in memory of the schema was defined, two additional elements, a parser and a serializer, were developed in order to allow the transition between XML documents and custom in-memory representation. FIAT/IFTA World Conference 2013 in Dubai3
  • 4. Paolo Pasini The framework of choice provides access to the most common APIs for XML management, and the aforementioned modules use Qt framework DOM functionalities to read and write XML files and expose simple interfaces to the GUI application code. For the project requirements, and for the inherent complexity of the schema itself, the choice of DOM was pretty straightforward in this specific context. Although it is well know that DOM makes for a less efficient and more memory consuming approach, with respect of others existing APIs, such as SAX, it is also true that its usage permits to traverse convoluted data structures in an easier way, which consequentially reduces the required programming effort as well. It is also to be noted that performance and memory should not really be an issue, given the average file size the applications is going to work with and the expected response time. In any case, it is very unlikely for bottlenecks or, far worse crashes, to happen only because of this choice. Overall, it has been reputed that DOM represented a valid enough choice, granting flexibility and agile code development. Furthermore, because of the need to have access for writing APIs, SAX was not really a sensible alternative, in order to avoid having two different approaches for parsing and serializing. There is one aspect of the application, though, that follows a completely different strategy, and is the one involved in fetching the auto-completion info from external files. To provide such functionalities within the GUI, as will be thoroughly described later, the application references external XML files containing sets of standardized values. This requires a fast skimming of the contents while searching for just the significant nodes and, given the time constraints and the simpler structure of said files, a SAX API proved a better candidate as it provided the required data without any noticeable slowing of the program response in contrast to what happened with a DOM parser. A linear traversal of the file of interest is more than enough to retrieve all the data required without any noticeable delay on user's side, if compared with the one a DOM parser would have introduced. Concerning the management of actual metadata files, instead, and taking in consideration the structure of the EBU Core metadata schema itself, which allows recursive inclusion of elements of a given type within elements of the very same type, directly or by inheritance, an iterative approach proved infeasible in both parsing and serializing. The method of choice uses, instead, a depth-first recursive descent through the data structure, being it either the representation in memory of the DOM object or the custom model which has been previously introduced, to parse/serialize every node. All the methods involved in these steps follow an arbitrary standard procedural pattern, attributes first and children elements later, that should improve code readability and maintainability. Specific details will be provided shortly. One last aspect that has to be considered while working with XML files is the concept of validation. The purpose of QEbu is to either manage already existing files or create new ones, but in both cases the end result is supposed to be consistent and compliant to the metadata standard. The first situation is the most critical, because the user may try to load an invalid file; in this case it is up to the user, upon being notified of the invalidity of the provided input, to decide whether to continue with the processing, as it may be in his intentions to correct it. The application still tries to load the given file, ignoring when possible the errors and keeping the valid portion of the original structure. The imported document is structurally coherent, but some content may have been lost in the process, being impossible to guarantee the accuracy of these steps. On the other hand, while working from scratch the GUI and the controller logic behind it guarantee the generated file to be inherently valid, enforcing all the rules and constraints expressed within the reference schema and preventing the user from introducing inadmissible values or leaving out mandatory branches of the data tree. 4 FIAT/IFTA World Conference 2013 in Dubai
  • 5. QEbu: an advanced graphical editor for the EbuCore Metadata Set. Figure 2 Basic snippet of code illustrating parser behavior. PARSER Before being parsed into memory, every file is validated against the EBUCore schema by invoking xmllint, a command line tool provided by the free cross-platform C library libxml2. The decision to use an external validator was made after an analysis of XML processing libraries provided by Qt, which assessed these as inadequate for the requirements of QEbu. The xmllint executable should be reachable by the program at run-time. In a Windows environment this means it can be placed either in the QEbu directory or in a directory referenced by PATH. The validator output is parsed, retrieving information about possible errors; such details are then forwarded to the user. All validation functionalities are wrapped in the Validator helper class. If the application cannot access the validator, it will show a warning message asking the user if he wants to continue with the parsing, even if the file could be invalid or not FIAT/IFTA World Conference 2013 in Dubai5
  • 6. Paolo Pasini well-formed. If a non-validated file is loaded, the application outcome is not predictable; even though every item is checked for validity, which inherently enables crashes to be avoided, it is impossible to define the actual result of the parsing itself. In this case, it is up to the user to decide whether the process produced a sensible enough outcome to work upon. This said, the basic approach to parsing a file into memory is exemplified by the snippet of code in Figure 2, which illustrates the way it is performed given an arbitrary node element of the DOM tree representation. Parsing is nothing more than a full visit to the document tree, sequentially descending through every branch until a leaf is reached. At that point, the terminal element encountered is mapped into our custom model and appended to the underlying memory representation. This process iterates until nothing else is left unmanaged. It may seem unnecessary to have a duplicate memory representation, given the fact that DOM already builds its own, but this makes for easier management in the following steps. When it is necessary to have the model interact with the user interface, it is much more convenient to have specific types and classes, for which it is possible to define customary constraints, sanity checks and provide proper accessor methods, rather than use generic nodes or elements in memory. SERIALIZER The serializer is the dual counterpart of the parser just introduced, and follows the very same principle. Once again it is just a full visit to our custom objects graph, to write on file what is held in memory. In this case the word graph is used, instead of tree, because it is possible to find, in some situations, references among objects not linked with parent/child relations. In the schema it is possible to find elements of IDref type, which are handled like actual pointers in the proposed model. This results in slightly more complex management processes for the data, but simplifies the verifications of reference constraints and the general coherence of the structure, or at least makesnon well-defined references pretty evident, since nonhandled exceptions would result in segmentation issues. The snippet in Figure 3 provides a quick example of the pattern followed for serializing data. Figure 3 Basic snippet of code illustrating serializer behaviour. 6 FIAT/IFTA World Conference 2013 in Dubai
  • 7. QEbu: an advanced graphical editor for the EbuCore Metadata Set. GUI AND FUNCTIONALITIES The EBUCore standard comprises a great quantity of specific data types and so, for the sake of clarity and to avoid congesting the user interface, for each of these types a dedicated form has been designed and realized; similarly to the model a specific class has been implemented. The form designed for the root element of the schema provides the only entry point to the underlying structure of custom views, and the user is able to navigate through all the items and screens in a consistent and, hopefully, sensible way. As an example, a preview screenshot of one of the QEbu forms is presented inFigure 4. Further screenshots will be introduced in subsequent figures to illustrate additional details. It has been chosen to design the interface so that only a single aspect, i.e. an element, of the XML document is to be considered at a time. The metadata standard is rich in content and covers a wide range of possible applications, so an improper management of these aspects could easily lead to a messy and overcrowded interface. To avoid this possibility, for every element of the schema a dedicated form has been developed, tailored in a way to maximize the coherence of its content, while still maintaining an attractive look and feel. As a rule of thumb, the principal criteria followed while designing each view, can be summarized as follows: Whenever possible, attributes are managed via edit fields; Figure 4 One of the forms of QEbu. For range-restricted values, pickers are employed, together with additional checkboxes to handle options; Child elements come with their own form, with a few exceptions (i.e. groups); If possible, attributes/elements are grouped together in a meaningful way; Form parts are reused where possible to give consistency of composition. FIAT/IFTA World Conference 2013 in Dubai7
  • 8. Paolo Pasini Of course, given the variability of types and content, the above example might not be applicable to every item within the model, but it should be general enough to provide the generic look and feel that most forms share. On the other hand, this approach was required also to manage effectively the transaction between the forms, with the aim to completely avoid popup dialogs, and so maintain a single evolving window without detached panels scattered all over the screen. Following the same idea that is used for mobile apps, we decided to implement a custom stack of forms, or widgets, to model the transactions between elements, in which only the topmost one is visible and interactive, while the others stay alive but frozen beneath the surface, waiting to reach the top again. An example of this approach is represented in Figure 5. In order to keep navigation among forms consistent, we decided to keep the transaction model as simple as possible, as exemplified by the life cycle and flow of work representations in Figure 6 and Figure 7. The final user is allowed to navigate the data structure only in a strictly linear fashion, being forbidden to jump across the branches of the underlying tree representing the document being created of modified. Figure 5 The structure of the stackable widget solution. In this scenario, the form designed for the document's root element provides the only way to access the underlying structure of custom views and becomes the starting point for all user interactions. The application relies on a custom stack structure to keep track of the user position within the document itself, as well as to determine which view render on the user interface. Every time a form relative to a children element is required, a new form is instantiated on the fly and once fully initialized it is pushed in the aforementioned stack resulting in an update of the GUI to display the newly created layer. The exact opposite happens while ascending the tree towards the root element, which causes to 8 FIAT/IFTA World Conference 2013 in Dubai
  • 9. QEbu: an advanced graphical editor for the EbuCore Metadata Set. pop the form currently frozen beneath the topmost view at a time, restoring it and giving back its interactivity. The logic behind this behavior is defined within a custom widget, namely „StackableWidget‟, from which all the forms of the application inherit, and that handles common events that may happen during the lifetime of a specific form, such as its creation, destruction or change of visibility. Figure 6 Simplified form life-cycle. When the user chooses to Add/Edit a child element, a new form is created and becomes visible, while the parent is temporarily hidden. Then, using the Apply or Cancel button, it is possible to restore a previously frozen panel, causing the destruction of the current topmost form and the contextual release of its resources. As stated previously, when possible, the single forms have been designed to employ the widgets made available by the Qt framework directly. However, in some specific cases, custom solutions needed to be designed, due to the limitations of the available widgets; for example, in the case of long integer values for which Qt's widgets offer no support, or the peculiar characteristics of some types or attributes. Specifically, some types with limited content, such as the ElementType, were embedded in fact directly in the parent object, in order to avoid the proliferation of low content forms. Figure 7 An example of the flow of work with the evolution of the user interface. As shown in Figure 7, QEbu permits the handling of even complex situations, such as the management of parts, with ease. The specification allows the core element to include one, or more, instances of the same type as the core itself; but this is still straightforwardly manageable following the linear traversal mode implemented within the tool. In addition to this, special attention has been paid to the management of the numerous sub-elements with unlimited cardinality [0..*] (i.e. lists of unrestricted variable length). The coexistence in a given element of many of these unbounded sub-elements, often along FIAT/IFTA World Conference 2013 in Dubai9
  • 10. Paolo Pasini with other restricted ones, poses some problems in the design of a clear and userfriendly interface. Looking at this in more detail, we may identify two critical aspects related to lists. Firstly, they can quickly lead to congestion in the interface, due to the amount of information that each list element can carry and that must therefore be represented. Secondly, without specific care, their coexistence with [0..1] elements could cause minor incoherencies in the interface, which in turn may prove confusing to the user. A specific widget has been designed to deal with these problems. The surfeit of information is addressed by enabling only one list at the time for editing, avoiding the need to represent in the same view all the details carried by all the lists. The coherency between unlimited lists and single elements is then maintained by the use of the same widget in both cases, disabling the possibility of adding new elements after the first insertion, if necessary. Given all of the aspects introduced here, and to provide further guidance to the final user while traversing the structure of a document, several devices have been embedded directly within the program interface. The application's interface has been designed keeping in mind the needs of an hypothetical final user. To ensure a fast learning curve and a good usability for all the typologies of users, besides a clear graphical interface, several features have been implemented. For first-time users, a quick start tutorial is available from the menu. In few steps the interface is quickly but comprehensively explained, allowing inexperienced users to be able to fully exploit the application possibilities in short time. A sort of „breadcrumb‟ bar is available at the top of each form, tracking the current position within the schema, to provide direct feedback about one's depth within the schema. Additionally, every form contains its own piece of documentation, to provide further indication on how to fill in each field properly. This should help him distinguish between the several different, but yet sometimes very similar, elements type that exists within the schema. When available, external links to further reference schemas are displayed. An example is provided in Figure 8. Another feature of QEbu is the automatic instantaneous validation on every input field. All constraints expressed in the EBU Core schema are enforced without further effort on the user side. The idea is to prevent errors during the data entry phase giving the user a direct feedback about the information entered and their correctness. Textual fields are checked as well using regular expressions taken from the schema itself or appropriately designed by us. The only situation in which this has been purposely avoided, as stated in several best practice guidelines, is in the case of URI and URI-like fields, given the inherent complexity of their format. When possible, instead of free text boxes, restricted value pickers or drop down selection menus have been included within the forms; however, even with the depth reached by the documentation of the standard, it has been impossible to provide full cover of all these aspects. Specifically, there are several fields that refer to standardized values, but only a few of them come with a corresponding dictionary to pick entries from, referenced in the EBUCore specification. In this case, QEbu fetches data from a set of XML files, which we retrieved from the EBU website. In this specific case, given the need to load the data as fast as possible, an intermediate SAX parser is used to skim through these dictionary files, looking for just the minimum set of information required to fill in the combo boxes. In this way, it is possible to provide a response time from the application which goes unnoticed by the user, thus not detracting from the user experience. At the same time, an internal dictionary stores the fetched information for further reuse, avoiding multiple reading of the same external files while still providing a partial auto-completion feature. 10 FIAT/IFTA World Conference 2013 in Dubai
  • 11. QEbu: an advanced graphical editor for the EbuCore Metadata Set. Figure 8 At the top of the screen a breadcrumb bar reminds the user of its current position, whilst at the bottom hints are provided about the currently active field. FUTURE DEVELOPMENTS QEbu has been developed with regard to the EBUCore Metadata Set v1.3, so the limitations encountered refer to this specific version of the schema itself. The main issue encountered is related to the management of time and duration values, which often appear in the same form in several different ways, i.e. both full date and year of publication, or hour of broadcast and full date/timezone reference, which could lead to potential inconsistencies. At the same time, the specifics do not restrict properly some of these fields, allowing for instance negative values of duration. In these cases, QEbu does not enforce further constraints, as we followed the rule that “the schema is always right”; but this is an area that requires more work. Also, it would be really useful to determine a comprehensive set of values for those dictionary driven fields previously cited, in order to guide and restrict the user to just the specific set of valid values during the input phase. As stated in the introduction, this tool has been developed as an academic term project, so it misses direct feedback from people with commercial experience in this field. We strongly believe that suggestions from experienced users could lead to still better tailored forms and a more functional application overall, given the review of QEbu from a wider perspective. EBUCore is a still evolving standard, so it is natural that QEbu will evolve with it. We have done our best to make changes as simple as possible, so it should not be a difficult task to include new features, or to alter what is already available to embrace the changes introduced with newer versions of the standard itself. CONCLUSION This paper describes a GUI-based metadata editor with respect to the EbuCore Metadata Set v1.3. Its purpose is to provide a way to easily manage and create XML instances, FIAT/IFTA World Conference 2013 in Dubai11
  • 12. Paolo Pasini according to certain specifics, in a simple and coherent way, allowing the user to focus on the content and avoiding the need to worry about the structure of the documents themselves. The aim is that fast and simple creation of this kind of documentation could lead to its usage in further applications related, for example, to the management of archived content, whether this is audio, video or any other kind of media. Providing tools to make these steps easier should have a very positive effect on the whole chain of content archiving and retrieval. Because of the user-centred nature of this editor, it requires direct user feedback for its evolution and improvement. Further enhancement will thus be possible by collating responses from the content creation community relating to QEbu and this class of metadata editing tools in general. QEbu is released as free software under terms of the GPL 3 license. Source code is available, along with compiled Windows binaries, at the project repository (QEbu, 2012). REFERENCES EBU Tech (October 2011). EBU Tech 3293 - EBU Core Metadata Set (EBUCore), ver 1.3. W3C (2004-2012).XML Schema reference documentation. Retrieved July 2013 from http://www.w3.org/standards/techs/xmlschema Qt Project (2005-2013).Qt GUI framework reference documentation. Retrieved July 2013 from http://qt-project.org/doc/qt-4.8/ QEbu (June 2012). Project repository. Retrieved June 2012 from https://github.com/Nazardo/Qebu Levra M., Pasini P., Patti D., Pessiva G., Ricossa S., (12 June 2013). EBU TechReview - QEbu: An Advanced Graphical Editor for the EBUCore Metadata Set. Retrieved July 2013 from http://tech.ebu.ch/docs/techreview/tech-rev_2013-Q3_QEbu.pdf 12 FIAT/IFTA World Conference 2013 in Dubai