PBCore may be used in more than one way to express relations between assets such as programs within a series, chapters within an episode, stories within a program and limitless other combinations.
The simplest approach is to put higher, container-level data next to lower, derivative-level data within the main asset (at the level of element pbcoreDescriptionDocument), using attributes to clarify which is which. For example, to express programs within a series:
<pbcoreDescriptionDocument> <!-- section removed for clarity --> <pbcoreTitle titleType="Series" source="PBCore Controlled Vocabulary" version="2.0">Sample Series Title</pbcoreTitle> <pbcoreTitle titleType="Program" source="PBCore Controlled Vocabulary" version="2.0">Sample Program Title</pbcoreTitle> <!-- section removed for clarity --> </pbcoreDescriptionDocument>
Another, more extensive approach to express such relations is to put higher, container-level data within the main asset (at the level of element pbcoreDescriptionDocument) and put lower, derivative-level data within its sub-element structure “pbcorePart.” For example:
<pbcoreDescriptionDocument> <!-- section removed for clarity --> <pbcoreIdentifier source="WGBH">NATPRO_NOVA</pbcoreIdentifier> <pbcoreTitle titleType="Series" source="PBCore Controlled Vocabulary" version="2.0">NOVA</pbcoreTitle> <!-- section removed for clarity --> <pbcorePart> <!-- section removed for clarity --> <pbcoreIdentifier source="WGBH" annotation="this relates to other data about the NOVA series">NATPRO_NOVA</pbcoreIdentifier> <pbcoreIdentifier source="WGBH" ref="http://www.pbs.org/wgbh/pages/NOVA/programs/" annotation="this identifies this program in the series">NOLA78334</pbcoreIdentifier> <pbcoreTitle titleType="Program" source="WGBH" version="2011" annotation="this is the 2011/02/01 broadcast title">TU9</pbcoreTitle> <!-- section removed for clarity --> </pbcoreDescriptionDocument>