/// <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}"); }
public TaxonomyResultDtoV2(TaxonomyResultDTO taxonomyResult) { Subject = taxonomyResult.Id; Name = taxonomyResult.Name; Properties = taxonomyResult.Properties; Children = new List <TaxonomyResultDtoV2>(taxonomyResult.Children.Select(c => new TaxonomyResultDtoV2(c))); }
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); }
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(" ", "_")); }