annotate src/Layout.ts @ 103:f12feced00ce

WIP rewriting Layout
author drewp@bigasterisk.com
date Sat, 12 Mar 2022 00:42:00 -0800
parents src/tabulate.ts@26c55d5d5202
children 1aea03d306af
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
88
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
1 // Organize graph data into tables (column orders, etc) for the view layer.
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
2
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
3 import Immutable from "immutable"; // mostly using this for the builtin equals() testing, since NamedNode(x)!=NamedNode(x)
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
4 import {
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
5 DataFactory,
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
6 NamedNode,
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
7 Quad,
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
8 Quad_Object,
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
9 Store,
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
10 Term,
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
11 Util,
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
12 } from "n3";
103
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
13 import { ViewConfig } from "./ViewConfig";
88
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
14
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
15 const { namedNode } = DataFactory;
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
16
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
17 // // import ns from 'n3/src/IRIs';
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
18 // // const { rdf } = ns;
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
19
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
20 type UriSet = Immutable.Set<NamedNode>;
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
21 export type TypeToSubjs = Immutable.Map<NamedNode, UriSet>;
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
22
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
23 // https://github.com/rdfjs/N3.js/issues/265
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
24 if ((NamedNode.prototype as any).hashCode === undefined) {
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
25 (NamedNode.prototype as any).hashCode = () => 0;
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
26 }
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
27
103
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
28 interface ColumnHeader {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
29 rdfType?: NamedNode; // could be more than one column that introduces an rdf:type for a join
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
30 pred: NamedNode;
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
31 }
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
32 interface AlignedTable {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
33 columnHeaders: ColumnHeader[];
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
34 rows: (Term | null)[][]; // each row is 1 wider than columnHeaders since the 1st element is the subject for that row
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
35 }
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
36 interface FreeStatements {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
37 statements: Quad[];
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
38 }
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
39 export interface LayoutResult {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
40 sections: (AlignedTable | FreeStatements)[];
88
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
41 }
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
42
103
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
43 export class Layout {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
44 constructor(public viewConfig?: ViewConfig) {}
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
45 plan(graph: Store): LayoutResult {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
46 const ungrouped: Quad[] = [];
88
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
47
103
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
48 graph.forEach(
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
49 (q: Quad) => {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
50 ungrouped.push(q);
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
51 },
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
52 null,
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
53 null,
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
54 null,
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
55 null
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
56 );
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
57 return { sections: [{ statements: ungrouped }] };
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
58 }
88
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
59 }
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
60
103
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
61 // function getType(graph: Store, subj: NamedNode): NamedNode | null {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
62 // let subjType: NamedNode | null = null;
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
63
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
64 // graph.forObjects(
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
65 // (o: Quad_Object) => {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
66 // subjType = o as NamedNode;
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
67 // },
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
68 // subj,
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
69 // rdf.type,
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
70 // null
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
71 // );
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
72 // return subjType;
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
73 // }
88
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
74
103
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
75 // // When there are multiple types, an arbitrary one is used.
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
76 // export function groupByRdfType(
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
77 // graph: Store
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
78 // ): {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
79 // byType: TypeToSubjs;
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
80 // typesPresent: NamedNode[];
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
81 // untypedSubjs: NamedNode[];
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
82 // } {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
83 // let byType: TypeToSubjs = Immutable.Map();
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
84 // let untyped: UriSet = Immutable.Set(); // subjs
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
85 // const internSubjs = new Map<string, NamedNode>();
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
86 // graph.forEach(
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
87 // (q) => {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
88 // if (!Util.isNamedNode(q.subject)) {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
89 // throw new Error("unsupported " + q.subject.value);
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
90 // }
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
91 // const subj = q.subject as NamedNode;
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
92
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
93 // const subjType = getType(graph, subj);
88
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
94
103
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
95 // if (subjType !== null) {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
96 // // (subj, rdf:type, subjType) in graph
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
97 // const oldKeys = Array.from(byType.keys());
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
98 // const oldVal = byType.get(subjType, Immutable.Set<NamedNode>());
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
99 // const newVal = oldVal.add(subj);
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
100 // byType = byType.set(subjType, newVal);
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
101 // } else {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
102 // untyped = untyped.add(subj);
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
103 // }
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
104 // },
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
105 // null,
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
106 // null,
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
107 // null,
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
108 // null
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
109 // );
88
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
110
103
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
111 // const typesPresent = Array.from(byType.keys());
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
112 // typesPresent.sort();
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
113
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
114 // const untypedSubjs = Array.from(untyped.values());
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
115 // untypedSubjs.sort();
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
116 // return {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
117 // byType: byType,
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
118 // typesPresent: typesPresent,
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
119 // untypedSubjs: untypedSubjs,
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
120 // };
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
121 // }
88
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
122
103
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
123 // export function predsForSubj(graph: Store, typeUri: NamedNode): NamedNode[] {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
124 // const predsSet: Set<NamedNode> = new Set();
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
125 // graph.forEach(
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
126 // (q: Quad) => {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
127 // predsSet.add(q.predicate as NamedNode);
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
128 // },
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
129 // typeUri,
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
130 // null,
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
131 // null,
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
132 // null
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
133 // );
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
134 // const preds = Array.from(predsSet.values());
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
135 // preds.sort();
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
136 // return preds;
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
137 // }
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
138
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
139 // interface ISP {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
140 // subj: NamedNode;
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
141 // pred: NamedNode;
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
142 // }
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
143 // const SP = Immutable.Record<ISP>({
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
144 // subj: new NamedNode(""),
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
145 // pred: new NamedNode(""),
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
146 // });
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
147
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
148 // // One table of rows with a common rdf:type.
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
149 // export class MultiSubjsTypeBlockLayout {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
150 // subjs: NamedNode[];
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
151 // preds: NamedNode[];
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
152 // graphCells: Immutable.Map<ISP, Immutable.Set<Term>>;
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
153 // constructor(graph: Store, byType: TypeToSubjs, table: TableDesc) {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
154 // const subjSet = byType.get(table.primary);
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
155 // this.subjs = subjSet ? Array.from(subjSet) : [];
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
156 // this.subjs.sort();
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
157
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
158 // let preds = Immutable.Set<NamedNode>();
88
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
159
103
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
160 // this.graphCells = Immutable.Map<ISP, Immutable.Set<Term>>().withMutations(
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
161 // (mutGraphCells) => {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
162 // this.subjs.forEach((subj: NamedNode) => {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
163 // graph.forEach(
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
164 // (q: Quad) => {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
165 // if (!Util.isNamedNode(q.predicate)) {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
166 // throw new Error();
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
167 // }
88
ac7ad087d474 graph view rewrites and fixes for the multi-subject table
drewp@bigasterisk.com
parents:
diff changeset
168
103
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
169 // const pred = q.predicate as NamedNode;
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
170 // if (pred.equals(rdf.type)) {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
171 // // the whole block is labeled with the type
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
172 // return;
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
173 // }
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
174 // preds = preds.add(pred);
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
175 // const cellKey = this.makeCellKey(subj, pred);
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
176 // mutGraphCells.set(
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
177 // cellKey,
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
178 // mutGraphCells.get(cellKey, Immutable.Set<Term>()).add(q.object)
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
179 // );
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
180 // },
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
181 // subj,
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
182 // null,
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
183 // null,
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
184 // null
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
185 // );
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
186 // });
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
187 // }
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
188 // );
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
189 // this.preds = Array.from(preds);
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
190 // this.preds.splice(this.preds.indexOf(rdf.type), 1);
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
191 // // also pull out label, which should be used on 1st column
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
192 // this.preds.sort();
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
193 // }
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
194
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
195 // makeCellKey(subj: NamedNode, pred: NamedNode): ISP {
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
196 // return SP({
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
197 // subj: subj,
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
198 // pred: pred,
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
199 // });
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
200 // }
f12feced00ce WIP rewriting Layout
drewp@bigasterisk.com
parents: 97
diff changeset
201 // }