/** * @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; }