Exemple #1
0
        /// <summary>The user wants to browse WordNet synsets.</summary>
        private void BrowseWordNetMenuItem_Click(object sender, RoutedEventArgs e)
        {
            WordNetBrowserWindow wordNetBrowser = new WordNetBrowserWindow();

            wordNetBrowser.SynsetDragStarted   += TreeEditor.OnSynsetDragStarted;
            wordNetBrowser.SynsetDragCancelled += TreeEditor.OnSynsetDragCancelled;
            wordNetBrowser.SynsetDropCompleted += TreeEditor.OnSynsetDropCompleted;
            wordNetBrowser.AddDroppedWordConverter(e =>
            {
                IElementTreeNode droppedNode = null;
                // We could get a dropped IElementTree node in one of two forms:
                // 1.  It's in the IDataObject as an IElementTreeNode, ready to use; or
                // 2.  It's in the IDataObject as a Task<ElementBuilder> that we can run to get the IElementTreeNode
                if (e.Data.GetDataPresent(typeof(IElementTreeNode)))
                {
                    droppedNode = (IElementTreeNode)e.Data.GetData(typeof(IElementTreeNode));
                }
                else if (e.Data.GetDataPresent(typeof(Task)))
                {
                    Task <IElementTreeNode> getNodeTask = (Task <IElementTreeNode>)e.Data.GetData(typeof(Task));
                    droppedNode = getNodeTask.Result;
                }
                return((droppedNode is WordElementBuilder wordBuilder)
                    ? new WordSpecification(wordBuilder.WordSource.DefaultWord, wordBuilder switch
                {
                    NounBuilder nounBuilder => WordNetData.PartOfSpeech.Noun,
                    VerbBuilder verbBuilder => WordNetData.PartOfSpeech.Verb,
                    AdjectiveBuilder adjectiveBuilder => WordNetData.PartOfSpeech.Adjective,
                    AdverbBuilder adverbBuilder => WordNetData.PartOfSpeech.Adverb,
                    _ => WordNetData.PartOfSpeech.Unspecified
                })
                    : null);
            });
Exemple #2
0
        public override void Apply()
        {
            switch (Dependent)
            {
            case WhAdverbBuilder whAdverbDependent:
                break;

            case AdverbBuilder adverbDependent:
                switch (Governor)
                {
                // The AdjectiveBuilder case checks for a condition where the CoreNLP dependency indicates that Dependent modifies an adjective, but that adjective is the
                // head of a phrase and is modified by a comparative adverb.  For SimpleNLG we represent this comparative adverb as a phrase that's modified by Dependent.
                case AdjectiveBuilder adjectiveGovernor:
                    AdverbBuilder interveningComparative = InterveningComparativeAdverb;
                    if (interveningComparative != null)
                    {
                        adverbDependent.Modify(interveningComparative);
                    }
                    else
                    {
                        adverbDependent.Modify(adjectiveGovernor);
                    }
                    break;

                case AdverbBuilder adverbGovernor:
                    adverbDependent.Modify(adverbGovernor);
                    break;

                case VerbBuilder verbGovernor:
                    adverbDependent.Modify(verbGovernor);
                    break;

                case NounBuilder nounGovernor:
                    AdjectiveBuilder interveningAdjective = InterveningAdjective;
                    if (interveningAdjective != null)
                    {
                        adverbDependent.Modify(interveningAdjective);
                    }
                    break;

                default: break;
                }
                break;

            default: break;
            }
        }