citation-style-language / schema

Citation Style Language schema
https://citationstyles.org/
MIT License
186 stars 61 forks source link

additional citation modes #365

Open georgd opened 4 years ago

georgd commented 4 years ago

Is your feature request related to a problem? Please describe.

Various note styles (Chicago Manual of Style, SBL, IBFD, Indigo) describe how to enter references in the text without creating a note e.g. as "remedies for excessive annotation" or for other stylistic reasons.

Lately, narrative citations have found some attention with the implementation of the new cs:intext element which will allow independent narrative 'author'-group formatting for all kinds of styles.

According to https://github.com/citation-style-language/schema/issues/141#issuecomment-637806027 — as I understand it — rendering the entire citation intext when using a note style is currently not possible.

Describe the solution you'd like Like the implemented solution for narrative citations, the solution should not hinder switching between note styles and parenthetical styles.

Probably two measures are necessary:

Describe alternatives you've considered The cs:intext element can be mis-used as a workaround together with the author-only flag, which, however, means that you can’t use combined narrative citations as they are currently in implementation. It‘s not improbable that the workaround will be exploited by one style author or the other.

Additional remark If the solution is impossible in general with CSL, not only now, this issue should serve to document it for further reference.

Examples

denismaier commented 4 years ago

Overall, I think that would be a useful addition. That's one of the things I miss from biblatex where you have the flexibility to mix note citations with in-text citations.

Just to provide some context: As I've mentioned before, biblatex's approach is different to CSL in that it defines basic/bare citation commands that are used with higher level commands that act as wrappers around the bare citation. E.g. \parencite to cite something in parentheses, \footcite for citing in footnotes, and a lot more of course. Then, \autocite calls one of the other commands depending on citation style, \smartcite acts differently depending on context (like \footcite in regular text, like \parencite in a footnote).

Like the implemented solution for narrative citations, the solution should not hinder switching between note styles and parenthetical styles.

Concerning this: That's not trivial to achieve. Let's say you switch from a note style to an in-text style, and then back. What happens with citations that were inserted as parenthetical citations? Or if you switch to a style that does not support parenthetical citations at all?

Then there might be other requirements:

georgd commented 4 years ago

Like the implemented solution for narrative citations, the solution should not hinder switching between note styles and parenthetical styles.

Concerning this: That's not trivial to achieve. Let's say you switch from a note style to an in-text style, and then back. What happens with citations that were inserted as parenthetical citations?

I don’t see an issue here: the flag that marks the citation as parenthetical (i call it is-parencite for now), could stay on and simply get ignored with any non-note style, so round-tripping will work.

Or if you switch to a style that does not support parenthetical citations at all?

[The CSL-element dedicated to parenthetical citation (I call it cs:parencite for now) would be optional and only used to override cs:citation. After second thought, this is not what you worried about?]

I think, this could be solved by an attribute to cs:style like @allows-parencite and in absence thereof the is-parencite flag is ignored.

Then there might be other requirements:

  • Often, items that should be cited in parentheses are cited in a note when they are cited for the first time, sometimes with a remark like "henceforth cited in the body of the text as ABC". That might require a fully automatic solution, not a solution where users manually choose a different citation command.
  • Which items should be cited as parenthetical citations can be an arbitrary choice depending on the subject of your paper, or it may depend on item type (e.g. items with item type classic should all appear as parenthetical citations),

As this is not only style-dependent but also depends on the paper’s matter and on the author’s or editor’s stylistic preferences, I’m a bit skeptical about attempts to automate these two requirements (except for perhaps the classic type if this were consensual).

bwiernik commented 4 years ago

In general, I think this sort of mixing of citation structures within a single document is a bad idea—it's difficult to implement and I think hostile to readers to put extended citations in multiple places. But I understand it is common in some disciplines.

For supporting this, the question is what exactly is needed. The most consistent with existing CSL style design might be to add an attribute to cs:layout to specify always-in-text; this would force the citation to render like a numeric or parenthetical citation, even in note styles. That would permit a style to specify that certain items types, for example should be rendered in-text but others in notes. One question there is would these items be expected to be in the bibliography?

Allowing this on a user-specified per-citation basis seems much more complex.

The existing cs:intext structure could be potentially be used if all of the elements of the citation are repeated inside the parentheses, but this is quite an abuse of the cs:intext structure, which is intended for narrative citations.

georgd commented 4 years ago

For supporting this, the question is what exactly is needed. The most consistent with existing CSL style design might be to add an attribute to cs:layout to specify always-in-text; this would force the citation to render like a numeric or parenthetical citation, even in note styles. That would permit a style to specify that certain items types, for example should be rendered in-text but others in notes. One question there is would these items be expected to be in the bibliography?

This surely would be a solution for part of the issue but not the whole. Chicago and English legal styles don’t restrict parenthetical citations to certain item types and it’s optional.

If it were about the classic type only, by definition, these are documents that aren’t added to the bibliography.

Allowing this on a user-specified per-citation basis seems much more complex.

I expect that. But I think, that’s the only way to really solve it.

The existing cs:intext structure could be potentially be used if all of the elements of the citation are repeated inside the parentheses, but this is quite an abuse of the cs:intext structure, which is intended for narrative citations.

Agreed. that’s very hackish and again also only half of a solution. A full solution would allow combined citation (in-text... parenthetical) as well, which wouldn’t be possible with this hack.

bdarcus commented 4 years ago

Allowing this on a user-specified per-citation basis seems much more complex.

I expect that. But I think, that’s the only way to really solve it.

I really hate these kinds of requirements, because we basically seem to be trying to automate idiosyncratic practices that were for decades done manually, and doing so by adding potentially significant complexity all around.

But ... if we were to support it, would not the other, better, option be to remove cs:intext and simply allow multiple citation elements, perhaps with a fixed set of variable options?

That was how I was originally thinking to do intext citation commands, but it would seem to apply more widely.

So perhaps there would be a distinction between citation class (in-text), type (author-date), and variant (narrative)?

And for this case, you'd have citation elements to define the note (default), and the author-date with in-text variant.

denismaier commented 4 years ago

But ... if we were to support it, would not the other, better, option be to remove cs:intext and simply allow multiple citation elements, perhaps with a fixed set of variable options?

Haha, I was just about to propose that as well.

To repeat myself: biblatex does this with multiple citation commands, but in each style, the \autocite commands serves as an alias for a different command.

If we allowed multiple cs:citation elements, we could use an attribute @command to indicate the variants.

<style>
  <citation>
    <layout>...</layout>
  </citation>
  <citation command="in-text">
    <layout>...</layout>
  </citation>
  <citation command="author-only">
    <layout>...</layout>
  </citation>
  <citation command="whatever">
    <layout>...</layout>
  </citation>
<style>
bwiernik commented 4 years ago

I really hate these kinds of requirements, because we basically seem to be trying to automate idiosyncratic practices that were for decades done manually, and doing so by adding potentially significant complexity all around.

Agreed…

bwiernik commented 4 years ago

So perhaps there would be a distinction between citation class (in-text), type (author-date), and variant (narrative)? And for this case, you'd have citation elements to define the note (default), and the author-date with in-text variant.

I'm not following how this would accommodate something like Chicago (fullnote) style, where in a narrative citation, the author would be given in text and then the rest of the normal citation (minus the author) is given in the footnote.

@denismaier Can you indent your example?

bwiernik commented 4 years ago

One other point to remember--a big part of the design of the intext system was that it permitted automatic intext support with existing items with no changes at all to the vast majority of styles.

denismaier commented 4 years ago

One other point to remember--a big part of the design of the intext system was that it permitted automatic intext support with existing items with no changes at all to the vast majority of styles.

That's a big plus, yes! We could still keep that, but nevertheless allow additional cs:citationelements.

bdarcus commented 4 years ago

So perhaps there would be a distinction between citation class (in-text), type (author-date), and variant (narrative)? And for this case, you'd have citation elements to define the note (default), and the author-date with in-text variant.

I'm not following how this would accommodate something like Chicago (fullnote) style, where in a narrative citation, the author would be given in text and then the rest of the normal citation (minus the author) is given in the footnote.

I don't understand; I think there's something wrong with the grammar in that sentence.

In any case, the main post isn't every clear, since it has no examples.

@georgd - could you please amend that post with an example? You could just take a photo of one and upload it.

denismaier commented 4 years ago

I'm not following how this would accommodate something like Chicago (fullnote) style, where in a narrative citation, the author would be given in text and then the rest of the normal citation (minus the author) is given in the footnote.

I don't understand; I think there's something wrong with the grammar in that sentence.

I think the question is if you will be able to have something like this:

Georg[^1] proposed to allow narrative citations in note styles. [^1]: Parenthetical (narrative) citations in note styles. Citation Style Language, Schema Repository, Issue 365.

That works with cs:in-text. But how will that work with multiple cs:citations elements?

bdarcus commented 4 years ago

If that's the case, I misunderstood the request.

I was assuming wanting to mix footcite and citet in the same document.

So then we can close this issue; no?

denismaier commented 4 years ago

No, don't close. We're mixing things up. This issue is exactly as you say: Can we have mix multiple citation formats in the same document. Footcite, citet, parencite, etc.

My comment should explain what Brenton was asking. I think his concern was that you won't be able to produce this example with multiple cs:citation elements:

Georg[^1] proposed to allow narrative citations in note styles. [^1]: Parenthetical (narrative) citations in note styles. Citation Style Language, Schema Repository, Issue 365.

@bwiernik Is that correct?

bwiernik commented 4 years ago

Yeah, so to elaborate a bit more:

Regular citation command in Chicago (fullnote):

There have been recent calls to allow narrative citations in note styles[^1]. [^1]: D. Georg, Parenthetical (narrative) citations in note styles. Citation Style Language, Schema Repository, Issue 365.

Narrative citation command in Chicago (fullnote):

Georg [^1] proposed to allow narrative citations in note styles. [^1]: D. Georg, Parenthetical (narrative) citations in note styles. Citation Style Language, Schema Repository, Issue 365.

The current @narrative structure does this with no changes needed to styles.

bdarcus commented 4 years ago

The current @narrative structure does this with no changes needed to styles.

Unless, like APA, author is formatted differently when intext.

Multiple citation elements would require changes for all styles to support intext, at least in this idea I was throwing out.

Does that summarize it?

bwiernik commented 4 years ago

Yeah, basically.

Once the semester starts next week, I'm planning on drafting the intext style code for APA to be sure our current system can accommodate its needs (which are basically the edge case in terms of complexity).

This current question by @georgd I'm thinking would constitute a different citation mode.

@georgd Can you give some actual in context examples of these citations?

georgd commented 4 years ago

@georgd Can you give some actual in context examples of these citations?

I amended the initial post. I haven’t found live examples in a quick search so I added some from the style guides. @denismaier could perhaps add some if necessary?

denismaier commented 4 years ago
* “If an astronaut falls into a black hole, its mass will increase, but eventually the energy equivalent of that extra mass will be returned to the universe in the form of radiation. Thus, in a sense, the astronaut will be ‘recycled’ ” (Stephen W. Hawking, _A Brief History of Time: From the Big Bang to Black Holes_ [New York: Bantam Books, 1988], 112).

This could be generated easily if we had a \parencite like command.

* In their introduction to _Democracy in America_ (University of Chicago Press, 1999), translators Harvey Mansfield and Delba Winthrop write that Tocqueville “shows that the people are sovereign, whether through the Constitution or despite it, and he warns of the tyranny of the majority” (xvii).

Yes, that seems impossible to automate. You'd need to be able to suppress authors and translators from the citation. Looks utterly complex.

I think a major difficulty we're facing here is that it's hard to find some general rules for these kind of citations. Usually, these depend not so much on general considerations, but more on the author's style, or on the content/purpose of a particular paper.

One common use case is to use parenthetical citations for frequently cited works; CMOS17 13:67 (see also 14:58):

In a work containing notes, the full citation of a source may be given in a note at first mention, with subsequent citations made parenthetically in the text. This method is especially suited to literary studies that use frequent quotations from a single source. In a study of Much Ado about Nothing, for example, the note would list the edition and include wording such as “Text references are to act, scene, and line of this edition.” A parenthetical reference to act 3, scene 4, lines 46–47, would then appear as in the example below. In references to a work of fiction, page numbers alone may be given.

“Ye light o’ love with your heels! then, if your husband have stables enough, you’ll see he shall lack no barns,” says Beatrice (3.4.46–47).

Where a number of such sources (or different editions of a single source) are used in the same work, the title (or edition) may need to be indicated in the parenthetical references; it may be advisable to devise an abbreviation for each and to include a list of the abbreviations at the beginning or end of the work

denismaier commented 4 years ago

Unless, like APA, author is formatted differently when intext.

Multiple citation elements would require changes for all styles to support intext, at least in this idea I was throwing out.

To sum up where we are now:

  1. Support for narrative citations is planned for 1.1

  2. Narrative citations are so-called compound citations, consisting of an in-text element and the rest of the citation. In many styles this means "author-only" + "(rest of the citation)". (One reason for this design were some limitations in word processors. You cannot render a footnote in a word field. So narrative citations must actually consist of two elements. They are not "Doe (2020)" but really "Doe" "(2020)". When switching to a notes style the second field can be moved entirely to the footnote. With a single field that wouldn't be possible. @fbennett @bwiernik please correct me îf I'm misrepresenting things here.)

  3. This works automatically without changes to styles unless we need a different format for the in-text part: here cs:in-text provides a way to override this. The typical case is APA: "Doe and Smith (2020)" vs "(Doe & Smith 2020)"

  4. Doing the same with multiple cs:citation commands would require a dedicated cs:citation element for narrative citations in each style. (And, switching between in-text and note styles would be more difficult for the reason given under 2.)

However, the last point does not necessarily follow from the above. We might well allow multiple cs:citation elements to define different citations commands, or modes, but nevertheless define a default cs:citation element, and a derived command/mode from the default.

E.g., for a note style,

The main problem I see is: How will users select these different modes in different applications? That's so much a problem in systems like org or pandoc, but with Zotero/Word that's much more complex. The GUI needs to know somehow which commands are available, so least we have to define a set of allowed modes/commands.

bdarcus commented 4 years ago

To me, my main concern now is we don't add cs:intext and then later find we need/want a more general solution.

denismaier commented 4 years ago

To me, my main concern now is we don't add cs:intext and then later find we need/want a more general solution.

Should that be: "To me, my main concern now is we do add cs:intext and then later find we need/want a more general solution." ?

bdarcus commented 4 years ago

No; I'm not saying don't add cs:intext now.

I'm saying I don't want to add it now, and then for some future release realize we should have adopted a more general solution.

Why I raise the point.

denismaier commented 4 years ago

I'm saying I don't want to add it now, and then for some future release realize we should have adopted a more general solution.

That's how I've understood your comment.

I'd really be in favour of a more general/extensible solution. That's why I bring those biblatex examples all the time... But: being able to have that feature now without too many costs in terms of style updates sounds also quite attractive. The problem is, of course, that this might just increase technical debt. Introducing a more general solution will then only be more difficult in the future, unless start again from a blank slate.

denismaier commented 4 years ago

@bdarcus do you have an idea how such a general solution could look like?

bwiernik commented 4 years ago

Regular and narrative citations really do cover the vast vast majority of citation cases. I don't anticipate deciding that this solution doesn't work.

The types of citation Georg brings up here are very rare. In my opinion, they are similar to "op cit"--an outdated typographic convention that should just go away.

Sebastian made a comment a few months ago that I think is right. To paraphrase--CSL has generally aimed to handle most styles, but has not tried to handle every niche case (e.g., every rule in the Chicago manual) the same way that BibLaTeX has. That design choice has been beneficial for usability. If someone really wants to have many different citation formats within a document, they can use BibLaTeX.

bdarcus commented 4 years ago

@bdarcus do you have an idea how such a general solution could look like?

Not specifically, but generally it would be a more general element name, and the variant indicated with an attribute.

That would preserve the logic of intext, but allow extension later if needed.

I'm sympathetic to @bwiernik's view here though also.

On this:

If someone really wants to have many different citation formats within a document, they can use BibLaTeX.

I definitely have always believed that usability trumps flexibility as a core CSL design priority.

But BibLaTeX has the same problem that BibTeX has; it's tied to one document format, which is optimized these days for producing PDF documents.

But that's also not really our problem. We do what we can within the confines of CSL design priorities and ecosystem constraints.

bwiernik commented 4 years ago

Thinking about this more, I actually think we already have the makings of a general system.

We have four citation commands:

  1. standard
  2. suppress-author
  3. author-only
  4. narrative

narrative-mode is defined to be cs:intext (with a default for styles that don't have one), followed by some other stuff.

Put that way, a citation system is defined as a mode + a cs:element to support it + processor instructions.

If we did later decide to support other citation modes, they can be added in a similar way. I don't think they would fundamentally change the requirements of the narrative mode, however.

On the topic of narrative citations, now that we have a general rule to suppress repeated elements in a citation, we can probably simplify the definition of the narrative mode define this narrative-mode behavior more simply:

Render cs:intext (or an author-only mode citation if the style lacks a cs:intext element), followed by a regular citation. Treat this as a single citation for the purposes of suppressing repeated elements. For note styles, the cs:intext portion of the citation appears in the body of the document; the remaining citation appears in a note.

That would allow pretty much all of the flexibility in defining narrative-mode citations we could ever need.

georgd commented 4 years ago

Regular and narrative citations really do cover the vast vast majority of citation cases. I don't anticipate deciding that this solution doesn't work.

The types of citation Georg brings up here are very rare. In my opinion, they are similar to "op cit"--an outdated typographic convention that should just go away.

Well, isn’t the entire note style thingy an outdated typographic convention that should go away? ;)

I disagree, though. This type of citation is indeed not that much used but in some disciplines it is quite common in certain situations.

If we did later decide to support other citation modes, they can be added in a similar way. I don't think they would fundamentally change the requirements of the narrative mode, however.

I think so too, and actually I don’t even think an additional element is necessary. Looking at all the examples I can reach, the parenthetical citation is identical to the note citation – except for the parenthesis/bracket-swapping in Chicago and probably some German styles.

I'd only allow parenthetical citations with note styles that explicitly mention them in their guides. This could be flagged with an attribute @has-parenthetical to cs:style. This attribute is only valid when cs:style[@class="note"].

The parenthetical-mode for note styles would be an additional mode, the attribute that flags it can stay in the csl-json data even when changing styles because it would simply be ignored with any style that doesn’t have cs:style[@has-parenthetical="true"]. This mode only affects positioning the citation in text in parenthesis instead of the note. Any other behaviour isn’t touched and it can be combined with narrative-mode as well.

Do I have a too simplistic view of it all?

bwiernik commented 4 years ago

Well, isn’t the entire note style thingy an outdated typographic convention that should go away? ;)

No, I'd actually say there is a fairly big push to return to note styles with the increase in online publishing.

bdarcus commented 4 years ago

I think foot and margin (other electronic innovations, like hover and display) notes are good practices to keep.

I'm not a fan of endnotes in printed documents as a reader though. Those should go away ;-)

georgd commented 4 years ago

Well, isn’t the entire note style thingy an outdated typographic convention that should go away? ;)

No, I'd actually say there is a fairly big push to return to note styles with the increase in online publishing.

I think foot and margin (other electronic innovations, like hover and display) notes are good practices to keep.

I'm not a fan of endnotes in printed documents as a reader though. Those should go away ;-)

That was an ironic remark of mine, also having in mind what profs told me around the beginning of my studies twenty years ago. I agree with both of you :-)

denismaier commented 4 years ago

We have four citation commands:

  1. standard
  2. suppress-author
  3. author-only
  4. narrative

Will be "author-only" be available on the user side? Currently it isn't.

Also, we already have kind of "nocite" mode, right?

narrative-mode is defined to be cs:intext (with a default for styles that don't have one), followed by some other stuff.

Put that way, a citation system is defined as a mode + a cs:element to support it + processor instructions.

If we did later decide to support other citation modes, they can be added in a similar way. I don't think they would fundamentally change the requirements of the narrative mode, however.

That's probably correct. We could already add a couple of modes quite easily:

All these could simply be derived from the current modes and the new narrative mode. Question is if it suffices to have that in the specification, or if we want to add that to the styles:

<citation>
  <layout>...</layout>
</citation>
<citation mode="narrative">
  <layout>
    <text mode="author-only"/>
    <text mode="default"/>
  </layout>
<citation mode="bare">
  <layout>
    <text mode="default" strip-parentheses="true"/>
  </layout>
</citation>

The advantage of such an approach might be that you can define modes on a per-style basis. But if it comes down to a couple of standard modes that will most likely be available in styles, we can also just define them upfront.

denismaier commented 3 years ago

Just want to get back to this.

@jgm has added improved support for citations in footnotes with note citation styles in a recent pandoc release. (for some background see pandoc-discuss)

This here:

[^1]: Blabla Bla. The argument has been made by @doe and @smith. But there are also conflicting opinions.

This will render as:

[^1]: Blabla Bla. The argument has been made by Doe, A Book and Smith, "A journal article". But there are also conflicting opinions.

So, this uses pandoc's author-in-text citations for citations without affixes. Citeproc-js currently just uses a regular citation to produce the same output. Maybe we should codify the expected behaviour of the existing citation modes in these citations, and/or add new modes for theses situations.

P.S.: @georgd maybe we should change to title of this issue to something more general (e.g. "additional citation modes").

bwiernik commented 3 years ago

@denismaier To make discussion easier, how about you open a new issue with a complete proposal?

This thread is really long and meandering, so easier to start with a fresh proposal I think.

bdarcus commented 2 years ago

@denismaier To make discussion easier, how about you open a new issue with a complete proposal?

Just to confirm, @denismaier, you did not do this; correct?

maybe we should change to title of this issue to something more general (e.g. "additional citation modes").

Assuming the answer is above is yes, then yes. When looking for this, I couldn't find it.

Or indeed create a new thread that somehow concludes this.

denismaier commented 2 years ago

No, I didn't do it. We should perhaps resume this when we start working on the next version.

bdarcus commented 2 years ago

OK, I added the 1.1 milestone to this, so we don't lose track of it.

I'm not sure we want to include cs:intext without settling this question.

In the meantime, I'll also change the title, per your suggestion.

bwiernik commented 2 years ago

You mean cs:intext right?

After 2 years, I don't remember the details of the discussion, but by current question without reviewing everything here is, what can't be accomplished already by inserting a citation for these types of items in intext mode?

bdarcus commented 2 years ago

You mean cs:intext right?

Yes; edited to correct the mistake!

what can't be accomplished already by inserting a citation for these types of items in intext mode?

I'm not following; can you rephrase?

Denis reminded me of this issue in the context of this discussion:

https://github.com/andras-simonyi/citeproc-el/commit/4a10b81c6f90641c25d68fc270358bddb598b0e9#commitcomment-73532015

... which is about specifying different citation modes/styles/commands in CSL.

While in-text is arguably the most important, there are others that may be relevant, including the request in this issue.

If that's so, seems easier, for style authors and developers, and more consistent to just do something like (though this specific syntax may be a problem from a comparability POV):

<citation mode="in-text">
 <text macro="author-intext"/>
 <text macro="suppress-author" prefix="(" suffix=")"/>
</citation>
<citation mode="title">
  <text macro="title"/>
</citation>

Adding this wouldn't preclude devs from doing what they're already doing now, without modifying styles?

We could even add a couple of implicit modes, to smooth that potential gap.