contacts-pane 2.4.8 → 2.4.12-beta4
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/.eslintrc +3 -1
- package/.github/workflows/ci.yml +74 -0
- package/.nvmrc +1 -1
- package/LICENSE.md +0 -0
- package/Makefile +0 -0
- package/README.md +0 -0
- package/__tests__/unit/data-reformat-test.js +166 -0
- package/__tests__/unit/data-reformat-test.ts +185 -0
- package/__tests__/unit/setup.js +74 -0
- package/__tests__/unit/setup.ts +77 -0
- package/babel.config.js +13 -0
- package/card.ai +0 -0
- package/card.png +0 -0
- package/contactLogic.js +84 -7
- package/contactsPane.js +64 -20
- package/diff.txt +0 -0
- package/exampleOfOpenData/mit-wikidata-details.ttl +0 -0
- package/exampleOfOpenData/mit-wikidata-query.sparql +0 -0
- package/exampleOfOpenData/wikidata-get.json +0 -0
- package/groupMembershipControl.js +56 -13
- package/individual.js +3 -2
- package/individualForm.js +0 -0
- package/jest.config.js +11 -0
- package/jest.setup.ts +10 -0
- package/lib/autocompleteBar.js +99 -0
- package/lib/autocompleteBar.js.map +1 -0
- package/lib/autocompleteField.js +157 -0
- package/lib/autocompleteField.js.map +1 -0
- package/lib/autocompletePicker.js +240 -0
- package/lib/autocompletePicker.js.map +1 -0
- package/lib/forms.js +315 -0
- package/lib/instituteDetailsQuery.js +38 -0
- package/lib/publicData.js +387 -0
- package/lib/publicData.js.map +1 -0
- package/lib/vcard.js +916 -0
- package/mintNewAddressBook.js +5 -4
- package/mugshotGallery.js +16 -4
- package/organizationForm.js +0 -0
- package/organizationForm.ttl +0 -0
- package/package.json +26 -13
- package/shapes/contacts-shapes.ttl +0 -0
- package/src/autocompleteBar.ts +92 -0
- package/src/autocompleteField.ts +180 -0
- package/src/autocompletePicker.ts +253 -0
- package/src/forms.ttl +1 -1
- package/src/instituteDetailsQuery.sparql +0 -0
- package/src/publicData.ts +385 -0
- package/src/vcard.ttl +0 -0
- package/toolsPane.js +70 -19
- package/tsconfig.json +16 -0
- package/webidControl.js +49 -4
|
@@ -0,0 +1,387 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.getDbpediaDetails = exports.getWikidataLocation = exports.getWikidataDetailsOld = exports.getWikidataDetails = exports.loadPublicDataThing = exports.queryPublicDataConstruct = exports.queryPublicDataSelect = exports.queryPublicDataByName = exports.queryESCODataByName = exports.loadFromBindings = exports.predMap = exports.wikidataClassMap = exports.filterByLanguage = exports.wikidataParameters = exports.dbpediaParameters = exports.escoParameters = exports.getPreferredLanguages = exports.wikidataClasses = exports.AUTOCOMPLETE_LIMIT = void 0;
|
|
13
|
+
/* Logic to access public data stores
|
|
14
|
+
*
|
|
15
|
+
* including filtering resut by natural language etc
|
|
16
|
+
*/
|
|
17
|
+
const rdflib_1 = require("rdflib");
|
|
18
|
+
const solid_logic_1 = require("solid-logic");
|
|
19
|
+
const solid_ui_1 = require("solid-ui");
|
|
20
|
+
const instituteDetailsQuery = require("../lib/instituteDetailsQuery.js");
|
|
21
|
+
exports.AUTOCOMPLETE_LIMIT = 3000; // How many to get from server
|
|
22
|
+
const subjectRegexp = /\$\(subject\)/g;
|
|
23
|
+
// Schema.org seems to suggest NGOs are non-profit and Corporaions are for-profit
|
|
24
|
+
// but doesn't have explicit classes
|
|
25
|
+
exports.wikidataClasses = {
|
|
26
|
+
Corporation: 'http://www.wikidata.org/entity/Q6881511', // Enterprise is for-profit
|
|
27
|
+
EducationalOrganization: 'http://www.wikidata.org/entity/Q178706', // insitution
|
|
28
|
+
GovernmentOrganization: 'http://www.wikidata.org/entity/Q327333', // government agency
|
|
29
|
+
MedicalOrganization: 'http://www.wikidata.org/entity/Q4287745',
|
|
30
|
+
MusicGroup: 'http://www.wikidata.org/entity/Q32178211', // music organization
|
|
31
|
+
NGO: 'http://www.wikidata.org/entity/Q163740', // nonprofit organization @@
|
|
32
|
+
Occupation: 'http://www.wikidata.org/entity/Q28640', // Profession
|
|
33
|
+
// Organization: 'http://www.wikidata.org/entity/Q43229',
|
|
34
|
+
Project: 'http://www.wikidata.org/entity/Q170584',
|
|
35
|
+
SportsOrganization: 'http://www.wikidata.org/entity/Q4438121',
|
|
36
|
+
};
|
|
37
|
+
function getPreferredLanguages() {
|
|
38
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
return ['fr', 'en', 'de', 'it']; // @@ testing only -- code me later
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
exports.getPreferredLanguages = getPreferredLanguages;
|
|
43
|
+
exports.escoParameters = {
|
|
44
|
+
label: 'ESCO',
|
|
45
|
+
logo: 'https://ec.europa.eu/esco/portal/static_resource2/images/logo/logo_en.gif',
|
|
46
|
+
searchByNameQuery: null, // No sparql endpoint
|
|
47
|
+
searchByNameURI: 'https://ec.europa.eu/esco/api/search?language=$(language)&type=occupation&text=$(name)',
|
|
48
|
+
endpoint: null,
|
|
49
|
+
class: {}
|
|
50
|
+
};
|
|
51
|
+
exports.dbpediaParameters = {
|
|
52
|
+
label: 'DBPedia',
|
|
53
|
+
logo: 'https://upload.wikimedia.org/wikipedia/commons/thumb/7/73/DBpediaLogo.svg/263px-DBpediaLogo.svg.png',
|
|
54
|
+
searchByNameQuery: `select distinct ?subject, ?name where {
|
|
55
|
+
?subject a $(class); rdfs:label ?name
|
|
56
|
+
FILTER regex(?name, "$(name)", "i")
|
|
57
|
+
} LIMIT $(limit)`,
|
|
58
|
+
endpoint: 'https://dbpedia.org/sparql/',
|
|
59
|
+
class: { AcademicInsitution: 'http://umbel.org/umbel/rc/EducationalOrganization' }
|
|
60
|
+
};
|
|
61
|
+
exports.wikidataParameters = {
|
|
62
|
+
label: 'WikiData',
|
|
63
|
+
logo: 'https://www.wikimedia.org/static/images/project-logos/wikidatawiki.png',
|
|
64
|
+
endpoint: 'https://query.wikidata.org/sparql',
|
|
65
|
+
class: { AcademicInsitution: 'http://www.wikidata.org/entity/Q4671277',
|
|
66
|
+
Enterprise: 'http://www.wikidata.org/entity/Q6881511',
|
|
67
|
+
Business: 'http://www.wikidata.org/entity/Q4830453',
|
|
68
|
+
NGO: 'http://www.wikidata.org/entity/Q79913',
|
|
69
|
+
CharitableOrganization: 'http://www.wikidata.org/entity/Q708676',
|
|
70
|
+
Insitute: 'http://www.wikidata.org/entity/Q1664720',
|
|
71
|
+
},
|
|
72
|
+
searchByNameQuery: `SELECT ?subject ?name
|
|
73
|
+
WHERE {
|
|
74
|
+
?klass wdt:P279* $(class) .
|
|
75
|
+
?subject wdt:P31 ?klass .
|
|
76
|
+
?subject rdfs:label ?name.
|
|
77
|
+
FILTER regex(?name, "$(name)", "i")
|
|
78
|
+
} LIMIT $(limit) `, // was SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en" }
|
|
79
|
+
insitituteDetailsQuery: `CONSTRUCT
|
|
80
|
+
{ wd:Q49108 schema:name ?itemLabel;
|
|
81
|
+
schema:logo ?logo;
|
|
82
|
+
schema:logo ?sealImage;
|
|
83
|
+
schema:subOrganization ?subsidiary .
|
|
84
|
+
?subsidiary schema:name ?subsidiaryLabel .
|
|
85
|
+
}
|
|
86
|
+
WHERE
|
|
87
|
+
{
|
|
88
|
+
wd:Q49108 # rdfs:label ?itemLabel ;
|
|
89
|
+
wdt:P154 ?logo;
|
|
90
|
+
wdt:P158 ?sealImage ;
|
|
91
|
+
wdt:P355 ?subsidiary .
|
|
92
|
+
# ?subsidiary rdfs:label ?subsidiaryLabel .
|
|
93
|
+
|
|
94
|
+
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE], fr". }
|
|
95
|
+
}`
|
|
96
|
+
};
|
|
97
|
+
/* From an array of bindings with a names for each row,
|
|
98
|
+
* remove dupliacte names for the same thing, leaving the user's
|
|
99
|
+
* preferred language version
|
|
100
|
+
*/
|
|
101
|
+
function filterByLanguage(bindings, languagePrefs) {
|
|
102
|
+
let uris = {};
|
|
103
|
+
bindings.forEach(binding => {
|
|
104
|
+
const uri = binding.subject.value;
|
|
105
|
+
uris[uri] = uris[uri] || [];
|
|
106
|
+
uris[uri].push(binding);
|
|
107
|
+
});
|
|
108
|
+
var languagePrefs2 = languagePrefs;
|
|
109
|
+
languagePrefs2.reverse(); // prefered last
|
|
110
|
+
var slimmed = [];
|
|
111
|
+
for (const u in uris) { // needs hasOwnProperty ?
|
|
112
|
+
const bindings = uris[u];
|
|
113
|
+
const sortMe = bindings.map(binding => {
|
|
114
|
+
return [languagePrefs2.indexOf(binding.name['xml:lang']), binding];
|
|
115
|
+
});
|
|
116
|
+
sortMe.sort(); // best at th ebottom
|
|
117
|
+
sortMe.reverse(); // best at the top
|
|
118
|
+
slimmed.push(sortMe[0][1]);
|
|
119
|
+
} // map u
|
|
120
|
+
console.log(` Filter by language: ${bindings.length} -> ${slimmed.length}`);
|
|
121
|
+
return slimmed;
|
|
122
|
+
}
|
|
123
|
+
exports.filterByLanguage = filterByLanguage;
|
|
124
|
+
exports.wikidataClassMap = {
|
|
125
|
+
'http://www.wikidata.org/entity/Q15936437': solid_ui_1.ns.schema('CollegeOrUniversity'), // research university
|
|
126
|
+
'http://www.wikidata.org/entity/Q1664720': solid_ui_1.ns.schema('EducationalOrganization'), // insitute @@
|
|
127
|
+
'http://www.wikidata.org/entity/Q43229': solid_ui_1.ns.schema('Organization'), // research university
|
|
128
|
+
'http://www.wikidata.org/entity/Q3918': solid_ui_1.ns.schema('CollegeOrUniversity'), // university
|
|
129
|
+
'http://www.wikidata.org/entity/Q170584': solid_ui_1.ns.schema('Project'), // university
|
|
130
|
+
'http://www.wikidata.org/entity/Q327333': solid_ui_1.ns.schema('GovernmentOrganization'), // gobvt agency
|
|
131
|
+
'http://www.wikidata.org/entity/Q2221906': solid_ui_1.ns.schema('Place'), // geographic location
|
|
132
|
+
};
|
|
133
|
+
exports.predMap = {
|
|
134
|
+
class: solid_ui_1.ns.rdf('type'),
|
|
135
|
+
// logo: ns.schema('logo'),
|
|
136
|
+
sealImage: solid_ui_1.ns.schema('logo'),
|
|
137
|
+
//image: ns.schema('image'), defaults to shema
|
|
138
|
+
shortName: solid_ui_1.ns.foaf('nick'),
|
|
139
|
+
subsidiary: solid_ui_1.ns.schema('subOrganization')
|
|
140
|
+
};
|
|
141
|
+
function loadFromBindings(kb, solidSubject, bindings, doc) {
|
|
142
|
+
var results = {};
|
|
143
|
+
console.log(`loadFromBindings: subject: ${solidSubject}`);
|
|
144
|
+
console.log(` doc: ${doc}`);
|
|
145
|
+
bindings.forEach(binding => {
|
|
146
|
+
for (const key in binding) {
|
|
147
|
+
const result = binding[key];
|
|
148
|
+
const combined = JSON.stringify(result); // ( result.type, result.value )
|
|
149
|
+
results[key] = results[key] || new Set();
|
|
150
|
+
results[key].add(combined); // remove duplicates
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
for (const key in results) {
|
|
154
|
+
const values = results[key];
|
|
155
|
+
console.log(` results ${key} -> ${values}`);
|
|
156
|
+
values.forEach(combined => {
|
|
157
|
+
const result = JSON.parse(combined);
|
|
158
|
+
const { type, value } = result;
|
|
159
|
+
var obj;
|
|
160
|
+
if (type === 'uri') {
|
|
161
|
+
obj = kb.sym(value);
|
|
162
|
+
}
|
|
163
|
+
else if (type === 'literal') {
|
|
164
|
+
obj = new rdflib_1.Literal(value, result.language, result.datatype);
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
throw new Error(`loadFromBindings: unexpected type: ${type}`);
|
|
168
|
+
}
|
|
169
|
+
if (key == 'type') {
|
|
170
|
+
if (exports.wikidataClassMap[value]) {
|
|
171
|
+
obj = exports.wikidataClassMap[value];
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
console.warn('Unmapped Wikidata Class: ' + value);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
else if (key === 'coordinates') {
|
|
178
|
+
// const latlong = value // Like 'Point(-71.106111111 42.375)'
|
|
179
|
+
console.log(' @@@ hey a point: ' + value);
|
|
180
|
+
const regexp = /.*\(([-0-9\.-]*) ([-0-9\.-]*)\)/;
|
|
181
|
+
const match = regexp.exec(value);
|
|
182
|
+
const float = solid_ui_1.ns.xsd('float');
|
|
183
|
+
const latitude = new rdflib_1.Literal(match[1], null, float);
|
|
184
|
+
const longitude = new rdflib_1.Literal(match[2], null, float);
|
|
185
|
+
kb.add(solidSubject, solid_ui_1.ns.schema('longitude'), longitude, doc);
|
|
186
|
+
kb.add(solidSubject, solid_ui_1.ns.schema('latitude'), latitude, doc);
|
|
187
|
+
}
|
|
188
|
+
else if (exports.predMap[key]) {
|
|
189
|
+
const pred = exports.predMap[key] || solid_ui_1.ns.schema(key); // fallback to just using schema.org
|
|
190
|
+
kb.add(solidSubject, pred, obj, doc); // @@ deal with non-string and objects
|
|
191
|
+
console.log(` public data ${pred} ${obj}.`);
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
exports.loadFromBindings = loadFromBindings;
|
|
197
|
+
/* ESCO sopecific
|
|
198
|
+
*/
|
|
199
|
+
/* Query all entities of given class and partially matching name
|
|
200
|
+
*/
|
|
201
|
+
function queryESCODataByName(filter, theClass, queryTarget) {
|
|
202
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
203
|
+
const queryURI = queryTarget.searchByNameURI
|
|
204
|
+
.replace('$(name)', filter)
|
|
205
|
+
.replace('$(limit)', '' + exports.AUTOCOMPLETE_LIMIT)
|
|
206
|
+
.replace('$(class)', theClass);
|
|
207
|
+
console.log('Querying ESCO data - uri: ' + queryURI);
|
|
208
|
+
const options = { credentials: 'omit',
|
|
209
|
+
headers: { 'Accept': 'application/json' }
|
|
210
|
+
}; // CORS
|
|
211
|
+
var response;
|
|
212
|
+
response = yield solid_logic_1.store.fetcher.webOperation('GET', queryURI, options);
|
|
213
|
+
//complain('Error querying db of organizations: ' + err)
|
|
214
|
+
const text = response.responseText;
|
|
215
|
+
console.log(' Query result text' + text.slice(0, 500) + '...');
|
|
216
|
+
if (text.length === 0)
|
|
217
|
+
throw new Error('Wot no text back from ESCO query ' + queryURI);
|
|
218
|
+
const json = JSON.parse(text);
|
|
219
|
+
console.log(' Query result JSON' + JSON.stringify(json, null, 4).slice(0, 500) + '...');
|
|
220
|
+
const results = json._embedded.results; // Array
|
|
221
|
+
const bindings = results.map(result => {
|
|
222
|
+
const name = result.title;
|
|
223
|
+
const uri = result.uri; // like http://data.europa.eu/esco/occupation/57af9090-55b4-4911-b2d0-86db01c00b02
|
|
224
|
+
return { name: { value: name, type: 'literal' }, uri: { type: 'IRI', value: uri } }; // simulate SPARQL bindings
|
|
225
|
+
});
|
|
226
|
+
return bindings;
|
|
227
|
+
// return queryPublicDataSelect(sparql, queryTarget)
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
exports.queryESCODataByName = queryESCODataByName;
|
|
231
|
+
/* Query all entities of given class and partially matching name
|
|
232
|
+
*/
|
|
233
|
+
function queryPublicDataByName(filter, theClass, queryTarget) {
|
|
234
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
235
|
+
const sparql = queryTarget.searchByNameQuery
|
|
236
|
+
.replace('$(name)', filter)
|
|
237
|
+
.replace('$(limit)', '' + exports.AUTOCOMPLETE_LIMIT)
|
|
238
|
+
.replace('$(class)', theClass);
|
|
239
|
+
console.log('Querying public data - sparql: ' + sparql);
|
|
240
|
+
return queryPublicDataSelect(sparql, queryTarget);
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
exports.queryPublicDataByName = queryPublicDataByName;
|
|
244
|
+
function queryPublicDataSelect(sparql, queryTarget) {
|
|
245
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
246
|
+
const myUrlWithParams = new URL(queryTarget.endpoint);
|
|
247
|
+
myUrlWithParams.searchParams.append("query", sparql);
|
|
248
|
+
const queryURI = myUrlWithParams.href;
|
|
249
|
+
console.log(' queryPublicDataSelect uri: ' + queryURI);
|
|
250
|
+
const options = { credentials: 'omit',
|
|
251
|
+
headers: { 'Accept': 'application/json' }
|
|
252
|
+
}; // CORS
|
|
253
|
+
var response;
|
|
254
|
+
response = yield solid_logic_1.store.fetcher.webOperation('GET', queryURI, options);
|
|
255
|
+
//complain('Error querying db of organizations: ' + err)
|
|
256
|
+
const text = response.responseText;
|
|
257
|
+
// console.log(' Query result text' + text.slice(0,100) + '...')
|
|
258
|
+
if (text.length === 0)
|
|
259
|
+
throw new Error('Wot no text back from query ' + queryURI);
|
|
260
|
+
const json = JSON.parse(text);
|
|
261
|
+
console.log(' Query result JSON' + JSON.stringify(json, null, 4).slice(0, 100) + '...');
|
|
262
|
+
const bindings = json.results.bindings;
|
|
263
|
+
return bindings;
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
exports.queryPublicDataSelect = queryPublicDataSelect;
|
|
267
|
+
function queryPublicDataConstruct(sparql, pubicId, queryTarget) {
|
|
268
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
269
|
+
console.log('queryPublicDataConstruct: sparql:', sparql);
|
|
270
|
+
const myUrlWithParams = new URL(queryTarget.endpoint);
|
|
271
|
+
myUrlWithParams.searchParams.append("query", sparql);
|
|
272
|
+
const queryURI = myUrlWithParams.href;
|
|
273
|
+
console.log(' queryPublicDataConstruct uri: ' + queryURI);
|
|
274
|
+
const options = { credentials: 'omit', // CORS
|
|
275
|
+
headers: { 'Accept': 'text/turtle' }
|
|
276
|
+
};
|
|
277
|
+
const response = yield solid_logic_1.store.fetcher.webOperation('GET', queryURI, options);
|
|
278
|
+
const text = response.responseText;
|
|
279
|
+
const report = text.lenth > 500 ? text.slice(0, 200) + ' ... ' + text.slice(-200) : text;
|
|
280
|
+
console.log(' queryPublicDataConstruct result text:' + report);
|
|
281
|
+
if (text.length === 0)
|
|
282
|
+
throw new Error('queryPublicDataConstruct: No text back from construct query:' + queryURI);
|
|
283
|
+
(0, rdflib_1.parse)(text, solid_logic_1.store, pubicId.uri, 'text/turtle');
|
|
284
|
+
return;
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
exports.queryPublicDataConstruct = queryPublicDataConstruct;
|
|
288
|
+
function loadPublicDataThing(kb, subject, publicDataID) {
|
|
289
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
290
|
+
if (publicDataID.uri.startsWith('https://dbpedia.org/resource/')) {
|
|
291
|
+
return getDbpediaDetails(kb, subject, publicDataID);
|
|
292
|
+
}
|
|
293
|
+
else if (publicDataID.uri.match(/^https?:\/\/www\.wikidata\.org\/entity\/.*/)) {
|
|
294
|
+
const QId = publicDataID.uri.split('/')[4];
|
|
295
|
+
const dataURI = `http://www.wikidata.org/wiki/Special:EntityData/${QId}.ttl`;
|
|
296
|
+
// In fact loading the data URI gives much to much irrelevant data, from wikidata.
|
|
297
|
+
yield getWikidataDetails(kb, subject, publicDataID);
|
|
298
|
+
// await getWikidataLocation(kb, subject, publicDataID) -- should get that in the details query now
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
301
|
+
const iDToFetch = publicDataID.uri.startsWith('http:') ? kb.sym('https:' + publicDataID.uri.slice(5))
|
|
302
|
+
: publicDataID;
|
|
303
|
+
return kb.fetcher.load(iDToFetch, { credentials: 'omit',
|
|
304
|
+
headers: { 'Accept': 'text/turtle' }
|
|
305
|
+
});
|
|
306
|
+
}
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
exports.loadPublicDataThing = loadPublicDataThing;
|
|
310
|
+
function getWikidataDetails(kb, solidSubject, publicDataID) {
|
|
311
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
312
|
+
const subjRegexp = /wd:Q49108/g;
|
|
313
|
+
const sparql = instituteDetailsQuery.replace(subjRegexp, publicDataID);
|
|
314
|
+
yield queryPublicDataConstruct(sparql, publicDataID, exports.wikidataParameters);
|
|
315
|
+
console.log('getWikidataDetails: loaded.', publicDataID);
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
exports.getWikidataDetails = getWikidataDetails;
|
|
319
|
+
function getWikidataDetailsOld(kb, solidSubject, publicDataID) {
|
|
320
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
321
|
+
const sparql = `select distinct * where {
|
|
322
|
+
optional { $(subject) wdt:P31 ?class } # instance of
|
|
323
|
+
optional { $(subject) wdt:P154 ?logo }
|
|
324
|
+
optional { $(subject) wdt:P158 ?sealImage }
|
|
325
|
+
# optional { $(subject) wdt:P159 ?headquartersLocation }
|
|
326
|
+
|
|
327
|
+
optional { $(subject) wdt:P17 ?country }
|
|
328
|
+
optional { $(subject) wdt:P18 ?image }
|
|
329
|
+
optional { $(subject) wdt:P1813 ?shortName }
|
|
330
|
+
|
|
331
|
+
optional { $(subject) wdt:P355 ?subsidiary }
|
|
332
|
+
# SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en,de,it" }
|
|
333
|
+
}`
|
|
334
|
+
.replace(subjectRegexp, publicDataID);
|
|
335
|
+
const bindings = yield queryPublicDataSelect(sparql, exports.wikidataParameters);
|
|
336
|
+
loadFromBindings(kb, publicDataID, bindings, publicDataID.doc()); //arg2 was solidSubject
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
exports.getWikidataDetailsOld = getWikidataDetailsOld;
|
|
340
|
+
function getWikidataLocation(kb, solidSubject, publicDataID) {
|
|
341
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
342
|
+
const sparql = `select distinct * where {
|
|
343
|
+
|
|
344
|
+
$(subject) wdt:P276 ?location .
|
|
345
|
+
|
|
346
|
+
optional { ?location wdt:P2044 ?elevation }
|
|
347
|
+
optional { ?location wdt:P131 ?region }
|
|
348
|
+
optional { ?location wdt:P625 ?coordinates }
|
|
349
|
+
optional { ?location wdt:P17 ?country }
|
|
350
|
+
|
|
351
|
+
# SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,en,de,it" }
|
|
352
|
+
}`.replace(subjectRegexp, publicDataID);
|
|
353
|
+
console.log(' location query sparql:' + sparql);
|
|
354
|
+
const bindings = yield queryPublicDataSelect(sparql, exports.wikidataParameters);
|
|
355
|
+
console.log(' location query bindings:', bindings);
|
|
356
|
+
loadFromBindings(kb, publicDataID, bindings, publicDataID.doc()); // was solidSubject
|
|
357
|
+
});
|
|
358
|
+
}
|
|
359
|
+
exports.getWikidataLocation = getWikidataLocation;
|
|
360
|
+
function getDbpediaDetails(kb, solidSubject, publicDataID) {
|
|
361
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
362
|
+
// Note below the string form of the named node with <> works in SPARQL
|
|
363
|
+
const sparql = `select distinct ?city, ?state, ?country, ?homepage, ?logo, ?lat, ?long, WHERE {
|
|
364
|
+
OPTIONAL { <${publicDataID}> <http://dbpedia.org/ontology/city> ?city }
|
|
365
|
+
OPTIONAL { ${publicDataID} <http://dbpedia.org/ontology/state> ?state }
|
|
366
|
+
OPTIONAL { ${publicDataID} <http://dbpedia.org/ontology/country> ?country }
|
|
367
|
+
OPTIONAL { ${publicDataID} foaf:homepage ?homepage }
|
|
368
|
+
OPTIONAL { ${publicDataID} foaf:lat ?lat; foaf:long ?long }
|
|
369
|
+
OPTIONAL { ${publicDataID} <http://dbpedia.org/ontology/country> ?country }
|
|
370
|
+
}`;
|
|
371
|
+
const predMap = {
|
|
372
|
+
city: solid_ui_1.ns.vcard('locality'),
|
|
373
|
+
state: solid_ui_1.ns.vcard('region'),
|
|
374
|
+
country: solid_ui_1.ns.vcard('country-name'),
|
|
375
|
+
homepage: solid_ui_1.ns.foaf('homepage'),
|
|
376
|
+
lat: solid_ui_1.ns.geo('latitude'),
|
|
377
|
+
long: solid_ui_1.ns.geo('longitude'),
|
|
378
|
+
};
|
|
379
|
+
const bindings = yield queryPublicDataSelect(sparql, exports.dbpediaParameters);
|
|
380
|
+
bindings.forEach(binding => {
|
|
381
|
+
const uri = binding.subject.value; // @@ To be written
|
|
382
|
+
const name = binding.name.value;
|
|
383
|
+
});
|
|
384
|
+
});
|
|
385
|
+
}
|
|
386
|
+
exports.getDbpediaDetails = getDbpediaDetails;
|
|
387
|
+
//# sourceMappingURL=publicData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publicData.js","sourceRoot":"","sources":["../src/publicData.ts"],"names":[],"mappings":"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"}
|