HoldingCore2
Overview
HoldingCore2 is a Dublin Core–based application profile for describing specific holdings (physical or digital copies) of zines held by repositories. It connects ZineCore2 bibliographic records to RepoCore2 repository records with local inventory details.
HoldingCore2:
- Distinguishes between the work (ZineCore2) and the copy (HoldingCore2).
- Tracks location, call numbers, access status, circulation rules, and condition.
- Supports both physical and digital holdings.
- Enables multi-repository union catalogs (multiple holdings per zine).
The HoldingCore2 profile is defined using DC Tabular Application Profiles (DC TAP) for machine readability and targets JSON and JSON-LD as primary exchange formats.
Resource Type
HoldingCore2 describes instances of the conceptual resource type Holding:
- Class: zine-holding:Holding
- Typical instances: a physical copy of a zine at a library, a digital scan in an archive, inventory records at a distro
Each holding record represents one or more copies of a specific zine at a specific repository. A zine may have multiple holding records (one per repository, or multiple per repository for different locations/conditions).
Work vs. Copy (FRBR Model)
HoldingCore2 follows the FRBR (Functional Requirements for Bibliographic Records) model:
- Work (ZineCore2) — The abstract bibliographic entity (Mutate Zine #3)
- Item (HoldingCore2) — The specific physical or digital copy held by a repository
This separation enables:
- Shared cataloging: Many repositories reference the same ZineCore2 record
- Local details: Each repository adds its own holdings information
- Union catalogs: "Which libraries hold this zine?"
- Circulation: Track location and access for specific copies
Element Set
This profile uses:
- Dublin Core Terms (http://purl.org/dc/terms/) for descriptions.
- A HoldingCore2 namespace (https://zinecore.org/v2/holding#) for holding-specific properties.
HoldingCore2 defines one primary shape:
- holdingShape – description of a holding (copy or copies) at a repository.
HoldingCore2 Shape: holdingShape
The table below summarizes the properties used for holdingShape. Detailed semantics and examples follow.
| ID | Label | DC Mapping | Required | Repeatable | Notes |
|---|---|---|---|---|---|
| id | Local ID | local:id | yes | no | Internal, stable identifier |
| repository_id | Repository ID | local:repositoryId | yes | no | RepoCore2 ID of holding repository |
| zine_id | Zine ID | local:zineId | yes | no | ZineCore2 ID of described zine |
| call_number | Call Number | local:callNumber | no | no | Local call number or shelfmark |
| location | Location | local:location | no | no | Shelf location or sub-collection |
| access_status | Access Status | local:accessStatus | no | no | Reading room only, Loanable, etc. |
| condition | Condition | local:condition | no | no | Physical condition note |
| copy_count | Copy Count | local:copyCount | no | no | Number of copies this record represents |
| barcode | Barcode | local:barcode | no | no | ILS barcode or item identifier |
| digital_available | Digital Available | local:digitalAvailable | no | no | Boolean: digital version available? |
| digital_url | Digital URL | local:digitalUrl | no | no | URL to digital version |
| distro_status | Distro Status | local:distroStatus | no | no | Duplication/digitization permissions |
| notes | Notes | dcterms:description | no | yes | Additional holding-specific notes |
Cardinality and Constraints (Narrative)
- Required properties (minimal record): id, repository_id, zine_id.
- id: Internal, stable identifier (e.g., holding_ucb_mutate_3_copy1).
- repository_id: MUST reference a valid RepoCore2 id.
- zine_id: MUST reference a valid ZineCore2 id.
- Call numbers and location:
- call_number is the local classification number (e.g., PS3551.R34 M88, ZINE-FEM-2024-03).
- location describes physical placement (e.g., "Zine Room", "Main Stacks - 3rd Floor", "Special Collections").
- At least one of call_number or location is RECOMMENDED for physical holdings.
- Access status:
- access_status SHOULD use Holding Access Status vocabulary.
- Values include: reading-room-only, loanable, reference, restricted, digital-only, unavailable.
- See Holding Access Status vocabulary.
- Condition:
- condition is free text describing physical state (e.g., "Excellent", "Minor edge wear", "Water damage to back cover").
- SHOULD follow institutional condition assessment standards if available.
- Copy count:
- copy_count indicates how many physical copies this holding record represents.
- Default is 1 if not specified.
- Use separate holding records for copies with different conditions or locations.
- Digital holdings:
- digital_available: true indicates a digital version exists.
- digital_url provides the access URL (may be restricted/authenticated).
- Digital-only holdings (no physical copy) should set access_status: "digital-only".
- Distro status:
- distro_status describes duplication/digitization permissions.
- SHOULD use Holding Distro Status vocabulary.
- Values include: can-duplicate, can-digitize, no-duplication, rights-holder-approval-required, public-domain.
- See Holding Distro Status vocabulary.
Alignment with Standards
BIBFRAME
HoldingCore2 maps to BIBFRAME Item model:
- HoldingCore2 → bf:Item
- zine_id → bf:itemOf (work)
- repository_id → bf:heldBy (organization)
- call_number → bf:shelfMark
MARC Holdings
HoldingCore2 aligns with MARC holdings records (MFHD):
- call_number → MARC 852 $h$i
- location → MARC 852 $b$c
- barcode → MARC 876 $p
- copy_count → MARC 863 $a
Use Cases
Use Case 1: Library Cataloging Physical Holdings
A university library holds 2 copies of a zine in different locations:
// Holding 1: Circulating copy
{
"id": "holding_ucb_mutate_3_circ",
"repository_id": "repo_ucb_library",
"zine_id": "zine_mutate_3_1st",
"call_number": "ZINE PS3551.R34 M88",
"location": "Main Stacks - 3rd Floor",
"access_status": "loanable",
"condition": "Excellent",
"copy_count": 1,
"barcode": "31175123456789",
"distro_status": "can-digitize"
}
// Holding 2: Special Collections copy
{
"id": "holding_ucb_mutate_3_spec",
"repository_id": "repo_ucb_library",
"zine_id": "zine_mutate_3_1st",
"call_number": "SPEC-COLL ZINE M88",
"location": "Special Collections - Zine Archive",
"access_status": "reading-room-only",
"condition": "Excellent - archival preservation",
"copy_count": 1,
"distro_status": "can-digitize"
}
Use Case 2: Distro Inventory Management
A feminist distro tracks in-stock zines:
{
"id": "holding_ladyfest_mutate_3",
"repository_id": "repo_ladyfest_distro",
"zine_id": "zine_mutate_3_1st",
"location": "Bin 7 - Reproductive Rights",
"access_status": "for-sale",
"condition": "New",
"copy_count": 15,
"distro_status": "can-duplicate",
"notes": ["Restock when < 5 copies", "Creator approved photocopying"]
}
Use Case 3: Digital Archive
An archive provides digital access to scanned zines:
{
"id": "holding_barnard_mutate_3_digital",
"repository_id": "repo_barnard_zine_archive",
"zine_id": "zine_mutate_3_1st",
"access_status": "digital-only",
"digital_available": true,
"digital_url": "https://digitalarchive.barnard.edu/zines/mutate-3",
"distro_status": "can-digitize",
"notes": ["Scanned with creator permission", "Available for download under CC BY-NC-SA"]
}
Use Case 4: Personal Collection Tracking
An individual tracks their personal zine collection:
{
"id": "holding_jane_personal_mutate_3",
"repository_id": "repo_jane_personal_collection",
"zine_id": "zine_mutate_3_1st",
"location": "Bookshelf 2 - Feminist Zines",
"condition": "Good - minor cover wear",
"copy_count": 1,
"notes": ["Acquired at Ladyfest 2024", "Signed by author"]
}
Multiple Holdings Per Zine
A single zine may have many holding records across different repositories:
ZineCore2: "Mutate Zine #3"
├─ HoldingCore2 @ UC Berkeley Library (loanable)
├─ HoldingCore2 @ UC Berkeley Library (special collections)
├─ HoldingCore2 @ Barnard Zine Archive (digital)
├─ HoldingCore2 @ Ladyfest Distro (for sale)
└─ HoldingCore2 @ Jane's Personal Collection
This enables union catalog queries:
- "Which repositories hold Mutate Zine #3?"
- "Where can I borrow this zine?"
- "Is there a digital version available?"
Relationship to Other Profiles
HoldingCore2 requires both ZineCore2 and RepoCore2:
RepoCore2 (repo_ucb_library)
↑ repository_id
HoldingCore2 (holding_ucb_mutate_3)
↑ zine_id
ZineCore2 (zine_mutate_3_1st)
Important: You cannot create a HoldingCore2 record without valid zine_id and repository_id references.
Circulation and Access Control
Libraries can use HoldingCore2 to track circulation rules:
| access_status | Meaning | Typical Use |
|---|---|---|
| loanable | Can be checked out | General circulation |
| reading-room-only | Must be used on-site | Special collections, rare items |
| reference | Cannot leave library | Reference materials |
| restricted | Requires special permission | Sensitive content, fragile items |
| digital-only | No physical copy available | Digital archives |
| for-sale | Available for purchase | Distros, zine shops |
| unavailable | Temporarily unavailable | On loan, in processing, lost |
See Also
- ZineCore2 Profile — Bibliographic records that holdings describe
- RepoCore2 Profile — Repositories that hold copies
- Downloads — Download HoldingCore2 JSON Schema and TypeScript types