Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Citation instructions #6444

Merged
merged 4 commits into from
Mar 5, 2024
Merged

Citation instructions #6444

merged 4 commits into from
Mar 5, 2024

Conversation

L-TChen
Copy link
Member

@L-TChen L-TChen commented Jan 18, 2023

GitHub has a built-in citation support. By placing the CITATION.cff file in the root of repostitory, GitHub will add a widget to the sidebar like this

Screenshot 2023-01-18 at 21 51 45

The file format is here

It will be time-saving if it is clear how to cite Agda, so the remaing question is ... to agree on how Agda should be cited.

I draft one based on "Elaborating dependent (co)pattern matching: No pattern left behind" to kick off a discussion.

@L-TChen
Copy link
Member Author

L-TChen commented Jan 18, 2023

For the demonstration purpose, I pushed the above file to my fork: https://github.com/L-TChen/agda so that you can see how it works on GitHub.

@gallais
Copy link
Member

gallais commented Jan 18, 2023

Related discussions:

coq/coq#5766 (Suggests Zenodo as a DOI provider)
agda/agda-stdlib#1833 (Suggests a JOSS publication for the software itself)

@L-TChen L-TChen changed the title Citation information Citation instrauctions Jan 18, 2023
@L-TChen L-TChen changed the title Citation instrauctions Citation instructions Jan 18, 2023
@nad
Copy link
Contributor

nad commented Jan 18, 2023

For your demo I get the following BibTeX file:

@software{Agda_development_team_Agda_2_6_2_2_20230105_documentation,
author = {Agda development team},
title = {{Agda 2.6.2.2.20230105 documentation}},
url = {https://agda.readthedocs.io/en/v2.6.2.2.20230105/},
version = {2.6.2.2.20230105}
}

Is the idea to cite the software or its documentation?

For the documentation I think it makes sense to cite the user manual. The title of the user manual (the PDF file) is currently "Agda User Manual, Release 2.6.4", and the author is "The Agda Team". However, I don't think we should recommend people to cite an unreleased user manual.

Something like the following BibTeX entry might be suitable for citing the Agda 2.6.2 documentation:

@Manual{Agda_manual:2_6_2,
  title =   {Agda User Manual, Release 2.6.2},
  author =  {{The Agda Team}},
  year =    {2021},
  url =     {https://agda.readthedocs.io/_/downloads/en/v2.6.2/pdf/},
  urldate = {2023-01-18}
}

@andreasabel
Copy link
Member

I think we should utilize the GitHub Releases feature also for the regular Agda releases (not just nightly) and then one could cite the release rather than the documentation. Maybe we can get the help of Wen @wenkokke to get proper releases (with binaries) here.

@wenkokke
Copy link
Contributor

If I can use setup-agda for this, I could probably set this up pretty easily.

@L-TChen
Copy link
Member Author

L-TChen commented Feb 2, 2023

Based on @andreasabel's suggestion, I update the CITATION.cff so that GitHub now produces

@software{The_Agda_Team_Agda,
author = {The Agda Team},
title = {{Agda}},
url = {https://agda.readthedocs.io/en/v2.6.3/index.html},
version = {2.6.3}
}

For every release, one only needs to update the version (by releash.sh?). We may also want to include the citation instruction in the documentation.

Copy link
Member

@andreasabel andreasabel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM (modulo I don't know what cff is).

@L-TChen
Copy link
Member Author

L-TChen commented Feb 2, 2023

LGTM (modulo I don't know what cff is).

lol

Right, if the citation format is agreed, then I will update the documentation and related scripts later (within this PR).

@nad
Copy link
Contributor

nad commented Feb 2, 2023

If we link to the documentation, then I think we should use the user manual's title, and not "Agda" (and @manual rather than @software). For some reason the PDF file and the collection of HTML files use different titles. I think this should be fixed.

I believe that BibTeX interprets {The Agda Team} as the first name The Agda and the last name Team. One can prevent this by using {{The Agda Team}}. I already used this format in the BibTeX entry that I gave above, which could be updated for Agda 2.6.3.

@L-TChen
Copy link
Member Author

L-TChen commented Feb 3, 2023

I think it is more reasonable to cite the software instead of the documentation, see here for reasons. As pointed by @gallais, it is possible to mint a DOI for software and archive source code in an open repository like Zenodo (supported by the EU and now used by many conferences including ICFP for artefact evaluation).

Using CITATION.cff is not necessary at all. It is just to make life easier. As pointed by @nad, the implementation of the renderer is incorrect: I put “The Agda Team” as the family name, but the generated value is {The Agda Team} that will be treated by BibTeX as “Team, The Agda”.

Having a consistent citation format should make forward citation search easier. I find it difficult to find where Agda was used. If there is a DOI, then it should help Google Scholar or other analytic tools to locate.

Although I still do not know the best practice to cite a software like Agda, I’d like to propose the following:

  1. Mint a conceptual DOI referring to all versions of Agda by releasing the initial version to Zenodo and mint a specific DOI for every release.
  2. Instruct people to use the conceptual DOI but use the field version to specify the version. The citation may look like

The Agda Team. Agda (Version 2.6.3) [Computer software]. https://doi.org/xxx.yyy/zenodo.zzz

One may also include a link to the documentation.

  1. For convenience, provide a bibtex entry directly or via CITATION.cff if GitHub fixes the aboive issue.

There are tools to convert a .cff file to a bibtex entry or other format, so it should be possible to update the citation instruction everywhere automatically.

@L-TChen L-TChen marked this pull request as draft February 3, 2023 16:26
@nad
Copy link
Contributor

nad commented Feb 7, 2023

I think it is more reasonable to cite the software instead of the documentation

That depends on what the purpose of the citation is. Sometimes one may want to refer to the software, but sometimes one may want to, say, cite a passage in the user manual.

@Trebor-Huang
Copy link

We can always just add citation instructions to readthedocs. For the repo I think the purpose is just to cite the software.

@andreasabel
Copy link
Member

I would think we should merge this PR rather than close it. We can continue the bikeshedding even after this has been merged. Having this PR in one form or the other is better than having nothing.

@andreasabel andreasabel reopened this Feb 11, 2024
@andreasabel andreasabel self-requested a review February 11, 2024 21:44
Copy link
Member

@andreasabel andreasabel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file needs to be added to the change-version script:

files+='Agda.cabal '
files+='doc/user-manual/conf.py '

And to the exclude list in src/github/workflows/test.yml .

@wenkokke
Copy link
Contributor

I think it is more reasonable to cite the software instead of the documentation, see here for reasons. As pointed by @gallais, it is possible to mint a DOI for software and archive source code in an open repository like Zenodo (supported by the EU and now used by many conferences including ICFP for artefact evaluation).

Using CITATION.cff is not necessary at all. It is just to make life easier. As pointed by @nad, the implementation of the renderer is incorrect: I put “The Agda Team” as the family name, but the generated value is {The Agda Team} that will be treated by BibTeX as “Team, The Agda”.

Having a consistent citation format should make forward citation search easier. I find it difficult to find where Agda was used. If there is a DOI, then it should help Google Scholar or other analytic tools to locate.

Although I still do not know the best practice to cite a software like Agda, I’d like to propose the following:

  1. Mint a conceptual DOI referring to all versions of Agda by releasing the initial version to Zenodo and mint a specific DOI for every release.

  2. Instruct people to use the conceptual DOI but use the field version to specify the version. The citation may look like

The Agda Team. Agda (Version 2.6.3) [Computer software]. https://doi.org/xxx.yyy/zenodo.zzz

One may also include a link to the documentation.

  1. For convenience, provide a bibtex entry directly or via CITATION.cff if GitHub fixes the aboive issue.

There are tools to convert a .cff file to a bibtex entry or other format, so it should be possible to update the citation instruction everywhere automatically.

Following the specification, the Agda team should be cited as an entity rather than a person, so:

authors:
- name: "The Agda Team"

@wenkokke
Copy link
Contributor

Reading the specification, we should have the primary citation be for the software, but we could add a citation for the manual as a related work under the references key.

@L-TChen
Copy link
Member Author

L-TChen commented Feb 12, 2024

Following the specification, the Agda team should be cited as an entity rather than a person, so:

authors:
- name: "The Agda Team"

Thanks! It does give the required BibTex entry as follows.

@software{The_Agda_Team_Agda,
author = {{The Agda Team}},
title = {{Agda}},
url = {https://agda.readthedocs.io/},
version = {2.6.5}
}

@L-TChen L-TChen marked this pull request as ready for review February 12, 2024 05:30
@lawcho lawcho mentioned this pull request Feb 16, 2024
@lawcho lawcho linked an issue Feb 16, 2024 that may be closed by this pull request
@L-TChen
Copy link
Member Author

L-TChen commented Feb 16, 2024

This file needs to be added to the change-version script:

files+='Agda.cabal '
files+='doc/user-manual/conf.py '

And to the exclude list in src/github/workflows/test.yml .

@andreasabel Yes, done. [ I don’t know why the requested change has not been marked resolved by GitHub … ]

CITATION.cff Outdated Show resolved Hide resolved
@andreasabel andreasabel added pr: squash-me This PR needs squashing and removed status: stalled labels Feb 28, 2024
@andreasabel
Copy link
Member

Please also update

author = u'The Agda Team'

@L-TChen L-TChen merged commit 7ad9543 into master Mar 5, 2024
5 checks passed
@andreasabel andreasabel added this to the 2.7.0 milestone Mar 5, 2024
@andreasabel andreasabel deleted the citation branch March 5, 2024 08:28
@andreasabel andreasabel added the ux: documentation Issues relating to Agda's documentation label Mar 5, 2024
VitalyAnkh pushed a commit to VitalyAnkh/agda that referenced this pull request Mar 5, 2024
* [ new ] Create CITATION.cff

* Add CITATION.cff to `change-version.bash` and `test.yml` accordingly

* Exclude CITATION.cff in CI

* Change "The Agda Team" to "Agda Developers"
@L-TChen L-TChen added the not-in-changelog This issue should not be listed in the changelog. label May 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
not-in-changelog This issue should not be listed in the changelog. pr: squash-me This PR needs squashing ux: documentation Issues relating to Agda's documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Citation.cff
7 participants