cvangysel / pytrec_eval

pytrec_eval is an Information Retrieval evaluation tool for Python, based on the popular trec_eval.
http://ilps.science.uva.nl/
MIT License
282 stars 32 forks source link

Not sure license can be MIT #44

Open diegoceccarelli opened 1 year ago

diegoceccarelli commented 1 year ago

The License in pytrec_eval is MIT but the repo includes https://github.com/usnistgov/trec_eval/tree/de6a29f8ba9312c73f978aa9739695aa8ebf48eb that is under the copyright of Chris Buckley see also https://github.com/usnistgov/trec_eval/blob/master/convert_zscores.c#L2-L5 and https://github.com/usnistgov/trec_eval/issues/10

dmlls commented 1 year ago

This could also have repercussions for BEIR, which includes pytrec_eval as a core dependency, and is licensed under Apache 2.0.

seanmacavaney commented 1 year ago

It looks like the license was added in https://github.com/cvangysel/pytrec_eval/commit/b8358d417dc9dbfee1af42e93c383b028105ec9f. cc: @cvangysel

cvangysel commented 1 year ago

Thanks all. My apologies for the delayed response. We're in the process of transferring ownership of this repository to the Amsterdam IRLab and so hopefully the future maintainers will have a better response turnaround time.

I'm not a lawyer, but my understanding is that trec_eval is a transitive dependency of pytrec_eval. The MIT license applies only to the source code present in this repository, and not the trec_eval source code itself (since I have no control over that). The fact that trec_eval uses a different license from pytrec_eval is mentioned in the README: https://github.com/cvangysel/pytrec_eval#license.

We are not redistributing the trec_eval code (either source or compiled) as part of the published Python package, since that triggers this code path and pulls in the trec_eval source code at installation time. However, that may not be the case for the binary distributions published in the Terrier fork which is maintained by a 3rd party.

The license linked by @diegoceccarelli allows for non-commercial, research usage/modification and applies to trec_eval as well. Hence, if you are allowed to use trec_eval as a tool, you are also allowed to use pytrec_eval.