private void btFindSimilar_Click(object sender, EventArgs e) { tbRes.Clear(); var sb = new StringBuilder(); var v = Verbs.FindSimilar(tbWord.Text, (VerbAspect)cbAspect.SelectedItem); if (v != null) { BuildString(sb, v); } var n = Nouns.FindSimilar(tbWord.Text, (Gender)cbGender.SelectedItem, (Animacy)cbAnimacy.SelectedItem); if (n != null) { BuildString(sb, n); } var a = Adjectives.FindSimilar(tbWord.Text, (Comparability)cbComparability.SelectedItem); if (a != null) { BuildString(sb, a); } tbRes.Text = sb.ToString(); }
public string GetMorphedSituationString(Situation situation) { var builder = new StringBuilder(); builder.Append($"{situation.Agent} "); if (situation.Action.Name != EmptyOntologyNode.Name) { var action = Verbs.FindSimilar(situation.Action.Name); if (action != null) { var agent = Nouns.FindOne(situation.Agent.Name); var agentGender = agent?.Gender ?? Gender.M; var morphedAction = action.Past(Voice.Active, agentGender); builder.Append($"{morphedAction} "); } } if (situation.Object.Name != EmptyOntologyNode.Name) { var _object = Nouns.FindSimilar(situation.Object.Name); if (_object != null) { var morphedObject = _object[Case.Accusative]; builder.Append($"{morphedObject} "); } } if (situation.Locative.Name != EmptyOntologyNode.Name) { var locative = Nouns.FindSimilar(situation.Locative.Name); if (locative != null) { var preposition = situation.Locative.FromRelations .Where(x => x.Name == Relations.Prepostion) .Select(x => x.To.Name) .FirstOrDefault(); var morphedLocative = $"{preposition} {locative[Case.Locative]}"; builder.Append($"{morphedLocative} "); } } return(builder.ToString()); }