{"id":144345,"date":"2021-08-25T08:35:56","date_gmt":"2021-08-25T08:35:56","guid":{"rendered":"https:\/\/staging2.force11.org\/?p=144345"},"modified":"2021-10-19T16:52:36","modified_gmt":"2021-10-19T16:52:36","slug":"a-step-forward-for-software-citation-githubs-enhanced-software-citation-support","status":"publish","type":"post","link":"https:\/\/force11.org\/post\/a-step-forward-for-software-citation-githubs-enhanced-software-citation-support\/","title":{"rendered":"A Step Forward for Software Citation: GitHub&#8217;s Enhanced Software Citation Support"},"content":{"rendered":"\n<p><em>Authors: Martin Fenner, Stephan Druskat, Neil Chue Hong, Daniel S. Katz, Morane Gruenpeter, Arfon Smith, Tom Morell and Robert Haines<\/em><\/p>\n\n\n\n<p>On August 19, <a href=\"https:\/\/github.blog\/2021-08-19-enhanced-support-citations-github\/\">GitHub announced <\/a>software citation support in GitHub repositories. Citation information provided by users (using a CITATION.cff YAML file in the root directory of the default branch) is parsed and made available as bibtex file or formatted citation, currently supporting the APA citation style. The APA style is a good start as it is the only popular citation style that labels software with the string [Computer software] but we hope to see support for more citation styles \u2013 including those popular in computer science \u2013 going forward. Going forward we also hope to see support for biblatex and potentially @software as the bibtex entry type.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/assets.front-matter.io\/ghost\/2021\/August\/24th\/Bildschirmfoto%202021-08-24%20um%2018.16.55.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>This is an important step forward for wider software citation adoption, as it allows software authors to provide the required information necessary for citing software directly in a GitHub code repository, and for tools and workflows to integrate with this information. Within days of the initial GitHub announcement via a tweet by GitHub CEO Nat Friedman, we saw support for this new workflow by the scholarly repository <a href=\"https:\/\/twitter.com\/ZENODO_ORG\/status\/1420357001490706442\">Zenodo<\/a> and the reference manager <a href=\"https:\/\/twitter.com\/zotero\/status\/1420515377390530560\">Zotero<\/a> (see below). The <a href=\"https:\/\/docs.softwareheritage.org\/devel\/swh-indexer\/metadata-workflow.html\">swh-indexer<\/a> by <a href=\"https:\/\/www.softwareheritage.org\/\">Software Heritage<\/a> (SWH) already indexed and supported searching over the CITATION.cff files available on the HEAD\/master branch of a repository archived in SWH.<\/p>\n\n\n\n<p>We also see hundreds of repositories adding CITATION.cff files every week since the initial announcement \u2013 you can track the adoption via <a href=\"https:\/\/github.com\/search?o=desc&amp;p=1&amp;q=CITATION.cff&amp;s=committer-date&amp;type=Commits\">this<\/a> GitHub query.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/assets.front-matter.io\/ghost\/2021\/August\/24th\/Bildschirmfoto%202021-08-24%20um%2018.24.19.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>While a citation pointing to the GitHub code repository is a great start, ideally the software author wants to perform an important additional step: archive the source code in a long-term archive either via the Software Heritage universal software archive (detailed instructions <a href=\"https:\/\/www.softwareheritage.org\/save-and-reference-research-software\/\">here<\/a>, and automatable from the GitHub repository with a <a href=\"https:\/\/github.com\/marketplace\/actions\/save-to-software-heritage\">GitHub Action<\/a>), and\/or the scholarly repository Zenodo via the the Making Your Code Citable workflow described <a href=\"https:\/\/guides.github.com\/activities\/citable-code\/\">here<\/a>, which will use the metadata provided in a CITATION.cff file.<\/p>\n\n\n\n<p>One particular challenge with citing software is versioning, where there are multiple use cases to be supported, including the need to cite a specific version, and to aggregate the citations of all versions in a single place. There is more work needed to link <a href=\"https:\/\/docs.github.com\/en\/github\/administering-a-repository\/releasing-projects-on-github\/managing-releases-in-a-repository\">GitHub releases<\/a> to the version information provided in this new GitHub feature, and to support the generic citation without a specific version \u2013 what Zenodo calls a concept DOI, and the Functional Requirements for Bibliographic Records (FRBR) call an <a href=\"https:\/\/en.wikipedia.org\/wiki\/Functional_Requirements_for_Bibliographic_Records\">expression<\/a>.<\/p>\n\n\n\n<p>Many software authors also want to link to a publication describing their software from the GitHub repository, and the <a href=\"https:\/\/citation-file-format.github.io\/\">Citation File Format<\/a> (CFF) supports this via a \u2018<a href=\"https:\/\/github.com\/citation-file-format\/citation-file-format\/blob\/main\/schema-guide.md#credit-redirection\">preferred-citation<\/a>\u2019 field. Additionally, authors can cite the software (and other works) their software builds on in a \u2018<a href=\"https:\/\/github.com\/citation-file-format\/citation-file-format\/blob\/main\/schema-guide.md#referencing-other-work\">references<\/a>\u2019 section in CFF files. Software authors are expected to provide the relevant information in a CITATION.cff file in <a href=\"https:\/\/en.wikipedia.org\/wiki\/YAML\">YAML<\/a> format that follows the <a href=\"https:\/\/citation-file-format.github.io\/\">Citation File Format specification<\/a>. An example CITATION.cff file can be found <a href=\"https:\/\/github.com\/citation-file-format\/ruby-cff\/blob\/main\/CITATION.cff\">here<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"\/sites\/default\/files\/shared-documents\/bildschirmfoto_2021-08-25_um_12.11.50.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"twitter-tweet\" data-width=\"550\" data-dnt=\"true\"><p lang=\"en\" dir=\"ltr\">We\u2019ve added support for GitHub\u2019s new citation feature. When saving GitHub repos to your library, Zotero can now use the enhanced metadata provided by developers.<br><br>If there\u2019s no citation file, Zotero will continue to use the existing repo metadata (Company, Prog. Language, etc.). <a href=\"https:\/\/t.co\/Q34zPBRGFj\">https:\/\/t.co\/Q34zPBRGFj<\/a><\/p>&mdash; Zotero (@zotero) <a href=\"https:\/\/twitter.com\/zotero\/status\/1420515377390530560?ref_src=twsrc%5Etfw\">July 28, 2021<\/a><\/blockquote><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script>\n<\/div><\/figure>\n\n\n\n<p>Some software authors might want to use tools to help generate the CITATION.cff file. A starting point is the CFF Initializer available <a href=\"https:\/\/citation-file-format.github.io\/cff-initializer-javascript\/\">here<\/a>, and a list of available tools for working with CFF files <a href=\"https:\/\/github.com\/citation-file-format\/citation-file-format\/blob\/main\/README.md#tools-to-work-with-citationcff-files-wrench\">here<\/a>; we expect more tools to appear over time. There are many standards for describing software (we already mentioned bibtex and DOI metadata), and <a href=\"https:\/\/codemeta.github.io\/\">CodeMeta<\/a> also plays a particularly important role by providing <a href=\"https:\/\/codemeta.github.io\/crosswalk\/\">crosswalks<\/a> and tools for converting between the various metadata standards for software. Going forward we expect to see more metadata conversion workflows, in particular via <a href=\"https:\/\/docs.github.com\/en\/actions\">GitHub Actions<\/a>, adding to the already existing <a href=\"https:\/\/github.com\/marketplace\/actions\/cffconvert\">cffconvert<\/a> and <a href=\"https:\/\/github.com\/marketplace\/actions\/codemeta2cff\">CodeMeta2CFF<\/a> GitHub Actions. We also hope to see similar software citation support appear in the GitLab platform.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>On August 19, GitHub announced software citation support in GitHub repositories. <\/p>\n","protected":false},"author":205936,"featured_media":144358,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","footnotes":""},"categories":[182],"tags":[476,480,477,475,479],"force11":[],"blog_series":[],"working_group":[],"class_list":["post-144345","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-cff","tag-citation-file-format","tag-github","tag-software-citation","tag-software-heritage"],"acf":[],"author_meta":{"display_name":"Martin Fenner","author_link":"\/members\/martin-fenner"},"featured_img":"https:\/\/force11.org\/wp-content\/uploads\/2021\/10\/Citation_needed_fr-300x225.jpg","coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/force11.org\/category\/blog\/\" class=\"advgb-post-tax-term\">Blogs<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Blogs<\/span>"]},"tags":{"linked":["<a href=\"https:\/\/force11.org\/category\/blog\/\" class=\"advgb-post-tax-term\">cff<\/a>","<a href=\"https:\/\/force11.org\/category\/blog\/\" class=\"advgb-post-tax-term\">Citation File Format<\/a>","<a href=\"https:\/\/force11.org\/category\/blog\/\" class=\"advgb-post-tax-term\">github<\/a>","<a href=\"https:\/\/force11.org\/category\/blog\/\" class=\"advgb-post-tax-term\">software citation<\/a>","<a href=\"https:\/\/force11.org\/category\/blog\/\" class=\"advgb-post-tax-term\">software heritage<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">cff<\/span>","<span class=\"advgb-post-tax-term\">Citation File Format<\/span>","<span class=\"advgb-post-tax-term\">github<\/span>","<span class=\"advgb-post-tax-term\">software citation<\/span>","<span class=\"advgb-post-tax-term\">software heritage<\/span>"]}},"comment_count":"0","relative_dates":{"created":"Posted 5 years ago","modified":"Updated 4 years ago"},"absolute_dates":{"created":"Posted on 25 Aug 2021","modified":"Updated on 19 Oct 2021"},"absolute_dates_time":{"created":"Posted on 25 Aug 2021 08:35","modified":"Updated on 19 Oct 2021 16:52"},"featured_img_caption":"Citation needed fr. DePlusJean, Creative Commons Attribution 2.0 Generic, https:\/\/commons.wikimedia.org\/wiki\/File:Citation_needed_fr.jpg","series_order":"","_links":{"self":[{"href":"https:\/\/force11.org\/wp-json\/wp\/v2\/posts\/144345","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/force11.org\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/force11.org\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/force11.org\/wp-json\/wp\/v2\/users\/205936"}],"replies":[{"embeddable":true,"href":"https:\/\/force11.org\/wp-json\/wp\/v2\/comments?post=144345"}],"version-history":[{"count":0,"href":"https:\/\/force11.org\/wp-json\/wp\/v2\/posts\/144345\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/force11.org\/wp-json\/wp\/v2\/media\/144358"}],"wp:attachment":[{"href":"https:\/\/force11.org\/wp-json\/wp\/v2\/media?parent=144345"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/force11.org\/wp-json\/wp\/v2\/categories?post=144345"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/force11.org\/wp-json\/wp\/v2\/tags?post=144345"},{"taxonomy":"force11","embeddable":true,"href":"https:\/\/force11.org\/wp-json\/wp\/v2\/force11?post=144345"},{"taxonomy":"blog_series","embeddable":true,"href":"https:\/\/force11.org\/wp-json\/wp\/v2\/blog_series?post=144345"},{"taxonomy":"working_group","embeddable":true,"href":"https:\/\/force11.org\/wp-json\/wp\/v2\/working_group?post=144345"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}