[IPOL discuss] Patents and IPOL code

Jean-Michel Morel morel at cmla.ens-cachan.fr
Mon Apr 11 13:32:14 CEST 2011


Dear all,

I agree with the proposal but propose several small  amendments in the 
terms for the following reason.

IPOL has not so far published algorithms directly taken from patents.
So far, we have analyzed in IPOL only algorithms which had been or were 
being published in research journals. It turns out that some of them are 
"linked" to a patent. But how they are linked is not obvious.

  To establish the evidence that a published algorithms infringes a 
patent is not trivial. Thus, we should never be completely positive 
about the fact that a given algorithm "implements a patented algorithm".

  For example if you read the SIFT patent you will see that it is 
certainly related, but significantly different from the Lowe research 
paper on SIFT, which was published five years later.

For this reason I have added in the text the adequate nuances.

Best,
JM

oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
8<----------8<----------8<----------8<----------8<----------8<----------

  1. EVERY source code file MUST mention its author or authors in a
    copyright attribution line at the top of the file. The form of this
    line should be:

        Copyright (c) 2011, AUTHOR NAME <AUTHOR EMAIL>
        All rights reserved.

    When the work on these files spans over many years, these dates
    should be mentioned:

        Copyright (c) 2005, 2009-2011, AUTHOR NAME <AUTHOR EMAIL>
        All rights reserved.

    Every person whose contribution to this file is not trivial and
    implies some creative work must be credited.

        Copyright (c) 1998-2003, AUTHOR1
        Copyright (c) 2005-2011, AUTHOR2
        Copyright (c) 2011, AUTHOR3
        All rights reserved.

  2. When the authors are aware or suspect that a source code file might 
be linked to a patented
    algorithm (it may be the main algorithm published on IPOL or
    another algorithm used for this implementation), a patent warning
    MUST be inserted after the copyright attribution, in EVERY file
    potentially linked to this patent. The proposed text for this patent 
warning
    is:

        This file implements an algorithm possibly linked to the patent
        <REFERENCE OF THE PATENT>.
        This file is made available for the exclusive aim of serving as
        scientific tool to verify of the soundness and
        completeness of the algorithm description. Compilation,
        execution and redistribution of this file may violate exclusive
        patents rights in certain countries.
        The situation being different for every country and changing
        over time, it is your responsibility to determine which patent
        rights restrictions apply to you before you compile, use,
        modify, or redistribute this file. A patent lawyer is qualified
        to make this determination.
        If and only if they don't conflict with any patent terms, you
        can benefit from the following license terms attached to this
        file.

    The patents that may be linked to the algorithm should also be 
acknowledged in the algorithm web page.

  3. EVERY source code file MUST mention a usage and redistribution
    license. The general IPOL policy is to use free software licenses,
    GPL or BSD type. When a file can be linked to a patented algorithm,
    * GPL licences can't be used because they might conflict with 
patents or are
      somehow unclear;
    * BSD licenses can be used;
    * as a special exception to the IPOL policy, the authors of a file
      can decide that this file is provided "for scientific and
      educational purposes only".
    This exception may help avoiding problems when the file authors are
    the patent owners: distributing he source code with a free software
    license could conflict with their patent rights. This exception is
    not necessary for other patents because the previous paragraph
    states that the license only applies if it doesn't conflict with
    the patent rights.

    The license must be mentioned after the copyright attribution line
    (and a patent warning for algorithms potentially linked to a patent) 
in one of these terms:

        This program is free software: you can use, modify and/or
        redistribute it under the terms of the GNU General Public
        License as published by the Free Software Foundation, either
        version 3 of the License, or (at your option) any later
        version. You should have received a copy of this license along
        this program. If not, see <http://www.gnu.org/licenses/>.

        This program is free software: you can use, modify and/or
        redistribute it under the terms of the simplified BSD
        License. You should have received a copy of this license along
        this program. If not, see
        <http://www.opensource.org/licenses/bsd-license.html>.

        This program is provided for scientific and educational only:
        you can use and/or modify it for these purposes, but you are
        not allowed to redistribute this work or derivative works in
        source or executable form. A license must be obtained from the
        patent right holders for any other use.

    The exact terms may change, for example when a different GPL
    license version is chosen. The full text of the license must be
    included in a separate file with the source code, for every license
    used.

  4. All that (copyrights, patents and licenses) MUST be summarized in
    the README.txt file provided with the code. This summary is in
    free-form text, and should include all the informations mentioned
    before. A simple summary (single author and license, no patent
    known) can be:

        This software is written by John Doe <doe at example.org> and
        distributed under the terms of the GPLv3 licence.

    A complex case (multiple authors and licences, patents) can be:

        This software is written by John Doe <doe at example.org>, Joe
        Average <ja at server.net> with contributions from Taro Suzuki and
        Jean Dupont.
        - mmatch.c and rot_tree.c may be linked to the pending EU patent
          555.555 by John Doe and Joe Average and are provided for
          scientific and education only.
        - demoz.c may be linked to the US patent 123.456 by Another Guy;
          see the file header for license terms.
        - eizo.c and linalg_lib.c are distributed under the terms
          of the BSD license.
        - All the other files are distributed under the terms of the
          LGPLv3 license.

    Of course the README file will also include other informations, such
    as compilation and usage instructions, reference to the IPOL (and
    other) article, etc.

  5. The license and patent information MUST be mentioned on the
    algorithm web page with the links to download the source code, but
    we can refer to the README file for details. The simple case can be:

        This software is distributed under the terms of the GPLv3
        licence. See the README file for details.

   The complex case would be:

        This code includes the implementations of algorithms potentially 
linkable to patents. Various distribution terms apply. Some files are
        distributed under the terms of the BSD and LGPL licenses, some
        are for scientific and education only. See the README file for
        details.
ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo 


Pascal Getreuer a écrit :
> Nicolas, thank you for your proposal.  I like it and I think we should
> use it.  I made a few minor typo corrections in the proposal below.
> 
> Would it be a good idea to turn this into a webpage (e.g., "Licensing
> Guidelines for IPOL Authors") on IPOL?
> 
> Best,
> Pascal
> 
> 
> 8<----------8<----------8<----------8<----------8<----------8<----------
> 
>  1. EVERY source code file MUST mention its author or authors in a
>    copyright attribution line at the top of the file. The form of this
>    line should be:
> 
>        Copyright (c) 2011, AUTHOR NAME <AUTHOR EMAIL>
>        All rights reserved.
> 
>    When the work on these files spans over many years, these dates
>    should be mentioned:
> 
>        Copyright (c) 2005, 2009-2011, AUTHOR NAME <AUTHOR EMAIL>
>        All rights reserved.
> 
>    Every person whose contribution to this file is not trivial and
>    implies some creative work must be credited.
> 
>        Copyright (c) 1998-2003, AUTHOR1
>        Copyright (c) 2005-2011, AUTHOR2
>        Copyright (c) 2011, AUTHOR3
>        All rights reserved.
> 
>  2. When the authors know that a source code file implements a patented
>    algorithm (it may be the main algorithm published on IPOL or
>    another algorithm used for this implementation), a patent warning
>    MUST be inserted after the copyright attribution, in EVERY file
>    implementing this patent. The proposed text for this patent warning
>    is:
> 
>        This file implements an algorithm possibly linked to the patent
>        <REFERENCE OF THE PATENT>.
>        This file is made available for the exclusive aim of serving as
>        scientific tool to verify of the soundness and
>        completeness of the algorithm description. Compilation,
>        execution and redistribution of this file may violate exclusive
>        patents rights in certain countries.
>        The situation being different for every country and changing
>        over time, it is your responsibility to determine which patent
>        rights restrictions apply to you before you compile, use,
>        modify, or redistribute this file. A patent lawyer is qualified
>        to make this determination.
>        If and only if they don't conflict with the patent terms, you
>        can benefit from the following license terms attached to this
>        file.
> 
>    These patents should also be acknowledged in the algorithm web page.
> 
>  3. EVERY source code file MUST mention a usage and redistribution
>    license. The general IPOL policy is to use free software licenses,
>    GPL or BSD type. When a file implements a patented algorithm,
>    * GPL licences can't be used because they conflict with patents or are
>      somehow unclear;
>    * BSD licenses can be used;
>    * as a special exception to the IPOL policy, the authors of a file
>      can decide that this file is provided "for scientific and
>      educational purposes only".
>    This exception may help avoid problems when the file authors are
>    the patent owners: distributing he source code with a free software
>    license could conflict with their patent rights. This exception is
>    not necessary for other patents because the previous paragraph
>    states that the license only applies if it doesn't conflict with
>    the patent rights.
> 
>    The license must be mentioned after the copyright attribution line
>    (and patent warning for patented algorithm) in one of these terms:
> 
>        This program is free software: you can use, modify and/or
>        redistribute it under the terms of the GNU General Public
>        License as published by the Free Software Foundation, either
>        version 3 of the License, or (at your option) any later
>        version. You should have received a copy of this license along
>        this program. If not, see <http://www.gnu.org/licenses/>.
> 
>        This program is free software: you can use, modify and/or
>        redistribute it under the terms of the simplified BSD
>        License. You should have received a copy of this license along
>        this program. If not, see
>        <http://www.opensource.org/licenses/bsd-license.html>.
> 
>        This program is provided for scientific and educational only:
>        you can use and/or modify it for these purposes, but you are
>        not allowed to redistribute this work or derivative works in
>        source or executable form. A license must be obtained from the
>        patent right holders for for any other use.
> 
>    The exact terms may change, for example when a different GPL
>    license version is chosen. The full text of the license must be
>    included in a separate file with the source code, for every license
>    used.
> 
>  4. All that (copyrights, patents and licenses) MUST be summarized in
>    the README.txt file provided with the code. This summary is in
>    free-form text, and should include all the informations mentioned
>    before. A simple summary (single author and license, no patent
>    known) can be:
> 
>        This software is written by John Doe <doe at example.org> and
>        distributed under the terms of the GPLv3 licence.
> 
>    A complex case (multiple authors and licences, patents) can be:
> 
>        This software is written by John Doe <doe at example.org>, Joe
>        Average <ja at server.net> with contributions from Taro Suzuki and
>        Jean Dupont.
>        - mmatch.c and rot_tree.c implement the pending EU patent
>          555.555 by John Doe and Joe Average and are provided for
>          scientific and education only.
>        - demoz.c implements the US patent 123.456 by Another Guy;
>          see the file header for license terms.
>        - eizo.c and linalg_lib.c are distributed under the terms
>          of the BSD license.
>        - All the other files are distributed under the terms of the
>          LGPLv3 license.
> 
>    Of course the README file will also include other informations, such
>    as compilation and usage instructions, reference to the IPOL (and
>    other) article, etc.
> 
>  5. The license and patent information MUST be mentioned on the
>    algorithm web page with the links to download the source code, but
>    we can refer to the README file for details. The simple case can be:
> 
>        This software is distributed under the terms of the GPLv3
>        licence. See the README file for details.
> 
>   The complex case would be:
> 
>        This code includes the implementations of patented
>        algorithms. Various distribution terms apply. Some files are
>        distributed under the terms of the BSD and LGPL licenses, some
>        are for scientific and education only. See the README file for
>        details.
> _______________________________________________
> discuss mailing list
> discuss at list.ipol.im
> http://tools.ipol.im/mailman/listinfo/discuss
> 


More information about the discuss mailing list