Skip to content

Repository files navigation

ZineCore2 Specification

Metadata specification for the Core2 family of Dublin Core application profiles for describing zines, their creators, holdings, and repositories.

The Four Profiles

ProfileDescribesRequired Fields
ZineCore2Zines and DIY publicationstitle, creator, subject, genre, date, language, rights
AgentCore2Creators, contributors, publishersid, kind, display_name, public
HoldingCore2Specific copies at repositoriesid, repository_id, zine_id
RepoCore2Libraries, archives, distrosid, name, kind, country

Repository Structure

spec/
├── docs/ # DCAP narratives (human-readable specs)
├── profiles/ # DC TAP CSV files (machine-readable profiles)
├── contexts/ # JSON-LD contexts (semantic mappings)
├── schemas/ # JSON Schemas (validation)
├── types/ # TypeScript type definitions
├── vocabularies/
│ ├── canonical/ # Canonical JSON sources (edit these)
│ └── generated/ # Auto-generated: CSV, SKOS, JSON-LD, Django fixtures
└── scripts/
└── build-vocabularies.js

Each profile has five synchronized artifacts (the "Four Pillars" + TypeScript):

  1. DCAP Narrative (docs/<profile>-profile.md)
  2. DC TAP Table (profiles/<profile>-tap.csv)
  3. JSON-LD Context (contexts/<profile>-context.jsonld)
  4. JSON Schema (schemas/<profile>.schema.json)
  5. TypeScript Types (types/<Profile>.d.ts)

Controlled Vocabularies

Eight vocabularies in vocabularies/canonical/:

VocabularyUsed By
subjectsZineCore2
genresZineCore2
rights_statementsZineCore2
agent_kindsAgentCore2
agent_rolesAgentCore2
repo_kindsRepoCore2
holding_access_statusesHoldingCore2
holding_distro_statusesHoldingCore2

Building Vocabularies

Edit canonical sources in vocabularies/canonical/*.json, then regenerate all formats:

node scripts/build-vocabularies.js

This produces CSV, SKOS/Turtle, JSON-LD, and Django fixture formats in vocabularies/generated/.

Always commit both canonical and generated files together.

Schema Validation

npx ajv-cli validate -s schemas/zinecore2.schema.json -d <your-record.json>

Namespaces

  • zine:https://zinecore.org/v2/zine#
  • zine-agent:https://zinecore.org/v2/agent#
  • zine-holding:https://zinecore.org/v2/holding#
  • zine-repo:https://zinecore.org/v2/repo#

All DC mappings use dcterms: (not legacy dc:).

Related Repositories

About

Dublin Core application profiles, JSON Schemas, JSON-LD contexts, and controlled vocabularies for describing zines, creators, holdings, and repositories

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages