Am struggling again with the details of the CSL model. My most recent
change had gotten rid of the relation attribute and switched to a
totally flat model. I did this because it was sometimes confusing
dealing with levels/relations. For example, if you specify a year field
for a chapter, do you also require the “container” relation? Likewise
for publishers.
So I got rid of that. The awkwardness I’ve come across now is that I
end up with awkward terms like “original-publisher-name” and
"container-title-short". Likewise, because all the logic is in the
single term, there are a lot more elements in the schema.
So I’m been playing with a different approach, reflected in this:
<template name="book">
<field class="author" property="name"/>
<field property="date" form="year"/>
<field class="original" property="date" form="year"/>
<field property="title"/>
<field class="original-publisher" property="name"/>
</template>
Advantages:
- generic field element (easier to later extend, and could be used for
non-citation related templating?)
- easy to model in OO languages
- small number of properties (name, title, date, medium, etc.)
- flexible
- consistent
Disadvantages:
- maybe not as aesthetically clean?
- more difficult to model in a GUI?
Any opinions?
Sorry I keep coming back about this stuff, but the details get tricky.
Bruce