# PBCore

The PBCore metadata standard (Public Broadcasting Metadata Dictionary) was created by the public broadcasting community in the United States of America for use by public broadcasters and related communities that manage audiovisual assets, including libraries, archives, independent producers, etc. PBCore is organized as a set of specified fields that can be used in database applications, and it can be used as a data model for media cataloging and asset management systems. As an XML schema, PBCore enables data exchange between media collections, systems and organizations.

## Background

Initial development funding for PBCore was provided by the Corporation for Public Broadcasting starting in 2001.
1.0 – April 2005
PBCore Version 1.0 defined 48 metadata elements which combined to describe a media asset or resource's intellectual content, creation, creators, usage, permissions, constraints, use obligations, and its form or format in the physical or digital realm.
1.1 – January 2007
PBCore Version 1.1 enhanced the binding of related metadata elements (such as Title and TitleType) into new, hierarchically-organized "Element Containers." In that arrangement, each Element Container collects and houses associated "child" Elements that are thematically related. Basically, what was a "flat" arrangement of the 48 PBCore elements became a more "nested" structure of 53 elements, arranged in 15 containers and 3 sub-containers.
1.2.1 – December 2008
PBCore version 1.2.1 was published to better accommodate the possibility that a media asset may have multiple instantiations with various technical attributes. A new container called "pbcoreEssenceTrack" contains all other new elements to express different attributes associated with multiple instantiations. PBCore v1.2.1 used 61 elements organized into 15 containers and 4 sub-containers.
1.3 – August 2010
PBCore version 1.3 added a new top-level element, a new attribute of string values, and removed the previous requirement to describe one or more instantiations of any asset. Its new element, "pbcoreAssetType," could be used to explicitly declare the asset's broad business purpose, and its new attribute "source" could help clarify the text value of an element, much like the attribute "version" has done. PBCore v1.3 used 62 elements organized into 15 containers and 4 sub-containers.
2.0 - November 2011
PBCore version 2.0 was released at the annual conference of the Association of Moving Image Archivists in November 2011. This was a major revision of the schema, with the addition of two new top-level elements:
* The ""pbcoreCollection"" element allows for wrapping any number of pbcoreDescriptionDocuments in a collection or feed for exchanging any number of asset records between systems.
* The ""pbcoreInstantiationDocument" provides a metadata container for physical or digital instantiations for which no descriptive metadata exists, which was disallowed in previous versions of PBCore.
Another significant change in PBCore 2.0 was the addition of optional attributes for many elements, including source, ref, version, annotation, startTime, endTime, and timeAnnotation. The source attribute allows for the specification of a source of subject terms and other values, while the ref attribute may contain a URI for the subject term itself. The version and annotation attributes allow for the inclusion of versioning for the value, and narrative information intended to clarify the nature of the data used in the element. The startTime, endTime, and timeAnnotation attributes allow for the inclusion of time-based metadata, for example the location in the media timeline when a subject, name, or location was relevant. A third major change to the schema was the addition of pbcorePart as an optional element of the root element pbcoreDescriptionDocument, and recursively another pbcorePart element, which allows for defining segments, stories, or episodes of a larger media work.

## Current developments

As part of the American Archive of Public Broadcasting initiative, PBCore entered a new phase of development in 2014. The American Archive team established a PBCore Advisory Subcommittee of the Association of Moving Image Archivists to reassess the schema, continue outreach to users and potential adopters, create resources for the PBCore community and improve the website.

## Content classes

The PBCore standard is built on the foundation of the Dublin Core (ISO 15836), an international standard for resource discovery, and has been reviewed, though not endorsed, by the Dublin Core Metadata Initiative Usage Board.
PBCore extends Dublin Core by adding a number of elements specific to audiovisual (AV) assets. These AV assets can be physical analog media items, or digital media objects. PBCore provides a standard for cataloging and describing media objects in three general ways:
* Intellectual Content provides descriptive metadata including Title, Subject, Description, and Genre. The Intellectual Content for the asset contains no metadata concerning the physical or digital representation of the asset.
* Intellectual Property provides metadata concerning the creator, distributor, and publisher of the AV asset, along with rights information about its use.
* Instantiation contains all technical metadata about the physical or digital representation of the AV asset. This can include format, media type, duration, file size, data rate, aspect ratio, frame rate, and many other aspects of the media object. The Instantiation metadata includes the location of the physical or digital media object, which in the case of a streaming media file can be its full URL. In PBCore there can be many Instantiations for the same AV asset, all of which share the same Intellectual Content metadata.
* Extension allows for the integration of data from other metadata schema, such as EAD and PREMIS.
PBCore provides an XSD allowing validation of PBCore XML records. PBCore XML can be used to exchange detailed metadata about media assets, and optionally the media assets themselves, among systems configured for the PBCore standard. The schema is used by organizations within the public media community as well as in archives and libraries across the world.

## Elements

Although a PBCore record potentially contains a great many elements, the only required elements are any one of the root elements, pbcoreIdentifier, and pbcoreTitle
Root Elements
* pbcoreDescriptionDocument
* pbcoreCollection
* pbcoreInstantiationDocument
Intellectual Content
* pbcoreAssetType
* pbcoreAssetDate
* pbcoreIdentifier
* pbcoreTitle
* pbcoreSubject
* pbcoreDescription
* pbcoreGenre
* pbcoreRelation
* pbcoreRelationType
* pbcoreRelationIdentifier
* pbcoreCoverage
* coverage
* coverageType
* pbcoreAudienceLevel
* pbcoreAudienceRating
* pbcoreAnnotation
Intellectual Property
* pbcoreCreator
* creator
* creatorRole
* pbcoreContributor
* contributor
* contributorRole
* pbcorePublisher
* publisher
* publisherRole
* pbcoreRightsSummary
* rightsSummary
* rightsLink
* rightsEmbedded
Extensions
* pbcoreExtension
* extensionWrap
* extensionElement
* extensionValue
* extensionAuthorityUsed
* extensionEmbedded
* pbcorePart
Instantiation
* pbcoreInstantiation
* instantiationIdentifier
* instantiationDate
* instantiationDimensions
* instantiationPhysical
* instantiationDigital
* instantiationStandard
* instantiationLocation
* instantiationMediaType
* instantiationGenerations
* instantiationFileSize
* instantiationTimeStart
* instantiationDuration
* instantiationDataRate
* instantiationColors
* instantiationTracks
* instantiationChannelConfiguration
* instantiationLanguage
* instantiationAlternativeModes
* instantiationEssenceTrack
* essenceTrackType
* essenceTrackIdentifier
* essenceTrackStandard
* essenceTrackEncoding
* essenceTrackDataRate
* essenceTrackFrameRate
* essenceTrackPlaybackSpeed
* essenceTrackSamplingRate
* essenceTrackBitDepth
* essenceTrackFrameSize
* essenceTrackAspectRatio
* essenceTrackTimeStart
* essenceTrackDuration
* essenceTrackLanguage
* essenceTrackAnnotation
* essenceTrackExtension
* instantiationRelation
* instantiationRelationType
* instantiationRelationIdentifier
* instantiationRights
* rightsSummary
* rightsLink
* rightsEmbedded
* instantiationAnnotation
* instantiationPart
* instantiationExtension