Sebastian Gehrmann commited on
Commit
57616af
1 Parent(s): de75832

Add previous results

Browse files
datacards/considerations.py CHANGED
@@ -1,13 +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
 
1
  import streamlit as st
2
 
3
+ from .streamlit_utils import make_text_input
 
 
4
 
5
  N_FIELDS = 1
6
 
7
+
8
  def considerations_page():
9
  return None
10
 
11
+
12
  def considerations_summary():
13
  return None
datacards/context.py CHANGED
@@ -1,13 +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
 
1
  import streamlit as st
2
 
3
+ from .streamlit_utils import make_text_input
 
 
4
 
5
  N_FIELDS = 1
6
 
7
+
8
  def context_page():
9
  return None
10
 
11
+
12
  def context_summary():
13
  return None
datacards/curation.py CHANGED
@@ -1,8 +1,6 @@
1
  import streamlit as st
2
 
3
- from .streamlit_utils import (
4
- make_text_input
5
- )
6
 
7
  from .streamlit_utils import (
8
  make_multiselect,
@@ -20,33 +18,40 @@ N_FIELDS_PII = 0
20
  N_FIELDS_MAINTENANCE = 0
21
  N_FIELDS_GEM = 0
22
 
23
- N_FIELDS = N_FIELDS_ORIGINAL + \
24
- N_FIELDS_LANGUAGE + \
25
- N_FIELDS_ANNOTATIONS + \
26
- N_FIELDS_CONSENT + \
27
- N_FIELDS_PII + \
28
- N_FIELDS_MAINTENANCE + \
29
- N_FIELDS_GEM
 
 
30
 
31
 
32
  """
33
  What was the selection criteria? [Describe the process for selecting instances to include in the dataset, including any tools used.]
34
  """
35
 
 
36
  def curation_page():
37
- st.session_state.card_dict["curation"] = st.session_state.card_dict.get("curation", {})
 
 
38
  with st.expander("Original Curation", expanded=False):
39
  key_pref = ["curation", "original"]
40
- st.session_state.card_dict["curation"]["original"] = st.session_state.card_dict["curation"].get("original", {})
 
 
41
  make_text_area(
42
  label="Original curation rationale",
43
  key_list=key_pref + ["rationale"],
44
- help="Describe the curation rationale behind the original dataset(s)."
45
  )
46
  make_text_area(
47
  label="What was the communicative goal?",
48
  key_list=key_pref + ["communicative"],
49
- help="Describe the communicative goal that the original dataset(s) was trying to represent."
50
  )
51
  make_radio(
52
  label="Is the dataset aggregated from different data sources?",
@@ -57,95 +62,130 @@ def curation_page():
57
  make_text_area(
58
  label="If yes, list the sources",
59
  key_list=key_pref + ["aggregated-sources"],
60
- help="Otherwise, type N/A"
61
  )
62
  with st.expander("Language Data", expanded=False):
63
  key_pref = ["curation", "language"]
64
- st.session_state.card_dict["curation"]["language"] = st.session_state.card_dict["curation"].get("language", {})
 
 
65
  make_multiselect(
66
  label="How was the language data obtained?",
67
- options=["found", "created for the dataset", "crowdsourced", "machine-generated", "other"],
68
- key_list=key_pref+["obtained"],
 
 
 
 
 
 
69
  )
70
  make_multiselect(
71
  label="If found, where from?",
72
  options=["website", "offline media collection", "other", "N/A"],
73
- key_list=key_pref+["found"],
74
- help="select N/A if none of the language data was found"
75
  )
76
  make_multiselect(
77
  label="If crowdsourced, where from?",
78
- options=["Amazon Mechanical Turk", "other crowdworker platform", "participatory experiment", "other", "N/A"],
79
- key_list=key_pref+["crowdsourced"],
80
- help="select N/A if none of the language data was crowdsourced"
 
 
 
 
 
 
81
  )
82
  make_text_area(
83
  label="If created for the dataset, describe the creation process.",
84
- key_list=key_pref+["created"],
85
  )
86
  make_text_area(
87
  label="What further information do we have on the language producers?",
88
- key_list=key_pref+["producers-description"],
89
  help="Provide a description of the context in which the language was produced and who produced it.",
90
  )
91
  make_text_input(
92
  label="If text was machine-generated for the dataset, provide a link to the generation method if available (N/A otherwise).",
93
- key_list=key_pref+["machine-generated"],
94
  help="if the generation code is unavailable, enter N/A",
95
  )
96
  make_selectbox(
97
  label="Was the text validated by a different worker or a data curator?",
98
- options=["not validated", "validated by crowdworker", "validated by data curator", "other"],
99
- key_list=key_pref+["validated"],
100
- help="this question is about human or human-in-the-loop validation only"
 
 
 
 
 
101
  )
102
  make_multiselect(
103
  label="In what kind of organization did the curation happen?",
104
- options= ["industry", "academic", "independent", "other"],
105
- key_list=key_pref+["organization-type"],
106
  )
107
  make_text_input(
108
  label="Name the organization(s).",
109
- key_list=key_pref+["organization-names"],
110
  help="comma-separated",
111
  )
112
  make_text_area(
113
  label="How was the text data pre-processed? (Enter N/A if the text was not pre-processed)",
114
- key_list=key_pref+["pre-processed"],
115
- help="List the steps in preprocessing the data for the dataset. Enter N/A if no steps were taken."
116
  )
117
  make_selectbox(
118
  label="Were text instances selected or filtered?",
119
  options=["not filtered", "manually", "algorithmically", "hybrid"],
120
- key_list=key_pref+["is-filtered"],
121
  )
122
  make_text_area(
123
  label="What were the selection criteria?",
124
- key_list=key_pref+["filtered-criteria"],
125
- help="Describe the process for selecting instances to include in the dataset, including any tools used. If no selection was done, enter N/A."
126
  )
127
  with st.expander("Structured Annotations", expanded=False):
128
  key_pref = ["curation", "annotations"]
129
- st.session_state.card_dict["curation"]["annotations"] = st.session_state.card_dict["curation"].get("annotations", {})
 
 
130
  with st.expander("Consent", expanded=False):
131
  key_pref = ["curation", "consent"]
132
- st.session_state.card_dict["curation"]["consent"] = st.session_state.card_dict["curation"].get("consent", {})
 
 
133
  with st.expander("Private Identifying Information (PII)", expanded=False):
134
  key_pref = ["curation", "pii"]
135
- st.session_state.card_dict["curation"]["pii"] = st.session_state.card_dict["curation"].get("pii", {})
 
 
136
  with st.expander("Maintenance", expanded=False):
137
  key_pref = ["curation", "maintenance"]
138
- st.session_state.card_dict["curation"]["maintenance"] = st.session_state.card_dict["curation"].get("maintenance", {})
 
 
139
  with st.expander("GEM Additional Curation", expanded=False):
140
  key_pref = ["curation", "gem"]
141
- st.session_state.card_dict["curation"]["gem"] = st.session_state.card_dict["curation"].get("gem", {})
 
 
142
 
143
 
144
  def curation_summary():
145
- total_filled = sum([len(dct) for dct in st.session_state.card_dict.get('curation', {}).values()])
146
- with st.expander(f"Dataset Curation Completion - {total_filled} of {N_FIELDS}", expanded=False):
 
 
 
 
147
  completion_markdown = ""
148
- completion_markdown += f"- **Overall competion:**\n - {total_filled} of {N_FIELDS} fields\n"
 
 
149
  completion_markdown += f"- **Sub-section - Original Curation:**\n - {len(st.session_state.card_dict.get('curation', {}).get('original', {}))} of {N_FIELDS_ORIGINAL} fields\n"
150
  completion_markdown += f"- **Sub-section - Language Data:**\n - {len(st.session_state.card_dict.get('curation', {}).get('language', {}))} of {N_FIELDS_LANGUAGE} fields\n"
151
  completion_markdown += f"- **Sub-section - Structured Annotations:**\n - {len(st.session_state.card_dict.get('curation', {}).get('annotations', {}))} of {N_FIELDS_ANNOTATIONS} fields\n"
 
1
  import streamlit as st
2
 
3
+ from .streamlit_utils import make_text_input
 
 
4
 
5
  from .streamlit_utils import (
6
  make_multiselect,
 
18
  N_FIELDS_MAINTENANCE = 0
19
  N_FIELDS_GEM = 0
20
 
21
+ N_FIELDS = (
22
+ N_FIELDS_ORIGINAL
23
+ + N_FIELDS_LANGUAGE
24
+ + N_FIELDS_ANNOTATIONS
25
+ + N_FIELDS_CONSENT
26
+ + N_FIELDS_PII
27
+ + N_FIELDS_MAINTENANCE
28
+ + N_FIELDS_GEM
29
+ )
30
 
31
 
32
  """
33
  What was the selection criteria? [Describe the process for selecting instances to include in the dataset, including any tools used.]
34
  """
35
 
36
+
37
  def curation_page():
38
+ st.session_state.card_dict["curation"] = st.session_state.card_dict.get(
39
+ "curation", {}
40
+ )
41
  with st.expander("Original Curation", expanded=False):
42
  key_pref = ["curation", "original"]
43
+ st.session_state.card_dict["curation"]["original"] = st.session_state.card_dict[
44
+ "curation"
45
+ ].get("original", {})
46
  make_text_area(
47
  label="Original curation rationale",
48
  key_list=key_pref + ["rationale"],
49
+ help="Describe the curation rationale behind the original dataset(s).",
50
  )
51
  make_text_area(
52
  label="What was the communicative goal?",
53
  key_list=key_pref + ["communicative"],
54
+ help="Describe the communicative goal that the original dataset(s) was trying to represent.",
55
  )
56
  make_radio(
57
  label="Is the dataset aggregated from different data sources?",
 
62
  make_text_area(
63
  label="If yes, list the sources",
64
  key_list=key_pref + ["aggregated-sources"],
65
+ help="Otherwise, type N/A",
66
  )
67
  with st.expander("Language Data", expanded=False):
68
  key_pref = ["curation", "language"]
69
+ st.session_state.card_dict["curation"]["language"] = st.session_state.card_dict[
70
+ "curation"
71
+ ].get("language", {})
72
  make_multiselect(
73
  label="How was the language data obtained?",
74
+ options=[
75
+ "found",
76
+ "created for the dataset",
77
+ "crowdsourced",
78
+ "machine-generated",
79
+ "other",
80
+ ],
81
+ key_list=key_pref + ["obtained"],
82
  )
83
  make_multiselect(
84
  label="If found, where from?",
85
  options=["website", "offline media collection", "other", "N/A"],
86
+ key_list=key_pref + ["found"],
87
+ help="select N/A if none of the language data was found",
88
  )
89
  make_multiselect(
90
  label="If crowdsourced, where from?",
91
+ options=[
92
+ "Amazon Mechanical Turk",
93
+ "other crowdworker platform",
94
+ "participatory experiment",
95
+ "other",
96
+ "N/A",
97
+ ],
98
+ key_list=key_pref + ["crowdsourced"],
99
+ help="select N/A if none of the language data was crowdsourced",
100
  )
101
  make_text_area(
102
  label="If created for the dataset, describe the creation process.",
103
+ key_list=key_pref + ["created"],
104
  )
105
  make_text_area(
106
  label="What further information do we have on the language producers?",
107
+ key_list=key_pref + ["producers-description"],
108
  help="Provide a description of the context in which the language was produced and who produced it.",
109
  )
110
  make_text_input(
111
  label="If text was machine-generated for the dataset, provide a link to the generation method if available (N/A otherwise).",
112
+ key_list=key_pref + ["machine-generated"],
113
  help="if the generation code is unavailable, enter N/A",
114
  )
115
  make_selectbox(
116
  label="Was the text validated by a different worker or a data curator?",
117
+ options=[
118
+ "not validated",
119
+ "validated by crowdworker",
120
+ "validated by data curator",
121
+ "other",
122
+ ],
123
+ key_list=key_pref + ["validated"],
124
+ help="this question is about human or human-in-the-loop validation only",
125
  )
126
  make_multiselect(
127
  label="In what kind of organization did the curation happen?",
128
+ options=["industry", "academic", "independent", "other"],
129
+ key_list=key_pref + ["organization-type"],
130
  )
131
  make_text_input(
132
  label="Name the organization(s).",
133
+ key_list=key_pref + ["organization-names"],
134
  help="comma-separated",
135
  )
136
  make_text_area(
137
  label="How was the text data pre-processed? (Enter N/A if the text was not pre-processed)",
138
+ key_list=key_pref + ["pre-processed"],
139
+ help="List the steps in preprocessing the data for the dataset. Enter N/A if no steps were taken.",
140
  )
141
  make_selectbox(
142
  label="Were text instances selected or filtered?",
143
  options=["not filtered", "manually", "algorithmically", "hybrid"],
144
+ key_list=key_pref + ["is-filtered"],
145
  )
146
  make_text_area(
147
  label="What were the selection criteria?",
148
+ key_list=key_pref + ["filtered-criteria"],
149
+ help="Describe the process for selecting instances to include in the dataset, including any tools used. If no selection was done, enter N/A.",
150
  )
151
  with st.expander("Structured Annotations", expanded=False):
152
  key_pref = ["curation", "annotations"]
153
+ st.session_state.card_dict["curation"][
154
+ "annotations"
155
+ ] = st.session_state.card_dict["curation"].get("annotations", {})
156
  with st.expander("Consent", expanded=False):
157
  key_pref = ["curation", "consent"]
158
+ st.session_state.card_dict["curation"]["consent"] = st.session_state.card_dict[
159
+ "curation"
160
+ ].get("consent", {})
161
  with st.expander("Private Identifying Information (PII)", expanded=False):
162
  key_pref = ["curation", "pii"]
163
+ st.session_state.card_dict["curation"]["pii"] = st.session_state.card_dict[
164
+ "curation"
165
+ ].get("pii", {})
166
  with st.expander("Maintenance", expanded=False):
167
  key_pref = ["curation", "maintenance"]
168
+ st.session_state.card_dict["curation"][
169
+ "maintenance"
170
+ ] = st.session_state.card_dict["curation"].get("maintenance", {})
171
  with st.expander("GEM Additional Curation", expanded=False):
172
  key_pref = ["curation", "gem"]
173
+ st.session_state.card_dict["curation"]["gem"] = st.session_state.card_dict[
174
+ "curation"
175
+ ].get("gem", {})
176
 
177
 
178
  def curation_summary():
179
+ total_filled = sum(
180
+ [len(dct) for dct in st.session_state.card_dict.get("curation", {}).values()]
181
+ )
182
+ with st.expander(
183
+ f"Dataset Curation Completion - {total_filled} of {N_FIELDS}", expanded=False
184
+ ):
185
  completion_markdown = ""
186
+ completion_markdown += (
187
+ f"- **Overall competion:**\n - {total_filled} of {N_FIELDS} fields\n"
188
+ )
189
  completion_markdown += f"- **Sub-section - Original Curation:**\n - {len(st.session_state.card_dict.get('curation', {}).get('original', {}))} of {N_FIELDS_ORIGINAL} fields\n"
190
  completion_markdown += f"- **Sub-section - Language Data:**\n - {len(st.session_state.card_dict.get('curation', {}).get('language', {}))} of {N_FIELDS_LANGUAGE} fields\n"
191
  completion_markdown += f"- **Sub-section - Structured Annotations:**\n - {len(st.session_state.card_dict.get('curation', {}).get('annotations', {}))} of {N_FIELDS_ANNOTATIONS} fields\n"
datacards/gem.py CHANGED
@@ -1,8 +1,6 @@
1
  import streamlit as st
2
 
3
- from .streamlit_utils import (
4
- make_text_input
5
- )
6
 
7
  from .streamlit_utils import (
8
  make_text_area,
@@ -12,15 +10,16 @@ from .streamlit_utils import (
12
  N_FIELDS_RATIONALE = 5
13
  N_FIELDS_STARTING = 2
14
 
15
- N_FIELDS = N_FIELDS_RATIONALE + \
16
- N_FIELDS_STARTING
17
 
18
 
19
  def gem_page():
20
  st.session_state.card_dict["gem"] = st.session_state.card_dict.get("gem", {})
21
  with st.expander("Rationale", expanded=False):
22
  key_pref = ["gem", "rationale"]
23
- st.session_state.card_dict["gem"]["rationale"] = st.session_state.card_dict["gem"].get("rationale", {})
 
 
24
  make_text_area(
25
  label="What does this dataset contribute toward better generation evaluation and why is it part of GEM?",
26
  key_list=key_pref + ["contribution"],
@@ -50,7 +49,9 @@ def gem_page():
50
  )
51
  with st.expander("Getting Started", expanded=False):
52
  key_pref = ["gem", "starting"]
53
- st.session_state.card_dict["gem"]["starting"] = st.session_state.card_dict["gem"].get("starting", {})
 
 
54
  make_text_area(
55
  label="Getting started with in-depth research on the task. Add relevant pointers to resources that researchers can consult when they want to get started digging deeper into the task.",
56
  key_list=key_pref + ["research-pointers"],
@@ -64,10 +65,16 @@ def gem_page():
64
 
65
 
66
  def gem_summary():
67
- total_filled = sum([len(dct) for dct in st.session_state.card_dict.get('gem', {}).values()])
68
- with st.expander(f"Dataset in GEM Completion - {total_filled} of {N_FIELDS}", expanded=False):
 
 
 
 
69
  completion_markdown = ""
70
- completion_markdown += f"- **Overall competion:**\n - {total_filled} of {N_FIELDS} fields\n"
 
 
71
  completion_markdown += f"- **Sub-section - Rationale:**\n - {len(st.session_state.card_dict.get('gem', {}).get('rationale', {}))} of {N_FIELDS_RATIONALE} fields\n"
72
  completion_markdown += f"- **Sub-section - Getting Started:**\n - {len(st.session_state.card_dict.get('gem', {}).get('starting', {}))} of {N_FIELDS_STARTING} fields\n"
73
  st.markdown(completion_markdown)
 
1
  import streamlit as st
2
 
3
+ from .streamlit_utils import make_text_input
 
 
4
 
5
  from .streamlit_utils import (
6
  make_text_area,
 
10
  N_FIELDS_RATIONALE = 5
11
  N_FIELDS_STARTING = 2
12
 
13
+ N_FIELDS = N_FIELDS_RATIONALE + N_FIELDS_STARTING
 
14
 
15
 
16
  def gem_page():
17
  st.session_state.card_dict["gem"] = st.session_state.card_dict.get("gem", {})
18
  with st.expander("Rationale", expanded=False):
19
  key_pref = ["gem", "rationale"]
20
+ st.session_state.card_dict["gem"]["rationale"] = st.session_state.card_dict[
21
+ "gem"
22
+ ].get("rationale", {})
23
  make_text_area(
24
  label="What does this dataset contribute toward better generation evaluation and why is it part of GEM?",
25
  key_list=key_pref + ["contribution"],
 
49
  )
50
  with st.expander("Getting Started", expanded=False):
51
  key_pref = ["gem", "starting"]
52
+ st.session_state.card_dict["gem"]["starting"] = st.session_state.card_dict[
53
+ "gem"
54
+ ].get("starting", {})
55
  make_text_area(
56
  label="Getting started with in-depth research on the task. Add relevant pointers to resources that researchers can consult when they want to get started digging deeper into the task.",
57
  key_list=key_pref + ["research-pointers"],
 
65
 
66
 
67
  def gem_summary():
68
+ total_filled = sum(
69
+ [len(dct) for dct in st.session_state.card_dict.get("gem", {}).values()]
70
+ )
71
+ with st.expander(
72
+ f"Dataset in GEM Completion - {total_filled} of {N_FIELDS}", expanded=False
73
+ ):
74
  completion_markdown = ""
75
+ completion_markdown += (
76
+ f"- **Overall competion:**\n - {total_filled} of {N_FIELDS} fields\n"
77
+ )
78
  completion_markdown += f"- **Sub-section - Rationale:**\n - {len(st.session_state.card_dict.get('gem', {}).get('rationale', {}))} of {N_FIELDS_RATIONALE} fields\n"
79
  completion_markdown += f"- **Sub-section - Getting Started:**\n - {len(st.session_state.card_dict.get('gem', {}).get('starting', {}))} of {N_FIELDS_STARTING} fields\n"
80
  st.markdown(completion_markdown)
datacards/overview.py CHANGED
@@ -16,25 +16,29 @@ N_FIELDS_LANGUAGES = 8
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 the data and its documentation", expanded=False):
36
  key_pref = ["overview", "where"]
37
- st.session_state.card_dict["overview"]["where"] = st.session_state.card_dict["overview"].get("where", {})
 
 
38
  make_text_input(
39
  label="What is the webpage for the dataset (if it exists)?",
40
  key_list=key_pref + ["website"],
@@ -83,7 +87,9 @@ def overview_page():
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["overview"].get("languages", {})
 
 
87
  make_radio(
88
  label="Is the dataset multilingual?",
89
  options=["no", "yes"],
@@ -93,9 +99,7 @@ def overview_page():
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(
@@ -117,20 +121,23 @@ def overview_page():
117
  label="What is the license of the dataset?",
118
  key_list=key_pref + ["license"],
119
  options=license_list,
120
- help="select `other` if missing from list, `unkown` if not provided."
121
  )
122
  make_selectbox(
123
  label="What primary task does the dataset support?",
124
  key_list=key_pref + ["task"],
125
- options=["Content Transfer", "Data-to-Text",
126
- "Dialog Response Generation",
127
- "Paraphrasing", "Question Generation",
128
- "Reasoning",
129
- "Simplification",
130
- "Style Transfer",
131
- "Summarization",
132
- "Text-to-Slide",
133
- ],
 
 
 
134
  help="Select `other` if the task is not included in the list.",
135
  )
136
  make_text_area(
@@ -140,7 +147,9 @@ def overview_page():
140
  )
141
  with st.expander("Credit", expanded=False):
142
  key_pref = ["overview", "credit"]
143
- st.session_state.card_dict["overview"]["credit"] = st.session_state.card_dict.get("credit", {})
 
 
144
  make_text_input(
145
  label="Who created the original dataset? List the people involved in collecting the dataset and their affiliation(s).",
146
  key_list=key_pref + ["creators"],
@@ -158,7 +167,9 @@ def overview_page():
158
  )
159
  with st.expander("Structure", expanded=False):
160
  key_pref = ["overview", "structure"]
161
- st.session_state.card_dict["overview"]["structure"] = st.session_state.card_dict.get("structure", {})
 
 
162
  data_fields_help = """
163
  [free text; paragraphs]
164
  - Mention their data type, and whether and how they are used as part of the generation pipeline.
@@ -203,10 +214,16 @@ def overview_page():
203
 
204
 
205
  def overview_summary():
206
- total_filled = sum([len(dct) for dct in st.session_state.card_dict.get('overview', {}).values()])
207
- with st.expander(f"Dataset Overview Completion - {total_filled} of {N_FIELDS}", expanded=False):
 
 
 
 
208
  completion_markdown = ""
209
- completion_markdown += f"- **Overall competion:**\n - {total_filled} of {N_FIELDS} fields\n"
 
 
210
  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"
211
  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"
212
  completion_markdown += f"- **Sub-section - Credit:**\n - {len(st.session_state.card_dict.get('overview', {}).get('credit', {}))} of {N_FIELDS_CREDIT} fields\n"
 
16
  N_FIELDS_CREDIT = 3
17
  N_FIELDS_STRUCTURE = 7
18
 
19
+ N_FIELDS = N_FIELDS_WHERE + N_FIELDS_LANGUAGES + N_FIELDS_CREDIT + N_FIELDS_STRUCTURE
 
 
 
20
 
21
 
22
  languages_bcp47 = [
23
  x
24
+ for x in json.load(open(pjoin("resources", "bcp47.json"), encoding="utf-8"))[
25
+ "subtags"
26
+ ]
27
  if x["type"] == "language"
28
  ]
29
 
30
  license_list = json.load(open(pjoin("resources", "licenses.json"), encoding="utf-8"))
31
 
32
+
33
  def overview_page():
34
+ st.session_state.card_dict["overview"] = st.session_state.card_dict.get(
35
+ "overview", {}
36
+ )
37
  with st.expander("Where to find the data and its documentation", expanded=False):
38
  key_pref = ["overview", "where"]
39
+ st.session_state.card_dict["overview"]["where"] = st.session_state.card_dict[
40
+ "overview"
41
+ ].get("where", {})
42
  make_text_input(
43
  label="What is the webpage for the dataset (if it exists)?",
44
  key_list=key_pref + ["website"],
 
87
  )
88
  with st.expander("Languages and Intended Use", expanded=False):
89
  key_pref = ["overview", "languages"]
90
+ st.session_state.card_dict["overview"][
91
+ "languages"
92
+ ] = st.session_state.card_dict["overview"].get("languages", {})
93
  make_radio(
94
  label="Is the dataset multilingual?",
95
  options=["no", "yes"],
 
99
  make_multiselect(
100
  label="What languages/dialects are covered in the dataset?",
101
  key_list=key_pref + ["language-names"],
102
+ options=[", ".join(x["description"]) for x in languages_bcp47],
 
 
103
  help="This is a comprehensive list of languages obtained from the BCP-47 standard list.",
104
  )
105
  make_text_area(
 
121
  label="What is the license of the dataset?",
122
  key_list=key_pref + ["license"],
123
  options=license_list,
124
+ help="select `other` if missing from list, `unkown` if not provided.",
125
  )
126
  make_selectbox(
127
  label="What primary task does the dataset support?",
128
  key_list=key_pref + ["task"],
129
+ options=[
130
+ "Content Transfer",
131
+ "Data-to-Text",
132
+ "Dialog Response Generation",
133
+ "Paraphrasing",
134
+ "Question Generation",
135
+ "Reasoning",
136
+ "Simplification",
137
+ "Style Transfer",
138
+ "Summarization",
139
+ "Text-to-Slide",
140
+ ],
141
  help="Select `other` if the task is not included in the list.",
142
  )
143
  make_text_area(
 
147
  )
148
  with st.expander("Credit", expanded=False):
149
  key_pref = ["overview", "credit"]
150
+ st.session_state.card_dict["overview"][
151
+ "credit"
152
+ ] = st.session_state.card_dict.get("credit", {})
153
  make_text_input(
154
  label="Who created the original dataset? List the people involved in collecting the dataset and their affiliation(s).",
155
  key_list=key_pref + ["creators"],
 
167
  )
168
  with st.expander("Structure", expanded=False):
169
  key_pref = ["overview", "structure"]
170
+ st.session_state.card_dict["overview"][
171
+ "structure"
172
+ ] = st.session_state.card_dict.get("structure", {})
173
  data_fields_help = """
174
  [free text; paragraphs]
175
  - Mention their data type, and whether and how they are used as part of the generation pipeline.
 
214
 
215
 
216
  def overview_summary():
217
+ total_filled = sum(
218
+ [len(dct) for dct in st.session_state.card_dict.get("overview", {}).values()]
219
+ )
220
+ with st.expander(
221
+ f"Dataset Overview Completion - {total_filled} of {N_FIELDS}", expanded=False
222
+ ):
223
  completion_markdown = ""
224
+ completion_markdown += (
225
+ f"- **Overall competion:**\n - {total_filled} of {N_FIELDS} fields\n"
226
+ )
227
  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"
228
  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"
229
  completion_markdown += f"- **Sub-section - Credit:**\n - {len(st.session_state.card_dict.get('overview', {}).get('credit', {}))} of {N_FIELDS_CREDIT} fields\n"
datacards/results.py CHANGED
@@ -1,13 +1,72 @@
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
 
1
  import streamlit as st
2
 
3
  from .streamlit_utils import (
4
+ make_multiselect,
5
+ make_selectbox,
6
+ make_text_area,
7
+ make_text_input,
8
+ make_radio,
9
  )
10
 
11
  N_FIELDS = 1
12
 
13
+
14
  def results_page():
15
+ with st.expander("Previous Results", expanded=False):
16
+ key_pref = ["results", "results"]
17
+ st.session_state.card_dict["results"]["results"] = st.session_state.card_dict[
18
+ "results"
19
+ ].get("results", {})
20
+ make_multiselect(
21
+ label="What metrics are typically used for this task?",
22
+ key_list=key_pref + ["metrics"],
23
+ options=[
24
+ "BERT-Score",
25
+ "BLEU",
26
+ "BLEURT",
27
+ "ChrF",
28
+ "Entailment",
29
+ "FeQA",
30
+ "METEOR" "MoverScore",
31
+ "QAGS",
32
+ "ROUGE",
33
+ "WER",
34
+ ],
35
+ help="Select all metrics that are typically used when evaluating models for this task.",
36
+ )
37
+ make_text_area(
38
+ label="Describe the metrics and evaluation methodology that the dataset creators used when introducing this task.",
39
+ key_list=key_pref + ["original-evaluation"],
40
+ help="When the generation task was not evaluated when this dataset was introduced, write N/A.",
41
+ )
42
+ make_radio(
43
+ label="Are previous results available?",
44
+ options=["no", "yes"],
45
+ key_list=key_pref + ["has-previous-results"],
46
+ help="Have papers evaluated models on this task? If no, write N/A for the following three questions.",
47
+ )
48
+ make_text_area(
49
+ label="What evaluation approaches have others used?",
50
+ key_list=key_pref + ["modern-evaluation"],
51
+ help="If the modern evaluation strategy diverts from the original, describe how models are being evaluated.",
52
+ )
53
+ make_text_area(
54
+ label="What are previous results",
55
+ key_list=key_pref + ["previous-results"],
56
+ help="List the source and performance metrics for models on this dataset.",
57
+ )
58
+ make_text_area(
59
+ label="Definitions",
60
+ key_list=key_pref + ["definitions"],
61
+ help="If the evaluation strategies in the previous questions go beyond the list of metrics above, add descriptions and/or definitions for each metric.",
62
+ )
63
+ make_text_area(
64
+ label="What aspect of model ability can be measured with this dataset?",
65
+ key_list=key_pref + ["model-abilities"],
66
+ help="What kind of abilities should a model exhibit that performs well on the task of this dataset (e.g., reasoning capability, morphological inflection)?.",
67
+ )
68
+
69
+
70
 
71
  def results_summary():
72
  return None
datacards/streamlit_utils.py CHANGED
@@ -4,10 +4,13 @@ import streamlit as st
4
  # Streamlit widgets with persistence
5
  def is_filled(key_list):
6
  state_filled_key = "_".join(key_list) + "_filled"
 
7
  def on_change_action():
8
  st.session_state.save_state[state_filled_key] = True
 
9
  return on_change_action
10
 
 
11
  def update_card_dict(key_list, use_default=None):
12
  state_key = "_".join(key_list)
13
  if st.session_state.save_state.get(state_key + "_filled", False) or use_default:
@@ -39,7 +42,9 @@ def make_multiselect(
39
  return res
40
 
41
 
42
- def make_selectbox(key_list, label, options, format_func=lambda x: x, help="", index=None):
 
 
43
  key = "_".join(key_list)
44
  if key in st.session_state:
45
  st.session_state.save_state[key] = st.session_state[key]
@@ -56,7 +61,9 @@ def make_selectbox(key_list, label, options, format_func=lambda x: x, help="", i
56
  on_change=is_filled(key_list),
57
  help=help,
58
  )
59
- update_card_dict(key_list, use_default=st.session_state.save_state.get(key, options[0])) # use the default value even without interactions
 
 
60
  return res
61
 
62
 
@@ -75,7 +82,9 @@ def make_radio(key_list, label, options, format_func=lambda x: x, help="", index
75
  on_change=is_filled(key_list),
76
  help=help,
77
  )
78
- update_card_dict(key_list, use_default=st.session_state.save_state.get(key, options[0])) # use the default value even without interactions
 
 
79
  return res
80
 
81
 
@@ -102,7 +111,7 @@ def make_text_area(key_list, label, help="", value=None):
102
  st.session_state.save_state[key] = st.session_state[key]
103
  elif value is not None:
104
  st.session_state.save_state[key] = value
105
- res = st.text_area(
106
  label=label,
107
  key=key,
108
  value=st.session_state.save_state.get(key, ""),
 
4
  # Streamlit widgets with persistence
5
  def is_filled(key_list):
6
  state_filled_key = "_".join(key_list) + "_filled"
7
+
8
  def on_change_action():
9
  st.session_state.save_state[state_filled_key] = True
10
+
11
  return on_change_action
12
 
13
+
14
  def update_card_dict(key_list, use_default=None):
15
  state_key = "_".join(key_list)
16
  if st.session_state.save_state.get(state_key + "_filled", False) or use_default:
 
42
  return res
43
 
44
 
45
+ def make_selectbox(
46
+ key_list, label, options, format_func=lambda x: x, help="", index=None
47
+ ):
48
  key = "_".join(key_list)
49
  if key in st.session_state:
50
  st.session_state.save_state[key] = st.session_state[key]
 
61
  on_change=is_filled(key_list),
62
  help=help,
63
  )
64
+ update_card_dict(
65
+ key_list, use_default=st.session_state.save_state.get(key, options[0])
66
+ ) # use the default value even without interactions
67
  return res
68
 
69
 
 
82
  on_change=is_filled(key_list),
83
  help=help,
84
  )
85
+ update_card_dict(
86
+ key_list, use_default=st.session_state.save_state.get(key, options[0])
87
+ ) # use the default value even without interactions
88
  return res
89
 
90
 
 
111
  st.session_state.save_state[key] = st.session_state[key]
112
  elif value is not None:
113
  st.session_state.save_state[key] = value
114
+ res = st.text_area(
115
  label=label,
116
  key=key,
117
  value=st.session_state.save_state.get(key, ""),