Example #1
0
 /// <summary>e
 /// Determines if two <see cref="IVerbal"/>s are similar.
 /// </summary>
 /// <param name="first">The first IVerbal</param>
 /// <param name="second">The second IVerbal</param>
 /// <returns> <c>true</c> if the given IVerbal instances are similar; otherwise, <c>false</c>.</returns>
 public static Similarity IsSimilarTo(this IVerbal first, IVerbal second) =>
 first.Match()
 .When(first.Text.EqualsIgnoreCase(second.Text))
 .Then(Similarity.Similar)
 .Case((Verb v1) =>
       second.Match()
       .Case((Verb v2) => v1.IsSimilarTo(v2))
       .Case((VerbPhrase vp2) => v1.IsSimilarTo(vp2))
       .Result())
 .Case((VerbPhrase vp1) =>
       second.Match()
       .Case((VerbPhrase vp2) => vp1.IsSimilarTo(vp2))
       .Case((Verb v2) => vp1.IsSimilarTo(v2))
       .Result())
 .Result();
Example #2
0
        private static string FormatVerbalText(IVerbal verbal)
        {
            var prepositionalText = verbal.Match((IPrepositionLinkable p) => p.LeftPrepositional?.Text);
            var adverbialText     = string.Join(" ", verbal.AdverbialModifiers.Select(m => m.Text));

            return($"{prepositionalText} {verbal.Modality?.Text} {verbal.Text} {adverbialText}");
        }