Context
Currently, RepoCore2's kind property is defined as non-repeatable (cardinality 1):
- DC TAP:
repeatable = FALSE
- JSON Schema:
"type": "string"
- Django model:
ForeignKey (not ManyToManyField)
Problem
Some repositories serve multiple functions and may legitimately need more than one kind:
- A bookstore that also maintains an archive
- A distro that also operates as a zine library
- An infoshop that functions as both a community archive and distro
- A library with a dedicated zine library collection
Currently, creators must choose only one primary kind, which may not accurately represent hybrid organizations.
Research Questions
- Use cases: How common are multi-function repositories in the zine ecosystem?
- Modeling options:
- Make
kind repeatable (array of values)
- Add a
secondary_kind or also_functions_as property
- Use a hierarchical vocabulary (e.g.,
bookstore::with-archive)
- Keep single
kind but allow more granular values
- Interoperability: How do similar schemas handle this?
- Schema.org allows multiple
@type values
- BIBFRAME uses multiple classes
- How would this affect JSON-LD representation?
- Implementation impact:
- Changes needed to all five artifacts (DCAP, TAP, Schema, Context, Types)
- Django migration path (ForeignKey → ManyToManyField)
- API response format changes
- Backward compatibility
Examples from Importing Work
Real-world examples encountered:
- Catland Books (bookstore + occult resource space)
- McMicken FreeSpace (distro + zine library + community space)
- Black Mosquito (infoshop + distro)
- Sticky Institute (distro + event space)
Decision Points
Recommendation Needed
Should RepoCore2 kind remain singular, become repeatable, or use an alternative approach?
Context
Currently, RepoCore2's
kindproperty is defined as non-repeatable (cardinality 1):repeatable = FALSE"type": "string"ForeignKey(notManyToManyField)Problem
Some repositories serve multiple functions and may legitimately need more than one kind:
Currently, creators must choose only one primary kind, which may not accurately represent hybrid organizations.
Research Questions
kindrepeatable (array of values)secondary_kindoralso_functions_aspropertybookstore::with-archive)kindbut allow more granular values@typevaluesExamples from Importing Work
Real-world examples encountered:
Decision Points
Recommendation Needed
Should RepoCore2
kindremain singular, become repeatable, or use an alternative approach?