keepset 0.9.2 → 0.11.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 CHANGED
@@ -35,7 +35,20 @@ npx keepset validate cora
35
35
  npx keepset roundtrip cora
36
36
  ```
37
37
 
38
- `fetch` writes the normalised result with its provenance beside it; `validate` checks the entry against the entry schema and its crosswalk against twindex's validation without the network; `roundtrip` fetches the dataset and checks that decoding the encoded native document gives it back. Exit status is 0 for an answer, 1 for a negative one (an invalid entry, a round trip that does not hold) and 2 for no answer (bad usage, an unknown id, a recipe that failed).
38
+ `fetch` writes the normalised result with its provenance beside it; `validate` checks the entry against the entry schema and its crosswalk against twindex's validation without the network; `roundtrip` fetches the dataset and checks that decoding the encoded native document gives it back. Exit status is 0 for an answer, 1 for a negative one (an invalid entry, a round trip that does not hold) and 2 for no answer (bad usage, an unknown or ambiguous name, a recipe that failed).
39
+
40
+ ## Names, aliases and namespaces
41
+
42
+ An entry has one canonical id, flat and stable, and can also carry a namespace (the collection it comes from, such as `suitesparse/gset`) and aliases (other names for the same dataset). The library's `getDataset` and every CLI command that takes a dataset resolve any of these names:
43
+
44
+ ```sh
45
+ npx keepset fetch ss-gset-g53
46
+ npx keepset fetch suitesparse/gset/g53
47
+ npx keepset fetch gset/g53
48
+ npx keepset fetch g53
49
+ ```
50
+
51
+ A qualified name joins the namespace to a name with `/`, and any leading part of the namespace may be dropped while the name still means one dataset. An entry's own id always wins; otherwise a name that more than one entry answers to is refused with the ids it could mean (`DatasetAmbiguousError` in the library, exit status 2 in the CLI), and the way out is a longer qualified name or the id. `search --namespace suitesparse` (or `listDatasets({ namespace })`) lists a namespace and everything beneath it. Everything a command writes or prints uses the entry's own id, never the name typed.
39
52
 
40
53
  ## The entry format
41
54