Profiles

AgentCore2

Dublin Core Application Profile for Zine Creators and Contributors

Overview

AgentCore2 is a Dublin Core–based application profile for describing agents associated with zines: people, collectives, and organizations acting as creators, contributors, publishers, distributors, and other roles.

AgentCore2:

  • Explicitly supports pseudonyms, anonymity, and privacy preferences.
  • Accommodates individual creators, collaborative collectives, and formal organizations.
  • Provides authority control for zine creators across collections.
  • Aligns with FOAF (Friend of a Friend) and Schema.org Person/Organization vocabularies.

The AgentCore2 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

AgentCore2 describes instances of the conceptual resource type Agent:

  • Class: zine-agent:Agent
  • Typical instances: individual zinesters, collaborative collectives, publishing organizations, distros, presses

Each agent receives one AgentCore2 description, regardless of how many zines they've created. This enables authority control: multiple zine records can reference a single agent record.

Element Set

This profile uses:

  • Friend of a Friend (http://xmlns.com/foaf/0.1/) for names and websites.
  • Dublin Core Terms (http://purl.org/dc/terms/) for descriptions.
  • A small AgentCore2 namespace (https://zinecore.org/v2/agent#) for zine-specific agent properties.

AgentCore2 defines one primary shape:

  • agentShape – description of an agent (person, collective, or organization).

AgentCore2 Shape: agentShape

The table below summarizes the properties used for agentShape. Detailed semantics and examples follow.

IDLabelDC/FOAF MappingRequiredRepeatableNotes
idLocal IDlocal:idyesnoInternal, stable identifier
kindKindlocal:kindyesnoAgent type: Person, Collective, Organization
display_nameDisplay Namefoaf:nameyesnoPublic name for display
legal_nameLegal Namelocal:legalNamenonoLegal or full name (may be private)
alternative_namesAlternative Names/Aliaseslocal:aliasesnoyesPseudonyms, former names, spelling variants
sort_nameSort Namelocal:sortNamenonoName for alphabetical sorting (e.g., "Smith, Jane")
pronounsPronounslocal:pronounsnoyesPreferred pronouns (e.g., she/her, they/them)
biographyBiographylocal:biographynonoBiographical statement or description
scope_noteScope Notedcterms:descriptionnoyesUsage notes or preferred citation
rolesCommon Roleslocal:rolesnoyesTypical roles (creator, editor, illustrator)
orcidORCIDlocal:orcidnonoORCID identifier URL
wikidataWikidata IDlocal:wikidataIdnonoWikidata Q-ID
other_identifiersOther Identifiersdcterms:identifiernoyesVIAF, ISNI, local authority IDs
active_datesActive Dateslocal:activeDatesnoyesDate ranges when agent was active
locationLocationlocal:locationnoyesGeographic location(s)
websiteWebsitefoaf:homepagenonoPersonal or organizational website URL
emailEmailfoaf:mboxnonoContact email address (may be private)
social_mediaSocial Medialocal:socialMedianoyesSocial media profiles
publicPubliclocal:publicyesnoWhether agent details may be shown publicly

Cardinality and Constraints (Narrative)

  • Required properties (minimal record): id, kind, display_name, public.
    • id: Internal, stable identifier (e.g., agent_judith_arcana, agent_riot_grrrl_collective).
    • kind: Must be one of: Person, Collective, Organization (from Agent Kinds vocabulary).
    • display_name: The name to display publicly (may be pseudonym).
    • public: Boolean indicating whether this agent's details may appear in public catalogs.
  • Privacy considerations:
    • legal_name is OPTIONAL and may be kept private (internal use only).
    • public: false indicates the agent prefers anonymity or privacy.
    • email and other contact info should respect privacy preferences.
    • For anonymous creators, use display_name: "Anonymous" with public: false.
  • Pseudonyms and alternative names:
    • display_name should contain the name the agent prefers to use publicly.
    • alternative_names can list other known names, pseudonyms, or spelling variants.
    • legal_name (if recorded) should only be used internally.
  • Controlled vocabularies:
    • kind MUST use Agent Kinds vocabulary: Person, Collective, Organization.
    • roles SHOULD use Agent Roles vocabulary: creator, editor, illustrator, publisher, distributor, printer, contributor, etc.
    • See Agent Kinds vocabulary and Agent Roles vocabulary.
  • Identifiers:
    • orcid SHOULD be the full URL (e.g., https://orcid.org/0000-0001-2345-6789).
    • wikidata SHOULD be the Q-ID only (e.g., Q12345678).
    • other_identifiers can include VIAF, ISNI, local authority IDs.
  • Geographic and temporal coverage:
    • location can be city, region, country, or multiple locations (repeatable).
    • active_dates describes when the agent was active (e.g., "1990-2005", "2010-present").

Alignment with Standards

FOAF (Friend of a Friend)

AgentCore2 aligns with FOAF vocabulary:

  • foaf:name (Display Name)
  • foaf:homepage (Website)
  • foaf:mbox (Email)

Schema.org

Maps to Schema.org types:

  • kind: Person → schema:Person
  • kind: Collective → schema:Organization (with creative collective properties)
  • kind: Organization → schema:Organization

BIBFRAME

Maps to BIBFRAME agent model:

  • AgentCore2 → bf:Agent
  • Supports bf:Person, bf:Organization

Privacy and Ethics

AgentCore2 is designed with privacy and respect for zine creators:

Privacy Principles

  1. Pseudonyms are primary identities — Never prioritize legal names over chosen names
  2. Anonymity is valid — Support creators who wish to remain anonymous
  3. Privacy flags matter — Respect public: false settings
  4. Contact info is sensitive — Email and social media should be optional and private by default
  5. Creator autonomy — Allow creators to control their own metadata

When cataloging agents:

  • Always use the name the creator prefers (display_name)
  • Only record legal_name if necessary and with permission
  • Set public: false for creators who prefer privacy
  • Never publish private contact information
  • For anonymous works, create an agent record with display_name: "Anonymous" and public: false

Example AgentCore2 Descriptions

Example 1: Individual Zinester with Pseudonym

{
  "id": "agent_moxie_la_punk",
  "kind": "Person",
  "display_name": "Moxie la Punk",
  "alternative_names": ["Moxie", "M. LaPunk"],
  "pronouns": ["she/her"],
  "biography": "Feminist zinester based in Seattle. Creator of Riot Grrrl zines in the 1990s.",
  "active_dates": ["1991-1998", "2015-present"],
  "location": ["Seattle, WA, USA"],
  "website": "https://moxielapunk.com",
  "orcid": "https://orcid.org/0000-0001-2345-6789",
  "wikidata": "Q87654321",
  "roles": ["creator", "editor", "illustrator"],
  "public": true
}

Example 2: Anonymous Collective

{
  "id": "agent_anonymous_feminist_collective",
  "kind": "Collective",
  "display_name": "Anonymous Feminist Collective",
  "biography": "Underground feminist collective publishing reproductive rights zines. Members prefer to remain anonymous.",
  "active_dates": ["2010-present"],
  "location": ["United States"],
  "roles": ["creator", "publisher"],
  "public": false
}

Example 3: Zine Publishing Organization

{
  "id": "agent_microcosm_publishing",
  "kind": "Organization",
  "display_name": "Microcosm Publishing",
  "legal_name": "Microcosm Publishing, LLC",
  "biography": "Independent publisher and distributor specializing in DIY culture, punk, and grassroots activism since 1996.",
  "active_dates": ["1996-present"],
  "location": ["Portland, OR, USA"],
  "website": "https://microcosmpublishing.com",
  "wikidata": "Q6842516",
  "roles": ["publisher", "distributor"],
  "public": true
}
{
  "id": "agent_zinester_jane",
  "kind": "Person",
  "display_name": "Jane Z",
  "legal_name": "Jane Marie Zinester",
  "alternative_names": ["J. Zinester", "Jane Marie"],
  "sort_name": "Zinester, Jane",
  "pronouns": ["they/them"],
  "biography": "Queer zinester focused on mental health and neurodivergence. Prefers to use pseudonym publicly.",
  "active_dates": ["2018-present"],
  "location": ["Austin, TX, USA"],
  "roles": ["creator"],
  "public": true
}

Note: In Example 4, legal_name is recorded but should only be used internally. All public-facing catalogs should display display_name: "Jane Z".

Relationship to ZineCore2

AgentCore2 records are referenced from ZineCore2 records via the creator, contributor, and publisher properties:

// ZineCore2 record
{
  "title": "Mutate Zine #3",
  "creator": ["agent_judith_arcana"],  // References AgentCore2 id
  "contributor": ["agent_moxie_la_punk"],
  "publisher": ["agent_microcosm_publishing"],
  // ... other fields
}

// AgentCore2 record
{
  "id": "agent_judith_arcana",
  "kind": "Person",
  "display_name": "Judith Arcana",
  // ... other fields
}

This enables:

  • Authority control: One agent record, many zine records
  • Browse by creator: "Show me all zines by this collective"
  • Deduplication: Consistent agent identifiers across collections
  • Privacy: Centralized privacy settings apply to all references

See Also

Copyright ©2026 ZineCore2 Contributors,