locators, labels

I’m posting some of these messages both to get feedback and for the
archives, and because the process of writing them helps me clarify …

I mentioned yesterday some funkiness with MLA and locators. Here’s what
I’m talking about:

         <volume prefix=" ">
           <text term-name="volume-short" suffix=". "/>
           <number/>
         </volume>
         <issue prefix=", ">
           <text term-name="number-short" suffix=". "/>
           <number/>
         </issue>
         <pages prefix=", ">
           <text term-name="pages-short" suffix=". "/>
           <number/>
         </pages>

OK, so it works. Nothing really problematic about it.

But I still wonder if it wouldn’t be better to allow default:

<locator>
    <label form="short"/>
    <number/>
  </locator>

… where label is then understood as relating to a text node. So if
you have a volume number, then processor looks up "volume-short"
variable.

What this would mean for MLA is you could just do:

         <volume prefix=" "/>
         <issue prefix=", ">
           <text term-name="number-short" suffix=". "/>
           <number/>
         </issue>
         <pages prefix=", "/>

Issue would need an override because of the issue/number thing.

This kind of gets at an edge case that I had earlier accounted for, and
that is citation point locators that are not pages. I have some cases
where I use paragraph or line numbers, for example, which is why when
you have a citation config like …

<author/>
<date/>
<locator/>

… then captures that (rather than using, say, “pages”).

The trick is how to deal with those non-page locator labels. The issue
is similar when styles say “print the medium when other than text.”

In the earlier versions of CSL, this was easy. You just had a term
called “paragraph” and the processor would know “OK, since the term is
there, I should print it.” Terms that were not present would not print.
This was also the convention for dealing with media and genres.

But that changes with the localization approach.

Perhaps it’s enough to have the default config above, and then for
people to override a label, just do:

… ?

Bruce