Zotero Type Mapping Reference
Purpose
This page documents how bibliography entry types are classified and mapped through the processing pipeline. It serves as a reference for:
- Content creators contributing to the Interlisp Zotero group who want to understand how their entries will be categorized
- Developers working on the bibliography processing system who need to know current type support
- Data consumers using the JSON-LD output who need to understand what schema.org types represent Interlisp bibliography entries
The mapping chain flows through three formats:
Zotero Item Type → CSL JSON Type → Schema.org @type
Each format serves a different purpose:
- Zotero Item Type: Classification used within Zotero (the source system)
- CSL JSON Type: Standardized format for citation metadata (intermediate processing format)
- Schema.org @type: Structured data markup for web search engines and semantic web consumers (output format)
A Zotero item type maps to exactly one CSL JSON type. The CSL JSON type is what the rest of the pipeline sees, and it is the value recorded as item_type in each bibliography entry’s front matter.
Type Reference Table
| Zotero Item Type | CSL Type | Schema.org @type | additionalType | genre | Notes |
|---|---|---|---|---|---|
| Journal Article | article-journal |
ScholarlyArticle |
— | — | Peer-reviewed journal articles, conference proceedings in journals |
| Magazine Article | article-magazine |
Article |
— | — | Magazine and trade publication articles |
| Newspaper Article | article |
Article |
— | — | Newspaper articles and news items |
| Book | book |
Book |
— | — | Books and monographs |
| Book Section | chapter |
Chapter |
— | — | Chapters or sections within books |
| Conference Paper | paper-conference |
ScholarlyArticle |
— | — | Papers presented at conferences (when not in proceedings) |
| Report | report |
Report |
the entry’s report type | — | Technical reports, working papers, government documents |
| Thesis | thesis |
Thesis |
— | — | Master’s theses, dissertations, doctoral theses |
| Patent | patent |
CreativeWork |
"Patent" |
— | Patents and patent applications |
| Blog Post | post-weblog |
BlogPosting |
— | — | Blog posts and web log entries |
| Webpage | webpage |
WebPage |
— | — | General web pages and websites |
| Encyclopedia Entry | entry-encyclopedia |
Article |
— | — | Encyclopedia and reference work entries |
| Film | motion_picture |
VideoObject |
— | — | Films, videos, and visual media |
personal_communication |
Message |
— | — | Personal communications, emails, letters | |
| Computer Program | software |
SoftwareSourceCode |
— | — | Software, source code repositories, applications, tools. The Type field names the programming language and maps to programmingLanguage; publisher, when present, maps to publisher. |
| Document | document |
CreativeWork |
"TechnicalDocumentation" |
the entry’s Type, if set | Technical manuals, guides, user documentation, software docs, specifications. Publisher, when present, maps to publisher. |
Document with Type Transcript |
document |
CreativeWork |
"Transcript" |
"Transcript" |
Oral history interviews, recorded interviews, media transcripts |
Document with Type Newsletter |
document |
CreativeWork |
"TechnicalDocumentation" |
"Newsletter" |
Newsletters, bulletins, and serial publications stored as documents |
| Standard | standard |
CreativeWork |
"Standard" |
— (Type → isPartOf) |
Technical standards, specifications, protocols, standards documents. The Type field names the standard’s series (isPartOf → CreativeWorkSeries); the standard number maps to an identifier. |
Legend
- Zotero Item Type: The classification used in Zotero’s item type selector
- CSL Type: The type value in CSL JSON output from Zotero API
- Schema.org @type: The
@typefield in generated JSON-LD - additionalType: Optional
additionalTypefield in JSON-LD for additional classification - genre: Optional
genrefield in JSON-LD for the entry’s genre
Type Categories and Use Cases
Publishing Types (Peer-Reviewed and Published)
These types are for published, citable research and writing:
- Journal Article (
article-journal): Peer-reviewed journal papers, conference proceedings published in journals - Magazine Article (
article-magazine): Trade magazines, popular science magazines - Newspaper Article (
article): Newspaper articles and news publications - Conference Paper (
paper-conference): Conference proceedings and papers - Book (
book): Published books and monographs - Book Section (
chapter): Chapters within books - Thesis (
thesis): Academic theses and dissertations
Technical and Professional Types
- Report (
report): Technical reports, working papers, government reports, internal documentation - Patent (
patent): Patents and patent applications - Encyclopedia Entry (
entry-encyclopedia): Reference works and encyclopedia entries - Standard (
standard): Technical standards, protocols, standardization documents
Documentary Types
- Document (
document): Broad category for technical documentation, user guides, specifications, manuals- The Zotero Type field distinguishes subcategories within this item type. For an oral-history interview — a written document recording a conversation between an interviewer and an interviewee — set the Type field to
Transcript. Its schema.org mapping isadditionalType: "Transcript"withgenre: "Transcript". - Other Type values are carried through to the Schema.org
genreproperty. For example, a document with a Type ofNewslettermaps togenre: "Newsletter".
- The Zotero Type field distinguishes subcategories within this item type. For an oral-history interview — a written document recording a conversation between an interviewer and an interviewee — set the Type field to
- Standard (
standard): The Zotero Type field names the standard’s series or designation (for example,Xerox System Integration Standard), which maps toisPartOf→CreativeWorkSeries. The entry’s@typeisCreativeWorkwithadditionalType: "Standard", and the standard number is emitted as aPropertyValueidentifier.
Digital and Media Types
- Webpage (
webpage): Web pages, online resources, digital articles - Blog Post (
post-weblog): Blog entries and web logs - Film (
motion_picture): Videos, films, recorded presentations, documentaries - Computer Program (
software): Software repositories, source code, applications, development tools. The Zotero Type field names the programming language, which maps to the Schema.orgprogrammingLanguageproperty.
Personal Communication
- Email (
personal_communication): Emails, letters, personal correspondence
For Content Creators
Choosing the Right Type
When adding an entry to the Interlisp Zotero group:
-
Select the most specific Zotero item type that matches your entry
- Use
Journal Articlefor peer-reviewed journal papers - Use
Conference Paperfor conference proceedings (not in a journal) - Use
Reportfor technical reports and internal documentation - Use
Documentonly when no other type fits (broad catch-all)
- Use
-
Fill in the Type field for the item types that use it
Document: the kind of document. UseTranscriptfor an oral-history interview.Standard: the standard’s series or designationComputer Program: the programming language
-
Verify your schema.org mapping by checking this reference table
Example: Choosing Between Report and Document
| Aspect | Report | Document |
|---|---|---|
| Best for | Published technical reports, working papers | User manuals, specifications, guides |
| Publisher info available | Usually yes | Often no |
| Formal publication | Yes, often | Rarely |
| Organization issuing | Clear (government, company, academic) | May be vague |
| Use when | Official documentation with publication date | In-house documentation, unpublished guides |
For Developers
Processing Pipeline
The bibliography processing pipeline:
- Fetches data from the Zotero API (v3) for group 2914042
- Extracts the Zotero itemType and the CSL JSON type
- Generates markdown frontmatter via
bibSplit.pl(uses the CSL type) - Generates JSON-LD via the
bibliography-json-ld.htmlpartial (maps the CSL type to schema.org) - Publishes markdown files and embedded JSON-LD to the website
The CSL JSON type is the entry’s type of record. The Zotero Type field is a separate thing: it is a generic classification field whose meaning depends on the item type, and Zotero’s CSL export maps it to the CSL genre field. It never names the entry’s type.
Current Type Handling
See layouts/_partials/bibliography-json-ld.html for the active type mappings:
{{- if eq $itemType "article-journal" -}}{{- $schemaType = "ScholarlyArticle" -}}
{{- else if eq $itemType "book" -}}{{- $schemaType = "Book" -}}
{{- else if eq $itemType "chapter" -}}{{- $schemaType = "Chapter" -}}
// ... etc
Adding New Types
To add a type:
- Add a type handler in
scripts/bibSplit.pl(the$typebranch chain, line ~146) so the pipeline emits it - Add the @type mapping in
layouts/_partials/bibliography-json-ld.html(line ~25) - Add an
additionalTypeassignment if the type needs further refinement (line ~124) - Add a test fixture under
tests/fixtures/bibliography/and register its slug intests/conftest.py - Add a test class in
tests/test_bibliography_jsonld.py - Update this reference table and
docs/bibliography-schema.md
Known Issues
See docs/bibliography-schema.md for known issues and limitations in bibliography processing.
Schema.org Vocabulary Notes
CreativeWork Hierarchy
Several types map to the generic CreativeWork in schema.org:
patent→CreativeWork(withadditionalType: "Patent")document→CreativeWork(withadditionalType: "TechnicalDocumentation")documentwith aTranscripttype →CreativeWork(withadditionalType: "Transcript")standard→CreativeWork(withadditionalType: "Standard")
This hierarchy allows search engines to understand that these are creative works while providing additional specificity through additionalType.
Why Not More Specific Types?
Schema.org has no native types for:
- Generic “documents”
- Transcripts (unless linked to media)
- Technical standards (as standalone documents)
- General software (though
SoftwareSourceCodeis specific)
Using CreativeWork with additionalType is the recommended schema.org pattern for these cases. Schema.org’s additionalType documentation permits text values “sparingly, for cases where useful information can be added without their being an appropriate schema to reference”, with the class label following the schema.org style guide.
The genre Property
Schema.org’s genre property (“Genre of the creative work”) is the natural home for an entry’s genre, and it is where the Zotero Type field is carried for Document entries. Both are used together for transcripts: additionalType states that the work is a transcript, while genre records the classification in schema.org’s first-class slot.
The Zotero Type field is generic, so its meaning depends on the item type, and so does its schema.org destination:
| Zotero item type | Type field contains | Expressed in schema.org as |
|---|---|---|
Document |
the kind of document, e.g. Transcript |
genre; additionalType is always set (TechnicalDocumentation, or Transcript) |
Standard |
the standard’s series or designation | isPartOf → CreativeWorkSeries |
Computer Program |
the programming language | programmingLanguage |
Report |
the report type | additionalType |
Thesis |
the degree type | not currently mapped |
Webpage |
the kind of site, e.g. Blog |
not currently mapped (website_type is frontmatter only) |
Troubleshooting
Entry Not Appearing with Expected Type
- Check CSL JSON output: Run
scripts/update_bibliography.shand examine the raw JSON for your entry’stypefield - Verify mapping: Check that the CSL type appears in the table above
- Check the Type field: The CSL type is authoritative. A
typevalue that looks like a genre word (for exampleTranscriptorNewsletter) rather than a CSL type means the merge-precedence defect inbib-fns.jq(semiflatten) has regressed — the Zotero Type field must never overwrite the CSL type - Report missing type: If type is in CSL JSON but not in table, file an issue
JSON-LD Validation Errors
- Use Google Structured Data Testing Tool to validate: https://search.google.com/structured-data/testing-tool
- Check schema.org for @type requirements: https://schema.org/
- Review generated HTML in browser DevTools (JSON-LD is embedded in
<script type="application/ld+json">)
References
- Zotero Item Types
- CSL JSON Schema
- Schema.org Types
- Schema.org CreativeWork
- Schema.org additionalType
- Schema.org genre
- Structured Data Best Practices
Related Documentation
- Interlisp Bibliography Intake Guide – How to recommend a new bibliography item
docs/bibliography-schema.md– Technical details of the bibliography processing system (repository source)