@faubulous/mentor-rdf 0.2.34 → 0.2.36
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/out/rdf/class-repository.d.ts +2 -2
- package/out/rdf/class-repository.js +2 -2
- package/out/rdf/class-repository.js.map +1 -1
- package/out/rdf/reasoners/shacl-reasoner.d.ts +11 -0
- package/out/rdf/reasoners/shacl-reasoner.js +59 -0
- package/out/rdf/reasoners/shacl-reasoner.js.map +1 -0
- package/out/rdf/resource-repository.d.ts +8 -1
- package/out/rdf/resource-repository.js +9 -3
- package/out/rdf/resource-repository.js.map +1 -1
- package/out/rdf/shape-repository.d.ts +16 -0
- package/out/rdf/shape-repository.js +29 -0
- package/out/rdf/shape-repository.js.map +1 -0
- package/out/rdf/tests/vocabularies/bfo.d.ts +409 -0
- package/out/rdf/tests/vocabularies/bfo.js +414 -0
- package/out/rdf/tests/vocabularies/bfo.js.map +1 -0
- package/out/rdf/tests/vocabularies/cidoc-crm.d.ts +2097 -0
- package/out/rdf/tests/vocabularies/cidoc-crm.js +2102 -0
- package/out/rdf/tests/vocabularies/cidoc-crm.js.map +1 -0
- package/out/rdf/tests/vocabularies/index.d.ts +5 -0
- package/out/rdf/tests/vocabularies/index.js +16 -1
- package/out/rdf/tests/vocabularies/index.js.map +1 -1
- package/out/rdf/tests/vocabularies/org.d.ts +189 -0
- package/out/rdf/tests/vocabularies/org.js +194 -0
- package/out/rdf/tests/vocabularies/org.js.map +1 -0
- package/out/rdf/tests/vocabularies/shapes.d.ts +15 -0
- package/out/rdf/tests/vocabularies/shapes.js +20 -0
- package/out/rdf/tests/vocabularies/shapes.js.map +1 -0
- package/out/rdf/tests/vocabularies/unesco.d.ts +10513 -0
- package/out/rdf/tests/vocabularies/unesco.js +10518 -0
- package/out/rdf/tests/vocabularies/unesco.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Store } from "./store";
|
|
2
|
-
import { ConceptRepository } from "./concept-repository";
|
|
3
2
|
import { DefinitionQueryOptions, QueryOptions } from "./resource-repository";
|
|
3
|
+
import { ShapeRepository } from "./shape-repository";
|
|
4
4
|
/**
|
|
5
5
|
* A repository for retrieving classes from graphs.
|
|
6
6
|
*/
|
|
7
|
-
export declare class ClassRepository extends
|
|
7
|
+
export declare class ClassRepository extends ShapeRepository {
|
|
8
8
|
constructor(store: Store);
|
|
9
9
|
/**
|
|
10
10
|
* Get all classes in the repository.
|
|
@@ -4,11 +4,11 @@ exports.ClassRepository = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const n3 = tslib_1.__importStar(require("n3"));
|
|
6
6
|
const ontologies_1 = require("../ontologies");
|
|
7
|
-
const
|
|
7
|
+
const shape_repository_1 = require("./shape-repository");
|
|
8
8
|
/**
|
|
9
9
|
* A repository for retrieving classes from graphs.
|
|
10
10
|
*/
|
|
11
|
-
class ClassRepository extends
|
|
11
|
+
class ClassRepository extends shape_repository_1.ShapeRepository {
|
|
12
12
|
constructor(store) { super(store); }
|
|
13
13
|
/**
|
|
14
14
|
* Get all classes in the repository.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-repository.js","sourceRoot":"","sources":["../../src/rdf/class-repository.ts"],"names":[],"mappings":";;;;AAAA,+CAAyB;AACzB,8CAA+C;
|
|
1
|
+
{"version":3,"file":"class-repository.js","sourceRoot":"","sources":["../../src/rdf/class-repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as n3 from "n3";
|
|
2
|
+
import { SkosReasoner } from "./skos-reasoner";
|
|
3
|
+
/**
|
|
4
|
+
* A simple SKOS reasoner that expands the graph with inferred triples.
|
|
5
|
+
*/
|
|
6
|
+
export declare class ShaclReasoner extends SkosReasoner {
|
|
7
|
+
protected shapes: Set<n3.Term>;
|
|
8
|
+
applyInference(quad: n3.Quad): void;
|
|
9
|
+
protected assertShape(subject: n3.BlankNode | n3.NamedNode | n3.Variable, type?: n3.NamedNode): void;
|
|
10
|
+
inferShapeAxioms(quad: n3.Quad): void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ShaclReasoner = void 0;
|
|
4
|
+
const ontologies_1 = require("../../ontologies");
|
|
5
|
+
const skos_reasoner_1 = require("./skos-reasoner");
|
|
6
|
+
/**
|
|
7
|
+
* A simple SKOS reasoner that expands the graph with inferred triples.
|
|
8
|
+
*/
|
|
9
|
+
class ShaclReasoner extends skos_reasoner_1.SkosReasoner {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.shapes = new Set();
|
|
13
|
+
}
|
|
14
|
+
applyInference(quad) {
|
|
15
|
+
this.inferShapeAxioms(quad);
|
|
16
|
+
}
|
|
17
|
+
assertShape(subject, type) {
|
|
18
|
+
this.store.addQuad(subject, ontologies_1.rdf.type, ontologies_1.shacl.Shape, this.targetGraph);
|
|
19
|
+
if (type) {
|
|
20
|
+
this.store.addQuad(subject, ontologies_1.rdf.type, type, this.targetGraph);
|
|
21
|
+
}
|
|
22
|
+
this.shapes.add(subject);
|
|
23
|
+
}
|
|
24
|
+
inferShapeAxioms(quad) {
|
|
25
|
+
let s = quad.subject;
|
|
26
|
+
let p = quad.predicate;
|
|
27
|
+
let o = quad.object.termType != "Literal" ? quad.object : undefined;
|
|
28
|
+
if (!o) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
switch (p.id) {
|
|
32
|
+
case ontologies_1.rdf.type.id: {
|
|
33
|
+
if (o.equals(ontologies_1.shacl.Shape)) {
|
|
34
|
+
// No need to infer the type, as it is already asserted.
|
|
35
|
+
this.shapes.add(s);
|
|
36
|
+
}
|
|
37
|
+
else if (o.equals(ontologies_1.shacl.NodeShape) || o.equals(ontologies_1.shacl.PropertyShape)) {
|
|
38
|
+
this.assertShape(s, o);
|
|
39
|
+
}
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
case ontologies_1.shacl.targetClass.id: {
|
|
43
|
+
this.assertShape(s, ontologies_1.shacl.NodeShape);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
case ontologies_1.shacl.path.id: {
|
|
47
|
+
this.assertShape(s, ontologies_1.shacl.PropertyShape);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
case ontologies_1.shacl.property.id: {
|
|
51
|
+
this.assertShape(s, ontologies_1.shacl.NodeShape);
|
|
52
|
+
this.assertShape(o, ontologies_1.shacl.PropertyShape);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.ShaclReasoner = ShaclReasoner;
|
|
59
|
+
//# sourceMappingURL=shacl-reasoner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shacl-reasoner.js","sourceRoot":"","sources":["../../../src/rdf/reasoners/shacl-reasoner.ts"],"names":[],"mappings":";;;AACA,iDAA8C;AAC9C,mDAA+C;AAE/C;;GAEG;AACH,MAAa,aAAc,SAAQ,4BAAY;IAA/C;;QACc,WAAM,GAAiB,IAAI,GAAG,EAAE,CAAC;IAkD/C,CAAC;IAhDG,cAAc,CAAC,IAAa;QACxB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAES,WAAW,CAAC,OAAkD,EAAE,IAAmB;QACzF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAG,CAAC,IAAI,EAAE,kBAAK,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAErE,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SACjE;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,gBAAgB,CAAC,IAAa;QAC1B,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QACrB,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACvB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAEpE,IAAI,CAAC,CAAC,EAAE;YACJ,OAAO;SACV;QAED,QAAQ,CAAC,CAAC,EAAE,EAAE;YACV,KAAK,gBAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACd,IAAI,CAAC,CAAC,MAAM,CAAC,kBAAK,CAAC,KAAK,CAAC,EAAE;oBACvB,wDAAwD;oBACxD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBACtB;qBAAM,IAAI,CAAC,CAAC,MAAM,CAAC,kBAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,kBAAK,CAAC,aAAa,CAAC,EAAE;oBACnE,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAiB,CAAC,CAAC;iBAC1C;gBACD,OAAO;aACV;YACD,KAAK,kBAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBACvB,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,kBAAK,CAAC,SAAS,CAAC,CAAC;gBACrC,OAAO;aACV;YACD,KAAK,kBAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChB,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,kBAAK,CAAC,aAAa,CAAC,CAAC;gBACzC,OAAO;aACV;YACD,KAAK,kBAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACpB,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,kBAAK,CAAC,SAAS,CAAC,CAAC;gBACrC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,kBAAK,CAAC,aAAa,CAAC,CAAC;gBACzC,OAAO;aACV;SACJ;IACL,CAAC;CACJ;AAnDD,sCAmDC"}
|
|
@@ -11,6 +11,9 @@ export interface QueryOptions {
|
|
|
11
11
|
*/
|
|
12
12
|
includeInferred?: boolean;
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Parameters for querying resources in the store that have an explicitly asserted type in the document.
|
|
16
|
+
*/
|
|
14
17
|
export interface DefinitionQueryOptions extends QueryOptions {
|
|
15
18
|
/**
|
|
16
19
|
* URI of the vocabulary that defines the resources. If `null`, returns only resources that have no `rdfs:isDefinedBy` property.
|
|
@@ -24,6 +27,10 @@ export interface DefinitionQueryOptions extends QueryOptions {
|
|
|
24
27
|
* Indicate if terms what are not *defined* in the ontology should be included in the result (default: true).
|
|
25
28
|
*/
|
|
26
29
|
includeReferenced?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Indicate if blank nodes should be included in the result (default: false).
|
|
32
|
+
*/
|
|
33
|
+
includeBlankNodes?: boolean;
|
|
27
34
|
}
|
|
28
35
|
/**
|
|
29
36
|
* A repository for retrieving resources from graphs.
|
|
@@ -48,7 +55,7 @@ export declare class ResourceRepository {
|
|
|
48
55
|
* @param subjectUri URI of the subject to search for.
|
|
49
56
|
* @returns true if the URI is a subject, false otherwise.
|
|
50
57
|
*/
|
|
51
|
-
hasSubject(graphUris: string | string[] | undefined, subjectUri: string): boolean;
|
|
58
|
+
hasSubject(graphUris: string | string[] | undefined, subjectUri: string | n3.Term): boolean;
|
|
52
59
|
/**
|
|
53
60
|
* Indicate if a node is explicitly defined by the given URI using the `rdfs:isDefinedBy` property, or implicitly by sharing the same namespace.
|
|
54
61
|
* @param graphUris URIs of the graphs to search.
|
|
@@ -20,11 +20,11 @@ class ResourceRepository {
|
|
|
20
20
|
* @returns
|
|
21
21
|
*/
|
|
22
22
|
skip(graphUris, node, options) {
|
|
23
|
-
if (node.termType != "NamedNode") {
|
|
23
|
+
if (!(options === null || options === void 0 ? void 0 : options.includeBlankNodes) && node.termType != "NamedNode") {
|
|
24
24
|
// We are only interested in named nodes.
|
|
25
25
|
return true;
|
|
26
26
|
}
|
|
27
|
-
if (!(options === null || options === void 0 ? void 0 : options.includeReferenced) && !this.hasSubject(graphUris, node
|
|
27
|
+
if (!(options === null || options === void 0 ? void 0 : options.includeReferenced) && !this.hasSubject(graphUris, node)) {
|
|
28
28
|
// Skip the node if it is not explicitly defined in the graph as a subject.
|
|
29
29
|
return true;
|
|
30
30
|
}
|
|
@@ -51,7 +51,13 @@ class ResourceRepository {
|
|
|
51
51
|
* @returns true if the URI is a subject, false otherwise.
|
|
52
52
|
*/
|
|
53
53
|
hasSubject(graphUris, subjectUri) {
|
|
54
|
-
|
|
54
|
+
let s;
|
|
55
|
+
if (typeof subjectUri === "string") {
|
|
56
|
+
s = n3.DataFactory.namedNode(subjectUri);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
s = subjectUri;
|
|
60
|
+
}
|
|
55
61
|
for (let _ of this.store.match(graphUris, s, null, null, false)) {
|
|
56
62
|
return true;
|
|
57
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-repository.js","sourceRoot":"","sources":["../../src/rdf/resource-repository.ts"],"names":[],"mappings":";;;;AAAA,+CAAyB;AAGzB,8CAAqC;AACrC,+BAA4B;
|
|
1
|
+
{"version":3,"file":"resource-repository.js","sourceRoot":"","sources":["../../src/rdf/resource-repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Store } from "./store";
|
|
2
|
+
import { ConceptRepository } from "./concept-repository";
|
|
3
|
+
import { DefinitionQueryOptions } from "./resource-repository";
|
|
4
|
+
/**
|
|
5
|
+
* A repository for retrieving SHACL shapes from graphs.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ShapeRepository extends ConceptRepository {
|
|
8
|
+
constructor(store: Store);
|
|
9
|
+
/**
|
|
10
|
+
* Get all shapes in the repository.
|
|
11
|
+
* @param graphUris URIs of the graphs to search, `undefined` for the default graph.
|
|
12
|
+
* @param options Optional query parameters.
|
|
13
|
+
* @returns A list of all shapes in the repository.
|
|
14
|
+
*/
|
|
15
|
+
getShapes(graphUris: string | string[] | undefined, options?: DefinitionQueryOptions): string[];
|
|
16
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ShapeRepository = void 0;
|
|
4
|
+
const ontologies_1 = require("../ontologies");
|
|
5
|
+
const concept_repository_1 = require("./concept-repository");
|
|
6
|
+
/**
|
|
7
|
+
* A repository for retrieving SHACL shapes from graphs.
|
|
8
|
+
*/
|
|
9
|
+
class ShapeRepository extends concept_repository_1.ConceptRepository {
|
|
10
|
+
constructor(store) { super(store); }
|
|
11
|
+
/**
|
|
12
|
+
* Get all shapes in the repository.
|
|
13
|
+
* @param graphUris URIs of the graphs to search, `undefined` for the default graph.
|
|
14
|
+
* @param options Optional query parameters.
|
|
15
|
+
* @returns A list of all shapes in the repository.
|
|
16
|
+
*/
|
|
17
|
+
getShapes(graphUris, options) {
|
|
18
|
+
const result = new Set();
|
|
19
|
+
for (let q of this.store.match(graphUris, null, ontologies_1.rdf.type, ontologies_1.shacl.Shape, options === null || options === void 0 ? void 0 : options.includeInferred)) {
|
|
20
|
+
const s = q.subject;
|
|
21
|
+
if (!this.skip(graphUris, s, options)) {
|
|
22
|
+
result.add(s.value);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return Array.from(result);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.ShapeRepository = ShapeRepository;
|
|
29
|
+
//# sourceMappingURL=shape-repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shape-repository.js","sourceRoot":"","sources":["../../src/rdf/shape-repository.ts"],"names":[],"mappings":";;;AACA,8CAAiD;AAEjD,6DAAyD;AAGzD;;GAEG;AACH,MAAa,eAAgB,SAAQ,sCAAiB;IAClD,YAAY,KAAY,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE3C;;;;;OAKG;IACH,SAAS,CAAC,SAAwC,EAAE,OAAgC;QAChF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QAEjC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,gBAAG,CAAC,IAAI,EAAE,kBAAK,CAAC,KAAK,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,eAAe,CAAC,EAAE;YAC9F,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;YAEpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE;gBACnC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aACvB;SACJ;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;CACJ;AAtBD,0CAsBC"}
|