Overview
ZineCore2 uses controlled vocabularies to ensure consistency and enable better discovery across zine collections. These vocabularies provide standardized terms for describing various aspects of zines and the ecosystem around them.
Available Vocabularies
Subjects
Topical subjects based on the Anchor Archive Zine Subject Thesaurus. Covers politics, activism, identity, community, arts, culture, and everyday life topics.
Used in: ZineCore2 subject field (required)
Genres
Form and type classifications for zines, including perzine, fanzine, art zine, comic zine, and more.
Used in: ZineCore2 genre field (required)
Rights Statements
Copyright and licensing terms including Creative Commons licenses, anti-copyright, copyleft, and standard rights declarations.
Used in: ZineCore2 rights field (required)
Agent Roles
Contributor roles such as creator, editor, illustrator, photographer, publisher, and more.
Used in: AgentCore2 roles field
Repository Kinds
Types of repositories that hold zines.
Used in: RepoCore2 kind field
| Code | Label |
|---|---|
| library | Library |
| academic-library | Academic library |
| public-library | Public library |
| archive | Archive |
| museum | Museum |
| zine-library | Zine library |
| community-archive | Community archive |
| infoshop | Infoshop / social center |
| distro | Distro |
| bookstore | Bookstore |
| festival | Festival / event |
| other | Other |
| unknown | Unknown |
Holding Access Statuses
Access levels for holdings.
Used in: HoldingCore2 access_status field
| Code | Label |
|---|---|
| reading-room | Reading room only |
| loanable | Loanable |
| closed-stack | Closed stack |
| digital-only | Digital only |
| in-processing | In processing |
| restricted | Restricted |
| other | Other |
| unknown | Unknown |
Holding Distro Statuses
Duplication and distribution permissions.
Used in: HoldingCore2 distro_status field
| Code | Label |
|---|---|
| can-duplicate | Can duplicate and distribute |
| can-digitize | Can digitize |
| no-duplication | Do not duplicate |
| ask-first | Ask creator before duplicating |
| other | Other |
| unknown | Unknown |
Agent Kinds
Types of agents in the zine ecosystem.
Used in: AgentCore2 kind field
| Code | Label |
|---|---|
| person | Person |
| collective | Collective |
| organization | Organization |
| other | Other |
| unknown | Unknown |
Design Principles
The vocabularies are designed to be:
- Focused: 150-300 well-chosen terms, not exhaustive taxonomies
- Community-derived: Based on established zine library practice and cataloging resources
- Stable: Terms that enable consistent discovery across collections
- Flexible: Support for both controlled terms and free-text where appropriate
Standard Codes
Language Codes
Use ISO 639-1 or 639-2 codes (e.g., en, es, fr) for the language field.
Country Codes
Use ISO 3166-1 alpha-2 codes (e.g., US, CA, MX) for location information.
Accessing Vocabularies
Multiple Standard Formats
All vocabularies are published in four standard formats:
- JSON - Simple, implementation-agnostic format
- JSON-LD - Linked Data format with SKOS vocabulary
- SKOS/Turtle - W3C standard for controlled vocabularies (RDF)
- CSV - Human-readable tabular format
HTTP API with Content Negotiation
Access vocabularies via our API using HTTP Accept headers:
# JSON (default)
curl https://zinecore.org/api/vocabularies/subjects
# SKOS/Turtle
curl -H "Accept: text/turtle" https://zinecore.org/api/vocabularies/genres
# CSV
curl -H "Accept: text/csv" https://zinecore.org/api/vocabularies/rights_statements
# JSON-LD
curl -H "Accept: application/ld+json" https://zinecore.org/api/vocabularies/agent_roles
List all vocabularies:
curl https://zinecore.org/api/vocabularies
Stable URIs
Each vocabulary term has a stable, resolvable URI:
- https://zinecore.org/vocab/subjects/activism
- https://zinecore.org/vocab/genres/perzine
- https://zinecore.org/vocab/rights/cc-by
These URIs resolve via content negotiation to HTML, Turtle, or JSON-LD.
Programming Examples
JavaScript:
const subjects = await fetch('https://zinecore.org/api/vocabularies/subjects')
.then(r => r.json());
Python:
import requests
subjects = requests.get('https://zinecore.org/api/vocabularies/subjects').json()
Available Endpoints
| Vocabulary | API Endpoint |
|---|---|
| Subjects | /api/vocabularies/subjects |
| Genres | /api/vocabularies/genres |
| Rights | /api/vocabularies/rights_statements |
| Agent Roles | /api/vocabularies/agent_roles |
| Agent Kinds | /api/vocabularies/agent_kinds |
| Repository Kinds | /api/vocabularies/repo_kinds |
| Holding Access | /api/vocabularies/holding_access_statuses |
| Holding Distro | /api/vocabularies/holding_distro_statuses |
Implementation
Vocabularies are integrated into the specification:
- Schema validation: Integrated into JSON Schemas
- DC TAP constraints: Defined in profile TAP tables
- Multi-format publication: CSV, JSON, JSON-LD, SKOS/Turtle
- Standards compliance: SKOS (W3C), Dublin Core (DCMI)
Sources
The controlled vocabularies are derived from:
- Anchor Archive Zine Subject Thesaurus
- Barnard Zine Library cataloging practice
- UNC Factsheet Five collection
- Scholars' Lab zine metadata research