Skip to content
/ spec Public

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

License

Notifications You must be signed in to change notification settings

ZineCore2/spec

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

Profile Describes Required Fields
ZineCore2 Zines and DIY publications title, creator, subject, genre, date, language, rights
AgentCore2 Creators, contributors, publishers id, kind, display_name, public
HoldingCore2 Specific copies at repositories id, repository_id, zine_id
RepoCore2 Libraries, archives, distros id, 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/:

Vocabulary Used By
subjects ZineCore2
genres ZineCore2
rights_statements ZineCore2
agent_kinds AgentCore2
agent_roles AgentCore2
repo_kinds RepoCore2
holding_access_statuses HoldingCore2
holding_distro_statuses HoldingCore2

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

License

Stars

Watchers

Forks

Releases

No releases published

Contributors 2

  •  
  •