44 lines
1.1 KiB
JavaScript
44 lines
1.1 KiB
JavaScript
/**
|
|
* @module Ontology
|
|
*/
|
|
|
|
/**
|
|
* @todo Temporarily returns domains and ontology labels only
|
|
* Traverse an ontology from its JSON description
|
|
* @param {String} jsonPath The path (URI) of the ontology JSON file
|
|
* @returns {Object}
|
|
*/
|
|
export async function traverseOntology(jsonPath) {
|
|
const ontology = await loadOntology(jsonPath);
|
|
const domains = [];
|
|
|
|
for (const k of Object.keys(ontology)) {
|
|
if (k === 'domains') {
|
|
for (const domainKey of Object.keys(ontology[k])) {
|
|
domains.push({
|
|
label: domainKey,
|
|
child: ontology[k][domainKey][0].label,
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
return {
|
|
ontology: ontology.ontology,
|
|
domains
|
|
};
|
|
}
|
|
|
|
/**
|
|
* Load an ontology from its JSON description
|
|
* @param {String} jsonPath The path (URI) of the ontology JSON file
|
|
* @returns {Object}
|
|
*/
|
|
export async function loadOntology(jsonPath) {
|
|
const ontology = await fetch(jsonPath)
|
|
.then(res => res.json())
|
|
.catch(err => console.error(err));
|
|
|
|
return ontology;
|
|
}
|