@_linked/core 2.8.0-next.20260620150524 → 2.8.0-next.20260624103825
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/CHANGELOG.md +109 -0
- package/lib/cjs/index.d.ts +3 -0
- package/lib/cjs/index.js +9 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/ontologies/linked-core.d.ts +3 -0
- package/lib/cjs/ontologies/linked-core.js +10 -0
- package/lib/cjs/ontologies/linked-core.js.map +1 -1
- package/lib/cjs/ontologies/shacl.d.ts +7 -0
- package/lib/cjs/ontologies/shacl.js +14 -0
- package/lib/cjs/ontologies/shacl.js.map +1 -1
- package/lib/cjs/shapes/List.d.ts +27 -8
- package/lib/cjs/shapes/List.js +36 -28
- package/lib/cjs/shapes/List.js.map +1 -1
- package/lib/cjs/shapes/PathNode.d.ts +20 -0
- package/lib/cjs/shapes/PathNode.js +81 -0
- package/lib/cjs/shapes/PathNode.js.map +1 -0
- package/lib/cjs/shapes/SHACL.d.ts +19 -0
- package/lib/cjs/shapes/SHACL.js +3 -0
- package/lib/cjs/shapes/SHACL.js.map +1 -1
- package/lib/cjs/shapes/serializePathToNodeData.d.ts +24 -0
- package/lib/cjs/shapes/serializePathToNodeData.js +51 -0
- package/lib/cjs/shapes/serializePathToNodeData.js.map +1 -0
- package/lib/cjs/shapes/syncShapes.d.ts +14 -0
- package/lib/cjs/shapes/syncShapes.js +141 -0
- package/lib/cjs/shapes/syncShapes.js.map +1 -0
- package/lib/cjs/sparql/irToAlgebra.d.ts +10 -1
- package/lib/cjs/sparql/irToAlgebra.js +137 -4
- package/lib/cjs/sparql/irToAlgebra.js.map +1 -1
- package/lib/cjs/utils/Package.d.ts +14 -0
- package/lib/cjs/utils/Package.js +43 -2
- package/lib/cjs/utils/Package.js.map +1 -1
- package/lib/esm/index.d.ts +3 -0
- package/lib/esm/index.js +5 -0
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/ontologies/linked-core.d.ts +3 -0
- package/lib/esm/ontologies/linked-core.js +10 -0
- package/lib/esm/ontologies/linked-core.js.map +1 -1
- package/lib/esm/ontologies/shacl.d.ts +7 -0
- package/lib/esm/ontologies/shacl.js +14 -0
- package/lib/esm/ontologies/shacl.js.map +1 -1
- package/lib/esm/shapes/List.d.ts +27 -8
- package/lib/esm/shapes/List.js +35 -28
- package/lib/esm/shapes/List.js.map +1 -1
- package/lib/esm/shapes/PathNode.d.ts +20 -0
- package/lib/esm/shapes/PathNode.js +78 -0
- package/lib/esm/shapes/PathNode.js.map +1 -0
- package/lib/esm/shapes/SHACL.d.ts +19 -0
- package/lib/esm/shapes/SHACL.js +3 -0
- package/lib/esm/shapes/SHACL.js.map +1 -1
- package/lib/esm/shapes/serializePathToNodeData.d.ts +24 -0
- package/lib/esm/shapes/serializePathToNodeData.js +48 -0
- package/lib/esm/shapes/serializePathToNodeData.js.map +1 -0
- package/lib/esm/shapes/syncShapes.d.ts +14 -0
- package/lib/esm/shapes/syncShapes.js +138 -0
- package/lib/esm/shapes/syncShapes.js.map +1 -0
- package/lib/esm/sparql/irToAlgebra.d.ts +10 -1
- package/lib/esm/sparql/irToAlgebra.js +136 -4
- package/lib/esm/sparql/irToAlgebra.js.map +1 -1
- package/lib/esm/utils/Package.d.ts +14 -0
- package/lib/esm/utils/Package.js +43 -2
- package/lib/esm/utils/Package.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -25,6 +25,46 @@
|
|
|
25
25
|
|
|
26
26
|
**Breaking:** generated shape/package/term IRIs change. Consumers that hardcoded `data.lincd.org` IRIs, imported `LINCD_DATA_ROOT`, or used the `lincd` ontology export must update. Stored data keyed on the old IRIs needs migration.
|
|
27
27
|
|
|
28
|
+
- [#97](https://github.com/linked-cm/core/pull/97) [`7c2fea9`](https://github.com/linked-cm/core/commit/7c2fea984e53115b7a85dbe4ced2ca18a2b94f4f) Thanks [@flyon](https://github.com/flyon)! - Serialize code-defined SHACL shapes into the store and keep them in sync.
|
|
29
|
+
|
|
30
|
+
**New exports**
|
|
31
|
+
|
|
32
|
+
- `syncShapes(): Promise<Array<() => Promise<void>>>` — materializes every code-registered
|
|
33
|
+
(non-framework) `NodeShape` into the store as SHACL data. Returns built-but-unexecuted thunks so the
|
|
34
|
+
caller controls execution/batching; each thunk runs `delete → recreate` for one shape (cascade-cleaning
|
|
35
|
+
its old property shapes / list / path subtrees), plus orphan-delete thunks for shapes removed from code.
|
|
36
|
+
```ts
|
|
37
|
+
import { syncShapes } from "@_linked/core";
|
|
38
|
+
await Promise.all((await syncShapes()).map((run) => run()));
|
|
39
|
+
```
|
|
40
|
+
- `rdfList(items, {base?})` — builds an ordered `rdf:List` (nested `List` node-data) for use in any
|
|
41
|
+
create/update, so ordered collections (and `sh:in`) round-trip instead of becoming unordered sets:
|
|
42
|
+
```ts
|
|
43
|
+
Playlist.create({ tracks: rdfList([t1, t2, t3]) });
|
|
44
|
+
```
|
|
45
|
+
- `serializePathToNodeData(pathExpr, baseIri)` — translates a `PathExpr` to `sh:path` node-data
|
|
46
|
+
(predicate IRI / `rdf:List` sequence / `PathNode` for inverse·alternative·cardinality).
|
|
47
|
+
- `PathNode` shape (`linked:PathNode`) — operator node for complex property paths.
|
|
48
|
+
|
|
49
|
+
**New composition flags (delete/update cascade)**
|
|
50
|
+
|
|
51
|
+
- `@objectProperty({ …, contains: true })` marks a property as owning its value(s); `@linkedShape({
|
|
52
|
+
dependent: true })` marks a shape whose instances may be cascade-deleted when reached through a
|
|
53
|
+
`contains` edge. Deleting or replacing a `contains` property now removes the whole owned subtree
|
|
54
|
+
(e.g. an `rdf:List` spine or a `sh:path` operator tree), while shared predicate/value IRIs and
|
|
55
|
+
`rdf:nil` are preserved.
|
|
56
|
+
- `@linkedShape({ closed: true, ignoredProperties: [...] })` now persist as `sh:closed` /
|
|
57
|
+
`sh:ignoredProperties`.
|
|
58
|
+
|
|
59
|
+
**New SHACL/ontology terms:** `sh:equals`, `sh:disjoint`, `sh:hasValue`, `sh:order`, `sh:group`,
|
|
60
|
+
`sh:closed`, `sh:ignoredProperties`; `linked_core:contains`, `linked_core:dependent`, `linked_core:PathNode`.
|
|
61
|
+
|
|
62
|
+
**Potentially breaking:** the `List` shape was rewritten to a pure `rdf:List` cell shape — its former
|
|
63
|
+
in-memory helpers (`fromItems`, `getContents`, `addItem(s)`, `isEmpty`, `items`) were removed. Use
|
|
64
|
+
`rdfList()` to build lists. `List` had no RDF-backed consumers, so most users are unaffected.
|
|
65
|
+
|
|
66
|
+
See `docs/reports/016-shacl-rdf-serialization.md` for the full design, cascade mechanics, and test coverage.
|
|
67
|
+
|
|
28
68
|
- [#91](https://github.com/linked-cm/core/pull/91) [`46b519e`](https://github.com/linked-cm/core/commit/46b519eae3abf9a243f2f04acb04e338635b2e6a) Thanks [@flyon](https://github.com/flyon)! - SPARQL generation: structured property paths on named properties, and inner pagination for nested selects.
|
|
29
69
|
|
|
30
70
|
**Structured `sh:path` on named properties now resolve correctly.** A query that references a named property whose SHACL `sh:path` is structured (a sequence `[a, b]`, an inverse `^p`, or an alternative `a|b`) previously collapsed to a shadow IRI and matched nothing. It now emits the correct SPARQL property-path predicate. Simple single-predicate properties are unaffected (output unchanged).
|
|
@@ -86,6 +126,75 @@
|
|
|
86
126
|
semantics, and paginated nested selects (inner `LIMIT`/`OFFSET`) are still
|
|
87
127
|
emitted as sub-SELECTs.
|
|
88
128
|
|
|
129
|
+
## 2.7.0
|
|
130
|
+
|
|
131
|
+
### Minor Changes
|
|
132
|
+
|
|
133
|
+
- [#93](https://github.com/linked-cm/core/pull/93) [`89b3f55`](https://github.com/linked-cm/core/commit/89b3f5503329d88d0e6d9fe0a2a1418e06a58252) Thanks [@flyon](https://github.com/flyon)! - Development-mode source resolution and an instance-count diagnostic.
|
|
134
|
+
|
|
135
|
+
- **Conditional `development` exports.** `package.json` now declares a `development` export condition resolving to `./src/*.ts` (and `./src/index.ts` for the root). Vite's browser-side resolver picks the TypeScript source in dev mode, enabling HMR-on-source for `@_linked/core` from a consuming app. Production resolution (`import` → `lib/esm`, `require` → `lib/cjs`, `types`) is unchanged.
|
|
136
|
+
- **`LinkedStorage.getLoadedInstanceCount(): number`** — new public static method reporting how many `@_linked/core` instances are registered on the global tree (a diagnostic for the Vite-SSR-vs-Node-resolver dual-load split).
|
|
137
|
+
|
|
138
|
+
- [#93](https://github.com/linked-cm/core/pull/93) [`89b3f55`](https://github.com/linked-cm/core/commit/89b3f5503329d88d0e6d9fe0a2a1418e06a58252) Thanks [@flyon](https://github.com/flyon)! - Shape, package, and framework-vocabulary IRIs now use the canonical `linked.cm` namespace, with a configurable per-package publish root.
|
|
139
|
+
|
|
140
|
+
**New scheme (arch-aligned):**
|
|
141
|
+
|
|
142
|
+
- Shape IRIs: `https://linked.cm/shape/{packageSlug}/{ShapeName}` (PascalCase shape name; previously `https://data.lincd.org/module/{sanitized}/shape/{lowercased}`).
|
|
143
|
+
- Package IRIs: `https://linked.cm/pkg/{packageSlug}` (previously `…/module/{name}`).
|
|
144
|
+
- Framework vocabulary: `https://linked.cm/ont/linked-core/` (prefix `linked_core`; previously `https://purl.org/on/lincd/`, prefix `lincd`). The `Module` term is renamed to `Package`.
|
|
145
|
+
|
|
146
|
+
**New / changed public API:**
|
|
147
|
+
|
|
148
|
+
- `linkedPackage(name, { baseUri? })` — packages declare where they publish. `baseUri` defaults to `https://linked.cm/` (first-party); CN injects a workspace-scoped root (`{workspaceSlug}.id.create.now`) for private packages. The IRI slug is the package **basename** with the npm scope dropped (`@_linked/core` → `core`, `@linked.cm/blog` → `blog`); there is no separate slug param. Slugs must be globally unique within the publish root — the registry enforces this and reserves the first-party (`@_linked`) names.
|
|
149
|
+
- New exports `LINKED_DATA_ROOT`, `getPackageUri()`, `setPackagePublishConfig()`, `packageNameToSlug()` (replaces the removed `LINCD_DATA_ROOT`).
|
|
150
|
+
- The framework ontology export is now `coreOntology` (was `lincd`).
|
|
151
|
+
|
|
152
|
+
**Breaking:** generated shape/package/term IRIs change. Consumers that hardcoded `data.lincd.org` IRIs, imported `LINCD_DATA_ROOT`, or used the `lincd` ontology export must update. Stored data keyed on the old IRIs needs migration.
|
|
153
|
+
|
|
154
|
+
- [#93](https://github.com/linked-cm/core/pull/93) [`89b3f55`](https://github.com/linked-cm/core/commit/89b3f5503329d88d0e6d9fe0a2a1418e06a58252) Thanks [@flyon](https://github.com/flyon)! - SPARQL generation: structured property paths on named properties, and inner pagination for nested selects.
|
|
155
|
+
|
|
156
|
+
**Structured `sh:path` on named properties now resolve correctly.** A query that references a named property whose SHACL `sh:path` is structured (a sequence `[a, b]`, an inverse `^p`, or an alternative `a|b`) previously collapsed to a shadow IRI and matched nothing. It now emits the correct SPARQL property-path predicate. Simple single-predicate properties are unaffected (output unchanged).
|
|
157
|
+
|
|
158
|
+
**Nested selects can now bound a related collection with `.limit()` / `.offset()` / `.orderBy()`** — when the outer query targets a single subject:
|
|
159
|
+
|
|
160
|
+
```ts
|
|
161
|
+
// Up to 2 friends, ordered, for one person
|
|
162
|
+
Person.select((p) =>
|
|
163
|
+
p.friends
|
|
164
|
+
.select((f) => f.name)
|
|
165
|
+
.orderBy((f) => f.name)
|
|
166
|
+
.limit(2)
|
|
167
|
+
).for({ id });
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
This emits a real SPARQL sub-`SELECT … ORDER BY … LIMIT … OFFSET …` that bounds the collection per parent. `orderBy` accepts a proxy callback (`f => f.name`) or a property-name string and defaults to ascending.
|
|
171
|
+
|
|
172
|
+
Notes:
|
|
173
|
+
|
|
174
|
+
- Per-group pagination across **multiple** parents is not supported and now throws a clear error instead of silently applying a global limit. The same applies to `.limit()` on a deeper (grandchild) collection, and to `.limit()` called directly on a traversal without `.select(...)`.
|
|
175
|
+
- Queries with no inner pagination are emitted exactly as before.
|
|
176
|
+
|
|
177
|
+
### Patch Changes
|
|
178
|
+
|
|
179
|
+
- [#93](https://github.com/linked-cm/core/pull/93) [`89b3f55`](https://github.com/linked-cm/core/commit/89b3f5503329d88d0e6d9fe0a2a1418e06a58252) Thanks [@flyon](https://github.com/flyon)! - `initTree()` is now idempotent: if `global.lincd` already exists (which
|
|
180
|
+
happens structurally under Vite SSR — Vite resolves `@_linked/core/utils/Package`
|
|
181
|
+
from `src/`, and any `/* @vite-ignore */` dynamic import via Node's resolver
|
|
182
|
+
gets it from `lib/esm/`), the function attaches to the existing registry
|
|
183
|
+
instead of throwing or warning.
|
|
184
|
+
|
|
185
|
+
Previous behavior used a `_lincdMultiWarned` one-shot flag that logged a
|
|
186
|
+
warning on the second initialization. This was framed as "interim" but
|
|
187
|
+
was actually the correct semantic for the Vite-SSR-vs-Node-resolver split.
|
|
188
|
+
The new code expresses the same behavior as the explicit design rather
|
|
189
|
+
than as a workaround.
|
|
190
|
+
|
|
191
|
+
No API change. Existing consumers see the same `lincd` global tree they
|
|
192
|
+
saw before. Apps that previously saw "Multiple versions of Linked are
|
|
193
|
+
loaded — accepted during HMR/Vite interim" in their dev log will no
|
|
194
|
+
longer see that line.
|
|
195
|
+
|
|
196
|
+
Context: see create-now plan-011 report (docs/reports/009-legacy-lincd-eradication.md).
|
|
197
|
+
|
|
89
198
|
## 2.6.0
|
|
90
199
|
|
|
91
200
|
### Minor Changes
|
package/lib/cjs/index.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
export { syncShapes } from './shapes/syncShapes.js';
|
|
2
|
+
export { rdfList } from './shapes/List.js';
|
|
3
|
+
export { serializePathToNodeData } from './shapes/serializePathToNodeData.js';
|
|
1
4
|
export { QueryBuilder } from './queries/QueryBuilder.js';
|
|
2
5
|
export { PropertyPath, walkPropertyPath } from './queries/PropertyPath.js';
|
|
3
6
|
export type { WhereCondition, WhereOperator } from './queries/WhereCondition.js';
|
package/lib/cjs/index.js
CHANGED
|
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.Expr = exports.ExpressionNode = exports.DeleteBuilder = exports.UpdateBuilder = exports.CreateBuilder = exports.FieldSet = exports.walkPropertyPath = exports.PropertyPath = exports.QueryBuilder = void 0;
|
|
36
|
+
exports.Expr = exports.ExpressionNode = exports.DeleteBuilder = exports.UpdateBuilder = exports.CreateBuilder = exports.FieldSet = exports.walkPropertyPath = exports.PropertyPath = exports.QueryBuilder = exports.serializePathToNodeData = exports.rdfList = exports.syncShapes = void 0;
|
|
37
37
|
exports.initModularApp = initModularApp;
|
|
38
38
|
/*
|
|
39
39
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
@@ -63,6 +63,13 @@ const NameSpace = __importStar(require("./utils/NameSpace.js"));
|
|
|
63
63
|
const ShapeClass = __importStar(require("./utils/ShapeClass.js"));
|
|
64
64
|
const cached = __importStar(require("./utils/cached.js"));
|
|
65
65
|
const List = __importStar(require("./shapes/List.js"));
|
|
66
|
+
const PathNode = __importStar(require("./shapes/PathNode.js"));
|
|
67
|
+
var syncShapes_js_1 = require("./shapes/syncShapes.js");
|
|
68
|
+
Object.defineProperty(exports, "syncShapes", { enumerable: true, get: function () { return syncShapes_js_1.syncShapes; } });
|
|
69
|
+
var List_js_1 = require("./shapes/List.js");
|
|
70
|
+
Object.defineProperty(exports, "rdfList", { enumerable: true, get: function () { return List_js_1.rdfList; } });
|
|
71
|
+
var serializePathToNodeData_js_1 = require("./shapes/serializePathToNodeData.js");
|
|
72
|
+
Object.defineProperty(exports, "serializePathToNodeData", { enumerable: true, get: function () { return serializePathToNodeData_js_1.serializePathToNodeData; } });
|
|
66
73
|
const ICoreIterable = __importStar(require("./interfaces/ICoreIterable.js"));
|
|
67
74
|
const IFileStore = __importStar(require("./interfaces/IFileStore.js"));
|
|
68
75
|
const IDataset = __importStar(require("./interfaces/IDataset.js"));
|
|
@@ -118,6 +125,7 @@ function initModularApp() {
|
|
|
118
125
|
URI,
|
|
119
126
|
ShapeClass,
|
|
120
127
|
List,
|
|
128
|
+
PathNode,
|
|
121
129
|
ICoreIterable,
|
|
122
130
|
IFileStore,
|
|
123
131
|
IDataset,
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,13 @@ const moduleProperty = (0, exports.ns)('module');
|
|
|
16
16
|
const usesShapeClass = (0, exports.ns)('usesShapeClass');
|
|
17
17
|
const editInline = (0, exports.ns)('editInline');
|
|
18
18
|
const isExtending = (0, exports.ns)('isExtending');
|
|
19
|
+
// Containment / lifecycle vocabulary.
|
|
20
|
+
// contains — property characteristic: the cascade follows this edge (composition).
|
|
21
|
+
// dependent — shape characteristic: instances may be deleted when reached via a `contains` edge.
|
|
22
|
+
// PathNode — class for SHACL property-path operator nodes (sh:inversePath/alternativePath/…).
|
|
23
|
+
const contains = (0, exports.ns)('contains');
|
|
24
|
+
const dependent = (0, exports.ns)('dependent');
|
|
25
|
+
const PathNode = (0, exports.ns)('PathNode');
|
|
19
26
|
exports.coreOntology = {
|
|
20
27
|
Package,
|
|
21
28
|
ShapeClass,
|
|
@@ -24,5 +31,8 @@ exports.coreOntology = {
|
|
|
24
31
|
usesShapeClass,
|
|
25
32
|
editInline,
|
|
26
33
|
isExtending,
|
|
34
|
+
contains,
|
|
35
|
+
dependent,
|
|
36
|
+
PathNode,
|
|
27
37
|
};
|
|
28
38
|
//# sourceMappingURL=linked-core.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linked-core.js","sourceRoot":"","sources":["../../../src/ontologies/linked-core.ts"],"names":[],"mappings":";;;AACA,wDAAsD;AACtD,kDAA0C;AAE1C,+EAA+E;AAC/E,sFAAsF;AACtF,qDAAqD;AACxC,QAAA,EAAE,GAAG,IAAA,8BAAe,EAAC,oCAAoC,CAAC,CAAC;AAC3D,QAAA,KAAK,GAAuB,IAAA,UAAE,EAAC,EAAE,CAAC,CAAC;AAChD,kBAAM,CAAC,GAAG,CAAC,aAAa,EAAE,aAAK,CAAC,EAAE,CAAC,CAAC;AAEpC,MAAM,OAAO,GAAG,IAAA,UAAE,EAAC,SAAS,CAAC,CAAC;AAC9B,MAAM,UAAU,GAAG,IAAA,UAAE,EAAC,YAAY,CAAC,CAAC;AACpC,MAAM,YAAY,GAAG,IAAA,UAAE,EAAC,cAAc,CAAC,CAAC;AACxC,MAAM,cAAc,GAAG,IAAA,UAAE,EAAC,QAAQ,CAAC,CAAC;AACpC,MAAM,cAAc,GAAG,IAAA,UAAE,EAAC,gBAAgB,CAAC,CAAC;AAC5C,MAAM,UAAU,GAAG,IAAA,UAAE,EAAC,YAAY,CAAC,CAAC;AACpC,MAAM,WAAW,GAAG,IAAA,UAAE,EAAC,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"linked-core.js","sourceRoot":"","sources":["../../../src/ontologies/linked-core.ts"],"names":[],"mappings":";;;AACA,wDAAsD;AACtD,kDAA0C;AAE1C,+EAA+E;AAC/E,sFAAsF;AACtF,qDAAqD;AACxC,QAAA,EAAE,GAAG,IAAA,8BAAe,EAAC,oCAAoC,CAAC,CAAC;AAC3D,QAAA,KAAK,GAAuB,IAAA,UAAE,EAAC,EAAE,CAAC,CAAC;AAChD,kBAAM,CAAC,GAAG,CAAC,aAAa,EAAE,aAAK,CAAC,EAAE,CAAC,CAAC;AAEpC,MAAM,OAAO,GAAG,IAAA,UAAE,EAAC,SAAS,CAAC,CAAC;AAC9B,MAAM,UAAU,GAAG,IAAA,UAAE,EAAC,YAAY,CAAC,CAAC;AACpC,MAAM,YAAY,GAAG,IAAA,UAAE,EAAC,cAAc,CAAC,CAAC;AACxC,MAAM,cAAc,GAAG,IAAA,UAAE,EAAC,QAAQ,CAAC,CAAC;AACpC,MAAM,cAAc,GAAG,IAAA,UAAE,EAAC,gBAAgB,CAAC,CAAC;AAC5C,MAAM,UAAU,GAAG,IAAA,UAAE,EAAC,YAAY,CAAC,CAAC;AACpC,MAAM,WAAW,GAAG,IAAA,UAAE,EAAC,aAAa,CAAC,CAAC;AAEtC,sCAAsC;AACtC,sFAAsF;AACtF,mGAAmG;AACnG,iGAAiG;AACjG,MAAM,QAAQ,GAAG,IAAA,UAAE,EAAC,UAAU,CAAC,CAAC;AAChC,MAAM,SAAS,GAAG,IAAA,UAAE,EAAC,WAAW,CAAC,CAAC;AAClC,MAAM,QAAQ,GAAG,IAAA,UAAE,EAAC,UAAU,CAAC,CAAC;AAEnB,QAAA,YAAY,GAAG;IAC1B,OAAO;IACP,UAAU;IACV,YAAY;IACZ,MAAM,EAAE,cAAc;IACtB,cAAc;IACd,UAAU;IACV,WAAW;IACX,QAAQ;IACR,SAAS;IACT,QAAQ;CACT,CAAC"}
|
|
@@ -59,6 +59,13 @@ export declare const shacl: {
|
|
|
59
59
|
IRIOrLiteral: NodeReferenceValue;
|
|
60
60
|
nodeKind: NodeReferenceValue;
|
|
61
61
|
inList: NodeReferenceValue;
|
|
62
|
+
equals: NodeReferenceValue;
|
|
63
|
+
disjoint: NodeReferenceValue;
|
|
64
|
+
hasValue: NodeReferenceValue;
|
|
65
|
+
order: NodeReferenceValue;
|
|
66
|
+
group: NodeReferenceValue;
|
|
67
|
+
closed: NodeReferenceValue;
|
|
68
|
+
ignoredProperties: NodeReferenceValue;
|
|
62
69
|
languageIn: NodeReferenceValue;
|
|
63
70
|
lessThan: NodeReferenceValue;
|
|
64
71
|
lessThanOrEquals: NodeReferenceValue;
|
|
@@ -30,6 +30,13 @@ const targetNode = (0, exports.ns)('targetNode');
|
|
|
30
30
|
const node = (0, exports.ns)('node');
|
|
31
31
|
const nodeKind = (0, exports.ns)('nodeKind');
|
|
32
32
|
const Shape = (0, exports.ns)('Shape');
|
|
33
|
+
const equals = (0, exports.ns)('equals');
|
|
34
|
+
const disjoint = (0, exports.ns)('disjoint');
|
|
35
|
+
const hasValue = (0, exports.ns)('hasValue');
|
|
36
|
+
const order = (0, exports.ns)('order');
|
|
37
|
+
const group = (0, exports.ns)('group');
|
|
38
|
+
const closed = (0, exports.ns)('closed');
|
|
39
|
+
const ignoredProperties = (0, exports.ns)('ignoredProperties');
|
|
33
40
|
const alternativePath = (0, exports.ns)('alternativePath');
|
|
34
41
|
const inversePath = (0, exports.ns)('inversePath');
|
|
35
42
|
const zeroOrMorePath = (0, exports.ns)('zeroOrMorePath');
|
|
@@ -100,6 +107,13 @@ exports.shacl = {
|
|
|
100
107
|
IRIOrLiteral,
|
|
101
108
|
nodeKind,
|
|
102
109
|
inList,
|
|
110
|
+
equals,
|
|
111
|
+
disjoint,
|
|
112
|
+
hasValue,
|
|
113
|
+
order,
|
|
114
|
+
group,
|
|
115
|
+
closed,
|
|
116
|
+
ignoredProperties,
|
|
103
117
|
languageIn: exports.languageIn,
|
|
104
118
|
lessThan: exports.lessThan,
|
|
105
119
|
lessThanOrEquals: exports.lessThanOrEquals,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shacl.js","sourceRoot":"","sources":["../../../src/ontologies/shacl.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shacl.js","sourceRoot":"","sources":["../../../src/ontologies/shacl.ts"],"names":[],"mappings":";;;AAMA,kDAA0C;AAC1C,wDAAsD;AAEtD,MAAM,IAAI,GAAG,6BAA6B,CAAC;AAC9B,QAAA,iBAAiB,GAAuB,EAAC,EAAE,EAAE,IAAI,EAAC,CAAC;AAChE,kBAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAEb,QAAA,EAAE,GAAG,IAAA,8BAAe,EAAC,IAAI,CAAC,CAAC;AAExC,8BAA8B;AAC9B,MAAM,MAAM,GAAG,IAAA,UAAE,EAAC,OAAO,CAAC,CAAC;AAC3B,MAAM,QAAQ,GAAG,IAAA,UAAE,EAAC,UAAU,CAAC,CAAC;AAChC,MAAM,OAAO,GAAG,IAAA,UAAE,EAAC,SAAS,CAAC,CAAC;AAC9B,MAAM,GAAG,GAAG,IAAA,UAAE,EAAC,IAAI,CAAC,CAAC;AACrB,MAAM,QAAQ,GAAG,IAAA,UAAE,EAAC,UAAU,CAAC,CAAC;AAChC,MAAM,QAAQ,GAAG,IAAA,UAAE,EAAC,UAAU,CAAC,CAAC;AAChC,MAAM,MAAM,GAAG,IAAA,UAAE,EAAC,QAAQ,CAAC,CAAC;AAC5B,MAAM,IAAI,GAAG,IAAA,UAAE,EAAC,MAAM,CAAC,CAAC;AACxB,MAAM,WAAW,GAAG,IAAA,UAAE,EAAC,aAAa,CAAC,CAAC;AACtC,MAAM,SAAS,GAAG,IAAA,UAAE,EAAC,WAAW,CAAC,CAAC;AAClC,MAAM,QAAQ,GAAG,IAAA,UAAE,EAAC,UAAU,CAAC,CAAC;AAChC,MAAM,SAAS,GAAG,IAAA,UAAE,EAAC,WAAW,CAAC,CAAC;AAClC,MAAM,iBAAiB,GAAG,IAAA,UAAE,EAAC,mBAAmB,CAAC,CAAC;AAClD,MAAM,IAAI,GAAG,IAAA,UAAE,EAAC,MAAM,CAAC,CAAC;AACxB,MAAM,QAAQ,GAAG,IAAA,UAAE,EAAC,UAAU,CAAC,CAAC;AAChC,MAAM,MAAM,GAAG,IAAA,UAAE,EAAC,QAAQ,CAAC,CAAC;AAC5B,MAAM,aAAa,GAAG,IAAA,UAAE,EAAC,eAAe,CAAC,CAAC;AAC1C,MAAM,WAAW,GAAG,IAAA,UAAE,EAAC,aAAa,CAAC,CAAC;AACtC,MAAM,UAAU,GAAG,IAAA,UAAE,EAAC,YAAY,CAAC,CAAC;AACpC,MAAM,IAAI,GAAG,IAAA,UAAE,EAAC,MAAM,CAAC,CAAC;AACxB,MAAM,QAAQ,GAAG,IAAA,UAAE,EAAC,UAAU,CAAC,CAAC;AAChC,MAAM,KAAK,GAAG,IAAA,UAAE,EAAC,OAAO,CAAC,CAAC;AAE1B,MAAM,MAAM,GAAG,IAAA,UAAE,EAAC,QAAQ,CAAC,CAAC;AAC5B,MAAM,QAAQ,GAAG,IAAA,UAAE,EAAC,UAAU,CAAC,CAAC;AAChC,MAAM,QAAQ,GAAG,IAAA,UAAE,EAAC,UAAU,CAAC,CAAC;AAChC,MAAM,KAAK,GAAG,IAAA,UAAE,EAAC,OAAO,CAAC,CAAC;AAC1B,MAAM,KAAK,GAAG,IAAA,UAAE,EAAC,OAAO,CAAC,CAAC;AAC1B,MAAM,MAAM,GAAG,IAAA,UAAE,EAAC,QAAQ,CAAC,CAAC;AAC5B,MAAM,iBAAiB,GAAG,IAAA,UAAE,EAAC,mBAAmB,CAAC,CAAC;AAElD,MAAM,eAAe,GAAG,IAAA,UAAE,EAAC,iBAAiB,CAAC,CAAC;AAC9C,MAAM,WAAW,GAAG,IAAA,UAAE,EAAC,aAAa,CAAC,CAAC;AACtC,MAAM,cAAc,GAAG,IAAA,UAAE,EAAC,gBAAgB,CAAC,CAAC;AAC5C,MAAM,aAAa,GAAG,IAAA,UAAE,EAAC,eAAe,CAAC,CAAC;AAC1C,MAAM,aAAa,GAAG,IAAA,UAAE,EAAC,eAAe,CAAC,CAAC;AAE1C,MAAM,SAAS,GAAG,IAAA,UAAE,EAAC,WAAW,CAAC,CAAC;AAClC,MAAM,GAAG,GAAG,IAAA,UAAE,EAAC,KAAK,CAAC,CAAC;AACtB,MAAM,OAAO,GAAG,IAAA,UAAE,EAAC,SAAS,CAAC,CAAC;AAC9B,MAAM,cAAc,GAAG,IAAA,UAAE,EAAC,gBAAgB,CAAC,CAAC;AAC5C,MAAM,kBAAkB,GAAG,IAAA,UAAE,EAAC,oBAAoB,CAAC,CAAC;AACpD,MAAM,YAAY,GAAG,IAAA,UAAE,EAAC,cAAc,CAAC,CAAC;AAE3B,QAAA,UAAU,GAAG,IAAA,UAAE,EAAC,YAAY,CAAC,CAAC;AAC9B,QAAA,QAAQ,GAAG,IAAA,UAAE,EAAC,UAAU,CAAC,CAAC;AAC1B,QAAA,gBAAgB,GAAG,IAAA,UAAE,EAAC,kBAAkB,CAAC,CAAC;AAC1C,QAAA,YAAY,GAAG,IAAA,UAAE,EAAC,cAAc,CAAC,CAAC;AAClC,QAAA,YAAY,GAAG,IAAA,UAAE,EAAC,cAAc,CAAC,CAAC;AAClC,QAAA,SAAS,GAAG,IAAA,UAAE,EAAC,WAAW,CAAC,CAAC;AAC5B,QAAA,YAAY,GAAG,IAAA,UAAE,EAAC,cAAc,CAAC,CAAC;AAClC,QAAA,YAAY,GAAG,IAAA,UAAE,EAAC,cAAc,CAAC,CAAC;AAClC,QAAA,SAAS,GAAG,IAAA,UAAE,EAAC,WAAW,CAAC,CAAC;AAC5B,QAAA,OAAO,GAAG,IAAA,UAAE,EAAC,SAAS,CAAC,CAAC;AACxB,QAAA,UAAU,GAAG,IAAA,UAAE,EAAC,YAAY,CAAC,CAAC;AAC9B,QAAA,gBAAgB,GAAG,IAAA,UAAE,EAAC,kBAAkB,CAAC,CAAC;AAC1C,QAAA,QAAQ,GAAG,IAAA,UAAE,EAAC,UAAU,CAAC,CAAC;AAC1B,QAAA,gBAAgB,GAAG,IAAA,UAAE,EAAC,kBAAkB,CAAC,CAAC;AAC1C,QAAA,SAAS,GAAG,IAAA,UAAE,EAAC,WAAW,CAAC,CAAC;AAC5B,QAAA,WAAW,GAAG,IAAA,UAAE,EAAC,aAAa,CAAC,CAAC;AAChC,QAAA,cAAc,GAAG,IAAA,UAAE,EAAC,gBAAgB,CAAC,CAAC;AACtC,QAAA,UAAU,GAAG,IAAA,UAAE,EAAC,YAAY,CAAC,CAAC;AAC9B,QAAA,KAAK,GAAG,IAAA,UAAE,EAAC,OAAO,CAAC,CAAC;AACpB,QAAA,OAAO,GAAG,IAAA,UAAE,EAAC,SAAS,CAAC,CAAC;AACxB,QAAA,SAAS,GAAG,IAAA,UAAE,EAAC,WAAW,CAAC,CAAC;AAC5B,QAAA,cAAc,GAAG,IAAA,UAAE,EAAC,gBAAgB,CAAC,CAAC;AACtC,QAAA,yBAAyB,GAAG,IAAA,UAAE,EAAC,2BAA2B,CAAC,CAAC;AAC5D,QAAA,wBAAwB,GAAG,IAAA,UAAE,EAAC,0BAA0B,CAAC,CAAC;AAC1D,QAAA,uBAAuB,GAAG,IAAA,UAAE,EAAC,yBAAyB,CAAC,CAAC;AACxD,QAAA,2BAA2B,GAAG,IAAA,UAAE,EAAC,6BAA6B,CAAC,CAAC;AAChE,QAAA,4BAA4B,GAAG,IAAA,UAAE,EAAC,8BAA8B,CAAC,CAAC;AAClE,QAAA,4BAA4B,GAAG,IAAA,UAAE,EAAC,8BAA8B,CAAC,CAAC;AAClE,QAAA,MAAM,GAAG,IAAA,UAAE,EAAC,QAAQ,CAAC,CAAC;AAEnC,4CAA4C;AAC/B,QAAA,KAAK,GAAG;IACnB,KAAK,EAAE,MAAM;IACb,QAAQ;IACR,OAAO;IACP,EAAE,EAAE,GAAG;IACP,QAAQ;IACR,QAAQ;IACR,IAAI;IACJ,WAAW;IACX,IAAI;IACJ,SAAS;IACT,QAAQ;IACR,SAAS;IACT,iBAAiB;IACjB,IAAI;IACJ,MAAM;IACN,QAAQ;IACR,aAAa;IACb,KAAK;IACL,WAAW;IACX,UAAU;IACV,SAAS;IACT,GAAG;IACH,OAAO;IACP,cAAc;IACd,kBAAkB;IAClB,YAAY;IACZ,QAAQ;IACR,MAAM;IACN,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,KAAK;IACL,MAAM;IACN,iBAAiB;IACjB,UAAU,EAAV,kBAAU;IACV,QAAQ,EAAR,gBAAQ;IACR,gBAAgB,EAAhB,wBAAgB;IAChB,YAAY,EAAZ,oBAAY;IACZ,YAAY,EAAZ,oBAAY;IACZ,SAAS,EAAT,iBAAS;IACT,YAAY,EAAZ,oBAAY;IACZ,YAAY,EAAZ,oBAAY;IACZ,SAAS,EAAT,iBAAS;IACT,OAAO,EAAP,eAAO;IACP,UAAU,EAAV,kBAAU;IACV,gBAAgB,EAAhB,wBAAgB;IAChB,QAAQ,EAAR,gBAAQ;IACR,gBAAgB,EAAhB,wBAAgB;IAChB,SAAS,EAAT,iBAAS;IACT,WAAW,EAAX,mBAAW;IACX,cAAc,EAAd,sBAAc;IACd,UAAU,EAAV,kBAAU;IACV,KAAK,EAAL,aAAK;IACL,OAAO,EAAP,eAAO;IACP,SAAS,EAAT,iBAAS;IACT,yBAAyB,EAAzB,iCAAyB;IACzB,wBAAwB,EAAxB,gCAAwB;IACxB,uBAAuB,EAAvB,+BAAuB;IACvB,2BAA2B,EAA3B,mCAA2B;IAC3B,4BAA4B,EAA5B,oCAA4B;IAC5B,4BAA4B,EAA5B,oCAA4B;IAC5B,cAAc,EAAd,sBAAc;IACd,MAAM,EAAN,cAAM;IACN,eAAe;IACf,WAAW;IACX,cAAc;IACd,aAAa;IACb,aAAa;CACd,CAAC"}
|
package/lib/cjs/shapes/List.d.ts
CHANGED
|
@@ -1,16 +1,35 @@
|
|
|
1
1
|
import { Shape } from './Shape.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
3
|
+
* SHACL/RDF ordered-list cell shape (`rdf:List`).
|
|
4
|
+
*
|
|
5
|
+
* A list is a chain of cells: `first` holds the value, `rest` points to the next cell
|
|
6
|
+
* (or `rdf:nil`). The cell is `dependent` (it has no independent existence) and `rest` is
|
|
7
|
+
* a `contains` edge, so deleting/replacing a list cascade-cleans the whole spine — while
|
|
8
|
+
* `first` is NOT a `contains` edge, so the list's *contents* (shared IRIs/values) are kept.
|
|
5
9
|
*/
|
|
6
10
|
export declare class List<T = unknown> extends Shape {
|
|
7
11
|
static targetClass: import("../utils/NodeReference.js").NodeReferenceValue;
|
|
8
12
|
get first(): T;
|
|
9
13
|
get rest(): List<T>;
|
|
10
|
-
private items;
|
|
11
|
-
static fromItems<T>(items: T[]): List<T>;
|
|
12
|
-
getContents(): T[];
|
|
13
|
-
isEmpty(): boolean;
|
|
14
|
-
addItem(item: T): void;
|
|
15
|
-
addItems(items: T[]): void;
|
|
16
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Node-data for a single cell / the `rdf:nil` terminal. Accepted by the create pipeline.
|
|
17
|
+
*/
|
|
18
|
+
export type RdfListNodeData = {
|
|
19
|
+
id: string;
|
|
20
|
+
} | {
|
|
21
|
+
shape: typeof List;
|
|
22
|
+
first: unknown;
|
|
23
|
+
rest: RdfListNodeData;
|
|
24
|
+
__id?: string;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Build the nested `List` node-data chain for an ordered `rdf:List`, terminating at `rdf:nil`.
|
|
28
|
+
* Pass `opts.base` to mint deterministic cell ids (`{base}/0`, `{base}/1`, …); otherwise the
|
|
29
|
+
* create pipeline mints ids. The empty list serializes to `rdf:nil`.
|
|
30
|
+
*
|
|
31
|
+
* @example Playlist.create({ tracks: rdfList([t1, t2, t3]) })
|
|
32
|
+
*/
|
|
33
|
+
export declare function rdfList<T>(items: T[], opts?: {
|
|
34
|
+
base?: string;
|
|
35
|
+
}): RdfListNodeData;
|
package/lib/cjs/shapes/List.js
CHANGED
|
@@ -8,9 +8,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
-
var List_1;
|
|
12
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
12
|
exports.List = void 0;
|
|
13
|
+
exports.rdfList = rdfList;
|
|
14
14
|
/*
|
|
15
15
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
16
16
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
@@ -21,37 +21,20 @@ const Shape_js_1 = require("./Shape.js");
|
|
|
21
21
|
const SHACL_js_1 = require("./SHACL.js");
|
|
22
22
|
const rdf_js_1 = require("../ontologies/rdf.js");
|
|
23
23
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
24
|
+
* SHACL/RDF ordered-list cell shape (`rdf:List`).
|
|
25
|
+
*
|
|
26
|
+
* A list is a chain of cells: `first` holds the value, `rest` points to the next cell
|
|
27
|
+
* (or `rdf:nil`). The cell is `dependent` (it has no independent existence) and `rest` is
|
|
28
|
+
* a `contains` edge, so deleting/replacing a list cascade-cleans the whole spine — while
|
|
29
|
+
* `first` is NOT a `contains` edge, so the list's *contents* (shared IRIs/values) are kept.
|
|
26
30
|
*/
|
|
27
|
-
let List =
|
|
28
|
-
constructor() {
|
|
29
|
-
super(...arguments);
|
|
30
|
-
this.items = [];
|
|
31
|
-
}
|
|
31
|
+
let List = class List extends Shape_js_1.Shape {
|
|
32
32
|
get first() {
|
|
33
33
|
return null;
|
|
34
34
|
}
|
|
35
35
|
get rest() {
|
|
36
36
|
return null;
|
|
37
37
|
}
|
|
38
|
-
static fromItems(items) {
|
|
39
|
-
const list = new List_1();
|
|
40
|
-
list.items = [...items];
|
|
41
|
-
return list;
|
|
42
|
-
}
|
|
43
|
-
getContents() {
|
|
44
|
-
return [...this.items];
|
|
45
|
-
}
|
|
46
|
-
isEmpty() {
|
|
47
|
-
return this.items.length === 0;
|
|
48
|
-
}
|
|
49
|
-
addItem(item) {
|
|
50
|
-
this.items.push(item);
|
|
51
|
-
}
|
|
52
|
-
addItems(items) {
|
|
53
|
-
this.items.push(...items);
|
|
54
|
-
}
|
|
55
38
|
};
|
|
56
39
|
exports.List = List;
|
|
57
40
|
List.targetClass = rdf_js_1.rdf.List;
|
|
@@ -61,11 +44,36 @@ __decorate([
|
|
|
61
44
|
__metadata("design:paramtypes", [])
|
|
62
45
|
], List.prototype, "first", null);
|
|
63
46
|
__decorate([
|
|
64
|
-
(0, SHACL_js_1.objectProperty)({ path: rdf_js_1.rdf.rest, maxCount: 1, shape: List }),
|
|
47
|
+
(0, SHACL_js_1.objectProperty)({ path: rdf_js_1.rdf.rest, maxCount: 1, shape: List, contains: true }),
|
|
65
48
|
__metadata("design:type", List),
|
|
66
49
|
__metadata("design:paramtypes", [])
|
|
67
50
|
], List.prototype, "rest", null);
|
|
68
|
-
exports.List = List =
|
|
69
|
-
package_js_1.linkedShape
|
|
51
|
+
exports.List = List = __decorate([
|
|
52
|
+
(0, package_js_1.linkedShape)({ dependent: true })
|
|
70
53
|
], List);
|
|
54
|
+
/**
|
|
55
|
+
* Build the nested `List` node-data chain for an ordered `rdf:List`, terminating at `rdf:nil`.
|
|
56
|
+
* Pass `opts.base` to mint deterministic cell ids (`{base}/0`, `{base}/1`, …); otherwise the
|
|
57
|
+
* create pipeline mints ids. The empty list serializes to `rdf:nil`.
|
|
58
|
+
*
|
|
59
|
+
* @example Playlist.create({ tracks: rdfList([t1, t2, t3]) })
|
|
60
|
+
*/
|
|
61
|
+
function rdfList(items, opts) {
|
|
62
|
+
const base = opts === null || opts === void 0 ? void 0 : opts.base;
|
|
63
|
+
const build = (i) => {
|
|
64
|
+
if (i >= items.length) {
|
|
65
|
+
return { id: rdf_js_1.rdf.nil.id };
|
|
66
|
+
}
|
|
67
|
+
const cell = {
|
|
68
|
+
shape: List,
|
|
69
|
+
first: items[i],
|
|
70
|
+
rest: build(i + 1),
|
|
71
|
+
};
|
|
72
|
+
if (base !== undefined) {
|
|
73
|
+
cell.__id = `${base}/${i}`;
|
|
74
|
+
}
|
|
75
|
+
return cell;
|
|
76
|
+
};
|
|
77
|
+
return build(0);
|
|
78
|
+
}
|
|
71
79
|
//# sourceMappingURL=List.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"List.js","sourceRoot":"","sources":["../../../src/shapes/List.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"List.js","sourceRoot":"","sources":["../../../src/shapes/List.ts"],"names":[],"mappings":";;;;;;;;;;;;AA+CA,0BAoBC;AAnED;;;;GAIG;AACH,8CAA0C;AAC1C,yCAAiC;AACjC,yCAA0D;AAC1D,iDAAyC;AAEzC;;;;;;;GAOG;AAEI,IAAM,IAAI,GAAV,MAAM,IAAkB,SAAQ,gBAAK;IAG1C,IACI,KAAK;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACI,IAAI;QACN,OAAO,IAAI,CAAC;IACd,CAAC;;AAXU,oBAAI;AACR,gBAAW,GAAG,YAAG,CAAC,IAAI,AAAX,CAAY;AAE9B;IAAC,IAAA,yBAAc,EAAC,EAAC,IAAI,EAAE,YAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAC,CAAC;;;iCAG9C;AAED;IAAC,IAAA,yBAAc,EAAC,EAAC,IAAI,EAAE,YAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;8BAC/D,IAAI;;gCAEf;eAXU,IAAI;IADhB,IAAA,wBAAW,EAAC,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC;GAClB,IAAI,CAYhB;AASD;;;;;;GAMG;AACH,SAAgB,OAAO,CACrB,KAAU,EACV,IAAsB;IAEtB,MAAM,IAAI,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAC;IACxB,MAAM,KAAK,GAAG,CAAC,CAAS,EAAmB,EAAE;QAC3C,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO,EAAC,EAAE,EAAE,YAAG,CAAC,GAAG,CAAC,EAAE,EAAC,CAAC;QAC1B,CAAC;QACD,MAAM,IAAI,GAAoB;YAC5B,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YACf,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;SACnB,CAAC;QACF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACF,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Shape } from './Shape.js';
|
|
2
|
+
import { List } from './List.js';
|
|
3
|
+
/**
|
|
4
|
+
* Operator node for SHACL property paths that are NOT a simple predicate or a sequence:
|
|
5
|
+
* inverse (`sh:inversePath`), alternative (`sh:alternativePath` → an `rdf:List`), and the
|
|
6
|
+
* cardinality forms (`sh:zeroOrMorePath`/`sh:oneOrMorePath`/`sh:zeroOrOnePath`).
|
|
7
|
+
*
|
|
8
|
+
* Each operator edge is `contains` (the operand subtree is owned), and the node itself is
|
|
9
|
+
* `dependent`, so a property-shape's complex `sh:path` cascade-cleans on delete/replace.
|
|
10
|
+
* Operands are polymorphic (a predicate IRI, a nested `PathNode`, or a `List`), so no fixed
|
|
11
|
+
* `valueShape` is declared except for `alternativePath`, which is always an `rdf:List`.
|
|
12
|
+
*/
|
|
13
|
+
export declare class PathNode extends Shape {
|
|
14
|
+
static targetClass: import("../utils/NodeReference.js").NodeReferenceValue;
|
|
15
|
+
get inversePath(): unknown;
|
|
16
|
+
get alternativePath(): List;
|
|
17
|
+
get zeroOrMorePath(): unknown;
|
|
18
|
+
get oneOrMorePath(): unknown;
|
|
19
|
+
get zeroOrOnePath(): unknown;
|
|
20
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.PathNode = void 0;
|
|
13
|
+
/*
|
|
14
|
+
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
15
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
16
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
17
|
+
*/
|
|
18
|
+
const package_js_1 = require("../package.js");
|
|
19
|
+
const Shape_js_1 = require("./Shape.js");
|
|
20
|
+
const SHACL_js_1 = require("./SHACL.js");
|
|
21
|
+
const shacl_js_1 = require("../ontologies/shacl.js");
|
|
22
|
+
const linked_core_js_1 = require("../ontologies/linked-core.js");
|
|
23
|
+
const List_js_1 = require("./List.js");
|
|
24
|
+
/**
|
|
25
|
+
* Operator node for SHACL property paths that are NOT a simple predicate or a sequence:
|
|
26
|
+
* inverse (`sh:inversePath`), alternative (`sh:alternativePath` → an `rdf:List`), and the
|
|
27
|
+
* cardinality forms (`sh:zeroOrMorePath`/`sh:oneOrMorePath`/`sh:zeroOrOnePath`).
|
|
28
|
+
*
|
|
29
|
+
* Each operator edge is `contains` (the operand subtree is owned), and the node itself is
|
|
30
|
+
* `dependent`, so a property-shape's complex `sh:path` cascade-cleans on delete/replace.
|
|
31
|
+
* Operands are polymorphic (a predicate IRI, a nested `PathNode`, or a `List`), so no fixed
|
|
32
|
+
* `valueShape` is declared except for `alternativePath`, which is always an `rdf:List`.
|
|
33
|
+
*/
|
|
34
|
+
let PathNode = class PathNode extends Shape_js_1.Shape {
|
|
35
|
+
get inversePath() {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
get alternativePath() {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
get zeroOrMorePath() {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
get oneOrMorePath() {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
get zeroOrOnePath() {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
exports.PathNode = PathNode;
|
|
52
|
+
PathNode.targetClass = linked_core_js_1.coreOntology.PathNode;
|
|
53
|
+
__decorate([
|
|
54
|
+
(0, SHACL_js_1.objectProperty)({ path: shacl_js_1.shacl.inversePath, maxCount: 1, contains: true }),
|
|
55
|
+
__metadata("design:type", Object),
|
|
56
|
+
__metadata("design:paramtypes", [])
|
|
57
|
+
], PathNode.prototype, "inversePath", null);
|
|
58
|
+
__decorate([
|
|
59
|
+
(0, SHACL_js_1.objectProperty)({ path: shacl_js_1.shacl.alternativePath, maxCount: 1, shape: List_js_1.List, contains: true }),
|
|
60
|
+
__metadata("design:type", List_js_1.List),
|
|
61
|
+
__metadata("design:paramtypes", [])
|
|
62
|
+
], PathNode.prototype, "alternativePath", null);
|
|
63
|
+
__decorate([
|
|
64
|
+
(0, SHACL_js_1.objectProperty)({ path: shacl_js_1.shacl.zeroOrMorePath, maxCount: 1, contains: true }),
|
|
65
|
+
__metadata("design:type", Object),
|
|
66
|
+
__metadata("design:paramtypes", [])
|
|
67
|
+
], PathNode.prototype, "zeroOrMorePath", null);
|
|
68
|
+
__decorate([
|
|
69
|
+
(0, SHACL_js_1.objectProperty)({ path: shacl_js_1.shacl.oneOrMorePath, maxCount: 1, contains: true }),
|
|
70
|
+
__metadata("design:type", Object),
|
|
71
|
+
__metadata("design:paramtypes", [])
|
|
72
|
+
], PathNode.prototype, "oneOrMorePath", null);
|
|
73
|
+
__decorate([
|
|
74
|
+
(0, SHACL_js_1.objectProperty)({ path: shacl_js_1.shacl.zeroOrOnePath, maxCount: 1, contains: true }),
|
|
75
|
+
__metadata("design:type", Object),
|
|
76
|
+
__metadata("design:paramtypes", [])
|
|
77
|
+
], PathNode.prototype, "zeroOrOnePath", null);
|
|
78
|
+
exports.PathNode = PathNode = __decorate([
|
|
79
|
+
(0, package_js_1.linkedShape)({ dependent: true })
|
|
80
|
+
], PathNode);
|
|
81
|
+
//# sourceMappingURL=PathNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PathNode.js","sourceRoot":"","sources":["../../../src/shapes/PathNode.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;GAIG;AACH,8CAA0C;AAC1C,yCAAiC;AACjC,yCAA0C;AAC1C,qDAA6C;AAC7C,iEAA0D;AAC1D,uCAA+B;AAE/B;;;;;;;;;GASG;AAEI,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,gBAAK;IAGjC,IACI,WAAW;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACI,eAAe;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACI,cAAc;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACI,aAAa;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACI,aAAa;QACf,OAAO,IAAI,CAAC;IACd,CAAC;;AA1BU,4BAAQ;AACZ,oBAAW,GAAG,6BAAY,CAAC,QAAQ,AAAxB,CAAyB;AAE3C;IAAC,IAAA,yBAAc,EAAC,EAAC,IAAI,EAAE,gBAAK,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;;;2CAGtE;AAED;IAAC,IAAA,yBAAc,EAAC,EAAC,IAAI,EAAE,gBAAK,CAAC,eAAe,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,cAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;8BACjE,cAAI;;+CAE1B;AAED;IAAC,IAAA,yBAAc,EAAC,EAAC,IAAI,EAAE,gBAAK,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;;;8CAGzE;AAED;IAAC,IAAA,yBAAc,EAAC,EAAC,IAAI,EAAE,gBAAK,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;;;6CAGxE;AAED;IAAC,IAAA,yBAAc,EAAC,EAAC,IAAI,EAAE,gBAAK,CAAC,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;;;6CAGxE;mBA1BU,QAAQ;IADpB,IAAA,wBAAW,EAAC,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC;GAClB,QAAQ,CA2BpB"}
|
|
@@ -134,6 +134,11 @@ export interface ObjectPropertyShapeConfig extends PropertyShapeConfig {
|
|
|
134
134
|
* You need to provide a class that extends Shape.
|
|
135
135
|
*/
|
|
136
136
|
shape?: typeof Shape | [string, string];
|
|
137
|
+
/**
|
|
138
|
+
* Marks this property as *containment* (composition): the value(s) are owned by the subject
|
|
139
|
+
* and the delete/update cascade removes the owned subtree.
|
|
140
|
+
*/
|
|
141
|
+
contains?: boolean;
|
|
137
142
|
}
|
|
138
143
|
export interface PropertyShapeConfig {
|
|
139
144
|
/**
|
|
@@ -216,6 +221,15 @@ export declare class NodeShape extends Shape {
|
|
|
216
221
|
description?: string;
|
|
217
222
|
targetClass?: NodeReferenceValue;
|
|
218
223
|
extends?: NodeReferenceValue;
|
|
224
|
+
/**
|
|
225
|
+
* Composition marker: instances of this shape are *dependent* — they have no
|
|
226
|
+
* independent existence and may be cascade-deleted when reached through a `contains` property.
|
|
227
|
+
*/
|
|
228
|
+
dependent?: boolean;
|
|
229
|
+
/** sh:closed — target nodes with undeclared properties are invalid. */
|
|
230
|
+
closed?: boolean;
|
|
231
|
+
/** sh:ignoredProperties — extra properties permitted when the shape is closed. */
|
|
232
|
+
ignoredProperties?: NodeReferenceValue[];
|
|
219
233
|
private propertyShapes;
|
|
220
234
|
constructor(node?: string | NodeReferenceValue);
|
|
221
235
|
nodeRef?: NodeReferenceValue;
|
|
@@ -251,6 +265,11 @@ export declare class PropertyShape extends Shape {
|
|
|
251
265
|
defaultValue?: unknown;
|
|
252
266
|
sortBy?: PathExpr;
|
|
253
267
|
valueShape?: NodeReferenceValue;
|
|
268
|
+
/**
|
|
269
|
+
* Composition marker: the value(s) of this property are *owned* by the subject.
|
|
270
|
+
* The delete/update cascade follows this edge and removes the owned subtree.
|
|
271
|
+
*/
|
|
272
|
+
contains?: boolean;
|
|
254
273
|
parentNodeShape?: NodeShape;
|
|
255
274
|
constructor();
|
|
256
275
|
get label(): string;
|
package/lib/cjs/shapes/SHACL.js
CHANGED
|
@@ -421,6 +421,9 @@ function createPropertyShape(config, propertyKey, defaultNodeKind = null, shapeC
|
|
|
421
421
|
if (config.class) {
|
|
422
422
|
propertyShape.class = (0, NodeReference_js_1.toNodeReference)(config.class);
|
|
423
423
|
}
|
|
424
|
+
if (config.contains) {
|
|
425
|
+
propertyShape.contains = true;
|
|
426
|
+
}
|
|
424
427
|
if (config.equals) {
|
|
425
428
|
propertyShape.equalsConstraint = (0, NodeReference_js_1.toNodeReference)(config.equals);
|
|
426
429
|
}
|