rlabbe / Kalman-and-Bayesian-Filters-in-Python

Kalman Filter book using Jupyter Notebook. Focuses on building intuition and experience, not formal proofs. Includes Kalman filters,extended Kalman filters, unscented Kalman filters, particle filters, and more. All exercises include solutions.
Other
16.76k stars 4.2k forks source link

Add DOI for book #179

Open rlabbe opened 7 years ago

rlabbe commented 7 years ago

Issue #97 asks how to reference the book.

This guide specifies how to do it. https://guides.github.com/activities/citable-code/

For an example, matplotlib uses this, and has a nice badge:

https://matplotlib.org/devdocs/citing.html

I suggest adding a citing page, with a list of badges as I release new versions of the book.

olejorik commented 5 years ago

Dear Roger, nobody except you can import your GitHub repo into zenodo. It would take you in total 5 minutes. The instructions are simple and straightforward.

ipa-lth commented 5 years ago

Dear Roger, the DOI would be highly appreciated! I really want to cite you in my PhD.

Ryanglambert commented 5 years ago

You can cite him. Put the link in your thesis.

On Fri, Jan 25, 2019, 7:24 AM Lorenz Halt <notifications@github.com wrote:

Dear Roger, the DOI would be highly appreciated! I really want to cite you in my PhD.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/issues/179#issuecomment-457557267, or mute the thread https://github.com/notifications/unsubscribe-auth/ADmCPL-CPHdDPwHiN5OdDsaHwHl5BljTks5vGveRgaJpZM4QDUrH .

rlabbe commented 5 years ago

I think the concept of a DOI for github repositories is a broken idea, trying to shoehorn 'dead trees' practices into modern publication.

There is no real concept of "the" book or or article here. I check in changes all the time, people push changes. Far more importantly, people fork this repository and do their own things to it. Maybe someone decides to translate it to French, convert the language to Julia, or whatever. It still needs to be attributed to me due to the CC rules I released this under, but DOI has no concept or mechanism for that.

Then there is the issue of what media are you using. I release a PDF version periodically, but not every commit. Someone could use nbconvert to turn it into html and host an html version. DOI has no way to handle that.

Finally, the link I put above references "releases". I don't have release as such, just commits. I might add a release when I go to Python 3 only, but probably not.

I think the best citation is the http link to this repository, preferably with the commit sha1 so the reader can go to that particular commit if needed.

This suggests one way of doing it without a DOI. Note the entire text assumes publication in a journal, which is still dead trees thinking. https://sites.umuc.edu/library/libhow/apadoi_tutorial.cfm

So, for example:

Labbe, Roger (2018). Kalman and Bayesian Filters in Python. https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python, commit 63bca4blahblahblah.

Anyway, I am not going to generate a DOI for every commit, or try to make releases to emulate dead tree book editions, so unless someone can point me to better thinking on how to handle citations I think the suggestion above is the way to do.

It does look like I can use zenodo to create a top level doi that refers to all versions, so I might do that. It is not clear to me if that just means it will refer to all commits in the current upload, or if it will adjust to accept new commits and forks. I'm concerned about longevity; what happens if zenodo goes away? Git repositories can live forever; even if Github closes up shop, any hosting service, or your personal hard drive, can still have a copy of the repository. Does the DOI make any sense if zenodo goes away?

poplarShift commented 4 years ago

Does the DOI make any sense if zenodo goes away?

Yes. DOI has nothing to do with Zenodo, Zenodo just attributes a DOI for you and hosts the material. https://www.doi.org/10DEC99_presentation/faq.html#3.2

And even if Zenodo were to go away and you cared about the material, not only the citation itself, they have long-term plans (https://about.zenodo.org/policies/). Looks better to me than a github link, which will definitely go dead at some point.

Longevity

...
Replicas: All data files are stored in CERN Data Centres, primarily Geneva, with replicas in Budapest. Data files are kept in multiple replicas in a distributed file system, which is backed up to tape on a nightly basis.
Retention period: Items will be retained for the lifetime of the repository. This is currently the lifetime of the host laboratory CERN, which currently has an experimental programme defined for the next 20 years at least.
...
...
Fixity and authenticity: All data files are stored along with a MD5 checksum of the file content. Files are regularly checked against their checksums to assure that file content remains constant.
Succession plans: In case of closure of the repository, best efforts will be made to integrate all content into suitable alternative institutional and/or subject based repositories.

PS: Great project!