Viewing a single comment thread. View all comments

romantimm25 OP t1_j64mzgp wrote

What I always don't understand is the "reimplement" the algorithm.

I mean where lies the line between being too similar to the original and being completely different?

Of course there is the most obvious cases where one changes a "for loop" to a "while loop". But then does switching a certain library on which the paper's code depends on means that the implementation is different enough?

4

mil24havoc t1_j64ogl0 wrote

It basically means you read the paper and write the code to do what the paper describes yourself.

If you start with their code base, then your work is derivative of that copyrighted work and the question becomes a bit more complicated.

Yes, the line is fuzzy. However, it's typically very easy to stay on the "not copyright or license infringing" side of the line if you make an honest effort to rewrite the code from scratch and simply use their code base to check your understanding of the algorithm.

Again, IANAL but changing a for loop to a while loop is probably not sufficient to distinguish between their work and yours. Rewriting the code in another language may be. Rewriting it in the same language but making substantial changes to (for example) user interface, data preprocessing, training data, hyperparameters, etc... may be.

Edit: courts and lawyers usually aren't too concerned with technical details. Think of it like a book. The same story gets told over and over again by different authors who use different words to tell it. Your implementation needs to tell the same story but in different words, basically.

14