keepset 0.33.0 → 0.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -511,22 +511,28 @@ const ArchiveMemberSchema = z.union([
511
511
  const FileArchiveKindSchema = z.enum([
512
512
  "zip",
513
513
  "tar",
514
- "tar.gz"
514
+ "tar.gz",
515
+ "tar.bz2"
515
516
  ]);
516
- /** An archive a collection is read from: every file a selector matches, at least one. */
517
+ /** An archive a collection is read from: every file a selector matches, at least one. With `inner` of kind `xlsx`, every matched member is a workbook and each of its sheets, in the workbook's order, is one file of the collection: the sheet's CSV, at the path of the member and the sheet's name joined by `/`, for an instance format laid out on a sheet. `sheets` is a regular expression a sheet's whole name must match for the sheet to be read (every sheet when it is absent), and it must match at least one sheet of every workbook. */
517
518
  const CollectionArchiveSchema = z.object({
518
519
  kind: FileArchiveKindSchema,
519
- members: ArchiveMemberSchema
520
+ members: ArchiveMemberSchema,
521
+ inner: z.object({
522
+ kind: z.literal("xlsx"),
523
+ sheets: MemberPatternSchema.optional()
524
+ }).strict().optional()
520
525
  }).strict();
521
526
  /** How a member that is itself an archive unpacks into the file the parser reads: gunzipped, or one member of it selected. It nests one level, which is as deep as any source in the catalogue goes. */
522
527
  const InnerArchiveSchema = z.union([z.object({ kind: z.literal("gzip") }).strict(), z.object({
523
528
  kind: FileArchiveKindSchema,
524
529
  member: ArchiveMemberSchema
525
530
  }).strict()]);
526
- /** How the downloaded bytes unpack into the file the parser reads, or for a collection the files it reads one by one. A `members` selector gives every member it matches, at least one, in path order. A member that is an archive in its turn (a contest bundle that ships its problems as a zip inside the zip) is unpacked by `inner`. A workbook (`xlsx`) is read as the CSV of its named sheet, with dates as ISO 8601 text, for the `csv-table` parser. */
531
+ /** How the downloaded bytes unpack into the file the parser reads, or for a collection the files it reads one by one. A `members` selector gives every member it matches, at least one, in path order. `gzip` and `bzip2` are one compressed file, and `tar.gz` and `tar.bz2` a tar archive compressed with them. A member that is an archive in its turn (a contest bundle that ships its problems as a zip inside the zip) is unpacked by `inner`. A workbook (`xlsx`) is read as the CSV of its named sheet, with dates as ISO 8601 text, for the `csv-table` parser. A point shapefile (`shapefile`) is a zip whose `member` selects the `.shp`, read with the `.dbf`, `.prj` and `.cpg` of the same name beside it as the CSV of its attribute table with each point's stored coordinates and its WGS84 position, for the `csv-table` parser. */
527
532
  const ArchiveSchema = z.union([
528
533
  z.object({ kind: z.literal("none") }).strict(),
529
534
  z.object({ kind: z.literal("gzip") }).strict(),
535
+ z.object({ kind: z.literal("bzip2") }).strict(),
530
536
  z.object({
531
537
  kind: FileArchiveKindSchema,
532
538
  member: ArchiveMemberSchema,
@@ -536,6 +542,10 @@ const ArchiveSchema = z.union([
536
542
  z.object({
537
543
  kind: z.literal("xlsx"),
538
544
  sheet: z.string().min(1)
545
+ }).strict(),
546
+ z.object({
547
+ kind: z.literal("shapefile"),
548
+ member: ArchiveMemberSchema
539
549
  }).strict()
540
550
  ]);
541
551
  const ColumnSchema = z.int().min(0);
@@ -567,6 +577,30 @@ const ParserSchema = z.discriminatedUnion("format", [
567
577
  format: z.literal("matrix-market"),
568
578
  encoding: EncodingSchema
569
579
  }).strict(),
580
+ z.object({
581
+ format: z.literal("user-item-ratings"),
582
+ encoding: z.literal("utf-8"),
583
+ /** What separates the fields of a line: a comma, a tab, or the two colons of MovieLens's `ratings.dat`. */
584
+ delimiter: z.enum([
585
+ "comma",
586
+ "tab",
587
+ "double-colon"
588
+ ]),
589
+ /** The header lines before the first rating, counted as the file's lines. */
590
+ skipLines: z.int().min(0),
591
+ /** What the rated items are, which is their node type and fixes the prefix of their ids. */
592
+ itemType: z.enum(["movie", "product"]),
593
+ /** The top of the rating scale: a rating is divided by it to give the edge's weight, and a rating above it is refused. */
594
+ maxRating: z.number().positive()
595
+ }).strict(),
596
+ z.object({
597
+ format: z.literal("konect"),
598
+ encoding: z.literal("utf-8"),
599
+ /** Whether the third column is read as the edge's weight; the file's own weight type must agree. */
600
+ weighted: z.boolean(),
601
+ /** Whether the fourth column is read as the edge's time. */
602
+ timestamped: z.boolean()
603
+ }).strict(),
570
604
  z.object({
571
605
  format: z.literal("gml"),
572
606
  encoding: EncodingSchema
@@ -613,6 +647,10 @@ const ParserSchema = z.discriminatedUnion("format", [
613
647
  format: z.literal("vrp-rep"),
614
648
  encoding: z.literal("utf-8")
615
649
  }).strict(),
650
+ z.object({
651
+ format: z.literal("hhcrsp"),
652
+ encoding: z.literal("utf-8")
653
+ }).strict(),
616
654
  z.object({
617
655
  format: z.literal("csv-table"),
618
656
  encoding: EncodingSchema,
@@ -1070,7 +1108,7 @@ var catalogue_default = {
1070
1108
  "id": "keepset",
1071
1109
  "name": "keepset",
1072
1110
  "description": "The keepset catalogue: datasets with machine-readable recipes that fetch each one and normalise it into its category's target shape.",
1073
- "version": "1.24.0",
1111
+ "version": "1.26.0",
1074
1112
  "repository": "https://github.com/Mearman/keepset",
1075
1113
  "namespaceAliases": {
1076
1114
  "networkrepository": ["nr"],
@@ -1078,6 +1116,85 @@ var catalogue_default = {
1078
1116
  }
1079
1117
  },
1080
1118
  crosswalks: {
1119
+ "crosswalks/graph-v1/rated.json": {
1120
+ "source": "keepset/rated",
1121
+ "target": "graph/v1",
1122
+ "rules": [
1123
+ {
1124
+ "op": "move",
1125
+ "from": "meta",
1126
+ "to": "meta"
1127
+ },
1128
+ {
1129
+ "op": "move",
1130
+ "from": "nodes[].id",
1131
+ "to": "nodes[].id"
1132
+ },
1133
+ {
1134
+ "op": "move",
1135
+ "from": "edges[].source",
1136
+ "to": "edges[].source"
1137
+ },
1138
+ {
1139
+ "op": "move",
1140
+ "from": "edges[].target",
1141
+ "to": "edges[].target"
1142
+ },
1143
+ {
1144
+ "op": "move",
1145
+ "from": "nodes[].type",
1146
+ "to": "nodes[].type"
1147
+ },
1148
+ {
1149
+ "op": "move",
1150
+ "from": "edges[].type",
1151
+ "to": "edges[].type"
1152
+ },
1153
+ {
1154
+ "op": "move",
1155
+ "from": "edges[].weight",
1156
+ "to": "edges[].weight"
1157
+ },
1158
+ {
1159
+ "op": "move",
1160
+ "from": "edges[].timestamp",
1161
+ "to": "edges[].timestamp"
1162
+ }
1163
+ ],
1164
+ "oneWay": []
1165
+ },
1166
+ "crosswalks/graph-v1/timestamped.json": {
1167
+ "source": "keepset/timestamped",
1168
+ "target": "graph/v1",
1169
+ "rules": [
1170
+ {
1171
+ "op": "move",
1172
+ "from": "meta",
1173
+ "to": "meta"
1174
+ },
1175
+ {
1176
+ "op": "move",
1177
+ "from": "nodes[].id",
1178
+ "to": "nodes[].id"
1179
+ },
1180
+ {
1181
+ "op": "move",
1182
+ "from": "edges[].source",
1183
+ "to": "edges[].source"
1184
+ },
1185
+ {
1186
+ "op": "move",
1187
+ "from": "edges[].target",
1188
+ "to": "edges[].target"
1189
+ },
1190
+ {
1191
+ "op": "move",
1192
+ "from": "edges[].timestamp",
1193
+ "to": "edges[].timestamp"
1194
+ }
1195
+ ],
1196
+ "oneWay": []
1197
+ },
1081
1198
  "crosswalks/graph-v1/topology.json": {
1082
1199
  "source": "keepset/topology",
1083
1200
  "target": "graph/v1",
@@ -1105,6 +1222,75 @@ var catalogue_default = {
1105
1222
  ],
1106
1223
  "oneWay": []
1107
1224
  },
1225
+ "crosswalks/graph-v1/weighted-timestamped.json": {
1226
+ "source": "keepset/weighted-timestamped",
1227
+ "target": "graph/v1",
1228
+ "rules": [
1229
+ {
1230
+ "op": "move",
1231
+ "from": "meta",
1232
+ "to": "meta"
1233
+ },
1234
+ {
1235
+ "op": "move",
1236
+ "from": "nodes[].id",
1237
+ "to": "nodes[].id"
1238
+ },
1239
+ {
1240
+ "op": "move",
1241
+ "from": "edges[].source",
1242
+ "to": "edges[].source"
1243
+ },
1244
+ {
1245
+ "op": "move",
1246
+ "from": "edges[].target",
1247
+ "to": "edges[].target"
1248
+ },
1249
+ {
1250
+ "op": "move",
1251
+ "from": "edges[].weight",
1252
+ "to": "edges[].weight"
1253
+ },
1254
+ {
1255
+ "op": "move",
1256
+ "from": "edges[].timestamp",
1257
+ "to": "edges[].timestamp"
1258
+ }
1259
+ ],
1260
+ "oneWay": []
1261
+ },
1262
+ "crosswalks/graph-v1/weighted.json": {
1263
+ "source": "keepset/weighted",
1264
+ "target": "graph/v1",
1265
+ "rules": [
1266
+ {
1267
+ "op": "move",
1268
+ "from": "meta",
1269
+ "to": "meta"
1270
+ },
1271
+ {
1272
+ "op": "move",
1273
+ "from": "nodes[].id",
1274
+ "to": "nodes[].id"
1275
+ },
1276
+ {
1277
+ "op": "move",
1278
+ "from": "edges[].source",
1279
+ "to": "edges[].source"
1280
+ },
1281
+ {
1282
+ "op": "move",
1283
+ "from": "edges[].target",
1284
+ "to": "edges[].target"
1285
+ },
1286
+ {
1287
+ "op": "move",
1288
+ "from": "edges[].weight",
1289
+ "to": "edges[].weight"
1290
+ }
1291
+ ],
1292
+ "oneWay": []
1293
+ },
1108
1294
  "crosswalks/tasks-v1/nodes.json": {
1109
1295
  "source": "keepset/nodes",
1110
1296
  "target": "tasks/v1",
@@ -1560,10 +1746,19 @@ var catalogue_default = {
1560
1746
  "licence": { "kind": "unrecorded" },
1561
1747
  "citations": [{ "text": "McAuley, Julian, Targett, Christopher, Shi, Qinfeng, van den Hengel, Anton (2015). Image-Based Recommendations on Styles and Substitutes. Proceedings of the 38th International ACM SIGIR Conference on Research and Development in Information Retrieval." }],
1562
1748
  "recipe": {
1563
- "status": "not-fetchable",
1564
- "reason": "no download is in a form keepset reads yet (amazon-ratings: format amazon-ratings has a pipeline-specific parser with no declarative keepset form yet)"
1749
+ "status": "fetchable",
1750
+ "source": 0,
1751
+ "archive": { "kind": "none" },
1752
+ "parser": {
1753
+ "format": "user-item-ratings",
1754
+ "encoding": "utf-8",
1755
+ "delimiter": "comma",
1756
+ "skipLines": 0,
1757
+ "itemType": "product",
1758
+ "maxRating": 5
1759
+ }
1565
1760
  },
1566
- "crosswalk": { "file": "crosswalks/graph-v1/topology.json" },
1761
+ "crosswalk": { "file": "crosswalks/graph-v1/rated.json" },
1567
1762
  "expectedCounts": {
1568
1763
  "edges": 2023070,
1569
1764
  "nodes": 1459545
@@ -1597,10 +1792,19 @@ var catalogue_default = {
1597
1792
  "licence": { "kind": "unrecorded" },
1598
1793
  "citations": [{ "text": "McAuley, Julian, Targett, Christopher, Shi, Qinfeng, van den Hengel, Anton (2015). Image-Based Recommendations on Styles and Substitutes. Proceedings of the 38th International ACM SIGIR Conference on Research and Development in Information Retrieval." }],
1599
1794
  "recipe": {
1600
- "status": "not-fetchable",
1601
- "reason": "no download is in a form keepset reads yet (amazon-ratings: format amazon-ratings has a pipeline-specific parser with no declarative keepset form yet)"
1795
+ "status": "fetchable",
1796
+ "source": 0,
1797
+ "archive": { "kind": "none" },
1798
+ "parser": {
1799
+ "format": "user-item-ratings",
1800
+ "encoding": "utf-8",
1801
+ "delimiter": "comma",
1802
+ "skipLines": 0,
1803
+ "itemType": "product",
1804
+ "maxRating": 5
1805
+ }
1602
1806
  },
1603
- "crosswalk": { "file": "crosswalks/graph-v1/topology.json" },
1807
+ "crosswalk": { "file": "crosswalks/graph-v1/rated.json" },
1604
1808
  "expectedCounts": {
1605
1809
  "edges": 836006,
1606
1810
  "nodes": 744649
@@ -1660,7 +1864,7 @@ var catalogue_default = {
1660
1864
  {
1661
1865
  "id": "amazon-movies-tv",
1662
1866
  "name": "Amazon Movies and TV Reviews",
1663
- "description": "Directed bipartite user-product review network for Movies and TV on Amazon. Users are linked to products they reviewed; edge weights are normalised star ratings.",
1867
+ "description": "Undirected bipartite user-product review network for Movies and TV on Amazon. Users are linked to products they reviewed; edge weights are normalised star ratings.",
1664
1868
  "tags": [],
1665
1869
  "category": "graph/v1",
1666
1870
  "sources": [{
@@ -1671,10 +1875,19 @@ var catalogue_default = {
1671
1875
  "licence": { "kind": "unrecorded" },
1672
1876
  "citations": [{ "text": "McAuley, Julian, Targett, Christopher, Shi, Qinfeng, van den Hengel, Anton (2015). Image-Based Recommendations on Styles and Substitutes. Proceedings of the 38th International ACM SIGIR Conference on Research and Development in Information Retrieval." }],
1673
1877
  "recipe": {
1674
- "status": "not-fetchable",
1675
- "reason": "no download is in a form keepset reads yet (amazon-ratings-undirected: format amazon-ratings-undirected has a pipeline-specific parser with no declarative keepset form yet)"
1878
+ "status": "fetchable",
1879
+ "source": 0,
1880
+ "archive": { "kind": "none" },
1881
+ "parser": {
1882
+ "format": "user-item-ratings",
1883
+ "encoding": "utf-8",
1884
+ "delimiter": "comma",
1885
+ "skipLines": 0,
1886
+ "itemType": "product",
1887
+ "maxRating": 5
1888
+ }
1676
1889
  },
1677
- "crosswalk": { "file": "crosswalks/graph-v1/topology.json" },
1890
+ "crosswalk": { "file": "crosswalks/graph-v1/rated.json" },
1678
1891
  "expectedCounts": {
1679
1892
  "edges": 4607047,
1680
1893
  "nodes": 2289561
@@ -1708,10 +1921,19 @@ var catalogue_default = {
1708
1921
  "licence": { "kind": "unrecorded" },
1709
1922
  "citations": [{ "text": "McAuley, Julian, Targett, Christopher, Shi, Qinfeng, van den Hengel, Anton (2015). Image-Based Recommendations on Styles and Substitutes. Proceedings of the 38th International ACM SIGIR Conference on Research and Development in Information Retrieval." }],
1710
1923
  "recipe": {
1711
- "status": "not-fetchable",
1712
- "reason": "no download is in a form keepset reads yet (amazon-ratings: format amazon-ratings has a pipeline-specific parser with no declarative keepset form yet)"
1924
+ "status": "fetchable",
1925
+ "source": 0,
1926
+ "archive": { "kind": "none" },
1927
+ "parser": {
1928
+ "format": "user-item-ratings",
1929
+ "encoding": "utf-8",
1930
+ "delimiter": "comma",
1931
+ "skipLines": 0,
1932
+ "itemType": "product",
1933
+ "maxRating": 5
1934
+ }
1713
1935
  },
1714
- "crosswalk": { "file": "crosswalks/graph-v1/topology.json" },
1936
+ "crosswalk": { "file": "crosswalks/graph-v1/rated.json" },
1715
1937
  "expectedCounts": {
1716
1938
  "edges": 500176,
1717
1939
  "nodes": 422277
@@ -1745,10 +1967,19 @@ var catalogue_default = {
1745
1967
  "licence": { "kind": "unrecorded" },
1746
1968
  "citations": [{ "text": "McAuley, Julian, Targett, Christopher, Shi, Qinfeng, van den Hengel, Anton (2015). Image-Based Recommendations on Styles and Substitutes. Proceedings of the 38th International ACM SIGIR Conference on Research and Development in Information Retrieval." }],
1747
1969
  "recipe": {
1748
- "status": "not-fetchable",
1749
- "reason": "no download is in a form keepset reads yet (amazon-ratings: format amazon-ratings has a pipeline-specific parser with no declarative keepset form yet)"
1970
+ "status": "fetchable",
1971
+ "source": 0,
1972
+ "archive": { "kind": "none" },
1973
+ "parser": {
1974
+ "format": "user-item-ratings",
1975
+ "encoding": "utf-8",
1976
+ "delimiter": "comma",
1977
+ "skipLines": 0,
1978
+ "itemType": "product",
1979
+ "maxRating": 5
1980
+ }
1750
1981
  },
1751
- "crosswalk": { "file": "crosswalks/graph-v1/topology.json" },
1982
+ "crosswalk": { "file": "crosswalks/graph-v1/rated.json" },
1752
1983
  "expectedCounts": {
1753
1984
  "edges": 1324753,
1754
1985
  "nodes": 876977
@@ -7036,10 +7267,111 @@ var catalogue_default = {
7036
7267
  },
7037
7268
  "citations": [],
7038
7269
  "recipe": {
7039
- "status": "not-fetchable",
7040
- "reason": "The download is a per-request zip of a point shapefile (the attributes are in a dbf and the positions in a separate shp, in a projected system) with no CSV or GeoJSON route, and keepset has no shapefile parser."
7270
+ "status": "fetchable",
7271
+ "source": 1,
7272
+ "archive": {
7273
+ "kind": "shapefile",
7274
+ "member": { "path": "dataset/L_SITADEL_LOGEMENT_R11.shp" }
7275
+ },
7276
+ "parser": {
7277
+ "format": "csv-table",
7278
+ "encoding": "utf-8",
7279
+ "delimiter": "comma",
7280
+ "skipLines": 0,
7281
+ "idColumn": "id",
7282
+ "numericColumns": [
7283
+ {
7284
+ "column": "geometry_latitude",
7285
+ "factor": 1
7286
+ },
7287
+ {
7288
+ "column": "geometry_longitude",
7289
+ "factor": 1
7290
+ },
7291
+ {
7292
+ "column": "geometry_x",
7293
+ "factor": 1
7294
+ },
7295
+ {
7296
+ "column": "geometry_y",
7297
+ "factor": 1
7298
+ }
7299
+ ],
7300
+ "columns": [
7301
+ "date_ree_2",
7302
+ "geometry_latitude",
7303
+ "geometry_longitude",
7304
+ "date_reell",
7305
+ "type_dau",
7306
+ "etat_dau",
7307
+ "comm",
7308
+ "geometry_x",
7309
+ "geometry_y"
7310
+ ]
7311
+ }
7312
+ },
7313
+ "crosswalk": {
7314
+ "source": "csv-table",
7315
+ "target": "tasks/v1",
7316
+ "rules": [
7317
+ {
7318
+ "op": "move",
7319
+ "from": "meta",
7320
+ "to": "meta"
7321
+ },
7322
+ {
7323
+ "op": "move",
7324
+ "from": "nodes[].id",
7325
+ "to": "nodes[].id"
7326
+ },
7327
+ {
7328
+ "op": "move",
7329
+ "from": "nodes[].date_ree_2",
7330
+ "to": "nodes[].closed"
7331
+ },
7332
+ {
7333
+ "op": "move",
7334
+ "from": "nodes[].geometry_latitude",
7335
+ "to": "nodes[].lat"
7336
+ },
7337
+ {
7338
+ "op": "move",
7339
+ "from": "nodes[].geometry_longitude",
7340
+ "to": "nodes[].lon"
7341
+ },
7342
+ {
7343
+ "op": "move",
7344
+ "from": "nodes[].date_reell",
7345
+ "to": "nodes[].opened"
7346
+ },
7347
+ {
7348
+ "op": "move",
7349
+ "from": "nodes[].type_dau",
7350
+ "to": "nodes[].skill"
7351
+ },
7352
+ {
7353
+ "op": "move",
7354
+ "from": "nodes[].etat_dau",
7355
+ "to": "nodes[].status"
7356
+ },
7357
+ {
7358
+ "op": "move",
7359
+ "from": "nodes[].comm",
7360
+ "to": "nodes[].territory"
7361
+ },
7362
+ {
7363
+ "op": "move",
7364
+ "from": "nodes[].geometry_x",
7365
+ "to": "nodes[].x"
7366
+ },
7367
+ {
7368
+ "op": "move",
7369
+ "from": "nodes[].geometry_y",
7370
+ "to": "nodes[].y"
7371
+ }
7372
+ ],
7373
+ "oneWay": []
7041
7374
  },
7042
- "crosswalk": { "file": "crosswalks/tasks-v1/nodes.json" },
7043
7375
  "expectedCounts": {},
7044
7376
  "properties": { "surveyId": "or-72" }
7045
7377
  },
@@ -8824,7 +9156,7 @@ var catalogue_default = {
8824
9156
  "namespace": ["konect"],
8825
9157
  "aliases": ["opsahl-collaboration"],
8826
9158
  "name": "Opsahl Collaboration Network",
8827
- "description": "Undirected weighted co-authorship network from the arXiv. Edge weights represent the number of papers co-authored by each pair of researchers, making it genuinely weighted.",
9159
+ "description": "Bipartite authorship network of the arXiv condensed matter section (cond-mat) from 1995 to 1999: an edge joins an author, a left node, and a paper they wrote, a right node. The network is unweighted and has no repeated pairs.",
8828
9160
  "tags": [],
8829
9161
  "category": "graph/v1",
8830
9162
  "sources": [{
@@ -8835,27 +9167,37 @@ var catalogue_default = {
8835
9167
  "licence": { "kind": "unrecorded" },
8836
9168
  "citations": [{ "text": "Opsahl, Tore (2013). Triadic closure in two-mode networks: Redefining the global and local clustering coefficients. Social Networks." }],
8837
9169
  "recipe": {
8838
- "status": "not-fetchable",
8839
- "reason": "no download is in a form keepset reads yet (konect-tarbz2: bzip2 compression has no keepset unpacker yet)"
9170
+ "status": "fetchable",
9171
+ "source": 0,
9172
+ "archive": {
9173
+ "kind": "tar.bz2",
9174
+ "member": { "pattern": "(?:[^/]+/)?out\\.[^/]+" }
9175
+ },
9176
+ "parser": {
9177
+ "format": "konect",
9178
+ "encoding": "utf-8",
9179
+ "weighted": false,
9180
+ "timestamped": false
9181
+ }
8840
9182
  },
8841
9183
  "crosswalk": { "file": "crosswalks/graph-v1/topology.json" },
8842
9184
  "expectedCounts": {
8843
9185
  "edges": 58595,
8844
- "nodes": 22015
9186
+ "nodes": 38741
8845
9187
  },
8846
9188
  "properties": {
8847
- "components": 1,
8848
- "connected": true,
9189
+ "components": 1188,
9190
+ "connected": false,
8849
9191
  "cyclic": true,
8850
- "density": .00024177210459736553,
9192
+ "density": 7808365090394136e-20,
8851
9193
  "directed": false,
8852
9194
  "edgeTypes": 1,
8853
9195
  "heterogeneous": false,
8854
- "multigraph": true,
9196
+ "multigraph": false,
8855
9197
  "nodeTypes": 1,
8856
9198
  "rawBytes": 0,
8857
- "selfLoops": true,
8858
- "weighted": true
9199
+ "selfLoops": false,
9200
+ "weighted": false
8859
9201
  }
8860
9202
  },
8861
9203
  {
@@ -8875,10 +9217,20 @@ var catalogue_default = {
8875
9217
  "licence": { "kind": "unrecorded" },
8876
9218
  "citations": [{ "text": "Panzarasa, Pietro, Opsahl, Tore, Carley, Kathleen M. (2009). Patterns and dynamics of users' behavior and interaction: Network analysis of an online community. Journal of the American Society for Information Science and Technology 60(5), 911-932." }],
8877
9219
  "recipe": {
8878
- "status": "not-fetchable",
8879
- "reason": "no download is in a form keepset reads yet (konect-tarbz2: bzip2 compression has no keepset unpacker yet)"
9220
+ "status": "fetchable",
9221
+ "source": 0,
9222
+ "archive": {
9223
+ "kind": "tar.bz2",
9224
+ "member": { "pattern": "(?:[^/]+/)?out\\.[^/]+" }
9225
+ },
9226
+ "parser": {
9227
+ "format": "konect",
9228
+ "encoding": "utf-8",
9229
+ "weighted": false,
9230
+ "timestamped": true
9231
+ }
8880
9232
  },
8881
- "crosswalk": { "file": "crosswalks/graph-v1/topology.json" },
9233
+ "crosswalk": { "file": "crosswalks/graph-v1/timestamped.json" },
8882
9234
  "expectedCounts": {
8883
9235
  "edges": 59835,
8884
9236
  "nodes": 1899
@@ -8909,10 +9261,20 @@ var catalogue_default = {
8909
9261
  "licence": { "kind": "unrecorded" },
8910
9262
  "citations": [{ "text": "M. Michalski (2010). Manufacturing Company Emails." }],
8911
9263
  "recipe": {
8912
- "status": "not-fetchable",
8913
- "reason": "no download is in a form keepset reads yet (tsv: bzip2 compression has no keepset unpacker yet)"
9264
+ "status": "fetchable",
9265
+ "source": 0,
9266
+ "archive": {
9267
+ "kind": "tar.bz2",
9268
+ "member": { "pattern": "(?:[^/]+/)?out\\.[^/]+" }
9269
+ },
9270
+ "parser": {
9271
+ "format": "konect",
9272
+ "encoding": "utf-8",
9273
+ "weighted": false,
9274
+ "timestamped": true
9275
+ }
8914
9276
  },
8915
- "crosswalk": { "file": "crosswalks/graph-v1/topology.json" },
9277
+ "crosswalk": { "file": "crosswalks/graph-v1/timestamped.json" },
8916
9278
  "expectedCounts": {
8917
9279
  "edges": 82927,
8918
9280
  "nodes": 167
@@ -8942,8 +9304,18 @@ var catalogue_default = {
8942
9304
  "licence": { "kind": "unrecorded" },
8943
9305
  "citations": [{ "text": "R. West, J. Leskovec (2012). Human Wayfinding in Information Networks. Proceedings of the 21st International Conference on World Wide Web, 619-628." }],
8944
9306
  "recipe": {
8945
- "status": "not-fetchable",
8946
- "reason": "no download is in a form keepset reads yet (tsv: bzip2 compression has no keepset unpacker yet)"
9307
+ "status": "fetchable",
9308
+ "source": 0,
9309
+ "archive": {
9310
+ "kind": "tar.bz2",
9311
+ "member": { "pattern": "(?:[^/]+/)?out\\.[^/]+" }
9312
+ },
9313
+ "parser": {
9314
+ "format": "konect",
9315
+ "encoding": "utf-8",
9316
+ "weighted": false,
9317
+ "timestamped": false
9318
+ }
8947
9319
  },
8948
9320
  "crosswalk": { "file": "crosswalks/graph-v1/topology.json" },
8949
9321
  "expectedCounts": {
@@ -9414,10 +9786,20 @@ var catalogue_default = {
9414
9786
  "licence": { "kind": "unrecorded" },
9415
9787
  "citations": [{ "text": "Donald E. Knuth (1993). The Stanford GraphBase: A Platform for Combinatorial Computing. Addison-Wesley." }],
9416
9788
  "recipe": {
9417
- "status": "not-fetchable",
9418
- "reason": "no download is in a form keepset reads yet (konect-tarbz2: bzip2 compression has no keepset unpacker yet)"
9789
+ "status": "fetchable",
9790
+ "source": 0,
9791
+ "archive": {
9792
+ "kind": "tar.bz2",
9793
+ "member": { "pattern": "(?:[^/]+/)?out\\.[^/]+" }
9794
+ },
9795
+ "parser": {
9796
+ "format": "konect",
9797
+ "encoding": "utf-8",
9798
+ "weighted": true,
9799
+ "timestamped": false
9800
+ }
9419
9801
  },
9420
- "crosswalk": { "file": "crosswalks/graph-v1/topology.json" },
9802
+ "crosswalk": { "file": "crosswalks/graph-v1/weighted.json" },
9421
9803
  "expectedCounts": {
9422
9804
  "edges": 254,
9423
9805
  "nodes": 77
@@ -10410,7 +10792,7 @@ var catalogue_default = {
10410
10792
  }],
10411
10793
  "recipe": {
10412
10794
  "status": "not-fetchable",
10413
- "reason": "The downloads are MATLAB data files and keepset has no parser for them."
10795
+ "reason": "Each instance is a MATLAB 5 file whose orders, the nodes with their quantities, mix codes and delivery times, are a MATLAB table of datetime and other class objects, which MATLAB stores in the file's undocumented MCOS subsystem data rather than as arrays; the only plain arrays are the travel time and distance matrices, so nothing at node level can be read without reverse engineering that serialisation."
10414
10796
  },
10415
10797
  "crosswalk": { "file": "crosswalks/tasks-v1/nodes.json" },
10416
10798
  "expectedCounts": {},
@@ -10595,6 +10977,10 @@ var catalogue_default = {
10595
10977
  "url": "https://data.mendeley.com/datasets/hp3xftsrfx/1",
10596
10978
  "retrieved": "2026-10-19",
10597
10979
  "status": "live"
10980
+ }, {
10981
+ "url": "https://data.mendeley.com/public-api/zip/hp3xftsrfx/download/2",
10982
+ "retrieved": "2026-10-19",
10983
+ "status": "live"
10598
10984
  }],
10599
10985
  "licence": {
10600
10986
  "kind": "spdx",
@@ -10608,12 +10994,93 @@ var catalogue_default = {
10608
10994
  "doi": "10.1007/s10729-013-9243-1"
10609
10995
  }],
10610
10996
  "recipe": {
10611
- "status": "not-fetchable",
10612
- "reason": "The download is a RAR archive of macro enabled Excel workbooks, and keepset reads neither RAR archives nor macro workbooks."
10997
+ "status": "fetchable",
10998
+ "source": 1,
10999
+ "archive": {
11000
+ "kind": "zip",
11001
+ "members": { "extensions": [".xlsm"] },
11002
+ "inner": {
11003
+ "kind": "xlsx",
11004
+ "sheets": "(?!G5$|J5$).+"
11005
+ }
11006
+ },
11007
+ "parser": {
11008
+ "format": "hhcrsp",
11009
+ "encoding": "utf-8"
11010
+ }
10613
11011
  },
10614
- "crosswalk": { "file": "crosswalks/tasks-v1/nodes.json" },
10615
- "expectedCounts": {},
10616
- "properties": { "surveyId": "or-16" }
11012
+ "crosswalk": {
11013
+ "source": "hhcrsp",
11014
+ "target": "tasks/v1",
11015
+ "rules": [
11016
+ {
11017
+ "op": "move",
11018
+ "from": "meta",
11019
+ "to": "meta"
11020
+ },
11021
+ {
11022
+ "op": "move",
11023
+ "from": "nodes[].id",
11024
+ "to": "nodes[].id"
11025
+ },
11026
+ {
11027
+ "op": "move",
11028
+ "from": "nodes[].services",
11029
+ "to": "nodes[].skill"
11030
+ },
11031
+ {
11032
+ "op": "move",
11033
+ "from": "nodes[].x",
11034
+ "to": "nodes[].x"
11035
+ },
11036
+ {
11037
+ "op": "move",
11038
+ "from": "nodes[].y",
11039
+ "to": "nodes[].y"
11040
+ },
11041
+ {
11042
+ "op": "move",
11043
+ "from": "nodes[].role",
11044
+ "to": "nodes[].role"
11045
+ },
11046
+ {
11047
+ "op": "move",
11048
+ "from": "nodes[].duration1",
11049
+ "to": "nodes[].duration1"
11050
+ },
11051
+ {
11052
+ "op": "move",
11053
+ "from": "nodes[].duration2",
11054
+ "to": "nodes[].duration2"
11055
+ },
11056
+ {
11057
+ "op": "move",
11058
+ "from": "nodes[].earliest1",
11059
+ "to": "nodes[].earliest1"
11060
+ },
11061
+ {
11062
+ "op": "move",
11063
+ "from": "nodes[].latest1",
11064
+ "to": "nodes[].latest1"
11065
+ },
11066
+ {
11067
+ "op": "move",
11068
+ "from": "nodes[].earliest2",
11069
+ "to": "nodes[].earliest2"
11070
+ },
11071
+ {
11072
+ "op": "move",
11073
+ "from": "nodes[].latest2",
11074
+ "to": "nodes[].latest2"
11075
+ }
11076
+ ],
11077
+ "oneWay": []
11078
+ },
11079
+ "expectedCounts": { "instances": 82 },
11080
+ "properties": {
11081
+ "surveyId": "or-16",
11082
+ "timeUnit": "abstract units"
11083
+ }
10617
11084
  },
10618
11085
  {
10619
11086
  "id": "mendeley-data-last-mile-delivery-route-deviations",
@@ -11479,10 +11946,22 @@ var catalogue_default = {
11479
11946
  },
11480
11947
  "citations": [{ "text": "F. Maxwell Harper, Joseph A. Konstan (2016). The MovieLens Datasets: History and Context. ACM Transactions on Interactive Intelligent Systems." }],
11481
11948
  "recipe": {
11482
- "status": "not-fetchable",
11483
- "reason": "no download is in a form keepset reads yet (movielens: format movielens has a pipeline-specific parser with no declarative keepset form yet)"
11949
+ "status": "fetchable",
11950
+ "source": 0,
11951
+ "archive": {
11952
+ "kind": "zip",
11953
+ "member": { "path": "u.data" }
11954
+ },
11955
+ "parser": {
11956
+ "format": "user-item-ratings",
11957
+ "encoding": "utf-8",
11958
+ "delimiter": "tab",
11959
+ "skipLines": 0,
11960
+ "itemType": "movie",
11961
+ "maxRating": 5
11962
+ }
11484
11963
  },
11485
- "crosswalk": { "file": "crosswalks/graph-v1/topology.json" },
11964
+ "crosswalk": { "file": "crosswalks/graph-v1/rated.json" },
11486
11965
  "expectedCounts": {
11487
11966
  "edges": 1e5,
11488
11967
  "nodes": 2625
@@ -11505,7 +11984,7 @@ var catalogue_default = {
11505
11984
  {
11506
11985
  "id": "movielens-10m",
11507
11986
  "name": "MovieLens 10M User-Movie Ratings",
11508
- "description": "Bipartite user-movie rating network from the GroupLens research group. 10,000,054 ratings from 71,567 users on 10,681 movies. Edge weights are ratings normalised to [0, 1].",
11987
+ "description": "Bipartite user-movie rating network from the GroupLens research group. 10,000,054 ratings from 69,878 users on 10,677 movies. Edge weights are ratings normalised to [0, 1].",
11509
11988
  "tags": [],
11510
11989
  "category": "graph/v1",
11511
11990
  "sources": [{
@@ -11520,10 +11999,22 @@ var catalogue_default = {
11520
11999
  },
11521
12000
  "citations": [{ "text": "Harper, F. Maxwell, Konstan, Joseph A. (2016). The MovieLens Datasets: History and Context. ACM Transactions on Interactive Intelligent Systems." }],
11522
12001
  "recipe": {
11523
- "status": "not-fetchable",
11524
- "reason": "no download is in a form keepset reads yet (movielens: format movielens has a pipeline-specific parser with no declarative keepset form yet)"
12002
+ "status": "fetchable",
12003
+ "source": 0,
12004
+ "archive": {
12005
+ "kind": "zip",
12006
+ "member": { "path": "ratings.dat" }
12007
+ },
12008
+ "parser": {
12009
+ "format": "user-item-ratings",
12010
+ "encoding": "utf-8",
12011
+ "delimiter": "double-colon",
12012
+ "skipLines": 0,
12013
+ "itemType": "movie",
12014
+ "maxRating": 5
12015
+ }
11525
12016
  },
11526
- "crosswalk": { "file": "crosswalks/graph-v1/topology.json" },
12017
+ "crosswalk": { "file": "crosswalks/graph-v1/rated.json" },
11527
12018
  "expectedCounts": {
11528
12019
  "edges": 10000054,
11529
12020
  "nodes": 80555
@@ -11546,7 +12037,7 @@ var catalogue_default = {
11546
12037
  {
11547
12038
  "id": "movielens-1m",
11548
12039
  "name": "MovieLens 1M User-Movie Ratings",
11549
- "description": "Bipartite user-movie rating network from the GroupLens research group. 1,000,209 ratings from 6,040 users on 3,900 movies. Edge weights are ratings normalised to [0, 1].",
12040
+ "description": "Bipartite user-movie rating network from the GroupLens research group. 1,000,209 ratings from 6,040 users on 3,706 movies. Edge weights are ratings normalised to [0, 1].",
11550
12041
  "tags": [],
11551
12042
  "category": "graph/v1",
11552
12043
  "sources": [{
@@ -11561,10 +12052,22 @@ var catalogue_default = {
11561
12052
  },
11562
12053
  "citations": [{ "text": "Harper, F. Maxwell, Konstan, Joseph A. (2016). The MovieLens Datasets: History and Context. ACM Transactions on Interactive Intelligent Systems." }],
11563
12054
  "recipe": {
11564
- "status": "not-fetchable",
11565
- "reason": "no download is in a form keepset reads yet (movielens: format movielens has a pipeline-specific parser with no declarative keepset form yet)"
12055
+ "status": "fetchable",
12056
+ "source": 0,
12057
+ "archive": {
12058
+ "kind": "zip",
12059
+ "member": { "path": "ratings.dat" }
12060
+ },
12061
+ "parser": {
12062
+ "format": "user-item-ratings",
12063
+ "encoding": "utf-8",
12064
+ "delimiter": "double-colon",
12065
+ "skipLines": 0,
12066
+ "itemType": "movie",
12067
+ "maxRating": 5
12068
+ }
11566
12069
  },
11567
- "crosswalk": { "file": "crosswalks/graph-v1/topology.json" },
12070
+ "crosswalk": { "file": "crosswalks/graph-v1/rated.json" },
11568
12071
  "expectedCounts": {
11569
12072
  "edges": 1000209,
11570
12073
  "nodes": 9746
@@ -11587,7 +12090,7 @@ var catalogue_default = {
11587
12090
  {
11588
12091
  "id": "movielens-25m",
11589
12092
  "name": "MovieLens 25M User-Movie Ratings",
11590
- "description": "Bipartite user-movie rating network from the GroupLens research group. 25,000,095 ratings from 162,541 users on 62,423 movies. Edge weights are ratings normalised to [0, 1].",
12093
+ "description": "Bipartite user-movie rating network from the GroupLens research group. 25,000,095 ratings from 162,541 users on 59,047 movies. Edge weights are ratings normalised to [0, 1].",
11591
12094
  "tags": [],
11592
12095
  "category": "graph/v1",
11593
12096
  "sources": [{
@@ -11603,7 +12106,7 @@ var catalogue_default = {
11603
12106
  "citations": [{ "text": "Harper, F. Maxwell, Konstan, Joseph A. (2016). The MovieLens Datasets: History and Context. ACM Transactions on Interactive Intelligent Systems." }],
11604
12107
  "recipe": {
11605
12108
  "status": "not-fetchable",
11606
- "reason": "no download is in a form keepset reads yet (movielens: format movielens has a pipeline-specific parser with no declarative keepset form yet)"
12109
+ "reason": "no download is in a form keepset reads yet (movielens: the ratings file has more edges than one fetch can hold: the crosswalk step aborts on it with an allocation failure (ExaDev/crossmap#57), where ml-10m completes)"
11607
12110
  },
11608
12111
  "crosswalk": { "file": "crosswalks/graph-v1/topology.json" },
11609
12112
  "expectedCounts": {
@@ -17707,7 +18210,7 @@ var catalogue_default = {
17707
18210
  "citations": [],
17708
18211
  "recipe": {
17709
18212
  "status": "not-fetchable",
17710
- "reason": "The source is an SRU search endpoint that returns XML notices in a query language and not a table, and keepset has no parser for it."
18213
+ "reason": "The source is an SRU search interface whose Gemeenteblad environmental permit notices are a result set of well over a million records, while the interface serves at most 100 records a request and none past the 10,000th of a result set; a fetch would have to split the query by date into hundreds of windows and make more than ten thousand requests for gigabytes of XML, which no recipe reads, and a single window of the set is not this dataset."
17711
18214
  },
17712
18215
  "crosswalk": { "file": "crosswalks/tasks-v1/nodes.json" },
17713
18216
  "expectedCounts": {},