comparison src/graph_view.ts @ 69:72ad92ebda7a

don't need forObjects typing workaround anymore
author drewp@bigasterisk.com
date Mon, 10 Feb 2020 16:57:22 -0800
parents 490f569bb0c9
children f7143866fae1
comparison
equal deleted inserted replaced
68:f357cd36c26e 69:72ad92ebda7a
1 import { html, TemplateResult } from "lit-html"; 1 import { html, TemplateResult } from "lit-html";
2 import { Quad, Term, N3Store, Literal } from "n3"; 2 import { Quad, Term, N3Store, Literal, Quad_Object, NamedNode } from "n3";
3 import { DataFactory, Util } from "n3"; 3 import { DataFactory, Util } from "n3";
4 const { namedNode } = DataFactory; 4 const { namedNode } = DataFactory;
5 import * as RDF from "rdf-js";
6 type NamedNode = RDF.NamedNode;
7 5
8 import { SuffixLabels } from "./suffixLabels"; 6 import { SuffixLabels } from "./suffixLabels";
9 // import ns from 'n3/src/IRIs'; 7 // import ns from 'n3/src/IRIs';
10 // const { rdf } = ns; 8 // const { rdf } = ns;
11 const rdf = { 9 const rdf = {
12 type: namedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#type") 10 type: namedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#type")
13 }; 11 };
14 12
15 type TypeToSubjs = Map<NamedNode, Set<NamedNode>>; 13 type TypeToSubjs = Map<NamedNode, Set<NamedNode>>;
14 // When there are multiple types, an arbitrary one is used.
16 function groupByRdfType( 15 function groupByRdfType(
17 graph: N3Store 16 graph: N3Store
18 ): { byType: TypeToSubjs; untyped: Set<NamedNode> } { 17 ): { byType: TypeToSubjs; untyped: Set<NamedNode> } {
19 const rdfType = rdf.type; 18 const rdfType = rdf.type;
20 const byType: TypeToSubjs = new Map(); 19 const byType: TypeToSubjs = new Map();
28 const subj = q.subject as NamedNode; 27 const subj = q.subject as NamedNode;
29 28
30 let subjType: NamedNode | null = null; 29 let subjType: NamedNode | null = null;
31 30
32 graph.forObjects( 31 graph.forObjects(
33 (o: Quad) => { 32 (o: Quad_Object) => {
34 if (Util.isNamedNode(o.object)) { 33 subjType = o as NamedNode;
35 subjType = o.object as NamedNode;
36 }
37 }, 34 },
38 subj, 35 subj,
39 rdfType, 36 rdfType,
40 null 37 null
41 ); 38 );