Mercurial > code > home > repos > streamed-graph
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 ); |