Beispiel #1
0
        void QueryWNIAndPopulate(object sender, DoWorkEventArgs e)
        {
            string strQuery = (string)e.Argument;

            // query WordNet interface
            List <WordNetEngine.RelativeFamily> relatives;
            List <WordNetEngine.POS>            poses = wn.Lookup(strQuery, out relatives);

            if (poses.Count == 0)
            {
                WordNetEngine.POS dummyPos = new WordNetEngine.POS()
                {
                    posType = 4, Senses = new List <WordNetEngine.Sense>()
                };
                dummyPos.Senses.Add(new WordNetEngine.Sense()
                {
                    Definition = "Queried term not found! Please try something different."
                });
                poses = new List <WordNetEngine.POS>();
                poses.Add(dummyPos);
            }

            // set senses to definitions list
            Dispatcher.BeginInvoke(() => { lstPOSs.ItemsSource = poses; });

            // deal with relatives, if any
            foreach (WordNetEngine.RelativeFamily relFamily in relatives)
            {
                Dispatcher.BeginInvoke(new PopulateRelativesDelegate(PopulateRelatives),
                                       relFamily.RelativeFamilyName,
                                       relFamily.Terms);
            }
        }