public OntologyDesc GetOntologyDesc() { // Synonyms and keywords var tmpsyndoc = ReadOntologySynonymsXmlFile(); keywordsList = new SortedSet<string>(); var synonyms = new List<OntologyPath>(); var root = tmpsyndoc.DocumentElement; foreach (XmlElement elem in root.ChildNodes) { var ontoPath = new OntologyPath(); foreach (XmlElement child in elem.ChildNodes) { var text = child.InnerText.Trim(); if (child.Name == "conceptID") { int conceptID; if (Int32.TryParse(text, out conceptID)) ontoPath.ConceptID = conceptID; } else if (child.Name == "ConceptName") { ontoPath.ConceptName = text; } else if (child.Name == "ConceptPath") { ontoPath.ConceptPath = text; } else if (child.Name == "SearchableKeyword") { ontoPath.SearchableKeyword = text; } } // Add to sysnonyms, only if SearchableKeyword != ConceptName if (!string.Equals(ontoPath.SearchableKeyword, ontoPath.ConceptName) && !string.IsNullOrEmpty(ontoPath.SearchableKeyword)) { synonyms.Add(ontoPath); } if (!String.IsNullOrWhiteSpace(ontoPath.SearchableKeyword)) { keywordsList.Add(ontoPath.SearchableKeyword); } } // Ontology tree var tree = new OntologyTree(); var tmpxmldoc = ReadOntologyXmlFile(); FillTree(tmpxmldoc.DocumentElement, tree.Nodes); // Replace Hydroshpere with All keywordsList.Remove("Hydrosphere"); keywordsList.Add(Constants.RootName); if (tree.Nodes.Count > 0) { tree.Nodes[0].title = Constants.RootName; } // Return result var result = new OntologyDesc { OntoloyTree = tree, Keywords = keywordsList, Synonyms = synonyms, }; return result; }
public OntologyDesc GetOntologyDesc() { // Synonyms and keywords var tmpsyndoc = ReadOntologySynonymsXmlFile(); keywordsList = new SortedSet <string>(); var synonyms = new List <OntologyPath>(); var root = tmpsyndoc.DocumentElement; foreach (XmlElement elem in root.ChildNodes) { var ontoPath = new OntologyPath(); foreach (XmlElement child in elem.ChildNodes) { var text = child.InnerText.Trim(); if (child.Name == "conceptID") { int conceptID; if (Int32.TryParse(text, out conceptID)) { ontoPath.ConceptID = conceptID; } } else if (child.Name == "ConceptName") { ontoPath.ConceptName = text; } else if (child.Name == "ConceptPath") { ontoPath.ConceptPath = text; } else if (child.Name == "SearchableKeyword") { ontoPath.SearchableKeyword = text; } } // Add to sysnonyms, only if SearchableKeyword != ConceptName if (!string.Equals(ontoPath.SearchableKeyword, ontoPath.ConceptName) && !string.IsNullOrEmpty(ontoPath.SearchableKeyword)) { synonyms.Add(ontoPath); } if (!String.IsNullOrWhiteSpace(ontoPath.SearchableKeyword)) { keywordsList.Add(ontoPath.SearchableKeyword); } } // Ontology tree var tree = new OntologyTree(); var tmpxmldoc = ReadOntologyXmlFile(); FillTree(tmpxmldoc.DocumentElement, tree.Nodes); // Replace Hydroshpere with All keywordsList.Remove("Hydrosphere"); keywordsList.Add(Constants.RootName); if (tree.Nodes.Count > 0) { tree.Nodes[0].title = Constants.RootName; } // Return result var result = new OntologyDesc { OntoloyTree = tree, Keywords = keywordsList, Synonyms = synonyms, }; return(result); }