I also see reproducibility and citation graphs as distinct concepts.<div><br></div><div>If it's reproducibility you're after, bibliographic citations are very unlikely to enable someone else to assemble an identical build environment from which the same conclusion should be repeatably derivable.</div><div><br></div><div>A ScholarlyArticle can be reproducible with no citations whatsoever.</div><div>A ScholarlyArticle may very likely have many citations and still be woefully unreproducible.</div><div><br></div><div>This citation doesn't contain a URL, but still isn't quite useless (while the paper is excellent); because there's at least a DOI string:</div><div><br></div><div>Sandve GK, Nekrutenko A, Taylor J, Hovig E (2013) Ten Simple Rules for Reproducible Computational Research. PLoS Comput Biol 9(10): e1003285. doi:10.1371/journal.pcbi.1003285</div><div><br></div><div>> Rule 3: Archive the Exact Versions of All External Programs Used</div><div><br></div><div><a href="http://mybinder.org">mybinder.org</a> builds Jupyter containers from git repositories that contain config files with repo2docker.</div><div><br></div><div><a href="https://repo2docker.readthedocs.io/en/latest/config_files.html#configuration-files">https://repo2docker.readthedocs.io/en/latest/config_files.html#configuration-files</a><br></div><div>"""</div><div><div>Dockerfile</div><div>environment.yml</div><div>requirements.txt</div><div>REQUIRE</div><div>install.R</div><div>apt.txt</div><div>setup.py</div><div>postBuild</div><div>runtime.txt</div></div><div>"""</div><div><br></div><div>Specifying the exact version of Python (and what package it was installed from and/or what URL the source was obtained and built from) is no substitute for hashes of the 'pinned' versions of said artifacts.</div><div><br></div><div># includes the python version<br></div><div>$ conda env export -f environment.yml</div><div><br></div><div># these do not include the python version</div><div>$ pip freeze -r requirements.txt --all</div><div>$ pipenv lock # > Pipfile.lock</div><div>$ pipenv sync # < Pipfile.lock</div><div><br></div><div>Uploading a built container or VM image to e.g. Docker Hub / GitLab Container Registry / Vagrant Cloud is another way to ensure that research findings are reproducible.</div><div>- Dockerfile, docker-compose.yml</div><div>- Vagrantfile</div><div><br></div><div><div>> Rule 4: Version Control All Custom Scripts</div><div><br></div><div><a href="https://mozillascience.github.io/code-research-object/">https://mozillascience.github.io/code-research-object/</a> (FigShare + GitHub => DOI citation URI)<br></div><div><br></div><div><a href="https://guides.github.com/activities/citable-code/">https://guides.github.com/activities/citable-code/</a> (Zenodo + GitHub => DOI citation URI)<br></div><div><br></div><div>...</div><div><br></div><div>Is it necessary to cite Python (or all packages) if you're not building a derivative of Python or said packages?</div><div><br></div><div>It's definitely a good idea to "Archive the Exact Versions of All External Programs Used"; but IDK that those are best represented with bibliographic citations. Really, a link to the Homepage, Source, Docs, and Wikipedia page are probably more helpful to a reviewer that's not familiar with and wants to help support by linking dereferenceable URLs and <a href="https://5stardata.info">https://5stardata.info</a>.</div><div><br></div><div>While out of scope and OT, it's worth mentioning that search engines index <a href="https://schema.org/Dataset">https://schema.org/Dataset</a> metadata; which is helpful for data reuse and autodiscovering requisite premises for the argument presented in a <a href="https://schema.org/ScholarlyArticle">https://schema.org/ScholarlyArticle</a> .</div><div><br></div><div>A citation for each MAJ.MIN.PATCH revision of CPython (and/or other excellent packages) might be a bit much.</div><div><br></div>On Monday, September 10, 2018, Steven D'Aprano <<a href="mailto:steve@pearwood.info">steve@pearwood.info</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Mon, Sep 10, 2018 at 09:25:29PM +0200, Chris Barker via Python-Dev wrote:<br>
> I"d like ot know what thee citations are expected to be used for?<br>
> <br>
> i.e. -- usually, academic papers have a collection of citiations to<br>
> acknowledge where you got an idea, or fact, or .... It serves both to<br>
> jusstify something and make it clear that it is not your own idea (i.e. not<br>
> pagerism).<br>
<br>
[<br>
> That is about reproducible results, which is really a different thing than<br>
> the usual citations.<br>
<br>
I don't think it is. I think you are seeing a distinction that is not <br>
there. If citations were just about acknowledgement, we could say "I got <br>
this idea from Bob" and be done with it. Citations are about identifying <br>
the *exact* source so that anyone can reproduce the given ideas by <br>
checking not just "Bob" but the specific page number of a specific <br>
edition of a specific work.<br>
<br>
So the requirement for precision is no different between papers and <br>
software, and the academic standards for citing software already take <br>
that into account. There are challenges with software, to be sure -- <br>
code is much more ephemeral, there may be literally hundreds of <br>
authors, etc. But in principle, the kinds of information needed to <br>
cite a software package is known. The major citation styles already <br>
include this. When you are using a specific style, this page:<br>
<br>
<a href="https://openresearchsoftware.metajnl.com/about/" target="_blank">https://openresearchsoftware.<wbr>metajnl.com/about/</a><br>
<br>
suggests a few formats, depending on how you got access to the software.<br>
<br>
The bottom line is, we don't have to guess what information to provide. <br>
People like Jacqueline can tell us what they need, and we'll just fill <br>
in the values.<br>
<br>
The people citing Python know what information they need, we just have <br>
to help them get it. I think that the best way to do that is to provide <br>
the correct information in a single place, in a single, standard format, <br>
and let them choose the appropriate citation style for their <br>
publication.<br>
<br>
Jackie, do I have that right?<br>
<br>
<br>
<br>
-- <br>
Steve<br>
______________________________<wbr>_________________<br>
Python-Dev mailing list<br>
<a href="mailto:Python-Dev@python.org">Python-Dev@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-dev" target="_blank">https://mail.python.org/<wbr>mailman/listinfo/python-dev</a><br>
Unsubscribe: <a href="https://mail.python.org/mailman/options/python-dev/wes.turner%40gmail.com" target="_blank">https://mail.python.org/<wbr>mailman/options/python-dev/<wbr>wes.turner%40gmail.com</a><br>
</blockquote></div>