Some time ago we (in Mendeley) were wondering about the exact meaning
of standard variables and document types. Is there some more
documentation beside in
If I remember correctly we found specially confusing
"archive_location" and “archive-place”.
What’s confusing about these: the very concept (“location” vs.
“place”?), or the inconsistent punctuation (underscore vs. hyphen)?
The schema itself has the sorts of descriptions we probably ought to
add to the spec document.
## the location within an archival collection (for example, box
## the place of the archive
Also, when “post” and “entry” should be used?
Let me back up and explain something about typing in CSL, and in
bibliographic systems generally.
Traditionally, bibliographic systems have been heavily type-oriented.
I, however, have long believed that this is a big mistake, because the
real world of citation data in the early 21st century encompasses a
diverse range of sources that aren’t well captured by traditional
For example, I want to store/annotate/cite an article published on the
New York Times website. In some systems, you’d call this a “newspaper
article”. But often those system won’t let you store the article URL
along with the article metadata. So you then need to use instead a
type called “webpage” or some such. It is, after all, also a web page
(it’s available on the web). So now I can store and cite my URL. But
things become awkward because I have odd fields like “website.” Well,
yes, I access the document on the “New York Times” website at a base
URI of http://nytimes.com.
In CSL, I originally had no macro system. What I did instead is to
introduce a fallback type system. So, all style required templates for
three base types: “book”, “article” and “chapter.” These were concrete
names for what were in effect abstract generic types.
I then added more specific types by hyphenating the names. So
"article-newspaper" is an example of this, where the convention is
simply saying “this has an article fallback” but is a kind of subclass
You see similar ideas at play in “post” vs. “post-blog” and "entry"
So there’s some legacy there, but it’s sensible enough.
What been a problem all along, however, is that we have no clear,
stated, explanation of when and how we define a type. They’ve mostly
been added ad hoc. I’d personally like to change this.
Why some variables has underscore and other dash? Or
"editortranslator" doesn’t have underscore either dash.
I don’t know; I think Frank added that and I missed it at the time
(maybe the dash / underscore / two words together is for compatibility
with CSL 0.8?)
Not explicitly, but obviously it’s easier.
I hope that these was the questions that we had. I don’t have the
notes from work here.
An example or comment next to some variables and types would help. I
could try to write something but I’m sure that would not be very
Take a look at the schema and see if you agree moving those comments
into the spec would help.