Yacine Jernite commited on
Commit
ac6c40f
1 Parent(s): 6ddeb1a

initial commit

Browse files
app.py ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from datetime import datetime
2
+
3
+ import datacards
4
+
5
+ from datacards import (
6
+ considerations_page,
7
+ considerations_summary,
8
+ context_page,
9
+ context_summary,
10
+ curation_page,
11
+ curation_summary,
12
+ gem_page,
13
+ gem_summary,
14
+ overview_page,
15
+ overview_summary,
16
+ results_page,
17
+ results_summary,
18
+ )
19
+
20
+ import streamlit as st
21
+
22
+ ##################
23
+ ## streamlit
24
+ ##################
25
+ st.set_page_config(
26
+ page_title="GEM Data Card Input Form",
27
+ page_icon="https://avatars.githubusercontent.com/u/72612128",
28
+ layout="wide",
29
+ initial_sidebar_state="auto",
30
+ )
31
+
32
+ page_description = """
33
+ # GEM Data Card Input Form
34
+
35
+ This application was designed to support the GEM v2 data hackathon.
36
+
37
+ It allows users to fill out all of the information going into the data documentation when submitting a new dataset.
38
+
39
+ Use the left sidebar to navigate:
40
+ - "**Dataset at a Glance**" shows selected information and tracks progress
41
+ - Each of the "**Section:**" pages opens a form for a specific section of the card
42
+ - Go to "**Review and Save**" when you are done to save your data card
43
+ """
44
+
45
+ _N_FIELDS = datacards.considerations.N_FIELDS + \
46
+ datacards.context.N_FIELDS + \
47
+ datacards.curation.N_FIELDS + \
48
+ datacards.gem.N_FIELDS + \
49
+ datacards.overview.N_FIELDS + \
50
+ datacards.results.N_FIELDS
51
+
52
+ def main():
53
+ if "save_state" not in st.session_state:
54
+ st.session_state.save_state = {}
55
+
56
+ if "card_dict" not in st.session_state:
57
+ st.session_state.card_dict = {}
58
+
59
+ st.sidebar.markdown(page_description, unsafe_allow_html=True)
60
+ pages = {
61
+ "Dataset at a Glance": glance_page,
62
+ "Section: Dataset Overview": overview_page,
63
+ "Section: Dataset in GEM": gem_page,
64
+ "Section: Dataset Curation": curation_page,
65
+ "Section: Previous Results": results_page,
66
+ "Section: Considerations for Using Data": considerations_page,
67
+ "Section: Broader Social Context": context_page,
68
+ "Review and Save": review_page,
69
+ }
70
+ app_mode = st.sidebar.radio(
71
+ label="Navigation menu:",
72
+ options=list(pages.keys()),
73
+ index=0,
74
+ )
75
+ st.markdown("#### GEM Data Card Input Form")
76
+ pages[app_mode]()
77
+
78
+ def glance_page():
79
+ with st.expander("Dataset at a Glance", expanded=True):
80
+ st.markdown(f"### Dataset Name: {st.session_state.save_state.get('dataset_name', '')}")
81
+ dataset_summary = ""
82
+ dataset_summary += f"- **Dataset Website**: {st.session_state.save_state.get('overview_where_website', '')}\n"
83
+ dataset_summary += f"- **Dataset Contact**: {st.session_state.save_state.get('overview_where_contact-name', '')}\n"
84
+ dataset_summary += f"- **Dataset License**: {st.session_state.save_state.get('overview_languages_license', '')}\n"
85
+ dataset_summary += f"- **Multilingual Dataset**: {st.session_state.save_state.get('overview_languages_is-multilingual', '')}\n"
86
+ dataset_summary += f"- **Dataset Languages**: {', '.join(st.session_state.save_state.get('overview_languages_language-names', []))}\n"
87
+ dataset_summary += f"- **Dataset Supported Task**: {st.session_state.save_state.get('overview_languages_task', '')}\n"
88
+ dataset_summary += f"- **Communicative Goal**: {st.session_state.save_state.get('dataset_communicative', '')}\n"
89
+ dataset_summary += f"- **Language Data Origin**: {st.session_state.save_state.get('curation_language_origin', '')}\n"
90
+ dataset_summary += f"- **Annotation Data Origin**: {st.session_state.save_state.get('curation_annotation_origin', '')}\n"
91
+ dataset_summary += f"- **Likelihood of PII**: {st.session_state.save_state.get('pii_likelihood', '')}\n"
92
+ st.markdown(dataset_summary + "---\n")
93
+ num_fields = sum([len(dct) for k in st.session_state.get("card_dict", {}) for dct in st.session_state.card_dict.get(k, {}).values()])
94
+ st.markdown(f"You have currently filled out **{num_fields} of {_N_FIELDS} required fields** in the data card.")
95
+ left_col, right_col = st.columns(2)
96
+ with left_col:
97
+ overview_summary()
98
+ gem_summary()
99
+ curation_summary()
100
+ with right_col:
101
+ results_summary()
102
+ considerations_summary()
103
+ context_summary()
104
+
105
+ def review_page():
106
+ st.write(st.session_state.get("card_dict", {}))
107
+ # TODO add buttons to save and download
108
+
109
+ if __name__ == "__main__":
110
+ main()
datacards/__init__.py ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ from .considerations import considerations_page, considerations_summary
2
+ from .context import context_page, context_summary
3
+ from .curation import curation_page, curation_summary
4
+ from .gem import gem_page, gem_summary
5
+ from .overview import overview_page, overview_summary
6
+ from .results import results_page, results_summary
datacards/considerations.py ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+
3
+ from .streamlit_utils import (
4
+ make_text_input
5
+ )
6
+
7
+ N_FIELDS = 1
8
+
9
+ def considerations_page():
10
+ return None
11
+
12
+ def considerations_summary():
13
+ return None
datacards/context.py ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+
3
+ from .streamlit_utils import (
4
+ make_text_input
5
+ )
6
+
7
+ N_FIELDS = 1
8
+
9
+ def context_page():
10
+ return None
11
+
12
+ def context_summary():
13
+ return None
datacards/curation.py ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+
3
+ from .streamlit_utils import (
4
+ make_text_input
5
+ )
6
+
7
+ N_FIELDS = 1
8
+
9
+ def curation_page():
10
+ return None
11
+
12
+ def curation_summary():
13
+ return None
datacards/gem.py ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+
3
+ from .streamlit_utils import (
4
+ make_text_input
5
+ )
6
+
7
+ N_FIELDS = 1
8
+
9
+ def gem_page():
10
+ return None
11
+
12
+ def gem_summary():
13
+ return None
datacards/overview.py ADDED
@@ -0,0 +1,194 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ import streamlit as st
3
+
4
+ from os.path import join as pjoin
5
+
6
+ from .streamlit_utils import (
7
+ make_multiselect,
8
+ make_selectbox,
9
+ make_text_area,
10
+ make_text_input,
11
+ make_radio,
12
+ )
13
+
14
+ N_FIELDS_WHERE = 9
15
+ N_FIELDS_LANGUAGES = 6
16
+ N_FIELDS_CREDIT = 3
17
+ N_FIELDS_STRUCTURE = 7
18
+
19
+ N_FIELDS = N_FIELDS_WHERE + \
20
+ N_FIELDS_LANGUAGES + \
21
+ N_FIELDS_CREDIT + \
22
+ N_FIELDS_STRUCTURE
23
+
24
+
25
+ languages_bcp47 = [
26
+ x
27
+ for x in json.load(open(pjoin("resources", "bcp47.json"), encoding="utf-8"))["subtags"]
28
+ if x["type"] == "language"
29
+ ]
30
+
31
+ license_list = json.load(open(pjoin("resources", "licenses.json"), encoding="utf-8"))
32
+
33
+ def overview_page():
34
+ st.session_state.card_dict["overview"] = st.session_state.card_dict.get("overview", {})
35
+ with st.expander("Where to find", expanded=False):
36
+ key_pref = ["overview", "where"]
37
+ st.session_state.card_dict["overview"]["where"] = st.session_state.card_dict.get("where", {})
38
+ make_text_input(
39
+ label="What is the webpage for the dataset (if it exists)?",
40
+ key_list=key_pref + ["website"],
41
+ help="[URL]",
42
+ )
43
+ make_text_input(
44
+ label="What is the link to where the original dataset is hosted?",
45
+ key_list=key_pref + ["data-url"],
46
+ help="[URL]",
47
+ )
48
+ make_text_input(
49
+ label="What is the link to the paper describing the dataset (open access preferred)?",
50
+ key_list=key_pref + ["paper-url"],
51
+ help="[URL]",
52
+ )
53
+ make_text_area(
54
+ label="Provide the BibTex-formatted reference for the dataset.",
55
+ key_list=key_pref + ["paper-bibtext"],
56
+ help="[free text]",
57
+ )
58
+ make_radio(
59
+ label="Does the dataset have an active leaderboard?",
60
+ options=["no", "yes"],
61
+ key_list=key_pref + ["has-leaderboard"],
62
+ help="If no, enter N/A for the following two fields",
63
+ )
64
+ make_text_input(
65
+ label="Provide a link to the leaderboard if it exists. Otherwise, enter N/A.",
66
+ key_list=key_pref + ["leaderboard-url"],
67
+ help="[URL] or N/A",
68
+ )
69
+ make_text_area(
70
+ label="Briefly describe how the leaderboard evaluates models if it exists. Otherwise, enter N/A.",
71
+ key_list=key_pref + ["leaderboard-description"],
72
+ help="[free text; a paragraph] or N/A",
73
+ )
74
+ make_text_input(
75
+ label="If known, provide the name of at least one person the reader can contact for questions about the dataset.",
76
+ key_list=key_pref + ["contact-name"],
77
+ help="[free text]",
78
+ )
79
+ make_text_input(
80
+ label="If known, provide the email of at least one person the reader can contact for questions about the dataset.",
81
+ key_list=key_pref + ["contact-email"],
82
+ help="[free text]",
83
+ )
84
+ with st.expander("Languages and Intended Use", expanded=False):
85
+ key_pref = ["overview", "languages"]
86
+ st.session_state.card_dict["overview"]["languages"] = st.session_state.card_dict.get("languages", {})
87
+ make_radio(
88
+ label="Is the dataset multilingual?",
89
+ options=["no", "yes"],
90
+ key_list=key_pref + ["is-multilingual"],
91
+ help="More than one language present in all of the text fields",
92
+ )
93
+ make_multiselect(
94
+ label="What languages/dialects are covered in the dataset?",
95
+ key_list=key_pref + ["language-names"],
96
+ options=[
97
+ ", ".join(x["description"]) for x in languages_bcp47
98
+ ],
99
+ help="This is a comprehensive list of languages obtained from the BCP-47 standard list.",
100
+ )
101
+ make_text_area(
102
+ label="What is the intended use of the dataset?",
103
+ key_list=key_pref + ["intended-use"],
104
+ help="[free text, paragraphs]",
105
+ )
106
+ make_selectbox(
107
+ label="What is the license of the dataset?",
108
+ key_list=key_pref + ["license"],
109
+ options=license_list,
110
+ help="select `other` if missing from list, `unkown` if not provided"
111
+ )
112
+ make_text_input(
113
+ label="What primary task does the dataset support?",
114
+ key_list=key_pref + ["task"],
115
+ help="[free text]",
116
+ )
117
+ make_text_area(
118
+ label="Provide a short description of the communicative goal of a model trained for this task on this dataset.",
119
+ key_list=key_pref + ["communicative"],
120
+ help="[free text, a paragraph] (e.g., describe a restaurant from a structured representation of its attributes)",
121
+ )
122
+ with st.expander("Credit", expanded=False):
123
+ key_pref = ["overview", "credit"]
124
+ st.session_state.card_dict["overview"]["credit"] = st.session_state.card_dict.get("credit", {})
125
+ make_text_input(
126
+ label="Who created the original dataset? List the people involved in collecting the dataset and their affiliation(s).",
127
+ key_list=key_pref + ["creators"],
128
+ help="name (affiliation); comma-separated",
129
+ )
130
+ make_text_input(
131
+ label="Who funded the data creation?",
132
+ key_list=key_pref + ["funding"],
133
+ help="[free text] enter N/A if unkown",
134
+ )
135
+ make_text_input(
136
+ label="Who contributed to the data card and adding the dataset to GEM? List the people+affiliations involved in creating this data card and who helped integrate this dataset into GEM.",
137
+ key_list=key_pref + ["gem-added-by"],
138
+ help="name (affiliation); comma-separated",
139
+ )
140
+ with st.expander("Structure", expanded=False):
141
+ key_pref = ["overview", "structure"]
142
+ st.session_state.card_dict["overview"]["structure"] = st.session_state.card_dict.get("structure", {})
143
+ data_fields_help = """
144
+ [free text; paragraphs]
145
+ - Mention their data type, and whether and how they are used as part of the generation pipeline.
146
+ - Describe each fields' attributes, such as whether they are at the character level or word level, whether they are contiguous or not, etc.
147
+ - If the datasets contain example IDs, state whether they have an inherent meaning, such as a mapping to other datasets or pointing to relationships between data points.
148
+ """
149
+ make_text_area(
150
+ label="List and describe the fields present in the dataset.",
151
+ key_list=key_pref + ["data-fields"],
152
+ help=data_fields_help,
153
+ )
154
+ make_text_area(
155
+ label="How was the dataset structure determined?",
156
+ key_list=key_pref + ["structure-description"],
157
+ help="[free text; paragraph]",
158
+ )
159
+ make_text_area(
160
+ label="How were the labels chosen?",
161
+ key_list=key_pref + ["structure-labels"],
162
+ help="[free text; paragraph]",
163
+ )
164
+ make_text_area(
165
+ label="Provide a JSON formatted example of a typical instance in the dataset.",
166
+ key_list=key_pref + ["structure-example"],
167
+ help="[JSON]",
168
+ )
169
+ make_text_area(
170
+ label="Describe and name the splits in the dataset if there are more than one.",
171
+ key_list=key_pref + ["structure-splits"],
172
+ help="[free text, paragraphs] - As appropriate, provide any descriptive statistics for the features, such as size, average lengths of input and output.",
173
+ )
174
+ make_text_area(
175
+ label="Describe any criteria for splitting the data, if used. If there are differences between the splits (e.g., if the training annotations are machine-generated and the dev and test ones are created by humans, or if different numbers of annotators contributed to each example), describe them here.",
176
+ key_list=key_pref + ["structure-splits-criteria"],
177
+ help="[free text, paragraphs]",
178
+ )
179
+ make_text_area(
180
+ label="What does an outlier of the dataset in terms of length/perplexity/embedding look like?",
181
+ key_list=key_pref + ["structure-outlier"],
182
+ help="[free text + json formatted text/file for an example]",
183
+ )
184
+
185
+
186
+ def overview_summary():
187
+ with st.expander("Dataset Overview Completion", expanded=True):
188
+ completion_markdown = ""
189
+ completion_markdown += f"- **Overall competion:**\n - {sum([len(dct) for dct in st.session_state.card_dict.get('overview', {}).values()])} of {N_FIELDS} fields\n"
190
+ completion_markdown += f"- **Sub-section - Where to find:**\n - {len(st.session_state.card_dict.get('overview', {}).get('where', {}))} of {N_FIELDS_WHERE} fields\n"
191
+ completion_markdown += f"- **Sub-section - Languages and Intended Use:**\n - {len(st.session_state.card_dict.get('overview', {}).get('languages', {}))} of {N_FIELDS_LANGUAGES} fields\n"
192
+ completion_markdown += f"- **Sub-section - Credit:**\n - {len(st.session_state.card_dict.get('overview', {}).get('credit', {}))} of {N_FIELDS_CREDIT} fields\n"
193
+ completion_markdown += f"- **Sub-section - Structure:**\n - {len(st.session_state.card_dict.get('overview', {}).get('structure', {}))} of {N_FIELDS_STRUCTURE} fields\n"
194
+ st.markdown(completion_markdown)
datacards/results.py ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+
3
+ from .streamlit_utils import (
4
+ make_text_input
5
+ )
6
+
7
+ N_FIELDS = 1
8
+
9
+ def results_page():
10
+ return None
11
+
12
+ def results_summary():
13
+ return None
datacards/streamlit_utils.py ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+
3
+
4
+ # Streamlit widgets with persistence
5
+ # TODO: better detection of whether a field has been updated
6
+ def update_card_dict(key_list, default=None):
7
+ state_key = "_".join(key_list)
8
+ if st.session_state.save_state.get(state_key, default) != default:
9
+ card_key = key_list[-1]
10
+ current_dict = st.session_state.card_dict
11
+ for key in key_list[:-1]:
12
+ current_dict = current_dict[key]
13
+ current_dict[card_key] = st.session_state.save_state[state_key]
14
+
15
+
16
+ def make_multiselect(
17
+ key_list, label, options, format_func=lambda x: x, help="", default=None
18
+ ):
19
+ key = "_".join(key_list)
20
+ if key in st.session_state:
21
+ st.session_state.save_state[key] = st.session_state[key]
22
+ elif default is not None:
23
+ st.session_state.save_state[key] = default
24
+ res = st.multiselect(
25
+ label=label,
26
+ options=options,
27
+ format_func=format_func,
28
+ key=key,
29
+ default=st.session_state.save_state.get(key, []),
30
+ help=help,
31
+ )
32
+ update_card_dict(key_list, default=[])
33
+ return res
34
+
35
+
36
+ def make_selectbox(key_list, label, options, format_func=lambda x: x, help="", index=None, on_change=None):
37
+ key = "_".join(key_list)
38
+ if key in st.session_state:
39
+ st.session_state.save_state[key] = st.session_state[key]
40
+ elif index is not None:
41
+ st.session_state.save_state[key] = options[index]
42
+ res = st.selectbox(
43
+ label=label,
44
+ options=options,
45
+ format_func=format_func,
46
+ key=key,
47
+ index=options.index(
48
+ st.session_state.save_state.get(key, options[0])
49
+ ), # if st.session_state.save_state.get(key, options[0]) in options else 0,
50
+ help=help,
51
+ on_change=on_change,
52
+ )
53
+ update_card_dict(key_list, default=[])
54
+ return res
55
+
56
+
57
+ def make_radio(key_list, label, options, format_func=lambda x: x, help="", index=None):
58
+ key = "_".join(key_list)
59
+ if key in st.session_state:
60
+ st.session_state.save_state[key] = st.session_state[key]
61
+ elif index is not None:
62
+ st.session_state.save_state[key] = options[index]
63
+ res = st.radio(
64
+ label=label,
65
+ options=options,
66
+ format_func=format_func,
67
+ key=key,
68
+ index=options.index(st.session_state.save_state.get(key, options[0])),
69
+ help=help,
70
+ )
71
+ update_card_dict(key_list)
72
+ return res
73
+
74
+
75
+ def make_text_input(key_list, label, help="", value=None):
76
+ key = "_".join(key_list)
77
+ if key in st.session_state:
78
+ st.session_state.save_state[key] = st.session_state[key]
79
+ elif value is not None:
80
+ st.session_state.save_state[key] = value
81
+ res = st.text_input(
82
+ label=label,
83
+ key=key,
84
+ value=st.session_state.save_state.get(key, ""),
85
+ help=help,
86
+ )
87
+ update_card_dict(key_list, default="")
88
+ return res
89
+
90
+
91
+ def make_text_area(key_list, label, help="", value=None):
92
+ key = "_".join(key_list)
93
+ if key in st.session_state:
94
+ st.session_state.save_state[key] = st.session_state[key]
95
+ elif value is not None:
96
+ st.session_state.save_state[key] = value
97
+ res = st.text_area(
98
+ label=label,
99
+ key=key,
100
+ value=st.session_state.save_state.get(key, ""),
101
+ help=help,
102
+ )
103
+ update_card_dict(key_list, default="")
104
+ return res
105
+
106
+
107
+ def make_checkbox(key_list, label, help="", value=None):
108
+ key = "_".join(key_list)
109
+ if key in st.session_state:
110
+ st.session_state.save_state[key] = st.session_state[key]
111
+ elif value is not None:
112
+ st.session_state.save_state[key] = value
113
+ res = st.checkbox(
114
+ label=label,
115
+ key=key,
116
+ value=st.session_state.save_state.get(key, False),
117
+ help=help,
118
+ )
119
+ update_card_dict(key_list)
120
+ return res
resources/bcp47.json ADDED
The diff for this file is too large to render. See raw diff
 
resources/licenses.json ADDED
@@ -0,0 +1,452 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ "other: Other license",
3
+ "unknown: License information unavailable",
4
+ "0bsd: BSD Zero Clause License",
5
+ "aal: Attribution Assurance License",
6
+ "abstyles: Abstyles License",
7
+ "adobe-2006: Adobe Systems Incorporated Source Code License Agreement",
8
+ "adobe-glyph: Adobe Glyph List License",
9
+ "adsl: Amazon Digital Services License",
10
+ "afl-1.1: Academic Free License v1.1",
11
+ "afl-1.2: Academic Free License v1.2",
12
+ "afl-2.0: Academic Free License v2.0",
13
+ "afl-2.1: Academic Free License v2.1",
14
+ "afl-3.0: Academic Free License v3.0",
15
+ "afmparse: Afmparse License",
16
+ "agpl-1.0: Affero General Public License v1.0",
17
+ "agpl-1.0-only: Affero General Public License v1.0 only",
18
+ "agpl-1.0-or-later: Affero General Public License v1.0 or later",
19
+ "agpl-3.0: GNU Affero General Public License v3.0",
20
+ "agpl-3.0-only: GNU Affero General Public License v3.0 only",
21
+ "agpl-3.0-or-later: GNU Affero General Public License v3.0 or later",
22
+ "aladdin: Aladdin Free Public License",
23
+ "amdplpa: AMD's plpa_map.c License",
24
+ "aml: Apple MIT License",
25
+ "ampas: Academy of Motion Picture Arts and Sciences BSD",
26
+ "antlr-pd: ANTLR Software Rights Notice",
27
+ "antlr-pd-fallback: ANTLR Software Rights Notice with license fallback",
28
+ "apache-1.0: Apache License 1.0",
29
+ "apache-1.1: Apache License 1.1",
30
+ "apache-2.0: Apache License 2.0",
31
+ "apafml: Adobe Postscript AFM License",
32
+ "apl-1.0: Adaptive Public License 1.0",
33
+ "apsl-1.0: Apple Public Source License 1.0",
34
+ "apsl-1.1: Apple Public Source License 1.1",
35
+ "apsl-1.2: Apple Public Source License 1.2",
36
+ "apsl-2.0: Apple Public Source License 2.0",
37
+ "artistic-1.0: Artistic License 1.0",
38
+ "artistic-1.0-cl8: Artistic License 1.0 w/clause 8",
39
+ "artistic-1.0-perl: Artistic License 1.0 (Perl)",
40
+ "artistic-2.0: Artistic License 2.0",
41
+ "bahyph: Bahyph License",
42
+ "barr: Barr License",
43
+ "beerware: Beerware License",
44
+ "bittorrent-1.0: BitTorrent Open Source License v1.0",
45
+ "bittorrent-1.1: BitTorrent Open Source License v1.1",
46
+ "blessing: SQLite Blessing",
47
+ "blueoak-1.0.0: Blue Oak Model License 1.0.0",
48
+ "borceux: Borceux license",
49
+ "bsd-1-clause: BSD 1-Clause License",
50
+ "bsd-2-clause: BSD 2-Clause \"Simplified\" License",
51
+ "bsd-2-clause-freebsd: BSD 2-Clause FreeBSD License",
52
+ "bsd-2-clause-netbsd: BSD 2-Clause NetBSD License",
53
+ "bsd-2-clause-patent: BSD-2-Clause Plus Patent License",
54
+ "bsd-2-clause-views: BSD 2-Clause with views sentence",
55
+ "bsd-3-clause: BSD 3-Clause \"New\" or \"Revised\" License",
56
+ "bsd-3-clause-attribution: BSD with attribution",
57
+ "bsd-3-clause-clear: BSD 3-Clause Clear License",
58
+ "bsd-3-clause-lbnl: Lawrence Berkeley National Labs BSD variant license",
59
+ "bsd-3-clause-no-nuclear-license: BSD 3-Clause No Nuclear License",
60
+ "bsd-3-clause-no-nuclear-license-2014: BSD 3-Clause No Nuclear License 2014",
61
+ "bsd-3-clause-no-nuclear-warranty: BSD 3-Clause No Nuclear Warranty",
62
+ "bsd-3-clause-open-mpi: BSD 3-Clause Open MPI variant",
63
+ "bsd-4-clause: BSD 4-Clause \"Original\" or \"Old\" License",
64
+ "bsd-4-clause-uc: BSD-4-Clause (University of California-Specific)",
65
+ "bsd-protection: BSD Protection License",
66
+ "bsd-source-code: BSD Source Code Attribution",
67
+ "bsl-1.0: Boost Software License 1.0",
68
+ "busl-1.1: Business Source License 1.1",
69
+ "bzip2-1.0.5: bzip2 and libbzip2 License v1.0.5",
70
+ "bzip2-1.0.6: bzip2 and libbzip2 License v1.0.6",
71
+ "cal-1.0: Cryptographic Autonomy License 1.0",
72
+ "cal-1.0-combined-work-exception: Cryptographic Autonomy License 1.0 (Combined Work Exception)",
73
+ "caldera: Caldera License",
74
+ "catosl-1.1: Computer Associates Trusted Open Source License 1.1",
75
+ "cc-by-1.0: Creative Commons Attribution 1.0 Generic",
76
+ "cc-by-2.0: Creative Commons Attribution 2.0 Generic",
77
+ "cc-by-2.5: Creative Commons Attribution 2.5 Generic",
78
+ "cc-by-3.0: Creative Commons Attribution 3.0 Unported",
79
+ "cc-by-3.0-at: Creative Commons Attribution 3.0 Austria",
80
+ "cc-by-3.0-us: Creative Commons Attribution 3.0 United States",
81
+ "cc-by-4.0: Creative Commons Attribution 4.0 International",
82
+ "cc-by-nc-1.0: Creative Commons Attribution Non Commercial 1.0 Generic",
83
+ "cc-by-nc-2.0: Creative Commons Attribution Non Commercial 2.0 Generic",
84
+ "cc-by-nc-2.5: Creative Commons Attribution Non Commercial 2.5 Generic",
85
+ "cc-by-nc-3.0: Creative Commons Attribution Non Commercial 3.0 Unported",
86
+ "cc-by-nc-4.0: Creative Commons Attribution Non Commercial 4.0 International",
87
+ "cc-by-nc-nd-1.0: Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic",
88
+ "cc-by-nc-nd-2.0: Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic",
89
+ "cc-by-nc-nd-2.5: Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic",
90
+ "cc-by-nc-nd-3.0: Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported",
91
+ "cc-by-nc-nd-3.0-igo: Creative Commons Attribution Non Commercial No Derivatives 3.0 IGO",
92
+ "cc-by-nc-nd-4.0: Creative Commons Attribution Non Commercial No Derivatives 4.0 International",
93
+ "cc-by-nc-sa-1.0: Creative Commons Attribution Non Commercial Share Alike 1.0 Generic",
94
+ "cc-by-nc-sa-2.0: Creative Commons Attribution Non Commercial Share Alike 2.0 Generic",
95
+ "cc-by-nc-sa-2.5: Creative Commons Attribution Non Commercial Share Alike 2.5 Generic",
96
+ "cc-by-nc-sa-3.0: Creative Commons Attribution Non Commercial Share Alike 3.0 Unported",
97
+ "cc-by-nc-sa-4.0: Creative Commons Attribution Non Commercial Share Alike 4.0 International",
98
+ "cc-by-nd-1.0: Creative Commons Attribution No Derivatives 1.0 Generic",
99
+ "cc-by-nd-2.0: Creative Commons Attribution No Derivatives 2.0 Generic",
100
+ "cc-by-nd-2.5: Creative Commons Attribution No Derivatives 2.5 Generic",
101
+ "cc-by-nd-3.0: Creative Commons Attribution No Derivatives 3.0 Unported",
102
+ "cc-by-nd-4.0: Creative Commons Attribution No Derivatives 4.0 International",
103
+ "cc-by-sa-1.0: Creative Commons Attribution Share Alike 1.0 Generic",
104
+ "cc-by-sa-2.0: Creative Commons Attribution Share Alike 2.0 Generic",
105
+ "cc-by-sa-2.0-uk: Creative Commons Attribution Share Alike 2.0 England and Wales",
106
+ "cc-by-sa-2.5: Creative Commons Attribution Share Alike 2.5 Generic",
107
+ "cc-by-sa-3.0: Creative Commons Attribution Share Alike 3.0 Unported",
108
+ "cc-by-sa-3.0-at: Creative Commons Attribution-Share Alike 3.0 Austria",
109
+ "cc-by-sa-4.0: Creative Commons Attribution Share Alike 4.0 International",
110
+ "cc-pddc: Creative Commons Public Domain Dedication and Certification",
111
+ "cc0-1.0: Creative Commons Zero v1.0 Universal",
112
+ "cddl-1.0: Common Development and Distribution License 1.0",
113
+ "cddl-1.1: Common Development and Distribution License 1.1",
114
+ "cdla-permissive-1.0: Community Data License Agreement Permissive 1.0",
115
+ "cdla-sharing-1.0: Community Data License Agreement Sharing 1.0",
116
+ "cecill-1.0: CeCILL Free Software License Agreement v1.0",
117
+ "cecill-1.1: CeCILL Free Software License Agreement v1.1",
118
+ "cecill-2.0: CeCILL Free Software License Agreement v2.0",
119
+ "cecill-2.1: CeCILL Free Software License Agreement v2.1",
120
+ "cecill-b: CeCILL-B Free Software License Agreement",
121
+ "cecill-c: CeCILL-C Free Software License Agreement",
122
+ "cern-ohl-1.1: CERN Open Hardware Licence v1.1",
123
+ "cern-ohl-1.2: CERN Open Hardware Licence v1.2",
124
+ "cern-ohl-p-2.0: CERN Open Hardware Licence Version 2 - Permissive",
125
+ "cern-ohl-s-2.0: CERN Open Hardware Licence Version 2 - Strongly Reciprocal",
126
+ "cern-ohl-w-2.0: CERN Open Hardware Licence Version 2 - Weakly Reciprocal",
127
+ "clartistic: Clarified Artistic License",
128
+ "cnri-jython: CNRI Jython License",
129
+ "cnri-python: CNRI Python License",
130
+ "cnri-python-gpl-compatible: CNRI Python Open Source GPL Compatible License Agreement",
131
+ "condor-1.1: Condor Public License v1.1",
132
+ "copyleft-next-0.3.0: copyleft-next 0.3.0",
133
+ "copyleft-next-0.3.1: copyleft-next 0.3.1",
134
+ "cpal-1.0: Common Public Attribution License 1.0",
135
+ "cpl-1.0: Common Public License 1.0",
136
+ "cpol-1.02: Code Project Open License 1.02",
137
+ "crossword: Crossword License",
138
+ "crystalstacker: CrystalStacker License",
139
+ "cua-opl-1.0: CUA Office Public License v1.0",
140
+ "cube: Cube License",
141
+ "curl: curl License",
142
+ "d-fsl-1.0: Deutsche Freie Software Lizenz",
143
+ "diffmark: diffmark license",
144
+ "doc: DOC License",
145
+ "dotseqn: Dotseqn License",
146
+ "dsdp: DSDP License",
147
+ "dvipdfm: dvipdfm License",
148
+ "ecl-1.0: Educational Community License v1.0",
149
+ "ecl-2.0: Educational Community License v2.0",
150
+ "ecos-2.0: eCos license version 2.0",
151
+ "efl-1.0: Eiffel Forum License v1.0",
152
+ "efl-2.0: Eiffel Forum License v2.0",
153
+ "egenix: eGenix.com Public License 1.1.0",
154
+ "entessa: Entessa Public License v1.0",
155
+ "epics: EPICS Open License",
156
+ "epl-1.0: Eclipse Public License 1.0",
157
+ "epl-2.0: Eclipse Public License 2.0",
158
+ "erlpl-1.1: Erlang Public License v1.1",
159
+ "etalab-2.0: Etalab Open License 2.0",
160
+ "eudatagrid: EU DataGrid Software License",
161
+ "eupl-1.0: European Union Public License 1.0",
162
+ "eupl-1.1: European Union Public License 1.1",
163
+ "eupl-1.2: European Union Public License 1.2",
164
+ "eurosym: Eurosym License",
165
+ "fair: Fair License",
166
+ "frameworx-1.0: Frameworx Open License 1.0",
167
+ "freeimage: FreeImage Public License v1.0",
168
+ "fsfap: FSF All Permissive License",
169
+ "fsful: FSF Unlimited License",
170
+ "fsfullr: FSF Unlimited License (with License Retention)",
171
+ "ftl: Freetype Project License",
172
+ "gfdl-1.1: GNU Free Documentation License v1.1",
173
+ "gfdl-1.1-invariants-only: GNU Free Documentation License v1.1 only - invariants",
174
+ "gfdl-1.1-invariants-or-later: GNU Free Documentation License v1.1 or later - invariants",
175
+ "gfdl-1.1-no-invariants-only: GNU Free Documentation License v1.1 only - no invariants",
176
+ "gfdl-1.1-no-invariants-or-later: GNU Free Documentation License v1.1 or later - no invariants",
177
+ "gfdl-1.1-only: GNU Free Documentation License v1.1 only",
178
+ "gfdl-1.1-or-later: GNU Free Documentation License v1.1 or later",
179
+ "gfdl-1.2: GNU Free Documentation License v1.2",
180
+ "gfdl-1.2-invariants-only: GNU Free Documentation License v1.2 only - invariants",
181
+ "gfdl-1.2-invariants-or-later: GNU Free Documentation License v1.2 or later - invariants",
182
+ "gfdl-1.2-no-invariants-only: GNU Free Documentation License v1.2 only - no invariants",
183
+ "gfdl-1.2-no-invariants-or-later: GNU Free Documentation License v1.2 or later - no invariants",
184
+ "gfdl-1.2-only: GNU Free Documentation License v1.2 only",
185
+ "gfdl-1.2-or-later: GNU Free Documentation License v1.2 or later",
186
+ "gfdl-1.3: GNU Free Documentation License v1.3",
187
+ "gfdl-1.3-invariants-only: GNU Free Documentation License v1.3 only - invariants",
188
+ "gfdl-1.3-invariants-or-later: GNU Free Documentation License v1.3 or later - invariants",
189
+ "gfdl-1.3-no-invariants-only: GNU Free Documentation License v1.3 only - no invariants",
190
+ "gfdl-1.3-no-invariants-or-later: GNU Free Documentation License v1.3 or later - no invariants",
191
+ "gfdl-1.3-only: GNU Free Documentation License v1.3 only",
192
+ "gfdl-1.3-or-later: GNU Free Documentation License v1.3 or later",
193
+ "giftware: Giftware License",
194
+ "gl2ps: GL2PS License",
195
+ "glide: 3dfx Glide License",
196
+ "glulxe: Glulxe License",
197
+ "glwtpl: Good Luck With That Public License",
198
+ "gnuplot: gnuplot License",
199
+ "gpl-1.0: GNU General Public License v1.0 only",
200
+ "gpl-1.0+: GNU General Public License v1.0 or later",
201
+ "gpl-1.0-only: GNU General Public License v1.0 only",
202
+ "gpl-1.0-or-later: GNU General Public License v1.0 or later",
203
+ "gpl-2.0: GNU General Public License v2.0 only",
204
+ "gpl-2.0+: GNU General Public License v2.0 or later",
205
+ "gpl-2.0-only: GNU General Public License v2.0 only",
206
+ "gpl-2.0-or-later: GNU General Public License v2.0 or later",
207
+ "gpl-2.0-with-autoconf-exception: GNU General Public License v2.0 w/Autoconf exception",
208
+ "gpl-2.0-with-bison-exception: GNU General Public License v2.0 w/Bison exception",
209
+ "gpl-2.0-with-classpath-exception: GNU General Public License v2.0 w/Classpath exception",
210
+ "gpl-2.0-with-font-exception: GNU General Public License v2.0 w/Font exception",
211
+ "gpl-2.0-with-gcc-exception: GNU General Public License v2.0 w/GCC Runtime Library exception",
212
+ "gpl-3.0: GNU General Public License v3.0 only",
213
+ "gpl-3.0+: GNU General Public License v3.0 or later",
214
+ "gpl-3.0-only: GNU General Public License v3.0 only",
215
+ "gpl-3.0-or-later: GNU General Public License v3.0 or later",
216
+ "gpl-3.0-with-autoconf-exception: GNU General Public License v3.0 w/Autoconf exception",
217
+ "gpl-3.0-with-gcc-exception: GNU General Public License v3.0 w/GCC Runtime Library exception",
218
+ "gsoap-1.3b: gSOAP Public License v1.3b",
219
+ "haskellreport: Haskell Language Report License",
220
+ "hippocratic-2.1: Hippocratic License 2.1",
221
+ "hpnd: Historical Permission Notice and Disclaimer",
222
+ "hpnd-sell-variant: Historical Permission Notice and Disclaimer - sell variant",
223
+ "htmltidy: HTML Tidy License",
224
+ "ibm-pibs: IBM PowerPC Initialization and Boot Software",
225
+ "icu: ICU License",
226
+ "ijg: Independent JPEG Group License",
227
+ "imagemagick: ImageMagick License",
228
+ "imatix: iMatix Standard Function Library Agreement",
229
+ "imlib2: Imlib2 License",
230
+ "info-zip: Info-ZIP License",
231
+ "intel: Intel Open Source License",
232
+ "intel-acpi: Intel ACPI Software License Agreement",
233
+ "interbase-1.0: Interbase Public License v1.0",
234
+ "ipa: IPA Font License",
235
+ "ipl-1.0: IBM Public License v1.0",
236
+ "isc: ISC License",
237
+ "jasper-2.0: JasPer License",
238
+ "jpnic: Japan Network Information Center License",
239
+ "json: JSON License",
240
+ "lal-1.2: Licence Art Libre 1.2",
241
+ "lal-1.3: Licence Art Libre 1.3",
242
+ "latex2e: Latex2e License",
243
+ "leptonica: Leptonica License",
244
+ "lgpl-2.0: GNU Library General Public License v2 only",
245
+ "lgpl-2.0+: GNU Library General Public License v2 or later",
246
+ "lgpl-2.0-only: GNU Library General Public License v2 only",
247
+ "lgpl-2.0-or-later: GNU Library General Public License v2 or later",
248
+ "lgpl-2.1: GNU Lesser General Public License v2.1 only",
249
+ "lgpl-2.1+: GNU Library General Public License v2.1 or later",
250
+ "lgpl-2.1-only: GNU Lesser General Public License v2.1 only",
251
+ "lgpl-2.1-or-later: GNU Lesser General Public License v2.1 or later",
252
+ "lgpl-3.0: GNU Lesser General Public License v3.0 only",
253
+ "lgpl-3.0+: GNU Lesser General Public License v3.0 or later",
254
+ "lgpl-3.0-only: GNU Lesser General Public License v3.0 only",
255
+ "lgpl-3.0-or-later: GNU Lesser General Public License v3.0 or later",
256
+ "lgpllr: Lesser General Public License For Linguistic Resources",
257
+ "libpng: libpng License",
258
+ "libpng-2.0: PNG Reference Library version 2",
259
+ "libselinux-1.0: libselinux public domain notice",
260
+ "libtiff: libtiff License",
261
+ "liliq-p-1.1: Licence Libre du Qu\u00e9bec \u2013 Permissive version 1.1",
262
+ "liliq-r-1.1: Licence Libre du Qu\u00e9bec \u2013 R\u00e9ciprocit\u00e9 version 1.1",
263
+ "liliq-rplus-1.1: Licence Libre du Qu\u00e9bec \u2013 R\u00e9ciprocit\u00e9 forte version 1.1",
264
+ "linux-openib: Linux Kernel Variant of OpenIB.org license",
265
+ "lpl-1.0: Lucent Public License Version 1.0",
266
+ "lpl-1.02: Lucent Public License v1.02",
267
+ "lppl-1.0: LaTeX Project Public License v1.0",
268
+ "lppl-1.1: LaTeX Project Public License v1.1",
269
+ "lppl-1.2: LaTeX Project Public License v1.2",
270
+ "lppl-1.3a: LaTeX Project Public License v1.3a",
271
+ "lppl-1.3c: LaTeX Project Public License v1.3c",
272
+ "makeindex: MakeIndex License",
273
+ "miros: The MirOS Licence",
274
+ "mit: MIT License",
275
+ "mit-0: MIT No Attribution",
276
+ "mit-advertising: Enlightenment License (e16)",
277
+ "mit-cmu: CMU License",
278
+ "mit-enna: enna License",
279
+ "mit-feh: feh License",
280
+ "mit-open-group: MIT Open Group variant",
281
+ "mitnfa: MIT +no-false-attribs license",
282
+ "motosoto: Motosoto License",
283
+ "mpich2: mpich2 License",
284
+ "mpl-1.0: Mozilla Public License 1.0",
285
+ "mpl-1.1: Mozilla Public License 1.1",
286
+ "mpl-2.0: Mozilla Public License 2.0",
287
+ "mpl-2.0-no-copyleft-exception: Mozilla Public License 2.0 (no copyleft exception)",
288
+ "ms-pl: Microsoft Public License",
289
+ "ms-rl: Microsoft Reciprocal License",
290
+ "mtll: Matrix Template Library License",
291
+ "mulanpsl-1.0: Mulan Permissive Software License, Version 1",
292
+ "mulanpsl-2.0: Mulan Permissive Software License, Version 2",
293
+ "multics: Multics License",
294
+ "mup: Mup License",
295
+ "nasa-1.3: NASA Open Source Agreement 1.3",
296
+ "naumen: Naumen Public License",
297
+ "nbpl-1.0: Net Boolean Public License v1",
298
+ "ncgl-uk-2.0: Non-Commercial Government Licence",
299
+ "ncsa: University of Illinois/NCSA Open Source License",
300
+ "net-snmp: Net-SNMP License",
301
+ "netcdf: NetCDF license",
302
+ "newsletr: Newsletr License",
303
+ "ngpl: Nethack General Public License",
304
+ "nist-pd: NIST Public Domain Notice",
305
+ "nist-pd-fallback: NIST Public Domain Notice with license fallback",
306
+ "nlod-1.0: Norwegian Licence for Open Government Data",
307
+ "nlpl: No Limit Public License",
308
+ "nokia: Nokia Open Source License",
309
+ "nosl: Netizen Open Source License",
310
+ "noweb: Noweb License",
311
+ "npl-1.0: Netscape Public License v1.0",
312
+ "npl-1.1: Netscape Public License v1.1",
313
+ "nposl-3.0: Non-Profit Open Software License 3.0",
314
+ "nrl: NRL License",
315
+ "ntp: NTP License",
316
+ "ntp-0: NTP No Attribution",
317
+ "nunit: Nunit License",
318
+ "o-uda-1.0: Open Use of Data Agreement v1.0",
319
+ "occt-pl: Open CASCADE Technology Public License",
320
+ "oclc-2.0: OCLC Research Public License 2.0",
321
+ "odbl-1.0: ODC Open Database License v1.0",
322
+ "odc-by-1.0: Open Data Commons Attribution License v1.0",
323
+ "ofl-1.0: SIL Open Font License 1.0",
324
+ "ofl-1.0-no-rfn: SIL Open Font License 1.0 with no Reserved Font Name",
325
+ "ofl-1.0-rfn: SIL Open Font License 1.0 with Reserved Font Name",
326
+ "ofl-1.1: SIL Open Font License 1.1",
327
+ "ofl-1.1-no-rfn: SIL Open Font License 1.1 with no Reserved Font Name",
328
+ "ofl-1.1-rfn: SIL Open Font License 1.1 with Reserved Font Name",
329
+ "ogc-1.0: OGC Software License, Version 1.0",
330
+ "ogl-canada-2.0: Open Government Licence - Canada",
331
+ "ogl-uk-1.0: Open Government Licence v1.0",
332
+ "ogl-uk-2.0: Open Government Licence v2.0",
333
+ "ogl-uk-3.0: Open Government Licence v3.0",
334
+ "ogtsl: Open Group Test Suite License",
335
+ "oldap-1.1: Open LDAP Public License v1.1",
336
+ "oldap-1.2: Open LDAP Public License v1.2",
337
+ "oldap-1.3: Open LDAP Public License v1.3",
338
+ "oldap-1.4: Open LDAP Public License v1.4",
339
+ "oldap-2.0: Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B)",
340
+ "oldap-2.0.1: Open LDAP Public License v2.0.1",
341
+ "oldap-2.1: Open LDAP Public License v2.1",
342
+ "oldap-2.2: Open LDAP Public License v2.2",
343
+ "oldap-2.2.1: Open LDAP Public License v2.2.1",
344
+ "oldap-2.2.2: Open LDAP Public License 2.2.2",
345
+ "oldap-2.3: Open LDAP Public License v2.3",
346
+ "oldap-2.4: Open LDAP Public License v2.4",
347
+ "oldap-2.5: Open LDAP Public License v2.5",
348
+ "oldap-2.6: Open LDAP Public License v2.6",
349
+ "oldap-2.7: Open LDAP Public License v2.7",
350
+ "oldap-2.8: Open LDAP Public License v2.8",
351
+ "oml: Open Market License",
352
+ "openssl: OpenSSL License",
353
+ "opl-1.0: Open Public License v1.0",
354
+ "oset-pl-2.1: OSET Public License version 2.1",
355
+ "osl-1.0: Open Software License 1.0",
356
+ "osl-1.1: Open Software License 1.1",
357
+ "osl-2.0: Open Software License 2.0",
358
+ "osl-2.1: Open Software License 2.1",
359
+ "osl-3.0: Open Software License 3.0",
360
+ "parity-6.0.0: The Parity Public License 6.0.0",
361
+ "parity-7.0.0: The Parity Public License 7.0.0",
362
+ "pddl-1.0: ODC Public Domain Dedication & License 1.0",
363
+ "php-3.0: PHP License v3.0",
364
+ "php-3.01: PHP License v3.01",
365
+ "plexus: Plexus Classworlds License",
366
+ "polyform-noncommercial-1.0.0: PolyForm Noncommercial License 1.0.0",
367
+ "polyform-small-business-1.0.0: PolyForm Small Business License 1.0.0",
368
+ "postgresql: PostgreSQL License",
369
+ "psf-2.0: Python Software Foundation License 2.0",
370
+ "psfrag: psfrag License",
371
+ "psutils: psutils License",
372
+ "python-2.0: Python License 2.0",
373
+ "qhull: Qhull License",
374
+ "qpl-1.0: Q Public License 1.0",
375
+ "rdisc: Rdisc License",
376
+ "rhecos-1.1: Red Hat eCos Public License v1.1",
377
+ "rpl-1.1: Reciprocal Public License 1.1",
378
+ "rpl-1.5: Reciprocal Public License 1.5",
379
+ "rpsl-1.0: RealNetworks Public Source License v1.0",
380
+ "rsa-md: RSA Message-Digest License",
381
+ "rscpl: Ricoh Source Code Public License",
382
+ "ruby: Ruby License",
383
+ "sax-pd: Sax Public Domain Notice",
384
+ "saxpath: Saxpath License",
385
+ "scea: SCEA Shared Source License",
386
+ "sendmail: Sendmail License",
387
+ "sendmail-8.23: Sendmail License 8.23",
388
+ "sgi-b-1.0: SGI Free Software License B v1.0",
389
+ "sgi-b-1.1: SGI Free Software License B v1.1",
390
+ "sgi-b-2.0: SGI Free Software License B v2.0",
391
+ "shl-0.5: Solderpad Hardware License v0.5",
392
+ "shl-0.51: Solderpad Hardware License, Version 0.51",
393
+ "simpl-2.0: Simple Public License 2.0",
394
+ "sissl: Sun Industry Standards Source License v1.1",
395
+ "sissl-1.2: Sun Industry Standards Source License v1.2",
396
+ "sleepycat: Sleepycat License",
397
+ "smlnj: Standard ML of New Jersey License",
398
+ "smppl: Secure Messaging Protocol Public License",
399
+ "snia: SNIA Public License 1.1",
400
+ "spencer-86: Spencer License 86",
401
+ "spencer-94: Spencer License 94",
402
+ "spencer-99: Spencer License 99",
403
+ "spl-1.0: Sun Public License v1.0",
404
+ "ssh-openssh: SSH OpenSSH license",
405
+ "ssh-short: SSH short notice",
406
+ "sspl-1.0: Server Side Public License, v 1",
407
+ "standardml-nj: Standard ML of New Jersey License",
408
+ "sugarcrm-1.1.3: SugarCRM Public License v1.1.3",
409
+ "swl: Scheme Widget Library (SWL) Software License Agreement",
410
+ "tapr-ohl-1.0: TAPR Open Hardware License v1.0",
411
+ "tcl: TCL/TK License",
412
+ "tcp-wrappers: TCP Wrappers License",
413
+ "tmate: TMate Open Source License",
414
+ "torque-1.1: TORQUE v2.5+ Software License v1.1",
415
+ "tosl: Trusster Open Source License",
416
+ "tu-berlin-1.0: Technische Universitaet Berlin License 1.0",
417
+ "tu-berlin-2.0: Technische Universitaet Berlin License 2.0",
418
+ "ucl-1.0: Upstream Compatibility License v1.0",
419
+ "unicode-dfs-2015: Unicode License Agreement - Data Files and Software (2015)",
420
+ "unicode-dfs-2016: Unicode License Agreement - Data Files and Software (2016)",
421
+ "unicode-tou: Unicode Terms of Use",
422
+ "unlicense: The Unlicense",
423
+ "upl-1.0: Universal Permissive License v1.0",
424
+ "vim: Vim License",
425
+ "vostrom: VOSTROM Public License for Open Source",
426
+ "vsl-1.0: Vovida Software License v1.0",
427
+ "w3c: W3C Software Notice and License (2002-12-31)",
428
+ "w3c-19980720: W3C Software Notice and License (1998-07-20)",
429
+ "w3c-20150513: W3C Software Notice and Document License (2015-05-13)",
430
+ "watcom-1.0: Sybase Open Watcom Public License 1.0",
431
+ "wsuipa: Wsuipa License",
432
+ "wtfpl: Do What The F*ck You Want To Public License",
433
+ "wxwindows: wxWindows Library License",
434
+ "x11: X11 License",
435
+ "xerox: Xerox License",
436
+ "xfree86-1.1: XFree86 License 1.1",
437
+ "xinetd: xinetd License",
438
+ "xnet: X.Net License",
439
+ "xpp: XPP License",
440
+ "xskat: XSkat License",
441
+ "ypl-1.0: Yahoo! Public License v1.0",
442
+ "ypl-1.1: Yahoo! Public License v1.1",
443
+ "zed: Zed License",
444
+ "zend-2.0: Zend License v2.0",
445
+ "zimbra-1.3: Zimbra Public License v1.3",
446
+ "zimbra-1.4: Zimbra Public License v1.4",
447
+ "zlib: zlib License",
448
+ "zlib-acknowledgement: zlib/libpng License with Acknowledgement",
449
+ "zpl-1.1: Zope Public License 1.1",
450
+ "zpl-2.0: Zope Public License 2.0",
451
+ "zpl-2.1: Zope Public License 2.1"
452
+ ]