solid-ui 2.4.14-bbf45639 → 2.4.14-bbf45639-e81d3e08
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/LICENSE.md +0 -0
- package/README.md +0 -0
- package/lib/acl/access-controller.d.ts +0 -0
- package/lib/acl/access-controller.d.ts.map +0 -0
- package/lib/acl/access-controller.js +441 -334
- package/lib/acl/access-controller.js.map +1 -1
- package/lib/acl/access-groups.d.ts +0 -0
- package/lib/acl/access-groups.d.ts.map +0 -0
- package/lib/acl/access-groups.js +495 -348
- package/lib/acl/access-groups.js.map +1 -1
- package/lib/acl/acl-control.d.ts +0 -0
- package/lib/acl/acl-control.d.ts.map +0 -0
- package/lib/acl/acl-control.js +198 -168
- package/lib/acl/acl-control.js.map +1 -1
- package/lib/acl/acl.d.ts +0 -0
- package/lib/acl/acl.d.ts.map +0 -0
- package/lib/acl/acl.js +463 -446
- package/lib/acl/acl.js.map +1 -1
- package/lib/acl/add-agent-buttons.d.ts +0 -0
- package/lib/acl/add-agent-buttons.d.ts.map +0 -0
- package/lib/acl/add-agent-buttons.js +515 -318
- package/lib/acl/add-agent-buttons.js.map +1 -1
- package/lib/acl/index.d.ts +0 -0
- package/lib/acl/index.d.ts.map +0 -0
- package/lib/acl/index.js +35 -27
- package/lib/acl/index.js.map +1 -1
- package/lib/acl/styles.d.ts +0 -0
- package/lib/acl/styles.d.ts.map +0 -0
- package/lib/acl/styles.js +90 -84
- package/lib/acl/styles.js.map +1 -1
- package/lib/acl/types.d.ts +0 -0
- package/lib/acl/types.d.ts.map +0 -0
- package/lib/acl/types.js +4 -5
- package/lib/acl/types.js.map +1 -1
- package/lib/authn/authSession.d.ts +0 -0
- package/lib/authn/authSession.d.ts.map +0 -0
- package/lib/authn/authSession.js +21 -14
- package/lib/authn/authSession.js.map +1 -1
- package/lib/authn/authn.d.ts +0 -0
- package/lib/authn/authn.d.ts.map +0 -0
- package/lib/authn/authn.js +1935 -1391
- package/lib/authn/authn.js.map +1 -1
- package/lib/authn/config-default.js +0 -0
- package/lib/authn/config-default.js.map +0 -0
- package/lib/authn/index.d.ts +0 -0
- package/lib/authn/index.d.ts.map +0 -0
- package/lib/authn/index.js +37 -26
- package/lib/authn/index.js.map +1 -1
- package/lib/authn/signup.js +0 -0
- package/lib/authn/signup.js.map +0 -0
- package/lib/authn/types.d.ts +0 -0
- package/lib/authn/types.d.ts.map +0 -0
- package/lib/authn/types.js +4 -1
- package/lib/authn/types.js.map +1 -1
- package/lib/chat/bookmarks.js +0 -0
- package/lib/chat/bookmarks.js.map +0 -0
- package/lib/chat/dateFolder.js +0 -0
- package/lib/chat/dateFolder.js.map +0 -0
- package/lib/chat/infinite.js +0 -0
- package/lib/chat/infinite.js.map +0 -0
- package/lib/chat/message.js +0 -0
- package/lib/chat/message.js.map +0 -0
- package/lib/chat/messageTools.js +0 -0
- package/lib/chat/messageTools.js.map +0 -0
- package/lib/chat/thread.js +0 -0
- package/lib/chat/thread.js.map +0 -0
- package/lib/create/create.d.ts +0 -0
- package/lib/create/create.d.ts.map +0 -0
- package/lib/create/create.js +214 -209
- package/lib/create/create.js.map +1 -1
- package/lib/create/index.d.ts +0 -0
- package/lib/create/index.d.ts.map +0 -0
- package/lib/create/index.js +10 -4
- package/lib/create/index.js.map +1 -1
- package/lib/create/types.d.ts +0 -0
- package/lib/create/types.d.ts.map +0 -0
- package/lib/create/types.js +4 -1
- package/lib/create/types.js.map +1 -1
- package/lib/debug.d.ts +0 -0
- package/lib/debug.d.ts.map +0 -0
- package/lib/debug.js +28 -30
- package/lib/debug.js.map +1 -1
- package/lib/folders.js +0 -0
- package/lib/folders.js.map +0 -0
- package/lib/footer/index.d.ts +0 -0
- package/lib/footer/index.d.ts.map +0 -0
- package/lib/footer/index.js +126 -109
- package/lib/footer/index.js.map +1 -1
- package/lib/footer/styleMap.d.ts +0 -0
- package/lib/footer/styleMap.d.ts.map +0 -0
- package/lib/footer/styleMap.js +11 -7
- package/lib/footer/styleMap.js.map +1 -1
- package/lib/header/empty-profile.d.ts +0 -0
- package/lib/header/empty-profile.d.ts.map +0 -0
- package/lib/header/empty-profile.js +6 -2
- package/lib/header/empty-profile.js.map +1 -1
- package/lib/header/index.d.ts +0 -0
- package/lib/header/index.d.ts.map +0 -0
- package/lib/header/index.js +361 -285
- package/lib/header/index.js.map +1 -1
- package/lib/header/styleMap.d.ts +0 -0
- package/lib/header/styleMap.d.ts.map +0 -0
- package/lib/header/styleMap.js +132 -116
- package/lib/header/styleMap.js.map +1 -1
- package/lib/iconBase.d.ts +0 -0
- package/lib/iconBase.d.ts.map +0 -0
- package/lib/iconBase.js +30 -23
- package/lib/iconBase.js.map +1 -1
- package/lib/icons/solid_logo.d.ts +0 -0
- package/lib/icons/solid_logo.d.ts.map +0 -0
- package/lib/icons/solid_logo.js +0 -0
- package/lib/icons/solid_logo.js.map +1 -1
- package/lib/index.d.ts +0 -0
- package/lib/index.d.ts.map +0 -0
- package/lib/index.js +207 -103
- package/lib/index.js.map +1 -1
- package/lib/jss/index.d.ts +0 -0
- package/lib/jss/index.d.ts.map +0 -0
- package/lib/jss/index.js +30 -21
- package/lib/jss/index.js.map +1 -1
- package/lib/log.d.ts +0 -0
- package/lib/log.d.ts.map +0 -0
- package/lib/log.js +131 -83
- package/lib/log.js.map +1 -1
- package/lib/logic.d.ts +0 -0
- package/lib/logic.d.ts.map +1 -1
- package/lib/logic.js +73 -82
- package/lib/logic.js.map +1 -1
- package/lib/matrix/index.d.ts +0 -0
- package/lib/matrix/index.d.ts.map +0 -0
- package/lib/matrix/index.js +10 -4
- package/lib/matrix/index.js.map +1 -1
- package/lib/matrix/matrix.d.ts +0 -0
- package/lib/matrix/matrix.d.ts.map +0 -0
- package/lib/matrix/matrix.js +237 -210
- package/lib/matrix/matrix.js.map +1 -1
- package/lib/matrix/types.d.ts +0 -0
- package/lib/matrix/types.d.ts.map +0 -0
- package/lib/matrix/types.js +4 -1
- package/lib/matrix/types.js.map +1 -1
- package/lib/media/index.d.ts +0 -0
- package/lib/media/index.d.ts.map +0 -0
- package/lib/media/index.js +11 -5
- package/lib/media/index.js.map +1 -1
- package/lib/media/media-capture.d.ts +0 -0
- package/lib/media/media-capture.d.ts.map +0 -0
- package/lib/media/media-capture.js +181 -187
- package/lib/media/media-capture.js.map +1 -1
- package/lib/messageArea.js +0 -0
- package/lib/messageArea.js.map +0 -0
- package/lib/noun_Camera_1618446_000000.js +0 -0
- package/lib/noun_Camera_1618446_000000.js.map +0 -0
- package/lib/ns.js +0 -0
- package/lib/ns.js.map +0 -0
- package/lib/pad.d.ts +0 -0
- package/lib/pad.d.ts.map +0 -0
- package/lib/pad.js +954 -794
- package/lib/pad.js.map +1 -1
- package/lib/participation.d.ts +0 -0
- package/lib/participation.d.ts.map +0 -0
- package/lib/participation.js +199 -170
- package/lib/participation.js.map +1 -1
- package/lib/preferences.js +0 -0
- package/lib/preferences.js.map +0 -0
- package/lib/stories/decorators.js +0 -0
- package/lib/stories/decorators.js.map +0 -0
- package/lib/style.js +0 -0
- package/lib/style.js.map +0 -0
- package/lib/table.js +0 -0
- package/lib/table.js.map +0 -0
- package/lib/tabs.d.ts +0 -0
- package/lib/tabs.d.ts.map +0 -0
- package/lib/tabs.js +342 -235
- package/lib/tabs.js.map +1 -1
- package/lib/typings.d.js +0 -0
- package/lib/typings.d.js.map +0 -0
- package/lib/utils/headerFooterHelpers.d.ts +0 -0
- package/lib/utils/headerFooterHelpers.d.ts.map +0 -0
- package/lib/utils/headerFooterHelpers.js +155 -130
- package/lib/utils/headerFooterHelpers.js.map +1 -1
- package/lib/utils/index.js +0 -0
- package/lib/utils/index.js.map +0 -0
- package/lib/utils/label.d.ts +0 -0
- package/lib/utils/label.d.ts.map +0 -0
- package/lib/utils/label.js +113 -121
- package/lib/utils/label.js.map +1 -1
- package/lib/versionInfo.d.ts +0 -0
- package/lib/versionInfo.d.ts.map +0 -0
- package/lib/versionInfo.js +28 -23
- package/lib/versionInfo.js.map +1 -1
- package/lib/webpack-bundle.js +16324 -31
- package/lib/webpack-bundle.js.map +1 -1
- package/lib/widgets/buttons/iconLinks.d.ts +0 -0
- package/lib/widgets/buttons/iconLinks.d.ts.map +0 -0
- package/lib/widgets/buttons/iconLinks.js +30 -19
- package/lib/widgets/buttons/iconLinks.js.map +1 -1
- package/lib/widgets/buttons.d.ts +0 -0
- package/lib/widgets/buttons.d.ts.map +0 -0
- package/lib/widgets/buttons.js +1113 -935
- package/lib/widgets/buttons.js.map +1 -1
- package/lib/widgets/dragAndDrop.js +0 -0
- package/lib/widgets/dragAndDrop.js.map +0 -0
- package/lib/widgets/error.d.ts +0 -0
- package/lib/widgets/error.d.ts.map +0 -0
- package/lib/widgets/error.js +24 -18
- package/lib/widgets/error.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteBar.js +325 -234
- package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteField.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteField.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteField.js +280 -249
- package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/autocompletePicker.js +497 -317
- package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
- package/lib/widgets/forms/autocomplete/language.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/language.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/language.js +214 -160
- package/lib/widgets/forms/autocomplete/language.js.map +1 -1
- package/lib/widgets/forms/autocomplete/publicData.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/publicData.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/publicData.js +725 -489
- package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
- package/lib/widgets/forms/basic.d.ts +0 -0
- package/lib/widgets/forms/basic.d.ts.map +0 -0
- package/lib/widgets/forms/basic.js +239 -208
- package/lib/widgets/forms/basic.js.map +1 -1
- package/lib/widgets/forms/comment.d.ts +0 -0
- package/lib/widgets/forms/comment.d.ts.map +0 -0
- package/lib/widgets/forms/comment.js +48 -48
- package/lib/widgets/forms/comment.js.map +1 -1
- package/lib/widgets/forms/fieldFunction.d.ts +0 -0
- package/lib/widgets/forms/fieldFunction.d.ts.map +0 -0
- package/lib/widgets/forms/fieldFunction.js +50 -31
- package/lib/widgets/forms/fieldFunction.js.map +1 -1
- package/lib/widgets/forms/fieldParams.d.ts +0 -0
- package/lib/widgets/forms/fieldParams.d.ts.map +0 -0
- package/lib/widgets/forms/fieldParams.js +81 -102
- package/lib/widgets/forms/fieldParams.js.map +1 -1
- package/lib/widgets/forms/formStyle.d.ts +0 -0
- package/lib/widgets/forms/formStyle.d.ts.map +0 -0
- package/lib/widgets/forms/formStyle.js +50 -52
- package/lib/widgets/forms/formStyle.js.map +1 -1
- package/lib/widgets/forms.js +0 -0
- package/lib/widgets/forms.js.map +0 -0
- package/lib/widgets/index.js +0 -0
- package/lib/widgets/index.js.map +0 -0
- package/lib/widgets/peoplePicker.js +0 -0
- package/lib/widgets/peoplePicker.js.map +0 -0
- package/lib/widgets/widgetHelpers.d.ts +0 -0
- package/lib/widgets/widgetHelpers.d.ts.map +0 -0
- package/lib/widgets/widgetHelpers.js +30 -18
- package/lib/widgets/widgetHelpers.js.map +1 -1
- package/package.json +6 -6
|
@@ -1,550 +1,786 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
13
9
|
});
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
if (t[2]) _.ops.pop();
|
|
50
|
-
_.trys.pop(); continue;
|
|
51
|
-
}
|
|
52
|
-
op = body.call(thisArg, _);
|
|
53
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
54
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
58
|
-
exports.getDbpediaDetails = exports.getWikidataLocation = exports.getWikidataDetailsOld = exports.getWikidataDetails = exports.loadPublicDataThing = exports.queryPublicDataConstruct = exports.queryPublicDataSelect = exports.queryPublicDataByName = exports.queryESCODataByName = exports.ESCOResultToBindings = exports.loadFromBindings = exports.bindingToTerm = exports.variableNameToPredicateMap = exports.wikidataIncomingClassMap = exports.wikidataParameters = exports.wikidataOutgoingClassMap = exports.dbPediaTypeMap = exports.dbpediaParameters = exports.escoParameters = exports.fetcherOptionsJsonPublicData = exports.instituteDetailsWikidataQuery = exports.wikidataClasses = exports.AUTOCOMPLETE_LIMIT = void 0;
|
|
10
|
+
exports.AUTOCOMPLETE_LIMIT = void 0;
|
|
11
|
+
exports.ESCOResultToBindings = ESCOResultToBindings;
|
|
12
|
+
exports.bindingToTerm = bindingToTerm;
|
|
13
|
+
exports.fetcherOptionsJsonPublicData = exports.escoParameters = exports.dbpediaParameters = exports.dbPediaTypeMap = void 0;
|
|
14
|
+
exports.getDbpediaDetails = getDbpediaDetails;
|
|
15
|
+
exports.getWikidataDetails = getWikidataDetails;
|
|
16
|
+
exports.getWikidataDetailsOld = getWikidataDetailsOld;
|
|
17
|
+
exports.getWikidataLocation = getWikidataLocation;
|
|
18
|
+
exports.instituteDetailsWikidataQuery = void 0;
|
|
19
|
+
exports.loadFromBindings = loadFromBindings;
|
|
20
|
+
exports.loadPublicDataThing = loadPublicDataThing;
|
|
21
|
+
exports.queryESCODataByName = queryESCODataByName;
|
|
22
|
+
exports.queryPublicDataByName = queryPublicDataByName;
|
|
23
|
+
exports.queryPublicDataConstruct = queryPublicDataConstruct;
|
|
24
|
+
exports.queryPublicDataSelect = queryPublicDataSelect;
|
|
25
|
+
exports.wikidataParameters = exports.wikidataOutgoingClassMap = exports.wikidataIncomingClassMap = exports.wikidataClasses = exports.variableNameToPredicateMap = void 0;
|
|
26
|
+
|
|
27
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
28
|
+
|
|
29
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
30
|
+
|
|
31
|
+
var _rdflib = require("rdflib");
|
|
32
|
+
|
|
33
|
+
var debug = _interopRequireWildcard(require("../../../debug"));
|
|
34
|
+
|
|
35
|
+
var ns = _interopRequireWildcard(require("../../../ns"));
|
|
36
|
+
|
|
37
|
+
var _logic = require("../../../logic");
|
|
38
|
+
|
|
39
|
+
var _language = require("./language");
|
|
40
|
+
|
|
41
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
42
|
+
|
|
43
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
44
|
+
|
|
59
45
|
/* Logic to access public data stores
|
|
60
46
|
*
|
|
61
47
|
* including filtering resut by natural language etc
|
|
62
48
|
* See https://solidos.solidcommunity.net/public/2021/01%20Building%20Solid%20Apps%20which%20use%20Public%20Data.html
|
|
63
49
|
*/
|
|
50
|
+
|
|
64
51
|
/* eslint-disable no-console */
|
|
65
|
-
var rdflib_1 = require("rdflib");
|
|
66
|
-
var debug = __importStar(require("../../../debug"));
|
|
67
|
-
var ns = __importStar(require("../../../ns"));
|
|
68
|
-
var logic_1 = require("../../../logic");
|
|
69
52
|
// import * as logic from '../../../logic'
|
|
70
|
-
var
|
|
71
|
-
exports.AUTOCOMPLETE_LIMIT = 200; // How many to get from server
|
|
53
|
+
var AUTOCOMPLETE_LIMIT = 200; // How many to get from server
|
|
72
54
|
// With 3000 we could exceed the wikidata timeout
|
|
55
|
+
|
|
56
|
+
exports.AUTOCOMPLETE_LIMIT = AUTOCOMPLETE_LIMIT;
|
|
73
57
|
var subjectRegexp = /\$\(subject\)/g;
|
|
74
58
|
// Schema.org seems to suggest NGOs are non-profit and Corporaions are for-profit
|
|
75
59
|
// but doesn't have explicit classes
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
60
|
+
var wikidataClasses = {
|
|
61
|
+
Corporation: 'http://www.wikidata.org/entity/Q6881511',
|
|
62
|
+
// Enterprise is for-profit
|
|
63
|
+
EducationalOrganization: 'http://www.wikidata.org/entity/Q178706',
|
|
64
|
+
// insitution
|
|
65
|
+
GovernmentOrganization: 'http://www.wikidata.org/entity/Q327333',
|
|
66
|
+
// government agency
|
|
67
|
+
MedicalOrganization: 'http://www.wikidata.org/entity/Q4287745',
|
|
68
|
+
MusicGroup: 'http://www.wikidata.org/entity/Q32178211',
|
|
69
|
+
// music organization
|
|
70
|
+
NGO: 'http://www.wikidata.org/entity/Q163740',
|
|
71
|
+
// nonprofit organization @@
|
|
72
|
+
Occupation: 'http://www.wikidata.org/entity/Q28640',
|
|
73
|
+
// Profession
|
|
74
|
+
// Organization: 'http://www.wikidata.org/entity/Q43229',
|
|
75
|
+
Project: 'http://www.wikidata.org/entity/Q170584',
|
|
76
|
+
SportsOrganization: 'http://www.wikidata.org/entity/Q4438121'
|
|
87
77
|
};
|
|
88
|
-
exports.
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
78
|
+
exports.wikidataClasses = wikidataClasses;
|
|
79
|
+
var instituteDetailsWikidataQuery = "prefix vcard: <http://www.w3.org/2006/vcard/ns#>\nCONSTRUCT\n{ wd:Q49108 vcard:fn ?itemLabel.\nwd:Q49108 rdf:type ?klass. ?klass rdfs:label ?klassLabel; rdfs:comment ?klassDescription .\nwd:Q49108 schema:logo ?logo;\n schema:image ?image;\n schema:logo ?sealImage;\n schema:subOrganization ?subsidiary .\n ?subsidiary rdfs:label ?subsidiaryLabel .\n ?supersidiary schema:subOrganization wd:Q49108 .\n ?supersidiary rdfs:label ?supersidiaryLabel .\n wd:Q49108 schema:location ?location .\n ?location schema:elevation ?elevation .\n ?location wdt:P131 ?region . ?region rdfs:label ?regionLabel .\n ?location wdt:P625 ?coordinates .\n ?location schema:country ?country . ?country rdfs:label ?countryLabel .\n}\nWHERE\n{ optional {wd:Q49108 rdfs:label ?itemLabel} .\n optional {wd:Q49108 wdt:P154 ?logo .}\n optional {wd:Q49108 wdt:P31 ?klass .}\n optional {wd:Q49108 wdt:P158 ?sealImage .}\n optional {wd:Q49108 wdt:P18 ?image .}\n\n optional { wd:Q49108 wdt:P355 ?subsidiary . }\n optional { ?supersidiary wdt:P355 wd:Q49108. }\n\n optional { wd:Q49108 wdt:P276 ?location .\n\n optional { ?location schema:eleveation ?elevation }\n optional { ?location wdt:P131 ?region }\n optional { ?location wdt:P625 ?coordinates }\n optional { ?location wdt:P17 ?country }\n }\n SERVICE wikibase:label { bd:serviceParam wikibase:language \"fr,en,de,it\". }\n}";
|
|
80
|
+
exports.instituteDetailsWikidataQuery = instituteDetailsWikidataQuery;
|
|
81
|
+
var fetcherOptionsJsonPublicData = {
|
|
82
|
+
credentials: 'omit',
|
|
83
|
+
// try to avoid CORS problems. Data is public so no auth
|
|
84
|
+
headers: new Headers({
|
|
85
|
+
Accept: 'application/json'
|
|
86
|
+
})
|
|
92
87
|
};
|
|
93
|
-
exports.
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
88
|
+
exports.fetcherOptionsJsonPublicData = fetcherOptionsJsonPublicData;
|
|
89
|
+
var escoParameters = {
|
|
90
|
+
label: 'ESCO',
|
|
91
|
+
logo: _logic.kb.sym('https://ec.europa.eu/esco/portal/static_resource2/images/logo/logo_en.gif'),
|
|
92
|
+
searchByNameURI: 'https://ec.europa.eu/esco/api/search?language=$(language)&type=occupation&text=$(name)' // endpoint: undefined
|
|
93
|
+
// returnFormat: 'ESCO',
|
|
94
|
+
// targetClass: {}
|
|
95
|
+
|
|
100
96
|
};
|
|
101
|
-
exports.
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
97
|
+
exports.escoParameters = escoParameters;
|
|
98
|
+
var dbpediaParameters = {
|
|
99
|
+
label: 'DBPedia',
|
|
100
|
+
logo: _logic.kb.sym('https://upload.wikimedia.org/wikipedia/commons/thumb/7/73/DBpediaLogo.svg/263px-DBpediaLogo.svg.png'),
|
|
101
|
+
searchByNameQuery: "select distinct ?subject, ?name where {\n ?subject a $(targetClass); rdfs:label ?name\n FILTER regex(?name, \"$(name)\", \"i\")\n } LIMIT $(limit)",
|
|
102
|
+
endpoint: 'https://dbpedia.org/sparql/'
|
|
106
103
|
};
|
|
107
|
-
exports.
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
Enterprise: 'http://www.wikidata.org/entity/Q6881511',
|
|
111
|
-
Business: 'http://www.wikidata.org/entity/Q4830453',
|
|
112
|
-
NGO: 'http://www.wikidata.org/entity/Q79913',
|
|
113
|
-
CharitableOrganization: 'http://www.wikidata.org/entity/Q708676',
|
|
114
|
-
Insitute: 'http://www.wikidata.org/entity/Q1664720'
|
|
104
|
+
exports.dbpediaParameters = dbpediaParameters;
|
|
105
|
+
var dbPediaTypeMap = {
|
|
106
|
+
AcademicInsitution: 'http://umbel.org/umbel/rc/EducationalOrganization'
|
|
115
107
|
};
|
|
116
|
-
exports.
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
108
|
+
exports.dbPediaTypeMap = dbPediaTypeMap;
|
|
109
|
+
var wikidataOutgoingClassMap = {
|
|
110
|
+
AcademicInsitution: 'http://www.wikidata.org/entity/Q4671277',
|
|
111
|
+
Enterprise: 'http://www.wikidata.org/entity/Q6881511',
|
|
112
|
+
Business: 'http://www.wikidata.org/entity/Q4830453',
|
|
113
|
+
NGO: 'http://www.wikidata.org/entity/Q79913',
|
|
114
|
+
CharitableOrganization: 'http://www.wikidata.org/entity/Q708676',
|
|
115
|
+
Insitute: 'http://www.wikidata.org/entity/Q1664720'
|
|
123
116
|
};
|
|
124
|
-
exports.
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
117
|
+
exports.wikidataOutgoingClassMap = wikidataOutgoingClassMap;
|
|
118
|
+
var wikidataParameters = {
|
|
119
|
+
label: 'WikiData',
|
|
120
|
+
limit: 3000,
|
|
121
|
+
// Need a high one as very many items, and many languages
|
|
122
|
+
logo: _logic.kb.sym('https://www.wikimedia.org/static/images/project-logos/wikidatawiki.png'),
|
|
123
|
+
endpoint: 'https://query.wikidata.org/sparql',
|
|
124
|
+
searchByNameQuery: "SELECT ?subject ?name\n WHERE {\n ?klass wdt:P279* $(targetClass) .\n ?subject wdt:P31 ?klass .\n ?subject rdfs:label ?name.\n FILTER regex(?name, \"$(name)\", \"i\")\n } LIMIT $(limit) ",
|
|
125
|
+
// was SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" }
|
|
126
|
+
insitituteDetailsQuery: "CONSTRUCT\n{ wd:Q49108 schema:name ?itemLabel;\n schema:logo ?logo;\n schema:logo ?sealImage;\n schema:subOrganization ?subsidiary .\n ?subsidiary schema:name ?subsidiaryLabel .\n}\nWHERE\n{\n wd:Q49108 # rdfs:label ?itemLabel ;\n wdt:P154 ?logo;\n wdt:P158 ?sealImage ;\n wdt:P355 ?subsidiary .\n # ?subsidiary rdfs:label ?subsidiaryLabel .\n\n SERVICE wikibase:label { bd:serviceParam wikibase:language \"[AUTO_LANGUAGE], fr\". }\n}"
|
|
133
127
|
};
|
|
134
|
-
exports.
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
128
|
+
exports.wikidataParameters = wikidataParameters;
|
|
129
|
+
var wikidataIncomingClassMap = {
|
|
130
|
+
'http://www.wikidata.org/entity/Q15936437': ns.schema('CollegeOrUniversity'),
|
|
131
|
+
// research university
|
|
132
|
+
'http://www.wikidata.org/entity/Q1664720': ns.schema('EducationalOrganization'),
|
|
133
|
+
// insitute @@
|
|
134
|
+
'http://www.wikidata.org/entity/Q43229': ns.schema('Organization'),
|
|
135
|
+
// research university
|
|
136
|
+
'http://www.wikidata.org/entity/Q3918': ns.schema('CollegeOrUniversity'),
|
|
137
|
+
// university
|
|
138
|
+
'http://www.wikidata.org/entity/Q170584': ns.schema('Project'),
|
|
139
|
+
// university
|
|
140
|
+
'http://www.wikidata.org/entity/Q327333': ns.schema('GovernmentOrganization'),
|
|
141
|
+
// govt agency
|
|
142
|
+
'http://www.wikidata.org/entity/Q2221906': ns.schema('Place'),
|
|
143
|
+
// geographic location
|
|
144
|
+
'http://www.wikidata.org/entity/Q167037': ns.schema('Corporation') // Corporation
|
|
145
|
+
|
|
149
146
|
};
|
|
147
|
+
exports.wikidataIncomingClassMap = wikidataIncomingClassMap;
|
|
148
|
+
var variableNameToPredicateMap = {
|
|
149
|
+
// allow other mappings to be added in theory hence var
|
|
150
|
+
// wikidata:
|
|
151
|
+
targetClass: ns.rdf('type'),
|
|
152
|
+
// logo: ns.schema('logo'),
|
|
153
|
+
sealImage: ns.schema('logo'),
|
|
154
|
+
// image: ns.schema('image'), defaults to shema
|
|
155
|
+
shortName: ns.foaf('nick'),
|
|
156
|
+
subsidiary: ns.schema('subOrganization'),
|
|
157
|
+
// dbpedia - :
|
|
158
|
+
city: ns.vcard('locality'),
|
|
159
|
+
state: ns.vcard('region'),
|
|
160
|
+
country: ns.vcard('country-name'),
|
|
161
|
+
homepage: ns.foaf('homepage'),
|
|
162
|
+
lat: ns.schema('latitude'),
|
|
163
|
+
"long": ns.schema('longitude')
|
|
164
|
+
};
|
|
165
|
+
exports.variableNameToPredicateMap = variableNameToPredicateMap;
|
|
166
|
+
|
|
150
167
|
function bindingToTerm(item) {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
return new rdflib_1.Literal(item.value);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
throw new Error("bindingToTerm: Unexpected type \"".concat(item.type, "\" in sparql binding}"));
|
|
168
|
+
var typ = item.type.toLowerCase();
|
|
169
|
+
|
|
170
|
+
if (typ === 'uri' || typ === 'iri') {
|
|
171
|
+
return _logic.kb.sym(item.value);
|
|
172
|
+
} else if (typ === 'literal') {
|
|
173
|
+
if (item['xml:lang']) {
|
|
174
|
+
return new _rdflib.Literal(item.value, item['xml:lang']);
|
|
175
|
+
} else {
|
|
176
|
+
return new _rdflib.Literal(item.value);
|
|
165
177
|
}
|
|
178
|
+
} else {
|
|
179
|
+
throw new Error("bindingToTerm: Unexpected type \"".concat(item.type, "\" in sparql binding}"));
|
|
180
|
+
}
|
|
166
181
|
}
|
|
167
|
-
|
|
168
|
-
function loadFromBindings(kb, solidSubject, bindings, doc
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
182
|
+
|
|
183
|
+
function loadFromBindings(kb, solidSubject, bindings, doc) {
|
|
184
|
+
var predMap = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : variableNameToPredicateMap;
|
|
185
|
+
var results = {};
|
|
186
|
+
debug.log("loadFromBindings: subject: ".concat(solidSubject));
|
|
187
|
+
debug.log(" doc: ".concat(doc));
|
|
188
|
+
bindings.forEach(function (binding) {
|
|
189
|
+
for (var key in binding) {
|
|
190
|
+
var result = binding[key];
|
|
191
|
+
var combined = JSON.stringify(result); // ( result.type, result.value )
|
|
192
|
+
|
|
193
|
+
results[key] = results[key] || new Set();
|
|
194
|
+
results[key].add(combined); // remove duplicates
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
|
|
198
|
+
var _loop = function _loop(key) {
|
|
199
|
+
var values = results[key];
|
|
200
|
+
debug.log(" results ".concat(key, " -> ").concat(values));
|
|
201
|
+
values.forEach(function (combined) {
|
|
202
|
+
var result = JSON.parse(combined);
|
|
203
|
+
var type = result.type,
|
|
204
|
+
value = result.value;
|
|
205
|
+
var obj;
|
|
206
|
+
|
|
207
|
+
if (type === 'uri') {
|
|
208
|
+
obj = kb.sym(value);
|
|
209
|
+
} else if (type === 'literal') {
|
|
210
|
+
obj = new _rdflib.Literal(value, result.language, result.datatype);
|
|
211
|
+
} else {
|
|
212
|
+
throw new Error("loadFromBindings: unexpected type: ".concat(type));
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
if (key === 'type') {
|
|
216
|
+
if (wikidataIncomingClassMap[value]) {
|
|
217
|
+
obj = wikidataIncomingClassMap[value];
|
|
218
|
+
} else {
|
|
219
|
+
debug.warn('Unmapped Wikidata Class: ' + value);
|
|
220
|
+
}
|
|
221
|
+
} else if (key === 'coordinates') {
|
|
222
|
+
// const latlong = value // Like 'Point(-71.106111111 42.375)'
|
|
223
|
+
debug.log(' @@@ hey a point: ' + value); // const regexp = /.*\(([-0-9\.-]*) ([-0-9\.-]*)\)/
|
|
224
|
+
|
|
225
|
+
var regexp = /.*\(([-0-9.-]*) ([-0-9.-]*)\)/;
|
|
226
|
+
var match = regexp.exec(value);
|
|
227
|
+
|
|
228
|
+
if (match) {
|
|
229
|
+
var _float = ns.xsd('float');
|
|
230
|
+
|
|
231
|
+
var latitude = new _rdflib.Literal(match[1], null, _float);
|
|
232
|
+
var longitude = new _rdflib.Literal(match[2], null, _float);
|
|
233
|
+
kb.add(solidSubject, ns.schema('longitude'), longitude, doc);
|
|
234
|
+
kb.add(solidSubject, ns.schema('latitude'), latitude, doc);
|
|
235
|
+
} else {
|
|
236
|
+
debug.log('Bad coordinates syntax: ' + value);
|
|
179
237
|
}
|
|
238
|
+
} else {
|
|
239
|
+
var pred = predMap[key] || ns.schema(key); // fallback to just using schema.org
|
|
240
|
+
|
|
241
|
+
kb.add(solidSubject, pred, obj, doc); // @@ deal with non-string and objects
|
|
242
|
+
|
|
243
|
+
debug.log(" public data ".concat(pred, " ").concat(obj, "."));
|
|
244
|
+
}
|
|
180
245
|
});
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
var type = result.type, value = result.value;
|
|
187
|
-
var obj;
|
|
188
|
-
if (type === 'uri') {
|
|
189
|
-
obj = kb.sym(value);
|
|
190
|
-
}
|
|
191
|
-
else if (type === 'literal') {
|
|
192
|
-
obj = new rdflib_1.Literal(value, result.language, result.datatype);
|
|
193
|
-
}
|
|
194
|
-
else {
|
|
195
|
-
throw new Error("loadFromBindings: unexpected type: ".concat(type));
|
|
196
|
-
}
|
|
197
|
-
if (key === 'type') {
|
|
198
|
-
if (exports.wikidataIncomingClassMap[value]) {
|
|
199
|
-
obj = exports.wikidataIncomingClassMap[value];
|
|
200
|
-
}
|
|
201
|
-
else {
|
|
202
|
-
debug.warn('Unmapped Wikidata Class: ' + value);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
else if (key === 'coordinates') {
|
|
206
|
-
// const latlong = value // Like 'Point(-71.106111111 42.375)'
|
|
207
|
-
debug.log(' @@@ hey a point: ' + value);
|
|
208
|
-
// const regexp = /.*\(([-0-9\.-]*) ([-0-9\.-]*)\)/
|
|
209
|
-
var regexp = /.*\(([-0-9.-]*) ([-0-9.-]*)\)/;
|
|
210
|
-
var match = regexp.exec(value);
|
|
211
|
-
if (match) {
|
|
212
|
-
var float = ns.xsd('float');
|
|
213
|
-
var latitude = new rdflib_1.Literal(match[1], null, float);
|
|
214
|
-
var longitude = new rdflib_1.Literal(match[2], null, float);
|
|
215
|
-
kb.add(solidSubject, ns.schema('longitude'), longitude, doc);
|
|
216
|
-
kb.add(solidSubject, ns.schema('latitude'), latitude, doc);
|
|
217
|
-
}
|
|
218
|
-
else {
|
|
219
|
-
debug.log('Bad coordinates syntax: ' + value);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
else {
|
|
223
|
-
var pred = predMap[key] || ns.schema(key); // fallback to just using schema.org
|
|
224
|
-
kb.add(solidSubject, pred, obj, doc); // @@ deal with non-string and objects
|
|
225
|
-
debug.log(" public data ".concat(pred, " ").concat(obj, "."));
|
|
226
|
-
}
|
|
227
|
-
});
|
|
228
|
-
};
|
|
229
|
-
for (var key in results) {
|
|
230
|
-
_loop_1(key);
|
|
231
|
-
}
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
for (var key in results) {
|
|
249
|
+
_loop(key);
|
|
250
|
+
}
|
|
232
251
|
}
|
|
233
|
-
exports.loadFromBindings = loadFromBindings;
|
|
234
252
|
/* ESCO sopecific
|
|
235
253
|
*/
|
|
254
|
+
|
|
255
|
+
|
|
236
256
|
function ESCOResultToBindings(json) {
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
return
|
|
257
|
+
var results = json._embedded.results; // Array
|
|
258
|
+
|
|
259
|
+
var bindings = results.map(function (result) {
|
|
260
|
+
var name = result.title;
|
|
261
|
+
var uri = result.uri; // like http://data.europa.eu/esco/occupation/57af9090-55b4-4911-b2d0-86db01c00b02
|
|
262
|
+
|
|
263
|
+
return {
|
|
264
|
+
name: {
|
|
265
|
+
value: name,
|
|
266
|
+
type: 'literal'
|
|
267
|
+
},
|
|
268
|
+
subject: {
|
|
269
|
+
type: 'IRI',
|
|
270
|
+
value: uri
|
|
271
|
+
}
|
|
272
|
+
}; // simulate SPARQL bindings
|
|
273
|
+
});
|
|
274
|
+
return bindings;
|
|
244
275
|
}
|
|
245
|
-
exports.ESCOResultToBindings = ESCOResultToBindings;
|
|
246
276
|
/* Query all entities of given class and partially matching name
|
|
247
277
|
*/
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
return __generator(this, function (_b) {
|
|
253
|
-
switch (_b.label) {
|
|
254
|
-
case 0:
|
|
255
|
-
if (!queryTarget.searchByNameURI)
|
|
256
|
-
throw new Error('Missing queryTarget.searchByNameURI on queryESCODataByName');
|
|
257
|
-
limit = queryTarget.limit || exports.AUTOCOMPLETE_LIMIT;
|
|
258
|
-
queryURI = queryTarget.searchByNameURI
|
|
259
|
-
.replace('$(name)', filter)
|
|
260
|
-
.replace('$(limit)', '' + limit)
|
|
261
|
-
.replace('$(targetClass)', theClass.toNT());
|
|
262
|
-
debug.log('Querying ESCO data - uri: ' + queryURI);
|
|
263
|
-
return [4 /*yield*/, ((_a = logic_1.kb.fetcher) === null || _a === void 0 ? void 0 : _a.webOperation('GET', queryURI, exports.fetcherOptionsJsonPublicData))];
|
|
264
|
-
case 1:
|
|
265
|
-
response = _b.sent();
|
|
266
|
-
text = (response === null || response === void 0 ? void 0 : response.responseText) || '';
|
|
267
|
-
debug.log(' Query result text' + text.slice(0, 500) + '...');
|
|
268
|
-
if (text.length === 0)
|
|
269
|
-
throw new Error('Wot no text back from ESCO query ' + queryURI);
|
|
270
|
-
json = JSON.parse(text);
|
|
271
|
-
// console.log('Whole JSON return object', json)
|
|
272
|
-
debug.log(' ESCO Query result JSON' + JSON.stringify(json, null, 4).slice(0, 500) + '...');
|
|
273
|
-
return [2 /*return*/, ESCOResultToBindings(json)];
|
|
274
|
-
}
|
|
275
|
-
});
|
|
276
|
-
});
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
function queryESCODataByName(_x, _x2, _x3) {
|
|
281
|
+
return _queryESCODataByName.apply(this, arguments);
|
|
277
282
|
}
|
|
278
|
-
exports.queryESCODataByName = queryESCODataByName;
|
|
279
283
|
/* Cope ithe syntax probelm in wikidata timeout responses
|
|
280
284
|
*
|
|
281
285
|
* Wikidata bug: https://phabricator.wikimedia.org/T283962
|
|
282
286
|
* This will not be needed whn that WDQS bug fixed.
|
|
283
287
|
* This is aptured in https://github.com/solid/solid-ui/issues/403
|
|
284
288
|
*/
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
function _queryESCODataByName() {
|
|
292
|
+
_queryESCODataByName = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(filter, theClass, queryTarget) {
|
|
293
|
+
var _kb$fetcher;
|
|
294
|
+
|
|
295
|
+
var limit, queryURI, response, text, json;
|
|
296
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
297
|
+
while (1) {
|
|
298
|
+
switch (_context.prev = _context.next) {
|
|
299
|
+
case 0:
|
|
300
|
+
if (queryTarget.searchByNameURI) {
|
|
301
|
+
_context.next = 2;
|
|
302
|
+
break;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
throw new Error('Missing queryTarget.searchByNameURI on queryESCODataByName');
|
|
306
|
+
|
|
307
|
+
case 2:
|
|
308
|
+
limit = queryTarget.limit || AUTOCOMPLETE_LIMIT;
|
|
309
|
+
queryURI = queryTarget.searchByNameURI.replace('$(name)', filter).replace('$(limit)', '' + limit).replace('$(targetClass)', theClass.toNT());
|
|
310
|
+
debug.log('Querying ESCO data - uri: ' + queryURI);
|
|
311
|
+
_context.next = 7;
|
|
312
|
+
return (_kb$fetcher = _logic.kb.fetcher) === null || _kb$fetcher === void 0 ? void 0 : _kb$fetcher.webOperation('GET', queryURI, fetcherOptionsJsonPublicData);
|
|
313
|
+
|
|
314
|
+
case 7:
|
|
315
|
+
response = _context.sent;
|
|
316
|
+
text = (response === null || response === void 0 ? void 0 : response.responseText) || '';
|
|
317
|
+
debug.log(' Query result text' + text.slice(0, 500) + '...');
|
|
318
|
+
|
|
319
|
+
if (!(text.length === 0)) {
|
|
320
|
+
_context.next = 12;
|
|
321
|
+
break;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
throw new Error('Wot no text back from ESCO query ' + queryURI);
|
|
325
|
+
|
|
326
|
+
case 12:
|
|
327
|
+
json = JSON.parse(text); // console.log('Whole JSON return object', json)
|
|
328
|
+
|
|
329
|
+
debug.log(' ESCO Query result JSON' + JSON.stringify(json, null, 4).slice(0, 500) + '...');
|
|
330
|
+
return _context.abrupt("return", ESCOResultToBindings(json));
|
|
331
|
+
|
|
332
|
+
case 15:
|
|
333
|
+
case "end":
|
|
334
|
+
return _context.stop();
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
}, _callee);
|
|
338
|
+
}));
|
|
339
|
+
return _queryESCODataByName.apply(this, arguments);
|
|
340
|
+
}
|
|
341
|
+
|
|
285
342
|
function fixWikidataJSON(str) {
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
return str.slice(0, goodness) + ' } ] } } '; // Close binding, array, bindings, results, root object
|
|
343
|
+
var syntaxProblem = str.indexOf('SPARQL-QUERY');
|
|
344
|
+
if (syntaxProblem < 0) return str; // console.log('@@ fixWikidataJSON FIXING')
|
|
345
|
+
|
|
346
|
+
debug.warn(' ### Fixing JSON with wikidata error code injection ' + str.slice(syntaxProblem, syntaxProblem + 200));
|
|
347
|
+
var goodness = str.lastIndexOf('}, {');
|
|
348
|
+
return str.slice(0, goodness) + ' } ] } } '; // Close binding, array, bindings, results, root object
|
|
293
349
|
}
|
|
294
350
|
/* Query all entities of given class and partially matching name
|
|
295
351
|
*/
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
var limit = queryTarget.limit || exports.AUTOCOMPLETE_LIMIT;
|
|
301
|
-
var u1 = template.replace('$(name)', filter)
|
|
302
|
-
.replace('$(limit)', '' + limit)
|
|
303
|
-
.replace('$(language)', language);
|
|
304
|
-
return u1.replace('$(targetClass)', theClass.toNT());
|
|
305
|
-
}
|
|
306
|
-
var languagePrefs, language, sparql, queryURI, response, err_1, text, text2, json, bindings;
|
|
307
|
-
return __generator(this, function (_b) {
|
|
308
|
-
switch (_b.label) {
|
|
309
|
-
case 0:
|
|
310
|
-
if (!theClass) {
|
|
311
|
-
throw new Error('queryPublicDataByName: No class provided');
|
|
312
|
-
}
|
|
313
|
-
return [4 /*yield*/, (0, language_1.getPreferredLanguages)()];
|
|
314
|
-
case 1:
|
|
315
|
-
languagePrefs = (_b.sent()) || language_1.defaultPreferredLanguages;
|
|
316
|
-
language = languagePrefs[0] || 'en';
|
|
317
|
-
if (!queryTarget.searchByNameQuery) return [3 /*break*/, 2];
|
|
318
|
-
sparql = substituteStrings(queryTarget.searchByNameQuery);
|
|
319
|
-
debug.log('Querying public data - sparql: ' + sparql);
|
|
320
|
-
return [2 /*return*/, queryPublicDataSelect(sparql, queryTarget)];
|
|
321
|
-
case 2:
|
|
322
|
-
if (!queryTarget.searchByNameURI) return [3 /*break*/, 7];
|
|
323
|
-
queryURI = substituteStrings(queryTarget.searchByNameURI);
|
|
324
|
-
response = void 0;
|
|
325
|
-
_b.label = 3;
|
|
326
|
-
case 3:
|
|
327
|
-
_b.trys.push([3, 5, , 6]);
|
|
328
|
-
return [4 /*yield*/, ((_a = logic_1.kb.fetcher) === null || _a === void 0 ? void 0 : _a.webOperation('GET', queryURI, exports.fetcherOptionsJsonPublicData))];
|
|
329
|
-
case 4:
|
|
330
|
-
response = _b.sent();
|
|
331
|
-
return [3 /*break*/, 6];
|
|
332
|
-
case 5:
|
|
333
|
-
err_1 = _b.sent();
|
|
334
|
-
throw new Error("Exception when trying to fetch ".concat(queryURI, " \n ").concat(err_1));
|
|
335
|
-
case 6:
|
|
336
|
-
text = response.responseText || '' // ts
|
|
337
|
-
;
|
|
338
|
-
if (response.status !== 200) {
|
|
339
|
-
throw new Error("HTTP error status ".concat(response.status, " trying to fetch ").concat(queryURI, " "));
|
|
340
|
-
}
|
|
341
|
-
debug.log(' Query result text' + text.slice(0, 500) + '...');
|
|
342
|
-
if (text.length === 0)
|
|
343
|
-
throw new Error('queryPublicDataByName: No text back from public data query ' + queryURI);
|
|
344
|
-
text2 = fixWikidataJSON(text) // Kludge: strip of interrupting error message
|
|
345
|
-
;
|
|
346
|
-
json = JSON.parse(text2);
|
|
347
|
-
debug.log(' API Query result JSON' + JSON.stringify(json, null, 4).slice(0, 500) + '...');
|
|
348
|
-
if (json._embedded) {
|
|
349
|
-
debug.log(' Looks like ESCO');
|
|
350
|
-
bindings = ESCOResultToBindings(json);
|
|
351
|
-
return [2 /*return*/, bindings];
|
|
352
|
-
}
|
|
353
|
-
else {
|
|
354
|
-
alert('Code me: unrecognized API return format');
|
|
355
|
-
throw new Error("*** Need to add code to parse unrecognized API JSON return\n".concat(JSON.stringify(json, null, 4)));
|
|
356
|
-
}
|
|
357
|
-
return [3 /*break*/, 8];
|
|
358
|
-
case 7: throw new Error('Query source must have either rest API or SPARQL endpoint.');
|
|
359
|
-
case 8: return [2 /*return*/];
|
|
360
|
-
}
|
|
361
|
-
});
|
|
362
|
-
});
|
|
352
|
+
|
|
353
|
+
|
|
354
|
+
function queryPublicDataByName(_x4, _x5, _x6, _x7) {
|
|
355
|
+
return _queryPublicDataByName.apply(this, arguments);
|
|
363
356
|
}
|
|
364
|
-
exports.queryPublicDataByName = queryPublicDataByName;
|
|
365
357
|
/* Query a database using SPARQL SELECT
|
|
366
358
|
*/
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
return [4 /*yield*/, ((_a = logic_1.kb.fetcher) === null || _a === void 0 ? void 0 : _a.webOperation('GET', queryURI, options))];
|
|
387
|
-
case 1:
|
|
388
|
-
response = _b.sent();
|
|
389
|
-
text = (response === null || response === void 0 ? void 0 : response.responseText) || '';
|
|
390
|
-
if (text.length === 0)
|
|
391
|
-
throw new Error('No text back from query ' + queryURI);
|
|
392
|
-
text2 = fixWikidataJSON(text);
|
|
393
|
-
json = JSON.parse(text2);
|
|
394
|
-
debug.log(' Query result JSON' + JSON.stringify(json, null, 4).slice(0, 100) + '...');
|
|
395
|
-
bindings = json.results.bindings;
|
|
396
|
-
return [2 /*return*/, bindings];
|
|
359
|
+
|
|
360
|
+
|
|
361
|
+
function _queryPublicDataByName() {
|
|
362
|
+
_queryPublicDataByName = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(filter, theClass, languages, queryTarget) {
|
|
363
|
+
var substituteStrings, languagePrefs, language, sparql, queryURI, response, _kb$fetcher2, text, text2, json, bindings;
|
|
364
|
+
|
|
365
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
366
|
+
while (1) {
|
|
367
|
+
switch (_context2.prev = _context2.next) {
|
|
368
|
+
case 0:
|
|
369
|
+
substituteStrings = function _substituteStrings(template) {
|
|
370
|
+
var limit = queryTarget.limit || AUTOCOMPLETE_LIMIT;
|
|
371
|
+
var u1 = template.replace('$(name)', filter).replace('$(limit)', '' + limit).replace('$(language)', language);
|
|
372
|
+
return u1.replace('$(targetClass)', theClass.toNT());
|
|
373
|
+
};
|
|
374
|
+
|
|
375
|
+
if (theClass) {
|
|
376
|
+
_context2.next = 3;
|
|
377
|
+
break;
|
|
397
378
|
}
|
|
398
|
-
|
|
399
|
-
|
|
379
|
+
|
|
380
|
+
throw new Error('queryPublicDataByName: No class provided');
|
|
381
|
+
|
|
382
|
+
case 3:
|
|
383
|
+
_context2.next = 5;
|
|
384
|
+
return (0, _language.getPreferredLanguages)();
|
|
385
|
+
|
|
386
|
+
case 5:
|
|
387
|
+
_context2.t0 = _context2.sent;
|
|
388
|
+
|
|
389
|
+
if (_context2.t0) {
|
|
390
|
+
_context2.next = 8;
|
|
391
|
+
break;
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
_context2.t0 = _language.defaultPreferredLanguages;
|
|
395
|
+
|
|
396
|
+
case 8:
|
|
397
|
+
languagePrefs = _context2.t0;
|
|
398
|
+
language = languagePrefs[0] || 'en';
|
|
399
|
+
|
|
400
|
+
if (!queryTarget.searchByNameQuery) {
|
|
401
|
+
_context2.next = 16;
|
|
402
|
+
break;
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
sparql = substituteStrings(queryTarget.searchByNameQuery);
|
|
406
|
+
debug.log('Querying public data - sparql: ' + sparql);
|
|
407
|
+
return _context2.abrupt("return", queryPublicDataSelect(sparql, queryTarget));
|
|
408
|
+
|
|
409
|
+
case 16:
|
|
410
|
+
if (!queryTarget.searchByNameURI) {
|
|
411
|
+
_context2.next = 46;
|
|
412
|
+
break;
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
// not sparql - random API
|
|
416
|
+
queryURI = substituteStrings(queryTarget.searchByNameURI);
|
|
417
|
+
_context2.prev = 18;
|
|
418
|
+
_context2.next = 21;
|
|
419
|
+
return (_kb$fetcher2 = _logic.kb.fetcher) === null || _kb$fetcher2 === void 0 ? void 0 : _kb$fetcher2.webOperation('GET', queryURI, fetcherOptionsJsonPublicData);
|
|
420
|
+
|
|
421
|
+
case 21:
|
|
422
|
+
response = _context2.sent;
|
|
423
|
+
_context2.next = 27;
|
|
424
|
+
break;
|
|
425
|
+
|
|
426
|
+
case 24:
|
|
427
|
+
_context2.prev = 24;
|
|
428
|
+
_context2.t1 = _context2["catch"](18);
|
|
429
|
+
throw new Error("Exception when trying to fetch ".concat(queryURI, " \n ").concat(_context2.t1));
|
|
430
|
+
|
|
431
|
+
case 27:
|
|
432
|
+
text = response.responseText || ''; // ts
|
|
433
|
+
|
|
434
|
+
if (!(response.status !== 200)) {
|
|
435
|
+
_context2.next = 30;
|
|
436
|
+
break;
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
throw new Error("HTTP error status ".concat(response.status, " trying to fetch ").concat(queryURI, " "));
|
|
440
|
+
|
|
441
|
+
case 30:
|
|
442
|
+
debug.log(' Query result text' + text.slice(0, 500) + '...');
|
|
443
|
+
|
|
444
|
+
if (!(text.length === 0)) {
|
|
445
|
+
_context2.next = 33;
|
|
446
|
+
break;
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
throw new Error('queryPublicDataByName: No text back from public data query ' + queryURI);
|
|
450
|
+
|
|
451
|
+
case 33:
|
|
452
|
+
text2 = fixWikidataJSON(text); // Kludge: strip of interrupting error message
|
|
453
|
+
|
|
454
|
+
json = JSON.parse(text2);
|
|
455
|
+
debug.log(' API Query result JSON' + JSON.stringify(json, null, 4).slice(0, 500) + '...');
|
|
456
|
+
|
|
457
|
+
if (!json._embedded) {
|
|
458
|
+
_context2.next = 42;
|
|
459
|
+
break;
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
debug.log(' Looks like ESCO');
|
|
463
|
+
bindings = ESCOResultToBindings(json);
|
|
464
|
+
return _context2.abrupt("return", bindings);
|
|
465
|
+
|
|
466
|
+
case 42:
|
|
467
|
+
alert('Code me: unrecognized API return format');
|
|
468
|
+
throw new Error("*** Need to add code to parse unrecognized API JSON return\n".concat(JSON.stringify(json, null, 4)));
|
|
469
|
+
|
|
470
|
+
case 44:
|
|
471
|
+
_context2.next = 47;
|
|
472
|
+
break;
|
|
473
|
+
|
|
474
|
+
case 46:
|
|
475
|
+
throw new Error('Query source must have either rest API or SPARQL endpoint.');
|
|
476
|
+
|
|
477
|
+
case 47:
|
|
478
|
+
case "end":
|
|
479
|
+
return _context2.stop();
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
}, _callee2, null, [[18, 24]]);
|
|
483
|
+
}));
|
|
484
|
+
return _queryPublicDataByName.apply(this, arguments);
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
function queryPublicDataSelect(_x8, _x9) {
|
|
488
|
+
return _queryPublicDataSelect.apply(this, arguments);
|
|
400
489
|
}
|
|
401
|
-
exports.queryPublicDataSelect = queryPublicDataSelect;
|
|
402
490
|
/* Load from a database using SPARQL CONSTRUCT
|
|
403
491
|
*/
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
headers = new Headers();
|
|
419
|
-
headers.append('Accept', 'text/turtle');
|
|
420
|
-
options = {
|
|
421
|
-
credentials: 'omit',
|
|
422
|
-
headers: headers // ({ Accept: 'text/turtle' } as Headers)
|
|
423
|
-
};
|
|
424
|
-
return [4 /*yield*/, ((_a = logic_1.kb.fetcher) === null || _a === void 0 ? void 0 : _a.webOperation('GET', queryURI, options))];
|
|
425
|
-
case 1:
|
|
426
|
-
response = _b.sent();
|
|
427
|
-
text = (response === null || response === void 0 ? void 0 : response.responseText) || 'No response text?';
|
|
428
|
-
report = text.length > 500 ? text.slice(0, 200) + ' ... ' + text.slice(-200) : text;
|
|
429
|
-
debug.log(' queryPublicDataConstruct result text:' + report);
|
|
430
|
-
if (text.length === 0)
|
|
431
|
-
throw new Error('queryPublicDataConstruct: No text back from construct query:' + queryURI);
|
|
432
|
-
(0, rdflib_1.parse)(text, logic_1.kb, pubicId.uri, 'text/turtle');
|
|
433
|
-
return [2 /*return*/];
|
|
492
|
+
|
|
493
|
+
|
|
494
|
+
function _queryPublicDataSelect() {
|
|
495
|
+
_queryPublicDataSelect = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(sparql, queryTarget) {
|
|
496
|
+
var _kb$fetcher3;
|
|
497
|
+
|
|
498
|
+
var myUrlWithParams, queryURI, headers, options, response, text, text2, json, bindings;
|
|
499
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
500
|
+
while (1) {
|
|
501
|
+
switch (_context3.prev = _context3.next) {
|
|
502
|
+
case 0:
|
|
503
|
+
if (queryTarget.endpoint) {
|
|
504
|
+
_context3.next = 2;
|
|
505
|
+
break;
|
|
434
506
|
}
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
return [3 /*break*/, 4];
|
|
461
|
-
case 3:
|
|
462
|
-
iDToFetch = publicDataID.uri.startsWith('http:')
|
|
463
|
-
? kb.sym('https:' + publicDataID.uri.slice(5))
|
|
464
|
-
: publicDataID;
|
|
465
|
-
headers = new Headers();
|
|
466
|
-
headers.append('Accept', 'text/turtle');
|
|
467
|
-
return [2 /*return*/, kb.fetcher.load(iDToFetch, {
|
|
468
|
-
credentials: 'omit',
|
|
469
|
-
headers: headers
|
|
470
|
-
})];
|
|
471
|
-
case 4: return [2 /*return*/];
|
|
507
|
+
|
|
508
|
+
throw new Error('Missing queryTarget.endpoint required for queryPublicDataSelect');
|
|
509
|
+
|
|
510
|
+
case 2:
|
|
511
|
+
myUrlWithParams = new URL(queryTarget.endpoint);
|
|
512
|
+
myUrlWithParams.searchParams.append('query', sparql);
|
|
513
|
+
queryURI = myUrlWithParams.href;
|
|
514
|
+
debug.log(' queryPublicDataSelect uri: ' + queryURI);
|
|
515
|
+
headers = new Headers();
|
|
516
|
+
headers.append('Accept', 'application/json');
|
|
517
|
+
options = {
|
|
518
|
+
credentials: 'omit',
|
|
519
|
+
// CORS - as we know it is public
|
|
520
|
+
headers: headers
|
|
521
|
+
};
|
|
522
|
+
_context3.next = 11;
|
|
523
|
+
return (_kb$fetcher3 = _logic.kb.fetcher) === null || _kb$fetcher3 === void 0 ? void 0 : _kb$fetcher3.webOperation('GET', queryURI, options);
|
|
524
|
+
|
|
525
|
+
case 11:
|
|
526
|
+
response = _context3.sent;
|
|
527
|
+
text = (response === null || response === void 0 ? void 0 : response.responseText) || '';
|
|
528
|
+
|
|
529
|
+
if (!(text.length === 0)) {
|
|
530
|
+
_context3.next = 15;
|
|
531
|
+
break;
|
|
472
532
|
}
|
|
473
|
-
|
|
474
|
-
|
|
533
|
+
|
|
534
|
+
throw new Error('No text back from query ' + queryURI);
|
|
535
|
+
|
|
536
|
+
case 15:
|
|
537
|
+
text2 = fixWikidataJSON(text);
|
|
538
|
+
json = JSON.parse(text2);
|
|
539
|
+
debug.log(' Query result JSON' + JSON.stringify(json, null, 4).slice(0, 100) + '...');
|
|
540
|
+
bindings = json.results.bindings;
|
|
541
|
+
return _context3.abrupt("return", bindings);
|
|
542
|
+
|
|
543
|
+
case 20:
|
|
544
|
+
case "end":
|
|
545
|
+
return _context3.stop();
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
}, _callee3);
|
|
549
|
+
}));
|
|
550
|
+
return _queryPublicDataSelect.apply(this, arguments);
|
|
475
551
|
}
|
|
476
|
-
|
|
477
|
-
function
|
|
478
|
-
|
|
479
|
-
var subjRegexp, sparql;
|
|
480
|
-
return __generator(this, function (_a) {
|
|
481
|
-
switch (_a.label) {
|
|
482
|
-
case 0:
|
|
483
|
-
subjRegexp = /wd:Q49108/g;
|
|
484
|
-
sparql = exports.instituteDetailsWikidataQuery.replace(subjRegexp, publicDataID.toNT());
|
|
485
|
-
return [4 /*yield*/, queryPublicDataConstruct(sparql, publicDataID, exports.wikidataParameters)];
|
|
486
|
-
case 1:
|
|
487
|
-
_a.sent();
|
|
488
|
-
debug.log('getWikidataDetails: loaded.', publicDataID);
|
|
489
|
-
return [2 /*return*/];
|
|
490
|
-
}
|
|
491
|
-
});
|
|
492
|
-
});
|
|
552
|
+
|
|
553
|
+
function queryPublicDataConstruct(_x10, _x11, _x12) {
|
|
554
|
+
return _queryPublicDataConstruct.apply(this, arguments);
|
|
493
555
|
}
|
|
494
|
-
|
|
495
|
-
function
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
556
|
+
|
|
557
|
+
function _queryPublicDataConstruct() {
|
|
558
|
+
_queryPublicDataConstruct = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(sparql, pubicId, queryTarget) {
|
|
559
|
+
var _kb$fetcher4;
|
|
560
|
+
|
|
561
|
+
var myUrlWithParams, queryURI, headers, options, response, text, report;
|
|
562
|
+
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
563
|
+
while (1) {
|
|
564
|
+
switch (_context4.prev = _context4.next) {
|
|
565
|
+
case 0:
|
|
566
|
+
debug.log('queryPublicDataConstruct: sparql:', sparql);
|
|
567
|
+
|
|
568
|
+
if (queryTarget.endpoint) {
|
|
569
|
+
_context4.next = 3;
|
|
570
|
+
break;
|
|
508
571
|
}
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
572
|
+
|
|
573
|
+
throw new Error('Missing queryTarget.endpoint required for queryPublicDataConstruct');
|
|
574
|
+
|
|
575
|
+
case 3:
|
|
576
|
+
myUrlWithParams = new URL(queryTarget.endpoint);
|
|
577
|
+
myUrlWithParams.searchParams.append('query', sparql);
|
|
578
|
+
queryURI = myUrlWithParams.href;
|
|
579
|
+
debug.log(' queryPublicDataConstruct uri: ' + queryURI);
|
|
580
|
+
headers = new Headers();
|
|
581
|
+
headers.append('Accept', 'text/turtle');
|
|
582
|
+
options = {
|
|
583
|
+
credentials: 'omit',
|
|
584
|
+
// CORS // @tsc pain
|
|
585
|
+
headers: headers // ({ Accept: 'text/turtle' } as Headers)
|
|
586
|
+
|
|
587
|
+
};
|
|
588
|
+
_context4.next = 12;
|
|
589
|
+
return (_kb$fetcher4 = _logic.kb.fetcher) === null || _kb$fetcher4 === void 0 ? void 0 : _kb$fetcher4.webOperation('GET', queryURI, options);
|
|
590
|
+
|
|
591
|
+
case 12:
|
|
592
|
+
response = _context4.sent;
|
|
593
|
+
text = (response === null || response === void 0 ? void 0 : response.responseText) || 'No response text?';
|
|
594
|
+
report = text.length > 500 ? text.slice(0, 200) + ' ... ' + text.slice(-200) : text;
|
|
595
|
+
debug.log(' queryPublicDataConstruct result text:' + report);
|
|
596
|
+
|
|
597
|
+
if (!(text.length === 0)) {
|
|
598
|
+
_context4.next = 18;
|
|
599
|
+
break;
|
|
527
600
|
}
|
|
528
|
-
|
|
529
|
-
|
|
601
|
+
|
|
602
|
+
throw new Error('queryPublicDataConstruct: No text back from construct query:' + queryURI);
|
|
603
|
+
|
|
604
|
+
case 18:
|
|
605
|
+
(0, _rdflib.parse)(text, _logic.kb, pubicId.uri, 'text/turtle');
|
|
606
|
+
|
|
607
|
+
case 19:
|
|
608
|
+
case "end":
|
|
609
|
+
return _context4.stop();
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
}, _callee4);
|
|
613
|
+
}));
|
|
614
|
+
return _queryPublicDataConstruct.apply(this, arguments);
|
|
530
615
|
}
|
|
531
|
-
|
|
532
|
-
function
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
616
|
+
|
|
617
|
+
function loadPublicDataThing(_x13, _x14, _x15) {
|
|
618
|
+
return _loadPublicDataThing.apply(this, arguments);
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
function _loadPublicDataThing() {
|
|
622
|
+
_loadPublicDataThing = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(kb, subject, publicDataID) {
|
|
623
|
+
var iDToFetch, headers;
|
|
624
|
+
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
625
|
+
while (1) {
|
|
626
|
+
switch (_context5.prev = _context5.next) {
|
|
627
|
+
case 0:
|
|
628
|
+
if (!publicDataID.uri.startsWith('https://dbpedia.org/resource/')) {
|
|
629
|
+
_context5.next = 4;
|
|
630
|
+
break;
|
|
545
631
|
}
|
|
546
|
-
|
|
547
|
-
|
|
632
|
+
|
|
633
|
+
return _context5.abrupt("return", getDbpediaDetails(kb, subject, publicDataID));
|
|
634
|
+
|
|
635
|
+
case 4:
|
|
636
|
+
if (!publicDataID.uri.match(/^https?:\/\/www\.wikidata\.org\/entity\/.*/)) {
|
|
637
|
+
_context5.next = 9;
|
|
638
|
+
break;
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
_context5.next = 7;
|
|
642
|
+
return getWikidataDetails(kb, subject, publicDataID);
|
|
643
|
+
|
|
644
|
+
case 7:
|
|
645
|
+
_context5.next = 13;
|
|
646
|
+
break;
|
|
647
|
+
|
|
648
|
+
case 9:
|
|
649
|
+
iDToFetch = publicDataID.uri.startsWith('http:') ? kb.sym('https:' + publicDataID.uri.slice(5)) : publicDataID;
|
|
650
|
+
headers = new Headers();
|
|
651
|
+
headers.append('Accept', 'text/turtle');
|
|
652
|
+
return _context5.abrupt("return", kb.fetcher.load(iDToFetch, {
|
|
653
|
+
credentials: 'omit',
|
|
654
|
+
headers: headers
|
|
655
|
+
}));
|
|
656
|
+
|
|
657
|
+
case 13:
|
|
658
|
+
case "end":
|
|
659
|
+
return _context5.stop();
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
}, _callee5);
|
|
663
|
+
}));
|
|
664
|
+
return _loadPublicDataThing.apply(this, arguments);
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
function getWikidataDetails(_x16, _x17, _x18) {
|
|
668
|
+
return _getWikidataDetails.apply(this, arguments);
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
function _getWikidataDetails() {
|
|
672
|
+
_getWikidataDetails = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(kb, solidSubject, publicDataID) {
|
|
673
|
+
var subjRegexp, sparql;
|
|
674
|
+
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
|
675
|
+
while (1) {
|
|
676
|
+
switch (_context6.prev = _context6.next) {
|
|
677
|
+
case 0:
|
|
678
|
+
subjRegexp = /wd:Q49108/g;
|
|
679
|
+
sparql = instituteDetailsWikidataQuery.replace(subjRegexp, publicDataID.toNT());
|
|
680
|
+
_context6.next = 4;
|
|
681
|
+
return queryPublicDataConstruct(sparql, publicDataID, wikidataParameters);
|
|
682
|
+
|
|
683
|
+
case 4:
|
|
684
|
+
debug.log('getWikidataDetails: loaded.', publicDataID);
|
|
685
|
+
|
|
686
|
+
case 5:
|
|
687
|
+
case "end":
|
|
688
|
+
return _context6.stop();
|
|
689
|
+
}
|
|
690
|
+
}
|
|
691
|
+
}, _callee6);
|
|
692
|
+
}));
|
|
693
|
+
return _getWikidataDetails.apply(this, arguments);
|
|
694
|
+
}
|
|
695
|
+
|
|
696
|
+
function getWikidataDetailsOld(_x19, _x20, _x21) {
|
|
697
|
+
return _getWikidataDetailsOld.apply(this, arguments);
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
function _getWikidataDetailsOld() {
|
|
701
|
+
_getWikidataDetailsOld = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7(kb, solidSubject, publicDataID) {
|
|
702
|
+
var sparql, bindings;
|
|
703
|
+
return _regenerator["default"].wrap(function _callee7$(_context7) {
|
|
704
|
+
while (1) {
|
|
705
|
+
switch (_context7.prev = _context7.next) {
|
|
706
|
+
case 0:
|
|
707
|
+
sparql = "select distinct * where {\n optional { $(subject) wdt:P31 ?targetClass } # instance of\n optional { $(subject) wdt:P154 ?logo }\n optional { $(subject) wdt:P158 ?sealImage }\n# optional { $(subject) wdt:P159 ?headquartersLocation }\n\noptional { $(subject) wdt:P17 ?country }\noptional { $(subject) wdt:P18 ?image }\noptional { $(subject) wdt:P1813 ?shortName }\n\noptional { $(subject) wdt:P355 ?subsidiary }\n# SERVICE wikibase:label { bd:serviceParam wikibase:language \"fr,en,de,it\" }\n}".replace(subjectRegexp, publicDataID.toNT());
|
|
708
|
+
_context7.next = 3;
|
|
709
|
+
return queryPublicDataSelect(sparql, wikidataParameters);
|
|
710
|
+
|
|
711
|
+
case 3:
|
|
712
|
+
bindings = _context7.sent;
|
|
713
|
+
loadFromBindings(kb, publicDataID, bindings, publicDataID.doc()); // arg2 was solidSubject
|
|
714
|
+
|
|
715
|
+
case 5:
|
|
716
|
+
case "end":
|
|
717
|
+
return _context7.stop();
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
}, _callee7);
|
|
721
|
+
}));
|
|
722
|
+
return _getWikidataDetailsOld.apply(this, arguments);
|
|
723
|
+
}
|
|
724
|
+
|
|
725
|
+
function getWikidataLocation(_x22, _x23, _x24) {
|
|
726
|
+
return _getWikidataLocation.apply(this, arguments);
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
function _getWikidataLocation() {
|
|
730
|
+
_getWikidataLocation = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8(kb, solidSubject, publicDataID) {
|
|
731
|
+
var sparql, bindings;
|
|
732
|
+
return _regenerator["default"].wrap(function _callee8$(_context8) {
|
|
733
|
+
while (1) {
|
|
734
|
+
switch (_context8.prev = _context8.next) {
|
|
735
|
+
case 0:
|
|
736
|
+
sparql = "select distinct * where {\n\n $(subject) wdt:P276 ?location .\n\n optional { ?location wdt:P2044 ?elevation }\n optional { ?location wdt:P131 ?region }\n optional { ?location wdt:P625 ?coordinates }\noptional { ?location wdt:P17 ?country }\n\n# SERVICE wikibase:label { bd:serviceParam wikibase:language \"fr,en,de,it\" }\n}".replace(subjectRegexp, publicDataID.toNT());
|
|
737
|
+
debug.log(' location query sparql:' + sparql);
|
|
738
|
+
_context8.next = 4;
|
|
739
|
+
return queryPublicDataSelect(sparql, wikidataParameters);
|
|
740
|
+
|
|
741
|
+
case 4:
|
|
742
|
+
bindings = _context8.sent;
|
|
743
|
+
debug.log(' location query bindings:', bindings);
|
|
744
|
+
loadFromBindings(kb, publicDataID, bindings, publicDataID.doc()); // was solidSubject
|
|
745
|
+
|
|
746
|
+
case 7:
|
|
747
|
+
case "end":
|
|
748
|
+
return _context8.stop();
|
|
749
|
+
}
|
|
750
|
+
}
|
|
751
|
+
}, _callee8);
|
|
752
|
+
}));
|
|
753
|
+
return _getWikidataLocation.apply(this, arguments);
|
|
754
|
+
}
|
|
755
|
+
|
|
756
|
+
function getDbpediaDetails(_x25, _x26, _x27) {
|
|
757
|
+
return _getDbpediaDetails.apply(this, arguments);
|
|
758
|
+
}
|
|
759
|
+
|
|
760
|
+
function _getDbpediaDetails() {
|
|
761
|
+
_getDbpediaDetails = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9(kb, solidSubject, publicDataID) {
|
|
762
|
+
var sparql, bindings;
|
|
763
|
+
return _regenerator["default"].wrap(function _callee9$(_context9) {
|
|
764
|
+
while (1) {
|
|
765
|
+
switch (_context9.prev = _context9.next) {
|
|
766
|
+
case 0:
|
|
767
|
+
// Note below the string form of the named node with <> works in SPARQL
|
|
768
|
+
sparql = "select distinct ?city, ?state, ?country, ?homepage, ?logo, ?lat, ?long, WHERE {\n OPTIONAL { <".concat(publicDataID, "> <http://dbpedia.org/ontology/city> ?city }\n OPTIONAL { ").concat(publicDataID, " <http://dbpedia.org/ontology/state> ?state }\n OPTIONAL { ").concat(publicDataID, " <http://dbpedia.org/ontology/country> ?country }\n OPTIONAL { ").concat(publicDataID, " foaf:homepage ?homepage }\n OPTIONAL { ").concat(publicDataID, " foaf:lat ?lat; foaf:long ?long }\n OPTIONAL { ").concat(publicDataID, " <http://dbpedia.org/ontology/country> ?country }\n }");
|
|
769
|
+
_context9.next = 3;
|
|
770
|
+
return queryPublicDataSelect(sparql, dbpediaParameters);
|
|
771
|
+
|
|
772
|
+
case 3:
|
|
773
|
+
bindings = _context9.sent;
|
|
774
|
+
loadFromBindings(kb, publicDataID, bindings, publicDataID.doc());
|
|
775
|
+
debug.log('Finished getDbpediaDetails.');
|
|
776
|
+
|
|
777
|
+
case 6:
|
|
778
|
+
case "end":
|
|
779
|
+
return _context9.stop();
|
|
780
|
+
}
|
|
781
|
+
}
|
|
782
|
+
}, _callee9);
|
|
783
|
+
}));
|
|
784
|
+
return _getDbpediaDetails.apply(this, arguments);
|
|
548
785
|
}
|
|
549
|
-
exports.getDbpediaDetails = getDbpediaDetails;
|
|
550
786
|
//# sourceMappingURL=publicData.js.map
|