aboutsummaryrefslogtreecommitdiff
path: root/licentia/source/program/licentia/license/definition.lux
blob: 3d002311c5ab7d04614383783fb4e28c1b9753c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
(.using
 [library
  [lux {"-" Definition}
   [data
    ["[0]" text
     ["%" format {"+" format}]]]]]
 [///
  ["$" document]])

(type: .public Definition
  (Record
   [#term Text
    #meaning Text]))

(def: not_a_contribution_notice
  (format text.double_quote "Not a Contribution" text.double_quote))

(def: .public patent_rights
  (List Text)
  (list "make"
        "have made"
        "use"
        "offer to sell"
        "sell"
        "import"
        "transfer"))

(def: commercial_services
  (List Text)
  (let [services (is (-> Text Text)
                     (function (_ type)
                       (format type " services")))]
    (list (services "hosting")
          (services "consulting")
          (services "support"))))

(def: individual_capacities
  (List Text)
  (list "officer"
        "employee"
        "member"
        "independent contractor"
        "agent of a corporation, business or organization (commercial or non-commercial)"))

(def: covered_work_description
  "work of authorship")

(template [<name> <term> <meaning>]
  [(def: .public <name>
     Definition
     [#term <term>
      #meaning <meaning>])]

  [license "This License"
   ($.paragraph (list (format "the terms and conditions defined in this document")))]

  [licensable "Licensable"
   ($.paragraph (list (format "having the right to grant any and all of the rights conveyed by " (the #term license))))]

  [legal_entity "Legal Entity"
   (let [abilities (is (List Text)
                       (list "to enter into contracts"
                             "to sue"
                             "to be sued"))]
     ($.paragraph (list (format "any human or non-human entity that is recognized as having privileges and obligations, such as having the ability " ($.and abilities)))))]

  [recipient "Recipient"
   ($.paragraph (list (format "a " (the #term legal_entity) " exercising permissions by " (the #term license))))]

  [licensor "The Licensor"
   ($.paragraph (list (format "the copyright owner granting " (the #term license) ", or a " (the #term legal_entity) " authorized by the copyright owner")))]

  [source_code_form "Source Code Form"
   ($.paragraph (list (format "the preferred form of the " ..covered_work_description " in order to make modifications to it")))]

  [object_form "Object Form"
   ($.paragraph (list (format "any form produced by transforming a " (the #term source_code_form) ", including but not limited to compiled code and transpiled code")))]

  [licensed_work "The Licensed Work"
   ($.paragraph (list (format "the " ..covered_work_description
                              ", whether in a " (the #term source_code_form)
                              " or in an " (the #term object_form)
                              ", made available under " (the #term license)
                              ", as indicated by a copyright notice that is included in or attached to the " ..covered_work_description)))]

  [derivative_work "Derivative Work"
   ($.paragraph (list (format "any work, whether in a " (the #term source_code_form)
                              " or in an " (the #term object_form)
                              ", that is based on (or derived from) " (the #term licensed_work)
                              " and which represents an original " ..covered_work_description)))]

  [submission "Submission"
   (let [forms_of_communication (is (List Text)
                                    (list "electronic"
                                          "verbal"
                                          "written"))]
     ($.paragraph (list (format "any form of " ($.or forms_of_communication) " communication sent to " (the #term licensor)
                                ", or its representatives, for the purpose of discussing and improving " (the #term licensed_work)
                                ", but excluding communication that is designated in writing by the copyright owner as " not_a_contribution_notice))))]

  [modification "Modification"
   (let [alteration "any addition to, or deletion from, the substance or structure of"
         object "file or other storage"
         targets (is (List Text)
                     (list (format "a " object " contained in " (the #term licensed_work))
                           (format "any new " object " that contains any part of " (the #term licensed_work))
                           (format "any " object " which replaces or otherwise alters the original functionality of "(the #term licensed_work) " at runtime")))]
     ($.paragraph (list (format alteration " " ($.or targets)))))]

  [required_component "Required Component"
   (let [possibilities (is (List Text)
                           (list "text"
                                 "program"
                                 "script"
                                 "schema"
                                 "interface definition"
                                 "control file"
                                 "other work"))]
     ($.paragraph (list (format "any " ($.or possibilities)
                                " created by " (the #term recipient)
                                " which is required by a third party to successfully install and run a " (the #term derivative_work)
                                " by " (the #term recipient)))))]

  [extension "Extension"
   (let [possibilities (is (List Text)
                           (list (the #term modification)
                                 (the #term derivative_work)
                                 (the #term required_component)))]
     ($.paragraph (list (format "any " ($.or possibilities)))))]

  [contribution "Contribution"
   ($.paragraph (list (format "any " covered_work_description ", including the original version of " (the #term licensed_work)
                              " and any " (the #term extension) " to " (the #term licensed_work)
                              ", that is intentionally communicated as a " (the #term submission)
                              " to " (the #term licensor)
                              " for inclusion in " (the #term licensed_work) " by the copyright owner"
                              ", or by a " (the #term legal_entity) " authorized to submit on behalf of the copyright owner")))]

  [contributor "Contributor"
   ($.paragraph (list (format (the #term licensor)
                              " or any " (the #term legal_entity)
                              " on behalf of whom a " (the #term contribution)
                              " has been received by " (the #term licensor)
                              ", and subsequently incorporated within " (the #term licensed_work))))]

  [patent_claim (format "Patent Claim Of A " (the #term contributor))
   (let [claim_types (is (List Text)
                         (list "method"
                               "process"
                               "apparatus"))]
     ($.paragraph (list (format "any patent claim(s), including without limitation " ($.and claim_types) " claims, in any patent "
                                (the #term licensable) " by such " (the #term contributor)
                                " that would be infringed, but for the grant of " (the #term license)
                                ", to " ($.or patent_rights) " its " (the #term contribution)))))]
  
  [secondary_license "Secondary License"
   ($.paragraph (list (format "any license for which compliance does not imply or require violating the terms of " (the #term license))))]

  [sell "Sell"
   ($.paragraph (list (format "practicing any or all of the rights granted to " (the #term recipient)
                              " under " (the #term license)
                              " to provide to third parties, for a fee or other consideration "
                              "(including without limitation fees for " ($.or commercial_services)
                              " related to "(the #term licensed_work) ")"
                              ", a product or service whose value derives, entirely or substantially, from the functionality of " (the #term licensed_work))))]

  [personal_use "Personal Use"
   (let [valid_purposes (is (List Text)
                            (list "personal"
                                  "private"
                                  "non-commercial"))]
     ($.paragraph (list (format "use of " (the #term licensed_work) " by an individual solely for his or her " ($.and valid_purposes) " purposes")
                        (format "An individual's use of " (the #term licensed_work) " in his or her capacity as an " ($.or individual_capacities) " does not qualify"))))]

  [serve "Serve"
   ($.paragraph (list (format "to deliver " (the #term licensed_work)
                              " and/or any " (the #term extension)
                              " by means of a computer network to one or more computers for purposes of execution of " (the #term licensed_work)
                              ", and/or the " (the #term extension))))]

  [research "Research"
   ($.paragraph (list (format "investigation or experimentation for the purpose of understanding the nature and limits of " (the #term licensed_work) " and its potential uses")))]

  [deploy "Deploy"
   (let [deployment_types (is (List Text)
                              (list "use"
                                    (the #term serve)
                                    "sublicense"
                                    "distribute"))
         sub_licensing (is (-> Text Text)
                           (function (_ type)
                             (format type " sublicensing")))
         third_party_interactions (is (List Text)
                                      (list (sub_licensing "direct")
                                            (sub_licensing "indirect")
                                            "distribution"))
         basic_definition (format "to " ($.or deployment_types)
                                  " " (the #term licensed_work)
                                  " other than for internal " (the #term research)
                                  " and/or " (the #term personal_use)
                                  " by " (the #term recipient))
         examples (format "any and all internal use or distribution of " (the #term licensed_work)
                          " within a business or organization in which " (the #term recipient)
                          " participates")
         exceptions (format "for " (the #term research) " and/or " (the #term personal_use))]
     ($.paragraph (list (format basic_definition
                                ", and includes without limitation, " examples
                                ", other than " exceptions
                                ", as well as " ($.or third_party_interactions)
                                " of " (the #term licensed_work)
                                " by " (the #term recipient)
                                " to any third party in any form or manner"))))]

  [electronic_distribution_mechanism "Electronic Distribution Mechanism"
   ($.paragraph (list "a mechanism generally accepted in the software development community for the electronic transfer of data, such as download from an FTP server or web site, where such mechanism is publicly accessible"))]
  )

(def: .public all
  (List Definition)
  (list license
        licensable
        legal_entity
        recipient
        licensor
        source_code_form
        object_form
        licensed_work
        derivative_work
        submission
        modification
        required_component
        extension
        contribution
        contributor
        patent_claim
        secondary_license
        sell
        personal_use
        serve
        research
        deploy
        electronic_distribution_mechanism))