BIBFRAME

Bibliographic Framework Initiative (Library of Congress)

The Library of Congress > BIBFRAME > Model & Vocabulary > BIBFRAME Profiles: Introduction and Specification (Draft — 5 May 2014)

This document introduces and defines BIBFRAME Profiles, and describes how they are created, maintained and used. It gives an overview of the purpose of BIBFRAME Profiles, describes how they can be used to support unique community's descriptive practices, and provides specific examples of how profiles can be constructed.

Status of this Document

  • Draft for public review (5 May 2014)
  • Please send general comments about this document to the listserv bibframe@loc.gov or via email to bfcomments@loc.gov.
  • To the extent possible under law, the Library of Congress has waived all copyright and related or neighboring rights to this work.

1. Introduction

BIBFRAME is the result of the Bibliographic Framework Initiative. It is a framework or metamodel for discovery and exchange of library and other memory organization information using Web technology, publicly or privately. The BIBFRAME metamodel is designed to be lightweight, flexible and able to accommodate the declarative needs of both existing (RDA, DACS, VRA, etc..) and yet-to-be-developed community vocabularies. To best accomodate these communities the BIBFRAME RDF Schema is intentionally underspecified in terms of constraints such as domain and range. This same flexibility comes at a cost; without a way of constraining these vocabularies, authoring tools, for example, are unable to provide guidance to content authors for specific vocabularies and derived models. BIBFRAME Profiles provide such supplementary descriptions.

A BIBFRAME Profile is a document, or set of documents, that puts a Profile (e.g. local cataloging practices) into a broader context of functional requirements, domain models, guidelines on syntax and usage, and possibly data formats.

This BIBFRAME Profile document describes an information model and reference serialization to support a means for identifying and describing structural constraints. A Profile defines a means in which a resource can be constrained to enumerate the the properties that may be used to describe it, and the ways the property values surrogate may be given.

Note: The concept of a value surrogate is derived from DCMI, and represents a separation between the objects expressed to exemplify statement patterns and actual, real-world values that might be used in practice. These are not related to database theory surrogate keys, nor Unicode encoding surrogates.

A BIBFRAME Profile is primarily a means for an application, e.g. cataloging tool, to guide a cataloger in the creation or modification of a BIBFRAME record. But such Profiles can also be used in other ways such as a formal representation of the constraints associated with a content description standard (e.g. RDA, DACS, etc.) or agreed upon representation for interoperability.

Note: The notion of a BIBFRAME Record here conforms to one or more RDF assertions collected to satisfy a particular usage scenario, and should not be thought of in terms of files or documents.

A BIBFRAME Profile does not address the following:

  • Human-readable documentation and / or cataloging rules.
  • Definition of vocabulary terms.
  • Version management and / or governance of vocabulary terms.

A BIBFRAME Profile contains the formal syntactic constraints only, and will need to be combined with human-readable information, semantic expression, usage guidelines, etc. in order fully useful by a community. However, the design of the BIBFRAME Profile information model is intended to facilitate the merging of BIBFRAME information and external information of the above kinds. Therefore, apart from the specifications outlined in this document, BIBFRAME Profiles are owned and maintained by their community and are independent from BIBFRAME as a whole. This independence is key to the ability to support multiple community needs.

Back to Top

2. Basic Structure

A BIBFRAME Profile is defined by a set of "resources templates," each of which is further defined by an array of "property templates," used to describe the possible metadata structures in a conforming record. "Value Constraints" can be applied to properties and are defined as a means to define or constrain the permissible values associated with properties associated with property templates.

While templates are used to express structures, constraints are used to limit those structures. It is important to note that the constraints defined by BIBFRAME Profiles do not replace or override the semantic constraints defined by such standards as RDF Schema and OWL, but rather reflect a more narrowly focused local cataloging practice or community patterns of use.

The following is a breakdown of the particular characteristics associated with the Profile and the corresponsing Resource, Property and Value Constraint templates.

2.1. Profile

The following properties are assocated with a BIBFRAME Profile structure which are designated by the "Profile" object or array.

Identifier
Name id
Summary Unique identifier associated with the profile
Value Text
Title
Name title
Summary Textual title associated with the profile
Value Text
Description
Name description
Summary Textual description associated with the profile
Value Text
Date
Name date
Summary Date associated with the profile
Value Text
Contact
Name contact
Summary Contact information associated with the profile
Value Text
Remark
Name remark
Summary Comment or guiding statement intended to be presented as supplementary information in user display.
Value Text
Resource Templates
Name resourceTemplates
Summary An array representing one or more Resource Templates (see section 2.2 below).
Value Array

Example

{
  "Profile": {
       "id": "bfp:Monograph",
       "title": "Monograph",
       "description": "An example monograph profile reflecting the cataloging practices of 
                       example public library",
       "date": "2013-05-01",
       "contact": "Example Public Library cataloging help desk, info@examplelib.org",
       "resourceTemplates": [
             { ... }
       ]
    }
}

Figure 2.1: BIBFRAME Profile.

Back to Top

2.2. Resource Template

A Resource Template construct describes one of the various resources (Works, Instances, etc.) associated with a given Profile.

Identifier
Name id
Summary Identifier associated with a resource template.
Value Text
Default None
Resrouce Identifier
Name resourceURI
Summary URI of the RDF resource associated with the resource template.
Value URI
Default None
Resource Label
Name resourceLabel
Summary Localized label associated with the resource.
Value Text
Default None
Property Templates
Name propertyTemplates
Summary An array representing one or more Property Templates (see section 2.3 below)
Value Array
Remark
Name contact
Summary Contact information associated with the profile
Value Text
Remark
Name remark
Summary Comment or guiding statement intended to be presented as supplementary information in user display. A common use for this is to notify a user of code lists or schemata associated with the expected value of this resource.
Value Text

Examples

...
"resourceTemplate": [
    {
       "id": "bfp:Work:Book",
       "resourceLabel": "Book",
       "resourceURI": "http://bibframe.org/vocab/Text",
       "propertyTemplates": [
             { ... }
       ]
    }
...

Figure 2.2a: Resource template for a "Book" which relates it to the semantics of BIBFRAME's Book definition

Note: Strings such as "bfp:Work:Book" in this document are not meant to be qualified names (QNames) in the XML namespaces sense, as also used for RDF serializations. They are just a convenient convention for expressing identifier strings, with no special meanings for the colons.
...
"resourceTemplate": [
    {
       "id": "bfp:MediaCategory",
       "resourceLabel": "Media Category",
       "resourceURI": "http://bibframe.org/vocab/mediaCategory",
       "remark": "Values derived from http://id.loc.gov/vocabulary/mediaTypes or
                                      http://rdvocab.info/termList/RDAMediaType"
    }
...

Figure 2.2b: Resource template which has no properties, and has a value space derived from a one of two enumeratied lists.

Back to Top

2.3. Property Template

A Property Template construct describes one of the various properties associated with a particular resource.

Identifier
Name propertyURI
Summary URI of the RDF property being described.
Value URI
Default None
Property Label
Name propertyLabel
Summary Preferred, human readable label associated with this property.
Value Text
Default None
Mandatory
Name mandatory
Summary Indication that the property is mandatory.
Value "true" or "false"
Default false
Repeatable
Name repeatable
Summary Indication that the property is repeatable.
Value "true" or "false"
Default true
Type
Name type
Summary Type or value (literal / resource) that is allowed by this property.
Value Text or URI
Default literal
Value Constraint
Name valueConstraint
Summary Constraint associated with the value (see sections 2.4 and 2.5 below).
Value Sub-description
Remark
Name remark
Summary Comment or guiding statement intended to be presented as supplementary information in user display.
Value Text

Examples

...
      "propertyTemplate": [
         { ... },
         {
              "propertyURI": "http://bibframe.org/vocab/titleStatement",
              "propertyLabel": "Title",
              "mandatory": "true",
              "type": "literal"
         },
         { ... }
      ]
...

Figure 2.3a: A mandatory property whose value is a literal string.

...
      "propertyTemplate": [
         { ... },
         {
              "propertyURI": "http://bibframe.org/vocab/subject",
              "propertyLabel": "Subject",
              "type": "resource",
              "valueConstraint": {
              ...
              }
         },
         { ... }
      ]
...

Figure 2.3b: An optional property whose value is a resource.

Back to Top

2.4. Value Constraint

A Value Constraint construct describes an expectations placed on the value of a property. The following are used for specifying expectations on literal values.

Language
Name valueLanguage
Summary Language specified for a literal.
Value Text
Default None
Language URI
Name languageURI
Summary URI associated with the language of the literal.
Value URI
Default None
Language Label
Name languageLabel
Summary Preferred, human readable label associated with the language of the literal.
Value Sub-description
Default None
Datatype
Name valueDataType
Summary Description specifying a datatype for a literal.
Value Sub-description
Default None
Value Template Reference(s)
Name valueTemplateRefs
Summary An array of one or more resource template identifiers (see section 2.2 above) of the resource templates that define the expected value.
Value URI
Default None
Use Values From
Name useValuesFrom
Summary An array of identifiers that identify value lists from which acceptable values should come. Scheme URIs are expected, but differing communities may develop differing solutions.
Value URI
Default None
Editable
Name editable
Summary Whether the value provided for the property is meant to be modified by a cataloguer. If not, the specified default value is in effect fixed.
Value URI
Default None
Remark
Name remark
Summary Comment or guiding statement intended to be presented as supplementary information in user display.
Value Text

Examples

...
     "propertyTemplates": [
         { ... },
         {
              "propertyURI": "http://bibframe.org/vocab/subject",
              "propertyLabel": "Subject",
              "type": "resource",
              "valueConstraint": {
                   "valueTemplateRefs": [ "bfp:Agent:Person",
                                          "bfp:Agent:Organization",
                                          "bfp:Authority:Place"
                   ]
              }
         },
         { ... }
     ]
...

Figure 2.4a: An additional expectation on the BIBFRAME subject property that its value be a Person, Place or Organization.

...
     "propertyTemplates": [
         { ... },
         {
              "propertyURI": "http://bibframe.org/vocab/carrierCategory",
              "propertyLabel": "Carrier Category",
              "type": "resource",
              "valueConstraint": {
                   "remark": "The fixed value of this property is of type bfp:CarrierCategory",
                   "editable": "false",
                   "defaultURI": "http://id.loc.gov/vocabulary/carriers/cr",
              }
         },
         { ... }
     ]
...

Figure 2.4b: An expression of a property with the expectation that its value be a resource, fixed at the given default value, which is of the given value type.

Back to Top

2.5. Value DataType

A Value DataType construct describes a data type expectation on a literal value.

DataType ID
Name dataTypeURI
Summary URI associated with the DataType
Value URI
Default None
DataType Label
Name dataTypeLabel
Summary Preferred, human readable label associated with the DataType.
Value Text
Default None
DataType Label Hint
Name dataTypeLabelHint
Summary Short, human readable label primarily for display purposes.
Value Text
Default None
Remark
Name remark
Summary Comment or guiding statement intended to be presented as supplementary information in user display.
Value Text

Example

...
      "propertyTemplates": [
         { ... },
         {
              "propertyURI": "http://bibframe.org/vocab/vra/beginDate",
              "propertyLabel": "Begin Date",
              "type": "literal",
              "valueConstraint": {
                   "valueDataType": {
                       "dataTypeURI": "http://bibframe.org/vocab/proposed/ISO8601",
                       "dataTypeLabel": "ISO 8601",
                       "dataTypeLabelHint": "ISO"
                   }
              }
         },
         { ... }
      ]
...

Figure 2.5: This example expresses that a date property is expected to have a literal conforming to a variation on the ISO 8601 date standard.

Back to Top

3. Validation

Note: This section is very much a draft at present. Validation will be more seriously considered at a following stage.

In order to examine whether a particular set of instance data matches a particular profile, the process of validation is defined as follows:

  • Binding of descriptions to resource templates: Each description is bound to a Resource Template by evaluating the Resource Constraint of each Resource Template against the described resource. Each description must be bound to exactly one Resource Template.
  • Binding of statements to property templates: Each statement, of each description, is bound to a Property Template in the corresponding Resource Template by evaluating the Property Constraint. Each statement must be bound to exactly one Property Template.
  • Evaluating datatyping constraints: Now that all metadata in the description set has been bound to a template, all constraints can be verified.

Back to Top

4. Serialization

The detailed grammar for a BIBFRAME Profile is defined in subsequent sections, using a variant of Backaus-Naur Form (BNF). For simplicity and consistency sake, an JSON serialization will be used in this document.

Note: We're considering a Turtle serialization as an alternative as it may be easier to understand and process by this community. Feedback on this point would be appreciated.

Back to Top

5. Usage Scenarios

The following section outlines a set of templating patterns that reflect common usage scenarios.

5.1. Constraining the resource

The following BIBFRAME Profile matches descriptions with a BIBFRAME Person resource.

{
  "Profile": {
      "id": "profile:bf:Agents",
      "title": "BIBFRAME Agents",
      "resourceTemplates": [
          {
		        "id": "profile:bf:Agent",
				"resourceURI": "http://bibframe.org/vocab/Agent",
             "resourceLabel": "Agent",
             "propertyTemplates": [
                 {
                    "propertyURI": "http://bibframe.org/vocab/hasAuthority",
                    "propertyLabel": "Lookup",
                    "type": "resource",
                    "valueConstraint": {
                        "repeatable": "false",
                        "usesValuesFrom": [
                             "http://id.loc.gov/authorities/names",
                        ]
                    }
                 },
                 {
                    "propertyURI": "http://bibframe.org/vocab/authorizedAccessPoint",
                    "propertyLabel": "Authorized access point",
                    "type": "literal",
                 }
              ]
           }
       ]
   } 
}

Figure 5.1: BIBFRAME Profile matching descriptions with a BIBFRAME Person resource.

Back to Top

5.2.Constraining the property

The following BIBFRAME Profile adds a mandatory foaf:name property to the previous example.

{
  "Profile": {
      "id": "profile:bf:Agents",
      "title": "BIBFRAME Agents",
      "resourceTemplates": [
          {
		        "id": "profile:bf:Agent",
				"resourceURI": "http://bibframe.org/vocab/Agent",
             "resourceLabel": "Agent",
             "propertyTemplates": [
                 {
                    "propertyURI": "http://bibframe.org/vocab/hasAuthority",
                    "propertyLabel": "Lookup",
                    "type": "resource",
                    "valueConstraint": {
                        "repeatable": "false",
                        "usesValuesFrom": [
                             "http://id.loc.gov/authorities/names"
                        ]
                    }
                 },
                 {
                    "propertyURI": "http://bibframe.org/vocab/authorizedAccessPoint",
                    "propertyLabel": "Authorized access point",
                    "type": "literal"
                 }
                 {
                    "propertyURI": "http://xmlns.com/foaf/0.1/name",
                    "propertyLabel": "Name",
                    "mandatory": "true",
                    "type": "literal"
                 }
              ]
           }
       ]
   } 
}

Figure 5.2: Addition of a mandatory foaf:name property to the previous example.

Back to Top

5.3.Constraining the value (Resource)

The following BIBFRAME Profile expresses an expectation that the value be one of several possible resources.

...
      "propertyTemplates": [
         { ... },
         {
              "propertyURI": "http://bibframe.org/vocab/subject",
              "propertyLabel": "Subject",
              "type": "resource",
              "valueConstraint": {
                   "valueTemplateRefs": [ "bfp:Agent:Person",
                                          "bfp:Agent:Organization",
                                          "bfp:Authority:Place"										
	                  ]
              }
         },
         { ... }
      ]
...

Figure 5.3: A BIBFRAME Profile expressing an expectation that the value be one of several possible resources.

5.4.Constraining the value (DataType)

The following BIBFRAME Profile expresses an expectation that the value be a literal with a particular data type (in this case ISO 8601 date).

...
      "propertyTemplates": [
         { ... },
         {
              "propertyURI": "http://bibframe.org/vocab/beginDate",
              "propertyLabel": "Begin Date",
              "type": "literal",
              "valueConstraint": {
                   "valueDataType": {
                        "dataTypeURI": "http://bibframe.org/vocab/proposed/ISO8601",
                        "dataTypeLabel": "ISO 8601",
                        "dataTypeLabelHint": "ISO"										
	                  }
              }
         },
         { ... }
      ]
...

Figure 5.4: A BIBFRAME Profile expresses an expectation that the value be a literal with a particular data type (ISO 8601 date).

Back to Top

5.5. Considerations

BIBFRAME Profiles do not require any particular level of expectations or constraints. Communities can deploy profiles using strict or relaxed mechanisms according to their needs. Overly strict constraints can reduce flexibility in applying and evolving vocabularies. Overly lax expectations can reduce levels of interoperability.

It is up to each community to measure this tradeoff as needed. BIBFRAME Profiles do not override or replace the semantic constraints defined by RDF Schema or OWL (Web Ontology Language), but rather provide a means for a community to define the set of classes and properties that it requires.

Back to Top

6. Examples

The following sections provide examples of how communities of practice might use BIBFRAME Profile to support various requirements.

6.1. Default BIBFRAME Profile for simple editing interface.

The following is an example of a default BIBFRAME Profile for simple editing interface. Human readable labels for the display are extracted from the RDF schema associated with the class identifiers.

{
  "Profile": {
       "id": "bfp:Monograph:Book",
       "title": "Monograph -- Book",
       "description": "An example profile reflecting the cataloging practices of 
                       example public library",
       "date": "2014-05-01",
       "contact": "Example Public Library cataloging help desk, info@examplelib.org",
       "resourceTemplates": [
          {
             "id": "bfp:Work:Book",
             "resourceLabel": "Book",
             "resourceURI": "http://bibframe.org/vocab/Text",
             "propertyTemplates": [
                 {
                    "propertyURI": "http://bibframe.org/vocab/title",
                    "propertyLabel": "Title",
                    "type": "literal"
                 },
                 {
                    "propertyURI": "http://bibframe.org/vocab/subject",
                    "propertyLabel": "Subject",
                    "type": "resource",
                    "valueConstraint": {
                        "valueTemplateRefs": [ "bfp:Agent:Person",
                                               "bfp:Agent:Organization",
                                               "bfp:Authority:Place",											
                                               "bfp:Authority:ClassificationEntity",
                                               "bfp:Authority:Topic"  ]
                       }
                 },
                 {
                    "propertyURI": "http://id.loc.gov/vocabulary/relators/aut",
                    "propertyLabel": "Author",
                    "type": "resource",
                    "repeatable": "true",
                    "valueConstraint": {
                        "valueTemplateRefs": [ "bfp:Agent:Person",
                                               "bfp:Agent:Organization",
                                               "bfp:Agent:Meeting"  ]
                    }
                 }
             ]
         }
      ]
   }
}

Figure 6.1: Default BIBFRAME Profile

Back to Top

6.2. RDA as a BIBFRAME Profile

The following image reflects at a conceptual level how BIBFRAME Profiles may be used to express high level RDA's notion of Work, Expression, Instance and Manifestation as BIBFRAME classes.

Back to Top

6.3. VRA as a BIBFRAME Profile

The following example fragment reflects VRA projected as BIBFRAME Profile. Additional catalog-friendly labels have been added to the resources and properties defined as a way of expressing VRA in a cataloging interface.

{
  "Profile": {
       "id": "bfp:VRA",
       "title": "VRA BIBFRAME Profile",
       "description": "The following profile is a draft attempt at reflecting VRA core semantics
in the BIBFRAME / RDA model", "date": "2014-10-31", "contact": "Eric Miller, em@zepheira.com", "resourceTemplates": [ { "id": "bfp:work", "resourceLabel": "Work", "resourceURI": "http://bibframe.org/vocab/Work", "propertyTemplates": [ { "propertyURI": "http://bibframe.org/vocab/title", "propertyLabel": "Title" }, { "propertyURI": "http://bibframe.org/vocab/alternativeTitle", "propertyLabel": "Alternative Title" }, { "propertyURI": "http://id.loc.gov/vocabulary/relators/arc", "propertyLabel": "A:Architect", "repeatable": "true", "type": "resource", "valueConstraint": { "valueTemplateRefs": [ "bfp:ULAN:Agent" ] } }, { "propertyURI": "http://id.loc.gov/vocabulary/relators/art", "propertyLabel": "A:Painter", "repeatable": "true", "type": "resource", "valueConstraint": { "valueTemplateRefs": [ "bfp:ULAN:Agent" ] } }, { "propertyURI": "http://id.loc.gov/vocabulary/relators/scl", "propertyLabel": "A:Carver", "repeatable": "true", "type": "resource", "valueConstraint": { "valueTemplateRefs": [ "bfp:ULAN:Agent" ] } }, { "propertyURI": "http://bibframe.org/vocabulary/vra/culturalContext", "propertyLabel": "Language", "repeatable": "true", "type": "resource", "valueConstraint": { "valueTemplateRefs": [ "bp:language" ] } }, { "propertyURI": "http://bibframe.org/vocabulary/vra/beginDate", "propertyLabel": "Begin Date", "type": "literal", "valueConstraint": { "valueDataType": { "resourceURI": "http://bibframe.org/vocab/proposed/ISO8601", "valueLabel": "ISO 8601", "valueLabelHint": "ISO" } } }, { "propertyURI": "http://bibframe.org/vocabulary/vra/consecratedDate", "propertyLabel": "Consecrated Date", "repeatable": "literal", "valueConstraint": { "valueDataType": { "resourceURI": "http://bibframe.org/vocab/proposed/ISO8601", "valueLabel": "ISO 8601", "valueLabelHint": "ISO" } } }, { "propertyURI": "http://bibframe.org/vocab/description", "propertyLabel": "Description", "type": "literal" }, { "propertyURI": "http://bibframe.org/vocab/vra/inscription", "propertyLabel": "Inscription", "type": "literal" }, { "propertyURI": "http://bibframe.org/vocab/vra/location", "propertyLabel": "Location", "repeatable": "true", "type": "resource", "valueConstraint": { "valueTemplateRefs": ["bfp:TGN:Place"] } }, { "propertyURI": "http://bibframe.org/vocab/vra/material", "propertyLabel": "Material", "repeatable": "true", "type": "resource", "valueConstraint": { "valueTemplateRefs": ["bfp:AAT:Authority"] } }, { "propertyURI": "http://bibframe.org/vocab/vra/measurement", "propertyLabel": "Measurement", "type": "literal" }, { "propertyURI": "http://bibframe.org/vocab/relatedTo", "propertyLabel": "Relation", "repeatable": "true", "type": "resource", "valueConstraint": { "valueTemplateRefs": ["bf:work"] } }, { "propertyURI": "http://bibframe.org/vocab/vra/rights", "propertyLabel": "Rights", "type": "literal" }, { "propertyURI": "http://bibframe.org/vocab/vra/source", "propertyLabel": "Source", "repeatable": "true", "type": "resource", "valueConstraint": { "valueTemplateRefs": ["bfp:WebResource"] } }, { "propertyURI": "http://bibframe.org/vocab/vra/stateEdition", "propertyLabel": "State Edition" }, { "propertyURI": "http://bibframe.org/vocab/vra/stylePeriod", "propertyLabel": "Style / Period", "repeatable": "true", "type": "resource", "valueConstraint": { "valueTemplateRefs": ["bfp:AAT:Period"] } }, { "propertyURI": "http://bibframe.org/vocab/subject", "propertyLabel": "Subject", "repeatable": "true", "type": "resource", "valueConstraint": { "valueTemplateRefs": ["LCSAF:Topic"] } }, { "propertyURI": "http://bibframe.org/vocab/vra/technique", "propertyLabel": "Technique", "repeatable": "true", "type": "resource", "valueConstraint": { "valueTemplateRefs": ["bfp:AAT:Technique"] } }, { "propertyURI": "http://bibframe.org/vocab/vra/testref", "propertyLabel": "Reference" }, { "propertyURI": "http://bibframe.org/vocab/vra/workType", "propertyLabel": "Work Type", "repeatable": "true", "type": "resource", "valueConstraint": { "valueTemplateRefs": ["bfp:AAT:WorkType"] } } ] }, { "id": "bfp:depicts", "resourceLabel": "Image", "resourceURI": "http://bibframe.org/vocab/Image", "propertyTemplates": [ { "propertyURI": "http://bibframe.org/vocab/width", "propertyLabel": "Width", "type": "literal", }, { "propertyURI": "http://bibframe.org/vocab/height", "propertyLabel": "Height", "type": "literal", } ] }, { "id": "ULAN:Agent", "resourceLabel": "Agent", "resourceURI": "http://bibframe.org/vocab/rda/Agent", "propertyTemplates": [ { "propertyURI": "http://bibframe.org/vocab/label", "propertyLabel": "Label", "type": "literal" } ] }, { "id": "bfp:AAT:Authority", "resourceLabel": "Authority", "resourceURI": "http://bibframe.org/vocab/rda/Authority", "propertyTemplates": [ { "propertyURI": "http://bibframe.org/vocab/label", "propertyLabel": "Label", "type": "literal" } ] }, { "id": "bfp:AAT:Period", "resourceLabel": "Period", "resourceURI": "http://bibframe.org/vocab/rda/Period", "propertyTemplates": [ { "propertyURI": "http://bibframe.org/vocab/label", "propertyLabel": "Label", "type": "literal" } ] }, { "id": "bfp:AAT:Technique", "resourceLabel": "Technique", "resourceURI": "http://bibframe.org/vocab/rda/Technique", "propertyTemplates": [ { "propertyURI": "http://bibframe.org/vocab/label", "propertyLabel": "Label", "type": "literal" } ] }, { "id": "bfp:AAT:WorkType", "resourceLabel": "Type of Work", "resourceURI": "http://bibframe.org/vocab/rda/WorkType", "propertyTemplates": [ { "propertyURI": "http://bibframe.org/vocab/label", "propertyLabel": "Label", "type": "literal" } ] }, { "id": "bfp:TGN:Place", "resourceLabel": "Place", "resourceURI": "http://bibframe.org/vocab/rda/Place", "propertyTemplates": [ { "propertyURI": "http://bibframe.org/vocab/label", "propertyLabel": "Label", "type": "literal" } ] }, { "id": "bp:language", "resourceURI": "http://bibframe.org/vocab/LanguageEntity", "resourceLabel": "Language", "propertyTemplates": [ { "mandatory": "true", "propertyURI": "http://bibframe.org/vocab/label", "propertyLabel": "Label", "type": "literal" } ] } ] } }

Figure 6.3: VRA as a BIBFRAME Profile.

Back to Top

8. Detailed Grammar of Profile

The syntax descriptions in this section use the Extended Backus-Naur Form notation to describe the essential BIBFRAME Profile syntax elements. The EBNF here is condensed for human readability. The requirement that the property and type names in end-tags exactly match the names in the corresponding start-tags is implied by the XML rules. All syntactic flexibilities of JSON are also implicitly included; e.g. whitespace rules, quoting using either single quote (') or double quote (&quote;), character escaping, case sensitivity, and language tagging.

Profile ::= id | title | description | date | contact | remark | resourceTemplates* 
resourceTemplates ::= id | resourceURI | resourceLabel | remark | propertyTemplates* 
propertyTemplates ::= propertyURI | propertyLabel | mandatory? | repeatable? | type |
                      valueConstraint | remark 
valueContraint ::= valueLanguage | languageURI | languageLabel | valueDataType | valueTemplateRefs |
                      editable | defaultURI | remark 
valueDataType ::= dataTypeURI | dataTypeLabel | dataTypeLabelHint | remark 
valueTemplateRefs ::= editable | defaultURI | defaultLabel 
mandatory ::= "true" | "false" 
repeatable ::= "true" | "false" 
editable ::= "true" | "false"
id ::= URI 
resourceURI ::= URI 
propertyURI ::= URI 
languageURI ::= URI 
dataTypeURI ::= URI 
valueTemplateRefs ::= URI 
defaultURI ::= URI 
type ::= literal | resource 
literal ::= valueLanguage | langaugeURI | languageLabel | valueDataType 
resource ::= valueTemplateRefs | editable | defaultURI 

8. Implementation

To date, cataloging input tools required advance knowledge of the potential input fields and function. Implementing BIBFRAME Profiles specific to communities creates an environment that is organic and able to grow/evolve outside of the cataloging tool. As BIBFRAME Profiles contain the description, statements and constraints specific to a community, it carries the necessary descriptions for the community. The cataloging tool may be agnostic the community and simply pull in the BIBFRAME Profile needed for the cataloging exercise. By pointing at the BIBFRAME Profile, the tool is always presenting the most recent version of the BIBFRAME Profile to the user and is able to switch between BIBFRAME Profile without changing the fundamental code of the tool itself.

Back to Top

9. History and Relationship to Other Efforts

BIBFRAME Profiles were designed / based / influenced by various discussions related to how best to loosely "package" RDF vocabularies to allow for defining vocabulary profiles reflecting best practices. Many of these design decisions were based on early experience / experimentation building the OCLC CORC (Cooperative Online Resource Cataloging) toolkit, along with various discussions that resulted in early Dublin Core specifications including DCMI's "Application profiles" and "Description Set Profiles". BIBFRAME Profiles in particular mirror some of the development of the DCMI Description Set Profiles, but differs in the alignment with RDF rather than DCAM and in minimizing the contraint capability that does not create conflicts with RDF Schema and / or OWL. Various W3C discussions, along with further Zepheira implementation related to implementing RDF editing platforms have also contributed to this design.

Back to Top

10. Credits

This document was drafted by the Zepheira team of Eric Miller, Vicki Mueller, Uche Ogbuji, and Mark Baker; with additional editing by Kevin Ford, Library of Congress.

This document is a component of the Bibliographic Framework Initiative project. For more information, see www.loc.gov/bibframe.

Back to Top