Example #1
0
        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();
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
        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;
        }
Example #9
0
        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);
        }