@graphty/graph-io 0.3.17 → 0.3.18
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/LICENSE +1 -1
- package/README.md +29 -3
- package/dist/chunks/{escape-scjHxjpr.js → escape-D-gZWO26.js} +3 -2
- package/dist/chunks/{escape-scjHxjpr.js.map → escape-D-gZWO26.js.map} +1 -1
- package/dist/chunks/{importer-Xg07gk7p.js → importer-Br_QeAeE.js} +4 -3
- package/dist/chunks/{importer-Xg07gk7p.js.map → importer-Br_QeAeE.js.map} +1 -1
- package/dist/chunks/{importer-ruMWWvVs.js → importer-DHagxvDD.js} +4 -3
- package/dist/chunks/{importer-ruMWWvVs.js.map → importer-DHagxvDD.js.map} +1 -1
- package/dist/chunks/{importer-B6rKRxzv.js → importer-Du5crN9l.js} +509 -25
- package/dist/chunks/importer-Du5crN9l.js.map +1 -0
- package/dist/chunks/importer-aNJfe0qu.js +1614 -0
- package/dist/chunks/importer-aNJfe0qu.js.map +1 -0
- package/dist/chunks/{importer-BmOl9gLW.js → importer-d0uQxFp6.js} +4 -3
- package/dist/chunks/{importer-BmOl9gLW.js.map → importer-d0uQxFp6.js.map} +1 -1
- package/dist/chunks/ontology-BnrJ4I98.js +113 -0
- package/dist/chunks/ontology-BnrJ4I98.js.map +1 -0
- package/dist/chunks/{records-DSpbTE5s.js → records-Bk9jgodz.js} +2 -2
- package/dist/chunks/{records-DSpbTE5s.js.map → records-Bk9jgodz.js.map} +1 -1
- package/dist/chunks/{writer-DHHfHn11.js → report-BOk0p5y8.js} +97 -919
- package/dist/chunks/report-BOk0p5y8.js.map +1 -0
- package/dist/chunks/writer-GAdltGmC.js +827 -0
- package/dist/chunks/writer-GAdltGmC.js.map +1 -0
- package/dist/csv.js +4 -3
- package/dist/csv.js.map +1 -1
- package/dist/dot.js +1 -1
- package/dist/gexf.js +3 -2
- package/dist/gexf.js.map +1 -1
- package/dist/gml.js +3 -2
- package/dist/gml.js.map +1 -1
- package/dist/graph-io.js +160 -141
- package/dist/graph-io.js.map +1 -1
- package/dist/graphml.js +1 -1
- package/dist/json.js +1 -1
- package/dist/neo4j.js +4 -3
- package/dist/neo4j.js.map +1 -1
- package/dist/obo.d.ts +1 -0
- package/dist/obo.js +6 -0
- package/dist/obo.js.map +1 -0
- package/dist/pajek.js +1 -1
- package/dist/src/common/ontology.d.ts +59 -0
- package/dist/src/common/ontology.d.ts.map +1 -0
- package/dist/src/common/ontology.js +147 -0
- package/dist/src/common/ontology.js.map +1 -0
- package/dist/src/formats/json/dialect.d.ts +8 -6
- package/dist/src/formats/json/dialect.d.ts.map +1 -1
- package/dist/src/formats/json/dialect.js +26 -3
- package/dist/src/formats/json/dialect.js.map +1 -1
- package/dist/src/formats/json/importer.d.ts +324 -7
- package/dist/src/formats/json/importer.d.ts.map +1 -1
- package/dist/src/formats/json/importer.js +153 -22
- package/dist/src/formats/json/importer.js.map +1 -1
- package/dist/src/formats/json/obographs.d.ts +21 -0
- package/dist/src/formats/json/obographs.d.ts.map +1 -0
- package/dist/src/formats/json/obographs.js +476 -0
- package/dist/src/formats/json/obographs.js.map +1 -0
- package/dist/src/formats/obo/importer.d.ts +90 -0
- package/dist/src/formats/obo/importer.d.ts.map +1 -0
- package/dist/src/formats/obo/importer.js +1248 -0
- package/dist/src/formats/obo/importer.js.map +1 -0
- package/dist/src/formats/obo/index.d.ts +7 -0
- package/dist/src/formats/obo/index.d.ts.map +1 -0
- package/dist/src/formats/obo/index.js +7 -0
- package/dist/src/formats/obo/index.js.map +1 -0
- package/dist/src/formats/obo/syntax.d.ts +121 -0
- package/dist/src/formats/obo/syntax.d.ts.map +1 -0
- package/dist/src/formats/obo/syntax.js +424 -0
- package/dist/src/formats/obo/syntax.js.map +1 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/registry.d.ts.map +1 -1
- package/dist/src/registry.js +3 -1
- package/dist/src/registry.js.map +1 -1
- package/dist/src/sniff.d.ts +1 -1
- package/dist/src/sniff.d.ts.map +1 -1
- package/dist/src/sniff.js +23 -3
- package/dist/src/sniff.js.map +1 -1
- package/package.json +6 -1
- package/src/common/ontology.ts +169 -0
- package/src/formats/json/dialect.ts +37 -7
- package/src/formats/json/importer.ts +204 -27
- package/src/formats/json/obographs.ts +563 -0
- package/src/formats/obo/importer.ts +1695 -0
- package/src/formats/obo/index.ts +7 -0
- package/src/formats/obo/syntax.ts +466 -0
- package/src/index.ts +1 -0
- package/src/registry.ts +3 -1
- package/src/sniff.ts +35 -5
- package/dist/chunks/importer-B6rKRxzv.js.map +0 -1
- package/dist/chunks/writer-DHHfHn11.js.map +0 -1
package/dist/obo.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./src/formats/obo/index.js";
|
package/dist/obo.js
ADDED
package/dist/obo.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"obo.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
package/dist/pajek.js
CHANGED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the OBO importer and the JSON importer's `obographs` dialect share (design section 1.0, the
|
|
3
|
+
* `ontology.ts` building block): the OBO column vocabulary (names, dtypes, roles), so the `.obo` and
|
|
4
|
+
* the `.json` of one ontology give the same columns, and the OBO 1.4 rule for turning the IRIs
|
|
5
|
+
* OBO Graphs writes back into the identifiers the `.obo` file writes (section 4.6).
|
|
6
|
+
*/
|
|
7
|
+
import { type ColumnDecl } from "@graphty/graph-format";
|
|
8
|
+
/** The dtypes the OBO vocabulary uses. */
|
|
9
|
+
type OboDtype = "string" | "dict" | "bool" | "list" | "json";
|
|
10
|
+
/** One column of the OBO vocabulary. */
|
|
11
|
+
interface OboColumnSpec {
|
|
12
|
+
/** The dtype. */
|
|
13
|
+
readonly dtype: OboDtype;
|
|
14
|
+
/** The role, when the column carries one. */
|
|
15
|
+
readonly role?: "label" | "kind" | undefined;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* The node columns of the OBO vocabulary, keyed by column name (design section 4.2). The names are
|
|
19
|
+
* the OBO tag names, so a Gene Ontology user finds `namespace`, `def` and `is_obsolete` under the
|
|
20
|
+
* names the GO documentation uses.
|
|
21
|
+
*/
|
|
22
|
+
export declare const OBO_NODE_COLUMNS: Readonly<Record<string, OboColumnSpec>>;
|
|
23
|
+
/** The node column that marks a node made for an undeclared reference (design section 4.2). */
|
|
24
|
+
export declare const PLACEHOLDER_COLUMN = "graphty.placeholder";
|
|
25
|
+
/**
|
|
26
|
+
* The declaration of an OBO vocabulary column.
|
|
27
|
+
* @param domain - node or edge
|
|
28
|
+
* @param name - the column name (a key of OBO_NODE_COLUMNS / OBO_EDGE_COLUMNS, or the placeholder column)
|
|
29
|
+
* @returns the declaration, nullable, with origin `{ format: "obo", id: name }`
|
|
30
|
+
*/
|
|
31
|
+
export declare function oboColumnDecl(domain: "node" | "edge", name: string): ColumnDecl;
|
|
32
|
+
/**
|
|
33
|
+
* An IRI as the identifier the `.obo` file writes (the OBO 1.4 mapping, section 5.9, read
|
|
34
|
+
* backwards): `http://purl.obolibrary.org/obo/GO_0008150` is `GO:0008150` (the prefix is the text
|
|
35
|
+
* before the first underscore), and `http://purl.obolibrary.org/obo/go#regulates` (how the OWL
|
|
36
|
+
* translation writes an unprefixed OBO id: subsets, relations, synonym types) is `regulates`.
|
|
37
|
+
* Every other IRI, and an OBO PURL that fits neither form (`.../obo/T/Female`), is kept.
|
|
38
|
+
* @param iri - the IRI
|
|
39
|
+
* @returns the CURIE or local id, or the IRI unchanged
|
|
40
|
+
*/
|
|
41
|
+
export declare function compactOboIri(iri: string): string;
|
|
42
|
+
/** The OBO synonym scopes. */
|
|
43
|
+
export declare const SYNONYM_SCOPES: ReadonlySet<string>;
|
|
44
|
+
/**
|
|
45
|
+
* The OBO synonym scope of an OBO Graphs synonym predicate (`hasExactSynonym`, with or without the
|
|
46
|
+
* oboInOwl namespace).
|
|
47
|
+
* @param pred - the predicate
|
|
48
|
+
* @returns the scope, or null for a predicate that is not one of the four
|
|
49
|
+
*/
|
|
50
|
+
export declare function synonymScopeOf(pred: string): string | null;
|
|
51
|
+
/**
|
|
52
|
+
* The OBO tag a `basicPropertyValues` predicate of OBO Graphs came from (the OBO-to-OWL mapping of
|
|
53
|
+
* the tags that are annotations), so the `.json` of an ontology fills the same columns as its
|
|
54
|
+
* `.obo`. `shorthand` is the relation's short name; every predicate not listed is a
|
|
55
|
+
* `property_value`.
|
|
56
|
+
*/
|
|
57
|
+
export declare const OBOGRAPHS_PREDICATE_TAGS: ReadonlyMap<string, string>;
|
|
58
|
+
export {};
|
|
59
|
+
//# sourceMappingURL=ontology.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ontology.d.ts","sourceRoot":"","sources":["../../../src/common/ontology.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,0CAA0C;AAC1C,KAAK,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7D,wCAAwC;AACxC,UAAU,aAAa;IACnB,iBAAiB;IACjB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,6CAA6C;IAC7C,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;CAChD;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAiDnE,CAAC;AASH,+FAA+F;AAC/F,eAAO,MAAM,kBAAkB,wBAAwB,CAAC;AAExD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAa/E;AAQD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAejD;AAED,8BAA8B;AAC9B,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,CAAoD,CAAC;AAEpG;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI1D;AAED;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAQ/D,CAAC"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the OBO importer and the JSON importer's `obographs` dialect share (design section 1.0, the
|
|
3
|
+
* `ontology.ts` building block): the OBO column vocabulary (names, dtypes, roles), so the `.obo` and
|
|
4
|
+
* the `.json` of one ontology give the same columns, and the OBO 1.4 rule for turning the IRIs
|
|
5
|
+
* OBO Graphs writes back into the identifiers the `.obo` file writes (section 4.6).
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* The node columns of the OBO vocabulary, keyed by column name (design section 4.2). The names are
|
|
9
|
+
* the OBO tag names, so a Gene Ontology user finds `namespace`, `def` and `is_obsolete` under the
|
|
10
|
+
* names the GO documentation uses.
|
|
11
|
+
*/
|
|
12
|
+
export const OBO_NODE_COLUMNS = Object.freeze({
|
|
13
|
+
type: { dtype: "dict" },
|
|
14
|
+
name: { dtype: "string", role: "label" },
|
|
15
|
+
namespace: { dtype: "dict" },
|
|
16
|
+
def: { dtype: "string" },
|
|
17
|
+
"def.xrefs": { dtype: "list" },
|
|
18
|
+
comment: { dtype: "string" },
|
|
19
|
+
synonym: { dtype: "json" },
|
|
20
|
+
xref: { dtype: "list" },
|
|
21
|
+
"xref.descriptions": { dtype: "json" },
|
|
22
|
+
alt_id: { dtype: "list" },
|
|
23
|
+
subset: { dtype: "list" },
|
|
24
|
+
replaced_by: { dtype: "list" },
|
|
25
|
+
consider: { dtype: "list" },
|
|
26
|
+
is_obsolete: { dtype: "bool" },
|
|
27
|
+
is_anonymous: { dtype: "bool" },
|
|
28
|
+
builtin: { dtype: "bool" },
|
|
29
|
+
created_by: { dtype: "string" },
|
|
30
|
+
creation_date: { dtype: "string" },
|
|
31
|
+
intersection_of: { dtype: "json" },
|
|
32
|
+
union_of: { dtype: "list" },
|
|
33
|
+
equivalent_to: { dtype: "list" },
|
|
34
|
+
disjoint_from: { dtype: "list" },
|
|
35
|
+
property_value: { dtype: "json" },
|
|
36
|
+
// Typedef frames, under typedefs: "nodes"
|
|
37
|
+
domain: { dtype: "string" },
|
|
38
|
+
range: { dtype: "string" },
|
|
39
|
+
inverse_of: { dtype: "string" },
|
|
40
|
+
transitive_over: { dtype: "list" },
|
|
41
|
+
disjoint_over: { dtype: "list" },
|
|
42
|
+
holds_over_chain: { dtype: "json" },
|
|
43
|
+
equivalent_to_chain: { dtype: "json" },
|
|
44
|
+
expand_assertion_to: { dtype: "json" },
|
|
45
|
+
expand_expression_to: { dtype: "json" },
|
|
46
|
+
is_cyclic: { dtype: "bool" },
|
|
47
|
+
is_reflexive: { dtype: "bool" },
|
|
48
|
+
is_symmetric: { dtype: "bool" },
|
|
49
|
+
is_anti_symmetric: { dtype: "bool" },
|
|
50
|
+
is_asymmetric: { dtype: "bool" },
|
|
51
|
+
is_transitive: { dtype: "bool" },
|
|
52
|
+
is_functional: { dtype: "bool" },
|
|
53
|
+
is_inverse_functional: { dtype: "bool" },
|
|
54
|
+
is_metadata_tag: { dtype: "bool" },
|
|
55
|
+
is_class_level: { dtype: "bool" },
|
|
56
|
+
// OBO Graphs only
|
|
57
|
+
propertyType: { dtype: "dict" },
|
|
58
|
+
// what has no column of its own
|
|
59
|
+
"obo.qualifiers": { dtype: "json" },
|
|
60
|
+
"obo.unrecognized": { dtype: "json" },
|
|
61
|
+
});
|
|
62
|
+
/** The edge columns of the OBO vocabulary. */
|
|
63
|
+
const OBO_EDGE_COLUMNS = Object.freeze({
|
|
64
|
+
relation: { dtype: "dict", role: "kind" },
|
|
65
|
+
qualifiers: { dtype: "json" },
|
|
66
|
+
meta: { dtype: "json" },
|
|
67
|
+
});
|
|
68
|
+
/** The node column that marks a node made for an undeclared reference (design section 4.2). */
|
|
69
|
+
export const PLACEHOLDER_COLUMN = "graphty.placeholder";
|
|
70
|
+
/**
|
|
71
|
+
* The declaration of an OBO vocabulary column.
|
|
72
|
+
* @param domain - node or edge
|
|
73
|
+
* @param name - the column name (a key of OBO_NODE_COLUMNS / OBO_EDGE_COLUMNS, or the placeholder column)
|
|
74
|
+
* @returns the declaration, nullable, with origin `{ format: "obo", id: name }`
|
|
75
|
+
*/
|
|
76
|
+
export function oboColumnDecl(domain, name) {
|
|
77
|
+
if (name === PLACEHOLDER_COLUMN) {
|
|
78
|
+
return { name, dtype: "bool", nullable: true, origin: { format: "graphty", id: "placeholder" } };
|
|
79
|
+
}
|
|
80
|
+
const spec = (domain === "node" ? OBO_NODE_COLUMNS : OBO_EDGE_COLUMNS)[name];
|
|
81
|
+
const decl = { name, dtype: spec.dtype, nullable: true, origin: { format: "obo", id: name } };
|
|
82
|
+
if (spec.dtype === "list") {
|
|
83
|
+
decl.itemDtype = "string";
|
|
84
|
+
}
|
|
85
|
+
if (spec.role !== undefined) {
|
|
86
|
+
decl.role = spec.role;
|
|
87
|
+
}
|
|
88
|
+
return decl;
|
|
89
|
+
}
|
|
90
|
+
/** The OBO PURL base every OBO Foundry IRI starts with. */
|
|
91
|
+
const OBO_PURL = "http://purl.obolibrary.org/obo/";
|
|
92
|
+
/** The oboInOwl namespace of the OBO-to-OWL mapping's annotation properties. */
|
|
93
|
+
const OBO_IN_OWL = "http://www.geneontology.org/formats/oboInOwl#";
|
|
94
|
+
/**
|
|
95
|
+
* An IRI as the identifier the `.obo` file writes (the OBO 1.4 mapping, section 5.9, read
|
|
96
|
+
* backwards): `http://purl.obolibrary.org/obo/GO_0008150` is `GO:0008150` (the prefix is the text
|
|
97
|
+
* before the first underscore), and `http://purl.obolibrary.org/obo/go#regulates` (how the OWL
|
|
98
|
+
* translation writes an unprefixed OBO id: subsets, relations, synonym types) is `regulates`.
|
|
99
|
+
* Every other IRI, and an OBO PURL that fits neither form (`.../obo/T/Female`), is kept.
|
|
100
|
+
* @param iri - the IRI
|
|
101
|
+
* @returns the CURIE or local id, or the IRI unchanged
|
|
102
|
+
*/
|
|
103
|
+
export function compactOboIri(iri) {
|
|
104
|
+
if (!iri.startsWith(OBO_PURL)) {
|
|
105
|
+
return iri;
|
|
106
|
+
}
|
|
107
|
+
const rest = iri.slice(OBO_PURL.length);
|
|
108
|
+
const hash = rest.indexOf("#");
|
|
109
|
+
if (hash > 0) {
|
|
110
|
+
const local = rest.slice(hash + 1);
|
|
111
|
+
return local.length > 0 && !rest.slice(0, hash).includes("/") ? local : iri;
|
|
112
|
+
}
|
|
113
|
+
const underscore = rest.indexOf("_");
|
|
114
|
+
if (underscore <= 0 || rest.includes("/") || underscore === rest.length - 1) {
|
|
115
|
+
return iri;
|
|
116
|
+
}
|
|
117
|
+
return `${rest.slice(0, underscore)}:${rest.slice(underscore + 1)}`;
|
|
118
|
+
}
|
|
119
|
+
/** The OBO synonym scopes. */
|
|
120
|
+
export const SYNONYM_SCOPES = new Set(["EXACT", "BROAD", "NARROW", "RELATED"]);
|
|
121
|
+
/**
|
|
122
|
+
* The OBO synonym scope of an OBO Graphs synonym predicate (`hasExactSynonym`, with or without the
|
|
123
|
+
* oboInOwl namespace).
|
|
124
|
+
* @param pred - the predicate
|
|
125
|
+
* @returns the scope, or null for a predicate that is not one of the four
|
|
126
|
+
*/
|
|
127
|
+
export function synonymScopeOf(pred) {
|
|
128
|
+
const local = pred.startsWith(OBO_IN_OWL) ? pred.slice(OBO_IN_OWL.length) : pred;
|
|
129
|
+
const match = /^has(Exact|Broad|Narrow|Related)Synonym$/.exec(local);
|
|
130
|
+
return match === null ? null : match[1].toUpperCase();
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* The OBO tag a `basicPropertyValues` predicate of OBO Graphs came from (the OBO-to-OWL mapping of
|
|
134
|
+
* the tags that are annotations), so the `.json` of an ontology fills the same columns as its
|
|
135
|
+
* `.obo`. `shorthand` is the relation's short name; every predicate not listed is a
|
|
136
|
+
* `property_value`.
|
|
137
|
+
*/
|
|
138
|
+
export const OBOGRAPHS_PREDICATE_TAGS = new Map([
|
|
139
|
+
[`${OBO_IN_OWL}hasOBONamespace`, "namespace"],
|
|
140
|
+
[`${OBO_IN_OWL}hasAlternativeId`, "alt_id"],
|
|
141
|
+
[`${OBO_IN_OWL}created_by`, "created_by"],
|
|
142
|
+
[`${OBO_IN_OWL}creation_date`, "creation_date"],
|
|
143
|
+
[`${OBO_PURL}IAO_0100001`, "replaced_by"],
|
|
144
|
+
[`${OBO_IN_OWL}consider`, "consider"],
|
|
145
|
+
[`${OBO_IN_OWL}shorthand`, "shorthand"],
|
|
146
|
+
]);
|
|
147
|
+
//# sourceMappingURL=ontology.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ontology.js","sourceRoot":"","sources":["../../../src/common/ontology.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,11 +19,12 @@ export type JsonDialect = "node-link" | "d3" | "jgf" | "cytoscape" | "graphology
|
|
|
19
19
|
/** Every dialect name, for option checking and messages. */
|
|
20
20
|
export declare const JSON_DIALECTS: readonly JsonDialect[];
|
|
21
21
|
/**
|
|
22
|
-
* The dialects the importer reads: every JsonDialect plus
|
|
23
|
-
* adjacency_data (`nodes` plus one neighbour list per node under `adjacency`)
|
|
24
|
-
* nested `id` / `children` record)
|
|
22
|
+
* The dialects the importer reads: every JsonDialect plus three it only reads, NetworkX
|
|
23
|
+
* adjacency_data (`nodes` plus one neighbour list per node under `adjacency`), tree_data (a
|
|
24
|
+
* nested `id` / `children` record) and OBO Graphs (`graphs[]` of `sub` / `pred` / `obj` edges, the
|
|
25
|
+
* JSON form of the Gene Ontology and the OBO Foundry ontologies). The exporter writes none of them.
|
|
25
26
|
*/
|
|
26
|
-
export type JsonImportDialect = JsonDialect | "adjacency" | "tree";
|
|
27
|
+
export type JsonImportDialect = JsonDialect | "adjacency" | "tree" | "obographs";
|
|
27
28
|
/** Every dialect the importer reads, for option checking and messages. */
|
|
28
29
|
export declare const JSON_IMPORT_DIALECTS: readonly JsonImportDialect[];
|
|
29
30
|
/** The key under `meta.extra` that holds the shape record (design section 8.5). */
|
|
@@ -83,8 +84,9 @@ export declare function isJsonDialect(value: unknown): value is JsonDialect;
|
|
|
83
84
|
export declare function isJsonImportDialect(value: unknown): value is JsonImportDialect;
|
|
84
85
|
/**
|
|
85
86
|
* The dialect of a parsed JSON document, by the shape rules of design section 8.2 (Cytoscape:
|
|
86
|
-
* `elements` or a top-level array of `{ data }` elements;
|
|
87
|
-
*
|
|
87
|
+
* `elements` or a top-level array of `{ data }` elements; OBO Graphs: `graphs[]` whose first graph
|
|
88
|
+
* has an edge with `sub` (or `subj`) and `obj` or a `pred`, or a node with `lbl`, `meta` or an OWL
|
|
89
|
+
* `type`; JGF: `graph.nodes` / `graph.edges` or any other `graphs[]`; graphology: `options.type` / `options.multi`, `key` nodes without `id`, edges with
|
|
88
90
|
* `undirected` or an `attributes` record; vis: edges with `from` / `to`; d3: `links` without
|
|
89
91
|
* `directed` / `multigraph` / `graph`; NetworkX adjacency_data: `nodes` and `adjacency` without
|
|
90
92
|
* `links` / `edges`; NetworkX tree_data: `children` without `nodes` / `links` / `edges`; else
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialect.d.ts","sourceRoot":"","sources":["../../../../src/formats/json/dialect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,qDAAqD;AACrD,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,IAAI,GAAG,KAAK,GAAG,WAAW,GAAG,YAAY,GAAG,KAAK,CAAC;AAE1F,4DAA4D;AAC5D,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAO9C,CAAC;AAEH
|
|
1
|
+
{"version":3,"file":"dialect.d.ts","sourceRoot":"","sources":["../../../../src/formats/json/dialect.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,7 @@ export const JSON_IMPORT_DIALECTS = Object.freeze([
|
|
|
27
27
|
...JSON_DIALECTS,
|
|
28
28
|
"adjacency",
|
|
29
29
|
"tree",
|
|
30
|
+
"obographs",
|
|
30
31
|
]);
|
|
31
32
|
/** The key under `meta.extra` that holds the shape record (design section 8.5). */
|
|
32
33
|
export const META_KEY = "json";
|
|
@@ -66,8 +67,9 @@ export function isJsonImportDialect(value) {
|
|
|
66
67
|
}
|
|
67
68
|
/**
|
|
68
69
|
* The dialect of a parsed JSON document, by the shape rules of design section 8.2 (Cytoscape:
|
|
69
|
-
* `elements` or a top-level array of `{ data }` elements;
|
|
70
|
-
*
|
|
70
|
+
* `elements` or a top-level array of `{ data }` elements; OBO Graphs: `graphs[]` whose first graph
|
|
71
|
+
* has an edge with `sub` (or `subj`) and `obj` or a `pred`, or a node with `lbl`, `meta` or an OWL
|
|
72
|
+
* `type`; JGF: `graph.nodes` / `graph.edges` or any other `graphs[]`; graphology: `options.type` / `options.multi`, `key` nodes without `id`, edges with
|
|
71
73
|
* `undirected` or an `attributes` record; vis: edges with `from` / `to`; d3: `links` without
|
|
72
74
|
* `directed` / `multigraph` / `graph`; NetworkX adjacency_data: `nodes` and `adjacency` without
|
|
73
75
|
* `links` / `edges`; NetworkX tree_data: `children` without `nodes` / `links` / `edges`; else
|
|
@@ -91,7 +93,7 @@ export function sniffJsonDialect(root) {
|
|
|
91
93
|
return "jgf";
|
|
92
94
|
}
|
|
93
95
|
if (Array.isArray(root.graphs)) {
|
|
94
|
-
return "jgf";
|
|
96
|
+
return isOboGraph(firstJsonObject(root.graphs)) ? "obographs" : "jgf";
|
|
95
97
|
}
|
|
96
98
|
if (!hasKey(root, "edges") && !hasKey(root, "links")) {
|
|
97
99
|
if (hasKey(root, "nodes") && hasKey(root, "adjacency")) {
|
|
@@ -120,6 +122,25 @@ export function sniffJsonDialect(root) {
|
|
|
120
122
|
const bare = !hasKey(root, "directed") && !hasKey(root, "multigraph") && !hasKey(root, "graph");
|
|
121
123
|
return bare && hasKey(root, "links") ? "d3" : "node-link";
|
|
122
124
|
}
|
|
125
|
+
/** The node types of OBO Graphs (the OWL entity kinds). */
|
|
126
|
+
const OBOGRAPHS_NODE_TYPES = new Set(["CLASS", "INDIVIDUAL", "PROPERTY"]);
|
|
127
|
+
/**
|
|
128
|
+
* Whether a graph of a `graphs[]` document is an OBO Graphs graph rather than JGF: anywhere in its
|
|
129
|
+
* nodes or edges, an edge with `sub` (or the outdated `subj`) and `obj`, or a `pred`, or a node
|
|
130
|
+
* with `lbl`, `meta` or a `type` of CLASS / INDIVIDUAL / PROPERTY (design 1.6: looking only at the
|
|
131
|
+
* first node and edge misses graphs with no edges and graphs whose first node has no `lbl`).
|
|
132
|
+
* @param graph - the first graph, or null
|
|
133
|
+
* @returns true for OBO Graphs
|
|
134
|
+
*/
|
|
135
|
+
function isOboGraph(graph) {
|
|
136
|
+
if (graph === null) {
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
const isEdge = (e) => isJsonObject(e) && ((hasKey(e, "obj") && (hasKey(e, "sub") || hasKey(e, "subj"))) || hasKey(e, "pred"));
|
|
140
|
+
const isNode = (n) => isJsonObject(n) && (hasKey(n, "lbl") || hasKey(n, "meta") || OBOGRAPHS_NODE_TYPES.has(n.type));
|
|
141
|
+
return ((Array.isArray(graph.edges) && graph.edges.some(isEdge)) ||
|
|
142
|
+
(Array.isArray(graph.nodes) && graph.nodes.some(isNode)));
|
|
143
|
+
}
|
|
123
144
|
/**
|
|
124
145
|
* The first object of an array, or null.
|
|
125
146
|
* @param value - maybe an array
|
|
@@ -170,6 +191,8 @@ export const DIALECT_DEFAULT_DIRECTED = Object.freeze({
|
|
|
170
191
|
// networkx adjacency_data declares `directed`; tree_graph always builds a DiGraph
|
|
171
192
|
adjacency: false,
|
|
172
193
|
tree: true,
|
|
194
|
+
// OBO Graphs edges point from the subject (child) to the object (parent)
|
|
195
|
+
obographs: true,
|
|
173
196
|
});
|
|
174
197
|
/**
|
|
175
198
|
* The dtypes a JSON dialect keeps as declared: JSON declares no types, so a value reads back as
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialect.js","sourceRoot":"","sources":["../../../../src/formats/json/dialect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAMtD,4DAA4D;AAC5D,MAAM,CAAC,MAAM,aAAa,GAA2B,MAAM,CAAC,MAAM,CAAC;IAC/D,WAAW;IACX,IAAI;IACJ,KAAK;IACL,WAAW;IACX,YAAY;IACZ,KAAK;CACR,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"dialect.js","sourceRoot":"","sources":["../../../../src/formats/json/dialect.ts"],"names":[],"mappings":"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"}
|