@comunica/actor-query-source-identify-hypermedia-qpf 4.5.0 → 5.0.2
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/components/ActorQuerySourceIdentifyHypermediaQpf.jsonld +15 -15
- package/components/QuerySourceQpf.jsonld +11 -9
- package/components/components.jsonld +1 -1
- package/components/context.jsonld +7 -7
- package/lib/ActorQuerySourceIdentifyHypermediaQpf.d.ts +0 -0
- package/lib/ActorQuerySourceIdentifyHypermediaQpf.js +18 -2
- package/lib/ActorQuerySourceIdentifyHypermediaQpf.js.map +1 -1
- package/lib/QuerySourceQpf.d.ts +5 -3
- package/lib/QuerySourceQpf.js +22 -1
- package/lib/QuerySourceQpf.js.map +1 -1
- package/lib/index.d.ts +0 -0
- package/lib/index.js +0 -0
- package/lib/index.js.map +0 -0
- package/package.json +19 -19
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"@context": [
|
|
3
|
-
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-query-source-identify-hypermedia-qpf/^
|
|
4
|
-
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/core/^
|
|
5
|
-
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-query-source-identify-hypermedia/^
|
|
3
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-query-source-identify-hypermedia-qpf/^5.0.0/components/context.jsonld",
|
|
4
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/core/^5.0.0/components/context.jsonld",
|
|
5
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-query-source-identify-hypermedia/^5.0.0/components/context.jsonld"
|
|
6
6
|
],
|
|
7
7
|
"@id": "npmd:@comunica/actor-query-source-identify-hypermedia-qpf",
|
|
8
8
|
"components": [
|
|
@@ -88,37 +88,37 @@
|
|
|
88
88
|
"genericTypeInstances": [
|
|
89
89
|
{
|
|
90
90
|
"@type": "ParameterRangeGenericTypeReference",
|
|
91
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
91
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^5.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_I"
|
|
92
92
|
},
|
|
93
93
|
{
|
|
94
94
|
"@type": "ParameterRangeGenericTypeReference",
|
|
95
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
95
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^5.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_T"
|
|
96
96
|
},
|
|
97
97
|
{
|
|
98
98
|
"@type": "ParameterRangeGenericTypeReference",
|
|
99
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
99
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^5.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_O"
|
|
100
100
|
},
|
|
101
101
|
{
|
|
102
102
|
"@type": "ParameterRangeGenericTypeReference",
|
|
103
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
103
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^5.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_TS"
|
|
104
104
|
}
|
|
105
105
|
]
|
|
106
106
|
},
|
|
107
107
|
{
|
|
108
108
|
"@type": "ParameterRangeGenericTypeReference",
|
|
109
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
109
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^5.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_I"
|
|
110
110
|
},
|
|
111
111
|
{
|
|
112
112
|
"@type": "ParameterRangeGenericTypeReference",
|
|
113
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
113
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^5.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_T"
|
|
114
114
|
},
|
|
115
115
|
{
|
|
116
116
|
"@type": "ParameterRangeGenericTypeReference",
|
|
117
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
117
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^5.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_O"
|
|
118
118
|
},
|
|
119
119
|
{
|
|
120
120
|
"@type": "ParameterRangeGenericTypeReference",
|
|
121
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
121
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^5.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_TS"
|
|
122
122
|
}
|
|
123
123
|
]
|
|
124
124
|
},
|
|
@@ -155,19 +155,19 @@
|
|
|
155
155
|
"genericTypeInstances": [
|
|
156
156
|
{
|
|
157
157
|
"@type": "ParameterRangeGenericTypeReference",
|
|
158
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
158
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^5.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_I"
|
|
159
159
|
},
|
|
160
160
|
{
|
|
161
161
|
"@type": "ParameterRangeGenericTypeReference",
|
|
162
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
162
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^5.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_T"
|
|
163
163
|
},
|
|
164
164
|
{
|
|
165
165
|
"@type": "ParameterRangeGenericTypeReference",
|
|
166
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
166
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^5.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_O"
|
|
167
167
|
},
|
|
168
168
|
{
|
|
169
169
|
"@type": "ParameterRangeGenericTypeReference",
|
|
170
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
170
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^5.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_TS"
|
|
171
171
|
}
|
|
172
172
|
]
|
|
173
173
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"@context": [
|
|
3
|
-
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-query-source-identify-hypermedia-qpf/^
|
|
4
|
-
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/core/^
|
|
5
|
-
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-rdf-metadata-extract-hydra-controls/^
|
|
3
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-query-source-identify-hypermedia-qpf/^5.0.0/components/context.jsonld",
|
|
4
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/core/^5.0.0/components/context.jsonld",
|
|
5
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-rdf-metadata-extract-hydra-controls/^5.0.0/components/context.jsonld"
|
|
6
6
|
],
|
|
7
7
|
"@id": "npmd:@comunica/actor-query-source-identify-hypermedia-qpf",
|
|
8
8
|
"components": [
|
|
@@ -11,12 +11,6 @@
|
|
|
11
11
|
"@type": "Class",
|
|
12
12
|
"requireElement": "QuerySourceQpf",
|
|
13
13
|
"parameters": [
|
|
14
|
-
{
|
|
15
|
-
"@id": "caqsihq:components/QuerySourceQpf.jsonld#QuerySourceQpf_algebraFactory",
|
|
16
|
-
"range": {
|
|
17
|
-
"@type": "ParameterRangeWildcard"
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
14
|
{
|
|
21
15
|
"@id": "caqsihq:components/QuerySourceQpf.jsonld#QuerySourceQpf_subjectUri",
|
|
22
16
|
"range": "xsd:string"
|
|
@@ -37,6 +31,10 @@
|
|
|
37
31
|
"@id": "caqsihq:components/QuerySourceQpf.jsonld#QuerySourceQpf_bindingsRestricted",
|
|
38
32
|
"range": "xsd:boolean"
|
|
39
33
|
},
|
|
34
|
+
{
|
|
35
|
+
"@id": "caqsihq:components/QuerySourceQpf.jsonld#QuerySourceQpf_algebraFactory",
|
|
36
|
+
"range": "urn:npm:@traqula/algebra-transformations-1-1:AlgebraFactory"
|
|
37
|
+
},
|
|
40
38
|
{
|
|
41
39
|
"@id": "caqsihq:components/QuerySourceQpf.jsonld#QuerySourceQpf_bindingsFactory",
|
|
42
40
|
"range": "urn:npm:@comunica/utils-bindings-factory:BindingsFactory"
|
|
@@ -187,6 +185,10 @@
|
|
|
187
185
|
"@id": "caqsihq:components/QuerySourceQpf.jsonld#QuerySourceQpf__member_constructor",
|
|
188
186
|
"memberFieldName": "constructor"
|
|
189
187
|
},
|
|
188
|
+
{
|
|
189
|
+
"@id": "caqsihq:components/QuerySourceQpf.jsonld#QuerySourceQpf__member_getFilterFactor",
|
|
190
|
+
"memberFieldName": "getFilterFactor"
|
|
191
|
+
},
|
|
190
192
|
{
|
|
191
193
|
"@id": "caqsihq:components/QuerySourceQpf.jsonld#QuerySourceQpf__member_getSelectorShape",
|
|
192
194
|
"memberFieldName": "getSelectorShape"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"@context": [
|
|
3
|
-
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-query-source-identify-hypermedia-qpf/^
|
|
3
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-query-source-identify-hypermedia-qpf/^5.0.0/components/context.jsonld"
|
|
4
4
|
],
|
|
5
5
|
"@id": "npmd:@comunica/actor-query-source-identify-hypermedia-qpf",
|
|
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
|
-
"caqsihq": "npmd:@comunica/actor-query-source-identify-hypermedia-qpf/^
|
|
6
|
+
"caqsihq": "npmd:@comunica/actor-query-source-identify-hypermedia-qpf/^5.0.0/",
|
|
7
7
|
"ActorQuerySourceIdentifyHypermediaQpf": {
|
|
8
8
|
"@id": "caqsihq:components/ActorQuerySourceIdentifyHypermediaQpf.jsonld#ActorQuerySourceIdentifyHypermediaQpf",
|
|
9
9
|
"@prefix": true,
|
|
@@ -93,9 +93,6 @@
|
|
|
93
93
|
"@id": "caqsihq:components/QuerySourceQpf.jsonld#QuerySourceQpf",
|
|
94
94
|
"@prefix": true,
|
|
95
95
|
"@context": {
|
|
96
|
-
"algebraFactory": {
|
|
97
|
-
"@id": "caqsihq:components/QuerySourceQpf.jsonld#QuerySourceQpf_algebraFactory"
|
|
98
|
-
},
|
|
99
96
|
"subjectUri": {
|
|
100
97
|
"@id": "caqsihq:components/QuerySourceQpf.jsonld#QuerySourceQpf_subjectUri"
|
|
101
98
|
},
|
|
@@ -111,6 +108,9 @@
|
|
|
111
108
|
"bindingsRestricted": {
|
|
112
109
|
"@id": "caqsihq:components/QuerySourceQpf.jsonld#QuerySourceQpf_bindingsRestricted"
|
|
113
110
|
},
|
|
111
|
+
"algebraFactory": {
|
|
112
|
+
"@id": "caqsihq:components/QuerySourceQpf.jsonld#QuerySourceQpf_algebraFactory"
|
|
113
|
+
},
|
|
114
114
|
"bindingsFactory": {
|
|
115
115
|
"@id": "caqsihq:components/QuerySourceQpf.jsonld#QuerySourceQpf_bindingsFactory"
|
|
116
116
|
},
|
|
@@ -136,15 +136,15 @@
|
|
|
136
136
|
"dataFactory": {
|
|
137
137
|
"@id": "caqsihq:components/QuerySourceQpf.jsonld#QuerySourceQpf_dataFactory"
|
|
138
138
|
},
|
|
139
|
-
"ry": {
|
|
140
|
-
"@id": "caqsihq:components/QuerySourceQpf.jsonld#QuerySourceQpf_algebraFactory"
|
|
141
|
-
},
|
|
142
139
|
"": {
|
|
143
140
|
"@id": "caqsihq:components/QuerySourceQpf.jsonld#QuerySourceQpf_initialQuads"
|
|
144
141
|
},
|
|
145
142
|
"ricted": {
|
|
146
143
|
"@id": "caqsihq:components/QuerySourceQpf.jsonld#QuerySourceQpf_bindingsRestricted"
|
|
147
144
|
},
|
|
145
|
+
"ry": {
|
|
146
|
+
"@id": "caqsihq:components/QuerySourceQpf.jsonld#QuerySourceQpf_algebraFactory"
|
|
147
|
+
},
|
|
148
148
|
"ory": {
|
|
149
149
|
"@id": "caqsihq:components/QuerySourceQpf.jsonld#QuerySourceQpf_bindingsFactory"
|
|
150
150
|
},
|
|
File without changes
|
|
@@ -4,15 +4,31 @@ exports.ActorQuerySourceIdentifyHypermediaQpf = void 0;
|
|
|
4
4
|
const bus_query_source_identify_hypermedia_1 = require("@comunica/bus-query-source-identify-hypermedia");
|
|
5
5
|
const context_entries_1 = require("@comunica/context-entries");
|
|
6
6
|
const core_1 = require("@comunica/core");
|
|
7
|
+
const utils_algebra_1 = require("@comunica/utils-algebra");
|
|
7
8
|
const utils_bindings_factory_1 = require("@comunica/utils-bindings-factory");
|
|
8
|
-
const sparqlalgebrajs_1 = require("sparqlalgebrajs");
|
|
9
9
|
const QuerySourceQpf_1 = require("./QuerySourceQpf");
|
|
10
10
|
/**
|
|
11
11
|
* A comunica QPF Query Source Identify Hypermedia Actor.
|
|
12
12
|
*/
|
|
13
13
|
class ActorQuerySourceIdentifyHypermediaQpf extends bus_query_source_identify_hypermedia_1.ActorQuerySourceIdentifyHypermedia {
|
|
14
|
+
mediatorMetadata;
|
|
15
|
+
mediatorMetadataExtract;
|
|
16
|
+
mediatorDereferenceRdf;
|
|
17
|
+
mediatorMergeBindingsContext;
|
|
18
|
+
subjectUri;
|
|
19
|
+
predicateUri;
|
|
20
|
+
objectUri;
|
|
21
|
+
graphUri;
|
|
14
22
|
constructor(args) {
|
|
15
23
|
super(args, 'qpf');
|
|
24
|
+
this.mediatorMetadata = args.mediatorMetadata;
|
|
25
|
+
this.mediatorMetadataExtract = args.mediatorMetadataExtract;
|
|
26
|
+
this.mediatorDereferenceRdf = args.mediatorDereferenceRdf;
|
|
27
|
+
this.mediatorMergeBindingsContext = args.mediatorMergeBindingsContext;
|
|
28
|
+
this.subjectUri = args.subjectUri;
|
|
29
|
+
this.predicateUri = args.predicateUri;
|
|
30
|
+
this.objectUri = args.objectUri;
|
|
31
|
+
this.graphUri = args.graphUri;
|
|
16
32
|
}
|
|
17
33
|
async test(action) {
|
|
18
34
|
if (action.forceSourceType && (action.forceSourceType !== 'qpf' && action.forceSourceType !== 'brtpf')) {
|
|
@@ -42,7 +58,7 @@ class ActorQuerySourceIdentifyHypermediaQpf extends bus_query_source_identify_hy
|
|
|
42
58
|
}
|
|
43
59
|
async createSource(url, metadata, context, bindingsRestricted, quads) {
|
|
44
60
|
const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);
|
|
45
|
-
const algebraFactory = new
|
|
61
|
+
const algebraFactory = new utils_algebra_1.AlgebraFactory(dataFactory);
|
|
46
62
|
return new QuerySourceQpf_1.QuerySourceQpf(this.mediatorMetadata, this.mediatorMetadataExtract, this.mediatorDereferenceRdf, dataFactory, algebraFactory, await utils_bindings_factory_1.BindingsFactory.create(this.mediatorMergeBindingsContext, context, dataFactory), this.subjectUri, this.predicateUri, this.objectUri, this.graphUri, url, metadata, bindingsRestricted, quads);
|
|
47
63
|
}
|
|
48
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActorQuerySourceIdentifyHypermediaQpf.js","sourceRoot":"","sources":["ActorQuerySourceIdentifyHypermediaQpf.ts"],"names":[],"mappings":";;;AAQA,yGAEwD;AAGxD,+DAA0D;AAE1D,yCAAoD;AAEpD,6EAAmE;AAEnE,
|
|
1
|
+
{"version":3,"file":"ActorQuerySourceIdentifyHypermediaQpf.js","sourceRoot":"","sources":["ActorQuerySourceIdentifyHypermediaQpf.ts"],"names":[],"mappings":"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","sourcesContent":["import type { MediatorDereferenceRdf } from '@comunica/bus-dereference-rdf';\nimport type { MediatorMergeBindingsContext } from '@comunica/bus-merge-bindings-context';\nimport type {\n IActionQuerySourceIdentifyHypermedia,\n IActorQuerySourceIdentifyHypermediaOutput,\n IActorQuerySourceIdentifyHypermediaArgs,\n IActorQuerySourceIdentifyHypermediaTest,\n} from '@comunica/bus-query-source-identify-hypermedia';\nimport {\n ActorQuerySourceIdentifyHypermedia,\n} from '@comunica/bus-query-source-identify-hypermedia';\nimport type { MediatorRdfMetadata } from '@comunica/bus-rdf-metadata';\nimport type { MediatorRdfMetadataExtract } from '@comunica/bus-rdf-metadata-extract';\nimport { KeysInitQuery } from '@comunica/context-entries';\nimport type { TestResult } from '@comunica/core';\nimport { failTest, passTest } from '@comunica/core';\nimport type { ComunicaDataFactory, IActionContext } from '@comunica/types';\nimport { AlgebraFactory } from '@comunica/utils-algebra';\nimport { BindingsFactory } from '@comunica/utils-bindings-factory';\nimport type * as RDF from '@rdfjs/types';\nimport { QuerySourceQpf } from './QuerySourceQpf';\n\n/**\n * A comunica QPF Query Source Identify Hypermedia Actor.\n */\nexport class ActorQuerySourceIdentifyHypermediaQpf extends ActorQuerySourceIdentifyHypermedia\n implements IActorQuerySourceIdentifyHypermediaQpfArgs {\n public readonly mediatorMetadata: MediatorRdfMetadata;\n public readonly mediatorMetadataExtract: MediatorRdfMetadataExtract;\n public readonly mediatorDereferenceRdf: MediatorDereferenceRdf;\n public readonly mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n public readonly subjectUri: string;\n public readonly predicateUri: string;\n public readonly objectUri: string;\n public readonly graphUri?: string;\n\n public constructor(args: IActorQuerySourceIdentifyHypermediaQpfArgs) {\n super(args, 'qpf');\n this.mediatorMetadata = args.mediatorMetadata;\n this.mediatorMetadataExtract = args.mediatorMetadataExtract;\n this.mediatorDereferenceRdf = args.mediatorDereferenceRdf;\n this.mediatorMergeBindingsContext = args.mediatorMergeBindingsContext;\n this.subjectUri = args.subjectUri;\n this.predicateUri = args.predicateUri;\n this.objectUri = args.objectUri;\n this.graphUri = args.graphUri;\n }\n\n public override async test(\n action: IActionQuerySourceIdentifyHypermedia,\n ): Promise<TestResult<IActorQuerySourceIdentifyHypermediaTest>> {\n if (action.forceSourceType && (action.forceSourceType !== 'qpf' && action.forceSourceType !== 'brtpf')) {\n return failTest(`Actor ${this.name} is not able to handle source type ${action.forceSourceType}.`);\n }\n return this.testMetadata(action);\n }\n\n public async testMetadata(\n action: IActionQuerySourceIdentifyHypermedia,\n ): Promise<TestResult<IActorQuerySourceIdentifyHypermediaTest>> {\n const { searchForm } = await this.createSource(\n action.url,\n action.metadata,\n action.context,\n action.forceSourceType === 'brtpf',\n );\n if (!searchForm) {\n return failTest('Illegal state: found no TPF/QPF search form anymore in metadata.');\n }\n if (action.handledDatasets && action.handledDatasets[searchForm.dataset]) {\n return failTest(`Actor ${this.name} can only be applied for the first page of a QPF dataset.`);\n }\n return passTest({ filterFactor: 1 });\n }\n\n /**\n * Look for the search form\n * @param {IActionRdfResolveHypermedia} action the metadata to look for the form.\n * @return {Promise<IActorRdfResolveHypermediaOutput>} A promise resolving to a hypermedia form.\n */\n public async run(action: IActionQuerySourceIdentifyHypermedia): Promise<IActorQuerySourceIdentifyHypermediaOutput> {\n this.logInfo(action.context, `Identified as qpf source: ${action.url}`);\n const source = await this.createSource(\n action.url,\n action.metadata,\n action.context,\n action.forceSourceType === 'brtpf',\n action.quads,\n );\n return { source, dataset: source.searchForm.dataset };\n }\n\n protected async createSource(\n url: string,\n metadata: Record<string, any>,\n context: IActionContext,\n bindingsRestricted: boolean,\n quads?: RDF.Stream,\n ): Promise<QuerySourceQpf> {\n const dataFactory: ComunicaDataFactory = context.getSafe(KeysInitQuery.dataFactory);\n const algebraFactory = new AlgebraFactory(dataFactory);\n return new QuerySourceQpf(\n this.mediatorMetadata,\n this.mediatorMetadataExtract,\n this.mediatorDereferenceRdf,\n dataFactory,\n algebraFactory,\n await BindingsFactory.create(this.mediatorMergeBindingsContext, context, dataFactory),\n this.subjectUri,\n this.predicateUri,\n this.objectUri,\n this.graphUri,\n url,\n metadata,\n bindingsRestricted,\n quads,\n );\n }\n}\n\nexport interface IActorQuerySourceIdentifyHypermediaQpfArgs extends IActorQuerySourceIdentifyHypermediaArgs {\n /**\n * The metadata mediator\n */\n mediatorMetadata: MediatorRdfMetadata;\n /**\n * The metadata extract mediator\n */\n mediatorMetadataExtract: MediatorRdfMetadataExtract;\n /**\n * The RDF dereference mediator\n */\n mediatorDereferenceRdf: MediatorDereferenceRdf;\n /**\n * A mediator for creating binding context merge handlers\n */\n mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n /**\n * The URI that should be interpreted as subject URI\n * @default {http://www.w3.org/1999/02/22-rdf-syntax-ns#subject}\n */\n subjectUri: string;\n /**\n * The URI that should be interpreted as predicate URI\n * @default {http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate}\n */\n predicateUri: string;\n /**\n * The URI that should be interpreted as object URI\n * @default {http://www.w3.org/1999/02/22-rdf-syntax-ns#object}\n */\n objectUri: string;\n /**\n * The URI that should be interpreted as graph URI\n * @default {http://www.w3.org/ns/sparql-service-description#graph}\n */\n graphUri?: string;\n}\n"]}
|
package/lib/QuerySourceQpf.d.ts
CHANGED
|
@@ -3,10 +3,11 @@ import type { MediatorDereferenceRdf } from '@comunica/bus-dereference-rdf';
|
|
|
3
3
|
import type { MediatorRdfMetadata } from '@comunica/bus-rdf-metadata';
|
|
4
4
|
import type { MediatorRdfMetadataExtract } from '@comunica/bus-rdf-metadata-extract';
|
|
5
5
|
import type { IQuerySource, BindingsStream, IActionContext, FragmentSelectorShape, IQueryBindingsOptions, MetadataBindings, ComunicaDataFactory } from '@comunica/types';
|
|
6
|
+
import type { AlgebraFactory } from '@comunica/utils-algebra';
|
|
7
|
+
import { Algebra } from '@comunica/utils-algebra';
|
|
6
8
|
import type { BindingsFactory } from '@comunica/utils-bindings-factory';
|
|
7
9
|
import type * as RDF from '@rdfjs/types';
|
|
8
10
|
import type { AsyncIterator } from 'asynciterator';
|
|
9
|
-
import type { Algebra, Factory } from 'sparqlalgebrajs';
|
|
10
11
|
export declare class QuerySourceQpf implements IQuerySource {
|
|
11
12
|
protected readonly selectorShape: FragmentSelectorShape;
|
|
12
13
|
readonly searchForm: ISearchForm;
|
|
@@ -25,7 +26,8 @@ export declare class QuerySourceQpf implements IQuerySource {
|
|
|
25
26
|
private readonly defaultGraph?;
|
|
26
27
|
private readonly bindingsRestricted;
|
|
27
28
|
private readonly cachedQuads;
|
|
28
|
-
constructor(mediatorMetadata: MediatorRdfMetadata, mediatorMetadataExtract: MediatorRdfMetadataExtract, mediatorDereferenceRdf: MediatorDereferenceRdf, dataFactory: ComunicaDataFactory, algebraFactory:
|
|
29
|
+
constructor(mediatorMetadata: MediatorRdfMetadata, mediatorMetadataExtract: MediatorRdfMetadataExtract, mediatorDereferenceRdf: MediatorDereferenceRdf, dataFactory: ComunicaDataFactory, algebraFactory: AlgebraFactory, bindingsFactory: BindingsFactory, subjectUri: string, predicateUri: string, objectUri: string, graphUri: string | undefined, url: string, metadata: Record<string, any>, bindingsRestricted: boolean, initialQuads?: RDF.Stream);
|
|
30
|
+
getFilterFactor(): Promise<number>;
|
|
29
31
|
getSelectorShape(): Promise<FragmentSelectorShape>;
|
|
30
32
|
queryBindings(operation: Algebra.Operation, context: IActionContext, options?: IQueryBindingsOptions): BindingsStream;
|
|
31
33
|
/**
|
|
@@ -68,5 +70,5 @@ export declare class QuerySourceQpf implements IQuerySource {
|
|
|
68
70
|
protected getCachedQuads(subject: RDF.Term, predicate: RDF.Term, object: RDF.Term, graph: RDF.Term): AsyncIterator<RDF.Quad> | undefined;
|
|
69
71
|
queryQuads(_operation: Algebra.Operation, _context: IActionContext): AsyncIterator<RDF.Quad>;
|
|
70
72
|
queryBoolean(_operation: Algebra.Ask, _context: IActionContext): Promise<boolean>;
|
|
71
|
-
queryVoid(_operation: Algebra.
|
|
73
|
+
queryVoid(_operation: Algebra.Operation, _context: IActionContext): Promise<void>;
|
|
72
74
|
}
|
package/lib/QuerySourceQpf.js
CHANGED
|
@@ -3,12 +3,30 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.QuerySourceQpf = void 0;
|
|
4
4
|
const bus_query_source_identify_1 = require("@comunica/bus-query-source-identify");
|
|
5
5
|
const context_entries_1 = require("@comunica/context-entries");
|
|
6
|
+
const utils_algebra_1 = require("@comunica/utils-algebra");
|
|
6
7
|
const utils_metadata_1 = require("@comunica/utils-metadata");
|
|
7
8
|
const asynciterator_1 = require("asynciterator");
|
|
8
9
|
const rdf_string_1 = require("rdf-string");
|
|
9
10
|
const rdf_string_ttl_1 = require("rdf-string-ttl");
|
|
10
11
|
const rdf_terms_1 = require("rdf-terms");
|
|
11
12
|
class QuerySourceQpf {
|
|
13
|
+
selectorShape;
|
|
14
|
+
searchForm;
|
|
15
|
+
mediatorMetadata;
|
|
16
|
+
mediatorMetadataExtract;
|
|
17
|
+
mediatorDereferenceRdf;
|
|
18
|
+
dataFactory;
|
|
19
|
+
algebraFactory;
|
|
20
|
+
bindingsFactory;
|
|
21
|
+
referenceValue;
|
|
22
|
+
subjectUri;
|
|
23
|
+
predicateUri;
|
|
24
|
+
objectUri;
|
|
25
|
+
graphUri;
|
|
26
|
+
url;
|
|
27
|
+
defaultGraph;
|
|
28
|
+
bindingsRestricted;
|
|
29
|
+
cachedQuads;
|
|
12
30
|
constructor(mediatorMetadata, mediatorMetadataExtract, mediatorDereferenceRdf, dataFactory, algebraFactory, bindingsFactory, subjectUri, predicateUri, objectUri, graphUri, url, metadata, bindingsRestricted, initialQuads) {
|
|
13
31
|
this.referenceValue = url;
|
|
14
32
|
this.mediatorMetadata = mediatorMetadata;
|
|
@@ -64,11 +82,14 @@ class QuerySourceQpf {
|
|
|
64
82
|
],
|
|
65
83
|
};
|
|
66
84
|
}
|
|
85
|
+
async getFilterFactor() {
|
|
86
|
+
return 1;
|
|
87
|
+
}
|
|
67
88
|
async getSelectorShape() {
|
|
68
89
|
return this.selectorShape;
|
|
69
90
|
}
|
|
70
91
|
queryBindings(operation, context, options) {
|
|
71
|
-
if (operation.
|
|
92
|
+
if (!(0, utils_algebra_1.isKnownOperation)(operation, utils_algebra_1.Algebra.Types.PATTERN)) {
|
|
72
93
|
throw new Error(`Attempted to pass non-pattern operation '${operation.type}' to QuerySourceQpf`);
|
|
73
94
|
}
|
|
74
95
|
const unionDefaultGraph = Boolean(context.get(context_entries_1.KeysQueryOperation.unionDefaultGraph));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuerySourceQpf.js","sourceRoot":"","sources":["QuerySourceQpf.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ISearchForm } from '@comunica/actor-rdf-metadata-extract-hydra-controls';\nimport type { MediatorDereferenceRdf } from '@comunica/bus-dereference-rdf';\nimport { filterMatchingQuotedQuads, quadsToBindings } from '@comunica/bus-query-source-identify';\nimport type { MediatorRdfMetadata, IActorRdfMetadataOutput } from '@comunica/bus-rdf-metadata';\nimport type { MediatorRdfMetadataExtract } from '@comunica/bus-rdf-metadata-extract';\nimport { KeysQueryOperation } from '@comunica/context-entries';\nimport type {\n IQuerySource,\n BindingsStream,\n IActionContext,\n FragmentSelectorShape,\n IQueryBindingsOptions,\n MetadataBindings,\n ComunicaDataFactory,\n} from '@comunica/types';\nimport type { BindingsFactory } from '@comunica/utils-bindings-factory';\nimport { MetadataValidationState } from '@comunica/utils-metadata';\nimport type * as RDF from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport { ArrayIterator, TransformIterator, wrap } from 'asynciterator';\nimport { termToString } from 'rdf-string';\nimport { termToString as termToStringTtl } from 'rdf-string-ttl';\nimport {\n everyTermsNested,\n mapTerms,\n matchPattern,\n} from 'rdf-terms';\nimport type { Algebra, Factory } from 'sparqlalgebrajs';\n\nexport class QuerySourceQpf implements IQuerySource {\n protected readonly selectorShape: FragmentSelectorShape;\n\n public readonly searchForm: ISearchForm;\n\n private readonly mediatorMetadata: MediatorRdfMetadata;\n private readonly mediatorMetadataExtract: MediatorRdfMetadataExtract;\n private readonly mediatorDereferenceRdf: MediatorDereferenceRdf;\n private readonly dataFactory: ComunicaDataFactory;\n private readonly algebraFactory: Factory;\n private readonly bindingsFactory: BindingsFactory;\n\n public readonly referenceValue: string;\n private readonly subjectUri: string;\n private readonly predicateUri: string;\n private readonly objectUri: string;\n private readonly graphUri?: string;\n private readonly url: string;\n private readonly defaultGraph?: RDF.NamedNode;\n private readonly bindingsRestricted: boolean;\n private readonly cachedQuads: Record<string, AsyncIterator<RDF.Quad>>;\n\n public constructor(\n mediatorMetadata: MediatorRdfMetadata,\n mediatorMetadataExtract: MediatorRdfMetadataExtract,\n mediatorDereferenceRdf: MediatorDereferenceRdf,\n dataFactory: ComunicaDataFactory,\n algebraFactory: Factory,\n bindingsFactory: BindingsFactory,\n subjectUri: string,\n predicateUri: string,\n objectUri: string,\n graphUri: string | undefined,\n url: string,\n metadata: Record<string, any>,\n bindingsRestricted: boolean,\n initialQuads?: RDF.Stream,\n ) {\n this.referenceValue = url;\n this.mediatorMetadata = mediatorMetadata;\n this.mediatorMetadataExtract = mediatorMetadataExtract;\n this.mediatorDereferenceRdf = mediatorDereferenceRdf;\n this.dataFactory = dataFactory;\n this.algebraFactory = algebraFactory;\n this.bindingsFactory = bindingsFactory;\n this.subjectUri = subjectUri;\n this.predicateUri = predicateUri;\n this.objectUri = objectUri;\n this.graphUri = graphUri;\n this.url = url;\n this.bindingsRestricted = bindingsRestricted;\n this.cachedQuads = {};\n this.searchForm = this.getSearchForm(metadata)!;\n this.defaultGraph = metadata.defaultGraph ? this.dataFactory.namedNode(metadata.defaultGraph) : undefined;\n if (initialQuads) {\n let wrappedQuads: AsyncIterator<RDF.Quad> = wrap<RDF.Quad>(initialQuads);\n if (this.defaultGraph) {\n wrappedQuads = this.reverseMapQuadsToDefaultGraph(wrappedQuads);\n }\n metadata = { ...metadata, state: new MetadataValidationState() };\n wrappedQuads.setProperty('metadata', metadata);\n this.cacheQuads(\n wrappedQuads,\n this.dataFactory.variable(''),\n this.dataFactory.variable(''),\n this.dataFactory.variable(''),\n this.dataFactory.variable(''),\n );\n }\n\n this.selectorShape = this.bindingsRestricted ?\n {\n type: 'operation',\n operation: {\n operationType: 'pattern',\n pattern: this.algebraFactory.createPattern(\n this.dataFactory.variable('s'),\n this.dataFactory.variable('p'),\n this.dataFactory.variable('o'),\n this.dataFactory.variable('g'),\n ),\n },\n variablesOptional: [\n this.dataFactory.variable('s'),\n this.dataFactory.variable('p'),\n this.dataFactory.variable('o'),\n this.dataFactory.variable('g'),\n ],\n filterBindings: true,\n } :\n {\n type: 'operation',\n operation: {\n operationType: 'pattern',\n pattern: this.algebraFactory.createPattern(\n this.dataFactory.variable('s'),\n this.dataFactory.variable('p'),\n this.dataFactory.variable('o'),\n this.dataFactory.variable('g'),\n ),\n },\n variablesOptional: [\n this.dataFactory.variable('s'),\n this.dataFactory.variable('p'),\n this.dataFactory.variable('o'),\n this.dataFactory.variable('g'),\n ],\n };\n }\n\n public async getSelectorShape(): Promise<FragmentSelectorShape> {\n return this.selectorShape;\n }\n\n public queryBindings(\n operation: Algebra.Operation,\n context: IActionContext,\n options?: IQueryBindingsOptions,\n ): BindingsStream {\n if (operation.type !== 'pattern') {\n throw new Error(`Attempted to pass non-pattern operation '${operation.type}' to QuerySourceQpf`);\n }\n\n const unionDefaultGraph = Boolean(context.get(KeysQueryOperation.unionDefaultGraph));\n\n // Create an async iterator from the matched quad stream\n let it = this.match(\n operation.subject,\n operation.predicate,\n operation.object,\n operation.graph,\n unionDefaultGraph,\n context,\n options,\n );\n\n it = filterMatchingQuotedQuads(operation, it);\n return quadsToBindings(it, operation, this.dataFactory, this.bindingsFactory, unionDefaultGraph);\n }\n\n /**\n * Get a first QPF search form.\n * @param {{[p: string]: any}} metadata A metadata object.\n * @return {ISearchForm} A search form, or null if none could be found.\n */\n public getSearchForm(metadata: Record<string, any>): ISearchForm | undefined {\n if (!metadata.searchForms || !metadata.searchForms.values) {\n return;\n }\n\n // Find a quad pattern or triple pattern search form\n const { searchForms } = metadata;\n for (const searchForm of searchForms.values) {\n if (this.graphUri &&\n this.subjectUri in searchForm.mappings &&\n this.predicateUri in searchForm.mappings &&\n this.objectUri in searchForm.mappings &&\n this.graphUri in searchForm.mappings &&\n Object.keys(searchForm.mappings).length === 4) {\n return searchForm;\n }\n if (this.subjectUri in searchForm.mappings &&\n this.predicateUri in searchForm.mappings &&\n this.objectUri in searchForm.mappings &&\n Object.keys(searchForm.mappings).length === 3) {\n return searchForm;\n }\n }\n }\n\n /**\n * Create a QPF fragment IRI for the given quad pattern.\n * @param {ISearchForm} searchForm A search form.\n * @param {Term} subject A term.\n * @param {Term} predicate A term.\n * @param {Term} object A term.\n * @param {Term} graph A term.\n * @return {string} A URI.\n */\n public createFragmentUri(\n searchForm: ISearchForm,\n subject: RDF.Term,\n predicate: RDF.Term,\n object: RDF.Term,\n graph: RDF.Term,\n ): string {\n const entries: Record<string, string> = {};\n const input = [\n { uri: this.subjectUri, term: subject },\n { uri: this.predicateUri, term: predicate },\n { uri: this.objectUri, term: object },\n { uri: this.graphUri, term: graph },\n ];\n for (const entry of input) {\n // If bindingsRestricted, also pass variables, so the server knows how to bind values.\n if (entry.uri && (this.bindingsRestricted || (entry.term.termType !== 'Variable' &&\n (entry.term.termType !== 'Quad' || everyTermsNested(entry.term, value => value.termType !== 'Variable'))))) {\n entries[entry.uri] = termToString(entry.term);\n }\n }\n return searchForm.getUri(entries);\n }\n\n protected match(\n subject: RDF.Term,\n predicate: RDF.Term,\n object: RDF.Term,\n graph: RDF.Term,\n unionDefaultGraph: boolean,\n context: IActionContext,\n options?: IQueryBindingsOptions,\n ): AsyncIterator<RDF.Quad> {\n // If we are querying the default graph,\n // and the source has an overridden value for the default graph (such as QPF can provide),\n // we override the graph parameter with that value.\n let modifiedGraph = false;\n if (graph.termType === 'DefaultGraph') {\n if (this.defaultGraph) {\n modifiedGraph = true;\n graph = this.defaultGraph;\n } else if (Object.keys(this.searchForm.mappings).length === 4 && !this.defaultGraph) {\n // If the sd:defaultGraph is not declared on a QPF endpoint\n if (unionDefaultGraph) {\n // With union-default-graph, take union of graphs.\n graph = this.dataFactory.variable('g');\n } else {\n // Without union-default-graph, the default graph must be empty.\n const quads = new ArrayIterator<RDF.Quad>([], { autoStart: false });\n quads.setProperty('metadata', {\n state: new MetadataValidationState(),\n requestTime: 0,\n cardinality: { type: 'exact', value: 0 },\n first: null,\n next: null,\n last: null,\n });\n return quads;\n }\n } else {\n // If have a TPF endpoint, set graph to variable so we could get the cached triples\n // In this case: Object.keys(this.searchForm.mappings).length === 3\n graph = this.dataFactory.variable('g');\n }\n }\n\n // Try to emit from cache (skip if filtering bindings)\n if (!options?.filterBindings) {\n const cached = this.getCachedQuads(subject, predicate, object, graph);\n if (cached) {\n return cached;\n }\n }\n\n // Kickstart metadata collection, because the quads iterator is lazy\n // eslint-disable-next-line ts/no-this-alias\n const self = this;\n let quads: AsyncIterator<RDF.Quad>;\n const dataStreamPromise = (async function() {\n let url: string = self.createFragmentUri(self.searchForm, subject, predicate, object, graph);\n\n // Handle bindings-restricted interfaces\n if (options?.filterBindings) {\n url = await self.getBindingsRestrictedLink(\n subject,\n predicate,\n object,\n graph,\n url,\n options.filterBindings,\n );\n }\n\n const dereferenceRdfOutput = await self.mediatorDereferenceRdf.mediate({ context, url });\n url = dereferenceRdfOutput.url;\n\n // Determine the metadata\n const rdfMetadataOuput: IActorRdfMetadataOutput = await self.mediatorMetadata.mediate(\n { context, url, quads: dereferenceRdfOutput.data, triples: dereferenceRdfOutput.metadata?.triples },\n );\n\n // Extract the metadata\n const { metadata } = await self.mediatorMetadataExtract\n .mediate({\n context,\n url,\n metadata: rdfMetadataOuput.metadata,\n requestTime: dereferenceRdfOutput.requestTime,\n });\n quads!.setProperty(\n 'metadata',\n { ...metadata, state: new MetadataValidationState(), subsetOf: self.url },\n );\n\n // While we could resolve this before metadata extraction, we do it afterwards to ensure metadata emission\n // before the end event is emitted.\n return rdfMetadataOuput.data;\n })();\n\n quads = new TransformIterator(async() => {\n const dataStream = await dataStreamPromise;\n\n // The server is free to send any data in its response (such as metadata),\n // including quads that do not match the given matter.\n // Therefore, we have to filter away all non-matching quads here.\n const actualDefaultGraph = this.dataFactory.defaultGraph();\n let filteredOutput: AsyncIterator<RDF.Quad> = wrap<RDF.Quad>(dataStream)\n .transform({\n filter(quad: RDF.Quad) {\n if (matchPattern(quad, subject, predicate, object, graph)) {\n return true;\n }\n // Special case: if we are querying in the default graph, and we had an overridden default graph,\n // also accept that incoming triples may be defined in the actual default graph\n return modifiedGraph && matchPattern(quad, subject, predicate, object, actualDefaultGraph);\n },\n });\n if (modifiedGraph || graph.termType === 'Variable') {\n // Reverse-map the overridden default graph back to the actual default graph\n filteredOutput = this.reverseMapQuadsToDefaultGraph(filteredOutput);\n }\n\n return filteredOutput;\n }, { autoStart: false });\n\n // Skip cache if filtering bindings\n if (options?.filterBindings) {\n return quads;\n }\n\n this.cacheQuads(quads, subject, predicate, object, graph);\n return this.getCachedQuads(subject, predicate, object, graph)!;\n }\n\n /**\n * If we add bindings for brTPF, append it to the URL.\n * We have to hardcode this because brTPF doesn't expose a URL template for passing bindings.\n * @param subject The subject.\n * @param predicate The predicate.\n * @param object The object.\n * @param graph The graph.\n * @param url The original QPF URL.\n * @param filterBindings The bindings to restrict with.\n * @param filterBindings.bindings The bindings stream.\n * @param filterBindings.metadata The bindings metadata.\n * @protected\n */\n public async getBindingsRestrictedLink(\n subject: RDF.Term,\n predicate: RDF.Term,\n object: RDF.Term,\n graph: RDF.Term,\n url: string,\n filterBindings: { bindings: BindingsStream; metadata: MetadataBindings },\n ): Promise<string> {\n // Determine values\n const values: string[] = [];\n for (const binding of await filterBindings.bindings.toArray()) {\n const value: string[] = [ '(' ];\n for (const variable of filterBindings.metadata.variables) {\n const term = binding.get(variable.variable);\n value.push(term ? termToStringTtl(term) : 'UNDEF');\n value.push(' ');\n }\n value.push(')');\n values.push(value.join(''));\n }\n\n if (values.length === 0) {\n // This is a hack to force an empty result page,\n // because the brTPF server returns a server error when passing 0 bindings.\n values.push('(<ex:comunica:unknown>)');\n }\n\n // Append to URL (brTPF uses the SPARQL VALUES syntax, without the VALUES prefix)\n const valuesUrl = encodeURIComponent(`(${filterBindings.metadata.variables.map(variable => `?${variable.variable.value}`).join(' ')}) { ${values.join(' ')} }`);\n return `${url}&values=${valuesUrl}`;\n }\n\n protected reverseMapQuadsToDefaultGraph(quads: AsyncIterator<RDF.Quad>): AsyncIterator<RDF.Quad> {\n const actualDefaultGraph = this.dataFactory.defaultGraph();\n return quads.map(\n quad => mapTerms(\n quad,\n (term, key) => key === 'graph' && term.equals(this.defaultGraph) ? actualDefaultGraph : term,\n ),\n );\n }\n\n public getPatternId(subject: RDF.Term, predicate: RDF.Term, object: RDF.Term, graph: RDF.Term): string {\n return JSON.stringify({\n s: subject.termType === 'Variable' ? '' : _termToString(subject),\n p: predicate.termType === 'Variable' ? '' : _termToString(predicate),\n o: object.termType === 'Variable' ? '' : _termToString(object),\n g: graph.termType === 'Variable' ? '' : _termToString(graph),\n });\n }\n\n protected cacheQuads(\n quads: AsyncIterator<RDF.Quad>,\n subject: RDF.Term,\n predicate: RDF.Term,\n object: RDF.Term,\n graph: RDF.Term,\n ): void {\n const patternId = this.getPatternId(subject, predicate, object, graph);\n this.cachedQuads[patternId] = quads.clone();\n }\n\n protected getCachedQuads(subject: RDF.Term, predicate: RDF.Term, object: RDF.Term, graph: RDF.Term):\n AsyncIterator<RDF.Quad> | undefined {\n const patternId = this.getPatternId(subject, predicate, object, graph);\n const quads = this.cachedQuads[patternId];\n if (quads) {\n return quads.clone();\n }\n }\n\n public queryQuads(\n _operation: Algebra.Operation,\n _context: IActionContext,\n ): AsyncIterator<RDF.Quad> {\n throw new Error('queryQuads is not implemented in QuerySourceQpf');\n }\n\n public queryBoolean(\n _operation: Algebra.Ask,\n _context: IActionContext,\n ): Promise<boolean> {\n throw new Error('queryBoolean is not implemented in QuerySourceQpf');\n }\n\n public queryVoid(\n _operation: Algebra.Update,\n _context: IActionContext,\n ): Promise<void> {\n throw new Error('queryVoid is not implemented in QuerySourceQpf');\n }\n}\n\nfunction _termToString(term: RDF.Term): string {\n return term.termType === 'DefaultGraph' ?\n // Any character that cannot be present in a URL will do\n '|' :\n termToString(term);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"QuerySourceQpf.js","sourceRoot":"","sources":["QuerySourceQpf.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ISearchForm } from '@comunica/actor-rdf-metadata-extract-hydra-controls';\nimport type { MediatorDereferenceRdf } from '@comunica/bus-dereference-rdf';\nimport { filterMatchingQuotedQuads, quadsToBindings } from '@comunica/bus-query-source-identify';\nimport type { MediatorRdfMetadata, IActorRdfMetadataOutput } from '@comunica/bus-rdf-metadata';\nimport type { MediatorRdfMetadataExtract } from '@comunica/bus-rdf-metadata-extract';\nimport { KeysQueryOperation } from '@comunica/context-entries';\nimport type {\n IQuerySource,\n BindingsStream,\n IActionContext,\n FragmentSelectorShape,\n IQueryBindingsOptions,\n MetadataBindings,\n ComunicaDataFactory,\n} from '@comunica/types';\nimport type { AlgebraFactory } from '@comunica/utils-algebra';\nimport { isKnownOperation, Algebra } from '@comunica/utils-algebra';\nimport type { BindingsFactory } from '@comunica/utils-bindings-factory';\nimport { MetadataValidationState } from '@comunica/utils-metadata';\nimport type * as RDF from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport { ArrayIterator, TransformIterator, wrap } from 'asynciterator';\nimport { termToString } from 'rdf-string';\nimport { termToString as termToStringTtl } from 'rdf-string-ttl';\nimport {\n everyTermsNested,\n mapTerms,\n matchPattern,\n} from 'rdf-terms';\n\nexport class QuerySourceQpf implements IQuerySource {\n protected readonly selectorShape: FragmentSelectorShape;\n\n public readonly searchForm: ISearchForm;\n\n private readonly mediatorMetadata: MediatorRdfMetadata;\n private readonly mediatorMetadataExtract: MediatorRdfMetadataExtract;\n private readonly mediatorDereferenceRdf: MediatorDereferenceRdf;\n private readonly dataFactory: ComunicaDataFactory;\n private readonly algebraFactory: AlgebraFactory;\n private readonly bindingsFactory: BindingsFactory;\n\n public readonly referenceValue: string;\n private readonly subjectUri: string;\n private readonly predicateUri: string;\n private readonly objectUri: string;\n private readonly graphUri?: string;\n private readonly url: string;\n private readonly defaultGraph?: RDF.NamedNode;\n private readonly bindingsRestricted: boolean;\n private readonly cachedQuads: Record<string, AsyncIterator<RDF.Quad>>;\n\n public constructor(\n mediatorMetadata: MediatorRdfMetadata,\n mediatorMetadataExtract: MediatorRdfMetadataExtract,\n mediatorDereferenceRdf: MediatorDereferenceRdf,\n dataFactory: ComunicaDataFactory,\n algebraFactory: AlgebraFactory,\n bindingsFactory: BindingsFactory,\n subjectUri: string,\n predicateUri: string,\n objectUri: string,\n graphUri: string | undefined,\n url: string,\n metadata: Record<string, any>,\n bindingsRestricted: boolean,\n initialQuads?: RDF.Stream,\n ) {\n this.referenceValue = url;\n this.mediatorMetadata = mediatorMetadata;\n this.mediatorMetadataExtract = mediatorMetadataExtract;\n this.mediatorDereferenceRdf = mediatorDereferenceRdf;\n this.dataFactory = dataFactory;\n this.algebraFactory = algebraFactory;\n this.bindingsFactory = bindingsFactory;\n this.subjectUri = subjectUri;\n this.predicateUri = predicateUri;\n this.objectUri = objectUri;\n this.graphUri = graphUri;\n this.url = url;\n this.bindingsRestricted = bindingsRestricted;\n this.cachedQuads = {};\n this.searchForm = this.getSearchForm(metadata)!;\n this.defaultGraph = metadata.defaultGraph ? this.dataFactory.namedNode(metadata.defaultGraph) : undefined;\n if (initialQuads) {\n let wrappedQuads: AsyncIterator<RDF.Quad> = wrap<RDF.Quad>(initialQuads);\n if (this.defaultGraph) {\n wrappedQuads = this.reverseMapQuadsToDefaultGraph(wrappedQuads);\n }\n metadata = { ...metadata, state: new MetadataValidationState() };\n wrappedQuads.setProperty('metadata', metadata);\n this.cacheQuads(\n wrappedQuads,\n this.dataFactory.variable(''),\n this.dataFactory.variable(''),\n this.dataFactory.variable(''),\n this.dataFactory.variable(''),\n );\n }\n\n this.selectorShape = this.bindingsRestricted ?\n {\n type: 'operation',\n operation: {\n operationType: 'pattern',\n pattern: this.algebraFactory.createPattern(\n this.dataFactory.variable('s'),\n this.dataFactory.variable('p'),\n this.dataFactory.variable('o'),\n this.dataFactory.variable('g'),\n ),\n },\n variablesOptional: [\n this.dataFactory.variable('s'),\n this.dataFactory.variable('p'),\n this.dataFactory.variable('o'),\n this.dataFactory.variable('g'),\n ],\n filterBindings: true,\n } :\n {\n type: 'operation',\n operation: {\n operationType: 'pattern',\n pattern: this.algebraFactory.createPattern(\n this.dataFactory.variable('s'),\n this.dataFactory.variable('p'),\n this.dataFactory.variable('o'),\n this.dataFactory.variable('g'),\n ),\n },\n variablesOptional: [\n this.dataFactory.variable('s'),\n this.dataFactory.variable('p'),\n this.dataFactory.variable('o'),\n this.dataFactory.variable('g'),\n ],\n };\n }\n\n public async getFilterFactor(): Promise<number> {\n return 1;\n }\n\n public async getSelectorShape(): Promise<FragmentSelectorShape> {\n return this.selectorShape;\n }\n\n public queryBindings(\n operation: Algebra.Operation,\n context: IActionContext,\n options?: IQueryBindingsOptions,\n ): BindingsStream {\n if (!isKnownOperation(operation, Algebra.Types.PATTERN)) {\n throw new Error(`Attempted to pass non-pattern operation '${operation.type}' to QuerySourceQpf`);\n }\n\n const unionDefaultGraph = Boolean(context.get(KeysQueryOperation.unionDefaultGraph));\n\n // Create an async iterator from the matched quad stream\n let it = this.match(\n operation.subject,\n operation.predicate,\n operation.object,\n operation.graph,\n unionDefaultGraph,\n context,\n options,\n );\n\n it = filterMatchingQuotedQuads(operation, it);\n return quadsToBindings(it, operation, this.dataFactory, this.bindingsFactory, unionDefaultGraph);\n }\n\n /**\n * Get a first QPF search form.\n * @param {{[p: string]: any}} metadata A metadata object.\n * @return {ISearchForm} A search form, or null if none could be found.\n */\n public getSearchForm(metadata: Record<string, any>): ISearchForm | undefined {\n if (!metadata.searchForms || !metadata.searchForms.values) {\n return;\n }\n\n // Find a quad pattern or triple pattern search form\n const { searchForms } = metadata;\n for (const searchForm of searchForms.values) {\n if (this.graphUri &&\n this.subjectUri in searchForm.mappings &&\n this.predicateUri in searchForm.mappings &&\n this.objectUri in searchForm.mappings &&\n this.graphUri in searchForm.mappings &&\n Object.keys(searchForm.mappings).length === 4) {\n return searchForm;\n }\n if (this.subjectUri in searchForm.mappings &&\n this.predicateUri in searchForm.mappings &&\n this.objectUri in searchForm.mappings &&\n Object.keys(searchForm.mappings).length === 3) {\n return searchForm;\n }\n }\n }\n\n /**\n * Create a QPF fragment IRI for the given quad pattern.\n * @param {ISearchForm} searchForm A search form.\n * @param {Term} subject A term.\n * @param {Term} predicate A term.\n * @param {Term} object A term.\n * @param {Term} graph A term.\n * @return {string} A URI.\n */\n public createFragmentUri(\n searchForm: ISearchForm,\n subject: RDF.Term,\n predicate: RDF.Term,\n object: RDF.Term,\n graph: RDF.Term,\n ): string {\n const entries: Record<string, string> = {};\n const input = [\n { uri: this.subjectUri, term: subject },\n { uri: this.predicateUri, term: predicate },\n { uri: this.objectUri, term: object },\n { uri: this.graphUri, term: graph },\n ];\n for (const entry of input) {\n // If bindingsRestricted, also pass variables, so the server knows how to bind values.\n if (entry.uri && (this.bindingsRestricted || (entry.term.termType !== 'Variable' &&\n (entry.term.termType !== 'Quad' || everyTermsNested(entry.term, value => value.termType !== 'Variable'))))) {\n entries[entry.uri] = termToString(entry.term);\n }\n }\n return searchForm.getUri(entries);\n }\n\n protected match(\n subject: RDF.Term,\n predicate: RDF.Term,\n object: RDF.Term,\n graph: RDF.Term,\n unionDefaultGraph: boolean,\n context: IActionContext,\n options?: IQueryBindingsOptions,\n ): AsyncIterator<RDF.Quad> {\n // If we are querying the default graph,\n // and the source has an overridden value for the default graph (such as QPF can provide),\n // we override the graph parameter with that value.\n let modifiedGraph = false;\n if (graph.termType === 'DefaultGraph') {\n if (this.defaultGraph) {\n modifiedGraph = true;\n graph = this.defaultGraph;\n } else if (Object.keys(this.searchForm.mappings).length === 4 && !this.defaultGraph) {\n // If the sd:defaultGraph is not declared on a QPF endpoint\n if (unionDefaultGraph) {\n // With union-default-graph, take union of graphs.\n graph = this.dataFactory.variable('g');\n } else {\n // Without union-default-graph, the default graph must be empty.\n const quads = new ArrayIterator<RDF.Quad>([], { autoStart: false });\n quads.setProperty('metadata', {\n state: new MetadataValidationState(),\n requestTime: 0,\n cardinality: { type: 'exact', value: 0 },\n first: null,\n next: null,\n last: null,\n });\n return quads;\n }\n } else {\n // If have a TPF endpoint, set graph to variable so we could get the cached triples\n // In this case: Object.keys(this.searchForm.mappings).length === 3\n graph = this.dataFactory.variable('g');\n }\n }\n\n // Try to emit from cache (skip if filtering bindings)\n if (!options?.filterBindings) {\n const cached = this.getCachedQuads(subject, predicate, object, graph);\n if (cached) {\n return cached;\n }\n }\n\n // Kickstart metadata collection, because the quads iterator is lazy\n // eslint-disable-next-line ts/no-this-alias\n const self = this;\n let quads: AsyncIterator<RDF.Quad>;\n const dataStreamPromise = (async function() {\n let url: string = self.createFragmentUri(self.searchForm, subject, predicate, object, graph);\n\n // Handle bindings-restricted interfaces\n if (options?.filterBindings) {\n url = await self.getBindingsRestrictedLink(\n subject,\n predicate,\n object,\n graph,\n url,\n options.filterBindings,\n );\n }\n\n const dereferenceRdfOutput = await self.mediatorDereferenceRdf.mediate({ context, url });\n url = dereferenceRdfOutput.url;\n\n // Determine the metadata\n const rdfMetadataOuput: IActorRdfMetadataOutput = await self.mediatorMetadata.mediate(\n { context, url, quads: dereferenceRdfOutput.data, triples: dereferenceRdfOutput.metadata?.triples },\n );\n\n // Extract the metadata\n const { metadata } = await self.mediatorMetadataExtract\n .mediate({\n context,\n url,\n metadata: rdfMetadataOuput.metadata,\n requestTime: dereferenceRdfOutput.requestTime,\n });\n quads!.setProperty(\n 'metadata',\n { ...metadata, state: new MetadataValidationState(), subsetOf: self.url },\n );\n\n // While we could resolve this before metadata extraction, we do it afterwards to ensure metadata emission\n // before the end event is emitted.\n return rdfMetadataOuput.data;\n })();\n\n quads = new TransformIterator(async() => {\n const dataStream = await dataStreamPromise;\n\n // The server is free to send any data in its response (such as metadata),\n // including quads that do not match the given matter.\n // Therefore, we have to filter away all non-matching quads here.\n const actualDefaultGraph = this.dataFactory.defaultGraph();\n let filteredOutput: AsyncIterator<RDF.Quad> = wrap<RDF.Quad>(dataStream)\n .transform({\n filter(quad: RDF.Quad) {\n if (matchPattern(quad, subject, predicate, object, graph)) {\n return true;\n }\n // Special case: if we are querying in the default graph, and we had an overridden default graph,\n // also accept that incoming triples may be defined in the actual default graph\n return modifiedGraph && matchPattern(quad, subject, predicate, object, actualDefaultGraph);\n },\n });\n if (modifiedGraph || graph.termType === 'Variable') {\n // Reverse-map the overridden default graph back to the actual default graph\n filteredOutput = this.reverseMapQuadsToDefaultGraph(filteredOutput);\n }\n\n return filteredOutput;\n }, { autoStart: false });\n\n // Skip cache if filtering bindings\n if (options?.filterBindings) {\n return quads;\n }\n\n this.cacheQuads(quads, subject, predicate, object, graph);\n return this.getCachedQuads(subject, predicate, object, graph)!;\n }\n\n /**\n * If we add bindings for brTPF, append it to the URL.\n * We have to hardcode this because brTPF doesn't expose a URL template for passing bindings.\n * @param subject The subject.\n * @param predicate The predicate.\n * @param object The object.\n * @param graph The graph.\n * @param url The original QPF URL.\n * @param filterBindings The bindings to restrict with.\n * @param filterBindings.bindings The bindings stream.\n * @param filterBindings.metadata The bindings metadata.\n * @protected\n */\n public async getBindingsRestrictedLink(\n subject: RDF.Term,\n predicate: RDF.Term,\n object: RDF.Term,\n graph: RDF.Term,\n url: string,\n filterBindings: { bindings: BindingsStream; metadata: MetadataBindings },\n ): Promise<string> {\n // Determine values\n const values: string[] = [];\n for (const binding of await filterBindings.bindings.toArray()) {\n const value: string[] = [ '(' ];\n for (const variable of filterBindings.metadata.variables) {\n const term = binding.get(variable.variable);\n value.push(term ? termToStringTtl(term) : 'UNDEF');\n value.push(' ');\n }\n value.push(')');\n values.push(value.join(''));\n }\n\n if (values.length === 0) {\n // This is a hack to force an empty result page,\n // because the brTPF server returns a server error when passing 0 bindings.\n values.push('(<ex:comunica:unknown>)');\n }\n\n // Append to URL (brTPF uses the SPARQL VALUES syntax, without the VALUES prefix)\n const valuesUrl = encodeURIComponent(`(${filterBindings.metadata.variables.map(variable => `?${variable.variable.value}`).join(' ')}) { ${values.join(' ')} }`);\n return `${url}&values=${valuesUrl}`;\n }\n\n protected reverseMapQuadsToDefaultGraph(quads: AsyncIterator<RDF.Quad>): AsyncIterator<RDF.Quad> {\n const actualDefaultGraph = this.dataFactory.defaultGraph();\n return quads.map(\n quad => mapTerms(\n quad,\n (term, key) => key === 'graph' && term.equals(this.defaultGraph) ? actualDefaultGraph : term,\n ),\n );\n }\n\n public getPatternId(subject: RDF.Term, predicate: RDF.Term, object: RDF.Term, graph: RDF.Term): string {\n return JSON.stringify({\n s: subject.termType === 'Variable' ? '' : _termToString(subject),\n p: predicate.termType === 'Variable' ? '' : _termToString(predicate),\n o: object.termType === 'Variable' ? '' : _termToString(object),\n g: graph.termType === 'Variable' ? '' : _termToString(graph),\n });\n }\n\n protected cacheQuads(\n quads: AsyncIterator<RDF.Quad>,\n subject: RDF.Term,\n predicate: RDF.Term,\n object: RDF.Term,\n graph: RDF.Term,\n ): void {\n const patternId = this.getPatternId(subject, predicate, object, graph);\n this.cachedQuads[patternId] = quads.clone();\n }\n\n protected getCachedQuads(subject: RDF.Term, predicate: RDF.Term, object: RDF.Term, graph: RDF.Term):\n AsyncIterator<RDF.Quad> | undefined {\n const patternId = this.getPatternId(subject, predicate, object, graph);\n const quads = this.cachedQuads[patternId];\n if (quads) {\n return quads.clone();\n }\n }\n\n public queryQuads(\n _operation: Algebra.Operation,\n _context: IActionContext,\n ): AsyncIterator<RDF.Quad> {\n throw new Error('queryQuads is not implemented in QuerySourceQpf');\n }\n\n public queryBoolean(\n _operation: Algebra.Ask,\n _context: IActionContext,\n ): Promise<boolean> {\n throw new Error('queryBoolean is not implemented in QuerySourceQpf');\n }\n\n public queryVoid(\n _operation: Algebra.Operation,\n _context: IActionContext,\n ): Promise<void> {\n throw new Error('queryVoid is not implemented in QuerySourceQpf');\n }\n}\n\nfunction _termToString(term: RDF.Term): string {\n return term.termType === 'DefaultGraph' ?\n // Any character that cannot be present in a URL will do\n '|' :\n termToString(term);\n}\n"]}
|
package/lib/index.d.ts
CHANGED
|
File without changes
|
package/lib/index.js
CHANGED
|
File without changes
|
package/lib/index.js.map
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@comunica/actor-query-source-identify-hypermedia-qpf",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.2",
|
|
4
4
|
"description": "A qpf query-source-identify-hypermedia actor",
|
|
5
5
|
"lsd:module": true,
|
|
6
6
|
"license": "MIT",
|
|
@@ -41,24 +41,24 @@
|
|
|
41
41
|
"build:components": "componentsjs-generator"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@comunica/actor-rdf-metadata-extract-hydra-controls": "^
|
|
45
|
-
"@comunica/bus-dereference-rdf": "^
|
|
46
|
-
"@comunica/bus-merge-bindings-context": "^
|
|
47
|
-
"@comunica/bus-query-source-identify": "^
|
|
48
|
-
"@comunica/bus-query-source-identify-hypermedia": "^
|
|
49
|
-
"@comunica/bus-rdf-metadata": "^
|
|
50
|
-
"@comunica/bus-rdf-metadata-extract": "^
|
|
51
|
-
"@comunica/context-entries": "^
|
|
52
|
-
"@comunica/core": "^
|
|
53
|
-
"@comunica/types": "^
|
|
54
|
-
"@comunica/utils-
|
|
55
|
-
"@comunica/utils-
|
|
44
|
+
"@comunica/actor-rdf-metadata-extract-hydra-controls": "^5.0.2",
|
|
45
|
+
"@comunica/bus-dereference-rdf": "^5.0.2",
|
|
46
|
+
"@comunica/bus-merge-bindings-context": "^5.0.2",
|
|
47
|
+
"@comunica/bus-query-source-identify": "^5.0.2",
|
|
48
|
+
"@comunica/bus-query-source-identify-hypermedia": "^5.0.2",
|
|
49
|
+
"@comunica/bus-rdf-metadata": "^5.0.2",
|
|
50
|
+
"@comunica/bus-rdf-metadata-extract": "^5.0.2",
|
|
51
|
+
"@comunica/context-entries": "^5.0.2",
|
|
52
|
+
"@comunica/core": "^5.0.2",
|
|
53
|
+
"@comunica/types": "^5.0.0",
|
|
54
|
+
"@comunica/utils-algebra": "^5.0.0",
|
|
55
|
+
"@comunica/utils-bindings-factory": "^5.0.2",
|
|
56
|
+
"@comunica/utils-metadata": "^5.0.0",
|
|
56
57
|
"@rdfjs/types": "*",
|
|
57
|
-
"asynciterator": "^3.
|
|
58
|
-
"rdf-string": "^
|
|
59
|
-
"rdf-string-ttl": "^
|
|
60
|
-
"rdf-terms": "^
|
|
61
|
-
"sparqlalgebrajs": "^5.0.2"
|
|
58
|
+
"asynciterator": "^3.10.0",
|
|
59
|
+
"rdf-string": "^2.0.1",
|
|
60
|
+
"rdf-string-ttl": "^2.0.1",
|
|
61
|
+
"rdf-terms": "^2.0.0"
|
|
62
62
|
},
|
|
63
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "3b29f914010fd2fc56682a0ceff962ef6ff24f32"
|
|
64
64
|
}
|