Background Information on the BIBFRAME Ontology Structure
The Library of Congress developed the BIBFRAME (Bibliographic Framework) ontology, a model for expressing and sharing bibliographic data in a Linked Open Data environment. It replaces the MARC format with a more web-friendly, semantic structure using RDF (Resource Description Framework), which enables data to be expressed in triples: subject-predicate-object.
In the context of Linked Data and the Semantic Web, an ontology defines a structured framework for organizing information. It includes:
- Classes (types of things)
- Properties (relationships and attributes)
- Rules about how these elements relate to each other
Official Ontology Resources
To learn the ontology and the structure as developed by the Library of Congress, see:
- BIBFRAME Ontology (RDF/HTML): https://id.loc.gov/ontologies/bibframe.html
- BIBFRAME LC Extension (BFLC): https://id.loc.gov/ontologies/bflc.html
Learn More
For more detailed information, you can explore the following resources at the Library of Congress:
- BIBFRAME Overview and Vocabulary — The Library of Congress
- BIBFRAME FAQs — Helpful explanations and comparisons to MARC
- BIBFRAME cataloging workshop — The Library of Congress
Core Concepts in BIBFRAME
Class
A class defines a group of resources with common characteristics. Key BIBFRAME classes include:
- bf:Work — A resource reflecting a conceptual essence (e.g., a novel).
- bf:Instance — A material embodiment of a Work (e.g., a specific edition).
- bf:Item — A single, physical or digital copy of an Instance.
- bf:Agent — A person, organization, or meeting associated with a resource.
- bf:Title — A title associated with a Work or Instance.
Classes are identified in the ontology by their type and by the fact that the name of the class begins with an uppercase letter.
Subclass
A subclass is a more specific type of a class, inheriting properties from another class.
All instances of the subclass are also instances of the superclass, and the relations are inherited (Superclass = the "parent" of all the subclasses).
Examples:
- bf:VariantTitle is a subclass of bf:Title, used for variants to the Title of the resource.
- bf:TransliteratedTitle is a subclass of bf:VariantTitle, used to describe a more specific type of a variant title.
Property
A property defines a relationship between resources or between a resource and a literal value.
There are two main types of properties in use within the BIBFRAME ontology:
- Object Property: Links a resource to another resource (attribute).
- Datatype Property: Links a resource to a literal value.
In BIBFRAME, properties always serve as predicates in RDF triples, defining relationships or attributes between resources. This aligns with RDF's core model of subject-predicate-object.
Properties are identified in the ontology by their type and by the fact that the name of the class begins with a lowercase letter.
Examples:
- bf:title – Connects a Work or an Instance to a bf: Title.
- bf:contribution – Links a Work to a bf: Agent who contributed to it.
- bf:identifiedBy – Associates a resource with an identifier (e.g., ISBN).
Sub-Property
A sub-property is a more specific version of another property. If a different relation is not defined, this type of relation also indicates inheritance between properties.
Examples:
- bf:accompanies is a sub-property of bf:relatedTo
- bf:replacedBy is a sub-property of bf:succeededBy (that is a sub-property of bf:relatedTo)
Used with (Domain) and Expected Value (Range)
Used With (domain): The class a property applies to.
Expected Value (range): The expected type of value (another class or a literal).
Used with and Expected Value are defined for properties.
- Datatype properties always have an expected value of “rdf-schema#Literal” as they can only receive a text input by definition.
- The "used with" and "expected value" are not mandatory. If the relation is blank or defined as “rdf-schema#Resource”, then there is no constraint on the usage of the property with different classes.
- The ontology uses the terms "domain" and "range." Alma uses the terms "used with" and "expected value" as these are more user-friendly and explain the relations between the entities more intuitively.
Example:
- The property bf:descriptionLevel is used with the class bf:AdminMetadata and has the class bf:DescriptionLevel as the expected value

