@comunica/actor-rdf-join-inner-multi-sequential 3.3.0 → 4.0.1-alpha.48.0
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/README.md +1 -1
- package/components/ActorRdfJoinMultiSequential.jsonld +44 -19
- package/components/components.jsonld +1 -1
- package/components/context.jsonld +7 -1
- package/lib/ActorRdfJoinMultiSequential.d.ts +3 -5
- package/lib/ActorRdfJoinMultiSequential.js +11 -7
- package/lib/ActorRdfJoinMultiSequential.js.map +1 -1
- package/package.json +13 -7
package/README.md
CHANGED
|
@@ -23,7 +23,7 @@ After installing, this package can be added to your engine's configuration as fo
|
|
|
23
23
|
{
|
|
24
24
|
"@context": [
|
|
25
25
|
...
|
|
26
|
-
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-rdf-join-inner-multi-sequential/^
|
|
26
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-rdf-join-inner-multi-sequential/^4.0.0/components/context.jsonld"
|
|
27
27
|
],
|
|
28
28
|
"actors": [
|
|
29
29
|
...
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"@context": [
|
|
3
|
-
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-rdf-join-inner-multi-sequential/^
|
|
4
|
-
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/core/^
|
|
5
|
-
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-join/^
|
|
3
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-rdf-join-inner-multi-sequential/^4.0.0/components/context.jsonld",
|
|
4
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/core/^4.0.0/components/context.jsonld",
|
|
5
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-join/^4.0.0/components/context.jsonld"
|
|
6
6
|
],
|
|
7
7
|
"@id": "npmd:@comunica/actor-rdf-join-inner-multi-sequential",
|
|
8
8
|
"components": [
|
|
@@ -44,29 +44,37 @@
|
|
|
44
44
|
"genericTypeInstances": [
|
|
45
45
|
{
|
|
46
46
|
"@type": "ParameterRangeGenericTypeReference",
|
|
47
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
47
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^4.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_I"
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
50
|
"@type": "ParameterRangeGenericTypeReference",
|
|
51
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
51
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^4.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_T"
|
|
52
52
|
},
|
|
53
53
|
{
|
|
54
54
|
"@type": "ParameterRangeGenericTypeReference",
|
|
55
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
55
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^4.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_O"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"@type": "ParameterRangeGenericTypeReference",
|
|
59
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^4.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_TS"
|
|
56
60
|
}
|
|
57
61
|
]
|
|
58
62
|
},
|
|
59
63
|
{
|
|
60
64
|
"@type": "ParameterRangeGenericTypeReference",
|
|
61
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
65
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^4.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_I"
|
|
62
66
|
},
|
|
63
67
|
{
|
|
64
68
|
"@type": "ParameterRangeGenericTypeReference",
|
|
65
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
69
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^4.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_T"
|
|
66
70
|
},
|
|
67
71
|
{
|
|
68
72
|
"@type": "ParameterRangeGenericTypeReference",
|
|
69
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
73
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^4.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_O"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"@type": "ParameterRangeGenericTypeReference",
|
|
77
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^4.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_TS"
|
|
70
78
|
}
|
|
71
79
|
]
|
|
72
80
|
},
|
|
@@ -76,6 +84,20 @@
|
|
|
76
84
|
},
|
|
77
85
|
"comment": "The bus this actor subscribes to."
|
|
78
86
|
},
|
|
87
|
+
{
|
|
88
|
+
"@id": "carjimse:components/ActorRdfJoinMultiSequential.jsonld#ActorRdfJoinMultiSequential_args_busFailMessage",
|
|
89
|
+
"range": {
|
|
90
|
+
"@type": "ParameterRangeUnion",
|
|
91
|
+
"parameterRangeElements": [
|
|
92
|
+
"xsd:string",
|
|
93
|
+
{
|
|
94
|
+
"@type": "ParameterRangeUndefined"
|
|
95
|
+
}
|
|
96
|
+
]
|
|
97
|
+
},
|
|
98
|
+
"default": "RDF joining failed: none of the configured actors were able to handle the join type ${action.type}",
|
|
99
|
+
"comment": "The message that will be configured in the bus for reporting failures. This message may be a template string that contains references to the executed `action`. For example, the following templated string is allowed: \"RDF dereferencing failed: no actors could handle ${action.handle.mediaType}\""
|
|
100
|
+
},
|
|
79
101
|
{
|
|
80
102
|
"@id": "carjimse:components/ActorRdfJoinMultiSequential.jsonld#ActorRdfJoinMultiSequential_args_beforeActors",
|
|
81
103
|
"range": {
|
|
@@ -89,15 +111,19 @@
|
|
|
89
111
|
"genericTypeInstances": [
|
|
90
112
|
{
|
|
91
113
|
"@type": "ParameterRangeGenericTypeReference",
|
|
92
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
114
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^4.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_I"
|
|
93
115
|
},
|
|
94
116
|
{
|
|
95
117
|
"@type": "ParameterRangeGenericTypeReference",
|
|
96
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
118
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^4.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_T"
|
|
97
119
|
},
|
|
98
120
|
{
|
|
99
121
|
"@type": "ParameterRangeGenericTypeReference",
|
|
100
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
122
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^4.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_O"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"@type": "ParameterRangeGenericTypeReference",
|
|
126
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^4.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_TS"
|
|
101
127
|
}
|
|
102
128
|
]
|
|
103
129
|
}
|
|
@@ -116,13 +142,6 @@
|
|
|
116
142
|
"memberFieldName": "mediatorJoin",
|
|
117
143
|
"range": "cc:components/Mediator.jsonld#Mediator"
|
|
118
144
|
},
|
|
119
|
-
{
|
|
120
|
-
"@id": "carjimse:components/ActorRdfJoinMultiSequential.jsonld#ActorRdfJoinMultiSequential__member_FACTORY",
|
|
121
|
-
"memberFieldName": "FACTORY",
|
|
122
|
-
"range": {
|
|
123
|
-
"@type": "ParameterRangeWildcard"
|
|
124
|
-
}
|
|
125
|
-
},
|
|
126
145
|
{
|
|
127
146
|
"@id": "carjimse:components/ActorRdfJoinMultiSequential.jsonld#ActorRdfJoinMultiSequential__member_constructor",
|
|
128
147
|
"memberFieldName": "constructor"
|
|
@@ -164,6 +183,12 @@
|
|
|
164
183
|
"@id": "carjimse:components/ActorRdfJoinMultiSequential.jsonld#ActorRdfJoinMultiSequential_args_bus"
|
|
165
184
|
}
|
|
166
185
|
},
|
|
186
|
+
{
|
|
187
|
+
"keyRaw": "busFailMessage",
|
|
188
|
+
"value": {
|
|
189
|
+
"@id": "carjimse:components/ActorRdfJoinMultiSequential.jsonld#ActorRdfJoinMultiSequential_args_busFailMessage"
|
|
190
|
+
}
|
|
191
|
+
},
|
|
167
192
|
{
|
|
168
193
|
"keyRaw": "beforeActors",
|
|
169
194
|
"value": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"@context": [
|
|
3
|
-
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-rdf-join-inner-multi-sequential/^
|
|
3
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-rdf-join-inner-multi-sequential/^4.0.0/components/context.jsonld"
|
|
4
4
|
],
|
|
5
5
|
"@id": "npmd:@comunica/actor-rdf-join-inner-multi-sequential",
|
|
6
6
|
"@type": "Module",
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"https://linkedsoftwaredependencies.org/bundles/npm/componentsjs/^6.0.0/components/context.jsonld",
|
|
4
4
|
{
|
|
5
5
|
"npmd": "https://linkedsoftwaredependencies.org/bundles/npm/",
|
|
6
|
-
"carjimse": "npmd:@comunica/actor-rdf-join-inner-multi-sequential/^
|
|
6
|
+
"carjimse": "npmd:@comunica/actor-rdf-join-inner-multi-sequential/^4.0.0/",
|
|
7
7
|
"ActorRdfJoinMultiSequential": {
|
|
8
8
|
"@id": "carjimse:components/ActorRdfJoinMultiSequential.jsonld#ActorRdfJoinMultiSequential",
|
|
9
9
|
"@prefix": true,
|
|
@@ -20,6 +20,9 @@
|
|
|
20
20
|
"args_bus": {
|
|
21
21
|
"@id": "carjimse:components/ActorRdfJoinMultiSequential.jsonld#ActorRdfJoinMultiSequential_args_bus"
|
|
22
22
|
},
|
|
23
|
+
"args_busFailMessage": {
|
|
24
|
+
"@id": "carjimse:components/ActorRdfJoinMultiSequential.jsonld#ActorRdfJoinMultiSequential_args_busFailMessage"
|
|
25
|
+
},
|
|
23
26
|
"args_beforeActors": {
|
|
24
27
|
"@id": "carjimse:components/ActorRdfJoinMultiSequential.jsonld#ActorRdfJoinMultiSequential_args_beforeActors",
|
|
25
28
|
"@container": "@list"
|
|
@@ -36,6 +39,9 @@
|
|
|
36
39
|
"bus": {
|
|
37
40
|
"@id": "carjimse:components/ActorRdfJoinMultiSequential.jsonld#ActorRdfJoinMultiSequential_args_bus"
|
|
38
41
|
},
|
|
42
|
+
"busFailMessage": {
|
|
43
|
+
"@id": "carjimse:components/ActorRdfJoinMultiSequential.jsonld#ActorRdfJoinMultiSequential_args_busFailMessage"
|
|
44
|
+
},
|
|
39
45
|
"beforeActors": {
|
|
40
46
|
"@id": "carjimse:components/ActorRdfJoinMultiSequential.jsonld#ActorRdfJoinMultiSequential_args_beforeActors",
|
|
41
47
|
"@container": "@list"
|
|
@@ -1,18 +1,16 @@
|
|
|
1
|
-
import type { IActionRdfJoin, IActorRdfJoinOutputInner, IActorRdfJoinArgs, MediatorRdfJoin } from '@comunica/bus-rdf-join';
|
|
1
|
+
import type { IActionRdfJoin, IActorRdfJoinOutputInner, IActorRdfJoinArgs, MediatorRdfJoin, IActorRdfJoinTestSideData } from '@comunica/bus-rdf-join';
|
|
2
2
|
import { ActorRdfJoin } from '@comunica/bus-rdf-join';
|
|
3
|
+
import type { TestResult } from '@comunica/core';
|
|
3
4
|
import type { IMediatorTypeJoinCoefficients } from '@comunica/mediatortype-join-coefficients';
|
|
4
|
-
import type { MetadataBindings } from '@comunica/types';
|
|
5
|
-
import { Factory } from 'sparqlalgebrajs';
|
|
6
5
|
/**
|
|
7
6
|
* A Multi Sequential RDF Join Actor.
|
|
8
7
|
* It accepts 3 or more streams, joins the first two, and joins the result with the remaining streams.
|
|
9
8
|
*/
|
|
10
9
|
export declare class ActorRdfJoinMultiSequential extends ActorRdfJoin {
|
|
11
10
|
readonly mediatorJoin: MediatorRdfJoin;
|
|
12
|
-
static readonly FACTORY: Factory;
|
|
13
11
|
constructor(args: IActorRdfJoinMultiSequentialArgs);
|
|
14
12
|
protected getOutput(action: IActionRdfJoin): Promise<IActorRdfJoinOutputInner>;
|
|
15
|
-
protected getJoinCoefficients(action: IActionRdfJoin,
|
|
13
|
+
protected getJoinCoefficients(action: IActionRdfJoin, sideData: IActorRdfJoinTestSideData): Promise<TestResult<IMediatorTypeJoinCoefficients, IActorRdfJoinTestSideData>>;
|
|
16
14
|
}
|
|
17
15
|
export interface IActorRdfJoinMultiSequentialArgs extends IActorRdfJoinArgs {
|
|
18
16
|
/**
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ActorRdfJoinMultiSequential = void 0;
|
|
4
|
-
const bus_query_operation_1 = require("@comunica/bus-query-operation");
|
|
5
4
|
const bus_rdf_join_1 = require("@comunica/bus-rdf-join");
|
|
5
|
+
const context_entries_1 = require("@comunica/context-entries");
|
|
6
|
+
const core_1 = require("@comunica/core");
|
|
7
|
+
const utils_query_operation_1 = require("@comunica/utils-query-operation");
|
|
6
8
|
const sparqlalgebrajs_1 = require("sparqlalgebrajs");
|
|
7
9
|
/**
|
|
8
10
|
* A Multi Sequential RDF Join Actor.
|
|
@@ -20,11 +22,13 @@ class ActorRdfJoinMultiSequential extends bus_rdf_join_1.ActorRdfJoin {
|
|
|
20
22
|
});
|
|
21
23
|
}
|
|
22
24
|
async getOutput(action) {
|
|
25
|
+
const dataFactory = action.context.getSafe(context_entries_1.KeysInitQuery.dataFactory);
|
|
26
|
+
const algebraFactory = new sparqlalgebrajs_1.Factory(dataFactory);
|
|
23
27
|
// Join the two first streams, and then join the result with the remaining streams
|
|
24
28
|
const firstEntry = {
|
|
25
|
-
output:
|
|
29
|
+
output: (0, utils_query_operation_1.getSafeBindings)(await this.mediatorJoin
|
|
26
30
|
.mediate({ type: action.type, entries: [action.entries[0], action.entries[1]], context: action.context })),
|
|
27
|
-
operation:
|
|
31
|
+
operation: algebraFactory
|
|
28
32
|
.createJoin([action.entries[0].operation, action.entries[1].operation], false),
|
|
29
33
|
};
|
|
30
34
|
const remainingEntries = action.entries.slice(1);
|
|
@@ -37,10 +41,11 @@ class ActorRdfJoinMultiSequential extends bus_rdf_join_1.ActorRdfJoin {
|
|
|
37
41
|
}),
|
|
38
42
|
};
|
|
39
43
|
}
|
|
40
|
-
async getJoinCoefficients(action,
|
|
44
|
+
async getJoinCoefficients(action, sideData) {
|
|
45
|
+
const { metadatas } = sideData;
|
|
41
46
|
const requestInitialTimes = bus_rdf_join_1.ActorRdfJoin.getRequestInitialTimes(metadatas);
|
|
42
47
|
const requestItemTimes = bus_rdf_join_1.ActorRdfJoin.getRequestItemTimes(metadatas);
|
|
43
|
-
return {
|
|
48
|
+
return (0, core_1.passTestWithSideData)({
|
|
44
49
|
iterations: metadatas[0].cardinality.value * metadatas[1].cardinality.value *
|
|
45
50
|
metadatas.slice(2).reduce((acc, metadata) => acc * metadata.cardinality.value, 1),
|
|
46
51
|
persistedItems: 0,
|
|
@@ -50,9 +55,8 @@ class ActorRdfJoinMultiSequential extends bus_rdf_join_1.ActorRdfJoin {
|
|
|
50
55
|
metadatas.slice(2)
|
|
51
56
|
.reduce((sum, metadata, i) => sum + requestInitialTimes[i] +
|
|
52
57
|
metadata.cardinality.value * requestItemTimes[i], 0),
|
|
53
|
-
};
|
|
58
|
+
}, sideData);
|
|
54
59
|
}
|
|
55
60
|
}
|
|
56
61
|
exports.ActorRdfJoinMultiSequential = ActorRdfJoinMultiSequential;
|
|
57
|
-
ActorRdfJoinMultiSequential.FACTORY = new sparqlalgebrajs_1.Factory();
|
|
58
62
|
//# sourceMappingURL=ActorRdfJoinMultiSequential.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActorRdfJoinMultiSequential.js","sourceRoot":"","sources":["ActorRdfJoinMultiSequential.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ActorRdfJoinMultiSequential.js","sourceRoot":"","sources":["ActorRdfJoinMultiSequential.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n IActionRdfJoin,\n IActorRdfJoinOutputInner,\n IActorRdfJoinArgs,\n MediatorRdfJoin,\n IActorRdfJoinTestSideData,\n} from '@comunica/bus-rdf-join';\nimport { ActorRdfJoin } from '@comunica/bus-rdf-join';\nimport { KeysInitQuery } from '@comunica/context-entries';\nimport type { TestResult } from '@comunica/core';\nimport { passTestWithSideData } from '@comunica/core';\nimport type { IMediatorTypeJoinCoefficients } from '@comunica/mediatortype-join-coefficients';\nimport type { IJoinEntry, ComunicaDataFactory } from '@comunica/types';\nimport { getSafeBindings } from '@comunica/utils-query-operation';\nimport { Factory } from 'sparqlalgebrajs';\n\n/**\n * A Multi Sequential RDF Join Actor.\n * It accepts 3 or more streams, joins the first two, and joins the result with the remaining streams.\n */\nexport class ActorRdfJoinMultiSequential extends ActorRdfJoin {\n public readonly mediatorJoin: MediatorRdfJoin;\n\n public constructor(args: IActorRdfJoinMultiSequentialArgs) {\n super(args, {\n logicalType: 'inner',\n physicalName: 'multi-sequential',\n limitEntries: 3,\n limitEntriesMin: true,\n canHandleUndefs: true,\n isLeaf: false,\n });\n }\n\n protected async getOutput(action: IActionRdfJoin): Promise<IActorRdfJoinOutputInner> {\n const dataFactory: ComunicaDataFactory = action.context.getSafe(KeysInitQuery.dataFactory);\n const algebraFactory = new Factory(dataFactory);\n\n // Join the two first streams, and then join the result with the remaining streams\n const firstEntry: IJoinEntry = {\n output: getSafeBindings(await this.mediatorJoin\n .mediate({ type: action.type, entries: [ action.entries[0], action.entries[1] ], context: action.context })),\n operation: algebraFactory\n .createJoin([ action.entries[0].operation, action.entries[1].operation ], false),\n };\n const remainingEntries: IJoinEntry[] = action.entries.slice(1);\n remainingEntries[0] = firstEntry;\n return {\n result: await this.mediatorJoin.mediate({\n type: action.type,\n entries: remainingEntries,\n context: action.context,\n }),\n };\n }\n\n protected async getJoinCoefficients(\n action: IActionRdfJoin,\n sideData: IActorRdfJoinTestSideData,\n ): Promise<TestResult<IMediatorTypeJoinCoefficients, IActorRdfJoinTestSideData>> {\n const { metadatas } = sideData;\n const requestInitialTimes = ActorRdfJoin.getRequestInitialTimes(metadatas);\n const requestItemTimes = ActorRdfJoin.getRequestItemTimes(metadatas);\n return passTestWithSideData({\n iterations: metadatas[0].cardinality.value * metadatas[1].cardinality.value *\n metadatas.slice(2).reduce((acc, metadata) => acc * metadata.cardinality.value, 1),\n persistedItems: 0,\n blockingItems: 0,\n requestTime: requestInitialTimes[0] + metadatas[0].cardinality.value * requestItemTimes[0] +\n requestInitialTimes[1] + metadatas[1].cardinality.value * requestItemTimes[1] +\n metadatas.slice(2)\n .reduce((sum, metadata, i) => sum + requestInitialTimes[i] +\n metadata.cardinality.value * requestItemTimes[i], 0),\n }, sideData);\n }\n}\n\nexport interface IActorRdfJoinMultiSequentialArgs extends IActorRdfJoinArgs {\n /**\n * A mediator for joining Bindings streams\n */\n mediatorJoin: MediatorRdfJoin;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@comunica/actor-rdf-join-inner-multi-sequential",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.1-alpha.48.0",
|
|
4
4
|
"description": "A multi-sequential rdf-join actor",
|
|
5
5
|
"lsd:module": true,
|
|
6
6
|
"license": "MIT",
|
|
7
|
+
"funding": {
|
|
8
|
+
"type": "opencollective",
|
|
9
|
+
"url": "https://opencollective.com/comunica-association"
|
|
10
|
+
},
|
|
7
11
|
"homepage": "https://comunica.dev/",
|
|
8
12
|
"repository": {
|
|
9
13
|
"type": "git",
|
|
@@ -37,11 +41,13 @@
|
|
|
37
41
|
"build:components": "componentsjs-generator"
|
|
38
42
|
},
|
|
39
43
|
"dependencies": {
|
|
40
|
-
"@comunica/bus-
|
|
41
|
-
"@comunica/
|
|
42
|
-
"@comunica/
|
|
43
|
-
"@comunica/
|
|
44
|
-
"
|
|
44
|
+
"@comunica/bus-rdf-join": "4.0.1-alpha.48.0",
|
|
45
|
+
"@comunica/context-entries": "4.0.1-alpha.48.0",
|
|
46
|
+
"@comunica/core": "4.0.1-alpha.48.0",
|
|
47
|
+
"@comunica/mediatortype-join-coefficients": "4.0.1-alpha.48.0",
|
|
48
|
+
"@comunica/types": "4.0.1-alpha.48.0",
|
|
49
|
+
"@comunica/utils-query-operation": "4.0.1-alpha.48.0",
|
|
50
|
+
"sparqlalgebrajs": "^4.3.8"
|
|
45
51
|
},
|
|
46
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "4cc37905eab2c94a2e1d9cee0f51c53604f07da1"
|
|
47
53
|
}
|