keepset 0.38.0 → 0.39.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.
- package/README.md +1 -1
- package/dist/{bundled-U2l4WT5T.js → bundled-6dYCPVD-.js} +157 -25
- package/dist/{categories-gZh8cn-G.d.ts → categories-DijttH_M.d.ts} +157 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/node/fetch-dataset.d.ts +2 -2
- package/dist/node/fetch-dataset.js +322 -53
- package/dist-cli/keepset.mjs +2 -2
- package/package.json +1 -1
- package/schemas/entry.schema.json +1 -1
- package/schemas/manifest.schema.json +1 -1
package/README.md
CHANGED
|
@@ -63,7 +63,7 @@ The catalogue itself is a manifest (`catalogue/manifest.json`: id, version, repo
|
|
|
63
63
|
|
|
64
64
|
## Categories and normalisation targets
|
|
65
65
|
|
|
66
|
-
A category names a normalisation target: the shape every entry in that category resolves to, whatever its native shape. `graph/v1` is `{ meta, nodes, edges }` with unique node ids and edges whose endpoints name nodes; its entries are graph datasets taken from upstream collections such as SuiteSparse, Netzschleuder, SNAP, KONECT and OGB, read by one parser per format (delimited edge lists, which can also be a sheet of a spreadsheet, Matrix Market, GML, Pajek, UCINet DL full matrices, Graph Drawing contest files, Witvliet connectome synapse files, KONECT edge files, rating and count files, knowledge graph triples and Heterogeneous Graph Benchmark node and link files), each giving the graph's topology and, where the format states them, node and edge types, weights, times and the split each edge belongs to. `tasks/v1` is `{ meta, nodes }`, a set of tasks as the places or cases it offers to visit or serve (a routing benchmark, or an open data register of permits and complaints), each flat with optional coordinates, prize, prize probability, duration, travel time, skill, territory, lifecycle status and times, and deadline, read from tabular sources by the `csv-table` parser (a delimited file, a member of an archive, a sheet of an Excel workbook, a legacy binary xls workbook or an OpenDocument spreadsheet, or an open data portal read a page at a time) and from ArcGIS feature layers by the `geojson` parser. Its entries come from a survey of open operations-research datasets, imported with a curation that records, for each source, what its download gives and how its columns map onto the node; a dataset whose source has no usable table is imported without a recipe and says why. Any category can be fetched as a collection: a recipe that selects every matching archive member with `members` (by path, by the extensions its name ends with, or by a regular expression its whole path matches) resolves to `{ meta, instances }`, where each instance is a document of the entry's category under the path of the member it came from, the schema derived from the category's own, so a category needs nothing of its own to be collected. The parser reads each member, the crosswalk is applied to each, and a member that does not parse or does not validate fails the fetch and is named. Instance files are read by one parser per format (Solomon and TOPTW time window files, Chao team orienteering files, TSPLIB style orienteering files, VRP-REP XML, VeRoLog 2019 files and customer point lists), which gives each node the columns the file has and each instance a header of its own; a curation says which of them fill the `tasks/v1` node's fields, which pass through under their own names and which are dropped, so what an entry leaves out is written down, and a source whose time quantities are not seconds keeps them under the source's names with the unit recorded as the entry's `timeUnit`. A new category starts by defining its target schema in `src/targets/` and registering it in the category registry; an entry cannot name a category that does not exist. The statically generated site renders every entry with schema.org Dataset JSON-LD, so the catalogue surfaces in the dataset discovery layers.
|
|
66
|
+
A category names a normalisation target: the shape every entry in that category resolves to, whatever its native shape. `graph/v1` is `{ meta, nodes, edges }` with unique node ids and edges whose endpoints name nodes; its entries are graph datasets taken from upstream collections such as SuiteSparse, Netzschleuder, SNAP, KONECT and OGB, read by one parser per format (delimited edge lists, which can also be a sheet of a spreadsheet, Matrix Market, GML, Pajek, UCINet DL full matrices, Graph Drawing contest files, Witvliet connectome synapse files, Open Graph Benchmark raw directories read together from the several files of a dataset's zip, KONECT edge files, rating and count files, knowledge graph triples and Heterogeneous Graph Benchmark node and link files), each giving the graph's topology and, where the format states them, node and edge types, weights, times and the split each edge belongs to. `tasks/v1` is `{ meta, nodes }`, a set of tasks as the places or cases it offers to visit or serve (a routing benchmark, or an open data register of permits and complaints), each flat with optional coordinates, prize, prize probability, duration, travel time, skill, territory, lifecycle status and times, and deadline, read from tabular sources by the `csv-table` parser (a delimited file, a member of an archive, a sheet of an Excel workbook, a legacy binary xls workbook or an OpenDocument spreadsheet, or an open data portal read a page at a time) and from ArcGIS feature layers by the `geojson` parser. Its entries come from a survey of open operations-research datasets, imported with a curation that records, for each source, what its download gives and how its columns map onto the node; a dataset whose source has no usable table is imported without a recipe and says why. Any category can be fetched as a collection: a recipe that selects every matching archive member with `members` (by path, by the extensions its name ends with, or by a regular expression its whole path matches) resolves to `{ meta, instances }`, where each instance is a document of the entry's category under the path of the member it came from, the schema derived from the category's own, so a category needs nothing of its own to be collected. The parser reads each member, the crosswalk is applied to each, and a member that does not parse or does not validate fails the fetch and is named. Instance files are read by one parser per format (Solomon and TOPTW time window files, Chao team orienteering files, TSPLIB style orienteering files, VRP-REP XML, VeRoLog 2019 files and customer point lists), which gives each node the columns the file has and each instance a header of its own; a curation says which of them fill the `tasks/v1` node's fields, which pass through under their own names and which are dropped, so what an entry leaves out is written down, and a source whose time quantities are not seconds keeps them under the source's names with the unit recorded as the entry's `timeUnit`. A new category starts by defining its target schema in `src/targets/` and registering it in the category registry; an entry cannot name a category that does not exist. The statically generated site renders every entry with schema.org Dataset JSON-LD, so the catalogue surfaces in the dataset discovery layers.
|
|
67
67
|
|
|
68
68
|
## Licensing
|
|
69
69
|
|
|
@@ -523,6 +523,12 @@ const CollectionArchiveSchema = z.object({
|
|
|
523
523
|
sheets: MemberPatternSchema.optional()
|
|
524
524
|
}).strict().optional()
|
|
525
525
|
}).strict();
|
|
526
|
+
/** An archive whose dataset is spread over several of its files, which a parser of a multi-file format (`ogb`) reads together into one document: every file the `files` selector matches, at least one, in path order, each gunzipped first when `inner` says so (an OGB dataset zip holds its tables as `.csv.gz` files). */
|
|
527
|
+
const FilesArchiveSchema = z.object({
|
|
528
|
+
kind: FileArchiveKindSchema,
|
|
529
|
+
files: ArchiveMemberSchema,
|
|
530
|
+
inner: z.object({ kind: z.literal("gzip") }).strict().optional()
|
|
531
|
+
}).strict();
|
|
526
532
|
/** A spreadsheet read as the CSV of one of its sheets (the sheet's name, as the workbook gives it): an Excel workbook (`xlsx`), a legacy binary Excel 97 to 2003 workbook (`xls`, BIFF8) or an OpenDocument spreadsheet (`ods`, whose sheets are its tables). The three give the same text for the same cells. */
|
|
527
533
|
const SheetArchiveSchema = z.object({
|
|
528
534
|
kind: z.enum([
|
|
@@ -551,7 +557,7 @@ const PartsArchiveSchema = z.object({
|
|
|
551
557
|
member: ArchiveMemberSchema
|
|
552
558
|
}).strict()).min(1).refine((parts) => new Set(parts.map((part) => part.name)).size === parts.length, { message: "each part must have its own name" })
|
|
553
559
|
}).strict();
|
|
554
|
-
/** How the downloaded bytes unpack into the file the parser reads, the named files a parser reads together into one document (`parts`), 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, a spreadsheet inside a zip) is unpacked by `inner`. A spreadsheet (`xlsx`, `xls` or `ods`) is read as the CSV of its named sheet, with dates as ISO 8601 text, for the `csv-table` or `edge-list` 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. */
|
|
560
|
+
/** How the downloaded bytes unpack into the file the parser reads, the named files a parser of a parts format reads together into one document (`parts`, such as the split files of a triples download or an HGB dataset's nodes and links), the files a parser of a multi-file format reads together into one document (`files`, such as an OGB raw directory), 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, a spreadsheet inside a zip) is unpacked by `inner`. A spreadsheet (`xlsx`, `xls` or `ods`) is read as the CSV of its named sheet, with dates as ISO 8601 text, for the `csv-table` or `edge-list` 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. */
|
|
555
561
|
const ArchiveSchema = z.union([
|
|
556
562
|
z.object({ kind: z.literal("none") }).strict(),
|
|
557
563
|
z.object({ kind: z.literal("gzip") }).strict(),
|
|
@@ -563,6 +569,7 @@ const ArchiveSchema = z.union([
|
|
|
563
569
|
}).strict(),
|
|
564
570
|
CollectionArchiveSchema,
|
|
565
571
|
PartsArchiveSchema,
|
|
572
|
+
FilesArchiveSchema,
|
|
566
573
|
SheetArchiveSchema,
|
|
567
574
|
z.object({
|
|
568
575
|
kind: z.literal("shapefile"),
|
|
@@ -598,12 +605,21 @@ const ParserSchema = z.discriminatedUnion("format", [
|
|
|
598
605
|
/** The column holding how many edges a line stands for, a whole number, for a table that lists each pair once with its count; a line that stands for none adds neither an edge nor a node. */
|
|
599
606
|
multiplicityColumn: ColumnSchema.optional(),
|
|
600
607
|
/** The table lists every undirected edge twice, once in each direction and with the same multiplicity: each pair's edges are emitted once, in the direction it is first listed, a self-loop's once, and a line whose mirror is missing is an error. graph/v1 records direction in `meta` and never by duplicating edges, so an undirected graph read from such a table needs this. */
|
|
601
|
-
mirrored: z.literal(true).optional()
|
|
608
|
+
mirrored: z.literal(true).optional(),
|
|
609
|
+
/** The conditions a data line must meet to be an edge, each a column whose trimmed field equals a value; a file whose rows are of several kinds (an interaction file listing genetic beside physical interactions, or interactions with another organism's proteins) is read for the rows the dataset is made of. Without it every data line is an edge. */
|
|
610
|
+
where: z.array(z.object({
|
|
611
|
+
column: ColumnSchema,
|
|
612
|
+
equals: z.string().min(1)
|
|
613
|
+
}).strict()).min(1).optional()
|
|
602
614
|
}).strict().refine((parser) => parser.sourceColumn !== parser.targetColumn, {
|
|
603
615
|
message: "sourceColumn and targetColumn must differ",
|
|
604
616
|
path: ["targetColumn"]
|
|
605
|
-
}).refine((parser) => [
|
|
606
|
-
|
|
617
|
+
}).refine((parser) => [
|
|
618
|
+
parser.keep?.column,
|
|
619
|
+
parser.multiplicityColumn,
|
|
620
|
+
...(parser.where ?? []).map((condition) => condition.column)
|
|
621
|
+
].every((column) => column === void 0 || column !== parser.sourceColumn && column !== parser.targetColumn), {
|
|
622
|
+
message: "the keep, multiplicity and where columns must not be an endpoint column",
|
|
607
623
|
path: ["keep"]
|
|
608
624
|
}),
|
|
609
625
|
z.object({
|
|
@@ -700,6 +716,10 @@ const ParserSchema = z.discriminatedUnion("format", [
|
|
|
700
716
|
format: z.literal("witvliet-synapses"),
|
|
701
717
|
encoding: z.literal("utf-8")
|
|
702
718
|
}).strict(),
|
|
719
|
+
z.object({
|
|
720
|
+
format: z.literal("ogb"),
|
|
721
|
+
encoding: z.literal("utf-8")
|
|
722
|
+
}).strict(),
|
|
703
723
|
z.object({
|
|
704
724
|
format: z.literal("customer-points"),
|
|
705
725
|
encoding: EncodingSchema
|
|
@@ -799,6 +819,8 @@ const PagingSchema = z.discriminatedUnion("kind", [
|
|
|
799
819
|
pageSize: z.int().min(1)
|
|
800
820
|
}).strict()
|
|
801
821
|
]);
|
|
822
|
+
/** The parser formats that read a dataset spread over several files of one archive, and so the only ones a `files` archive is given to. */
|
|
823
|
+
const MULTI_FILE_FORMATS = /* @__PURE__ */ new Set(["ogb"]);
|
|
802
824
|
/** How to obtain the dataset: a fetchable recipe naming the source (by index into `sources`), the archive layout and the parser, or a statement that no declarative recipe exists yet and why. */
|
|
803
825
|
/** The parser formats that read a document from named parts, and the part names each requires (none for a format whose part names are its own, such as the splits of a triples download). */
|
|
804
826
|
const PART_FORMATS = /* @__PURE__ */ new Map([["kg-triples", void 0], ["hgb", ["nodes", "links"]]]);
|
|
@@ -823,6 +845,11 @@ const RecipeSchema = z.discriminatedUnion("status", [z.object({
|
|
|
823
845
|
message: `the ${recipe.parser.format} parser reads the parts ${required.join(" and ")} from a parts archive`
|
|
824
846
|
});
|
|
825
847
|
}
|
|
848
|
+
if ("files" in recipe.archive !== MULTI_FILE_FORMATS.has(recipe.parser.format)) ctx.addIssue({
|
|
849
|
+
code: "custom",
|
|
850
|
+
path: ["archive"],
|
|
851
|
+
message: `a files archive is read by a multi-file parser (${[...MULTI_FILE_FORMATS].join(", ")}), and such a parser reads only a files archive`
|
|
852
|
+
});
|
|
826
853
|
}), z.object({
|
|
827
854
|
status: z.literal("not-fetchable"),
|
|
828
855
|
reason: z.string().min(1)
|
|
@@ -1206,7 +1233,7 @@ var catalogue_default = {
|
|
|
1206
1233
|
"id": "keepset",
|
|
1207
1234
|
"name": "keepset",
|
|
1208
1235
|
"description": "The keepset catalogue: datasets with machine-readable recipes that fetch each one and normalise it into its category's target shape.",
|
|
1209
|
-
"version": "1.
|
|
1236
|
+
"version": "1.30.0",
|
|
1210
1237
|
"repository": "https://github.com/Mearman/keepset",
|
|
1211
1238
|
"namespaceAliases": {
|
|
1212
1239
|
"networkrepository": ["nr"],
|
|
@@ -2463,7 +2490,7 @@ var catalogue_default = {
|
|
|
2463
2490
|
"citations": [{ "text": "Jie Tang, Jing Zhang, Limin Yao, Juanzi Li, Li Zhang, Zhong Su (2008). ArnetMiner: Extraction and Mining of Academic Social Networks. Proceedings of the 14th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining." }],
|
|
2464
2491
|
"recipe": {
|
|
2465
2492
|
"status": "not-fetchable",
|
|
2466
|
-
"reason": "no download is in a form keepset reads yet (aminer-7z: 7z
|
|
2493
|
+
"reason": "no download is in a form keepset reads yet (aminer-7z: the archive is a 7z (LZMA2) file holding one JSON array of paper records (dblp.v12.json) that unpacks to over twelve gigabytes, more than a fetch can hold in memory, so no 7z reader is added for it)"
|
|
2467
2494
|
},
|
|
2468
2495
|
"crosswalk": { "file": "crosswalks/graph-v1/topology.json" },
|
|
2469
2496
|
"expectedCounts": {
|
|
@@ -2556,8 +2583,21 @@ var catalogue_default = {
|
|
|
2556
2583
|
"licence": { "kind": "unrecorded" },
|
|
2557
2584
|
"citations": [{ "text": "R. Guimera, L. Danon, A. Diaz-Guilera, F. Giralt, A. Arenas (2003). Self-similar community structure in a network of human interactions. Physical Review E 68, 065103(R)." }],
|
|
2558
2585
|
"recipe": {
|
|
2559
|
-
"status": "
|
|
2560
|
-
"
|
|
2586
|
+
"status": "fetchable",
|
|
2587
|
+
"source": 0,
|
|
2588
|
+
"archive": {
|
|
2589
|
+
"kind": "zip",
|
|
2590
|
+
"member": { "path": "email.txt" }
|
|
2591
|
+
},
|
|
2592
|
+
"parser": {
|
|
2593
|
+
"format": "edge-list",
|
|
2594
|
+
"encoding": "utf-8",
|
|
2595
|
+
"delimiter": "whitespace",
|
|
2596
|
+
"skipLines": 0,
|
|
2597
|
+
"commentPrefixes": ["#", "%"],
|
|
2598
|
+
"sourceColumn": 0,
|
|
2599
|
+
"targetColumn": 1
|
|
2600
|
+
}
|
|
2561
2601
|
},
|
|
2562
2602
|
"crosswalk": { "file": "crosswalks/graph-v1/topology.json" },
|
|
2563
2603
|
"expectedCounts": {
|
|
@@ -9407,7 +9447,7 @@ var catalogue_default = {
|
|
|
9407
9447
|
"citations": [{ "text": "Junheng Lin, Yibin Shen, Yifan Wang, Fangzhao Wu, Xiang Wang (2024). H2GB: A Hierarchical Heterogeneous Graph Benchmark for Node Property Prediction. Proceedings of the AAAI Conference on Artificial Intelligence." }],
|
|
9408
9448
|
"recipe": {
|
|
9409
9449
|
"status": "not-fetchable",
|
|
9410
|
-
"reason": "no download is in a form keepset reads yet (ieee-cis-zip:
|
|
9450
|
+
"reason": "no download is in a form keepset reads yet (ieee-cis-zip: the archive holds the IEEE-CIS fraud detection competition's raw transaction and identity tables, not a graph: H2GB builds its graph from shared card, address, email and device fields with its own construction code)"
|
|
9411
9451
|
},
|
|
9412
9452
|
"crosswalk": { "file": "crosswalks/graph-v1/topology.json" },
|
|
9413
9453
|
"expectedCounts": {
|
|
@@ -18616,7 +18656,7 @@ var catalogue_default = {
|
|
|
18616
18656
|
"citations": [{ "text": "Junheng Lin, Yibin Shen, Yifan Wang, Fangzhao Wu, Xiang Wang (2024). H2GB: A Hierarchical Heterogeneous Graph Benchmark for Node Property Prediction. Proceedings of the AAAI Conference on Artificial Intelligence." }],
|
|
18617
18657
|
"recipe": {
|
|
18618
18658
|
"status": "not-fetchable",
|
|
18619
|
-
"reason": "no download is in a form keepset reads yet (pytorch-hetero:
|
|
18659
|
+
"reason": "no download is in a form keepset reads yet (pytorch-hetero: the file is a PyTorch torch.save archive whose graph is a pickled Python dictionary (pyHGT's OAG layout of node_forward, node_feature and edge_list by target type, source type and relation), which only a Python runtime with PyTorch can unpickle, and it is several gigabytes)"
|
|
18620
18660
|
},
|
|
18621
18661
|
"crosswalk": { "file": "crosswalks/graph-v1/topology.json" },
|
|
18622
18662
|
"expectedCounts": {
|
|
@@ -18648,6 +18688,10 @@ var catalogue_default = {
|
|
|
18648
18688
|
"url": "https://data.pyg.org/datasets/ogbl_biokg.zip",
|
|
18649
18689
|
"retrieved": "2026-03-26",
|
|
18650
18690
|
"status": "live"
|
|
18691
|
+
}, {
|
|
18692
|
+
"url": "https://snap.stanford.edu/ogb/data/linkproppred/biokg.zip",
|
|
18693
|
+
"retrieved": "2026-10-21",
|
|
18694
|
+
"status": "live"
|
|
18651
18695
|
}],
|
|
18652
18696
|
"licence": {
|
|
18653
18697
|
"kind": "spdx",
|
|
@@ -18655,8 +18699,17 @@ var catalogue_default = {
|
|
|
18655
18699
|
},
|
|
18656
18700
|
"citations": [{ "text": "Hu et al. (2020). Open Graph Benchmark: Datasets for Machine Learning on Graphs. NeurIPS." }],
|
|
18657
18701
|
"recipe": {
|
|
18658
|
-
"status": "
|
|
18659
|
-
"
|
|
18702
|
+
"status": "fetchable",
|
|
18703
|
+
"source": 1,
|
|
18704
|
+
"archive": {
|
|
18705
|
+
"kind": "zip",
|
|
18706
|
+
"files": { "pattern": "[^/]+/raw/(?:num-node-list|num-node-dict|edge|num-edge-list|triplet-type-list|relations/[^/]+/(?:edge|num-edge-list))\\.csv\\.gz" },
|
|
18707
|
+
"inner": { "kind": "gzip" }
|
|
18708
|
+
},
|
|
18709
|
+
"parser": {
|
|
18710
|
+
"format": "ogb",
|
|
18711
|
+
"encoding": "utf-8"
|
|
18712
|
+
}
|
|
18660
18713
|
},
|
|
18661
18714
|
"crosswalk": { "file": "crosswalks/graph-v1/topology.json" },
|
|
18662
18715
|
"expectedCounts": {
|
|
@@ -18696,8 +18749,17 @@ var catalogue_default = {
|
|
|
18696
18749
|
},
|
|
18697
18750
|
"citations": [{ "text": "Weihua Hu, Matthias Fey, Marinka Zitnik, Yuxiao Dong, Hongyu Ren, Bowen Liu, Michele Catasta, Jure Leskovec (2020). Open Graph Benchmark: Datasets for Machine Learning on Graphs. NeurIPS." }],
|
|
18698
18751
|
"recipe": {
|
|
18699
|
-
"status": "
|
|
18700
|
-
"
|
|
18752
|
+
"status": "fetchable",
|
|
18753
|
+
"source": 0,
|
|
18754
|
+
"archive": {
|
|
18755
|
+
"kind": "zip",
|
|
18756
|
+
"files": { "pattern": "[^/]+/raw/(?:num-node-list|num-node-dict|edge|num-edge-list|triplet-type-list|relations/[^/]+/(?:edge|num-edge-list))\\.csv\\.gz" },
|
|
18757
|
+
"inner": { "kind": "gzip" }
|
|
18758
|
+
},
|
|
18759
|
+
"parser": {
|
|
18760
|
+
"format": "ogb",
|
|
18761
|
+
"encoding": "utf-8"
|
|
18762
|
+
}
|
|
18701
18763
|
},
|
|
18702
18764
|
"crosswalk": { "file": "crosswalks/graph-v1/topology.json" },
|
|
18703
18765
|
"expectedCounts": {
|
|
@@ -18769,6 +18831,10 @@ var catalogue_default = {
|
|
|
18769
18831
|
"url": "https://data.pyg.org/datasets/ogbn_mag.zip",
|
|
18770
18832
|
"retrieved": "2026-03-26",
|
|
18771
18833
|
"status": "live"
|
|
18834
|
+
}, {
|
|
18835
|
+
"url": "https://snap.stanford.edu/ogb/data/nodeproppred/mag.zip",
|
|
18836
|
+
"retrieved": "2026-10-21",
|
|
18837
|
+
"status": "live"
|
|
18772
18838
|
}],
|
|
18773
18839
|
"licence": {
|
|
18774
18840
|
"kind": "spdx",
|
|
@@ -18776,8 +18842,17 @@ var catalogue_default = {
|
|
|
18776
18842
|
},
|
|
18777
18843
|
"citations": [{ "text": "Hu et al. (2020). Open Graph Benchmark: Datasets for Machine Learning on Graphs. NeurIPS." }],
|
|
18778
18844
|
"recipe": {
|
|
18779
|
-
"status": "
|
|
18780
|
-
"
|
|
18845
|
+
"status": "fetchable",
|
|
18846
|
+
"source": 1,
|
|
18847
|
+
"archive": {
|
|
18848
|
+
"kind": "zip",
|
|
18849
|
+
"files": { "pattern": "[^/]+/raw/(?:num-node-list|num-node-dict|edge|num-edge-list|triplet-type-list|relations/[^/]+/(?:edge|num-edge-list))\\.csv\\.gz" },
|
|
18850
|
+
"inner": { "kind": "gzip" }
|
|
18851
|
+
},
|
|
18852
|
+
"parser": {
|
|
18853
|
+
"format": "ogb",
|
|
18854
|
+
"encoding": "utf-8"
|
|
18855
|
+
}
|
|
18781
18856
|
},
|
|
18782
18857
|
"crosswalk": { "file": "crosswalks/graph-v1/topology.json" },
|
|
18783
18858
|
"expectedCounts": {
|
|
@@ -18821,7 +18896,7 @@ var catalogue_default = {
|
|
|
18821
18896
|
}],
|
|
18822
18897
|
"recipe": {
|
|
18823
18898
|
"status": "not-fetchable",
|
|
18824
|
-
"reason": "no download is in a form keepset reads yet (parquet:
|
|
18899
|
+
"reason": "no download is in a form keepset reads yet (parquet: the download is a Hugging Face dataset repository whose citation table is thousands of Parquet files holding billions of rows, tens of gigabytes in all, more than a fetch can hold in memory, so no Parquet reader is added for it)"
|
|
18825
18900
|
},
|
|
18826
18901
|
"crosswalk": { "file": "crosswalks/graph-v1/topology.json" },
|
|
18827
18902
|
"expectedCounts": {
|
|
@@ -23458,8 +23533,35 @@ var catalogue_default = {
|
|
|
23458
23533
|
},
|
|
23459
23534
|
"citations": [{ "text": "Szklarczyk et al. (2019). STRING: functional protein association networks. Nature Methods." }],
|
|
23460
23535
|
"recipe": {
|
|
23461
|
-
"status": "
|
|
23462
|
-
"
|
|
23536
|
+
"status": "fetchable",
|
|
23537
|
+
"source": 0,
|
|
23538
|
+
"archive": {
|
|
23539
|
+
"kind": "zip",
|
|
23540
|
+
"member": { "pattern": "BIOGRID-ORGANISM-Homo_sapiens-[0-9.]+\\.tab3\\.txt" }
|
|
23541
|
+
},
|
|
23542
|
+
"parser": {
|
|
23543
|
+
"format": "edge-list",
|
|
23544
|
+
"encoding": "utf-8",
|
|
23545
|
+
"delimiter": "tab",
|
|
23546
|
+
"skipLines": 0,
|
|
23547
|
+
"commentPrefixes": ["#"],
|
|
23548
|
+
"sourceColumn": 3,
|
|
23549
|
+
"targetColumn": 4,
|
|
23550
|
+
"where": [
|
|
23551
|
+
{
|
|
23552
|
+
"column": 12,
|
|
23553
|
+
"equals": "physical"
|
|
23554
|
+
},
|
|
23555
|
+
{
|
|
23556
|
+
"column": 15,
|
|
23557
|
+
"equals": "9606"
|
|
23558
|
+
},
|
|
23559
|
+
{
|
|
23560
|
+
"column": 16,
|
|
23561
|
+
"equals": "9606"
|
|
23562
|
+
}
|
|
23563
|
+
]
|
|
23564
|
+
}
|
|
23463
23565
|
},
|
|
23464
23566
|
"crosswalk": { "file": "crosswalks/graph-v1/topology.json" },
|
|
23465
23567
|
"expectedCounts": {
|
|
@@ -23887,8 +23989,18 @@ var catalogue_default = {
|
|
|
23887
23989
|
"licence": { "kind": "unrecorded" },
|
|
23888
23990
|
"citations": [{ "text": "Leskovec, Jure, Huttenlocher, Daniel, Kleinberg, Jon (2010). Signed Networks in Social Media. Proceedings of the SIGCHI Conference on Human Factors in Computing Systems." }],
|
|
23889
23991
|
"recipe": {
|
|
23890
|
-
"status": "
|
|
23891
|
-
"
|
|
23992
|
+
"status": "fetchable",
|
|
23993
|
+
"source": 0,
|
|
23994
|
+
"archive": { "kind": "gzip" },
|
|
23995
|
+
"parser": {
|
|
23996
|
+
"format": "edge-list",
|
|
23997
|
+
"encoding": "utf-8",
|
|
23998
|
+
"delimiter": "tab",
|
|
23999
|
+
"skipLines": 0,
|
|
24000
|
+
"commentPrefixes": ["#"],
|
|
24001
|
+
"sourceColumn": 0,
|
|
24002
|
+
"targetColumn": 1
|
|
24003
|
+
}
|
|
23892
24004
|
},
|
|
23893
24005
|
"crosswalk": { "file": "crosswalks/graph-v1/topology.json" },
|
|
23894
24006
|
"expectedCounts": {
|
|
@@ -60469,8 +60581,18 @@ var catalogue_default = {
|
|
|
60469
60581
|
},
|
|
60470
60582
|
"citations": [{ "text": "Szklarczyk, Damian, Kirsch, Rebecca, Koutrouli, Mikaela, Nastou, Katerina, Mehryary, Farrokh, Hachilif, Radja, Annika, Gable, Fang, Tao, Doncheva, Nadezhda T., Letunic, Ivica, Bork, Peer, Jensen, Lars J., von Mering, Christian (2023). The STRING database in 2023: protein–protein association networks and functional enrichment analyses for any of 12 535 organisms. Nucleic Acids Research." }],
|
|
60471
60583
|
"recipe": {
|
|
60472
|
-
"status": "
|
|
60473
|
-
"
|
|
60584
|
+
"status": "fetchable",
|
|
60585
|
+
"source": 0,
|
|
60586
|
+
"archive": { "kind": "gzip" },
|
|
60587
|
+
"parser": {
|
|
60588
|
+
"format": "edge-list",
|
|
60589
|
+
"encoding": "utf-8",
|
|
60590
|
+
"delimiter": "space",
|
|
60591
|
+
"skipLines": 1,
|
|
60592
|
+
"commentPrefixes": [],
|
|
60593
|
+
"sourceColumn": 0,
|
|
60594
|
+
"targetColumn": 1
|
|
60595
|
+
}
|
|
60474
60596
|
},
|
|
60475
60597
|
"crosswalk": { "file": "crosswalks/graph-v1/topology.json" },
|
|
60476
60598
|
"expectedCounts": {
|
|
@@ -60957,8 +61079,18 @@ var catalogue_default = {
|
|
|
60957
61079
|
},
|
|
60958
61080
|
"citations": [{ "text": "Barrat et al. (2004). The architecture of complex weighted networks. Proceedings of the National Academy of Sciences." }],
|
|
60959
61081
|
"recipe": {
|
|
60960
|
-
"status": "
|
|
60961
|
-
"
|
|
61082
|
+
"status": "fetchable",
|
|
61083
|
+
"source": 0,
|
|
61084
|
+
"archive": { "kind": "none" },
|
|
61085
|
+
"parser": {
|
|
61086
|
+
"format": "edge-list",
|
|
61087
|
+
"encoding": "utf-8",
|
|
61088
|
+
"delimiter": "detect",
|
|
61089
|
+
"skipLines": 0,
|
|
61090
|
+
"commentPrefixes": ["#", "%"],
|
|
61091
|
+
"sourceColumn": 2,
|
|
61092
|
+
"targetColumn": 4
|
|
61093
|
+
}
|
|
60962
61094
|
},
|
|
60963
61095
|
"crosswalk": { "file": "crosswalks/graph-v1/topology.json" },
|
|
60964
61096
|
"expectedCounts": {
|