In the interest of simplicity, and with a view to possible data
exchange strategies, it seems to me that applications should adopt a
one-to-one mapping between their own native fields and CSL variables,
within any given item type. There are a couple of spots (described
below) where Zotero currently uses one-to-many or many-to-one
mappings, and I’m wondering how hairy it would be to get Zotero to
move to a pattern of uniform one-to-one mappings for Z-to-CSL
assignments (again, within each item type).
I’m thinking that this is something that would benefit CSL, as well,
by assuring that styles will be truly portable between different
systems that use CSL for rendering.
Here are the two problem cases:****
“place” -> event-place and publisher-place
The “place” field in Zotero maps to both event-place and
publisher-place in CSL. In style design, the dual assignment means
that a style for use with Zotero must use only one of these variables.
I’m not sure what Bibo does with these two “places”, but if CSL needs
to discriminate between them, I assume that Bibo and Zotero should do.
(If Bibo has only “place”, and CSL doesn’t need to discriminate them,
then perhaps they should be collapsed into a single variable in a
future CSL release.)
“series” and “seriesTitle” to collection-title
The story behind this one is is rather complicated, but the short
recommendation is that “series” and “seriesTitle” be merged into one
variable on Zotero-side (with a non-rendering variable to hold
overflow from entries where both are present). First, here’s a bit of
history:
Both “series” and “seriesTitle” were introduced into the DB schema
four years ago, back in the Scholar days, with svn #476. At that
time, CSL rendered only “seriesTitle”:
https://www.zotero.org/trac/browser/extension/trunk/schema.sql?rev=476
https://www.zotero.org/trac/browser/extension/trunk/chrome/chromeFiles/content/scholar/xpcom/cite.js?rev=474
A year later, after the Zotero launch, “series” was adopted as a
fallback for “seriesTitle”, and that remains the case today:
The fallback is significant for the journalArticle (article-journal)
item type, which accepts both values in the UI:
http://gsl-nagoya-u.net/http/pub/csl-fields/journalArticle.html
The mappings picture is complicated, with the assignment varying
between item types – and with Zotero “book” (which uses CSL book)
mapping collection-title from “series”, and Zotero “computerProgram”
(which also uses CSL book) mapping the same variable from
"seriesTitle". It’s kinda hard to follow.
The full list of assignments is as follows:
series
book (book)
bookSection (chapter)
dictionaryEntry (chapter)
encyclopediaArticle (chapter)
journalArticle (article-journal)
seriesTitle
audioRecording (song)
computerProgram (book)
- journalArticle (article-journal)
map (map)
podcast (song)
report (report)
videoRecording (motion_picture)
It seems to me that using a single variable on Zotero-side (one of
"series" or “seriesTitle”, but not both) would make things much
simpler.
Frank