DESIGN SCIENCE LICENSE

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

Copyright © 1999-2001 Michael Stutz <stutz@dsl.org>
Verbatim copying of this document is permitted, in any medium.

0. PREAMBLE.

Copyright law gives certain exclusive rights to the author of a work,
including the rights to copy, modify and distribute the work (the
"reproductive," "adaptative," and "distribution" rights).

The idea of "copyleft" is to willfully revoke the exclusivity of those
rights under certain terms and conditions, so that anyone can copy and
distribute the work or properly attributed derivative works, while all
copies remain under the same terms and conditions as the original.

The intent of this license is to be a general "copyleft" that can be
applied to any kind of work that has protection under copyright. This
license states those certain conditions under which a work published
under its terms may be copied, distributed, and modified.

Whereas "design science" is a strategy for the development of
artifacts as a way to reform the environment (not people) and
subsequently improve the universal standard of living, this Design
Science License was written and deployed as a strategy for promoting
the progress of science and art through reform of the environment.

1. DEFINITIONS.

"License" shall mean this Design Science License. The License applies
to any work which contains a notice placed by the work's copyright
holder stating that it is published under the terms of this Design
Science License.

"Work" shall mean such an aforementioned work. The License also
applies to the output of the Work, only if said output constitutes a
"derivative work" of the licensed Work as defined by copyright law.

"Object Form" shall mean an executable or performable form of the
Work, being an embodiment of the Work in some tangible medium.

"Source Data" shall mean the origin of the Object Form, being the
entire, machine-readable, preferred form of the Work for copying and
for human modification (usually the language, encoding or format in
which composed or recorded by the Author); plus any accompanying
files, scripts or other data necessary for installation, configuration
or compilation of the Work.

(Examples of "Source Data" include, but are not limited to, the
following: if the Work is an image file composed and edited in PNG
format, then the original PNG source file is the Source Data; if the
Work is an MPEG 1.0 layer 3 digital audio recording made from a WAV
format audio file recording of an analog source, then the original WAV
file is the Source Data; if the Work was composed as an unformatted
plaintext file, then that file is the Source Data; if the Work was
composed in LaTeX, the LaTeX file(s) and any image files and/or custom
macros necessary for compilation constitute the Source Data.)

"Author" shall mean the copyright holder(s) of the Work.

The individual licensees are referred to as "you."

2. RIGHTS AND COPYRIGHT.

The Work is copyrighted by the Author. All rights to the Work are
reserved by the Author, except as specifically described below. This
License describes the terms and conditions under which the Author
permits you to copy, distribute and modify copies of the Work.

In addition, you may refer to the Work, talk about it, and (as
dictated by "fair use") quote from it, just as you would any
copyrighted material under copyright law.

Your right to operate, perform, read or otherwise interpret and/or
execute the Work is unrestricted; however, you do so at your own risk,
because the Work comes WITHOUT ANY WARRANTY -- see Section 7 ("NO
WARRANTY") below.

3. COPYING AND DISTRIBUTION.

Permission is granted to distribute, publish or otherwise present
verbatim copies of the entire Source Data of the Work, in any medium,
provided that full copyright notice and disclaimer of warranty, where
applicable, is conspicuously published on all copies, and a copy of
this License is distributed along with the Work.

Permission is granted to distribute, publish or otherwise present
copies of the Object Form of the Work, in any medium, under the terms
for distribution of Source Data above and also provided that one of
the following additional conditions are met:

(a) The Source Data is included in the same distribution, distributed
under the terms of this License; or

(b) A written offer is included with the distribution, valid for at
least three years or for as long as the distribution is in print
(whichever is longer), with a publicly-accessible address (such as a
URL on the Internet) where, for a charge not greater than
transportation and media costs, anyone may receive a copy of the
Source Data of the Work distributed according to the section above; or

(c) A third party's written offer for obtaining the Source Data at no
cost, as described in paragraph (b) above, is included with the
distribution. This option is valid only if you are a non-commercial
party, and only if you received the Object Form of the Work along with
such an offer.

You may copy and distribute the Work either gratis or for a fee, and
if desired, you may offer warranty protection for the Work.

The aggregation of the Work with other works that are not based on the
Work -- such as but not limited to inclusion in a publication,
broadcast, compilation, or other media -- does not bring the other
works in the scope of the License; nor does such aggregation void the
terms of the License for the Work.

4. MODIFICATION.

Permission is granted to modify or sample from a copy of the Work,
producing a derivative work, and to distribute the derivative work
under the terms described in the section for distribution above,
provided that the following terms are met:

(a) The new, derivative work is published under the terms of this
License.

(b) The derivative work is given a new name, so that its name or title
cannot be confused with the Work, or with a version of the Work, in
any way.

(c) Appropriate authorship credit is given: for the differences
between the Work and the new derivative work, authorship is attributed
to you, while the material sampled or used from the Work remains
attributed to the original Author; appropriate notice must be included
with the new work indicating the nature and the dates of any
modifications of the Work made by you.

5. NO RESTRICTIONS.

You may not impose any further restrictions on the Work or any of its
derivative works beyond those restrictions described in this License.

6. ACCEPTANCE.

Copying, distributing or modifying the Work (including but not limited
to sampling from the Work in a new work) indicates acceptance of these
terms. If you do not follow the terms of this License, any rights
granted to you by the License are null and void. The copying,
distribution or modification of the Work outside of the terms
described in this License is expressly prohibited by law.

If for any reason, conditions are imposed on you that forbid you to
fulfill the conditions of this License, you may not copy, distribute
or modify the Work at all.

If any part of this License is found to be in conflict with the law,
that part shall be interpreted in its broadest meaning consistent with
the law, and no other parts of the License shall be affected.

7. NO WARRANTY.

THE WORK IS PROVIDED "AS IS," AND COMES WITH ABSOLUTELY NO WARRANTY,
EXPRESS OR IMPLIED, TO THE EXTENT PERMITTED BY APPLICABLE LAW,
INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY
OR FITNESS FOR A PARTICULAR PURPOSE.

8. DISCLAIMER OF LIABILITY.

IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS WORK, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

END OF TERMS AND CONDITIONS

