@traqula/rules-sparql-1-2 0.0.1-alpha.141 → 0.0.1-alpha.145
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/lib/grammar.d.ts +5 -5
- package/lib/grammar.js +21 -18
- package/lib/grammar.js.map +1 -1
- package/lib/index.cjs +94 -97
- package/lib/sparql12Types.d.ts +0 -8
- package/lib/sparql12Types.js.map +1 -1
- package/package.json +4 -4
package/lib/grammar.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import type { RuleDefReturn, RuleDef } from '@traqula/core';
|
|
8
8
|
import { gram as S11 } from '@traqula/rules-sparql-1-1';
|
|
9
9
|
import type * as T11 from '@traqula/rules-sparql-1-1';
|
|
10
|
-
import type { BaseQuadTerm, Expression, IGraphNode, Term, Triple
|
|
10
|
+
import type { BaseQuadTerm, Expression, IGraphNode, Term, Triple } from './sparql12Types';
|
|
11
11
|
/**
|
|
12
12
|
* [[56]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleBlock) Used by triplesSameSubject
|
|
13
13
|
*/
|
|
@@ -43,12 +43,12 @@ export declare const triplesSameSubjectPath: RuleDef<"triplesSameSubjectPath", T
|
|
|
43
43
|
* OVERRIDING RULE: {@link S11.object}.
|
|
44
44
|
* [[84]](https://www.w3.org/TR/sparql12-query/#rObject) Used by ObjectList
|
|
45
45
|
*/
|
|
46
|
-
export declare const object: RuleDef<"object",
|
|
46
|
+
export declare const object: RuleDef<"object", Triple[], [Term, import("@rdfjs/types").Variable | T11.IriTerm<string> | T11.PropertyPath]>;
|
|
47
47
|
/**
|
|
48
48
|
* OVERRIDING RULE: {@link S11.objectPath}.
|
|
49
49
|
* [[91]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubjectPath) Used by ObjectListPath
|
|
50
50
|
*/
|
|
51
|
-
export declare const objectPath: RuleDef<"objectPath",
|
|
51
|
+
export declare const objectPath: RuleDef<"objectPath", Triple[], [Term, import("@rdfjs/types").Variable | T11.IriTerm<string> | T11.PropertyPath]>;
|
|
52
52
|
/**
|
|
53
53
|
* [[107]](https://www.w3.org/TR/sparql12-query/#rAnnotationPath)
|
|
54
54
|
*/
|
|
@@ -60,11 +60,11 @@ export declare const annotation: RuleDef<"annotation", IGraphNode[]>;
|
|
|
60
60
|
/**
|
|
61
61
|
* [[108]](https://www.w3.org/TR/sparql12-query/#rAnnotationBlockPath)
|
|
62
62
|
*/
|
|
63
|
-
export declare const annotationBlockPath: RuleDef<"annotationBlockPath",
|
|
63
|
+
export declare const annotationBlockPath: RuleDef<"annotationBlockPath", Triple[], [Term]>;
|
|
64
64
|
/**
|
|
65
65
|
* [[110]](https://www.w3.org/TR/sparql12-query/#rAnnotationBlock)
|
|
66
66
|
*/
|
|
67
|
-
export declare const annotationBlock: RuleDef<"annotationBlock",
|
|
67
|
+
export declare const annotationBlock: RuleDef<"annotationBlock", Triple[], [Term]>;
|
|
68
68
|
/**
|
|
69
69
|
* OVERRIDING RULE: {@link S11.graphNode}.
|
|
70
70
|
* [[111]](https://www.w3.org/TR/sparql12-query/#rGraphNode)
|
package/lib/grammar.js
CHANGED
|
@@ -13,10 +13,10 @@ function reifiedTripleBlockImpl(name, allowPath) {
|
|
|
13
13
|
name,
|
|
14
14
|
impl: ({ ACTION, SUBRULE }) => () => {
|
|
15
15
|
const triple = SUBRULE(reifiedTriple);
|
|
16
|
-
const properties = SUBRULE(allowPath ? S11.propertyListPath : S11.propertyList);
|
|
16
|
+
const properties = SUBRULE(allowPath ? S11.propertyListPath : S11.propertyList, triple.node);
|
|
17
17
|
return ACTION(() => [
|
|
18
18
|
...triple.triples,
|
|
19
|
-
...properties
|
|
19
|
+
...properties,
|
|
20
20
|
]);
|
|
21
21
|
},
|
|
22
22
|
};
|
|
@@ -89,24 +89,24 @@ export const triplesSameSubjectPath = triplesSameSubjectImpl('triplesSameSubject
|
|
|
89
89
|
function objectImpl(name, allowPaths) {
|
|
90
90
|
return {
|
|
91
91
|
name,
|
|
92
|
-
impl: ({ ACTION, SUBRULE, context }) => () => {
|
|
92
|
+
impl: ({ ACTION, SUBRULE, context }) => (subject, predicate) => {
|
|
93
93
|
const objectVal = SUBRULE(allowPaths ? graphNodePath : graphNode);
|
|
94
94
|
const annotationVal = SUBRULE(allowPaths ? annotationPath : annotation);
|
|
95
|
+
// This rule knows the annotation. And for each annotation node, we need to make a triple:
|
|
96
|
+
// <annotationNode, reifies, parsedSubjectAndObject>
|
|
95
97
|
return ACTION(() => {
|
|
98
|
+
if ('type' in predicate && predicate.type === 'path' && annotationVal.length > 0) {
|
|
99
|
+
throw new Error('Note 17 violation');
|
|
100
|
+
}
|
|
96
101
|
const result = [
|
|
97
102
|
// You parse the object
|
|
98
|
-
|
|
103
|
+
{ subject, predicate, object: objectVal.node },
|
|
99
104
|
// You might get some additional triples from parsing the object (like when it's a collection)
|
|
100
|
-
...objectVal.triples
|
|
105
|
+
...objectVal.triples,
|
|
101
106
|
];
|
|
102
107
|
for (const annotation of annotationVal) {
|
|
103
|
-
result.push((
|
|
104
|
-
|
|
105
|
-
throw new Error('Note 17 violation');
|
|
106
|
-
}
|
|
107
|
-
return context.dataFactory.quad(annotation.node, context.dataFactory.namedNode(CommonIRIs.REIFIES), context.dataFactory.quad(subject, predicate, objectVal.node));
|
|
108
|
-
});
|
|
109
|
-
result.push(...annotation.triples.map(triple => () => triple));
|
|
108
|
+
result.push(context.dataFactory.quad(annotation.node, context.dataFactory.namedNode(CommonIRIs.REIFIES), context.dataFactory.quad(subject, predicate, objectVal.node)));
|
|
109
|
+
result.push(...annotation.triples);
|
|
110
110
|
}
|
|
111
111
|
return result;
|
|
112
112
|
});
|
|
@@ -143,15 +143,18 @@ function annotationImpl(name, allowPaths) {
|
|
|
143
143
|
currentReifier = node;
|
|
144
144
|
} },
|
|
145
145
|
{ ALT: () => {
|
|
146
|
-
|
|
147
|
-
ACTION(() => {
|
|
146
|
+
let node;
|
|
147
|
+
const block = SUBRULE(allowPaths ? annotationBlockPath : annotationBlock, ACTION(() => {
|
|
148
148
|
if (currentReifier === undefined && !context.parseMode.has(S11.canCreateBlankNodes)) {
|
|
149
149
|
throw new Error('Cannot create blanknodes in current parse mode');
|
|
150
150
|
}
|
|
151
|
-
|
|
151
|
+
node = currentReifier ?? context.dataFactory.blankNode();
|
|
152
|
+
return node;
|
|
153
|
+
}));
|
|
154
|
+
ACTION(() => {
|
|
152
155
|
annotations.push({
|
|
153
156
|
node,
|
|
154
|
-
triples: block
|
|
157
|
+
triples: block,
|
|
155
158
|
});
|
|
156
159
|
currentReifier = undefined;
|
|
157
160
|
});
|
|
@@ -176,9 +179,9 @@ export const annotation = annotationImpl('annotation', false);
|
|
|
176
179
|
function annotationBlockImpl(name, allowPaths) {
|
|
177
180
|
return {
|
|
178
181
|
name,
|
|
179
|
-
impl: ({ SUBRULE, CONSUME }) => () => {
|
|
182
|
+
impl: ({ SUBRULE, CONSUME }) => (subject) => {
|
|
180
183
|
CONSUME(l12.annotationOpen);
|
|
181
|
-
const res = SUBRULE(allowPaths ? S11.propertyListPathNotEmpty : S11.propertyListNotEmpty);
|
|
184
|
+
const res = SUBRULE(allowPaths ? S11.propertyListPathNotEmpty : S11.propertyListNotEmpty, subject);
|
|
182
185
|
CONSUME(l12.annotationClose);
|
|
183
186
|
return res;
|
|
184
187
|
},
|
package/lib/grammar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grammar.js","sourceRoot":"","sources":["grammar.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * This module will define patch rules that should be used in combination with the sparql11 grammar to create\n * a sparql12 grammar.\n * Rules in this module redefine the return type of core grammar rules.\n * It is therefore essential that the parser retypes the rules from the core grammar.\n */\n\nimport type { DirectionalLanguage } from '@rdfjs/types';\nimport type { NamedNode } from 'rdf-data-factory';\nimport * as l12 from './lexer';\nimport type { RuleDefReturn, RuleDef } from '@traqula/core';\nimport { funcExpr1, funcExpr3 } from '@traqula/rules-sparql-1-1';\nimport { gram as S11, lex as l11 } from '@traqula/rules-sparql-1-1';\nimport type * as T11 from '@traqula/rules-sparql-1-1';\nimport { CommonIRIs } from '@traqula/core';\nimport type {\n BaseQuadTerm,\n Expression,\n IGraphNode,\n Term,\n Triple,\n TripleCreatorS,\n TripleCreatorSP,\n} from './sparql12Types';\n\nfunction reifiedTripleBlockImpl<T extends string>(name: T, allowPath: boolean): RuleDef<T, Triple[]> {\n return <const> {\n name,\n impl: ({ ACTION, SUBRULE }) => () => {\n const triple = SUBRULE(reifiedTriple);\n const properties = SUBRULE(allowPath ? S11.propertyListPath : S11.propertyList);\n\n return ACTION(() => [\n ...triple.triples,\n ...properties.map(partial => partial({ subject: triple.node })),\n ]);\n },\n };\n}\n/**\n * [[56]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleBlock) Used by triplesSameSubject\n */\nexport const reifiedTripleBlock = reifiedTripleBlockImpl('reifiedTripleBlock', false);\n/**\n * [[57]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleBlockPath) Used by TriplesSameSubjectPath\n */\nexport const reifiedTripleBlockPath = reifiedTripleBlockImpl('reifiedTripleBlockPath', true);\n\n/**\n * OVERRIDING RULE: {@link S11.dataBlockValue}.\n * [[67]](https://www.w3.org/TR/sparql12-query/#rDataBlockValue)\n */\nexport const dataBlockValue:\nRuleDef<'dataBlockValue', RuleDefReturn<typeof S11.dataBlockValue> | BaseQuadTerm> = <const> {\n name: 'dataBlockValue',\n impl: $ => () => $.OR2<RuleDefReturn<typeof S11.dataBlockValue> | BaseQuadTerm>([\n { ALT: () => S11.dataBlockValue.impl($)() },\n { ALT: () => $.SUBRULE(tripleTermData) },\n ]),\n};\n\n/**\n * [[68]](https://www.w3.org/TR/sparql12-query/#rReifier)\n */\nexport const reifier: RuleDef<'reifier', T11.VariableTerm | T11.IriTerm | T11.BlankTerm> = <const> {\n name: 'reifier',\n impl: ({ ACTION, CONSUME, SUBRULE, OPTION, context }) => () => {\n CONSUME(l12.tilde);\n const reifier = OPTION(() => SUBRULE(varOrReifierId));\n return ACTION(() => {\n if (reifier === undefined && !context.parseMode.has(S11.canCreateBlankNodes)) {\n throw new Error('Cannot create blanknodes in current parse mode');\n }\n return reifier ?? context.dataFactory.blankNode();\n });\n },\n};\n\n/**\n * [[68]](https://www.w3.org/TR/sparql12-query/#rVarOrReifierId)\n */\nexport const varOrReifierId: RuleDef<'varOrReifierId', T11.VariableTerm | T11.IriTerm | T11.BlankTerm> = <const> {\n name: 'varOrReifierId',\n impl: ({ SUBRULE, OR }) => () => OR<T11.VariableTerm | T11.IriTerm | T11.BlankTerm>([\n { ALT: () => SUBRULE(S11.var_) },\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => SUBRULE(S11.blankNode) },\n ]),\n};\n\nfunction triplesSameSubjectImpl<T extends string>(name: T, allowPaths: boolean): RuleDef<T, Triple[]> {\n return <const> {\n name,\n impl: $ => () => $.OR2([\n { ALT: () => allowPaths ? S11.triplesSameSubjectPath.impl($)() : S11.triplesSameSubject.impl($)() },\n { ALT: () => $.SUBRULE(allowPaths ? reifiedTripleBlockPath : reifiedTripleBlock) },\n ]),\n };\n}\n/**\n * OVERRIDING RULE {@link S11.triplesSameSubject}\n * [[79]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubject)\n */\nexport const triplesSameSubject = triplesSameSubjectImpl('triplesSameSubject', false);\n/**\n * OVERRIDING RULE {@link S11.triplesSameSubjectPath}\n * [[85]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubjectPath)\n */\nexport const triplesSameSubjectPath = triplesSameSubjectImpl('triplesSameSubjectPath', true);\n\nfunction objectImpl<T extends string>(name: T, allowPaths: boolean): RuleDef<T, TripleCreatorSP[]> {\n return <const>{\n name,\n impl: ({ ACTION, SUBRULE, context }) => () => {\n const objectVal = SUBRULE(allowPaths ? graphNodePath : graphNode);\n const annotationVal = SUBRULE(allowPaths ? annotationPath : annotation);\n\n return ACTION(() => {\n const result: TripleCreatorSP[] = [\n // You parse the object\n ({ subject, predicate }) => ({ subject, predicate, object: objectVal.node }),\n // You might get some additional triples from parsing the object (like when it's a collection)\n ...objectVal.triples.map(triple => () => triple),\n ];\n for (const annotation of annotationVal) {\n result.push(({ subject, predicate }) => {\n if ('type' in predicate && predicate.type === 'path') {\n throw new Error('Note 17 violation');\n }\n return <Triple> context.dataFactory.quad(\n annotation.node,\n context.dataFactory.namedNode(CommonIRIs.REIFIES),\n context.dataFactory.quad(\n subject,\n <Exclude<typeof predicate, T11.PropertyPath>>predicate,\n objectVal.node,\n ),\n )\n });\n result.push(...annotation.triples.map(triple => () => triple));\n }\n return result;\n });\n },\n };\n}\n/**\n * OVERRIDING RULE: {@link S11.object}.\n * [[84]](https://www.w3.org/TR/sparql12-query/#rObject) Used by ObjectList\n */\nexport const object = objectImpl('object', false);\n/**\n * OVERRIDING RULE: {@link S11.objectPath}.\n * [[91]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubjectPath) Used by ObjectListPath\n */\nexport const objectPath = objectImpl('objectPath', true);\n\nfunction annotationImpl<T extends string>(name: T, allowPaths: boolean): RuleDef<T, IGraphNode[]> {\n return <const> {\n name,\n impl: ({ ACTION, SUBRULE, OR, MANY, context }) => () => {\n const annotations: IGraphNode[] = [];\n let currentReifier: T11.BlankTerm | T11.VariableTerm | T11.IriTerm | undefined;\n\n function flush(): void {\n if (currentReifier) {\n annotations.push({ node: currentReifier, triples: []});\n currentReifier = undefined;\n }\n }\n\n MANY(() => {\n OR([\n { ALT: () => {\n const node = SUBRULE(reifier);\n ACTION(() => flush());\n currentReifier = node;\n } },\n { ALT: () => {\n const block = SUBRULE(allowPaths ? annotationBlockPath : annotationBlock);\n\n ACTION(() => {\n if (currentReifier === undefined && !context.parseMode.has(S11.canCreateBlankNodes)) {\n throw new Error('Cannot create blanknodes in current parse mode');\n }\n const node = currentReifier ?? context.dataFactory.blankNode();\n annotations.push({\n node,\n triples: block.map(partial => partial({ subject: node })),\n });\n currentReifier = undefined;\n });\n } },\n ]);\n });\n return ACTION(() => {\n flush();\n return annotations;\n });\n },\n };\n}\n/**\n * [[107]](https://www.w3.org/TR/sparql12-query/#rAnnotationPath)\n */\nexport const annotationPath = annotationImpl('annotationPath', true);\n/**\n * [[109]](https://www.w3.org/TR/sparql12-query/#rAnnotation)\n */\nexport const annotation = annotationImpl('annotation', false);\n\nfunction annotationBlockImpl<T extends string>(name: T, allowPaths: boolean): RuleDef<T, TripleCreatorS[]> {\n return <const> {\n name,\n impl: ({ SUBRULE, CONSUME }) => () => {\n CONSUME(l12.annotationOpen);\n const res = <TripleCreatorS[]> SUBRULE(allowPaths ? S11.propertyListPathNotEmpty : S11.propertyListNotEmpty);\n CONSUME(l12.annotationClose);\n\n return res;\n },\n };\n}\n/**\n * [[108]](https://www.w3.org/TR/sparql12-query/#rAnnotationBlockPath)\n */\nexport const annotationBlockPath = annotationBlockImpl('annotationBlockPath', true);\n/**\n * [[110]](https://www.w3.org/TR/sparql12-query/#rAnnotationBlock)\n */\nexport const annotationBlock = annotationBlockImpl('annotationBlock', false);\n\n/**\n * OVERRIDING RULE: {@link S11.graphNode}.\n * [[111]](https://www.w3.org/TR/sparql12-query/#rGraphNode)\n */\nexport const graphNode: RuleDef<'graphNode', IGraphNode> = <const> {\n name: 'graphNode',\n impl: $ => () => $.OR2 <IGraphNode>([\n { ALT: () => S11.graphNode.impl($)() },\n { ALT: () => $.SUBRULE(reifiedTriple) },\n ]),\n};\n/**\n * OVERRIDING RULE: {@link S11.graphNodePath}.\n * [[112]](https://www.w3.org/TR/sparql12-query/#rGraphNodePath)\n */\nexport const graphNodePath: RuleDef<'graphNodePath', IGraphNode> = <const> {\n name: 'graphNodePath',\n impl: $ => () => $.OR2<IGraphNode>([\n { ALT: () => S11.graphNodePath.impl($)() },\n { ALT: () => $.SUBRULE(reifiedTriple) },\n ]),\n};\n\n/**\n * OVERRIDING RULE: {@link S11.varOrTerm}.\n * [[113]](https://www.w3.org/TR/sparql12-query/#rVarOrTerm)\n */\nexport const varOrTerm: RuleDef<'varOrTerm', Term> = <const> {\n name: 'varOrTerm',\n impl: ({ SUBRULE, OR, CONSUME, context }) => () => OR<Term>([\n { ALT: () => SUBRULE(S11.var_) },\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(S11.numericLiteral) },\n { ALT: () => SUBRULE(S11.booleanLiteral) },\n { ALT: () => SUBRULE(S11.blankNode) },\n { ALT: () => {\n CONSUME(l11.terminals.nil);\n return context.dataFactory.namedNode(CommonIRIs.NIL);\n } },\n { ALT: () => SUBRULE(tripleTerm) },\n ]),\n};\n\n/**\n * [[114]](https://www.w3.org/TR/sparql12-query/#rReifiedTriple)\n */\nexport const reifiedTriple:\nRuleDef<'reifiedTriple', IGraphNode & { node: T11.BlankTerm | T11.VariableTerm | T11.IriTerm }> = <const> {\n name: 'reifiedTriple',\n impl: ({ ACTION, CONSUME, SUBRULE, OPTION, context }) => () => {\n CONSUME(l12.reificationOpen);\n const subject = SUBRULE(reifiedTripleSubject);\n const predicate = SUBRULE(S11.verb);\n const object = SUBRULE(reifiedTripleObject);\n const reifierVal = OPTION(() => SUBRULE(reifier));\n CONSUME(l12.reificationClose);\n\n return ACTION(() => {\n if (reifierVal === undefined && !context.parseMode.has(S11.canCreateBlankNodes)) {\n throw new Error('Cannot create blanknodes in current parse mode');\n }\n const reifier = reifierVal ?? context.dataFactory.blankNode();\n const tripleTerm = context.dataFactory.quad(subject.node, predicate, object.node);\n return {\n node: reifier,\n triples: [\n ...subject.triples,\n <Triple> context.dataFactory.quad(reifier, context.dataFactory.namedNode(CommonIRIs.REIFIES), tripleTerm),\n ...object.triples,\n ],\n };\n });\n },\n};\n\n/**\n * [[115]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleSubject)\n */\nexport const reifiedTripleSubject:\nRuleDef<'reifiedTripleSubject', IGraphNode> =\n <const> {\n name: 'reifiedTripleSubject',\n impl: ({ OR, SUBRULE }) => () => OR<IGraphNode>([\n { ALT: () => ({ node: SUBRULE(S11.var_), triples: []}) },\n { ALT: () => ({ node: SUBRULE(S11.iri), triples: []}) },\n { ALT: () => ({ node: SUBRULE(rdfLiteral), triples: []}) },\n { ALT: () => ({ node: SUBRULE(S11.numericLiteral), triples: []}) },\n { ALT: () => ({ node: SUBRULE(S11.booleanLiteral), triples: []}) },\n { ALT: () => ({ node: SUBRULE(S11.blankNode), triples: []}) },\n { ALT: () => SUBRULE(reifiedTriple) },\n ]),\n };\n\n/**\n * [[116]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleObject)\n */\nexport const reifiedTripleObject:\nRuleDef<'reifiedTripleObject', RuleDefReturn<typeof reifiedTripleSubject>> =\n <const> {\n name: 'reifiedTripleObject',\n impl: $ => () => $.OR2([\n { ALT: () => reifiedTripleSubject.impl($)() },\n { ALT: () => ({ node: $.SUBRULE(tripleTerm), triples: []}) },\n ]),\n };\n\n/**\n * [[117]](https://www.w3.org/TR/sparql12-query/#rTripleTerm)\n */\nexport const tripleTerm: RuleDef<'tripleTerm', BaseQuadTerm> = <const> {\n name: 'tripleTerm',\n impl: ({ CONSUME, SUBRULE, context }) => () => {\n CONSUME(l12.tripleTermOpen);\n const subject = SUBRULE(tripleTermSubject);\n const predicate = SUBRULE(S11.verb);\n const object = SUBRULE(tripleTermObject);\n CONSUME(l12.tripleTermClose);\n return context.dataFactory.quad(subject, predicate, object);\n },\n};\n\n/**\n * [[118]](https://www.w3.org/TR/sparql12-query/#rTripleTermSubject)\n */\nexport const tripleTermSubject:\nRuleDef<'tripleTermSubject', T11.VariableTerm | T11.IriTerm | T11.LiteralTerm | T11.BlankTerm> = <const> {\n name: 'tripleTermSubject',\n impl: ({ SUBRULE, OR }) => () => OR<T11.VariableTerm | T11.IriTerm | T11.LiteralTerm | T11.BlankTerm>([\n { ALT: () => SUBRULE(S11.var_) },\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(S11.numericLiteral) },\n { ALT: () => SUBRULE(S11.booleanLiteral) },\n { ALT: () => SUBRULE(S11.blankNode) },\n ]),\n};\n\n/**\n * [[119]](https://www.w3.org/TR/sparql12-query/#rTripleTermObject)\n */\nexport const tripleTermObject:\nRuleDef<'tripleTermObject', RuleDefReturn<typeof tripleTermSubject> | BaseQuadTerm> = <const> {\n name: 'tripleTermObject',\n impl: $ => () => $.OR2<T11.VariableTerm | T11.IriTerm | T11.LiteralTerm | T11.BlankTerm | BaseQuadTerm>([\n { ALT: () => tripleTermSubject.impl($)() },\n { ALT: () => $.SUBRULE(tripleTerm) },\n ]),\n};\n\n/**\n * [[120]](https://www.w3.org/TR/sparql12-query/#rTripleTermData)\n */\nexport const tripleTermData: RuleDef<'tripleTermData', BaseQuadTerm> = <const> {\n name: 'tripleTermData',\n impl: ({ ACTION, CONSUME, OR, SUBRULE, context }) => () => {\n CONSUME(l12.tripleTermOpen);\n const subject = SUBRULE(tripleTermDataSubject);\n const predicate = OR([\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => {\n CONSUME(l11.a);\n return ACTION(() => context.dataFactory.namedNode(CommonIRIs.TYPE));\n } },\n ]);\n const object = SUBRULE(tripleTermDataObject);\n CONSUME(l12.tripleTermClose);\n\n return ACTION(() => context.dataFactory.quad(subject, predicate, object));\n },\n};\n\n/**\n * [[121]](https://www.w3.org/TR/sparql12-query/#rTripleTermDataSubject)\n */\nexport const tripleTermDataSubject: RuleDef<'tripleTermDataSubject', T11.IriTerm | T11.LiteralTerm> = <const> {\n name: 'tripleTermDataSubject',\n impl: ({ OR, SUBRULE }) => () => OR<T11.IriTerm | T11.LiteralTerm>([\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(S11.numericLiteral) },\n { ALT: () => SUBRULE(S11.booleanLiteral) },\n ]),\n};\n\n/**\n * [[122]](https://www.w3.org/TR/sparql12-query/#rTripleTermDataObject)\n */\nexport const tripleTermDataObject:\nRuleDef<'tripleTermDataObject', RuleDefReturn<typeof tripleTermDataSubject> | BaseQuadTerm> = <const> {\n name: 'tripleTermDataObject',\n impl: $ => () => $.OR2<T11.IriTerm | T11.LiteralTerm | BaseQuadTerm>([\n { ALT: () => tripleTermDataSubject.impl($)() },\n { ALT: () => $.SUBRULE(tripleTermData) },\n ]),\n};\n\n/**\n * OVERRIDING RULE: {@link S11.primaryExpression}.\n * [[134]](https://www.w3.org/TR/sparql12-query/#rPrimaryExpression)\n */\nexport const primaryExpression: RuleDef<'primaryExpression', Expression> = <const> {\n name: 'primaryExpression',\n impl: $ => () => $.OR2<Expression>([\n { ALT: () => S11.primaryExpression.impl($)() },\n { ALT: () => $.SUBRULE(exprTripleTerm) },\n ]),\n};\n\n/**\n * [[135]](https://www.w3.org/TR/sparql12-query/#rExprTripleTerm)\n */\nexport const exprTripleTerm: RuleDef<'exprTripleTerm', BaseQuadTerm> = <const> {\n name: 'exprTripleTerm',\n impl: ({ ACTION, CONSUME, SUBRULE, context }) => () => {\n CONSUME(l12.tripleTermOpen);\n const subject = SUBRULE(exprTripleTermSubject);\n const predicate = SUBRULE(S11.verb);\n const object = SUBRULE(exprTripleTermObject);\n CONSUME(l12.tripleTermClose);\n\n return ACTION(() => context.dataFactory.quad(subject, predicate, object));\n },\n};\n\n/**\n * [[136]](https://www.w3.org/TR/sparql12-query/#rExprTripleTermSubject)\n */\nexport const exprTripleTermSubject:\nRuleDef<'exprTripleTermSubject', T11.IriTerm | T11.VariableTerm | T11.LiteralTerm> = <const> {\n name: 'exprTripleTermSubject',\n impl: ({ OR, SUBRULE }) => () =>\n OR<T11.IriTerm | T11.VariableTerm | T11.LiteralTerm>([\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(S11.numericLiteral) },\n { ALT: () => SUBRULE(S11.booleanLiteral) },\n { ALT: () => SUBRULE(S11.var_) },\n ]),\n};\n\n/**\n * [[137]](https://www.w3.org/TR/sparql12-query/#rExprTripleTermObject)\n */\nexport const exprTripleTermObject:\nRuleDef<'exprTripleTermObject', RuleDefReturn<typeof exprTripleTermSubject> | BaseQuadTerm> = <const> {\n name: 'exprTripleTermObject',\n impl: $ => () =>\n $.OR2<T11.IriTerm | T11.VariableTerm | T11.LiteralTerm | BaseQuadTerm>([\n { ALT: () => exprTripleTermSubject.impl($)() },\n { ALT: () => $.SUBRULE(exprTripleTerm) },\n ]),\n};\n\nexport const builtinLangDir = funcExpr1(l12.builtinLangDir);\nexport const builtinLangStrDir = funcExpr3(l12.builtinStrLangDir);\nexport const builtinHasLang = funcExpr1(l12.builtinHasLang);\nexport const builtinHasLangDir = funcExpr1(l12.builtinHasLangDir);\nexport const builtinIsTriple = funcExpr1(l12.builtinIsTRIPLE);\nexport const builtinTriple = funcExpr3(l12.builtinTRIPLE);\nexport const builtinSubject = funcExpr1(l12.builtinSUBJECT);\nexport const builtinPredicate = funcExpr1(l12.builtinPREDICATE);\nexport const builtinObject = funcExpr1(l12.builtinOBJECT);\n\n/**\n * OVERRIDING RULE: {@link S11.builtInCall}.\n * [[139]](https://www.w3.org/TR/sparql12-query/#rBuiltInCall)\n */\nexport const builtInCall: typeof S11.builtInCall = <const> {\n name: 'builtInCall',\n impl: $ => () => $.OR2<T11.Expression>([\n { ALT: () => S11.builtInCall.impl($)() },\n { ALT: () => $.SUBRULE(builtinLangDir) },\n { ALT: () => $.SUBRULE(builtinLangStrDir) },\n { ALT: () => $.SUBRULE(builtinHasLang) },\n { ALT: () => $.SUBRULE(builtinHasLangDir) },\n { ALT: () => $.SUBRULE(builtinIsTriple) },\n { ALT: () => $.SUBRULE(builtinTriple) },\n { ALT: () => $.SUBRULE(builtinSubject) },\n { ALT: () => $.SUBRULE(builtinPredicate) },\n { ALT: () => $.SUBRULE(builtinObject) },\n ]),\n};\n\nfunction isLangDir(dir: string): dir is 'ltr' | 'rtl' {\n return dir === 'ltr' || dir === 'rtl';\n}\n\n/**\n * OVERRIDING RULE: {@link S11.rdfLiteral}.\n * No retyping is needed since the return type is the same\n * [[147]](https://www.w3.org/TR/sparql12-query/#rRDFLiteral)\n */\nexport const rdfLiteral: typeof S11.rdfLiteral = <const> {\n name: 'rdfLiteral',\n impl: ({ ACTION, SUBRULE, OPTION, CONSUME, OR, context }) => () => {\n const value = SUBRULE(S11.string);\n const langOrDataType = OPTION(() => OR<string | NamedNode | DirectionalLanguage>([\n { ALT: () => {\n const langTag = CONSUME(l12.LANG_DIR).image.slice(1);\n\n return ACTION(() => {\n const dirSplit = langTag.split('--');\n if (dirSplit.length > 1) {\n const [ language, direction ] = dirSplit;\n if (!isLangDir(direction)) {\n throw new Error(`language direction \"${direction}\" of literal \"${value}@${langTag}\" is not is required range 'ltr' | 'rtl'.`);\n }\n return {\n language,\n direction,\n };\n }\n return langTag;\n });\n } },\n { ALT: () => {\n CONSUME(l11.symbols.hathat);\n return SUBRULE(S11.iri);\n } },\n ]));\n return context.dataFactory.literal(value, langOrDataType);\n },\n};\n"]}
|
|
1
|
+
{"version":3,"file":"grammar.js","sourceRoot":"","sources":["grammar.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * This module will define patch rules that should be used in combination with the sparql11 grammar to create\n * a sparql12 grammar.\n * Rules in this module redefine the return type of core grammar rules.\n * It is therefore essential that the parser retypes the rules from the core grammar.\n */\n\nimport type { DirectionalLanguage } from '@rdfjs/types';\nimport type { NamedNode } from 'rdf-data-factory';\nimport * as l12 from './lexer';\nimport type { RuleDefReturn, RuleDef } from '@traqula/core';\nimport {funcExpr1, funcExpr3} from '@traqula/rules-sparql-1-1';\nimport { gram as S11, lex as l11 } from '@traqula/rules-sparql-1-1';\nimport type * as T11 from '@traqula/rules-sparql-1-1';\nimport { CommonIRIs } from '@traqula/core';\nimport type {\n BaseQuadTerm,\n Expression,\n IGraphNode,\n Term,\n Triple,\n} from './sparql12Types';\n\nfunction reifiedTripleBlockImpl<T extends string>(name: T, allowPath: boolean): RuleDef<T, Triple[]> {\n return <const> {\n name,\n impl: ({ ACTION, SUBRULE }) => () => {\n const triple = SUBRULE(reifiedTriple);\n const properties = SUBRULE(allowPath ? S11.propertyListPath : S11.propertyList, triple.node);\n\n return ACTION(() => [\n ...triple.triples,\n ...properties,\n ]);\n },\n };\n}\n/**\n * [[56]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleBlock) Used by triplesSameSubject\n */\nexport const reifiedTripleBlock = reifiedTripleBlockImpl('reifiedTripleBlock', false);\n/**\n * [[57]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleBlockPath) Used by TriplesSameSubjectPath\n */\nexport const reifiedTripleBlockPath = reifiedTripleBlockImpl('reifiedTripleBlockPath', true);\n\n/**\n * OVERRIDING RULE: {@link S11.dataBlockValue}.\n * [[67]](https://www.w3.org/TR/sparql12-query/#rDataBlockValue)\n */\nexport const dataBlockValue:\nRuleDef<'dataBlockValue', RuleDefReturn<typeof S11.dataBlockValue> | BaseQuadTerm> = <const> {\n name: 'dataBlockValue',\n impl: $ => () => $.OR2<RuleDefReturn<typeof S11.dataBlockValue> | BaseQuadTerm>([\n { ALT: () => S11.dataBlockValue.impl($)() },\n { ALT: () => $.SUBRULE(tripleTermData) },\n ]),\n};\n\n/**\n * [[68]](https://www.w3.org/TR/sparql12-query/#rReifier)\n */\nexport const reifier: RuleDef<'reifier', T11.VariableTerm | T11.IriTerm | T11.BlankTerm> = <const> {\n name: 'reifier',\n impl: ({ ACTION, CONSUME, SUBRULE, OPTION, context }) => () => {\n CONSUME(l12.tilde);\n const reifier = OPTION(() => SUBRULE(varOrReifierId));\n return ACTION(() => {\n if (reifier === undefined && !context.parseMode.has(S11.canCreateBlankNodes)) {\n throw new Error('Cannot create blanknodes in current parse mode');\n }\n return reifier ?? context.dataFactory.blankNode();\n });\n },\n};\n\n/**\n * [[68]](https://www.w3.org/TR/sparql12-query/#rVarOrReifierId)\n */\nexport const varOrReifierId: RuleDef<'varOrReifierId', T11.VariableTerm | T11.IriTerm | T11.BlankTerm> = <const> {\n name: 'varOrReifierId',\n impl: ({ SUBRULE, OR }) => () => OR<T11.VariableTerm | T11.IriTerm | T11.BlankTerm>([\n { ALT: () => SUBRULE(S11.var_) },\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => SUBRULE(S11.blankNode) },\n ]),\n};\n\nfunction triplesSameSubjectImpl<T extends string>(name: T, allowPaths: boolean): RuleDef<T, Triple[]> {\n return <const> {\n name,\n impl: $ => () => $.OR2([\n { ALT: () => allowPaths ? S11.triplesSameSubjectPath.impl($)() : S11.triplesSameSubject.impl($)() },\n { ALT: () => $.SUBRULE(allowPaths ? reifiedTripleBlockPath : reifiedTripleBlock) },\n ]),\n };\n}\n/**\n * OVERRIDING RULE {@link S11.triplesSameSubject}\n * [[79]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubject)\n */\nexport const triplesSameSubject = triplesSameSubjectImpl('triplesSameSubject', false);\n/**\n * OVERRIDING RULE {@link S11.triplesSameSubjectPath}\n * [[85]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubjectPath)\n */\nexport const triplesSameSubjectPath = triplesSameSubjectImpl('triplesSameSubjectPath', true);\n\nfunction objectImpl<T extends string>(name: T, allowPaths: boolean): RuleDef<T, Triple[], [Triple['subject'], Triple['predicate']]> {\n return <const>{\n name,\n impl: ({ ACTION, SUBRULE, context }) => (subject, predicate) => {\n const objectVal = SUBRULE(allowPaths ? graphNodePath : graphNode);\n const annotationVal = SUBRULE(allowPaths ? annotationPath : annotation);\n\n // This rule knows the annotation. And for each annotation node, we need to make a triple:\n // <annotationNode, reifies, parsedSubjectAndObject>\n\n return ACTION(() => {\n if ('type' in predicate && predicate.type === 'path' && annotationVal.length > 0) {\n throw new Error('Note 17 violation');\n }\n\n const result: Triple[] = [\n // You parse the object\n { subject, predicate, object: objectVal.node },\n // You might get some additional triples from parsing the object (like when it's a collection)\n ...objectVal.triples,\n ];\n for (const annotation of annotationVal) {\n result.push(<Triple> context.dataFactory.quad(\n annotation.node,\n context.dataFactory.namedNode(CommonIRIs.REIFIES),\n context.dataFactory.quad(\n subject,\n <Exclude<typeof predicate, T11.PropertyPath>>predicate,\n objectVal.node,\n ),\n ));\n result.push(...annotation.triples);\n }\n return result;\n });\n },\n };\n}\n/**\n * OVERRIDING RULE: {@link S11.object}.\n * [[84]](https://www.w3.org/TR/sparql12-query/#rObject) Used by ObjectList\n */\nexport const object = objectImpl('object', false);\n/**\n * OVERRIDING RULE: {@link S11.objectPath}.\n * [[91]](https://www.w3.org/TR/sparql12-query/#rTriplesSameSubjectPath) Used by ObjectListPath\n */\nexport const objectPath = objectImpl('objectPath', true);\n\nfunction annotationImpl<T extends string>(name: T, allowPaths: boolean): RuleDef<T, IGraphNode[]> {\n return <const> {\n name,\n impl: ({ ACTION, SUBRULE, OR, MANY, context }) => () => {\n const annotations: IGraphNode[] = [];\n let currentReifier: T11.BlankTerm | T11.VariableTerm | T11.IriTerm | undefined;\n\n function flush(): void {\n if (currentReifier) {\n annotations.push({ node: currentReifier, triples: []});\n currentReifier = undefined;\n }\n }\n\n MANY(() => {\n OR([\n { ALT: () => {\n const node = SUBRULE(reifier);\n ACTION(() => flush());\n currentReifier = node;\n } },\n { ALT: () => {\n let node: Triple['subject'];\n const block = SUBRULE(\n allowPaths ? annotationBlockPath : annotationBlock,\n ACTION(() => {\n if (currentReifier === undefined && !context.parseMode.has(S11.canCreateBlankNodes)) {\n throw new Error('Cannot create blanknodes in current parse mode');\n }\n node = currentReifier ?? context.dataFactory.blankNode();\n return node;\n }),\n );\n ACTION(() => {\n annotations.push({\n node,\n triples: block,\n });\n currentReifier = undefined\n });\n } },\n ]);\n });\n return ACTION(() => {\n flush();\n return annotations;\n });\n },\n };\n}\n/**\n * [[107]](https://www.w3.org/TR/sparql12-query/#rAnnotationPath)\n */\nexport const annotationPath = annotationImpl('annotationPath', true);\n/**\n * [[109]](https://www.w3.org/TR/sparql12-query/#rAnnotation)\n */\nexport const annotation = annotationImpl('annotation', false);\n\nfunction annotationBlockImpl<T extends string>(name: T, allowPaths: boolean): RuleDef<T, Triple[], [Triple['subject']]> {\n return <const> {\n name,\n impl: ({ SUBRULE, CONSUME }) => (subject) => {\n CONSUME(l12.annotationOpen);\n const res = SUBRULE(allowPaths ? S11.propertyListPathNotEmpty : S11.propertyListNotEmpty, <T11.Term> subject);\n CONSUME(l12.annotationClose);\n\n return res;\n },\n };\n}\n/**\n * [[108]](https://www.w3.org/TR/sparql12-query/#rAnnotationBlockPath)\n */\nexport const annotationBlockPath = annotationBlockImpl('annotationBlockPath', true);\n/**\n * [[110]](https://www.w3.org/TR/sparql12-query/#rAnnotationBlock)\n */\nexport const annotationBlock = annotationBlockImpl('annotationBlock', false);\n\n/**\n * OVERRIDING RULE: {@link S11.graphNode}.\n * [[111]](https://www.w3.org/TR/sparql12-query/#rGraphNode)\n */\nexport const graphNode: RuleDef<'graphNode', IGraphNode> = <const> {\n name: 'graphNode',\n impl: $ => () => $.OR2 <IGraphNode>([\n { ALT: () => S11.graphNode.impl($)() },\n { ALT: () => $.SUBRULE(reifiedTriple) },\n ]),\n};\n/**\n * OVERRIDING RULE: {@link S11.graphNodePath}.\n * [[112]](https://www.w3.org/TR/sparql12-query/#rGraphNodePath)\n */\nexport const graphNodePath: RuleDef<'graphNodePath', IGraphNode> = <const> {\n name: 'graphNodePath',\n impl: $ => () => $.OR2<IGraphNode>([\n { ALT: () => S11.graphNodePath.impl($)() },\n { ALT: () => $.SUBRULE(reifiedTriple) },\n ]),\n};\n\n/**\n * OVERRIDING RULE: {@link S11.varOrTerm}.\n * [[113]](https://www.w3.org/TR/sparql12-query/#rVarOrTerm)\n */\nexport const varOrTerm: RuleDef<'varOrTerm', Term> = <const> {\n name: 'varOrTerm',\n impl: ({ SUBRULE, OR, CONSUME, context }) => () => OR<Term>([\n { ALT: () => SUBRULE(S11.var_) },\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(S11.numericLiteral) },\n { ALT: () => SUBRULE(S11.booleanLiteral) },\n { ALT: () => SUBRULE(S11.blankNode) },\n { ALT: () => {\n CONSUME(l11.terminals.nil);\n return context.dataFactory.namedNode(CommonIRIs.NIL);\n } },\n { ALT: () => SUBRULE(tripleTerm) },\n ]),\n};\n\n/**\n * [[114]](https://www.w3.org/TR/sparql12-query/#rReifiedTriple)\n */\nexport const reifiedTriple:\nRuleDef<'reifiedTriple', IGraphNode & { node: T11.BlankTerm | T11.VariableTerm | T11.IriTerm }> = <const> {\n name: 'reifiedTriple',\n impl: ({ ACTION, CONSUME, SUBRULE, OPTION, context }) => () => {\n CONSUME(l12.reificationOpen);\n const subject = SUBRULE(reifiedTripleSubject);\n const predicate = SUBRULE(S11.verb);\n const object = SUBRULE(reifiedTripleObject);\n const reifierVal = OPTION(() => SUBRULE(reifier));\n CONSUME(l12.reificationClose);\n\n return ACTION(() => {\n if (reifierVal === undefined && !context.parseMode.has(S11.canCreateBlankNodes)) {\n throw new Error('Cannot create blanknodes in current parse mode');\n }\n const reifier = reifierVal ?? context.dataFactory.blankNode();\n const tripleTerm = context.dataFactory.quad(subject.node, predicate, object.node);\n return {\n node: reifier,\n triples: [\n ...subject.triples,\n <Triple> context.dataFactory.quad(reifier, context.dataFactory.namedNode(CommonIRIs.REIFIES), tripleTerm),\n ...object.triples,\n ],\n };\n });\n },\n};\n\n/**\n * [[115]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleSubject)\n */\nexport const reifiedTripleSubject:\nRuleDef<'reifiedTripleSubject', IGraphNode> =\n <const> {\n name: 'reifiedTripleSubject',\n impl: ({ OR, SUBRULE }) => () => OR<IGraphNode>([\n { ALT: () => ({ node: SUBRULE(S11.var_), triples: []}) },\n { ALT: () => ({ node: SUBRULE(S11.iri), triples: []}) },\n { ALT: () => ({ node: SUBRULE(rdfLiteral), triples: []}) },\n { ALT: () => ({ node: SUBRULE(S11.numericLiteral), triples: []}) },\n { ALT: () => ({ node: SUBRULE(S11.booleanLiteral), triples: []}) },\n { ALT: () => ({ node: SUBRULE(S11.blankNode), triples: []}) },\n { ALT: () => SUBRULE(reifiedTriple) },\n ]),\n };\n\n/**\n * [[116]](https://www.w3.org/TR/sparql12-query/#rReifiedTripleObject)\n */\nexport const reifiedTripleObject:\nRuleDef<'reifiedTripleObject', RuleDefReturn<typeof reifiedTripleSubject>> =\n <const> {\n name: 'reifiedTripleObject',\n impl: $ => () => $.OR2([\n { ALT: () => reifiedTripleSubject.impl($)() },\n { ALT: () => ({ node: $.SUBRULE(tripleTerm), triples: []}) },\n ]),\n };\n\n/**\n * [[117]](https://www.w3.org/TR/sparql12-query/#rTripleTerm)\n */\nexport const tripleTerm: RuleDef<'tripleTerm', BaseQuadTerm> = <const> {\n name: 'tripleTerm',\n impl: ({ CONSUME, SUBRULE, context }) => () => {\n CONSUME(l12.tripleTermOpen);\n const subject = SUBRULE(tripleTermSubject);\n const predicate = SUBRULE(S11.verb);\n const object = SUBRULE(tripleTermObject);\n CONSUME(l12.tripleTermClose);\n return context.dataFactory.quad(subject, predicate, object);\n },\n};\n\n/**\n * [[118]](https://www.w3.org/TR/sparql12-query/#rTripleTermSubject)\n */\nexport const tripleTermSubject:\nRuleDef<'tripleTermSubject', T11.VariableTerm | T11.IriTerm | T11.LiteralTerm | T11.BlankTerm> = <const> {\n name: 'tripleTermSubject',\n impl: ({ SUBRULE, OR }) => () => OR<T11.VariableTerm | T11.IriTerm | T11.LiteralTerm | T11.BlankTerm>([\n { ALT: () => SUBRULE(S11.var_) },\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(S11.numericLiteral) },\n { ALT: () => SUBRULE(S11.booleanLiteral) },\n { ALT: () => SUBRULE(S11.blankNode) },\n ]),\n};\n\n/**\n * [[119]](https://www.w3.org/TR/sparql12-query/#rTripleTermObject)\n */\nexport const tripleTermObject:\nRuleDef<'tripleTermObject', RuleDefReturn<typeof tripleTermSubject> | BaseQuadTerm> = <const> {\n name: 'tripleTermObject',\n impl: $ => () => $.OR2<T11.VariableTerm | T11.IriTerm | T11.LiteralTerm | T11.BlankTerm | BaseQuadTerm>([\n { ALT: () => tripleTermSubject.impl($)() },\n { ALT: () => $.SUBRULE(tripleTerm) },\n ]),\n};\n\n/**\n * [[120]](https://www.w3.org/TR/sparql12-query/#rTripleTermData)\n */\nexport const tripleTermData: RuleDef<'tripleTermData', BaseQuadTerm> = <const> {\n name: 'tripleTermData',\n impl: ({ ACTION, CONSUME, OR, SUBRULE, context }) => () => {\n CONSUME(l12.tripleTermOpen);\n const subject = SUBRULE(tripleTermDataSubject);\n const predicate = OR([\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => {\n CONSUME(l11.a);\n return ACTION(() => context.dataFactory.namedNode(CommonIRIs.TYPE));\n } },\n ]);\n const object = SUBRULE(tripleTermDataObject);\n CONSUME(l12.tripleTermClose);\n\n return ACTION(() => context.dataFactory.quad(subject, predicate, object));\n },\n};\n\n/**\n * [[121]](https://www.w3.org/TR/sparql12-query/#rTripleTermDataSubject)\n */\nexport const tripleTermDataSubject: RuleDef<'tripleTermDataSubject', T11.IriTerm | T11.LiteralTerm> = <const> {\n name: 'tripleTermDataSubject',\n impl: ({ OR, SUBRULE }) => () => OR<T11.IriTerm | T11.LiteralTerm>([\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(S11.numericLiteral) },\n { ALT: () => SUBRULE(S11.booleanLiteral) },\n ]),\n};\n\n/**\n * [[122]](https://www.w3.org/TR/sparql12-query/#rTripleTermDataObject)\n */\nexport const tripleTermDataObject:\nRuleDef<'tripleTermDataObject', RuleDefReturn<typeof tripleTermDataSubject> | BaseQuadTerm> = <const> {\n name: 'tripleTermDataObject',\n impl: $ => () => $.OR2<T11.IriTerm | T11.LiteralTerm | BaseQuadTerm>([\n { ALT: () => tripleTermDataSubject.impl($)() },\n { ALT: () => $.SUBRULE(tripleTermData) },\n ]),\n};\n\n/**\n * OVERRIDING RULE: {@link S11.primaryExpression}.\n * [[134]](https://www.w3.org/TR/sparql12-query/#rPrimaryExpression)\n */\nexport const primaryExpression: RuleDef<'primaryExpression', Expression> = <const> {\n name: 'primaryExpression',\n impl: $ => () => $.OR2<Expression>([\n { ALT: () => S11.primaryExpression.impl($)() },\n { ALT: () => $.SUBRULE(exprTripleTerm) },\n ]),\n};\n\n/**\n * [[135]](https://www.w3.org/TR/sparql12-query/#rExprTripleTerm)\n */\nexport const exprTripleTerm: RuleDef<'exprTripleTerm', BaseQuadTerm> = <const> {\n name: 'exprTripleTerm',\n impl: ({ ACTION, CONSUME, SUBRULE, context }) => () => {\n CONSUME(l12.tripleTermOpen);\n const subject = SUBRULE(exprTripleTermSubject);\n const predicate = SUBRULE(S11.verb);\n const object = SUBRULE(exprTripleTermObject);\n CONSUME(l12.tripleTermClose);\n\n return ACTION(() => context.dataFactory.quad(subject, predicate, object));\n },\n};\n\n/**\n * [[136]](https://www.w3.org/TR/sparql12-query/#rExprTripleTermSubject)\n */\nexport const exprTripleTermSubject:\nRuleDef<'exprTripleTermSubject', T11.IriTerm | T11.VariableTerm | T11.LiteralTerm> = <const> {\n name: 'exprTripleTermSubject',\n impl: ({ OR, SUBRULE }) => () =>\n OR<T11.IriTerm | T11.VariableTerm | T11.LiteralTerm>([\n { ALT: () => SUBRULE(S11.iri) },\n { ALT: () => SUBRULE(rdfLiteral) },\n { ALT: () => SUBRULE(S11.numericLiteral) },\n { ALT: () => SUBRULE(S11.booleanLiteral) },\n { ALT: () => SUBRULE(S11.var_) },\n ]),\n};\n\n/**\n * [[137]](https://www.w3.org/TR/sparql12-query/#rExprTripleTermObject)\n */\nexport const exprTripleTermObject:\nRuleDef<'exprTripleTermObject', RuleDefReturn<typeof exprTripleTermSubject> | BaseQuadTerm> = <const> {\n name: 'exprTripleTermObject',\n impl: $ => () =>\n $.OR2<T11.IriTerm | T11.VariableTerm | T11.LiteralTerm | BaseQuadTerm>([\n { ALT: () => exprTripleTermSubject.impl($)() },\n { ALT: () => $.SUBRULE(exprTripleTerm) },\n ]),\n};\n\nexport const builtinLangDir = funcExpr1(l12.builtinLangDir);\nexport const builtinLangStrDir = funcExpr3(l12.builtinStrLangDir);\nexport const builtinHasLang = funcExpr1(l12.builtinHasLang);\nexport const builtinHasLangDir = funcExpr1(l12.builtinHasLangDir);\nexport const builtinIsTriple = funcExpr1(l12.builtinIsTRIPLE);\nexport const builtinTriple = funcExpr3(l12.builtinTRIPLE);\nexport const builtinSubject = funcExpr1(l12.builtinSUBJECT);\nexport const builtinPredicate = funcExpr1(l12.builtinPREDICATE);\nexport const builtinObject = funcExpr1(l12.builtinOBJECT);\n\n/**\n * OVERRIDING RULE: {@link S11.builtInCall}.\n * [[139]](https://www.w3.org/TR/sparql12-query/#rBuiltInCall)\n */\nexport const builtInCall: typeof S11.builtInCall = <const> {\n name: 'builtInCall',\n impl: $ => () => $.OR2<T11.Expression>([\n { ALT: () => S11.builtInCall.impl($)() },\n { ALT: () => $.SUBRULE(builtinLangDir) },\n { ALT: () => $.SUBRULE(builtinLangStrDir) },\n { ALT: () => $.SUBRULE(builtinHasLang) },\n { ALT: () => $.SUBRULE(builtinHasLangDir) },\n { ALT: () => $.SUBRULE(builtinIsTriple) },\n { ALT: () => $.SUBRULE(builtinTriple) },\n { ALT: () => $.SUBRULE(builtinSubject) },\n { ALT: () => $.SUBRULE(builtinPredicate) },\n { ALT: () => $.SUBRULE(builtinObject) },\n ]),\n};\n\nfunction isLangDir(dir: string): dir is 'ltr' | 'rtl' {\n return dir === 'ltr' || dir === 'rtl';\n}\n\n/**\n * OVERRIDING RULE: {@link S11.rdfLiteral}.\n * No retyping is needed since the return type is the same\n * [[147]](https://www.w3.org/TR/sparql12-query/#rRDFLiteral)\n */\nexport const rdfLiteral: typeof S11.rdfLiteral = <const> {\n name: 'rdfLiteral',\n impl: ({ ACTION, SUBRULE, OPTION, CONSUME, OR, context }) => () => {\n const value = SUBRULE(S11.string);\n const langOrDataType = OPTION(() => OR<string | NamedNode | DirectionalLanguage>([\n { ALT: () => {\n const langTag = CONSUME(l12.LANG_DIR).image.slice(1);\n\n return ACTION(() => {\n const dirSplit = langTag.split('--');\n if (dirSplit.length > 1) {\n const [ language, direction ] = dirSplit;\n if (!isLangDir(direction)) {\n throw new Error(`language direction \"${direction}\" of literal \"${value}@${langTag}\" is not is required range 'ltr' | 'rtl'.`);\n }\n return {\n language,\n direction,\n };\n }\n return langTag;\n });\n } },\n { ALT: () => {\n CONSUME(l11.symbols.hathat);\n return SUBRULE(S11.iri);\n } },\n ]));\n return context.dataFactory.literal(value, langOrDataType);\n },\n};\n"]}
|
package/lib/index.cjs
CHANGED
|
@@ -9327,10 +9327,16 @@ function resolveIRI(iri3, base) {
|
|
|
9327
9327
|
return base.replace(/(?:\?.*)?$/u, iri3);
|
|
9328
9328
|
// Resolve root relative IRIs at the root of the base IRI
|
|
9329
9329
|
case "/":
|
|
9330
|
-
|
|
9330
|
+
const baseMatch = base.match(/^(?:[a-z]+:\/*)?[^\/]*/);
|
|
9331
|
+
if (!baseMatch) {
|
|
9332
|
+
throw new Error(`Could not determine relative IRI using base: ${base}`);
|
|
9333
|
+
}
|
|
9334
|
+
const baseRoot = baseMatch[0];
|
|
9335
|
+
return baseRoot + iri3;
|
|
9331
9336
|
// Resolve all other IRIs at the base IRI's path
|
|
9332
9337
|
default:
|
|
9333
|
-
|
|
9338
|
+
const basePath = base.replace(/[^\/:]*$/, "");
|
|
9339
|
+
return basePath + iri3;
|
|
9334
9340
|
}
|
|
9335
9341
|
}
|
|
9336
9342
|
|
|
@@ -10535,12 +10541,6 @@ var blankNode = {
|
|
|
10535
10541
|
{
|
|
10536
10542
|
ALT: () => {
|
|
10537
10543
|
const label = CONSUME(terminals_exports.blankNodeLabel).image;
|
|
10538
|
-
ACTION(() => {
|
|
10539
|
-
if (context.flushedBlankNodeLabels.has(label)) {
|
|
10540
|
-
throw new Error("Detected reuse blank node across different request string.");
|
|
10541
|
-
}
|
|
10542
|
-
context.usedBlankNodeLabels.add(label);
|
|
10543
|
-
});
|
|
10544
10544
|
return ACTION(() => context.dataFactory.blankNode(label.replace("_:", "e_")));
|
|
10545
10545
|
}
|
|
10546
10546
|
},
|
|
@@ -10740,16 +10740,15 @@ function triplesSameSubjectImpl(name, allowPaths) {
|
|
|
10740
10740
|
{
|
|
10741
10741
|
ALT: () => {
|
|
10742
10742
|
const subject = SUBRULE(varOrTerm);
|
|
10743
|
-
|
|
10744
|
-
return ACTION(() => propNotEmpty.map((partial) => partial({ subject })));
|
|
10743
|
+
return SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, subject);
|
|
10745
10744
|
}
|
|
10746
10745
|
},
|
|
10747
10746
|
{
|
|
10748
10747
|
ALT: () => {
|
|
10749
10748
|
const subjectNode = SUBRULE(allowPaths ? triplesNodePath : triplesNode);
|
|
10750
|
-
const restNode = SUBRULE(allowPaths ? propertyListPath : propertyList);
|
|
10749
|
+
const restNode = SUBRULE(allowPaths ? propertyListPath : propertyList, subjectNode.node);
|
|
10751
10750
|
return ACTION(() => [
|
|
10752
|
-
...restNode
|
|
10751
|
+
...restNode,
|
|
10753
10752
|
...subjectNode.triples
|
|
10754
10753
|
]);
|
|
10755
10754
|
}
|
|
@@ -10762,7 +10761,7 @@ var triplesSameSubjectPath = triplesSameSubjectImpl("triplesSameSubjectPath", tr
|
|
|
10762
10761
|
function propertyListImpl(name, allowPaths) {
|
|
10763
10762
|
return {
|
|
10764
10763
|
name,
|
|
10765
|
-
impl: ({ SUBRULE, OPTION }) => () => OPTION(() => SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty)) ?? []
|
|
10764
|
+
impl: ({ SUBRULE, OPTION }) => (subject) => OPTION(() => SUBRULE(allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty, subject)) ?? []
|
|
10766
10765
|
};
|
|
10767
10766
|
}
|
|
10768
10767
|
var propertyList = propertyListImpl("propertyList", false);
|
|
@@ -10770,42 +10769,30 @@ var propertyListPath = propertyListImpl("propertyListPath", true);
|
|
|
10770
10769
|
function propertyListNotEmptyImplementation(name, allowPaths) {
|
|
10771
10770
|
return {
|
|
10772
10771
|
name,
|
|
10773
|
-
impl: ({ ACTION, CONSUME,
|
|
10772
|
+
impl: ({ ACTION, CONSUME, AT_LEAST_ONE, SUBRULE1, MANY2, OR1 }) => (subject) => {
|
|
10774
10773
|
const result = [];
|
|
10775
|
-
|
|
10776
|
-
|
|
10777
|
-
|
|
10778
|
-
|
|
10779
|
-
|
|
10780
|
-
|
|
10781
|
-
|
|
10782
|
-
|
|
10783
|
-
|
|
10784
|
-
const
|
|
10785
|
-
|
|
10786
|
-
|
|
10787
|
-
|
|
10788
|
-
|
|
10789
|
-
|
|
10790
|
-
|
|
10791
|
-
|
|
10792
|
-
|
|
10793
|
-
MANY(() => {
|
|
10794
|
-
CONSUME(symbols_exports.semi);
|
|
10795
|
-
OPTION(() => {
|
|
10796
|
-
const predicate = allowPaths ? OR2([
|
|
10797
|
-
{ ALT: () => SUBRULE2(verbPath) },
|
|
10798
|
-
{ ALT: () => SUBRULE2(verbSimple) }
|
|
10799
|
-
]) : SUBRULE2(verb);
|
|
10800
|
-
const objects = SUBRULE2(allowPaths ? objectListPath : objectList);
|
|
10801
|
-
ACTION(() => {
|
|
10802
|
-
result.push(
|
|
10803
|
-
...objects.map((object3) => (partS) => object3({ ...partS, predicate }))
|
|
10804
|
-
);
|
|
10774
|
+
let parsedSemi = true;
|
|
10775
|
+
AT_LEAST_ONE({
|
|
10776
|
+
GATE: () => parsedSemi,
|
|
10777
|
+
DEF: () => {
|
|
10778
|
+
parsedSemi = false;
|
|
10779
|
+
const predicate = allowPaths ? OR1([
|
|
10780
|
+
{ ALT: () => SUBRULE1(verbPath) },
|
|
10781
|
+
{ ALT: () => SUBRULE1(verbSimple) }
|
|
10782
|
+
]) : SUBRULE1(verb);
|
|
10783
|
+
const triples = SUBRULE1(
|
|
10784
|
+
allowPaths ? objectListPath : objectList,
|
|
10785
|
+
subject,
|
|
10786
|
+
predicate
|
|
10787
|
+
);
|
|
10788
|
+
ACTION(() => result.push(...triples));
|
|
10789
|
+
MANY2(() => {
|
|
10790
|
+
CONSUME(symbols_exports.semi);
|
|
10791
|
+
parsedSemi = true;
|
|
10805
10792
|
});
|
|
10806
|
-
}
|
|
10793
|
+
}
|
|
10807
10794
|
});
|
|
10808
|
-
return
|
|
10795
|
+
return result;
|
|
10809
10796
|
}
|
|
10810
10797
|
};
|
|
10811
10798
|
}
|
|
@@ -10822,11 +10809,11 @@ var verbSimple = {
|
|
|
10822
10809
|
function objectListImpl(name, allowPaths) {
|
|
10823
10810
|
return {
|
|
10824
10811
|
name,
|
|
10825
|
-
impl: ({ ACTION, SUBRULE, AT_LEAST_ONE_SEP }) => () => {
|
|
10812
|
+
impl: ({ ACTION, SUBRULE, AT_LEAST_ONE_SEP }) => (subject, predicate) => {
|
|
10826
10813
|
const objects = [];
|
|
10827
10814
|
AT_LEAST_ONE_SEP({
|
|
10828
10815
|
DEF: () => {
|
|
10829
|
-
const objectTriples = SUBRULE(allowPaths ? objectPath : object);
|
|
10816
|
+
const objectTriples = SUBRULE(allowPaths ? objectPath : object, subject, predicate);
|
|
10830
10817
|
ACTION(() => objects.push(...objectTriples));
|
|
10831
10818
|
},
|
|
10832
10819
|
SEP: symbols_exports.comma
|
|
@@ -10840,11 +10827,11 @@ var objectListPath = objectListImpl("objectListPath", true);
|
|
|
10840
10827
|
function objectImpl(name, allowPaths) {
|
|
10841
10828
|
return {
|
|
10842
10829
|
name,
|
|
10843
|
-
impl: ({ ACTION, SUBRULE }) => () => {
|
|
10830
|
+
impl: ({ ACTION, SUBRULE }) => (subject, predicate) => {
|
|
10844
10831
|
const node = SUBRULE(allowPaths ? graphNodePath : graphNode);
|
|
10845
10832
|
return ACTION(() => [
|
|
10846
|
-
|
|
10847
|
-
...node.triples
|
|
10833
|
+
{ subject, predicate, object: node.node },
|
|
10834
|
+
...node.triples
|
|
10848
10835
|
]);
|
|
10849
10836
|
}
|
|
10850
10837
|
};
|
|
@@ -10870,13 +10857,16 @@ function blankNodePropertyListImpl(name, allowPaths) {
|
|
|
10870
10857
|
name,
|
|
10871
10858
|
impl: ({ ACTION, SUBRULE, CONSUME, context }) => () => {
|
|
10872
10859
|
CONSUME(symbols_exports.LSquare);
|
|
10873
|
-
|
|
10860
|
+
let blankNode2;
|
|
10861
|
+
const propList = SUBRULE(
|
|
10862
|
+
allowPaths ? propertyListPathNotEmpty : propertyListNotEmpty,
|
|
10863
|
+
ACTION(() => blankNode2 = context.dataFactory.blankNode())
|
|
10864
|
+
);
|
|
10874
10865
|
CONSUME(symbols_exports.RSquare);
|
|
10875
10866
|
return ACTION(() => {
|
|
10876
|
-
const subject = context.dataFactory.blankNode();
|
|
10877
10867
|
return {
|
|
10878
|
-
node:
|
|
10879
|
-
triples: propList
|
|
10868
|
+
node: blankNode2,
|
|
10869
|
+
triples: propList
|
|
10880
10870
|
};
|
|
10881
10871
|
});
|
|
10882
10872
|
}
|
|
@@ -11016,16 +11006,24 @@ var prefixDecl2 = {
|
|
|
11016
11006
|
};
|
|
11017
11007
|
var triplesTemplate = {
|
|
11018
11008
|
name: "triplesTemplate",
|
|
11019
|
-
impl: ({ SUBRULE, CONSUME,
|
|
11009
|
+
impl: ({ ACTION, AT_LEAST_ONE, AT_LEAST_ONE_SEP, SUBRULE, CONSUME, OPTION }) => () => {
|
|
11020
11010
|
const triples = [];
|
|
11021
|
-
|
|
11022
|
-
|
|
11023
|
-
|
|
11024
|
-
|
|
11025
|
-
|
|
11026
|
-
|
|
11011
|
+
let parsedDot = true;
|
|
11012
|
+
AT_LEAST_ONE({
|
|
11013
|
+
GATE: () => parsedDot,
|
|
11014
|
+
DEF: () => {
|
|
11015
|
+
parsedDot = false;
|
|
11016
|
+
const template = SUBRULE(triplesSameSubject);
|
|
11017
|
+
ACTION(() => {
|
|
11018
|
+
triples.push(...template);
|
|
11019
|
+
});
|
|
11020
|
+
OPTION(() => {
|
|
11021
|
+
CONSUME(symbols_exports.dot);
|
|
11022
|
+
parsedDot = true;
|
|
11023
|
+
});
|
|
11024
|
+
}
|
|
11027
11025
|
});
|
|
11028
|
-
return triples
|
|
11026
|
+
return triples;
|
|
11029
11027
|
}
|
|
11030
11028
|
};
|
|
11031
11029
|
var verb = {
|
|
@@ -12769,6 +12767,7 @@ var updateUnit = {
|
|
|
12769
12767
|
var update = {
|
|
12770
12768
|
name: "update",
|
|
12771
12769
|
impl: ({ ACTION, SUBRULE, CONSUME, OPTION1, OPTION2, context }) => () => {
|
|
12770
|
+
const blankLabelsUsedInInsertData = /* @__PURE__ */ new Set();
|
|
12772
12771
|
const prologueValues = SUBRULE(prologue);
|
|
12773
12772
|
const result = {
|
|
12774
12773
|
type: "update",
|
|
@@ -12778,12 +12777,6 @@ var update = {
|
|
|
12778
12777
|
};
|
|
12779
12778
|
OPTION1(() => {
|
|
12780
12779
|
const updateOperation = SUBRULE(update1);
|
|
12781
|
-
ACTION(() => {
|
|
12782
|
-
for (const label of context.usedBlankNodeLabels) {
|
|
12783
|
-
context.flushedBlankNodeLabels.add(label);
|
|
12784
|
-
}
|
|
12785
|
-
context.usedBlankNodeLabels.clear();
|
|
12786
|
-
});
|
|
12787
12780
|
const recursiveRes = OPTION2(() => {
|
|
12788
12781
|
CONSUME(symbols_exports.semi);
|
|
12789
12782
|
return SUBRULE(update);
|
|
@@ -13186,10 +13179,10 @@ function reifiedTripleBlockImpl(name, allowPath) {
|
|
|
13186
13179
|
name,
|
|
13187
13180
|
impl: ({ ACTION, SUBRULE }) => () => {
|
|
13188
13181
|
const triple = SUBRULE(reifiedTriple);
|
|
13189
|
-
const properties = SUBRULE(allowPath ? grammar_exports.propertyListPath : grammar_exports.propertyList);
|
|
13182
|
+
const properties = SUBRULE(allowPath ? grammar_exports.propertyListPath : grammar_exports.propertyList, triple.node);
|
|
13190
13183
|
return ACTION(() => [
|
|
13191
13184
|
...triple.triples,
|
|
13192
|
-
...properties
|
|
13185
|
+
...properties
|
|
13193
13186
|
]);
|
|
13194
13187
|
}
|
|
13195
13188
|
};
|
|
@@ -13238,32 +13231,30 @@ var triplesSameSubjectPath2 = triplesSameSubjectImpl2("triplesSameSubjectPath",
|
|
|
13238
13231
|
function objectImpl2(name, allowPaths) {
|
|
13239
13232
|
return {
|
|
13240
13233
|
name,
|
|
13241
|
-
impl: ({ ACTION, SUBRULE, context }) => () => {
|
|
13234
|
+
impl: ({ ACTION, SUBRULE, context }) => (subject, predicate) => {
|
|
13242
13235
|
const objectVal = SUBRULE(allowPaths ? graphNodePath2 : graphNode2);
|
|
13243
13236
|
const annotationVal = SUBRULE(allowPaths ? annotationPath : annotation);
|
|
13244
13237
|
return ACTION(() => {
|
|
13238
|
+
if ("type" in predicate && predicate.type === "path" && annotationVal.length > 0) {
|
|
13239
|
+
throw new Error("Note 17 violation");
|
|
13240
|
+
}
|
|
13245
13241
|
const result = [
|
|
13246
13242
|
// You parse the object
|
|
13247
|
-
|
|
13243
|
+
{ subject, predicate, object: objectVal.node },
|
|
13248
13244
|
// You might get some additional triples from parsing the object (like when it's a collection)
|
|
13249
|
-
...objectVal.triples
|
|
13245
|
+
...objectVal.triples
|
|
13250
13246
|
];
|
|
13251
13247
|
for (const annotation2 of annotationVal) {
|
|
13252
|
-
result.push((
|
|
13253
|
-
|
|
13254
|
-
|
|
13255
|
-
|
|
13256
|
-
|
|
13257
|
-
|
|
13258
|
-
|
|
13259
|
-
|
|
13260
|
-
|
|
13261
|
-
|
|
13262
|
-
objectVal.node
|
|
13263
|
-
)
|
|
13264
|
-
);
|
|
13265
|
-
});
|
|
13266
|
-
result.push(...annotation2.triples.map((triple) => () => triple));
|
|
13248
|
+
result.push(context.dataFactory.quad(
|
|
13249
|
+
annotation2.node,
|
|
13250
|
+
context.dataFactory.namedNode("http://www.w3.org/1999/02/22-rdf-syntax-ns#reifies" /* REIFIES */),
|
|
13251
|
+
context.dataFactory.quad(
|
|
13252
|
+
subject,
|
|
13253
|
+
predicate,
|
|
13254
|
+
objectVal.node
|
|
13255
|
+
)
|
|
13256
|
+
));
|
|
13257
|
+
result.push(...annotation2.triples);
|
|
13267
13258
|
}
|
|
13268
13259
|
return result;
|
|
13269
13260
|
});
|
|
@@ -13292,15 +13283,21 @@ function annotationImpl(name, allowPaths) {
|
|
|
13292
13283
|
currentReifier = node;
|
|
13293
13284
|
} },
|
|
13294
13285
|
{ ALT: () => {
|
|
13295
|
-
|
|
13286
|
+
let node;
|
|
13287
|
+
const block = SUBRULE(
|
|
13288
|
+
allowPaths ? annotationBlockPath : annotationBlock,
|
|
13289
|
+
ACTION(() => {
|
|
13290
|
+
if (currentReifier === void 0 && !context.parseMode.has(grammar_exports.canCreateBlankNodes)) {
|
|
13291
|
+
throw new Error("Cannot create blanknodes in current parse mode");
|
|
13292
|
+
}
|
|
13293
|
+
node = currentReifier ?? context.dataFactory.blankNode();
|
|
13294
|
+
return node;
|
|
13295
|
+
})
|
|
13296
|
+
);
|
|
13296
13297
|
ACTION(() => {
|
|
13297
|
-
if (currentReifier === void 0 && !context.parseMode.has(grammar_exports.canCreateBlankNodes)) {
|
|
13298
|
-
throw new Error("Cannot create blanknodes in current parse mode");
|
|
13299
|
-
}
|
|
13300
|
-
const node = currentReifier ?? context.dataFactory.blankNode();
|
|
13301
13298
|
annotations.push({
|
|
13302
13299
|
node,
|
|
13303
|
-
triples: block
|
|
13300
|
+
triples: block
|
|
13304
13301
|
});
|
|
13305
13302
|
currentReifier = void 0;
|
|
13306
13303
|
});
|
|
@@ -13319,9 +13316,9 @@ var annotation = annotationImpl("annotation", false);
|
|
|
13319
13316
|
function annotationBlockImpl(name, allowPaths) {
|
|
13320
13317
|
return {
|
|
13321
13318
|
name,
|
|
13322
|
-
impl: ({ SUBRULE, CONSUME }) => () => {
|
|
13319
|
+
impl: ({ SUBRULE, CONSUME }) => (subject) => {
|
|
13323
13320
|
CONSUME(annotationOpen);
|
|
13324
|
-
const res = SUBRULE(allowPaths ? grammar_exports.propertyListPathNotEmpty : grammar_exports.propertyListNotEmpty);
|
|
13321
|
+
const res = SUBRULE(allowPaths ? grammar_exports.propertyListPathNotEmpty : grammar_exports.propertyListNotEmpty, subject);
|
|
13325
13322
|
CONSUME(annotationClose);
|
|
13326
13323
|
return res;
|
|
13327
13324
|
}
|
package/lib/sparql12Types.d.ts
CHANGED
|
@@ -9,14 +9,6 @@ export type Triple = {
|
|
|
9
9
|
predicate: T11.IriTerm | T11.VariableTerm | T11.PropertyPath;
|
|
10
10
|
object: Term;
|
|
11
11
|
};
|
|
12
|
-
/**
|
|
13
|
-
* OVERRIDES: {@link T11.TripleCreatorS}
|
|
14
|
-
*/
|
|
15
|
-
export type TripleCreatorS = (part: Pick<Triple, 'subject'>) => Triple;
|
|
16
|
-
/**
|
|
17
|
-
* OVERRIDES: {@link T11.TripleCreatorSP}
|
|
18
|
-
*/
|
|
19
|
-
export type TripleCreatorSP = (part: Pick<Triple, 'subject' | 'predicate'>) => Triple;
|
|
20
12
|
/**
|
|
21
13
|
* OVERRIDES: {@link T11.ITriplesNode}
|
|
22
14
|
*/
|
package/lib/sparql12Types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sparql12Types.js","sourceRoot":"","sources":["sparql12Types.ts"],"names":[],"mappings":"","sourcesContent":["import type * as RdfJs from '@rdfjs/types';\nimport type * as T11 from '@traqula/rules-sparql-1-1';\n\nexport type BaseQuadTerm = RdfJs.BaseQuad;\nexport type GraphTerm = T11.GraphTerm | BaseQuadTerm;\nexport type Term = T11.Term | BaseQuadTerm;\nexport type Expression = T11.Expression | BaseQuadTerm;\n\nexport type Triple = {\n subject: Term;\n predicate: T11.IriTerm | T11.VariableTerm | T11.PropertyPath;\n object: Term;\n};\n\n/**\n * OVERRIDES: {@link T11.
|
|
1
|
+
{"version":3,"file":"sparql12Types.js","sourceRoot":"","sources":["sparql12Types.ts"],"names":[],"mappings":"","sourcesContent":["import type * as RdfJs from '@rdfjs/types';\nimport type * as T11 from '@traqula/rules-sparql-1-1';\n\nexport type BaseQuadTerm = RdfJs.BaseQuad;\nexport type GraphTerm = T11.GraphTerm | BaseQuadTerm;\nexport type Term = T11.Term | BaseQuadTerm;\nexport type Expression = T11.Expression | BaseQuadTerm;\n\nexport type Triple = {\n subject: Term;\n predicate: T11.IriTerm | T11.VariableTerm | T11.PropertyPath;\n object: Term;\n};\n\n/**\n * OVERRIDES: {@link T11.ITriplesNode}\n */\nexport interface ITriplesNode {\n node: T11.IriTerm | T11.BlankTerm;\n triples: Triple[];\n}\n\n/**\n * OVERRIDES: {@link T11.IGraphNode}\n */\nexport interface IGraphNode {\n node: ITriplesNode['node'] | Term;\n triples: Triple[];\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@traqula/rules-sparql-1-2",
|
|
3
|
-
"version": "0.0.1-alpha.
|
|
3
|
+
"version": "0.0.1-alpha.145+b7fd73e",
|
|
4
4
|
"description": "TRAQULA Lexer and Grammar Rules for sparql 1.2",
|
|
5
5
|
"lsd:module": true,
|
|
6
6
|
"license": "MIT",
|
|
@@ -38,11 +38,11 @@
|
|
|
38
38
|
"build:transpile": " node \"../../node_modules/esbuild/bin/esbuild\" --format=cjs --bundle --log-level=error --outfile=lib/index.cjs lib/index.ts"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@traqula/core": "^0.0.1-alpha.
|
|
42
|
-
"@traqula/rules-sparql-1-1": "^0.0.1-alpha.
|
|
41
|
+
"@traqula/core": "^0.0.1-alpha.145+b7fd73e",
|
|
42
|
+
"@traqula/rules-sparql-1-1": "^0.0.1-alpha.145+b7fd73e"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@rdfjs/types": "^2.0.0"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "b7fd73efdfc32dec46beaa040431ba031a723b53"
|
|
48
48
|
}
|