public OntologyDesc GetOntologyDesc() { // Keywords var searcher = new MetadataCacheSearcher(); var keywordsList = searcher.GetKeywords(); keywordsList.Add(Constants.RootName); var sortedKeywords = new SortedSet <string>(keywordsList); // Ontology tree var tree = new OntologyTree(); var parentNode = new OntologyNode(Constants.RootName); foreach (var keyword in keywordsList.Where(keyword => keyword != Constants.RootName)) { parentNode.Nodes.Add(new OntologyNode(keyword)); } tree.Nodes.Add(parentNode); // Return result var result = new OntologyDesc { Keywords = sortedKeywords, OntoloyTree = tree, }; return(result); }
/// <summary> /// Set data into control. /// </summary> /// <param name="keywords">Keywords.</param> /// <param name="ontologyTree">Ontology tree.</param> /// <exception cref="ArgumentNullException">Throws if <paramref name="keywords"/> or <paramref name="ontologyTree"/> is null.</exception> public void BindKeywordsAndOntologyTree(IList <string> keywords, OntologyTree ontologyTree) { if (keywords == null) { throw new ArgumentNullException("keywords"); } if (ontologyTree == null) { throw new ArgumentNullException("ontologyTree"); } _keywords = keywords; tboTypeKeyword.Clear(); lblKeywordRelation.Text = ""; // Keywords lbKeywords.DataSource = keywords; // Ontology tree treeviewOntology.BeginUpdate(); treeviewOntology.Nodes.Clear(); FillTreeviewOntology(treeviewOntology.Nodes, ontologyTree.Nodes); treeviewOntology.EndUpdate(); }
public KeywordListData GetKeywordsListData() { // Keywords var searcher = new MetadataCacheSearcher(); var keywordsList = searcher.GetKeywords(); keywordsList.Add("Hydrosphere"); var sortedKeywords = new SortedSet <string>(keywordsList); // Ontology tree var tree = new OntologyTree(); var parentNode = new OntologyNode("Hydrosphere"); foreach (var keyword in keywordsList.Where(keyword => keyword != "Hydrosphere")) { parentNode.Nodes.Add(new OntologyNode(keyword)); } tree.Nodes.Add(parentNode); //------ var result = new KeywordListData { Keywords = sortedKeywords.ToList(), OntoloyTree = tree, }; return(result); }
public void GetKeywordsAndOntology(out IList <string> keywords, out OntologyTree ontoloyTree, CatalogSettings catalogSettings) { if (catalogSettings == null) { throw new ArgumentNullException("catalogSettings"); } IKeywordsList concreteList; switch (catalogSettings.TypeOfCatalog) { case TypeOfCatalog.LocalMetadataCache: concreteList = new DbKeywordsList(); break; case TypeOfCatalog.HisCentral: concreteList = new HisCentalKeywordsList(); break; default: throw new Exception("Unknown TypeOfCatalog"); } concreteList.GetKeywordsAndOntology(out keywords, out ontoloyTree); }
public KeywordListData GetKeywordsListData() { // Synonyms and keywords var tmpsyndoc = HdSearchOntologyHelper.ReadOntologySynonymsXmlFile(); keywordsList = new SortedSet <string>(); var synonyms = new ArrayOfOntologyPath(); var root = tmpsyndoc.DocumentElement; foreach (XmlElement elem in root.ChildNodes) { var ontoPath = new OntologyPath(); foreach (XmlElement child in elem.ChildNodes) { if (child.Name == "conceptID") { int conceptID; if (Int32.TryParse(child.InnerText, out conceptID)) { ontoPath.ConceptID = conceptID; } } else if (child.Name == "ConceptName") { ontoPath.ConceptName = child.InnerText; } else if (child.Name == "ConceptPath") { ontoPath.ConceptPath = child.InnerText; } else if (child.Name == "SearchableKeyword") { ontoPath.SearchableKeyword = child.InnerText; } } synonyms.Add(ontoPath); keywordsList.Add(ontoPath.SearchableKeyword); } // Ontology tree var tree = new OntologyTree(); var tmpxmldoc = HdSearchOntologyHelper.ReadOntologyXmlFile(); FillTree(tmpxmldoc.DocumentElement, tree.Nodes); //------ var result = new KeywordListData { OntoloyTree = tree, Keywords = keywordsList.ToList(), Synonyms = synonyms, }; return(result); }
public string getOntology(string conceptKeyword) { var dataWorker = new DataWorker(); var ontologytreeJson = string.Empty; keywordsList = new SortedSet <string>(); json = string.Empty; //get ontology from hiscentral var getOntologytree = dataWorker.getOntologyTree(conceptKeyword); XmlDocument ontologytreeXML = new XmlDocument(); if (getOntologytree != null) { ontologytreeXML.LoadXml(getOntologytree); //string json = Newtonsoft.Json.JsonConvert.SerializeXmlNode(doc.DocumentElement); } // Ontology tree var tree = new OntologyTree(); //var tmpxmldoc = ReadOntologyXmlFile(); FillTree(ontologytreeXML.DocumentElement, tree.Nodes); //XmlReader rdr = XmlReader.Create(new System.IO.StringReader(ontologytreeXML)); //while (rdr.Read()) //{ // if (rdr.NodeType == XmlNodeType.Element) // { // Console.WriteLine(rdr.LocalName); // } //} if (tree != null) { // XmlDocument doc = new XmlDocument(); // doc.LoadXml(ontologytreeXml); //string json = Newtonsoft.Json.JsonConvert.SerializeXmlNode(doc.DocumentElement); ontologytreeJson = Newtonsoft.Json.JsonConvert.SerializeObject(tree.Nodes[0].children, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore, PreserveReferencesHandling = PreserveReferencesHandling.None // PreserveReferencesHandling = PreserveReferencesHandling.Objects } ); } return(ontologytreeJson); }
public void GetKeywordsAndOntology(out IList <string> keywords, out OntologyTree ontoloyTree) { // Keywords var tmpsyndoc = HdSearchOntologyHelper.ReadOntologySymbologyXmlFile(); var nList = tmpsyndoc.GetElementsByTagName("SearchableKeyword"); keywordsList = new SortedSet <string>(); foreach (var elem in nList.Cast <XmlElement>().Where(elem => !keywordsList.Contains(elem.InnerText))) { keywordsList.Add(elem.InnerText); } // Ontology tree var tree = new OntologyTree(); var tmpxmldoc = HdSearchOntologyHelper.ReadOntologyXmlFile(); FillTree(tmpxmldoc.DocumentElement, tree.Nodes); //------ ontoloyTree = tree; keywords = keywordsList.ToList(); }
public void GetKeywordsAndOntology(out IList <string> keywords, out OntologyTree ontoloyTree) { // Keywords var searcher = new MetadataCacheSearcher(); var keywordsList = searcher.GetKeywords(); keywordsList.Add("Hydrosphere"); var sortedKeywords = new SortedSet <string>(keywordsList); // Ontology tree var tree = new OntologyTree(); var parentNode = new OntologyNode("Hydrosphere"); foreach (var keyword in keywordsList.Where(keyword => keyword != "Hydrosphere")) { parentNode.Nodes.Add(new OntologyNode(keyword)); } tree.Nodes.Add(parentNode); //------ keywords = sortedKeywords.ToList(); ontoloyTree = tree; }
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].Text = Constants.RootName; } // Return result var result = new OntologyDesc { OntoloyTree = tree, Keywords = keywordsList, Synonyms = synonyms, }; return(result); }