2

I am performing a wide survey on algorithms and models on a current hot topic in machine learning that I have been taking part in contributing recently. Many of the algorithms/models proposed in literature have proven to be efficient and robust. Moreover, these papers (including my contribution) are still relatively new (published 2022 and onward), and I have been planning to create a Python package that implements these models and algorithms in a unified fashion.

This project will be accessible on GitHub for everyone to download and implement. My main concern is how to properly cite their work? And what are the proper means to take in order to request permission from the respective authors of the various models to implement their models in my python package. Of course, they already have their code available on GitHub, but I am not interested in duplicating the same code in my project.

The reason for this confusion is because I understand that researchers sometimes publish a paper on arXiv regarding their python package, which includes the usual citations. However, I've seen users that made a python package and only included links to various websites instead of properly citing papers.

3
  • 1
    Who are you? A PhD student, professor? Commented Aug 6, 2023 at 19:18
  • I am about to enter as a first year master student in my academic institution. @AzorAhai-him-
    – SPARSE
    Commented Aug 7, 2023 at 17:07
  • 1
    Then putting something on ArXiV would probably be a good idea Commented Aug 7, 2023 at 23:31

1 Answer 1

5

You don't need permission to use published algorithms in your code. Academic ethics requires only that you give credit when you use someone else's ideas.

Cite the papers the same way you'd cite papers in a manuscript. I'd recommend citing them directly in the script that implements the algorithm, again in a "readme"-style document that describes your whole package and the inspiration, and in any publication you write for the software package (you could cite them as you write about what algorithms the software uses).

Using someone else's code is different, and more like if you are reusing a figure from a paper. The specific code or text is likely protected by copyright, and whether and how you can use it is entirely dependent on the terms of the license that the code is released with. You would need permission for any uses not allowed under existing licenses.

It sounds like you don't plan to use any of their code.

3
  • 1
    Thank you very much for your detailed answer. I am now considering your suggestion by citing the paper directly in the code and through a read me text file. I will not be using their code implement, rather my implementation of their algorithms as you have mentioned. So, I will proceed with your suggestion.
    – SPARSE
    Commented Aug 6, 2023 at 20:02
  • 2
    @SPARSE Another consideration is which license you want/can use for your package. It may depend on whether you or your institution is the copyright holder and what their policy may be in that respect. Some funding bodies have policies that may also have to be taken into account when making that choice.
    – Bruno
    Commented Aug 7, 2023 at 9:23
  • 1
    @SPARSE in my published packages, I tend to make the citation of the original paper obvious: if you are using classes, implement a cite() method that outputs text/bibtex. Otherwise, have a big general function that does it. Commented Aug 7, 2023 at 10:56

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .