|
WordNetViewer |
|
1 /* 2 * WordNetViewer.java 3 * 4 * Copyright (c) 1998-2001, The University of Sheffield. 5 * 6 * This file is part of GATE (see http://gate.ac.uk/), and is free 7 * software, licenced under the GNU Library General Public License, 8 * Version 2, June 1991 (in the distribution as file licence.html, 9 * and also available at http://gate.ac.uk/gate/licence.html). 10 * 11 * Rosen Marinov, 29/05/2002 12 * 13 */ 14 package gate.gui.wordnet; 15 16 import gate.*; 17 import gate.creole.*; 18 import gate.wordnet.*; 19 20 import java.awt.*; 21 import javax.swing.*; 22 import java.awt.event.*; 23 import java.util.*; 24 import java.io.*; 25 import java.net.*; 26 27 public class WordNetViewer extends AbstractVisualResource 28 implements ActionListener{ 29 30 protected JLabel searchLabel = new JLabel(); 31 protected JTextField searchWordTextField = new JTextField(); 32 protected JButton searchButton = new JButton(); 33 protected JTextPane resultPane = new JTextPane(); 34 protected JLabel searchLabel2 = new JLabel(); 35 protected JButton nounButton = new JButton(); 36 protected JButton verbButton = new JButton(); 37 protected JButton adjectiveButton = new JButton(); 38 protected JButton adverbButton = new JButton(); 39 protected JScrollPane scrollPane = new JScrollPane(); 40 protected GridBagLayout gridBagLayout1 = new GridBagLayout(); 41 42 protected JPopupMenu nounPopup; 43 protected JPopupMenu verbPopup; 44 protected JPopupMenu adjectivePopup; 45 protected JPopupMenu adverbPopup; 46 47 private static final String propertiesFile = "file://D:/Gate/temp/file_properties.xml"; 48 private WordNet wnMain = null; 49 50 private boolean senatnceFrames = false; 51 public final static int SENTANCE_FAMES = 33001; 52 53 public WordNetViewer(){ 54 jbInit(); 55 //initResources(); 56 } 57 58 private void initResources(){ 59 try { 60 Gate.init(); 61 wnMain = new IndexFileWordNetImpl(); 62 wnMain.setPropertyUrl(new URL(propertiesFile)); 63 wnMain.init(); 64 } catch (Exception e){ 65 e.printStackTrace(); 66 } 67 } 68 69 void jbInit(){ 70 searchLabel.setText("Search Word:"); 71 this.setLayout(gridBagLayout1); 72 searchButton.setText("Search"); 73 searchButton.addActionListener(new java.awt.event.ActionListener() { 74 public void actionPerformed(ActionEvent e) { 75 searchButton_actionPerformed(e); 76 } 77 }); 78 searchWordTextField.addActionListener(new java.awt.event.ActionListener() { 79 public void actionPerformed(ActionEvent e) { 80 searchWordTextField_actionPerformed(e); 81 } 82 }); 83 searchLabel2.setText("Searches for ... :"); 84 nounButton.setText("Noun"); 85 verbButton.setText("Verb"); 86 adjectiveButton.setText("Adjective"); 87 adverbButton.setText("Adverb"); 88 89 nounButton.addActionListener(new java.awt.event.ActionListener() { 90 public void actionPerformed(ActionEvent e) { 91 nounButton_actionPerformed(e); 92 } 93 }); 94 verbButton.addActionListener(new java.awt.event.ActionListener() { 95 public void actionPerformed(ActionEvent e) { 96 verbButton_actionPerformed(e); 97 } 98 }); 99 adjectiveButton.addActionListener(new java.awt.event.ActionListener() { 100 public void actionPerformed(ActionEvent e) { 101 adjectiveButton_actionPerformed(e); 102 } 103 }); 104 adverbButton.addActionListener(new java.awt.event.ActionListener() { 105 public void actionPerformed(ActionEvent e) { 106 adverbButton_actionPerformed(e); 107 } 108 }); 109 nounButton.setEnabled(false); 110 verbButton.setEnabled(false); 111 adjectiveButton.setEnabled(false); 112 adverbButton.setEnabled(false); 113 114 resultPane.setEditable(false); 115 scrollPane.getViewport().add(resultPane); 116 117 this.add(searchLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0 118 ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); 119 this.add(searchWordTextField, new GridBagConstraints(1, 0, 5, 1, 1.0, 0.0 120 ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0)); 121 this.add(scrollPane, new GridBagConstraints(0, 2, 7, 1, 1.0, 1.0 122 ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(5, 5, 5, 5), 0, 0)); 123 this.add(searchLabel2, new GridBagConstraints(0, 1, 2, 1, 0.0, 0.0 124 ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); 125 this.add(searchButton, new GridBagConstraints(6, 0, 1, 1, 0.0, 0.0 126 ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); 127 this.add(adjectiveButton, new GridBagConstraints(4, 1, 1, 1, 0.0, 0.0 128 ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); 129 this.add(verbButton, new GridBagConstraints(3, 1, 1, 1, 0.0, 0.0 130 ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); 131 this.add(nounButton, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0 132 ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); 133 this.add(adverbButton, new GridBagConstraints(5, 1, 1, 1, 0.0, 0.0 134 ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); 135 } 136 137 private void searchButton_actionPerformed(ActionEvent e) { 138 actionSearch(); 139 } 140 141 private void searchWordTextField_actionPerformed(ActionEvent e) { 142 actionSearch(); 143 } 144 145 private void actionSearch(){ 146 String text = searchWordTextField.getText().trim(); 147 text = text.replace(' ','_'); 148 searchLabel2.setText("Searches for " + text + ":"); 149 150 nounButton.setEnabled(false); 151 verbButton.setEnabled(false); 152 adjectiveButton.setEnabled(false); 153 adverbButton.setEnabled(false); 154 155 nounPopup = new JPopupMenu(); 156 verbPopup = new JPopupMenu(); 157 adjectivePopup = new JPopupMenu(); 158 adverbPopup = new JPopupMenu(); 159 160 StringBuffer display = new StringBuffer(""); 161 162 addToResult(display, text, WordNet.POS_NOUN); 163 addToResult(display, text, WordNet.POS_VERB); 164 addToResult(display, text, WordNet.POS_ADJECTIVE); 165 addToResult(display, text, WordNet.POS_ADVERB); 166 167 resultPane.setText(display.toString()); 168 169 } 170 171 private void addToResult(StringBuffer display, String text, int wordType) { 172 java.util.List senses = null; 173 try { 174 wnMain.cleanup(); 175 senses = wnMain.lookupWord(text, wordType); 176 } catch (WordNetException wne) { 177 wne.printStackTrace(); 178 } 179 180 if ( senses!=null && senses.size()>0){ 181 182 String wordIdentifier = ""; 183 switch (wordType){ 184 case WordNet.POS_NOUN: 185 wordIdentifier = "noun"; 186 nounButton.setEnabled(true); 187 break; 188 case WordNet.POS_VERB: 189 wordIdentifier = "verb"; 190 verbButton.setEnabled(true); 191 break; 192 case WordNet.POS_ADJECTIVE: 193 wordIdentifier = "adjective"; 194 adjectiveButton.setEnabled(true); 195 break; 196 case WordNet.POS_ADVERB: 197 wordIdentifier = "adverb"; 198 adverbButton.setEnabled(true); 199 break; 200 } 201 202 display.append("\n"); 203 display.append("The "); 204 display.append(wordIdentifier); 205 display.append(" "); 206 display.append(text); 207 display.append(" has "); 208 display.append(senses.size()); 209 display.append(" senses:"); 210 display.append("\n\n"); 211 for (int i=0; i< senses.size(); i++) { 212 WordSense currSense = (WordSense) senses.get(i); 213 Synset currSynset = currSense.getSynset(); 214 addToPopupMenu(currSense, currSynset, wordType, senses); 215 java.util.List words = currSynset.getWordSenses(); 216 String wordsString = getWords(words); 217 218 display.append(" " + (i+1) + ". " + wordsString + " -- " + currSynset.getGloss()); 219 display.append("\n"); 220 } 221 } 222 } 223 224 private void addToPopupMenu(WordSense wordSense, Synset synset, int wordType, java.util.List senses){ 225 java.util.List semRelations = null; 226 try { 227 semRelations = synset.getSemanticRelations(); 228 } catch (Exception e){ 229 e.printStackTrace(); 230 } 231 232 java.util.List lexRelations = null; 233 try { 234 lexRelations = wordSense.getLexicalRelations(); 235 } catch (Exception e){ 236 e.printStackTrace(); 237 } 238 239 for (int i=0; i<(semRelations.size()+lexRelations.size()); i++) { 240 Relation relation; 241 if (i<semRelations.size()){ 242 relation = (SemanticRelation) semRelations.get(i); 243 } else { 244 relation = (LexicalRelation) lexRelations.get(i-semRelations.size()); 245 } 246 247 switch (wordType) { 248 case WordNet.POS_NOUN: 249 if (false == existInPopup(nounPopup, getLabel(relation)) ){ 250 nounPopup.add(new RelationItem(getLabel(relation), relation.getType(), senses)); 251 } 252 break; 253 case WordNet.POS_VERB: 254 //commented because problem with WN API and Sentance Frames 255 if (!senatnceFrames){ 256 verbPopup.add(new RelationItem("Senatnce Frames", SENTANCE_FAMES, senses)); 257 senatnceFrames = true; 258 } 259 if (false == existInPopup(verbPopup, getLabel(relation)) ){ 260 verbPopup.add(new RelationItem(getLabel(relation), relation.getType(), senses)); 261 } 262 break; 263 case WordNet.POS_ADJECTIVE: 264 if (false == existInPopup(adjectivePopup, getLabel(relation)) ){ 265 adjectivePopup.add(new RelationItem(getLabel(relation), relation.getType(), senses)); 266 } 267 break; 268 case WordNet.POS_ADVERB: 269 if (false == existInPopup(adverbPopup, getLabel(relation)) ){ 270 adverbPopup.add(new RelationItem(getLabel(relation), relation.getType(), senses)); 271 } 272 break; 273 } 274 } 275 } 276 277 private boolean existInPopup(JPopupMenu menu, String name){ 278 boolean result = false; 279 for (int i=0; i<menu.getComponents().length; i++){ 280 if ( menu.getComponents()[i].getName().equals(name)){ 281 result = true; 282 break; 283 } 284 } 285 return result; 286 } 287 288 void nounButton_actionPerformed(ActionEvent e) { 289 nounPopup.show(nounButton, 0, nounButton.getHeight()); 290 } 291 292 void verbButton_actionPerformed(ActionEvent e) { 293 verbPopup.show(verbButton, 0, verbButton.getHeight()); 294 } 295 296 void adjectiveButton_actionPerformed(ActionEvent e) { 297 adjectivePopup.show(adjectiveButton, 0, adjectiveButton.getHeight()); 298 } 299 300 void adverbButton_actionPerformed(ActionEvent e) { 301 if (adverbPopup.getComponentCount()>0){ 302 adverbPopup.show(adverbButton, 0, adverbButton.getHeight()); 303 } 304 } 305 306 public void actionPerformed(ActionEvent e){ 307 RelationItem ri = (RelationItem) e.getSource(); 308 switch (ri.getRelationType()){ 309 case Relation.REL_ANTONYM: 310 relAntonymSeeAlso(ri.getSenses(), Relation.REL_ANTONYM,"=> "); 311 break; 312 case Relation.REL_ATTRIBUTE: 313 relAtributeSimilarTo(ri.getSenses(), Relation.REL_ATTRIBUTE, "=> "); 314 break; 315 case Relation.REL_CAUSE: 316 relHoloMeroHypo(ri.getSenses(), Relation.REL_CAUSE, "=> "); 317 break; 318 case Relation.REL_DERIVED_FROM_ADJECTIVE: 319 relAntonymSeeAlso(ri.getSenses(), Relation.REL_DERIVED_FROM_ADJECTIVE,"=> "); 320 break; 321 case Relation.REL_ENTAILMENT: 322 relHoloMeroHypo(ri.getSenses(), Relation.REL_ENTAILMENT, "=> "); 323 break; 324 case Relation.REL_HYPERNYM: 325 relHypernym(ri.getSenses()); 326 break; 327 case Relation.REL_HYPONYM: 328 relHoloMeroHypo(ri.getSenses(), Relation.REL_HYPONYM, "=> "); 329 break; 330 case Relation.REL_MEMBER_HOLONYM: 331 relHoloMeroHypo(ri.getSenses(), Relation.REL_MEMBER_HOLONYM,"MEMBER OF: "); 332 break; 333 case Relation.REL_MEMBER_MERONYM: 334 relHoloMeroHypo(ri.getSenses(), Relation.REL_MEMBER_MERONYM, "HAS MEMBER: "); 335 break; 336 case Relation.REL_PARTICIPLE_OF_VERB: 337 relAntonymSeeAlso(ri.getSenses(), Relation.REL_PARTICIPLE_OF_VERB,"=> "); 338 break; 339 case Relation.REL_PART_HOLONYM: 340 relHoloMeroHypo(ri.getSenses(), Relation.REL_PART_HOLONYM, "PART OF: "); 341 break; 342 case Relation.REL_PART_MERONYM: 343 relHoloMeroHypo(ri.getSenses(), Relation.REL_PART_MERONYM, "HAS PART: "); 344 break; 345 case Relation.REL_PERTAINYM: 346 break; 347 case Relation.REL_SEE_ALSO: 348 relAntonymSeeAlso(ri.getSenses(), Relation.REL_SEE_ALSO,"=> "); 349 break; 350 case Relation.REL_SIMILAR_TO: 351 relAtributeSimilarTo(ri.getSenses(), Relation.REL_SIMILAR_TO, "=> "); 352 break; 353 case Relation.REL_SUBSTANCE_HOLONYM: 354 relHoloMeroHypo(ri.getSenses(), Relation.REL_SUBSTANCE_HOLONYM, 355 " SUBSTANCE OF: "); 356 break; 357 case Relation.REL_SUBSTANCE_MERONYM: 358 relHoloMeroHypo(ri.getSenses(), Relation.REL_SUBSTANCE_MERONYM, "HAS SUBSTANCE: "); 359 break; 360 case Relation.REL_VERB_GROUP: 361 relAtributeSimilarTo(ri.getSenses(), Relation.REL_VERB_GROUP, "=> "); 362 break; 363 case SENTANCE_FAMES: 364 sentanceFrames(ri.getSenses()); 365 break; 366 } 367 } 368 369 private void relHypernym(java.util.List senses){ 370 StringBuffer display = new StringBuffer(""); 371 for (int i = 0; i<senses.size(); i++){ 372 //display.append(getDescription(Relation.REL_HYPERNYM)); 373 display.append("\n"); 374 display.append("Sense "); 375 display.append(i+1); 376 display.append("\n"); 377 378 WordSense currSense = (WordSense) senses.get(i); 379 Synset currSynset = currSense.getSynset(); 380 recursiveHypernym(currSynset, display, " =>"); 381 } 382 383 resultPane.setText(display.toString()); 384 } 385 386 private void recursiveHypernym(Synset synset, StringBuffer display, String prefix){ 387 java.util.List words = synset.getWordSenses(); 388 String wordsString = getWords(words); 389 390 display.append(prefix); 391 display.append(" "); 392 display.append(wordsString); 393 display.append(" -- "); 394 display.append(synset.getGloss()); 395 display.append("\n"); 396 397 java.util.List hList = null; 398 try { 399 hList = synset.getSemanticRelations(Relation.REL_HYPERNYM); 400 } catch (Exception e){ 401 e.printStackTrace(); 402 } 403 if (hList!=null && hList.size()>0){ 404 SemanticRelation rel = (SemanticRelation) hList.get(0); 405 prefix = " " + prefix; 406 recursiveHypernym(rel.getTarget(), display, prefix); 407 } 408 } 409 410 411 private void relHoloMeroHypo(java.util.List senses, int relationType, 412 String relRefString){ 413 StringBuffer display = new StringBuffer(""); 414 for (int i = 0; i<senses.size(); i++){ 415 WordSense currSense = (WordSense) senses.get(i); 416 Synset currSynset = currSense.getSynset(); 417 try { 418 if (currSynset.getSemanticRelations(relationType).size()>0){ 419 //display.append(getDescription(relationType)); 420 display.append("\n"); 421 display.append("Sense "); 422 display.append(i+1); 423 display.append("\n"); 424 recursiveHoloMeroHypo(currSynset, display, " ", false, 425 relationType, relRefString); 426 } 427 } catch (Exception e){ 428 e.printStackTrace(); 429 } 430 } 431 432 resultPane.setText(display.toString()); 433 } 434 435 private void recursiveHoloMeroHypo(Synset synset, StringBuffer display, 436 String prefix, boolean symbPrefix, 437 int relationType, String relRefString){ 438 439 java.util.List words = synset.getWordSenses(); 440 String wordsString = getWords(words); 441 442 display.append(prefix); 443 if (symbPrefix) { 444 display.append(relRefString); 445 } 446 display.append(wordsString); 447 display.append(" -- "); 448 display.append(synset.getGloss()); 449 display.append("\n"); 450 451 java.util.List holoList = null; 452 try { 453 holoList = synset.getSemanticRelations(relationType); 454 } catch (Exception e){ 455 e.printStackTrace(); 456 } 457 if (holoList!=null && holoList.size()>0){ 458 for (int i = 0; i<holoList.size(); i++){ 459 SemanticRelation rel = (SemanticRelation) holoList.get(i); 460 prefix = " " + prefix; 461 recursiveHoloMeroHypo(rel.getTarget(), display, prefix, true, 462 relationType, relRefString); 463 prefix = prefix.substring(4, prefix.length()); 464 } 465 } 466 } 467 468 private void relAntonymSeeAlso(java.util.List senses, 469 int relType, String relRefString){ 470 StringBuffer display = new StringBuffer(""); 471 boolean semantic_see_also = true; 472 for (int i = 0; i<senses.size(); i++){ 473 WordSense currSense = (WordSense) senses.get(i); 474 Synset currSynset = currSense.getSynset(); 475 try { 476 java.util.List antonyms = currSense.getLexicalRelations(relType); 477 if (antonyms!=null && antonyms.size()>0){ 478 semantic_see_also = false; 479 //display.append(getDescription(relType)); 480 display.append("\n"); 481 display.append("Sense "); 482 display.append(i+1); 483 display.append("\n "); 484 display.append(getWords(currSynset.getWordSenses())); 485 display.append(" -- "); 486 display.append(currSynset.getGloss()); 487 display.append("\n"); 488 for (int j=0; j<antonyms.size(); j++){ 489 LexicalRelation rel = (LexicalRelation) antonyms.get(j); 490 WordSense word = rel.getTarget(); 491 display.append(" "); 492 display.append(relRefString); 493 display.append(word.getWord().getLemma()); 494 display.append(" -- "); 495 display.append(word.getSynset().getGloss()); 496 display.append("\n"); 497 } 498 display.append("\n"); 499 } 500 } catch (Exception e){ 501 e.printStackTrace(); 502 } 503 } 504 505 resultPane.setText(display.toString()); 506 if (semantic_see_also){ 507 relAtributeSimilarTo(senses, Relation.REL_SEE_ALSO,"=> "); 508 } 509 } 510 511 private void relAtributeSimilarTo(java.util.List senses, int releationType, 512 String relRefString){ 513 StringBuffer display = new StringBuffer(""); 514 for (int i = 0; i<senses.size(); i++){ 515 WordSense currSense = (WordSense) senses.get(i); 516 Synset currSynset = currSense.getSynset(); 517 try { 518 java.util.List atributes = currSynset.getSemanticRelations(releationType); 519 if (atributes!=null && atributes.size()>0){ 520 //display.append(getDescription(releationType)); 521 display.append("\n"); 522 display.append("Sense "); 523 display.append(i+1); 524 display.append("\n "); 525 display.append(getWords(currSynset.getWordSenses())); 526 display.append(" -- "); 527 display.append(currSynset.getGloss()); 528 display.append("\n"); 529 for (int j=0; j<atributes.size(); j++){ 530 SemanticRelation rel = (SemanticRelation) atributes.get(j); 531 Synset synset = rel.getTarget(); 532 display.append(" "); 533 display.append(relRefString); 534 display.append(getWords(synset.getWordSenses())); 535 536 display.append(" -- "); 537 display.append(synset.getGloss()); 538 display.append("\n"); 539 } 540 display.append("\n"); 541 } 542 } catch (Exception e){ 543 e.printStackTrace(); 544 } 545 } 546 547 resultPane.setText(display.toString()); 548 } 549 550 551 private String getWords(java.util.List words){ 552 StringBuffer wordsString = new StringBuffer(""); 553 for (int j = 0; j<words.size(); j++){ 554 WordSense word = (WordSense) words.get(j); 555 wordsString.append(word.getWord().getLemma().replace('_',' ')); 556 if (j<(words.size()-1)){ 557 wordsString.append(", "); 558 } 559 } 560 return wordsString.toString(); 561 } 562 563 private void sentanceFrames(java.util.List senses){ 564 StringBuffer display = new StringBuffer(""); 565 for (int i=0; i<senses.size(); i++) { 566 WordSense currSense = (WordSense) senses.get(i); 567 Synset currSynset = currSense.getSynset(); 568 Verb currVerb = (Verb) currSense; 569 java.util.List frames = currVerb.getVerbFrames(); 570 571 display.append("\nSense "); 572 display.append(i+1); 573 display.append("\n "); 574 display.append(getWords(currSynset.getWordSenses())); 575 display.append(" -- "); 576 display.append(currSynset.getGloss()); 577 display.append("\n"); 578 579 for (int j=0; j<frames.size(); j++){ 580 display.append(" *> "); 581 display.append(((VerbFrame) frames.get(j)).getFrame()); 582 display.append("\n"); 583 } 584 } 585 resultPane.setText(display.toString()); 586 } 587 588 589 public String getLabel(Relation r){ 590 591 String result = ""; 592 switch (r.getType()){ 593 case Relation.REL_ANTONYM: 594 result = "Antonym"; 595 break; 596 case Relation.REL_ATTRIBUTE: 597 result = "Attribute"; 598 break; 599 case Relation.REL_CAUSE: 600 result = "Cause"; 601 break; 602 case Relation.REL_DERIVED_FROM_ADJECTIVE: 603 result = "Derived From Adjective"; 604 break; 605 case Relation.REL_ENTAILMENT: 606 result = "Entailment"; 607 break; 608 case Relation.REL_HYPERNYM: 609 result = "Hypernym"; 610 break; 611 case Relation.REL_HYPONYM: 612 result = "Hyponym"; 613 break; 614 case Relation.REL_MEMBER_HOLONYM: 615 result = "Member Holonym"; 616 break; 617 case Relation.REL_MEMBER_MERONYM: 618 result = "Member Meronym"; 619 break; 620 case Relation.REL_PARTICIPLE_OF_VERB: 621 result = "Participle Of Verb"; 622 break; 623 case Relation.REL_PART_HOLONYM: 624 result = "Holonym"; 625 break; 626 case Relation.REL_PART_MERONYM: 627 result = "Meronym"; 628 break; 629 case Relation.REL_PERTAINYM: 630 result = "Pertainym"; 631 break; 632 case Relation.REL_SEE_ALSO: 633 result = "See Also"; 634 break; 635 case Relation.REL_SIMILAR_TO: 636 result = "Similar To"; 637 break; 638 case Relation.REL_SUBSTANCE_HOLONYM: 639 result = "Substance Holonym"; 640 break; 641 case Relation.REL_SUBSTANCE_MERONYM: 642 result = "Substance Meronym"; 643 break; 644 case Relation.REL_VERB_GROUP: 645 result = "Verb Group"; 646 break; 647 } 648 return result; 649 } 650 651 public String getDescription(int rel){ 652 653 String result = ""; 654 switch (rel){ 655 case Relation.REL_ANTONYM: 656 result = "Antonyms:"; 657 break; 658 case Relation.REL_ATTRIBUTE: 659 result = "Attributes:"; 660 break; 661 case Relation.REL_CAUSE: 662 result = "Cause:"; 663 break; 664 case Relation.REL_DERIVED_FROM_ADJECTIVE: 665 result = "Derived From Adjective:"; 666 break; 667 case Relation.REL_ENTAILMENT: 668 result = "Entailments:"; 669 break; 670 case Relation.REL_HYPERNYM: 671 result = "Hypernyms:"; 672 break; 673 case Relation.REL_HYPONYM: 674 result = "Hyponyms:"; 675 break; 676 case Relation.REL_MEMBER_HOLONYM: 677 result = "Member Holonyms:"; 678 break; 679 case Relation.REL_MEMBER_MERONYM: 680 result = "Member Meronyms:"; 681 break; 682 case Relation.REL_PARTICIPLE_OF_VERB: 683 result = "Participle Of Verb:"; 684 break; 685 case Relation.REL_PART_HOLONYM: 686 result = "Holonyms:"; 687 break; 688 case Relation.REL_PART_MERONYM: 689 result = "Meronyms:"; 690 break; 691 case Relation.REL_PERTAINYM: 692 result = "Pertainyms:"; 693 break; 694 case Relation.REL_SEE_ALSO: 695 result = "See Also:"; 696 break; 697 case Relation.REL_SIMILAR_TO: 698 result = "Similar To:"; 699 break; 700 case Relation.REL_SUBSTANCE_HOLONYM: 701 result = "Substance Holonyms:"; 702 break; 703 case Relation.REL_SUBSTANCE_MERONYM: 704 result = "Substance Meronyms:"; 705 break; 706 case Relation.REL_VERB_GROUP: 707 result = "Verb Group:"; 708 break; 709 } 710 return result; 711 } 712 713 714 /** 715 * Called by the GUI when this viewer/editor has to initialise itself for a 716 * specific object. 717 * @param target the object (be it a {@link gate.Resource}, 718 * {@link gate.DataStore} or whatever) this viewer has to display 719 */ 720 public void setTarget(Object target){ 721 722 if (false == target instanceof WordNet) { 723 throw new IllegalArgumentException(); 724 } 725 726 this.wnMain = (WordNet)target; 727 } 728 729 private class RelationItem extends JMenuItem{ 730 731 int relType; 732 java.util.List senses; 733 734 public RelationItem(String name, int type, java.util.List sen) { 735 super(name); 736 this.addActionListener(WordNetViewer.this); 737 relType = type; 738 senses = sen; 739 setName(name); 740 } 741 742 public int getRelationType() { 743 return relType; 744 } 745 746 public java.util.List getSenses(){ 747 return senses; 748 } 749 750 } 751 752 }
|
WordNetViewer |
|