/// <summary>
        /// Replaces the names of the taxonomy with underscore and connects them to a string, joined by a comma
        /// </summary>
        /// <param name="taxonomy">Taxonomy for which a synonym list is to be created</param>
        /// <param name="parents">List of taxonmies</param>
        /// <returns>Names of the taxonomies as string</returns>
        private static string BuildVocabularyString(TaxonomyResultDTO taxonomy, IList <TaxonomyResultDTO> parents)
        {
            // Replace spaces in name with underscore and connect to list
            var synonyms = parents.Any() ? string.Join(", ", parents.Select(v => PrepareNameWithUnderScore(v))) : "";

            return(string.IsNullOrWhiteSpace(synonyms) ? PrepareNameWithUnderScore(taxonomy) : $"{PrepareNameWithUnderScore(taxonomy)}, {synonyms}");
        }
コード例 #2
0
 public TaxonomyResultDtoV2(TaxonomyResultDTO taxonomyResult)
 {
     Subject    = taxonomyResult.Id;
     Name       = taxonomyResult.Name;
     Properties = taxonomyResult.Properties;
     Children   = new List <TaxonomyResultDtoV2>(taxonomyResult.Children.Select(c => new TaxonomyResultDtoV2(c)));
 }
コード例 #3
0
        public IList <TaxonomyResultDTO> GenerateSampleTaxonomies()
        {
            var list = new List <TaxonomyResultDTO>();

            #region Classification Model

            var classificationModel = GetBroaderTaxonomyResult("Classification Model",
                                                               "https://pid.bayer.com/2fdbd958-b0c3-4a4d-96a9-41641964140d/0");

            TaxonomyResultDTO deepLearningModel = GetNarrowerTaxonomyResult("Deep Learning Model",
                                                                            "https://pid.bayer.com/2fdbd958-b0c3-4a4d-96a9-41641964140d/8",
                                                                            "https://pid.bayer.com/2fdbd958-b0c3-4a4d-96a9-41641964140d/0");

            TaxonomyResultDTO deepLearningModel2 = GetNarrowerTaxonomyResult("Deep Learning Model 2",
                                                                             "https://pid.bayer.com/2fdbd958-b0c3-4a4d-96a9-41641964140d/9",
                                                                             "https://pid.bayer.com/2fdbd958-b0c3-4a4d-96a9-41641964140d/0");

            TaxonomyResultDTO deepLearningModel3 = GetNarrowerTaxonomyResult("Deep Learning Model 3",
                                                                             "https://pid.bayer.com/2fdbd958-b0c3-4a4d-96a9-41641964140d/10",
                                                                             "https://pid.bayer.com/2fdbd958-b0c3-4a4d-96a9-41641964140d/0");

            deepLearningModel.Children
            .Add(GetNarrowerTaxonomyResult("Convolutional Networks", "https://pid.bayer.com/2fdbd958-b0c3-4a4d-96a9-41641964140d/4", "https://pid.bayer.com/2fdbd958-b0c3-4a4d-96a9-41641964140d/8"));

            deepLearningModel.Children
            .Add(GetNarrowerTaxonomyResult("Neural Networks", "https://pid.bayer.com/2fdbd958-b0c3-4a4d-96a9-41641964140d/5", "https://pid.bayer.com/2fdbd958-b0c3-4a4d-96a9-41641964140d/8"));

            deepLearningModel.Children
            .Add(GetNarrowerTaxonomyResult("LTSM Networks", "https://pid.bayer.com/2fdbd958-b0c3-4a4d-96a9-41641964140d/6", "https://pid.bayer.com/2fdbd958-b0c3-4a4d-96a9-41641964140d/8"));

            deepLearningModel.Children
            .Add(GetNarrowerTaxonomyResult("Generative Adversarial Networks", "https://pid.bayer.com/2fdbd958-b0c3-4a4d-96a9-41641964140d/7", "https://pid.bayer.com/2fdbd958-b0c3-4a4d-96a9-41641964140d/8"));

            deepLearningModel2.Children
            .Add(GetNarrowerTaxonomyResult("Convolutional Networks 2", "https://pid.bayer.com/2fdbd958-b0c3-4a4d-96a9-41641964140d/11", "https://pid.bayer.com/2fdbd958-b0c3-4a4d-96a9-41641964140d/9"));

            deepLearningModel2.Children
            .Add(GetNarrowerTaxonomyResult("Neural Networks 2", "https://pid.bayer.com/2fdbd958-b0c3-4a4d-96a9-41641964140d/12", "https://pid.bayer.com/2fdbd958-b0c3-4a4d-96a9-41641964140d/9"));

            deepLearningModel2.Children
            .Add(GetNarrowerTaxonomyResult("LTSM Networks 2", "https://pid.bayer.com/2fdbd958-b0c3-4a4d-96a9-41641964140d/13", "https://pid.bayer.com/2fdbd958-b0c3-4a4d-96a9-41641964140d/9"));

            deepLearningModel2.Children
            .Add(GetNarrowerTaxonomyResult("Generative Adversarial Networks 2", "https://pid.bayer.com/2fdbd958-b0c3-4a4d-96a9-41641964140d/14", "https://pid.bayer.com/2fdbd958-b0c3-4a4d-96a9-41641964140d/9"));

            classificationModel.Children.Add(deepLearningModel);
            classificationModel.Children.Add(deepLearningModel2);
            classificationModel.Children.Add(deepLearningModel3);

            #endregion Classification Model

            list.Add(classificationModel);
            list.Add(GetBroaderTaxonomyResult("Regression Model", "https://pid.bayer.com/2fdbd958-b0c3-4a4d-96a9-41641964140d/1"));
            list.Add(GetBroaderTaxonomyResult("Time Series Model", "https://pid.bayer.com/2fdbd958-b0c3-4a4d-96a9-41641964140d/2"));
            list.Add(GetBroaderTaxonomyResult("Clustering Model", "https://pid.bayer.com/2fdbd958-b0c3-4a4d-96a9-41641964140d/3"));

            return(list);
        }
コード例 #4
0
        private IList <dynamic> CheckParent(TaxonomyResultDTO taxonomy, IList <dynamic> values, IDictionary <string, TaxonomyResultDTO> taxonomiesDictionary)
        {
            if (taxonomy.Children.Count != 0 && taxonomy.Children.All(n => values.Contains(n.Id)))
            {
                values = values.Where(v => !taxonomy.Children.Any(n => n.Id == v)).ToList();
                values.Add(taxonomy.Id);

                if (taxonomy.HasParent)
                {
                    foreach (var parentId in taxonomy.Properties[Graph.Metadata.Constants.SKOS.Broader])
                    {
                        if (taxonomiesDictionary.TryGetValue(parentId, out TaxonomyResultDTO parent))
                        {
                            values = CheckParent(parent, values, taxonomiesDictionary);
                        }
                    }
                }
            }
            return(values);
        }
 private static string PrepareNameWithUnderScore(TaxonomyResultDTO taxonomy)
 {
     return(taxonomy.Name.Replace(" ", "_"));
 }