All libraries added and working

main
jaxoncreed 2 years ago
parent 02f97e34f4
commit 44cdc476ea
  1. 33
      package-lock.json
  2. 3
      package.json
  3. 13
      packages/type-traverser/example/example.ts
  4. 2
      packages/type-traverser/package.json
  5. 6
      packages/type-traverser/test/integration/avatar/AvatarBrokenTransformer.ts
  6. 6
      packages/type-traverser/test/integration/avatar/AvatarErroringTransformer.ts
  7. 4
      packages/type-traverser/test/integration/avatar/AvatarTraverserDefinition.ts
  8. 2
      packages/type-traverser/test/integration/avatar/AvatarTraverserTypes.ts
  9. 6
      packages/type-traverser/test/integration/avatar/avatar.test.ts
  10. 2
      packages/type-traverser/test/integration/avatar/sampleData.ts
  11. 39
      packages/type-traverser/test/integration/shexj/ShexJSimplifier.ts
  12. 7
      packages/type-traverser/test/integration/shexj/ShexJTraverser.ts
  13. 296
      packages/type-traverser/test/integration/shexj/ShexJTraverserDefinition.ts
  14. 333
      packages/type-traverser/test/integration/shexj/ShexJTraverserTypes.ts
  15. 48
      packages/type-traverser/test/integration/shexj/shexj.test.ts
  16. 4836
      packages/type-traverser/test/integration/shexj/testShapes.ts

33
package-lock.json generated

@ -5,6 +5,7 @@
"packages": { "packages": {
"": { "": {
"name": "root", "name": "root",
"hasInstallScript": true,
"workspaces": [ "workspaces": [
"packages/*" "packages/*"
], ],
@ -32514,6 +32515,7 @@
} }
}, },
"packages/traverser-shexj": { "packages/traverser-shexj": {
"name": "@ldo/traverser-shexj",
"version": "0.0.0", "version": "0.0.0",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@ -33662,6 +33664,7 @@
} }
}, },
"packages/type-traverser": { "packages/type-traverser": {
"name": "@ldo/type-traverser",
"version": "0.0.0", "version": "0.0.0",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@ -33669,27 +33672,12 @@
}, },
"devDependencies": { "devDependencies": {
"@types/jest": "^27.4.0", "@types/jest": "^27.4.0",
"@types/shexj": "^2.1.1",
"@types/uuid": "^8.3.4", "@types/uuid": "^8.3.4",
"jest": "^27.4.7", "jest": "^27.4.7",
"jsonld2graphobject": "^0.0.3",
"ts-jest": "^27.1.2", "ts-jest": "^27.1.2",
"ts-node": "^10.4.0" "ts-node": "^10.4.0"
} }
}, },
"packages/type-traverser/node_modules/jsonld2graphobject": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/jsonld2graphobject/-/jsonld2graphobject-0.0.3.tgz",
"integrity": "sha512-Jn3Zdh5zfzsGZvDZVindwpY/W3cdFJ3l1FNB0ngBa79i1tcLGP7QxBYlUoA4zbjzBSJlK4X6/qicy2zF9cS/IA==",
"dev": true,
"dependencies": {
"@rdfjs/types": "^1.0.1",
"@types/jsonld": "^1.5.6",
"jsonld": "^5.2.0",
"jsonld-context-parser": "^2.1.5",
"uuid": "^8.3.2"
}
},
"packages/type-traverser/node_modules/ts-jest": { "packages/type-traverser/node_modules/ts-jest": {
"version": "27.1.5", "version": "27.1.5",
"resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.5.tgz", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.5.tgz",
@ -39899,28 +39887,13 @@
"version": "file:packages/type-traverser", "version": "file:packages/type-traverser",
"requires": { "requires": {
"@types/jest": "^27.4.0", "@types/jest": "^27.4.0",
"@types/shexj": "^2.1.1",
"@types/uuid": "^8.3.4", "@types/uuid": "^8.3.4",
"jest": "^27.4.7", "jest": "^27.4.7",
"jsonld2graphobject": "^0.0.3",
"ts-jest": "^27.1.2", "ts-jest": "^27.1.2",
"ts-node": "^10.4.0", "ts-node": "^10.4.0",
"uuid": "^8.3.2" "uuid": "^8.3.2"
}, },
"dependencies": { "dependencies": {
"jsonld2graphobject": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/jsonld2graphobject/-/jsonld2graphobject-0.0.3.tgz",
"integrity": "sha512-Jn3Zdh5zfzsGZvDZVindwpY/W3cdFJ3l1FNB0ngBa79i1tcLGP7QxBYlUoA4zbjzBSJlK4X6/qicy2zF9cS/IA==",
"dev": true,
"requires": {
"@rdfjs/types": "^1.0.1",
"@types/jsonld": "^1.5.6",
"jsonld": "^5.2.0",
"jsonld-context-parser": "^2.1.5",
"uuid": "^8.3.2"
}
},
"ts-jest": { "ts-jest": {
"version": "27.1.5", "version": "27.1.5",
"resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.5.tgz", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.5.tgz",

@ -8,7 +8,8 @@
"test": "lerna run test", "test": "lerna run test",
"build": "lerna run build", "build": "lerna run build",
"demo-react": "lerna run start --scope @ldo/demo-react", "demo-react": "lerna run start --scope @ldo/demo-react",
"lint": "lerna run lint" "lint": "lerna run lint",
"postinstall": "npm run build"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^20.5.7", "@types/node": "^20.5.7",

@ -1,4 +1,5 @@
import { Traverser, TraverserDefinition, ValidateTraverserTypes } from "../src"; import type { TraverserDefinition, ValidateTraverserTypes } from "../src";
import { Traverser } from "../src";
async function run() { async function run() {
/** /**
@ -99,7 +100,7 @@ async function run() {
* Instantiate the Traverser * Instantiate the Traverser
*/ */
const avatarTraverser = new Traverser<AvatarTraverserTypes>( const avatarTraverser = new Traverser<AvatarTraverserTypes>(
avatarTraverserDefinition avatarTraverserDefinition,
); );
/** /**
@ -133,7 +134,7 @@ async function run() {
* Run the visitor on data * Run the visitor on data
*/ */
console.log( console.log(
"############################## Visitor Logs ##############################" "############################## Visitor Logs ##############################",
); );
await avatarVisitor.visit(aang, "Bender", undefined); await avatarVisitor.visit(aang, "Bender", undefined);
@ -156,7 +157,7 @@ async function run() {
* Run the counting visitor * Run the counting visitor
*/ */
console.log( console.log(
"############################## Found Number of Benders Using Visitor ##############################" "############################## Found Number of Benders Using Visitor ##############################",
); );
const countContext: AvatarCountingVisitorContext = { numberOfBenders: 0 }; const countContext: AvatarCountingVisitorContext = { numberOfBenders: 0 };
await avatarCountingVisitor.visit(aang, "Bender", countContext); await avatarCountingVisitor.visit(aang, "Bender", countContext);
@ -221,7 +222,7 @@ async function run() {
item, item,
getTransformedChildren, getTransformedChildren,
setReturnPointer, setReturnPointer,
_context _context,
) => { ) => {
const personToReturn: ActionablePerson = {} as ActionablePerson; const personToReturn: ActionablePerson = {} as ActionablePerson;
setReturnPointer(personToReturn); setReturnPointer(personToReturn);
@ -236,7 +237,7 @@ async function run() {
* Run the Transformer * Run the Transformer
*/ */
console.log( console.log(
"############################## AvatarTraverser DoAction ##############################" "############################## AvatarTraverser DoAction ##############################",
); );
const result = await avatarTransformer.transform(aang, "Bender", undefined); const result = await avatarTransformer.transform(aang, "Bender", undefined);
result.doAction(); result.doAction();

@ -22,10 +22,8 @@
"homepage": "https://github.com/o-development/type-traverser#readme", "homepage": "https://github.com/o-development/type-traverser#readme",
"devDependencies": { "devDependencies": {
"@types/jest": "^27.4.0", "@types/jest": "^27.4.0",
"@types/shexj": "^2.1.1",
"@types/uuid": "^8.3.4", "@types/uuid": "^8.3.4",
"jest": "^27.4.7", "jest": "^27.4.7",
"jsonld2graphobject": "^0.0.3",
"ts-jest": "^27.1.2", "ts-jest": "^27.1.2",
"ts-node": "^10.4.0" "ts-node": "^10.4.0"
}, },

@ -1,9 +1,9 @@
import { Traverser } from "../../../lib"; import { Traverser } from "../../../src";
import { avatarTraverserDefinition } from "./AvatarTraverserDefinition"; import { avatarTraverserDefinition } from "./AvatarTraverserDefinition";
import { AvatarTraverserTypes } from "./AvatarTraverserTypes"; import type { AvatarTraverserTypes } from "./AvatarTraverserTypes";
const avatarTraverser = new Traverser<AvatarTraverserTypes>( const avatarTraverser = new Traverser<AvatarTraverserTypes>(
avatarTraverserDefinition avatarTraverserDefinition,
); );
interface ActionablePerson { interface ActionablePerson {

@ -1,9 +1,9 @@
import { Traverser } from "../../../lib"; import { Traverser } from "../../../src";
import { avatarTraverserDefinition } from "./AvatarTraverserDefinition"; import { avatarTraverserDefinition } from "./AvatarTraverserDefinition";
import { AvatarTraverserTypes } from "./AvatarTraverserTypes"; import type { AvatarTraverserTypes } from "./AvatarTraverserTypes";
const avatarTraverser = new Traverser<AvatarTraverserTypes>( const avatarTraverser = new Traverser<AvatarTraverserTypes>(
avatarTraverserDefinition avatarTraverserDefinition,
); );
interface ActionablePerson { interface ActionablePerson {

@ -1,5 +1,5 @@
import { TraverserDefinition } from "../../../lib"; import type { TraverserDefinition } from "../../../src";
import { AvatarTraverserTypes, Bender } from "./AvatarTraverserTypes"; import type { AvatarTraverserTypes, Bender } from "./AvatarTraverserTypes";
export const avatarTraverserDefinition: TraverserDefinition<AvatarTraverserTypes> = export const avatarTraverserDefinition: TraverserDefinition<AvatarTraverserTypes> =
{ {

@ -1,4 +1,4 @@
import { ValidateTraverserTypes } from "../../../lib"; import type { ValidateTraverserTypes } from "../../../src";
/** /**
* Original Type Definition * Original Type Definition

@ -5,15 +5,15 @@ import { aang } from "./sampleData";
describe("Avatar", () => { describe("Avatar", () => {
it("Throws an error before entering an infinite loop", async () => { it("Throws an error before entering an infinite loop", async () => {
await expect( await expect(
BrokenAvatarTransformer.transform(aang, "Bender", undefined) BrokenAvatarTransformer.transform(aang, "Bender", undefined),
).rejects.toThrow( ).rejects.toThrow(
`Circular dependency found. Use the 'setReturnPointer' function. The loop includes the 'Bender' type` `Circular dependency found. Use the 'setReturnPointer' function. The loop includes the 'Bender' type`,
); );
}); });
it("Bubbles errors", async () => { it("Bubbles errors", async () => {
await expect( await expect(
AvatarErroringTransformer.transform(aang, "Bender", undefined) AvatarErroringTransformer.transform(aang, "Bender", undefined),
).rejects.toThrow("No Non Benders Allowed"); ).rejects.toThrow("No Non Benders Allowed");
}); });
}); });

@ -1,4 +1,4 @@
import { Bender, NonBender } from "./AvatarTraverserTypes"; import type { Bender, NonBender } from "./AvatarTraverserTypes";
/** /**
* Raw Data to Traverse * Raw Data to Traverse
*/ */

@ -1,39 +0,0 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
import { ShexJTraverser } from "./ShexJTraverser";
interface ShapeReturn {
id: any;
closed: any;
extra: any[];
expression: any;
semActs: any[];
annotations: any[];
}
export const ShexJStringTransformer = ShexJTraverser.createTransformer({
Shape: {
transformer: async (
shape,
getTransformedChildren,
setReturnPointer
): Promise<ShapeReturn> => {
const toReturn: Partial<{
id: any;
closed: any;
extra: any[];
expression: any;
semActs: any[];
annotations: any[];
}> = {};
setReturnPointer(toReturn as ShapeReturn);
const transformedChildren = await getTransformedChildren();
toReturn.id = transformedChildren.id;
toReturn.annotations = transformedChildren.annotations;
toReturn.extra = transformedChildren.extra;
toReturn.expression = transformedChildren.expression;
toReturn.semActs = transformedChildren.semActs;
toReturn.annotations = transformedChildren.annotations;
return toReturn as ShapeReturn;
},
},
});

@ -1,7 +0,0 @@
import { ShexJTraverserDefinition } from "./ShexJTraverserDefinition";
import { ShexJTraverserTypes } from "./ShexJTraverserTypes";
import { Traverser } from "../../../lib/Traverser";
export const ShexJTraverser = new Traverser<ShexJTraverserTypes>(
ShexJTraverserDefinition
);

@ -1,296 +0,0 @@
import { shapeExpr, valueSetValue } from "shexj";
import { ShexJTraverserTypes } from "./ShexJTraverserTypes";
import { TraverserDefinition } from "../../../lib";
export const ShexJTraverserDefinition: TraverserDefinition<ShexJTraverserTypes> =
{
Schema: {
kind: "interface",
properties: {
startActs: "SemAct",
start: "shapeExpr",
imports: "IRIREF",
shapes: "shapeExpr",
},
},
shapeExpr: {
kind: "union",
selector: (item: shapeExpr) => {
if (typeof item === "string") {
return "shapeExprRef";
}
return item.type;
},
},
ShapeOr: {
kind: "interface",
properties: {
id: "shapeExprRef",
shapeExprs: "shapeExpr",
},
},
ShapeAnd: {
kind: "interface",
properties: {
id: "shapeExprRef",
shapeExprs: "shapeExpr",
},
},
ShapeNot: {
kind: "interface",
properties: {
id: "shapeExprRef",
shapeExpr: "shapeExpr",
},
},
ShapeExternal: {
kind: "interface",
properties: {
id: "shapeExprRef",
},
},
shapeExprRef: {
kind: "primitive",
},
NodeConstraint: {
kind: "interface",
properties: {
id: "shapeExprRef",
datatype: "IRIREF",
values: "valueSetValue",
length: "INTEGER",
minlength: "INTEGER",
maxlength: "INTEGER",
pattern: "STRING",
flags: "STRING",
mininclusive: "numericLiteral",
minexclusive: "numericLiteral",
maxinclusive: "numericLiteral",
maxexclusive: "numericLiteral",
totaldigits: "INTEGER",
fractiondigits: "INTEGER",
},
},
numericLiteral: {
kind: "primitive",
},
valueSetValue: {
kind: "union",
selector: (item: valueSetValue) => {
if (typeof item === "string") {
return "objectValue";
} else if (
item.type &&
[
"IriStem",
"IriStemRange",
"LiteralStem",
"LiteralStemRange",
"Language",
"LanguageStem",
"LanguageStemRange",
].includes(item.type)
) {
return item.type as
| "IriStem"
| "IriStemRange"
| "LiteralStem"
| "LiteralStemRange"
| "Language"
| "LanguageStem"
| "LanguageStemRange";
} else {
return "objectValue";
}
},
},
objectValue: {
kind: "union",
selector: (item) => {
return typeof item === "string" ? "IRIREF" : "ObjectLiteral";
},
},
ObjectLiteral: {
kind: "interface",
properties: {
value: "STRING",
language: "STRING",
type: "STRING",
},
},
IriStem: {
kind: "interface",
properties: {
stem: "IRIREF",
},
},
IriStemRange: {
kind: "interface",
properties: {
stem: "IriStemRangeStem",
exclusions: "IriStemRangeExclusions",
},
},
IriStemRangeStem: {
kind: "union",
selector: (item) => {
return typeof item === "string" ? "IRIREF" : "Wildcard";
},
},
IriStemRangeExclusions: {
kind: "union",
selector: (item) => {
return typeof item === "string" ? "IRIREF" : "IriStem";
},
},
LiteralStem: {
kind: "interface",
properties: {
stem: "STRING",
},
},
LiteralStemRange: {
kind: "interface",
properties: {
stem: "LiteralStemRangeStem",
exclusions: "LiteralStemRangeExclusions",
},
},
LiteralStemRangeStem: {
kind: "union",
selector: (item) => {
return typeof item === "string" ? "STRING" : "Wildcard";
},
},
LiteralStemRangeExclusions: {
kind: "union",
selector: (item) => {
return typeof item === "string" ? "STRING" : "LiteralStem";
},
},
Language: {
kind: "interface",
properties: {
languageTag: "LANGTAG",
},
},
LanguageStem: {
kind: "interface",
properties: {
stem: "LANGTAG",
},
},
LanguageStemRange: {
kind: "interface",
properties: {
stem: "LanguageStemRangeStem",
exclusions: "LanguageStemRangeExclusions",
},
},
LanguageStemRangeStem: {
kind: "union",
selector: (item) => {
return typeof item === "string" ? "LANGTAG" : "Wildcard";
},
},
LanguageStemRangeExclusions: {
kind: "union",
selector: (item) => {
return typeof item === "string" ? "LANGTAG" : "LanguageStem";
},
},
Wildcard: {
kind: "interface",
properties: {},
},
Shape: {
kind: "interface",
properties: {
id: "shapeExprRef",
closed: "BOOL",
extra: "IRIREF",
expression: "tripleExpr",
semActs: "SemAct",
annotations: "Annotation",
},
},
tripleExpr: {
kind: "union",
selector: (item) => {
if (typeof item === "string") {
return "tripleExprRef";
}
return item.type;
},
},
EachOf: {
kind: "interface",
properties: {
expressions: "tripleExpr",
id: "shapeExprRef",
min: "INTEGER",
max: "INTEGER",
semActs: "SemAct",
annotations: "Annotation",
},
},
OneOf: {
kind: "interface",
properties: {
expressions: "tripleExpr",
id: "shapeExprRef",
min: "INTEGER",
max: "INTEGER",
semActs: "SemAct",
annotations: "Annotation",
},
},
TripleConstraint: {
kind: "interface",
properties: {
inverse: "BOOL",
predicate: "IRIREF",
valueExpr: "shapeExpr",
id: "shapeExprRef",
min: "INTEGER",
max: "INTEGER",
semActs: "SemAct",
annotations: "Annotation",
},
},
tripleExprRef: {
kind: "primitive",
},
SemAct: {
kind: "interface",
properties: {
name: "IRIREF",
code: "STRING",
},
},
Annotation: {
kind: "interface",
properties: {
predicate: "IRI",
object: "objectValue",
},
},
IRIREF: {
kind: "primitive",
},
STRING: {
kind: "primitive",
},
LANGTAG: {
kind: "primitive",
},
INTEGER: {
kind: "primitive",
},
BOOL: {
kind: "primitive",
},
IRI: {
kind: "primitive",
},
};

@ -1,333 +0,0 @@
import {
Annotation,
EachOf,
IriStem,
Language,
LanguageStem,
LanguageStemRange,
LiteralStem,
LiteralStemRange,
NodeConstraint,
ObjectLiteral,
OneOf,
Schema,
SemAct,
Shape,
ShapeAnd,
ShapeExternal,
ShapeNot,
ShapeOr,
Wildcard,
shapeExpr,
valueSetValue,
tripleExpr,
TripleConstraint,
shapeExprRef,
IRIREF,
STRING,
LANGTAG,
INTEGER,
numericLiteral,
BOOL,
tripleExprRef,
IRI,
objectValue,
} from "shexj";
import { ValidateTraverserTypes } from "../../../lib";
export type ShexJTraverserTypes = ValidateTraverserTypes<{
Schema: {
kind: "interface";
type: Schema;
properties: {
startActs: "SemAct";
start: "shapeExpr";
imports: "IRIREF";
shapes: "shapeExpr";
};
};
shapeExpr: {
kind: "union";
type: shapeExpr;
typeNames:
| "ShapeOr"
| "ShapeAnd"
| "ShapeNot"
| "NodeConstraint"
| "Shape"
| "ShapeExternal"
| "shapeExprRef";
};
ShapeOr: {
kind: "interface";
type: ShapeOr;
properties: {
id: "shapeExprRef";
shapeExprs: "shapeExpr";
};
};
ShapeAnd: {
kind: "interface";
type: ShapeAnd;
properties: {
id: "shapeExprRef";
shapeExprs: "shapeExpr";
};
};
ShapeNot: {
kind: "interface";
type: ShapeNot;
properties: {
id: "shapeExprRef";
shapeExpr: "shapeExpr";
};
};
ShapeExternal: {
kind: "interface";
type: ShapeExternal;
properties: {
id: "shapeExprRef";
};
};
shapeExprRef: {
kind: "primitive";
type: shapeExprRef;
};
NodeConstraint: {
kind: "interface";
type: NodeConstraint;
properties: {
id: "shapeExprRef";
datatype: "IRIREF";
values: "valueSetValue";
length: "INTEGER";
minlength: "INTEGER";
maxlength: "INTEGER";
pattern: "STRING";
flags: "STRING";
mininclusive: "numericLiteral";
minexclusive: "numericLiteral";
maxinclusive: "numericLiteral";
maxexclusive: "numericLiteral";
totaldigits: "INTEGER";
fractiondigits: "INTEGER";
};
};
numericLiteral: {
kind: "primitive";
type: numericLiteral;
};
valueSetValue: {
kind: "union";
type: valueSetValue;
typeNames:
| "objectValue"
| "IriStem"
| "IriStemRange"
| "LiteralStem"
| "LiteralStemRange"
| "Language"
| "LanguageStem"
| "LanguageStemRange";
};
objectValue: {
kind: "union";
type: objectValue;
typeNames: "IRIREF" | "ObjectLiteral";
};
ObjectLiteral: {
kind: "interface";
type: ObjectLiteral;
properties: {
value: "STRING";
language: "STRING";
type: "STRING";
};
};
IriStem: {
kind: "interface";
type: IriStem;
properties: {
stem: "IRIREF";
};
};
IriStemRange: {
kind: "interface";
type: IriStem;
properties: {
stem: "IriStemRangeStem";
exclusions: "IriStemRangeExclusions";
};
};
IriStemRangeStem: {
kind: "union";
type: IRIREF | Wildcard;
typeNames: "IRIREF" | "Wildcard";
};
IriStemRangeExclusions: {
kind: "union";
type: IRIREF | IriStem;
typeNames: "IRIREF" | "IriStem";
};
LiteralStem: {
kind: "interface";
type: LiteralStem;
properties: {
stem: "STRING";
};
};
LiteralStemRange: {
kind: "interface";
type: LiteralStemRange;
properties: {
stem: "LiteralStemRangeStem";
exclusions: "LiteralStemRangeExclusions";
};
};
LiteralStemRangeStem: {
kind: "union";
type: STRING | Wildcard;
typeNames: "STRING" | "Wildcard";
};
LiteralStemRangeExclusions: {
kind: "union";
type: STRING | LiteralStem;
typeNames: "STRING" | "LiteralStem";
};
Language: {
kind: "interface";
type: Language;
properties: {
languageTag: "LANGTAG";
};
};
LanguageStem: {
kind: "interface";
type: LanguageStem;
properties: {
stem: "LANGTAG";
};
};
LanguageStemRange: {
kind: "interface";
type: LanguageStemRange;
properties: {
stem: "LanguageStemRangeStem";
exclusions: "LanguageStemRangeExclusions";
};
};
LanguageStemRangeStem: {
kind: "union";
type: LANGTAG | Wildcard;
typeNames: "LANGTAG" | "Wildcard";
};
LanguageStemRangeExclusions: {
kind: "union";
type: LANGTAG | LanguageStem;
typeNames: "LANGTAG" | "LanguageStem";
};
Wildcard: {
kind: "interface";
type: Wildcard;
properties: Record<string, never>;
};
Shape: {
kind: "interface";
type: Shape;
properties: {
id: "shapeExprRef";
closed: "BOOL";
extra: "IRIREF";
expression: "tripleExpr";
semActs: "SemAct";
annotations: "Annotation";
};
};
tripleExpr: {
kind: "union";
type: tripleExpr;
typeNames: "tripleExprRef" | "EachOf" | "OneOf" | "TripleConstraint";
};
EachOf: {
kind: "interface";
type: EachOf;
properties: {
expressions: "tripleExpr";
id: "shapeExprRef";
min: "INTEGER";
max: "INTEGER";
semActs: "SemAct";
annotations: "Annotation";
};
};
OneOf: {
kind: "interface";
type: OneOf;
properties: {
expressions: "tripleExpr";
id: "shapeExprRef";
min: "INTEGER";
max: "INTEGER";
semActs: "SemAct";
annotations: "Annotation";
};
};
TripleConstraint: {
kind: "interface";
type: TripleConstraint;
properties: {
inverse: "BOOL";
predicate: "IRIREF";
valueExpr: "shapeExpr";
id: "shapeExprRef";
min: "INTEGER";
max: "INTEGER";
semActs: "SemAct";
annotations: "Annotation";
};
};
tripleExprRef: {
kind: "primitive";
type: tripleExprRef;
};
SemAct: {
kind: "interface";
type: SemAct;
properties: {
name: "IRIREF";
code: "STRING";
};
};
Annotation: {
kind: "interface";
type: Annotation;
properties: {
predicate: "IRI";
object: "objectValue";
};
};
IRIREF: {
kind: "primitive";
type: IRIREF;
};
STRING: {
kind: "primitive";
type: STRING;
};
LANGTAG: {
kind: "primitive";
type: LANGTAG;
};
INTEGER: {
kind: "primitive";
type: INTEGER;
};
BOOL: {
kind: "primitive";
type: BOOL;
};
IRI: {
kind: "primitive";
type: IRI;
};
}>;

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save