This project is a Java port of TECH 3293 EBU CORE METADATA SET (EBUCore) SPECIFICATION v. 1.6, including Audio Definition Model. It also include commons objects that are described within R-REC-BS.2094-0 Common definitions for the audio definition model.
The current schema version is 2015.06.30. One can find all of them at EBU' repository.
This code was generated with Java 8 XJC tool:
xjc -no-header -d "src/main/java" -catalog src/main/resources/catalog.dtd -classpath src/main/java -extension src/main/resources/ebucore.xsd -b src/main/resources/bindings.xjb
Note that ce resources files are included within this repository.
First add jebu-core library to your maven dependencies:
<dependency>
<groupId>org.ebu.metadata_schema</groupId>
<artifactId>jebu-core</artifactId>
<version>1.6.1</version>
</dependency>
Note that jebu-core depends itself on the following libraries:
Some EBUCore entities rely on jdublin-core, the Java port for Dublin Core format.
<dependency>
<groupId>org.purl.dc</groupId>
<artifactId>jdublin-core</artifactId>
<version>2002.12.12</version>
</dependency>
See the Dublin Core metadata initiative.
Let's create a sample EbuCoreMain :
import eu.mikrosimage.xdmat.ebucore.v1_5.*;
public void createSampleEbuCore() {
// Use EBU Core Object Factory
final ObjectFactory ebuCoreFactory = new ObjectFactory();
//EBUcore root
final EbuCoreMainType ebuCore = ebuCoreFactory.createEbuCoreMainType();
final CoreMetadataType ebuCoreMetaData = ebuCoreFactory.createCoreMetadataType();
ebuCore.setCoreMetadata(ebuCoreMetaData);
//... add content
// Sample : EditorialMetadata part
final PartType editorialMetadataPart = ebuCoreFactory.createPartType();
editorialMetadataPart.setPartName("EditorialMetadata");
final TitleType titleType = ebuCoreFactory.createTitleType();
titleType.setTypeLabel("ProgramTitle");
final ElementType titleElementType = ebuCoreFactory.createElementType();
titleElementType.setLang("fr");
titleElementType.setValue("Titre du pogramme");
titleType.getTitle().add(titleElementType);
editorialMetadataPart.getTitle().add(titleType);
ebuCoreMetaData.getPart().add(editorialMetadataPart);
}
Then
JAXB.marshal(new EBUCoreFactory().createSampleEbuCore(), System.out);
Will produce :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ebuCoreMainType xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:ebucore="urn:ebu:metadata-schema:ebuCore_2014">
<ebucore:coreMetadata>
<ebucore:part partName="EditorialMetadata">
<ebucore:title typeLabel="ProgramTitle">
<dc:title xml:lang="fr">Titre du pogramme</dc:title>
</ebucore:title>
</ebucore:part>
</ebucore:coreMetadata>
</ebuCoreMainType>
EBUCore has been purposefully designed as a minimum and flexible list of attributes to describe audio and video resources for a wide range of broadcasting applications including archives, exchange and production in the context of a SOA. It is also a metadata schema with well defined syntax and semantics for easier implementation. EBUCore is based on the Dublin Core to maximise interoperability with the community of Dublin Core users such as the European Digital Library 'Europeana'.
EBUCore 1.6 takes into account latest developments in the Semantic Web and Linked Open Data communities. The EBU ontology (EBUCore RDF implementation) has been updated to complement EBU's CCDM (Tech 3351) and improve mapping with other ontologies of the audiovisual sector such as Mediamap.
EBUCore 1.6 also introduces the schema of a new advanced data model for audio defined in Tech 3364.
More information on EBU metadata activities is provided on the EBU TECHNICAL website (http://tech.ebu.ch/metadata).