David Pomerenke commited on
Commit
430bde6
·
1 Parent(s): 5bcc69a

Nicer layout for datasets table and other tables

Browse files
data/datasets.json CHANGED
@@ -2,6 +2,7 @@
2
  {
3
  "name": "FLORES+",
4
  "author": "Meta",
 
5
  "url": "https://huggingface.co/datasets/openlanguagedata/flores_plus",
6
  "n_languages": 200,
7
  "tasks": [
@@ -16,6 +17,7 @@
16
  {
17
  "name": "FLEURS",
18
  "author": "Meta",
 
19
  "url": "https://huggingface.co/datasets/google/fleurs",
20
  "n_languages": 102,
21
  "tasks": [
@@ -28,6 +30,7 @@
28
  {
29
  "name": "CommonVoice",
30
  "author": "Mozilla",
 
31
  "url": "https://huggingface.co/datasets/mozilla-foundation/common_voice_17_0",
32
  "n_languages": 124,
33
  "tasks": [
@@ -38,6 +41,7 @@
38
  {
39
  "name": "MMMLU",
40
  "author": "OpenAI",
 
41
  "url": "https://huggingface.co/datasets/openai/MMMLU",
42
  "n_languages": "14",
43
  "tasks": [
@@ -49,6 +53,7 @@
49
  {
50
  "name": "AfriMMLU",
51
  "author": "Masakhane",
 
52
  "url": "https://huggingface.co/datasets/masakhane/afrimmlu",
53
  "n_languages": "17",
54
  "tasks": [
@@ -59,7 +64,8 @@
59
  },
60
  {
61
  "name": "Okapi MMLU",
62
- "author": "Okapi",
 
63
  "url": "https://huggingface.co/datasets/jon-tow/okapi_mmlu",
64
  "n_languages": 16,
65
  "tasks": [
@@ -71,6 +77,7 @@
71
  {
72
  "name": "Global MMLU",
73
  "author": "Cohere",
 
74
  "url": "https://huggingface.co/datasets/CohereForAI/Global-MMLU",
75
  "n_languages": 42,
76
  "tasks": [
@@ -82,6 +89,7 @@
82
  {
83
  "name": "MGSM",
84
  "author": "Google",
 
85
  "url": "https://huggingface.co/datasets/juletxara/mgsm",
86
  "n_languages": 10,
87
  "tasks": [
@@ -93,6 +101,7 @@
93
  {
94
  "name": "AfriMGSM",
95
  "author": "Masakhane",
 
96
  "url": "https://huggingface.co/datasets/masakhane/afrimgsm",
97
  "n_languages": 18,
98
  "tasks": [
@@ -103,7 +112,8 @@
103
  },
104
  {
105
  "name": "Okapi ARC Challenge",
106
- "author": "Okapi",
 
107
  "url": "https://huggingface.co/datasets/jon-tow/okapi_arc_challenge",
108
  "n_languages": 31,
109
  "tasks": [
@@ -115,6 +125,7 @@
115
  {
116
  "name": "Uhuru ARC Easy",
117
  "author": "Masakhane",
 
118
  "url": "https://huggingface.co/datasets/masakhane/uhura-arc-easy",
119
  "n_languages": 6,
120
  "tasks": [
@@ -125,7 +136,8 @@
125
  },
126
  {
127
  "name": "Okapi TruthfulQA",
128
- "author": "Okapi",
 
129
  "url": "https://huggingface.co/datasets/jon-tow/okapi_truthfulqa/tree/main/data",
130
  "n_languages": 31,
131
  "tasks": [
@@ -137,6 +149,7 @@
137
  {
138
  "name": "Uhura TruthfulQA",
139
  "author": "Masakhane",
 
140
  "url": "https://huggingface.co/datasets/masakhane/uhura-truthfulqa",
141
  "n_languages": 6,
142
  "tasks": [
@@ -148,6 +161,7 @@
148
  {
149
  "name": "XNLI",
150
  "author": "Meta",
 
151
  "url": "https://huggingface.co/datasets/facebook/xnli",
152
  "n_languages": 14,
153
  "tasks": [
@@ -159,6 +173,7 @@
159
  {
160
  "name": "AfriXNLI",
161
  "author": "Masakhane",
 
162
  "url": "https://huggingface.co/datasets/masakhane/afrixnli",
163
  "n_languages": 18,
164
  "tasks": [
@@ -169,7 +184,8 @@
169
  },
170
  {
171
  "name": "Okapi HellaSwag",
172
- "author": "Okapi",
 
173
  "url": "https://huggingface.co/datasets/jon-tow/okapi_hellaswag",
174
  "n_languages": 31,
175
  "tasks": [
@@ -181,6 +197,7 @@
181
  {
182
  "name": "WikiANN / PAN-X",
183
  "author": "Academic",
 
184
  "url": "https://huggingface.co/datasets/unimelb-nlp/wikiann",
185
  "n_languages": 176,
186
  "tasks": [
@@ -191,6 +208,7 @@
191
  {
192
  "name": "MSVAMP",
193
  "author": "Microsoft",
 
194
  "url": "https://huggingface.co/datasets/Mathoctopus/MSVAMP",
195
  "n_languages": 10,
196
  "tasks": [
@@ -201,6 +219,7 @@
201
  {
202
  "name": "XLSUM",
203
  "author": "Academic",
 
204
  "url": "https://huggingface.co/datasets/csebuetnlp/xlsum",
205
  "n_languages": 45,
206
  "tasks": [
@@ -211,6 +230,7 @@
211
  {
212
  "name": "SEA-IFEVAL",
213
  "author": "AI Singapore",
 
214
  "url": "https://huggingface.co/datasets/aisingapore/instruction_following-ifeval",
215
  "n_languages": 7,
216
  "tasks": [
@@ -222,6 +242,7 @@
222
  {
223
  "name": "XTREME",
224
  "author": "Google",
 
225
  "url": "https://huggingface.co/datasets/google/xtreme",
226
  "n_languages": 40,
227
  "tasks": [
@@ -235,6 +256,7 @@
235
  {
236
  "name": "XGLUE",
237
  "author": "Microsoft",
 
238
  "url": "https://huggingface.co/datasets/microsoft/xglue",
239
  "n_languages": 18,
240
  "tasks": [
@@ -246,6 +268,7 @@
246
  {
247
  "name": "IndicGLUE",
248
  "author": "AI4Bharat",
 
249
  "url": "https://huggingface.co/datasets/ai4bharat/indic_glue",
250
  "n_languages": 11,
251
  "tasks": [
@@ -257,6 +280,7 @@
257
  {
258
  "name": "Opus Gnome",
259
  "author": "Helsinki NLP",
 
260
  "url": "https://huggingface.co/datasets/Helsinki-NLP/opus_gnome",
261
  "n_languages": 187,
262
  "tasks": [
@@ -267,6 +291,7 @@
267
  {
268
  "name": "Opus Paracrawl",
269
  "author": "Helsinki NLP",
 
270
  "url": "https://huggingface.co/datasets/Helsinki-NLP/opus_paracrawl",
271
  "n_languages": 43,
272
  "tasks": [
@@ -277,6 +302,7 @@
277
  {
278
  "name": "CCAligned",
279
  "author": "Meta",
 
280
  "url": "https://huggingface.co/datasets/ahelk/ccaligned_multilingual",
281
  "n_languages": 137,
282
  "tasks": [
@@ -287,7 +313,8 @@
287
  {
288
  "name": "OPUS Collection",
289
  "author": "Helsinki NLP",
290
- "url": "https://opus.nlpl.eu/",
 
291
  "n_languages": 747,
292
  "tasks": [
293
  "translation"
@@ -297,6 +324,7 @@
297
  {
298
  "name": "MasakhaNER",
299
  "author": "Masakhane",
 
300
  "url": "https://huggingface.co/datasets/masakhane/masakhaner",
301
  "n_languages": 10,
302
  "tasks": [
@@ -306,6 +334,8 @@
306
  },
307
  {
308
  "name": "Multilingual Sentiments",
 
 
309
  "url": "https://huggingface.co/datasets/tyqiangz/multilingual-sentiments",
310
  "n_languages": 12,
311
  "tasks": [
@@ -316,6 +346,7 @@
316
  {
317
  "name": "CulturaX",
318
  "author": "Academic",
 
319
  "url": "https://huggingface.co/datasets/uonlp/CulturaX",
320
  "n_languages": 167,
321
  "tasks": [
@@ -326,6 +357,7 @@
326
  {
327
  "name": "Tülu 3 SFT Mixture",
328
  "author": "AllenAI",
 
329
  "url": "https://huggingface.co/datasets/allenai/tulu-3-sft-mixture",
330
  "n_languages": 70,
331
  "tasks": [
@@ -336,6 +368,7 @@
336
  {
337
  "name": "xP3",
338
  "author": "BigScience",
 
339
  "url": "https://huggingface.co/datasets/bigscience/xP3",
340
  "n_languages": 46,
341
  "tasks": [
@@ -346,6 +379,7 @@
346
  {
347
  "name": "Aya",
348
  "author": "Cohere",
 
349
  "url": "https://huggingface.co/datasets/CohereForAI/aya_dataset",
350
  "n_languages": 65,
351
  "tasks": [
@@ -356,6 +390,7 @@
356
  {
357
  "name": "Lanfrica",
358
  "author": "Lanfrica",
 
359
  "url": "https://lanfrica.com/records?language=yor&task=machine%20translation",
360
  "n_languages": 2200,
361
  "tasks": [
@@ -366,6 +401,7 @@
366
  {
367
  "name": "HuggingFace Languages",
368
  "author": "HuggingFace",
 
369
  "url": "https://huggingface.co/languages",
370
  "n_languages": 4680,
371
  "tasks": [
@@ -377,8 +413,9 @@
377
  {
378
  "name": "HuggingFace Multilingual Datasets",
379
  "author": "HuggingFace",
 
380
  "url": "https://huggingface.co/datasets?other=multilinguality:multilingual",
381
- "n_languages": null,
382
  "tasks": [
383
  "datasets"
384
  ],
 
2
  {
3
  "name": "FLORES+",
4
  "author": "Meta",
5
+ "author_url": "https://ai.meta.com",
6
  "url": "https://huggingface.co/datasets/openlanguagedata/flores_plus",
7
  "n_languages": 200,
8
  "tasks": [
 
17
  {
18
  "name": "FLEURS",
19
  "author": "Meta",
20
+ "author_url": "https://ai.meta.com",
21
  "url": "https://huggingface.co/datasets/google/fleurs",
22
  "n_languages": 102,
23
  "tasks": [
 
30
  {
31
  "name": "CommonVoice",
32
  "author": "Mozilla",
33
+ "author_url": "https://mozilla.ai",
34
  "url": "https://huggingface.co/datasets/mozilla-foundation/common_voice_17_0",
35
  "n_languages": 124,
36
  "tasks": [
 
41
  {
42
  "name": "MMMLU",
43
  "author": "OpenAI",
44
+ "author_url": "https://openai.com",
45
  "url": "https://huggingface.co/datasets/openai/MMMLU",
46
  "n_languages": "14",
47
  "tasks": [
 
53
  {
54
  "name": "AfriMMLU",
55
  "author": "Masakhane",
56
+ "author_url": "https://www.masakhane.io",
57
  "url": "https://huggingface.co/datasets/masakhane/afrimmlu",
58
  "n_languages": "17",
59
  "tasks": [
 
64
  },
65
  {
66
  "name": "Okapi MMLU",
67
+ "author": "Academic",
68
+ "author_url": null,
69
  "url": "https://huggingface.co/datasets/jon-tow/okapi_mmlu",
70
  "n_languages": 16,
71
  "tasks": [
 
77
  {
78
  "name": "Global MMLU",
79
  "author": "Cohere",
80
+ "author_url": "https://cohere.com",
81
  "url": "https://huggingface.co/datasets/CohereForAI/Global-MMLU",
82
  "n_languages": 42,
83
  "tasks": [
 
89
  {
90
  "name": "MGSM",
91
  "author": "Google",
92
+ "author_url": "https://google.com",
93
  "url": "https://huggingface.co/datasets/juletxara/mgsm",
94
  "n_languages": 10,
95
  "tasks": [
 
101
  {
102
  "name": "AfriMGSM",
103
  "author": "Masakhane",
104
+ "author_url": "https://www.masakhane.io",
105
  "url": "https://huggingface.co/datasets/masakhane/afrimgsm",
106
  "n_languages": 18,
107
  "tasks": [
 
112
  },
113
  {
114
  "name": "Okapi ARC Challenge",
115
+ "author": "Academic",
116
+ "author_url": null,
117
  "url": "https://huggingface.co/datasets/jon-tow/okapi_arc_challenge",
118
  "n_languages": 31,
119
  "tasks": [
 
125
  {
126
  "name": "Uhuru ARC Easy",
127
  "author": "Masakhane",
128
+ "author_url": "https://www.masakhane.io",
129
  "url": "https://huggingface.co/datasets/masakhane/uhura-arc-easy",
130
  "n_languages": 6,
131
  "tasks": [
 
136
  },
137
  {
138
  "name": "Okapi TruthfulQA",
139
+ "author": "Academic",
140
+ "author_url": null,
141
  "url": "https://huggingface.co/datasets/jon-tow/okapi_truthfulqa/tree/main/data",
142
  "n_languages": 31,
143
  "tasks": [
 
149
  {
150
  "name": "Uhura TruthfulQA",
151
  "author": "Masakhane",
152
+ "author_url": "https://www.masakhane.io",
153
  "url": "https://huggingface.co/datasets/masakhane/uhura-truthfulqa",
154
  "n_languages": 6,
155
  "tasks": [
 
161
  {
162
  "name": "XNLI",
163
  "author": "Meta",
164
+ "author_url": "https://ai.meta.com",
165
  "url": "https://huggingface.co/datasets/facebook/xnli",
166
  "n_languages": 14,
167
  "tasks": [
 
173
  {
174
  "name": "AfriXNLI",
175
  "author": "Masakhane",
176
+ "author_url": "https://www.masakhane.io",
177
  "url": "https://huggingface.co/datasets/masakhane/afrixnli",
178
  "n_languages": 18,
179
  "tasks": [
 
184
  },
185
  {
186
  "name": "Okapi HellaSwag",
187
+ "author": "Academic",
188
+ "author_url": null,
189
  "url": "https://huggingface.co/datasets/jon-tow/okapi_hellaswag",
190
  "n_languages": 31,
191
  "tasks": [
 
197
  {
198
  "name": "WikiANN / PAN-X",
199
  "author": "Academic",
200
+ "author_url": null,
201
  "url": "https://huggingface.co/datasets/unimelb-nlp/wikiann",
202
  "n_languages": 176,
203
  "tasks": [
 
208
  {
209
  "name": "MSVAMP",
210
  "author": "Microsoft",
211
+ "author_url": "https://microsoft.com",
212
  "url": "https://huggingface.co/datasets/Mathoctopus/MSVAMP",
213
  "n_languages": 10,
214
  "tasks": [
 
219
  {
220
  "name": "XLSUM",
221
  "author": "Academic",
222
+ "author_url": null,
223
  "url": "https://huggingface.co/datasets/csebuetnlp/xlsum",
224
  "n_languages": 45,
225
  "tasks": [
 
230
  {
231
  "name": "SEA-IFEVAL",
232
  "author": "AI Singapore",
233
+ "author_url": "https://aisingapore.org",
234
  "url": "https://huggingface.co/datasets/aisingapore/instruction_following-ifeval",
235
  "n_languages": 7,
236
  "tasks": [
 
242
  {
243
  "name": "XTREME",
244
  "author": "Google",
245
+ "author_url": "https://google.com",
246
  "url": "https://huggingface.co/datasets/google/xtreme",
247
  "n_languages": 40,
248
  "tasks": [
 
256
  {
257
  "name": "XGLUE",
258
  "author": "Microsoft",
259
+ "author_url": "https://microsoft.com",
260
  "url": "https://huggingface.co/datasets/microsoft/xglue",
261
  "n_languages": 18,
262
  "tasks": [
 
268
  {
269
  "name": "IndicGLUE",
270
  "author": "AI4Bharat",
271
+ "author_url": "https://models.ai4bharat.org",
272
  "url": "https://huggingface.co/datasets/ai4bharat/indic_glue",
273
  "n_languages": 11,
274
  "tasks": [
 
280
  {
281
  "name": "Opus Gnome",
282
  "author": "Helsinki NLP",
283
+ "author_url": null,
284
  "url": "https://huggingface.co/datasets/Helsinki-NLP/opus_gnome",
285
  "n_languages": 187,
286
  "tasks": [
 
291
  {
292
  "name": "Opus Paracrawl",
293
  "author": "Helsinki NLP",
294
+ "author_url": null,
295
  "url": "https://huggingface.co/datasets/Helsinki-NLP/opus_paracrawl",
296
  "n_languages": 43,
297
  "tasks": [
 
302
  {
303
  "name": "CCAligned",
304
  "author": "Meta",
305
+ "author_url": "https://ai.meta.com",
306
  "url": "https://huggingface.co/datasets/ahelk/ccaligned_multilingual",
307
  "n_languages": 137,
308
  "tasks": [
 
313
  {
314
  "name": "OPUS Collection",
315
  "author": "Helsinki NLP",
316
+ "author_url": null,
317
+ "url": "https://opus.nlpl.eu",
318
  "n_languages": 747,
319
  "tasks": [
320
  "translation"
 
324
  {
325
  "name": "MasakhaNER",
326
  "author": "Masakhane",
327
+ "author_url": "https://www.masakhane.io",
328
  "url": "https://huggingface.co/datasets/masakhane/masakhaner",
329
  "n_languages": 10,
330
  "tasks": [
 
334
  },
335
  {
336
  "name": "Multilingual Sentiments",
337
+ "author": "Academic",
338
+ "author_url": null,
339
  "url": "https://huggingface.co/datasets/tyqiangz/multilingual-sentiments",
340
  "n_languages": 12,
341
  "tasks": [
 
346
  {
347
  "name": "CulturaX",
348
  "author": "Academic",
349
+ "author_url": null,
350
  "url": "https://huggingface.co/datasets/uonlp/CulturaX",
351
  "n_languages": 167,
352
  "tasks": [
 
357
  {
358
  "name": "Tülu 3 SFT Mixture",
359
  "author": "AllenAI",
360
+ "author_url": "https://allenai.org",
361
  "url": "https://huggingface.co/datasets/allenai/tulu-3-sft-mixture",
362
  "n_languages": 70,
363
  "tasks": [
 
368
  {
369
  "name": "xP3",
370
  "author": "BigScience",
371
+ "author_url": "https://bigscience.huggingface.co",
372
  "url": "https://huggingface.co/datasets/bigscience/xP3",
373
  "n_languages": 46,
374
  "tasks": [
 
379
  {
380
  "name": "Aya",
381
  "author": "Cohere",
382
+ "author_url": "https://cohere.com",
383
  "url": "https://huggingface.co/datasets/CohereForAI/aya_dataset",
384
  "n_languages": 65,
385
  "tasks": [
 
390
  {
391
  "name": "Lanfrica",
392
  "author": "Lanfrica",
393
+ "author_url": "https://lanfrica.com",
394
  "url": "https://lanfrica.com/records?language=yor&task=machine%20translation",
395
  "n_languages": 2200,
396
  "tasks": [
 
401
  {
402
  "name": "HuggingFace Languages",
403
  "author": "HuggingFace",
404
+ "author_url": "https://huggingface.co",
405
  "url": "https://huggingface.co/languages",
406
  "n_languages": 4680,
407
  "tasks": [
 
413
  {
414
  "name": "HuggingFace Multilingual Datasets",
415
  "author": "HuggingFace",
416
+ "author_url": "https://huggingface.co",
417
  "url": "https://huggingface.co/datasets?other=multilinguality:multilingual",
418
+ "n_languages": 2012,
419
  "tasks": [
420
  "datasets"
421
  ],
evals/main.py CHANGED
@@ -104,7 +104,7 @@ def make_language_table(df):
104
  for row in [*task_metrics, "average"]:
105
  df[row] = df[row].round(2)
106
  df = pd.merge(languages, df, on="bcp_47", how="outer")
107
- df = df.sort_values(by="average", ascending=False)
108
  df = df[["language_name", "speakers", "family", "average", "in_benchmark", *task_metrics]]
109
  return df
110
 
 
104
  for row in [*task_metrics, "average"]:
105
  df[row] = df[row].round(2)
106
  df = pd.merge(languages, df, on="bcp_47", how="outer")
107
+ df = df.sort_values(by="speakers", ascending=False)
108
  df = df[["language_name", "speakers", "family", "average", "in_benchmark", *task_metrics]]
109
  return df
110
 
frontend/package-lock.json CHANGED
@@ -12,6 +12,7 @@
12
  "@testing-library/jest-dom": "^6.6.3",
13
  "@testing-library/react": "^16.2.0",
14
  "@testing-library/user-event": "^13.5.0",
 
15
  "primereact": "^10.9.3",
16
  "react": "^19.0.0",
17
  "react-dom": "^19.0.0",
@@ -13595,6 +13596,12 @@
13595
  "url": "https://github.com/chalk/ansi-styles?sponsor=1"
13596
  }
13597
  },
 
 
 
 
 
 
13598
  "node_modules/primereact": {
13599
  "version": "10.9.3",
13600
  "resolved": "https://registry.npmjs.org/primereact/-/primereact-10.9.3.tgz",
 
12
  "@testing-library/jest-dom": "^6.6.3",
13
  "@testing-library/react": "^16.2.0",
14
  "@testing-library/user-event": "^13.5.0",
15
+ "primeicons": "^7.0.0",
16
  "primereact": "^10.9.3",
17
  "react": "^19.0.0",
18
  "react-dom": "^19.0.0",
 
13596
  "url": "https://github.com/chalk/ansi-styles?sponsor=1"
13597
  }
13598
  },
13599
+ "node_modules/primeicons": {
13600
+ "version": "7.0.0",
13601
+ "resolved": "https://registry.npmjs.org/primeicons/-/primeicons-7.0.0.tgz",
13602
+ "integrity": "sha512-jK3Et9UzwzTsd6tzl2RmwrVY/b8raJ3QZLzoDACj+oTJ0oX7L9Hy+XnVwgo4QVKlKpnP/Ur13SXV/pVh4LzaDw==",
13603
+ "license": "MIT"
13604
+ },
13605
  "node_modules/primereact": {
13606
  "version": "10.9.3",
13607
  "resolved": "https://registry.npmjs.org/primereact/-/primereact-10.9.3.tgz",
frontend/package.json CHANGED
@@ -7,6 +7,7 @@
7
  "@testing-library/jest-dom": "^6.6.3",
8
  "@testing-library/react": "^16.2.0",
9
  "@testing-library/user-event": "^13.5.0",
 
10
  "primereact": "^10.9.3",
11
  "react": "^19.0.0",
12
  "react-dom": "^19.0.0",
 
7
  "@testing-library/jest-dom": "^6.6.3",
8
  "@testing-library/react": "^16.2.0",
9
  "@testing-library/user-event": "^13.5.0",
10
+ "primeicons": "^7.0.0",
11
  "primereact": "^10.9.3",
12
  "react": "^19.0.0",
13
  "react-dom": "^19.0.0",
frontend/public/results.json CHANGED
The diff for this file is too large to render. See raw diff
 
frontend/src/App.js CHANGED
@@ -67,7 +67,8 @@ function App () {
67
  alignItems: 'center',
68
  width: '100%',
69
  height: '100%',
70
- justifyContent: 'center'
 
71
  }}
72
  >
73
  <div
 
67
  alignItems: 'center',
68
  width: '100%',
69
  height: '100%',
70
+ justifyContent: 'center',
71
+ paddingBottom: '5vh'
72
  }}
73
  >
74
  <div
frontend/src/components/DatasetTable.js CHANGED
@@ -2,24 +2,66 @@ import { DataTable } from 'primereact/datatable'
2
  import { Column } from 'primereact/column'
3
  import { FilterMatchMode } from 'primereact/api'
4
  import { useState } from 'react'
 
 
5
 
6
  const DatasetTable = ({ data }) => {
7
  const [filters, setFilters] = useState({
8
- name: { value: null, matchMode: FilterMatchMode.CONTAINS },
9
- author: { value: null, matchMode: FilterMatchMode.IN },
10
  n_languages: { value: null, matchMode: FilterMatchMode.BETWEEN },
11
  tasks: { value: null, matchMode: FilterMatchMode.IN },
12
  parallel: { value: null, matchMode: FilterMatchMode.EQUALS },
13
  base: { value: null, matchMode: FilterMatchMode.IN },
14
- implemented: { value: null, matchMode: FilterMatchMode.EQUALS },
15
  })
16
  const table = data.dataset_table
17
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
  const nameBodyTemplate = rowData => {
19
  return <div style={{ fontWeight: 'bold' }}>{rowData.name}</div>
20
  }
21
 
 
 
 
 
 
22
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  return (
24
  <DataTable
25
  value={table}
@@ -27,43 +69,52 @@ const DatasetTable = ({ data }) => {
27
  removableSort
28
  filters={filters}
29
  filterDisplay='menu'
 
30
  scrollable
31
  scrollHeight='600px'
32
  id='dataset-table'
33
  >
34
- {/* <Column
35
  field='implemented'
36
- header='Implemented'
37
- filter
38
- style={{ minWidth: '5rem' }}
39
- /> */}
 
40
  <Column
41
  field='author'
42
  header='Author'
43
- filter
44
  showFilterMatchModes={false}
45
  style={{ minWidth: '5rem' }}
 
46
  />
47
  <Column
48
  field='name'
49
  header='Name'
50
  body={nameBodyTemplate}
51
- filter
52
  style={{ minWidth: '5rem' }}
53
  frozen
54
  />
 
 
 
 
 
55
  <Column
56
  field='tasks'
57
  header='Tasks'
58
  filter
59
- style={{ minWidth: '5rem', maxWidth: '10rem' }}
 
 
 
60
  />
61
  <Column
62
  field='n_languages'
63
- header='#Languages'
64
  filter
65
  sortable
66
- style={{ minWidth: '10rem' }}
67
  />
68
  </DataTable>
69
  )
 
2
  import { Column } from 'primereact/column'
3
  import { FilterMatchMode } from 'primereact/api'
4
  import { useState } from 'react'
5
+ import { MultiSelect } from 'primereact/multiselect'
6
+ import 'primeicons/primeicons.css'
7
 
8
  const DatasetTable = ({ data }) => {
9
  const [filters, setFilters] = useState({
 
 
10
  n_languages: { value: null, matchMode: FilterMatchMode.BETWEEN },
11
  tasks: { value: null, matchMode: FilterMatchMode.IN },
12
  parallel: { value: null, matchMode: FilterMatchMode.EQUALS },
13
  base: { value: null, matchMode: FilterMatchMode.IN },
 
14
  })
15
  const table = data.dataset_table
16
 
17
+ const implementedBodyTemplate = rowData => {
18
+ return <div style={{ display: 'flex', alignItems: 'center' }}>
19
+ <div style={{ width: '16px', height: '16px', display: 'flex', alignItems: 'center', justifyContent: 'center' }}>{rowData.implemented ? <i className='pi pi-check' title='This dataset has been used for evaluation in this benchmark.' /> : <></>}</div>
20
+ </div>
21
+ }
22
+
23
+ const authorBodyTemplate = rowData => {
24
+ const url = rowData.author_url?.replace('https://', '')
25
+ const img = url ? <img src={`https://favicone.com/${url}`} style={{borderRadius: '50%'}}/> : <></>
26
+ return <div style={{ display: 'flex', alignItems: 'center' }}>
27
+ <div style={{ width: '16px', height: '16px', display: 'flex', alignItems: 'center', justifyContent: 'center' }}>{img}</div>
28
+ <div style={{ marginLeft: '0.5rem' }}>{rowData.author}</div>
29
+ </div>
30
+ }
31
+
32
  const nameBodyTemplate = rowData => {
33
  return <div style={{ fontWeight: 'bold' }}>{rowData.name}</div>
34
  }
35
 
36
+ const tasksBodyTemplate = rowData => {
37
+ return <div style={{ display: 'flex', flexWrap: 'wrap', gap: '0.5rem' }}>
38
+ {rowData.tasks.map(task => <div key={task} style={{ backgroundColor: '#f0f0f0', padding: '0.25rem 0.5rem', borderRadius: '0.25rem' }}>{task}</div>)}
39
+ </div>
40
+ }
41
 
42
+ const linkBodyTemplate = rowData => {
43
+ return <a href={rowData.url} target='_blank' style={{ textDecoration: 'none', color: 'inherit' }}><i className='pi pi-external-link' style={{ fontSize: '0.8rem' }} /></a>
44
+ }
45
+
46
+ const tasks = [...new Set(table.flatMap(item => item.tasks))].sort()
47
+ const tasksRowFilterTemplate = options => {
48
+ return (
49
+ <MultiSelect
50
+ value={options.value}
51
+ options={tasks}
52
+ onChange={e => {
53
+ options.filterApplyCallback(e.value)
54
+ setFilters(prevFilters => ({
55
+ ...prevFilters,
56
+ tasks: { value: e.value, matchMode: FilterMatchMode.IN }
57
+ }))
58
+ }}
59
+ placeholder='All tasks'
60
+ />
61
+ )
62
+ }
63
+
64
+ console.log(table)
65
  return (
66
  <DataTable
67
  value={table}
 
69
  removableSort
70
  filters={filters}
71
  filterDisplay='menu'
72
+ sortField='implemented'
73
  scrollable
74
  scrollHeight='600px'
75
  id='dataset-table'
76
  >
77
+ <Column
78
  field='implemented'
79
+ header={null}
80
+ sortable
81
+ style={{ maxWidth: '5rem' }}
82
+ body={implementedBodyTemplate}
83
+ />
84
  <Column
85
  field='author'
86
  header='Author'
 
87
  showFilterMatchModes={false}
88
  style={{ minWidth: '5rem' }}
89
+ body={authorBodyTemplate}
90
  />
91
  <Column
92
  field='name'
93
  header='Name'
94
  body={nameBodyTemplate}
 
95
  style={{ minWidth: '5rem' }}
96
  frozen
97
  />
98
+ <Column
99
+ field='link'
100
+ header={null}
101
+ body={linkBodyTemplate}
102
+ />
103
  <Column
104
  field='tasks'
105
  header='Tasks'
106
  filter
107
+ filterElement={tasksRowFilterTemplate}
108
+ showFilterMatchModes={false}
109
+ style={{ minWidth: '10rem', maxWidth: '15rem' }}
110
+ body={tasksBodyTemplate}
111
  />
112
  <Column
113
  field='n_languages'
114
+ header='Languages'
115
  filter
116
  sortable
117
+ style={{ minWidth: '5rem', maxWidth: '10rem' }}
118
  />
119
  </DataTable>
120
  )
frontend/src/components/LanguageTable.js CHANGED
@@ -99,7 +99,7 @@ const LanguageTable = ({ data }) => {
99
 
100
  const speakerBodyTemplate = rowData => {
101
  const populationStr = formatPopulation(rowData.speakers)
102
- return <div>{populationStr}</div>
103
  }
104
 
105
  const languageBodyTemplate = rowData => {
@@ -131,8 +131,6 @@ const LanguageTable = ({ data }) => {
131
  field='language_name'
132
  header='Language'
133
  body={languageBodyTemplate}
134
- filter
135
- showFilterMatchModes={false}
136
  style={{ minWidth: '5rem' }}
137
  frozen
138
  />
@@ -143,6 +141,7 @@ const LanguageTable = ({ data }) => {
143
  filter
144
  filterElement={speakerFilterTemplate}
145
  showFilterMatchModes={false}
 
146
  style={{ minWidth: '5rem' }}
147
  />
148
  <Column
 
99
 
100
  const speakerBodyTemplate = rowData => {
101
  const populationStr = formatPopulation(rowData.speakers)
102
+ return <div style={{ textAlign: 'right' }}>{populationStr}</div>
103
  }
104
 
105
  const languageBodyTemplate = rowData => {
 
131
  field='language_name'
132
  header='Language'
133
  body={languageBodyTemplate}
 
 
134
  style={{ minWidth: '5rem' }}
135
  frozen
136
  />
 
141
  filter
142
  filterElement={speakerFilterTemplate}
143
  showFilterMatchModes={false}
144
+ sortable
145
  style={{ minWidth: '5rem' }}
146
  />
147
  <Column
frontend/src/components/ModelTable.js CHANGED
@@ -19,23 +19,6 @@ const ModelTable = ({ data }) => {
19
  return <Medal rank={rowData.rank} />
20
  }
21
 
22
- const providers = [...new Set(table.map(item => item.provider))]
23
- const providerRowFilterTemplate = options => {
24
- return (
25
- <MultiSelect
26
- value={options.value}
27
- options={providers}
28
- onChange={e => {
29
- options.filterApplyCallback(e.value)
30
- setFilters(prevFilters => ({
31
- ...prevFilters,
32
- provider: { value: e.value, matchMode: FilterMatchMode.IN }
33
- }))
34
- }}
35
- placeholder='All providers'
36
- />
37
- )
38
- }
39
  const typeRowFilterTemplate = options => {
40
  return (
41
  <MultiSelect
@@ -120,7 +103,7 @@ const ModelTable = ({ data }) => {
120
 
121
  const sizeBodyTemplate = rowData => {
122
  const sizeStr = formatSize(rowData.size)
123
- return <div>{sizeStr}</div>
124
  }
125
 
126
  const modelBodyTemplate = rowData => {
@@ -152,16 +135,11 @@ const ModelTable = ({ data }) => {
152
  <Column
153
  field='provider'
154
  header='Provider'
155
- filter
156
- filterElement={providerRowFilterTemplate}
157
- showFilterMatchModes={false}
158
  style={{ minWidth: '5rem' }}
159
  />
160
  <Column
161
  field='model'
162
  header='Model'
163
- filter
164
- showFilterMatchModes={false}
165
  style={{ minWidth: '10rem' }}
166
  body={modelBodyTemplate}
167
  frozen
 
19
  return <Medal rank={rowData.rank} />
20
  }
21
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  const typeRowFilterTemplate = options => {
23
  return (
24
  <MultiSelect
 
103
 
104
  const sizeBodyTemplate = rowData => {
105
  const sizeStr = formatSize(rowData.size)
106
+ return <div style={{ textAlign: 'right' }}>{sizeStr}</div>
107
  }
108
 
109
  const modelBodyTemplate = rowData => {
 
135
  <Column
136
  field='provider'
137
  header='Provider'
 
 
 
138
  style={{ minWidth: '5rem' }}
139
  />
140
  <Column
141
  field='model'
142
  header='Model'
 
 
143
  style={{ minWidth: '10rem' }}
144
  body={modelBodyTemplate}
145
  frozen