Originally Posted to the Task Force Group BlogBy Kirk-Evan Billet, Thursday, December 11, 2014
A BIBFRAME profile specifies structural and syntactic constraints on bibliographic data in the context of a given usage pattern, such as a specific community’s resource description practices. In this way, profiles balance the intentionally under-specified nature of the BIBFRAME vocabulary with needs at the community level for greater degrees of specificity. Carried in a document or set of documents, a profile addresses functional requirements that have been identified, or any domain model that exists, for the target usage pattern.
The draft specification for BIBFRAME profiles, which to some extent parallels that for Description Set Profiles under Dublin Core, dates from May 5, 2014; as of December 2014, it was still in a public review phase. Profiles are independent of BIBFRAME itself and are envisioned as potentially shareable rather than destined for single implementation. When implemented, they should be accompanied by human-readable documentation of best practices and guidelines.
In general, the function of a profile is to leverage a particular subset of the BIBFRAME vocabulary that is central to a specific usage pattern, along with possibly bringing in parts of other vocabularies, while remaining semantically compliant with the overall model. Effectively, the profile brackets off the full complexity of the model in order to streamline end-user work in a specific context and ensure adherence to a community’s established constraints. In practice, for example, an application might be created that calls a profile or set of profiles in order to yield a cataloger interface customized for a particular workflow. In such a context, profiles might also provide a means for adding and coordinating external authority services, for targeting a particular content category of music library item, or for displaying end-user prompts in a different language. Another likely BIBFRAME profile context is that of navigation interfaces for library users. The scope of a profile might be discipline-wide or at the level of a consortium, institution, department, working language, or individual.
The structure of a profile is built up in large part by an array of resource templates, each of which specifies a resource, such as a category of library item or a class of entity to be referenced by value constraints. Property templates, in turn, specify the ways in which attributes of given resource are expressed. Finally, value constraints place limits on expected values for a given property—for example, by requiring a literal value to conform to a certain syntactic convention or by limiting values to those in a pre-selected list. Through value template references, a value constraint may call on resource templates associated with the profile as part of defining expected values for the property. Individual templates in an array specify URIs, which carry out the important function of maintaining the profile’s connection with global models.