I think I’ve found a little issue in the schema, illustrated by the
following test:
http://bitbucket.org/fbennett/citeproc-js/src/b9fcaeb3eea0/tests/std/humans/nameattr_EtAlSubsequentMinOnBibliographyInBibliography.txt
The CSL validates okay. After some recent code cleanup, this and
similar tests have started breaking; the option is now being ignored.
I’m pretty sure, though, that it should be breaking, and that
possibly the CSL itself should be declared invalid. That seems to be
the implicit premise of the specification description:***
et-al-subsequent-min / et-al-subsequent-use-first
Similar to et-al-min and et-al-use-first, these attributes control
et-al abbreviation, but now for subsequent cites (see Note Distance).
If these attributes are not set, the values of et-al-min /
et-al-use-first are used instead.
The schema aside, would it be possible to have the specification
amended to say that et-al-subsequent-* has no effect in the
bibliography?
Frank
Rintze – I think this was one of the changes you made. Thoughts?
I’m afraid it’s not that easy to modify the schema to make the use of
et-al-subsequent-* invalid for cs:bibliography. In CSL 1.0, name attributes
can be set at multiple levels (cs:style, cs:citation, cs:bibliography and
cs:name), and as a result can be set outside of the scope of cs:bibliography
(e.g. in macros and on cs:style). The easier solution is for CSL processors
to just ignore these attributes when rendering the bibliography. Maybe that
has to be stressed more in the spec, though it already says, “these
attributes control et-al abbreviation, but now for subsequent cites”.
Rintze
I’m afraid it’s not that easy to modify the schema to make the use of
et-al-subsequent-* invalid for cs:bibliography. In CSL 1.0, name attributes
can be set at multiple levels (cs:style, cs:citation, cs:bibliography and
cs:name), and as a result can be set outside of the scope of cs:bibliography
Ah, now that you mention it, that must be true.
(e.g. in macros and on cs:style). The easier solution is for CSL processors
to just ignore these attributes when rendering the bibliography. Maybe that
has to be stressed more in the spec, though it already says, “these
attributes control et-al abbreviation, but now for subsequent cites”.
No problem as far as the citeproc-js implementation goes; I checked in
mods to a batch of corrections to tests this morning, and they now
ignore the attributes where appropriate. Thanks for the guidance, I
think that’s it for that one.
It might be a good idea to put an explicit mention of this item into
the specification note. Although it’s obvious when you take a moment
to think it through, It’s an easy thing to miss in the rush of
implementing nodes and attributes.
I’m afraid it’s not that easy to modify the schema to make the use of
et-al-subsequent-* invalid for cs:bibliography. In CSL 1.0, name attributes
can be set at multiple levels (cs:style, cs:citation, cs:bibliography and
cs:name), and as a result can be set outside of the scope of cs:bibliography
(e.g. in macros and on cs:style).
The normal way to handle this in RNG is to create two different patterns.
Pseudo example (e.g. not validated):
foo-cite = cs:foo { attribute bar-cite { “cite” } }
foo-bib = cs:foo { attribute bar-bib { “bib” } }
Is something like that feasible here?
BruceOn Fri, Apr 23, 2010 at 1:49 AM, Rintze Zelle <@Rintze_Zelle>wrote:
IMHO, no :). It’s just a (small) price to pay for hierarchical name
attributes. Take for instance:
There is no way to check with RELAX NG whether this macro is used by
cs:citation or by cs:bibliography. Also, even if you go the extra mile and
write some Schematron rules for this purpose, it is still possible that both
cs:citation and cs:bibliography use this particular macro. You could then
flag the macro as invalid, but that would lead to (unnecessary) macro
duplication. So I think it’s best to just mention that CSL processors should
ignore the et-al-subsequent-* attributes when rendering the bibliography.
Rintze
Just in terms of language, isn’t it better to simply say that the
"position" values can only apply to citations? So it’s not so much
that the processor ignores it in the bibliography, but simply that by
definition the value for these positions in that context are always
"false" (or nil).
Bruce
Yes, that’s clearer (and more correct).
Rintze
How about:On Fri, Apr 23, 2010 at 12:37 AM, Frank Bennett <@Frank_Bennett>wrote:
et-al-subsequent-min / et-al-subsequent-use-first
Similar to et-al-min and et-al-use-first, these attributes control
et-al abbreviation, but now for subsequent cites (see Note Distance).
If these attributes are not set, the values of et-al-min /
et-al-use-first are used instead.
The schema aside, would it be possible to have the specification
amended to say that et-al-subsequent-* has no effect in the
bibliography?
et-al-subsequent-min / et-al-subsequent-use-first
By default, all cites are subject to the (optional) et-al-min and
et-al-use-first
attributes. The et-al-subsequent-min and et-al-subsequent-use-first
attributes allow divergent et-al abbreviation rules to be specified for
subsequent cites (see Note Distance). Note that these attributes don’t
affect the rendering of bibliographic entries: the only way to control the
rendering of repeating names in the bibliography is via the
subsequent-author-substitute option.
Rintze
I’d just remind you of my suggestion to explain why eta-al conditions
in general don’t apply to bibliographies; what I originally wrote:
“Just in terms of language, isn’t it better to simply say that the
"position” values can only apply to citations? So it’s not so much
that the processor ignores it in the bibliography, but simply that by
definition the value for these positions in that context are always
"false" (or nil)."
Bruce
I’d just remind you of my suggestion to explain why eta-al conditions
in general don’t apply to bibliographies; what I originally wrote:
“to explain why et-al conditions in general don’t apply to bibliographies”
this obviously should be
“to explain why et-al-subsequent conditions in general don’t apply to
bibliographies”
“Just in terms of language, isn’t it better to simply say that the
“position” values can only apply to citations? So it’s not so much
that the processor ignores it in the bibliography, but simply that by
definition the value for these positions in that context are always
“false” (or nil).”
The only objection I have here is that the reader at this point doesn’t need
to be aware of the existence of the different position values [*].
Understanding what subsequent cites are should be enough. My previous
proposal was lacking though. Another version:
et-al-subsequent-min / et-al-subsequent-use-first
The (optional) et-al-min and et-al-use-first attributes take effect for
all cites and bibliographic entries. With the et-al-subsequent-min and et-al
-subsequent-use-first attributes divergent et-al abbreviation rules can be
specified for subsequent cites (cites referencing earlier cited items).
[*] I did change the description of the position condition based on your
comment:
http://bitbucket.org/bdarcus/csl-docs/changeset/9e8d4e2dfdc7
Rintze
I’d just remind you of my suggestion to explain why eta-al conditions
in general don’t apply to bibliographies; what I originally wrote:
“to explain why et-al conditions in general don’t apply to bibliographies”
this obviously should be
“to explain why et-al-subsequent conditions in general don’t apply to
bibliographies”
Well, no. The point is that no position-based formatting features
(ibid, et al, etc.) apply for bibliographies.
“Just in terms of language, isn’t it better to simply say that the
“position” values can only apply to citations? So it’s not so much
that the processor ignores it in the bibliography, but simply that by
definition the value for these positions in that context are always
“false” (or nil).”
The only objection I have here is that the reader at this point doesn’t need
to be aware of the existence of the different position values [*].
Understanding what subsequent cites are should be enough.
But the spec is for implementors, and it helps for them (I think) to
understand the underlying logic.
My previous proposal was lacking though. Another version:
et-al-subsequent-min / et-al-subsequent-use-first
The (optional) et-al-min and et-al-use-first attributes take effect for
all cites and bibliographic entries. With the et-al-subsequent-min and
et-al-subsequent-use-first attributes divergent et-al abbreviation rules can
be specified for subsequent cites (cites referencing earlier cited items).
So anyone else have comments?
Bruce
I’d just remind you of my suggestion to explain why eta-al conditions
in general don’t apply to bibliographies; what I originally wrote:
“to explain why et-al conditions in general don’t apply to bibliographies”
this obviously should be
“to explain why et-al-subsequent conditions in general don’t apply to
bibliographies”
Well, no. The point is that no position-based formatting features
(ibid, et al, etc.) apply for bibliographies.
et-al-min and et-al-use-first are not position-based formatting
features; et-al-subsequent-min and et-al-subsequent-use-first are.
“Just in terms of language, isn’t it better to simply say that the
“position” values can only apply to citations? So it’s not so much
that the processor ignores it in the bibliography, but simply that by
definition the value for these positions in that context are always
“false” (or nil).”
As Rintze pointed out, the specification was amended in precisely
these terms, at lines 1284-1285.
The only objection I have here is that the reader at this point doesn’t need
to be aware of the existence of the different position values [*].
Understanding what subsequent cites are should be enough.
But the spec is for implementors, and it helps for them (I think) to
understand the underlying logic.
My previous proposal was lacking though. Another version:
et-al-subsequent-min / et-al-subsequent-use-first
The (optional) et-al-min and et-al-use-first attributes take effect for
all cites and bibliographic entries. With the et-al-subsequent-min and
et-al-subsequent-use-first attributes divergent et-al abbreviation rules can
be specified for subsequent cites (cites referencing earlier cited items).
So anyone else have comments?
I like this slimmed-down version. The mention of Note Distance was a
potential distraction.
Now I’m confused. It seems to me that by definition, any "et al"
related features is what I am calling a “positional” one, in the sense
that it can only take place in a context where there are multiple
occurrences (by definition only citations). How is it not?
Bruce
et-al-min and et-al-use-first are not position-based formatting
features; et-al-subsequent-min and et-al-subsequent-use-first are.
Now I’m confused. It seems to me that by definition, any “et al”
related features is what I am calling a “positional” one, in the sense
that it can only take place in a context where there are multiple
occurrences (by definition only citations). How is it not?
Et al. is used to truncate the list of authors when it exceeds a
certain length. The parameters applied can vary according to whether
the names appear in the bibliography or in a citation, and in the
latter case also according to the position of the reference containing
the names.
Most styles provide et al. parameters in both the citation and the
bibliography. For one example, see this summary of APA bibliography
requirements:
“If there is more than one author, use an ampersand (&) before the
name of the last author. If there are more than six authors, list only
the first one and use et al. for the rest.”
Frank
Argh … you’re right. I think my brain is malfunctioning in a
cold-induced haze. Sorry for the noise.
Bruce
Et al. is used to truncate the list of authors when it exceeds a
certain length.
Argh … you’re right. I think my brain is malfunctioning in a
cold-induced haze. Sorry for the noise.
The schema has achieved a kind of artificial intelligence: it’s
talking back to us.