BIBFRAME Reference
Free reference guide: BIBFRAME Reference
About BIBFRAME Reference
The BIBFRAME Reference is a structured quick-reference guide to the Library of Congress BIBFRAME 2.0 vocabulary, organized across five categories: Work, Instance, Item, Agent/Relationship, and Conversion/Tools. Each entry provides the RDF property or class name, a concise description, and practical Turtle/RDF examples you can adapt for your own cataloging projects.
BIBFRAME (Bibliographic Framework) is the successor to MARC 21 for describing library resources as linked data. This reference covers the three core entity levels -- bf:Work for abstract intellectual content, bf:Instance for specific published manifestations, and bf:Item for individual holdings -- along with their key properties like bf:title, bf:contribution, bf:identifiedBy, bf:provisionActivity, and bf:heldBy.
Beyond the core vocabulary, this reference includes MARC-to-BIBFRAME field mappings (245->bf:Title, 100->bf:Contribution, 020->bf:Isbn), the LC BIBFRAME Editor workflow, JSON-LD serialization patterns, SPARQL query templates for retrieving BIBFRAME data, and administrative metadata properties. All content is searchable and filterable directly in your browser without any server processing.
Key Features
- Complete bf:Work properties including title, contribution, subject, classification, and content type with Turtle examples
- bf:Instance properties covering provisionActivity, identifiedBy (ISBN/DOI), extent, media/carrier type, and series statement
- bf:Item entries for heldBy, shelfMark, and enumerationAndChronology with LC vocabulary URIs
- Agent and relationship classes including bf:Person, bf:Organization, bf:Role with MARC relator codes, and related work links
- MARC 21 to BIBFRAME field mapping table showing 245, 100, 020, 260 conversions and the marc2bibframe2 XSLT tool
- JSON-LD serialization examples with @context, @type, and nested property structures for BIBFRAME data
- SPARQL query templates for retrieving works by title, date, and related instances from BIBFRAME triple stores
- Administrative metadata (bf:AdminMetadata) with creation date, source organization, and description conventions
Frequently Asked Questions
What is BIBFRAME and how does it relate to MARC 21?
BIBFRAME (Bibliographic Framework) is a linked data model developed by the Library of Congress as the successor to MARC 21 for describing bibliographic resources. While MARC uses a flat, field-based record structure, BIBFRAME models resources as interconnected RDF entities across three levels: Work (abstract creation), Instance (published form), and Item (physical copy). The LC provides the marc2bibframe2 XSLT tool for converting existing MARC records.
What are the three core BIBFRAME entity levels?
bf:Work represents the abstract intellectual or artistic creation (e.g., the novel "Moby Dick" as a concept). bf:Instance represents a specific published manifestation of a Work (e.g., the 1851 first edition by Harper & Brothers). bf:Item represents an individual copy of an Instance held by a specific institution (e.g., the copy in the Library of Congress with call number PZ7.R798).
How do I describe a book title in BIBFRAME?
Use the bf:title property pointing to a bf:Title blank node. The Title node supports bf:mainTitle for the primary title, bf:subtitle for the subtitle, and bf:partNumber or bf:partName for multipart works. For example: <work1> bf:title [ a bf:Title ; bf:mainTitle "Moby Dick" ; bf:subtitle "or, The Whale" ] .
How are identifiers like ISBN and DOI represented?
Use the bf:identifiedBy property on an Instance, pointing to a typed blank node. For ISBN: bf:identifiedBy [ a bf:Isbn ; rdf:value "978-89-123-4567-8" ]. For DOI: bf:identifiedBy [ a bf:Doi ; rdf:value "10.1234/example" ]. BIBFRAME supports many identifier types including bf:Issn, bf:Lccn, and bf:Identifier for custom schemes.
How do I map MARC fields to BIBFRAME properties?
Key mappings include: MARC 245 $a maps to bf:Title/bf:mainTitle, MARC 100 $a maps to bf:Contribution/bf:Agent, MARC 020 $a maps to bf:identifiedBy/bf:Isbn, and MARC 260 $c maps to bf:provisionActivity/bf:date. The Library of Congress provides the marc2bibframe2 XSLT transformation tool for automated batch conversion.
Can I query BIBFRAME data with SPARQL?
Yes, BIBFRAME data stored in RDF triple stores can be queried with SPARQL. A typical query uses the bf: prefix (<http://id.loc.gov/ontologies/bibframe/>) and traverses the Work-Instance-Item hierarchy. For example, you can select titles and publication dates by joining bf:Work with bf:Instance through bf:instanceOf and extracting bf:title/bf:mainTitle and bf:provisionActivity/bf:date.
What is the JSON-LD serialization format for BIBFRAME?
BIBFRAME data can be serialized as JSON-LD using the @context "http://id.loc.gov/ontologies/bibframe/" and @type to specify the entity class. Nested properties like title and subject are represented as JSON arrays of objects. This format is web-friendly and can be embedded in HTML for search engine discovery or consumed by JavaScript applications.
How are author roles expressed in BIBFRAME?
Use bf:contribution to link a Work to a bf:Contribution blank node, which contains bf:agent (pointing to a bf:Person or bf:Organization) and bf:role (using MARC relator URIs from id.loc.gov). For example, bf:role <http://id.loc.gov/vocabulary/relators/aut> for author, /edt for editor, and /trl for translator.