-
Notifications
You must be signed in to change notification settings - Fork 4
/
rdflib.ts
51 lines (45 loc) · 1.78 KB
/
rdflib.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import rdfFactory, { createNS, NamedNode, Quad } from "@ontologies/core";
import { Resource, subClassOf } from "@ontologies/rdfs";
import link from "../ontology/link";
import { VocabularyProcessingContext } from "../types";
import {
F_JSON,
F_JSONLD,
F_N3,
F_NQUADS,
F_NTRIPLES,
F_PLAIN,
F_RDF_XML,
F_TURTLE,
} from "../utilities/constants";
const ianaMT = createNS("http://www.w3.org/ns/iana/media-types/");
const ianaJSONResource = ianaMT(`${F_JSON}#Resource`);
const ianaJSONLDResource = ianaMT(`${F_JSONLD}#Resource`);
const ianaN3Resource = ianaMT(`${F_N3}#Resource`);
const ianaNTResource = ianaMT(`${F_NTRIPLES}#Resource`);
const ianaNQResource = ianaMT(`${F_NQUADS}#Resource`);
const ianaPlainResource = ianaMT(`${F_PLAIN}#Resource`);
const ianaRDFXMLResource = ianaMT(`${F_RDF_XML}#Resource`);
const ianaTTLResource = ianaMT(`${F_TURTLE}#Resource`);
/**
* Implements the assumptions done by rdflib.js in various parts of their code.
*/
export const RDFLIB = {
axioms: [
rdfFactory.quad(link.Document, subClassOf, Resource),
rdfFactory.quad(ianaJSONResource, subClassOf, Resource),
rdfFactory.quad(ianaJSONLDResource, subClassOf, Resource),
rdfFactory.quad(ianaN3Resource, subClassOf, Resource),
rdfFactory.quad(ianaNTResource, subClassOf, Resource),
rdfFactory.quad(ianaNQResource, subClassOf, Resource),
rdfFactory.quad(ianaPlainResource, subClassOf, Resource),
rdfFactory.quad(ianaRDFXMLResource, subClassOf, Resource),
rdfFactory.quad(ianaTTLResource, subClassOf, Resource),
],
processStatement(_: Quad, __: VocabularyProcessingContext): Quad[] | null {
return null;
},
processType(_: NamedNode, __: VocabularyProcessingContext): boolean {
return false;
},
};