├── .gitignore ├── README.md ├── lib ├── LAIR.Collections.dll ├── LAIR.Collections.xml ├── LAIR.Extensions.dll ├── LAIR.Extensions.xml ├── LAIR.IO.dll ├── LAIR.IO.xml ├── LAIR.MachineLearning.dll ├── LAIR.MachineLearning.xml ├── LAIR.Misc.dll ├── LAIR.Misc.xml ├── LAIR.Morphology.dll ├── LAIR.Morphology.xml ├── LAIR.ResourceAPIs.GraphViz.dll ├── LAIR.ResourceAPIs.GraphViz.xml ├── LAIR.ResourceAPIs.MySQL.dll ├── LAIR.ResourceAPIs.MySQL.xml ├── LAIR.XML.dll ├── LAIR.XML.xml └── MySql.Data.dll ├── resources ├── .sorted_for_dot_net ├── adj.exc ├── adv.exc ├── cntlist ├── cntlist.rev ├── cousin.exc ├── data.adj ├── data.adv ├── data.noun ├── data.verb ├── dbfiles │ ├── adj.all │ ├── adj.pert │ ├── adj.ppl │ ├── adv.all │ ├── cntlist │ ├── noun.Tops │ ├── noun.act │ ├── noun.animal │ ├── noun.artifact │ ├── noun.attribute │ ├── noun.body │ ├── noun.cognition │ ├── noun.communication │ ├── noun.event │ ├── noun.feeling │ ├── noun.food │ ├── noun.group │ ├── noun.location │ ├── noun.motive │ ├── noun.object │ ├── noun.person │ ├── noun.phenomenon │ ├── noun.plant │ ├── noun.possession │ ├── noun.process │ ├── noun.quantity │ ├── noun.relation │ ├── noun.shape │ ├── noun.state │ ├── noun.substance │ ├── noun.time │ ├── verb.Framestext │ ├── verb.body │ ├── verb.change │ ├── verb.cognition │ ├── verb.communication │ ├── verb.competition │ ├── verb.consumption │ ├── verb.contact │ ├── verb.creation │ ├── verb.emotion │ ├── verb.motion │ ├── verb.perception │ ├── verb.possession │ ├── verb.social │ ├── verb.stative │ └── verb.weather ├── index.adj ├── index.adv ├── index.noun ├── index.sense ├── index.verb ├── log.grind.3.1 ├── noun.exc ├── sentidx.vrb ├── sents.vrb ├── verb.Framestext └── verb.exc └── src ├── TestApplication ├── Docs │ └── README.txt ├── Program.cs ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ └── Settings.settings ├── TestApplication.csproj ├── TestForm.Designer.cs ├── TestForm.cs └── TestForm.resx ├── WordNet.sln └── WordNet ├── Docs └── README.txt ├── Properties └── AssemblyInfo.cs ├── SynSet.cs ├── WordNet.csproj ├── WordNetEngine.cs └── WordNetSimilarityModel.cs /.gitignore: -------------------------------------------------------------------------------- 1 | # Build Folders (you can keep bin if you'd like, to store dlls and pdbs) 2 | [Bb]in/ 3 | [Oo]bj/ 4 | 5 | # mstest test results 6 | TestResults 7 | 8 | ## Ignore Visual Studio temporary files, build results, and 9 | ## files generated by popular Visual Studio add-ons. 10 | 11 | # User-specific files 12 | *.suo 13 | *.user 14 | *.sln.docstates 15 | 16 | # Build results 17 | [Dd]ebug/ 18 | [Rr]elease/ 19 | x64/ 20 | *_i.c 21 | *_p.c 22 | *.ilk 23 | *.meta 24 | *.obj 25 | *.pch 26 | *.pdb 27 | *.pgc 28 | *.pgd 29 | *.rsp 30 | *.sbr 31 | *.tlb 32 | *.tli 33 | *.tlh 34 | *.tmp 35 | *.log 36 | *.vspscc 37 | *.vssscc 38 | .builds 39 | 40 | # Visual C++ cache files 41 | ipch/ 42 | *.aps 43 | *.ncb 44 | *.opensdf 45 | *.sdf 46 | 47 | # Visual Studio profiler 48 | *.psess 49 | *.vsp 50 | *.vspx 51 | 52 | # Guidance Automation Toolkit 53 | *.gpState 54 | 55 | # ReSharper is a .NET coding add-in 56 | _ReSharper* 57 | 58 | # NCrunch 59 | *.ncrunch* 60 | .*crunch*.local.xml 61 | 62 | # Installshield output folder 63 | [Ee]xpress 64 | 65 | # DocProject is a documentation generator add-in 66 | DocProject/buildhelp/ 67 | DocProject/Help/*.HxT 68 | DocProject/Help/*.HxC 69 | DocProject/Help/*.hhc 70 | DocProject/Help/*.hhk 71 | DocProject/Help/*.hhp 72 | DocProject/Help/Html2 73 | DocProject/Help/html 74 | 75 | # Click-Once directory 76 | publish 77 | 78 | # Publish Web Output 79 | *.Publish.xml 80 | 81 | # NuGet Packages Directory 82 | packages 83 | 84 | # Windows Azure Build Output 85 | csx 86 | *.build.csdef 87 | 88 | # Windows Store app package directory 89 | AppPackages/ 90 | 91 | # Others 92 | [Bb]in 93 | [Oo]bj 94 | sql 95 | TestResults 96 | [Tt]est[Rr]esult* 97 | *.Cache 98 | ClientBin 99 | [Ss]tyle[Cc]op.* 100 | ~$* 101 | *.dbmdl 102 | Generated_Code #added for RIA/Silverlight projects 103 | 104 | # Backup & report files from converting an old project file to a newer 105 | # Visual Studio version. Backup files are not needed, because we have git ;-) 106 | _UpgradeReport_Files/ 107 | Backup*/ 108 | UpgradeLog*.XML 109 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | WordNetAPI 2 | ========== 3 | 4 | This project contains the WordNet C# API written by Matt Gerber of Michgan State University, it includes all required dependencies to build in one step. 5 | 6 | Project hompage: https://ptl.sys.virginia.edu/ptl/members/matthew-gerber/software#wordnet 7 | -------------------------------------------------------------------------------- /lib/LAIR.Collections.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zacg/WordNetAPI/0b264294e508d3a27a950bb9a64fb5663770fd2f/lib/LAIR.Collections.dll -------------------------------------------------------------------------------- /lib/LAIR.Collections.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | LAIR.Collections 5 | 6 | 7 | 8 | 9 | Represents a set of unique items 10 | 11 | Type of elements in the set 12 | 13 | 14 | 15 | Contains the first slot number for each hash code 16 | 17 | 18 | 19 | 20 | Slots used to store element data and hash codes 21 | 22 | 23 | 24 | 25 | The number of slots that are in use (i.e. filled with data) or have been used and marked as empty 26 | later on. This differs from _slots.Length, as not all of the array will be in use. 27 | 28 | 29 | 30 | 31 | The index of the first slot in the empty slots chain. Remove() prepends the cleared slot to 32 | the empty chain. Add() fills the first slot in the empty slots chain with the added element 33 | (or increases the number of touched slots if the empty slots chain is empty). 34 | 35 | 36 | 37 | 38 | The number of items in this set 39 | 40 | 41 | 42 | 43 | Equality comparer for elements in the set 44 | 45 | 46 | 47 | 48 | The number of changes made to this set. Used by enumerators to detect changes and invalidate themselves. 49 | 50 | 51 | 52 | 53 | Whether or not to throw exceptions when duplicate elements are added to the set 54 | 55 | 56 | 57 | 58 | Whether or not to throw exceptions when elements are not removed 59 | 60 | 61 | 62 | 63 | Whether or not this set is read-only 64 | 65 | 66 | 67 | 68 | Ratio of number of elements to the size of the hash index array. Values smaller than one result in quicker lookups 69 | and higher memory usage. Values larger than one result in slower lookups and lower memory usage. 70 | 71 | 72 | 73 | 74 | Constructor 75 | 76 | 77 | 78 | 79 | Constructor 80 | 81 | Number of elements that can be added without resizing 82 | 83 | 84 | 85 | Constructor 86 | 87 | Number of elements that can be added without resizing 88 | Comparer to use 89 | 90 | 91 | 92 | Constructor 93 | 94 | Whether or not to throw an exception if a duplicate element is added 95 | 96 | 97 | 98 | Constructor 99 | 100 | Elements to add to set 101 | 102 | 103 | 104 | Constructor 105 | 106 | Elements to add to set 107 | Whether or not to throw an exception if a duplicate element is added 108 | 109 | 110 | 111 | Constructor 112 | 113 | Comparer to use 114 | 115 | 116 | 117 | Constructor 118 | 119 | Elements to construct set from 120 | Comparer to use 121 | 122 | 123 | 124 | Constructor 125 | 126 | Path to saved set 127 | Function from strings to objects of type T 128 | 129 | 130 | 131 | Initializes the set 132 | 133 | Number of elements that can be added without resizing 134 | Comparer for set 135 | 136 | 137 | 138 | Adds an element to this set 139 | 140 | Element to add 141 | True if element was added and false if it was already present 142 | 143 | 144 | 145 | Adds a range of elements to this set 146 | 147 | Elements to add 148 | 149 | 150 | 151 | Removes an element from this set 152 | 153 | Element to remove 154 | True if element was removed and false otherwise 155 | 156 | 157 | 158 | Removes a range of elements from this set 159 | 160 | Elements to remove 161 | 162 | 163 | 164 | Removes elements that satisfy a predicate 165 | 166 | Predicate to check 167 | Number of elements removed 168 | 169 | 170 | 171 | Clears elements from this set 172 | 173 | 174 | 175 | 176 | Checks whether an element is in this set 177 | 178 | Hash index of element 179 | Hash code of element 180 | Element to check for 181 | True if element is present and false otherwise 182 | 183 | 184 | 185 | Checks whether this set contains an element 186 | 187 | Element to check for 188 | True if element is present and false otherwise 189 | 190 | 191 | 192 | Gets a copy of the current set 193 | 194 | Copy of the current set 195 | 196 | 197 | 198 | Copies elements in this set into an array 199 | 200 | Array into which elements should be copied 201 | 202 | 203 | 204 | Copies elements in this set into an array 205 | 206 | Array into which elements should be copied 207 | Index in array at which copying should begin 208 | 209 | 210 | 211 | Copies elements in this set into an array 212 | 213 | Array into which elements should be copied 214 | Index in array at which copying should begin 215 | Maximum number of element to be copied 216 | 217 | 218 | 219 | Converts the set to an array 220 | 221 | Array of elements 222 | 223 | 224 | 225 | Saves this set to disk 226 | 227 | Path to save to 228 | Function from elements to strings 229 | 230 | 231 | 232 | Resizes the set to accommodate the number of elements 233 | 234 | 235 | 236 | 237 | Gets a hash code and index for an element 238 | 239 | Element to get hash code and index for 240 | Maximum hash index that should be returned 241 | Hash code for element 242 | Hash index for element 243 | 244 | 245 | 246 | Equals operator override 247 | 248 | First set 249 | Second set 250 | True if sets are equal and false otherwise 251 | 252 | 253 | 254 | Not equal operator override 255 | 256 | First set 257 | Second set 258 | True if sets are equal and false otherwise 259 | 260 | 261 | 262 | Checks whether or not this set is identical to another 263 | 264 | Set to compare this one to 265 | True if sets are identical, false otherwise 266 | 267 | 268 | 269 | Gets hash code for this set 270 | 271 | Hash code for this set 272 | 273 | 274 | 275 | Gets number of elements in set 276 | 277 | 278 | 279 | 280 | 281 | Intersects the current set with another, removing elements from the current set that are not in the other. 282 | 283 | Set to intersect the current one with 284 | 285 | 286 | 287 | Gets Dice overlap coefficient with another set 288 | 289 | Other set 290 | Dice overlap coefficient 291 | 292 | 293 | 294 | Gets enumerator for this set 295 | 296 | Enumerator for this set 297 | 298 | 299 | 300 | Gets enumerator for this set 301 | 302 | Enumerator for this set 303 | 304 | 305 | 306 | Gets enumerator for this set 307 | 308 | Enumerator for this set 309 | 310 | 311 | 312 | Gets or sets whether or not this set is read-only (default: false) 313 | 314 | 315 | 316 | 317 | Gets or sets whether or not to throw exceptions when duplicate elements are added to the set (default: true) 318 | 319 | 320 | 321 | 322 | Gets or sets whether or not to throw exceptions when elements are not removed (default: true) 323 | 324 | 325 | 326 | 327 | Gets the number of elements in this set 328 | 329 | 330 | 331 | 332 | A single slot of element storage 333 | 334 | 335 | 336 | 337 | Element in slot 338 | 339 | 340 | 341 | 342 | Hash code of element in slot 343 | 344 | 345 | 346 | 347 | Index of next slot whose element hash code collided with the current one 348 | 349 | 350 | 351 | 352 | Whether the slot is filled 353 | 354 | 355 | 356 | 357 | Represents an enumerator over a Set object 358 | 359 | 360 | 361 | 362 | Constructor 363 | 364 | Set to iterate over 365 | 366 | 367 | 368 | Moves to the next element in the set 369 | 370 | True if move was successful and false otherwise 371 | 372 | 373 | 374 | Disposes the current enumerator 375 | 376 | 377 | 378 | 379 | Makes sure the state of the enumerated set hasn't changed 380 | 381 | 382 | 383 | 384 | Not supported 385 | 386 | 387 | 388 | 389 | Gets the current element in the enumeration 390 | 391 | 392 | 393 | 394 | Gets the current element in the enumeration 395 | 396 | 397 | 398 | 399 | Provides helper functionality for setting the capacity 400 | 401 | 402 | 403 | 404 | Checks whether an integer is prime 405 | 406 | Integet to check 407 | True if integer is prime, false otherwise 408 | 409 | 410 | 411 | Calculates the next prime number larger than a given number 412 | 413 | Number 414 | Next prime number greater than given number 415 | 416 | 417 | 418 | Gets the next capacity larger than a given capacity 419 | 420 | Current capacity 421 | Next capacity larger than a given capacity 422 | 423 | 424 | 425 | Provides permutations of a sequence of items 426 | 427 | Type of items to permute 428 | 429 | 430 | 431 | Constructor 432 | 433 | Items to permute 434 | Length of permutation to return (-1 for all permutations) 435 | 436 | 437 | 438 | Gets enumerator over permutations of items 439 | 440 | Enumerator over permutations of items 441 | 442 | 443 | 444 | Represents an indexed item 445 | 446 | 447 | 448 | 449 | Constructor 450 | 451 | Index of item 452 | 453 | 454 | 455 | Gets the index for an item 456 | 457 | 458 | 459 | 460 | Represents an indexable set 461 | 462 | Type of items to store 463 | Type of index to use on items 464 | 465 | 466 | 467 | Constructor 468 | 469 | Initial capacity 470 | 471 | 472 | 473 | Adds an item 474 | 475 | Item to add 476 | True if item was new 477 | 478 | 479 | 480 | Adds a range of items 481 | 482 | Items to add 483 | 484 | 485 | 486 | Gets item by index 487 | 488 | Index of item to fetch 489 | Item 490 | 491 | 492 | 493 | Tries to get an item for an index 494 | 495 | Index 496 | Item 497 | True if item was found and false otherwise 498 | 499 | 500 | 501 | Removes an item from this set 502 | 503 | Item to remove 504 | 505 | 506 | 507 | Gets enumerator over items 508 | 509 | 510 | 511 | 512 | 513 | Gets enumerator over items 514 | 515 | 516 | 517 | 518 | 519 | Gets the item for an index 520 | 521 | Index of item to get 522 | Item 523 | 524 | 525 | 526 | Gets the number of items in this set 527 | 528 | 529 | 530 | 531 | -------------------------------------------------------------------------------- /lib/LAIR.Extensions.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zacg/WordNetAPI/0b264294e508d3a27a950bb9a64fb5663770fd2f/lib/LAIR.Extensions.dll -------------------------------------------------------------------------------- /lib/LAIR.IO.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zacg/WordNetAPI/0b264294e508d3a27a950bb9a64fb5663770fd2f/lib/LAIR.IO.dll -------------------------------------------------------------------------------- /lib/LAIR.IO.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | LAIR.IO 5 | 6 | 7 | 8 | 9 | Provides convenience routines for network IO 10 | 11 | 12 | 13 | 14 | Gets IP addresses associated with the local host 15 | 16 | 17 | 18 | 19 | 20 | Represents a stream of text, the lines of which can be searched with a binary search algorithm. Any type of stream can be used 21 | allowing searches on-disk (e.g., using FileStream) or in-memory (e.g., using MemoryStream). 22 | 23 | 24 | 25 | 26 | Represents a text stream, the lines of which can be searched. 27 | 28 | 29 | 30 | 31 | Constructor 32 | 33 | Stream to search 34 | 35 | 36 | 37 | Searches for a key 38 | 39 | Key to search for 40 | Line matching key, or null if key was not found 41 | 42 | 43 | 44 | Searches for a key within a specified byte range 45 | 46 | Key to search for 47 | Start of byte range 48 | End of byte range 49 | Line matching key 50 | 51 | 52 | 53 | Checks the search range 54 | 55 | Start of range 56 | End of range 57 | 58 | 59 | 60 | Closes this search stream and releases all resources 61 | 62 | 63 | 64 | 65 | Re-initializes this search stream with a new stream 66 | 67 | Stream to initialize with 68 | 69 | 70 | 71 | Gets the stream searched by this instance 72 | 73 | 74 | 75 | 76 | Constructor 77 | 78 | Stream to search 79 | Search comparison function 80 | 81 | 82 | 83 | Constructor 84 | 85 | Path to file for which to create a search stream 86 | Search comparison function 87 | 88 | 89 | 90 | Searches a range in the stream 91 | 92 | Search key 93 | Start byte position of search 94 | End byte position of search 95 | Desired line, or null if none was found 96 | 97 | 98 | 99 | Delegate for functions that direct the search by comparing the search key to the current line. The return value 100 | of such a function should be -1 if the search key (first parameter) comes before the current line (second 101 | parameter), 1 if the search key comes after the current line, and 0 if the current line is the desired line. 102 | 103 | Search key 104 | Current line in the stream 105 | Described in summary 106 | 107 | 108 | 109 | Reads lines from a file after storing them in memory. Can be used more than once without reinitializing. 110 | 111 | 112 | 113 | 114 | Reads lines from a file 115 | 116 | 117 | 118 | 119 | Constructor 120 | 121 | Path to file to count 122 | 123 | 124 | 125 | Closes this reader 126 | 127 | 128 | 129 | 130 | Gets an enumerator over lines in the file 131 | 132 | Enumerator over lines 133 | 134 | 135 | 136 | Gets an enumerator over lines in the file 137 | 138 | Enumerator over lines 139 | 140 | 141 | 142 | Gets the path to the file to read 143 | 144 | 145 | 146 | 147 | Gets the number of lines in the file 148 | 149 | 150 | 151 | 152 | Constructor 153 | 154 | Path to file to count 155 | Whether or not to allow blank lines 156 | Whether or not to trim lines when counting. Can only be true if allowBlank is false. 157 | 158 | 159 | 160 | Closes this reader and releases all memory 161 | 162 | 163 | 164 | 165 | Gets an enumerator over lines in this reader 166 | 167 | Enumerator over lines in this reader 168 | 169 | 170 | 171 | Gets the number of lines in the file 172 | 173 | 174 | 175 | 176 | Reads lines from a file without storing them in memory. Can be used more than once without reinitializing. 177 | 178 | 179 | 180 | 181 | Constructor 182 | 183 | Path to file to count 184 | 185 | 186 | 187 | Closes the file read by this reader 188 | 189 | 190 | 191 | 192 | Gets an enumerator over lines in the file 193 | 194 | Enumerator over lines in the file 195 | 196 | 197 | 198 | Gets the number of lines in the file 199 | 200 | 201 | 202 | 203 | Represents a text stream, the lines of which can be searched with a hashing search algorithm. In the hashing search algorithm, 204 | each line is mapped to a hash code. The hash code for a line is mapped to the line's position in the file. To check whether a 205 | line is present, one need only compute the hash of the queried line and read the file at the given position. Because of hash 206 | collisions, one might need to read multiple lines. 207 | 208 | 209 | 210 | 211 | Constructor 212 | 213 | Stream of text to search 214 | Hash provider 215 | Match provider 216 | 217 | 218 | 219 | Constructor 220 | 221 | Path to file for which to create a search stream 222 | Hash provider 223 | Match provider 224 | 225 | 226 | 227 | Initializes this search using the current stream 228 | 229 | 230 | 231 | 232 | Re-initializes this search stream with a new stream 233 | 234 | Stream to initialize with 235 | 236 | 237 | 238 | Searches for a key within a specified byte range 239 | 240 | Key to search for 241 | Start of byte range 242 | End of byte range 243 | Line matching key 244 | 245 | 246 | 247 | Closes this search and releases all resources 248 | 249 | 250 | 251 | 252 | Types of hashes requested 253 | 254 | 255 | 256 | 257 | Requesting a hash to create the initial index 258 | 259 | 260 | 261 | 262 | Requesting a hash to perform a search 263 | 264 | 265 | 266 | 267 | Delegate for functions that provide hash codes 268 | 269 | Object to get hash code for 270 | Type of hashing action performed 271 | Hash code (output) 272 | True if hash should be used, false otherwise 273 | 274 | 275 | 276 | Delegate for functions that check whether a line matches the search criteria 277 | 278 | Key being searched for 279 | Current line in file 280 | True if line matches, false otherwise 281 | 282 | 283 | 284 | Provides additional filesystem routines 285 | 286 | 287 | 288 | 289 | Gets the number of lines in a file 290 | 291 | Path to file to count 292 | Whether or not to allow blank lines 293 | Whether or not to trim lines when counting 294 | Number of lines in file 295 | 296 | 297 | 298 | Gets the line ending used for a file - either "\r", "\n", or "\r\n", or "" if no line ending is found 299 | 300 | Path to file 301 | Line ending 302 | 303 | 304 | 305 | Prompts the user for a path to open 306 | 307 | Title of window 308 | Selected path, or null for no file 309 | 310 | 311 | 312 | Prompts the user for a path to open 313 | 314 | Title of window 315 | Initial directory 316 | Selected path, or null for no file 317 | 318 | 319 | 320 | Prompts the user for a path to open 321 | 322 | Title of window 323 | Initial directory 324 | File filter to display 325 | Selected path, or null for no file 326 | 327 | 328 | 329 | Prompts the user for a path to save to 330 | 331 | Title of window 332 | Selected path, or null for no file 333 | 334 | 335 | 336 | Samples lines from a file 337 | 338 | Path to input file 339 | Path to output file 340 | Percentage to sample. Sampling is done randomly, so the exact number of sampled lines might differ slightly for small sample sizes. 341 | 342 | 343 | 344 | Provides additional filesystem routines 345 | 346 | 347 | 348 | 349 | Gets numbered list of paths in a directory. Each path in given directory must contain exactly one integer. 350 | 351 | Path to directory 352 | Pattern for files to match 353 | File endings to exclude from the returned paths 354 | List of paths, indexed by number 355 | 356 | 357 | 358 | Combines numbered files into a single file 359 | 360 | Path to directory containing files to combine 361 | Path to output file 362 | Whether or not to ignore blank lines 363 | 364 | 365 | 366 | Finds a directory 367 | 368 | Directory to search 369 | Pattern to search for 370 | Directory path 371 | 372 | 373 | 374 | Finds a file 375 | 376 | Directory to search 377 | Pattern to search for 378 | File path 379 | 380 | 381 | 382 | Gets the path to a new temporary directory, which will be created before this method returns. 383 | 384 | Path to temporary directory 385 | 386 | 387 | 388 | Prompts the user for a directory 389 | 390 | Description in browser 391 | Directory, or null if none 392 | 393 | 394 | 395 | Prompts the user for a directory 396 | 397 | Description in browser 398 | Starting directory 399 | Directory, or null if none 400 | 401 | 402 | 403 | Provides line-based access to a text stream 404 | 405 | 406 | 407 | 408 | Constructor 409 | 410 | Path to file to search 411 | Path to file that stores the line position cache. Computing line positions can be a time consuming 412 | process. The good news is that it only needs to be done once and can then be stored. This file stores the line positions. 413 | 414 | 415 | 416 | Constructor 417 | 418 | Path to file to search 419 | 420 | 421 | 422 | Searches for a line 423 | 424 | Line to search for 425 | Start byte 426 | End byte 427 | Line 428 | 429 | 430 | 431 | Gets the number of lines in the text stream 432 | 433 | 434 | 435 | 436 | -------------------------------------------------------------------------------- /lib/LAIR.MachineLearning.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zacg/WordNetAPI/0b264294e508d3a27a950bb9a64fb5663770fd2f/lib/LAIR.MachineLearning.dll -------------------------------------------------------------------------------- /lib/LAIR.Misc.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zacg/WordNetAPI/0b264294e508d3a27a950bb9a64fb5663770fd2f/lib/LAIR.Misc.dll -------------------------------------------------------------------------------- /lib/LAIR.Morphology.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zacg/WordNetAPI/0b264294e508d3a27a950bb9a64fb5663770fd2f/lib/LAIR.Morphology.dll -------------------------------------------------------------------------------- /lib/LAIR.Morphology.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | LAIR.Morphology 5 | 6 | 7 | 8 | 9 | Tags parts of speech 10 | 11 | 12 | 13 | 14 | Tags a list of tokens 15 | 16 | Tokens to tag 17 | List of categories, one for each tag 18 | 19 | 20 | 21 | Uses a discriminative HMM to tag words 22 | 23 | 24 | 25 | 26 | HMM-based POS tagger 27 | 28 | 29 | 30 | 31 | Tags tokens using an HMM 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | Trains the HMM. See the documentation in the implementing class for the format of the training file. 40 | 41 | 42 | 43 | 44 | 45 | Constructor 46 | 47 | Classifier to use 48 | 49 | 50 | 51 | Trains the tagger. The format of the training file should be: one line of true state IDs, followed by a corresponding line of true observations. All IDs and observations should be separated by a space. 52 | 53 | 54 | 55 | 56 | 57 | Tags tokens 58 | 59 | 60 | 61 | 62 | 63 | 64 | Provides training sequences 65 | 66 | 67 | 68 | 69 | Constructor 70 | 71 | Training path 72 | 73 | 74 | 75 | Moves to the next state and observation sequence 76 | 77 | 78 | 79 | 80 | 81 | Gets current sequence 82 | 83 | 84 | 85 | 86 | Gets the current state and observation sequence 87 | 88 | 89 | 90 | Stemmer, implementing the Porter Stemming Algorithm 91 | 92 | The Stemmer class transforms a word into its root form. The input 93 | word can be provided a character at time (by calling add()), or at once 94 | by calling one of the various stem(something) methods. 95 | 96 | 97 | 98 | Stems words 99 | 100 | 101 | 102 | 103 | Constructor 104 | 105 | Stop word handler to apply, or null for no stop word handling. 106 | Maximum size of the stem cache 107 | Whether or not to consult the head word list when stemming 108 | 109 | 110 | 111 | Stems a word 112 | 113 | Word to stem 114 | Stem of word 115 | 116 | 117 | 118 | Adds a word/stem pair to the stem cache 119 | 120 | Word to add 121 | Stem to add 122 | 123 | 124 | 125 | Gets the suffix for a word 126 | 127 | 128 | 129 | 130 | 131 | 132 | Gets the stop word handler for this stemmer 133 | 134 | 135 | 136 | 137 | Gets or sets whether or not to consult the headword list 138 | 139 | 140 | 141 | 142 | Constructor 143 | 144 | 145 | 146 | 147 | 148 | 149 | Add a character to the word being stemmed. When you are finished 150 | adding characters, you can call stem(void) to stem the word. 151 | 152 | 153 | Adds wLen characters to the word being stemmed contained in a portion 154 | of a char[] array. This is like repeated calls of add(char ch), but 155 | faster. 156 | 157 | 158 | After a word has been stemmed, it can be retrieved by toString(), 159 | or a reference to the internal buffer can be retrieved by getResultBuffer 160 | and getResultLength (which is generally more efficient.) 161 | 162 | 163 | Returns the length of the word resulting from the stemming process. 164 | 165 | 166 | Returns a reference to a character buffer containing the results of 167 | the stemming process. You also need to consult getResultLength() 168 | to determine the length of the result. 169 | 170 | 171 | 172 | Stem the word placed into the Stemmer buffer through calls to add(). 173 | Returns true if the stemming process resulted in a word different 174 | from the input. You can retrieve the result with 175 | getResultLength()/getResultBuffer() or toString(). 176 | 177 | Word to stem 178 | Stem of word 179 | 180 | 181 | 182 | Resets the stemmer 183 | 184 | 185 | 186 | 187 | Runs Porter stemming algorithm 188 | 189 | 190 | 191 | 192 | Gets the result of stemming 193 | 194 | 195 | 196 | 197 | 198 | HMM-based part of speech tagger 199 | 200 | 201 | 202 | 203 | Constructor 204 | 205 | Model directory for tagger 206 | 207 | 208 | 209 | Trains this tagger with data contained in a text file. The format of the file must be as follows: "word1 tag1 word2 tag2" etc. 210 | 211 | Path to training file 212 | 213 | 214 | 215 | Tags a list of tokens 216 | 217 | Tokens to tag 218 | List of categories, one for each tag 219 | 220 | 221 | 222 | Gets the path to the transition probabilities file 223 | 224 | 225 | 226 | 227 | Gets the path to the observation probabilities file 228 | 229 | 230 | 231 | 232 | Gets the path to the known words file 233 | 234 | 235 | 236 | 237 | Keeps a list of head words 238 | 239 | 240 | 241 | 242 | Gets whether or not a word is a head word 243 | 244 | String to check 245 | True if given word is a head word, false otherwise 246 | 247 | 248 | 249 | Initializes head word list 250 | 251 | 252 | 253 | 254 | Discriminative HMM-based POS tagger feature extraction 255 | 256 | 257 | 258 | 259 | Constructor 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | Gets name for a feature 270 | 271 | Feature to get name for 272 | Whether or not to get an abbreviated name 273 | Feature name 274 | 275 | 276 | 277 | Gets features 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | Features 286 | 287 | 288 | 289 | 290 | -------------------------------------------------------------------------------- /lib/LAIR.ResourceAPIs.GraphViz.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zacg/WordNetAPI/0b264294e508d3a27a950bb9a64fb5663770fd2f/lib/LAIR.ResourceAPIs.GraphViz.dll -------------------------------------------------------------------------------- /lib/LAIR.ResourceAPIs.GraphViz.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | LAIR.ResourceAPIs.GraphViz 5 | 6 | 7 | 8 | 9 | Complete form for viewing GraphViz items 10 | 11 | 12 | 13 | 14 | Required designer variable. 15 | 16 | 17 | 18 | 19 | Clean up any resources being used. 20 | 21 | true if managed resources should be disposed; otherwise, false. 22 | 23 | 24 | 25 | Required method for Designer support - do not modify 26 | the contents of this method with the code editor. 27 | 28 | 29 | 30 | 31 | Constructor 32 | 33 | 34 | 35 | 36 | Constructor 37 | 38 | Number of states nodes can be put into via clicking 39 | 40 | 41 | 42 | Occurs when a node is clicked 43 | 44 | 45 | 46 | 47 | Gets or sets the graph path 48 | 49 | 50 | 51 | 52 | Viewer for GraphViz items 53 | 54 | 55 | 56 | 57 | Constructor 58 | 59 | 60 | 61 | 62 | Constructor 63 | 64 | Number of states the nodes in this viewer can be put into via clicking 65 | 66 | 67 | 68 | Views a graph 69 | 70 | Path to graph file 71 | 72 | 73 | 74 | Draws edges in the viewer 75 | 76 | 77 | 78 | 79 | 80 | Clears this viewer control 81 | 82 | 83 | 84 | 85 | Required designer variable. 86 | 87 | 88 | 89 | 90 | Clean up any resources being used. 91 | 92 | true if managed resources should be disposed; otherwise, false. 93 | 94 | 95 | 96 | Required method for Designer support - do not modify 97 | the contents of this method with the code editor. 98 | 99 | 100 | 101 | 102 | Occurs when a node is clicked 103 | 104 | 105 | 106 | 107 | Gets or sets the number of node states (default: 2) 108 | 109 | 110 | 111 | 112 | Delegate for functions that handle node clicks 113 | 114 | 115 | 116 | 117 | 118 | Wrapper for Dot executable 119 | 120 | 121 | 122 | 123 | Constructor 124 | 125 | 126 | 127 | 128 | Constructor 129 | 130 | Path to Dot executable 131 | 132 | 133 | 134 | Creates a graph from an entity 135 | 136 | Entity to create graph for 137 | Output format 138 | Path to created graph file 139 | 140 | 141 | 142 | Creates a graph from an entity 143 | 144 | Entity to create graph for 145 | Output format 146 | Output path 147 | 148 | 149 | 150 | Gets or sets the path to the Dot executable 151 | 152 | 153 | 154 | 155 | Output formats 156 | 157 | 158 | 159 | 160 | Jpeg 161 | 162 | 163 | 164 | 165 | PNG 166 | 167 | 168 | 169 | 170 | Gif 171 | 172 | 173 | 174 | 175 | Encapsulated postscript 176 | 177 | 178 | 179 | 180 | Plain-text layout 181 | 182 | 183 | 184 | 185 | Output the original Dot specification 186 | 187 | 188 | 189 | 190 | Interface for classes that can be graphed using the GraphViz suite 191 | 192 | 193 | 194 | 195 | Gets specification of graph using the Dot language 196 | 197 | 198 | 199 | 200 | 201 | Represents a clickable node in a graph 202 | 203 | 204 | 205 | 206 | Constructor 207 | 208 | ID of node 209 | Text to display on this node 210 | Number of states the node can be put into via clicking it 211 | 212 | 213 | 214 | Required designer variable. 215 | 216 | 217 | 218 | 219 | Clean up any resources being used. 220 | 221 | true if managed resources should be disposed; otherwise, false. 222 | 223 | 224 | 225 | Required method for Designer support - do not modify 226 | the contents of this method with the code editor. 227 | 228 | 229 | 230 | 231 | Gets or sets the list of adjacent nodes for this node 232 | 233 | 234 | 235 | 236 | Gets or sets the original text for this node 237 | 238 | 239 | 240 | 241 | Gets or sets the zero-based state for this node 242 | 243 | 244 | 245 | 246 | Gets or sets the ID for this node 247 | 248 | 249 | 250 | 251 | Gets or sets the location (center) of this node 252 | 253 | 254 | 255 | 256 | -------------------------------------------------------------------------------- /lib/LAIR.ResourceAPIs.MySQL.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zacg/WordNetAPI/0b264294e508d3a27a950bb9a64fb5663770fd2f/lib/LAIR.ResourceAPIs.MySQL.dll -------------------------------------------------------------------------------- /lib/LAIR.ResourceAPIs.MySQL.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | LAIR.ResourceAPIs.MySQL 5 | 6 | 7 | 8 | 9 | Provides utility database functionality 10 | 11 | 12 | 13 | 14 | Gets concept IDs for a query 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | Represents a pool of connections to the MySQL server 24 | 25 | 26 | 27 | 28 | Constructor 29 | 30 | Base connection 31 | 32 | 33 | 34 | Constructor 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | Tests this connection pool 45 | 46 | 47 | 48 | 49 | Returns a connection to the pool 50 | 51 | 52 | 53 | 54 | 55 | Returns the connection associated with a command to the pool 56 | 57 | 58 | 59 | 60 | 61 | Creates a new command associated with an open connection 62 | 63 | 64 | 65 | 66 | 67 | 68 | Executes a non-query command 69 | 70 | Text of command 71 | 72 | 73 | 74 | Gets a new open connection to the server 75 | 76 | 77 | 78 | 79 | Provides convenience methods for databases 80 | 81 | 82 | 83 | 84 | Gets tables 85 | 86 | 87 | 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /lib/LAIR.XML.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zacg/WordNetAPI/0b264294e508d3a27a950bb9a64fb5663770fd2f/lib/LAIR.XML.dll -------------------------------------------------------------------------------- /lib/LAIR.XML.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | LAIR.XML 5 | 6 | 7 | 8 | 9 | Nice wrapper for parsing XML 10 | 11 | 12 | 13 | 14 | Escapes an attribute name/value pair 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | Escapes an element name/value pair 23 | 24 | 25 | 26 | 27 | 28 | XML reader doing the parsing 29 | 30 | 31 | 32 | 33 | Underlying stream containing the XML being parsed 34 | 35 | 36 | 37 | 38 | Constructor 39 | 40 | XML to parse 41 | 42 | 43 | 44 | Constructor 45 | 46 | Stream to read XML from 47 | 48 | 49 | 50 | Constructs the current XML parser from a stream 51 | 52 | Stream to read XML from 53 | 54 | 55 | 56 | Resets the XML parser to the beginning of the XML stream 57 | 58 | 59 | 60 | 61 | Close the parser and release all held resources 62 | 63 | 64 | 65 | 66 | Parse supplied XML in a SAX-style manner, firing events 67 | 68 | 69 | 70 | 71 | Get an attribute value for an element in the stream 72 | 73 | Element name for which to get attribute value 74 | Attribute name for which to get value 75 | 76 | 77 | 78 | 79 | Get element text for a subsequent element in the stream 80 | 81 | Element name for which to get text 82 | 83 | 84 | 85 | 86 | Get XML representation (including markup) of a subsequent element and 87 | all its children elements 88 | 89 | Element to get outer XML for 90 | 91 | 92 | 93 | 94 | Get XML representation (including markup) for the current node excluding 95 | the current node 96 | 97 | 98 | 99 | 100 | 101 | 102 | Skip to an element in the stream, or move back to the current element if 103 | we're on an attribute node. 104 | 105 | Name of element to move to 106 | True if element is located, false otherwise. 107 | 108 | 109 | 110 | Skip to an element that satisfies a set of constraints 111 | 112 | Element to skip to 113 | Attribute constraints 114 | 115 | 116 | 117 | 118 | Move to an element node 119 | 120 | Whether or not to stay on current node if it is an element node 121 | Name of element moved to 122 | 123 | 124 | 125 | Gets the attribute names for a given element 126 | 127 | Element to get attributes for 128 | Attributes 129 | 130 | 131 | 132 | Fired when an element is encountered 133 | 134 | 135 | 136 | 137 | Fired when an element has ended 138 | 139 | 140 | 141 | 142 | Fired when text is encountered 143 | 144 | 145 | 146 | 147 | Delegate for start element parse events 148 | 149 | Name of element 150 | Attributes of element 151 | 152 | 153 | 154 | Delegate for end element parse events 155 | 156 | Element that has ended 157 | 158 | 159 | 160 | Delegate for text parse events 161 | 162 | Text encountered 163 | 164 | 165 | 166 | -------------------------------------------------------------------------------- /lib/MySql.Data.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zacg/WordNetAPI/0b264294e508d3a27a950bb9a64fb5663770fd2f/lib/MySql.Data.dll -------------------------------------------------------------------------------- /resources/.sorted_for_dot_net: -------------------------------------------------------------------------------- 1 | This file serves no purpose other than to indicate that the WordNet distribution data in the current directory has been sorted for use by the .NET API. 2 | -------------------------------------------------------------------------------- /resources/adv.exc: -------------------------------------------------------------------------------- 1 | best well 2 | better well 3 | deeper deeply 4 | farther far 5 | further far 6 | harder hard 7 | hardest hard 8 | -------------------------------------------------------------------------------- /resources/cousin.exc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zacg/WordNetAPI/0b264294e508d3a27a950bb9a64fb5663770fd2f/resources/cousin.exc -------------------------------------------------------------------------------- /resources/dbfiles/adj.ppl: -------------------------------------------------------------------------------- 1 | ($RCSfile: adj.ppl,v $ $Revision: 9.0 $ $Date: 2011/02/06 21:17:50 $ $Name: $ $State: Rel $) 2 | (Copyright (c) 1994-2011 by Princeton University) 3 | 4 | (adj.ppl) 5 | 6 | { [ avenged, unavenged,! verb.competition:avenge,< ] (for which vengeance has been taken; "an avenged injury") } 7 | { [ unavenged, avenged,! verb.competition:avenge,< ] (for which vengeance has not been taken; "an unavenged murder") } 8 | { [ beaten, verb.creation:beat,< ] (formed or made thin by hammering; "beaten gold") } 9 | { [ calibrated, verb.contact:calibrate2,< ] [ graduated, verb.contact:calibrate2,< ] (marked with or divided into degrees; "a calibrated thermometer") } 10 | { [ cantering, verb.motion:canter,< ] (riding at a gait between a trot and a gallop; "the cantering soldiers") } 11 | { [ collected, uncollected,! verb.contact:collect,< ] [ gathered, ungathered,! verb.contact:gather,< ] (brought together in one place; "the collected works of Milton"; "the gathered folds of the skirt") } 12 | { [ uncollected, collected,! verb.contact:collect,< ] [ ungathered, gathered,! verb.contact:gather,< ] (not brought together in one place; "uncollected garbage in the streets") } 13 | { [ contested, verb.communication:contest,< uncontested,! ] (disputed or made the object of contention or competition; "a contested election") } 14 | { [ uncontested, verb.communication:contest,< contested,! ] (not disputed and not made the object of contention or competition; "uncontested authority") } 15 | { [ corbelled, verb.possession:corbel,< ] (having a corbel) } 16 | { [ elapsed, verb.motion:elapse,< ] ((of time) having passed or slipped by; "elapsed time") } 17 | { [ forced, verb.motion:force,< ] (produced by or subjected to forcing; "forced-air heating"; "furnaces of the forced-convection type"; "forced convection in plasma generators") } 18 | { [ hammered, verb.creation:hammer,< ] (shaped or worked with a hammer and often showing hammer marks; "a bowl of hammered brass") } 19 | { [ hand-held, verb.contact:hold,< ] [ handheld, verb.contact:hold,< ] (small and light enough to be operated while you hold it in your hands; "a hand-held computer") } 20 | { [ held, verb.social:hold14,< ] (occupied or in the control of; often used in combination; "enemy-held territory") } 21 | { [ streaming, verb.body:stream,< ] (exuding a bodily fluid in profuse amounts; "his streaming face"; "her streaming eyes") } 22 | { [ surmounted, verb.stative:surmount,< ] (having something on top; "columns surmounted by statues") } 23 | { [ filled, unfilled,! verb.consumption:fill2,< ] (of purchase orders that have been filled) } 24 | { [ unfilled, filled,! verb.consumption:fill2,< ] (of purchase orders that have not been filled) } 25 | { [ fitted, verb.stative:fit2,< ] (being the right size and shape to fit as desired; "a fitted overcoat"; "he quickly assembled the fitted pieces") } 26 | { [ hypophysectomized, verb.change:hypophysectomize,< ] [ hypophysectomised, verb.change:hypophysectomise,< ] (having the pituitary gland removed by surgery; "hypophysectomized tadpoles") } 27 | { [ malted, unmalted,! verb.change:malt2,< ] (of grain that has been converted into malt; "malted barley") } 28 | { [ unmalted, malted,! verb.change:malt2,< ] (of grain that has not been converted into malt; "unmalted barley") } 29 | { [ marched_upon, verb.motion:march1,< ] (being or having been trodden or marched on) } 30 | { [ mercerized, verb.change:mercerize,< ] [mercerised, verb.change:mercerize,<] (of cotton thread that has been treated with sodium hydroxide to shrink it and increase its luster and affinity for dye; "mercerized cotton") } 31 | { [ mounded_over, verb.creation:mound_over,< ] (having a wound formed over it) } 32 | { [ operating, verb.contact:operate3,< ] (involved in a kind of operation; "the operating conditions of the oxidation pond") } 33 | { [ oxidized, verb.change:oxidize,< ] [ oxidised, verb.change:oxidise,< ] (combined with or having undergone a chemical reaction with oxygen; "the oxidized form of iodine") } 34 | { [ parked, verb.contact:park,< ] (that have been left; "there were four parked cars across the street") } 35 | { [ pasteurized, verb.change:pasteurize,< ] [ pasteurised, verb.change:pasteurise,< ] (having been subjected to pasteurization in order to halt fermentation) } 36 | { [ unpasteurized, verb.change:pasteurize,< ] [ unpasteurised, verb.change:pasteurise,< ] (not having undergone pasteurization) } 37 | { [ penciled, verb.creation:pencil,<] [ pencilled, verb.creation:pencil,< ] (drawn or written with a pencil; "a penciled sketch"; "the penciled message") } 38 | { [ pitched, verb.change:pitch,< ] ((of sound) set to a certain pitch or key; usually used as a combining form; "high-pitched") } 39 | { [ played, verb.competition:play,< ] noun.act:game,;c ((of games) engaged in; "the loosely played game") } 40 | { [ plugged, verb.change:plug4,< ] ((of a coin) altered by the insertion of a plug of base metal) } 41 | { [ posed, unposed,! verb.perception:pose,< ] (arranged for pictorial purposes) } 42 | { [ unposed, posed,! verb.perception:pose,< ] (not arranged for pictorial purposes; "unposed photographs") } 43 | { [ posted, verb.communication:post3,< ] (publicly displayed; "the posted speed limit") } 44 | { [ preconceived, verb.creation:conceive,< ] ((of an idea or opinion) formed beforehand; especially without evidence or through prejudice; "certain preconceived notions") } 45 | { [ punishing, verb.social:punish,< ] (resulting in punishment; "the king imposed a punishing tax") } 46 | { [ pursued, verb.motion:pursue,< ] (followed with enmity as if to harm; "running and leaping like a herd of pursued antelopes") } 47 | { [ ranging, verb.motion:range,< ] (wandering freely; "at night in bed...his slowly ranging thoughts...encountered her") } 48 | { [ re-created, verb.creation:re-create,< ] (created anew; "this re-created literalness") } 49 | { [ regenerating, verb.change:regenerate,< ] (that are generating anew; "regenerating fibers") } 50 | { [ ridged, verb.change:ridge,< ] [ carinate, noun.animal:carinate,+ ] carinated, keeled, (having a ridge or shaped like a ridge or suggesting the keel of a ship; "a carinate sepal") } 51 | { [ sanitized, verb.change:sanitize,< ] [ sanitised, verb.change:sanitise,< ] (made sanitary) } 52 | { [ shrieked, verb.communication:shriek,< ] (uttered in a shrill scream as of pain or terror) } 53 | { [ sintered, verb.creation:sinter,< ] (formed into a mass by heat and pressure) } 54 | { [ sluicing, verb.motion:sluice,< ] (pouring from or as if from a sluice; "the sluicing rain") } 55 | { [ spray-dried, verb.change:spray-dry,< ] (dried by bringing a sprayed substance (e.g. milk or soap) into contact with hot air and recovering it in the form of a powder) } 56 | { [ squashed, verb.contact:squash,< ] (that has been violently compressed; "the squashed looking nakedness of the fledgling birds") } 57 | { [ stacked, verb.contact:stack,< ] (arranged in a stack) } 58 | { [ strung, verb.contact:string2,< ] (that is on a string; "keys strung on a red cord") } 59 | { [ sublimed, verb.change:sublime,< ] [ sublimated, verb.change:sublimate,< ] (passing or having passed from the solid to the gaseous state (or vice versa) without becoming liquid) } 60 | { [ thoriated, verb.change:thoriate,< ] [ tittering, verb.body:titter,< ] (being or sounding of nervous or suppressed laughter) } 61 | { [ transpiring, verb.motion:transpire,< ] (that is passing through; "transpiring gas") } 62 | { [ sought, verb.contact:seek,< ] (that is looked for; "the long sought relatives") } 63 | { [ closed-captioned, verb.possession:caption,< ] noun.communication:television,;c (broadcast with captions that are seen only on receivers having special equipment; can be provided for hard-of-hearing viewers) } 64 | { [ saponified, unsaponified,! verb.change:saponify,< ] (converted into soap; "saponified oils") } 65 | { [ unsaponified, saponified,! verb.change:saponify,< ] (not converted into soap; "unsaponified fat") } 66 | -------------------------------------------------------------------------------- /resources/dbfiles/noun.Tops: -------------------------------------------------------------------------------- 1 | ($RCSfile: noun.Tops,v $ $Revision: 9.0 $ $Date: 2011/02/06 21:16:37 $ $Name: $ $State: Rel $) 2 | (Copyright (c) 1988-2011 by Princeton University) 3 | 4 | (noun.Tops) 5 | 6 | { entity, (that which is perceived or known or inferred to have its own distinct existence (living or nonliving)) } 7 | { physical_entity, entity,@ (an entity that has physical existence) } 8 | { [ abstraction, verb.cognition:abstract,+ ] abstract_entity, entity,@ (a general concept formed by extracting common features from specific examples) } 9 | { thing, physical_entity,@ (a separate and self-contained entity) } 10 | { [ object, verb.change:objectify1,+ ] physical_object, physical_entity,@ (a tangible and visible entity; an entity that can cast a shadow; "it was full of rackets, balls and other objects") } 11 | { [ whole, adj.all:undiversified^whole,+ ] [ unit, verb.contact:unify,+ verb.change:unify,+ verb.contact:unitize,+ verb.change:unitize,+ ] object,@ (an assemblage of parts that is regarded as a single entity; "how big is that part compared to the whole?"; "the team is a unit") } 12 | { congener, whole,@ (a whole (a thing or person) of the same kind or category as another; "lard was also used, though its congener, butter, was more frequently employed"; "the American shopkeeper differs from his European congener") } 13 | { living_thing, animate_thing, whole,@ (a living (or once living) entity) } 14 | { [ organism, adj.pert:organismic,+ adj.all:organic2,+ adj.all:organic,+ ] [ being, verb.stative:be1,+ ] living_thing,@ (a living thing that has (or can develop) the ability to act or function independently) } 15 | { [ benthos, adj.pert:benthonic,+ ] organism,@ (organisms (plants and animals) that live at or near the bottom of a sea) } 16 | { dwarf, organism,@ (a plant or animal that is atypically small) } 17 | { heterotroph, organism,@ (an organism that depends on complex organic substances for nutrition) } 18 | { parent, organism,@ (an organism (plant or animal) from which younger ones are obtained) } 19 | { life, living_thing,@ (living things collectively; "the oceans are teeming with life") } 20 | { biont, living_thing,@ (a discrete unit of living matter) } 21 | { [ cell, adj.pert:cellular,+ adj.all:cellular,+ ] living_thing,@ organism,#p noun.cognition:biology,;c ((biology) the basic structural and functional unit of all organisms; they may exist as independent units of life (as in monads) or may form colonies or tissues as in higher plants and animals) } 22 | { causal_agent, [ cause, adj.all:causative^causal,+ verb.creation:cause,+ verb.communication:cause,+ ] causal_agency, physical_entity,@ (any entity that produces an effect or is responsible for events or results) } 23 | { [ person, noun.attribute:personhood,+ verb.cognition:personify,+ ] [ individual, verb.change:individualize,+ ] someone, somebody, [ mortal, adj.all:mortal,+ ] soul, organism,@ causal_agent,@ noun.group:people,#m (a human being; "there was too much for one person to do") } 24 | { [ animal, verb.creation:animalize,+ verb.creation:animalise,+ ] animate_being, [ beast, adj.all:inhumane^beastly,+ adj.all:inhumane^bestial,+ ] brute, [ creature, verb.creation:create,+ ] fauna, organism,@ noun.animal:kingdom_Animalia,#m (a living organism characterized by voluntary movement) } 25 | { [ plant, adj.pert:plantal,+ noun.plant:plantlet,+ verb.contact:plant,+ ] [ flora, adj.pert:floral,+ ] plant_life, organism,@ noun.plant:kingdom_Plantae,#m noun.cognition:botany,;c ((botany) a living organism lacking the power of locomotion) } 26 | { native, noun.Tops:organism,@ (indigenous plants and animals) } 27 | { [ natural_object, artifact,! ] whole,@ (an object occurring naturally; not made by man) } 28 | { [ substance, adj.all:substantial,+ ] matter,@ noun.relation:part,@ (the real physical matter of which a person or thing consists; "DNA is the substance of our genes") } 29 | { substance1, matter,@ (a particular kind or species of matter with uniform properties; "shigella is one of the most toxic substances known to man") } 30 | { matter, physical_entity,@ (that which has mass and occupies space; "physicists study both the nature of matter and the forces which govern it") } 31 | { food, [ nutrient, adj.all:wholesome^nutrient,+ verb.consumption:nutrify,+ ] substance1,@ (any substance that can be metabolized by an animal to give energy and build tissue) } 32 | { nutrient1, substance1,@ (any substance (such as a chemical element or inorganic compound) that can be taken in by a green plant and used in organic synthesis) } 33 | { [ artifact, adj.pert:artifactual,+ natural_object,! ] [ artefact, adj.pert:artefactual,+ ] whole,@ (a man-made object taken as a whole) } 34 | { article, artifact,@ (one of a class of artifacts; "an article of clothing") } 35 | { psychological_feature, abstraction,@ (a feature of the mental life of a living organism) } 36 | { cognition, knowledge, [ noesis, adj.all:mental^noetic,+ ] psychological_feature,@ (the psychological result of perception and learning and reasoning) } 37 | { [ motivation, adj.pert:motivational,+ verb.creation:motivate,+ ] [ motive, adj.all:causative^motive2,+ verb.creation:motivate,+ ] need, psychological_feature,@ (the psychological feature that arouses an organism to action toward a desired goal; the reason for the action; that which gives purpose and direction to behavior; "we did not understand his motivation"; "he acted with the best of motives") } 38 | { attribute, abstraction,@ (an abstraction belonging to or characteristic of an entity) } 39 | { state, attribute,@ (the way something is with respect to its main attributes; "the current state of knowledge"; "his state of health"; "in a weak financial state") } 40 | { [ feeling, verb.emotion:feel,+ ] state,@ (the experiencing of affective and emotional states; "she had a feeling of euphoria"; "he had terrible feelings of guilt"; "I disliked him and the feeling was mutual") } 41 | { [ location, verb.stative:locate,+ verb.possession:locate1,+ verb.possession:locate,+ verb.change:locate,+ ] object,@ space,#p (a point or extent in space) } 42 | { shape, form, attribute,@ (the spatial arrangement of something as distinct from its substance; "geometry is the mathematical science of shape") } 43 | { time, attribute,@ (the continuum of experience in which events pass from the future through the present to the past; "he waited for along time"; "it took some time before he got an answer"; "time flies like an arrow") } 44 | { [ space, adj.pert:spacial,+ adj.pert:spatial,+ ] infinite, attribute,@ (the unlimited expanse in which everything is located; "they tested his ability to locate objects in space"; "the boundless regions of the infinite") } 45 | { absolute_space, space,@ (physical space independent of what occupies it) } 46 | { phase_space, space,@ noun.cognition:physics,;c ((physics) an ideal space in which the coordinate dimensions represent the variables that are required to describe a system or substance; "a multidimensional phase space") } 47 | { event, psychological_feature,@ (something that happens at a given place and time) } 48 | { process, physical_process, noun.Tops:physical_entity,@ (a sustained phenomenon or one marked by gradual changes through a series of states; "events now in process"; "the process of calcification begins later for boys than for girls") } 49 | { [ act, verb.creation:actuate2,+ verb.creation:actuate,+ verb.social:act,+ ] deed, human_action, human_activity, event,@ (something that people do or cause to happen) } 50 | { [ group, verb.competition:group,+ verb.cognition:group,+ ] grouping, abstraction,@ (any number of entities (members) considered as a unit) } 51 | { [ relation, noun.state:relationship,+ noun.relation:relationship1,+ noun.relation:relationship,+ verb.stative:relate1,+ verb.cognition:relate,+ ] abstraction,@ (an abstraction belonging to or characteristic of two entities or parts together) } 52 | { possession, relation,@ (anything owned or possessed) } 53 | { social_relation, relation,@ (a relation between living organisms (especially between people)) } 54 | { [ communication, adj.all:communicative^communicational,+ verb.possession:communicate10,+ verb.communication:communicate8,+ verb.communication:communicate7,+ verb.communication:communicate2,+ verb.communication:communicate1,+ verb.communication:communicate,+ ] abstraction,@ (something that is communicated by or to or between people or groups) } 55 | { [ measure, verb.cognition:measure1,+ verb.change:measure,+ verb.cognition:measure,+ ] quantity, [ amount, verb.stative:amount1,+ ] abstraction,@ (how much there is or how many there are of something that you can quantify) } 56 | { phenomenon, process,@ (any state or process known through the senses rather than by intuition or reasoning) } 57 | 58 | -------------------------------------------------------------------------------- /resources/dbfiles/noun.motive: -------------------------------------------------------------------------------- 1 | ($RCSfile: noun.motive,v $ $Revision: 9.0 $ $Date: 2011/02/06 21:16:46 $ $Name: $ $State: Rel $) 2 | (Copyright (c) 1988-2011 by Princeton University) 3 | 4 | (noun.motive) 5 | 6 | { life, noun.Tops:motive,@ (a motive for living; "pottery was his life") } 7 | { rational_motive, noun.Tops:motive,@ (a motive that can be defended by reasoning or logical argument) } 8 | { [ reason, verb.cognition:reason1,+ ] [ ground, verb.cognition:ground,+ ] rational_motive,@ (a rational motive for a belief or action; "the reason that war was declared"; "the grounds for their declaration") } 9 | { [ occasion, verb.creation:occasion,+ ] reason,@ (reason; "there was no occasion for complaint") } 10 | { score, account, reason,@ (grounds; "don't do it on my account"; "the paper was rejected on account of its length"; "he tried to blame the victim but his success on that score was doubtful") } 11 | { why, wherefore, reason,@ (the cause or intention underlying an action or situation, especially in the phrase `the whys and wherefores') } 12 | { [ incentive, disincentive,!] [ inducement, verb.communication:induce,+ ] [ motivator, verb.creation:motivate,+ ] rational_motive,@ (a positive motivational influence) } 13 | { moral_force, dynamic, incentive,@ (an efficient incentive; "they hoped it would act as a spiritual dynamic on all churches") } 14 | { [ disincentive, incentive,!] [ deterrence, adj.all:preventive^deterrent,+ ] rational_motive,@ (a negative motivational influence) } 15 | { irrational_motive, noun.Tops:motive,@ (a motivation that is inconsistent with reason or logic) } 16 | { urge, impulse, noun.Tops:motive,@ (an instinctive motive; "profound religious impulses") } 17 | { [ abience, adj.pert:abient,+ adience,! ] urge,@ noun.cognition:psychology,;c ((psychology) an urge to withdraw or avoid a situation or an object) } 18 | { [ adience, adj.pert:adient,+ abience,! ] urge,@ noun.cognition:psychology,;c ((psychology) an urge to accept or approach a situation or an object) } 19 | { death_instinct, death_wish, Thanatos, urge,@ noun.act:psychoanalysis,;c ((psychoanalysis) an unconscious urge to die) } 20 | { irrational_impulse, irrational_motive,@ (a strong spontaneous and irrational motivation; "his first impulse was to denounce them"; "the urge to find out got him into trouble") } 21 | { [ compulsion1, adj.all:neurotic^compulsive,+ ] irresistible_impulse, irrational_impulse,@ (an urge to do or say something that might be better left undone or unsaid; "he felt a compulsion to babble on about the accident") } 22 | { [ mania, adj.all:wild2^manic,+ ] passion, cacoethes, irrational_motive,@ (an irrational but irresistible motive for a belief or action) } 23 | { agromania, mania,@ (an intense desire to be alone or out in the open) } 24 | { dipsomania, alcoholism1, potomania, mania,@ (an intense persistent desire to drink alcoholic beverages to excess) } 25 | { egomania, mania,@ (an intense and irresistible love for yourself and concern for your own needs) } 26 | { kleptomania, mania,@ (an irresistible impulse to steal in the absence of any economic motive) } 27 | { logorrhea, logomania, mania,@ (pathologically excessive (and often incoherent) talking) } 28 | { [ monomania, adj.all:neurotic^monomaniacal,+ ] possession, mania,@ (a mania restricted to one thing or idea) } 29 | { necrophilia, necrophilism, necromania, mania,@ (an irresistible sexual attraction to dead bodies) } 30 | { phaneromania, mania,@ (an irresistible desire to pick at superficial body parts (as in obsessive nail-biting)) } 31 | { pyromania, mania,@ (an uncontrollable desire to set fire to things) } 32 | { trichotillomania, mania,@ (an irresistible urge to pull out your own hair) } 33 | { wanderlust, itchy_feet, impulse,@ (very strong or irresistible impulse to travel) } 34 | { [ compulsion, adj.all:neurotic^compulsive,+ noun.person:compulsive,+ ] [ obsession, adj.all:neurotic^obsessional,+ ] irrational_motive,@ (an irrational motive for performing trivial or repetitive actions, even against your will; "her compulsion to wash her hands repeatedly") } 35 | { onomatomania, compulsion,@ (obsession with a particular word which the person uses repeatedly or which intrudes into consciousness) } 36 | 37 | { ethical_motive, [ ethics, adj.all:right1^ethical,+ adj.all:ethical,+ noun.person:ethicist,+ noun.person:ethician,+ ] morals, [ morality, adj.all:moral^moralistic,+ ] noun.Tops:motive,@ (motivation based on ideas of right and wrong) } 38 | { [ hedonism, adj.all:indulgent^hedonistic,+ adj.all:indulgent^hedonic,+ noun.person:hedonist,+ ] ethical_motive,@ (the pursuit of pleasure as a matter of ethical principle) } 39 | { conscience, scruples, moral_sense, sense_of_right_and_wrong, ethical_motive,@ (motivation deriving logically from ethical or moral principles that govern a person's thoughts and actions) } 40 | { wee_small_voice, small_voice, voice_of_conscience, conscience,@ (an inner voice that judges your behavior) } 41 | { sense_of_shame, sense_of_duty, conscience,@ (a motivating awareness of ethical responsibility) } 42 | { Inner_Light, Light, Light_Within, Christ_Within, ethical_motive,@ (a divine presence believed by Quakers to enlighten and guide the soul) } 43 | { psychic_energy, mental_energy, noun.Tops:motive,@ (an actuating force or factor) } 44 | { [ incitement, verb.contact:incite,+ ] [ incitation, verb.creation:incite,+ verb.contact:incite,+ verb.communication:incite,+ ] [ provocation, verb.emotion:provoke,+ verb.creation:provoke,+ verb.communication:provoke,+ ] psychic_energy,@ (something that incites or provokes; a means of arousing or stirring to action) } 45 | { signal, incitement,@ (any incitement to action; "he awaited the signal to start"; "the victory was a signal for wild celebration") } 46 | { libidinal_energy, psychic_energy,@ noun.act:psychoanalysis,;c ((psychoanalysis) psychic energy produced by the libido) } 47 | { [ cathexis, adj.pert:cathectic,+ ] charge, libidinal_energy,@ noun.act:psychoanalysis,;c ((psychoanalysis) the libidinal energy invested in some idea or person or object; "Freud thought of cathexis as a psychic analog of an electrical charge") } 48 | { acathexis, libidinal_energy,@ noun.act:psychoanalysis,;c ((psychoanalysis) a lack of cathexis; a condition in which significant objects or memories arouse no emotion in an individual) } 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /resources/dbfiles/verb.Framestext: -------------------------------------------------------------------------------- 1 | 1 Something ----s 2 | 2 Somebody ----s 3 | 3 It is ----ing 4 | 4 Something is ----ing PP 5 | 5 Something ----s something Adjective/Noun 6 | 6 Something ----s Adjective/Noun 7 | 7 Somebody ----s Adjective 8 | 8 Somebody ----s something 9 | 9 Somebody ----s somebody 10 | 10 Something ----s somebody 11 | 11 Something ----s something 12 | 12 Something ----s to somebody 13 | 13 Somebody ----s on something 14 | 14 Somebody ----s somebody something 15 | 15 Somebody ----s something to somebody 16 | 16 Somebody ----s something from somebody 17 | 17 Somebody ----s somebody with something 18 | 18 Somebody ----s somebody of something 19 | 19 Somebody ----s something on somebody 20 | 20 Somebody ----s somebody PP 21 | 21 Somebody ----s something PP 22 | 22 Somebody ----s PP 23 | 23 Somebody's (body part) ----s 24 | 24 Somebody ----s somebody to INFINITIVE 25 | 25 Somebody ----s somebody INFINITIVE 26 | 26 Somebody ----s that CLAUSE 27 | 27 Somebody ----s to somebody 28 | 28 Somebody ----s to INFINITIVE 29 | 29 Somebody ----s whether INFINITIVE 30 | 30 Somebody ----s somebody into V-ing something 31 | 31 Somebody ----s something with something 32 | 32 Somebody ----s INFINITIVE 33 | 33 Somebody ----s VERB-ing 34 | 34 It ----s that CLAUSE 35 | 35 Something ----s INFINITIVE 36 | -------------------------------------------------------------------------------- /resources/dbfiles/verb.weather: -------------------------------------------------------------------------------- 1 | ($RCSfile: verb.weather,v $ $Revision: 9.0 $ $Date: 2011/02/06 21:17:00 $ $Name: $ $State: Rel $) 2 | (Copyright (c) 1988-2011 by Princeton University) 3 | 4 | (verb.weather) 5 | 6 | 7 | { [ rain, noun.substance:rain,+ noun.phenomenon:rain,+ ] rain_down, precipitate,@ frames: 3,11 (precipitate as rain; "If it rains much more, we can expect some flooding") } 8 | { [ precipitate, noun.quantity:precipitation,+ noun.phenomenon:precipitation,+ ] come_down, fall, verb.change:condense1,* frames: 1,8 (fall from clouds; "rain, snow and sleet were falling"; "Vesuvius precipitated its fiery, destructive rage on Herculaneum") } 9 | { spat, fall,@ frames: 1 (come down like raindrops; "Bullets were spatting down on us") } 10 | { [ liquefy, adj.all:liquid^liquefiable,+ noun.process:liquefaction,+ ] verb.change:change_state,@ frames: 1 (become liquid; "The garden air overnight liquefied into a morning dew") } 11 | { [ drizzle, noun.phenomenon:drizzle,+ ] [ mizzle, noun.phenomenon:mizzle,+ ] rain,@ frames: 3 (rain lightly; "When it drizzles in summer, hiking can be pleasant") } 12 | { [ shower, noun.phenomenon:shower,+ noun.event:shower,+ ] shower_down, rain,@ frames: 3 (rain abundantly; "Meteors showered down over half of Australia") } 13 | { [ sprinkle, noun.phenomenon:sprinkle,+ noun.phenomenon:sprinkling,+ ] spit, spatter, patter, pitter-patter, rain,@ frames: 3 (rain gently; "It has only sprinkled, but the roads are slick") } 14 | { pour, [ pelt, noun.phenomenon:pelter,+ ] stream, rain_cats_and_dogs, rain_buckets, rain,@ frames: 3 (rain heavily; "Put on your rain coat-- it's pouring outside!") } 15 | { sheet, pour,@ frames: 3 (come down as if in sheets; "The rain was sheeting down during the monsoon") } 16 | { [ sluice, noun.artifact:sluice,+ ] sluice_down, pour,@ frames: 1,4 (pour as if from a sluice; "An aggressive tide sluiced across the barrier reef") } 17 | { ice_up, frost_over, ice_over, freeze10,* verb.change:change,@ frames: 1,3 (become covered with a layer of ice; of a surface such as a window; "When the wings iced up, the pilot was forced to land his plane") } 18 | { [ freeze10, noun.phenomenon:freeze,+ noun.process:freezing,+ ] frames: 3 (be very cold, below the freezing point; "It is freezing in Kalamazoo") } 19 | { [ snow, noun.substance:snow,+ noun.phenomenon:snow,+ ] precipitate,@ frames: 3 (fall as snow; "It was snowing all night") } 20 | { [ hail, noun.phenomenon:hail,+ ] precipitate,@ frames: 3 (precipitate as small ice particles; "It hailed for an hour") } 21 | { [ sleet, noun.phenomenon:sleet,+ ] precipitate,@ frames: 3 (precipitate as a mixture of rain and snow; "If the temperature rises above freezing, it will probably sleet")} 22 | { [ flame, noun.process:flame,+ noun.process:flaming,+ ] verb.change:burn,@ frames: 1 (be in flames or aflame; "The sky seemed to flame in the Hawaiian sunset") } 23 | { [ ignite, adj.all:combustible^ignitible,+ adj.all:combustible^ignitable,+ noun.process:ignition,+ noun.act:ignition,+ noun.substance:igniter,+ noun.artifact:igniter,+ noun.substance:ignitor,+ noun.artifact:ignitor,+ extinguish,! ] [ light, noun.artifact:light1,+ noun.substance:lighter,+ noun.artifact:lighter,+ ] verb.change:burn,> burn2,@ frames: 8,11 (cause to start burning; subject to fire or great heat; "Great heat can ignite almost any dry matter"; "Light a cigarette") } 24 | { set_ablaze, set_aflame, set_on_fire1, set_afire, ignite,* burn2,@ frames: 8,11 (set fire to; cause to start burning; "Lightening set fire to the forest") } 25 | { reignite, ignite,@ frames: 8 (ignite anew, as of something burning; "The strong winds reignited the cooling embers") } 26 | { douse, put_out, extinguish,@ frames: 8 (put out, as of a candle or a light; "Douse the lights") } 27 | { erupt, [ ignite1, adj.all:combustible^ignitible,+ adj.all:combustible^ignitable,+ noun.act:ignition,+ ] catch_fire, take_fire, [ combust, adj.all:combustible,+ adj.all:combustible^combustive,+ ] conflagrate, verb.change:change_state,@ frames: 1 (start to burn or burst into flames; "Marsh gases ignited suddenly"; "The oily rags combusted spontaneously") } 28 | { blow_out1, erupt,@ frames: 1 (erupt in an uncontrolled manner; "The oil well blew out")} 29 | { catch4, ignite1,@ frames: 1 (start burning; "The fire caught") } 30 | { light_up1, ignite1,@ frames: 1 (start to burn with a bright flame; "The coal in the BBQ grill finally lit up") } 31 | { kindle, enkindle, conflagrate1, [ inflame, noun.act:inflammation1,+ ] ignite,@ frames: 8,11 (cause to start burning; "The setting sun kindled the sky with oranges and reds") } 32 | { rekindle, kindle,@ frames: 8 (kindle anew, as of a fire) } 33 | { [ kindle1, noun.substance:kindling,+ noun.act:kindling,+ ] [ inflame1, noun.act:inflammation1,+ ] flare_up,@ frames: 1 (catch fire; "The dried grass of the prairie kindled, spreading the flames for miles") } 34 | { snuff_out, blow_out, [ extinguish, noun.act:extinction1,+ noun.artifact:extinguisher,+ noun.act:extinguishing,+ ignite,! ] [ quench, noun.act:quenching,+ ] frames: 8,11 (put out, as of fires, flames, or lights; "Too big to be extinguished at once, the forest fires at best could be contained"; "quench the flames"; "snuff out the candles")} 35 | { black_out, extinguish,@ frames: 8,11 (obliterate or extinguish; "Some life-forms were obliterated by the radiation, others survived") } 36 | { [ burn2, adj.all:combustible^burnable,+ ] [ combust2, adj.all:combustible,+ adj.all:combustible^combustive,+ noun.act:combustion,+ ] verb.change:burn,> combust,$ frames: 8,11 (cause to burn or combust; "The sun burned off the fog"; "We combust coal and other fossil fuels") } 37 | { [ flare, noun.process:flare,+ ] flame_up, blaze_up, burn_up, verb.change:burn,@ frames: 1 (burn brightly; "Every star seemed to flare with new intensity") } 38 | { [ flare1, noun.process:flare,+ ] [flame1, flame_up,^ ] shine,@ frames: 1 (shine with a sudden light; "The night sky flared with the massive bombardment") } 39 | { outshine, shine,@ frames: 11 (shine brighter than; "What star outshines the sun?") } 40 | { [ shine3, noun.attribute:shine,+ ] shine,> frames: 8,21 (throw or flash the light of (a lamp); "Shine the light on that window, please") } 41 | { [ shimmer, noun.event:shimmer,+ ] shine,@ frames: 1 (shine with a weak or fitful light; "Beech leaves shimmered in the moonlight") } 42 | { [ flicker, noun.event:flicker,+ ] flick, shine,@ frames: 1 (shine unsteadily; "The candle flickered") } 43 | { [ shine, noun.attribute:shine,+ ] [ beam3, noun.phenomenon:beam,+ ] frames: 1 (emit light; be bright, as of the sun or a light; "The sun shone bright that day"; "The fire beamed on their faces") } 44 | { light_up2, ignite,@ frames: 1 (ignite; "The sky lit up quickly above the raging volcano") } 45 | { flare_up, ignite,@ frames: 1 (ignite quickly and suddenly, especially after having died down; "the fire flared up and died down once again") } 46 | { [ blaze, noun.process:blaze,+ blaze_up,^ ] verb.change:burn,@ frames:1 (burn brightly and intensely; "The summer sun alone can cause a pine to blaze") } 47 | { [ blaze1, noun.attribute:blaze,+ ] shine,@ frames: 1 (shine brightly and intensively; "Meteors blazed across the atmosphere") } 48 | { [ twinkle, noun.event:twinkle,+ noun.object:twinkler,+ ] winkle, [ scintillate, adj.all:bright^scintillant,+ noun.attribute:scintillation1,+ noun.object:scintilla,+ ] shine,@ noun.object:celestial_body,;c frames: 1 (emit or reflect light in a flickering manner; "Does a constellation twinkle more brightly than a single star?") } 49 | { glare1, reflect,@ frames: 1 (be sharply reflected; "The moon glared back at itself from the lake's surface") } 50 | { [ opalesce, adj.all:bright^opalescent,+ noun.attribute:opalescence,+ ] reflect,@ frames: 1 (reflect light or colors like an opal; "Distant clouds opalesce like pale brocade"; "raindrops caught in a sunbeam seem to opalesce") } 51 | { [ absorb, adj.all:absorptive,+ adj.all:absorbent,+ adj.all:absorbable,+ noun.process:absorption2,+ emit,! ] take_in, frames: 8,11 (suck or take up or in; "A black star absorbs all matter") } 52 | { [ suck, noun.act:suck,+ noun.act:suction,+ ] suck_in, absorb,@ frames: 11 (attract by using an inexorable force, inducement, etc.; "The current boom in the economy sucked many workers in from abroad") } 53 | { [ reflect, adj.all:reflective,+ ] [ shine1, noun.object:shiner,+ noun.attribute:shine,+ ] emit,@ frames: 1 (be bright by reflecting or casting light; "Drive carefully--the wet road reflects") } 54 | { [ luminesce, adj.all:light6^luminescent,+ noun.phenomenon:luminescence,+ noun.attribute:luminescence,+ ] shine1,@ frames: 1 (be or become luminescent; exhibit luminescence)} 55 | { [ sparkle, noun.attribute:sparkle,+ noun.event:sparkle,+ noun.possession:sparkler,+ noun.event:sparkling,+ ] [ scintillate3, adj.all:bright^scintillant,+ noun.attribute:scintillation,+ ] [ coruscate, adj.all:bright^coruscant,+ noun.event:coruscation,+ ] shine1,@ frames: 1 (reflect brightly; "Unquarried marble sparkled on the hillside") } 56 | { [ spark, noun.object:spark,+ noun.phenomenon:spark,+ noun.event:spark1,+ ] [ sparkle2, noun.event:sparkle,+ ] emit,@ frames: 1 (emit or produce sparks; "A high tension wire, brought down by a storm, can continue to spark") } 57 | { [ mirror, noun.cognition:mirror,+ noun.artifact:mirror,+ ] verb.perception:reflect,@ frames: 11,10 (reflect as if in a mirror; "The smallest pond at night mirrors the firmament above") } 58 | { [ radiate, adj.all:bright^radiant,+ noun.phenomenon:radiation,+ noun.attribute:radiancy,+ noun.attribute:radiance,+ ] emit,@ frames: 1,11 (send out rays or waves; "The sun radiates heat") } 59 | { [ emit, noun.act:emission,+ noun.artifact:emitter,+ absorb,! ] give_out, give_off, frames: 8,11 (give off, send forth, or discharge; as of light, heat, or radiation, vapor, etc.; "The ozone layer blocks some harmful rays which the sun emits") } 60 | { [ scintillate1, noun.event:scintillation,+ ] scintillate,$ emit,@ frames: 11 (give off; "the substance scintillated sparks and flashes")} 61 | { [ fume, noun.phenomenon:fume,+ ] [ smoke, noun.process:smoke,+ noun.phenomenon:smoke,+ noun.process:smoking,+ ] emit,@ frames: 1 (emit a cloud of fine particles; "The chimney was fuming") } 62 | { reek, emit,@ frames: 1 (give off smoke, fumes, warm vapour, steam, etc.; "Marshes reeking in the sun") } 63 | { shoot, emit,@ frames: 11 (emit (as light, flame, or fumes) suddenly and forcefully; "The dragon shot fumes and flames out of its mouth") } 64 | { [ ray, noun.phenomenon:ray,+ ] emit,@ frames: 11 (emit as rays; "That tower rays a laser beam for miles across the sky") } 65 | { steam, emit,@ frames: 1,2 (emit steam; "The rain forest was literally steaming") } 66 | { [ shadow, noun.location:shadow,+ noun.state:shadow1,+ ] [ shade, noun.state:shade,+ ] shade_off, verb.change:darken1,@ frames: 11,10,9 (cast a shadow over) } 67 | { burn1, [ glow, noun.phenomenon:glow,+ ] shine,@ frames: 1 (shine intensely, as if with heat; "The coals were glowing in the dark"; "The candles were burning") } 68 | { gutter, burn1,@ frames: 1 (burn unsteadily, feebly, or low; flicker; "The cooling lava continued to gutter toward lower ground") } 69 | { [ blow, noun.phenomenon:blow,+ ] frames: 1,3,4 (be blowing or storming; "The wind blew from the West") } 70 | { [ breeze, noun.phenomenon:breeze,+ ] blow,@ frames: 1,3,4 (blow gently and lightly; "It breezes most evenings at the shore") } 71 | { set_in, blow,@ frames: 1 (blow toward the shore; "That gale could set in on us with the next high tide") } 72 | { waft, blow,@ frames: 1,4 (blow gently; "A breeze wafted through the door") } 73 | { [ storm, noun.phenomenon:storm,+ ] blow,@ frames: 3 (blow hard; "It was storming all night") } 74 | { [ squall, noun.phenomenon:squall,+ ] blow,@ frames: 1 (blow in a squall; "When it squalls, a prudent sailor reefs his sails") } 75 | { [ storm1, noun.phenomenon:storm,+ ] rain,* frames: 3 (rain, hail, or snow hard and be very windy, often with thunder or lightning; "If it storms, we'll need shelter") } 76 | { [ bluster, noun.phenomenon:bluster,+ ] blow,@ frames: 3 (blow hard; be gusty, as of wind; "A southeaster blustered onshore"; "The flames blustered") } 77 | { [ thunder, noun.event:thunder1,+ ] boom, storm,* frames: 3 (be the case that thunder is being heard; "Whenever it thunders, my dog crawls under the bed") } 78 | { [ overcast, noun.state:overcast1,+ noun.state:overcast,+ clear_up,! ] [ cloud, noun.object:cloud,+ noun.process:clouding,+ cloud_over,^ cloud_up,^ ] verb.change:darken1,@ frames: 11 (make overcast or cloudy; "Fall weather often overcasts our beaches") } 79 | { overcloud, cloud_over, cloud_up, verb.change:darken,@ frames: 1,3 (become covered with clouds; "The sky clouded over") } 80 | { [clear_up, overcast,! ] clear, light_up, brighten, frames: 3,1 (become clear; "The sky cleared after the storm") } 81 | { [ blight, noun.state:blight1,+ noun.state:blight,+ ] [ plague, noun.group:plague,+ noun.state:plague1,+ noun.state:plague,+ ] verb.change:afflict,@ frames: 10,11 (cause to suffer a blight; "Too much rain may blight the garden with mold") } 82 | { [ swamp, noun.object:swamp,+ ] drench, verb.change:flood,@ frames: 1,11 (drench or submerge or be drenched or submerged; "The tsunami swamped every boat in the harbor") } 83 | { run_dry, dry_out1, verb.change:dry,@ frames: 1 (become empty of water; "The river runs dry in the summer") } 84 | { fog_up, overcast,@ frames: 3,1 (get foggy; "The windshield fogged up") } 85 | { [ char, noun.substance:char,+ ] [ coal, noun.substance:coal,+ noun.object:coal,+ ] burn2,@ frames: 8 (burn to charcoal; "Without a drenching rain, the forest fire will char everything") } 86 | { [ haze, noun.phenomenon:haze,+ ] overcast,@ frames: 1 (become hazy, dull, or cloudy)} 87 | { [deflagrate, noun.process:deflagration,+ ] burn2,@ frames: 8,11 (cause to burn rapidly and with great intensity; "care must be exercised when this substance is to be deflagrated")} 88 | -------------------------------------------------------------------------------- /resources/log.grind.3.1: -------------------------------------------------------------------------------- 1 | Processing adj.all... 2 | Processing adj.pert... 3 | Processing adv.all... 4 | Processing noun.Tops... 5 | noun.Tops, line 7: warning: No hypernyms in synset 6 | Processing noun.act... 7 | Processing noun.animal... 8 | Processing noun.artifact... 9 | Processing noun.attribute... 10 | Processing noun.body... 11 | Processing noun.cognition... 12 | Processing noun.communication... 13 | Processing noun.event... 14 | Processing noun.feeling... 15 | Processing noun.food... 16 | Processing noun.group... 17 | Processing noun.location... 18 | Processing noun.motive... 19 | Processing noun.object... 20 | Processing noun.person... 21 | Processing noun.phenomenon... 22 | Processing noun.plant... 23 | Processing noun.possession... 24 | Processing noun.process... 25 | Processing noun.quantity... 26 | Processing noun.relation... 27 | Processing noun.shape... 28 | Processing noun.state... 29 | Processing noun.substance... 30 | Processing noun.time... 31 | Processing verb.body... 32 | Processing verb.change... 33 | Processing verb.cognition... 34 | Processing verb.communication... 35 | Processing verb.competition... 36 | Processing verb.consumption... 37 | Processing verb.contact... 38 | Processing verb.creation... 39 | Processing verb.emotion... 40 | Processing verb.motion... 41 | Processing verb.perception... 42 | Processing verb.possession... 43 | Processing verb.social... 44 | Processing verb.stative... 45 | Processing verb.weather... 46 | Processing adj.ppl... 47 | 48 | *** Statistics for ground files: 49 | 50 | 82192 noun synsets 51 | 13789 verb synsets 52 | 3807 adj synsets 53 | 3625 adv synsets 54 | 3661 pertainym synsets 55 | 10717 adjective satellite synsets 56 | 117791 synsets in total (including satellite and pertainym synsets) 57 | 82192 noun synsets have definitional glosses 58 | 13789 verb synsets have definitional glosses 59 | 3807 adj synsets have definitional glosses 60 | 3625 adv synsets have definitional glosses 61 | 3661 pertainym synsets have definitional glosses 62 | 10717 adjective satellite synsets have definitional glosses 63 | 117791 definitional glosses in total (including adjective satellite synsets) 64 | 225204 pointers in total 65 | 207272 synonyms in synsets 66 | 147478 unique word phrases 67 | 83253 word phrases of length 1 68 | 54562 word phrases of length 2 69 | 7769 word phrases of length 3 70 | 1459 word phrases of length 4 71 | 298 word phrases of length 5 72 | 80 word phrases of length 6 73 | 28 word phrases of length 7 74 | 20 word phrases of length 8 75 | 9 word phrases of length 9 76 | 77 | Resolving pointers... 78 | Done resolving pointers... 79 | Getting sense counts... 80 | Done with sense counts... 81 | Figuring out byte offsets... 82 | Dumping data files... 83 | Done dumping data files... 84 | Reading cntlist... 85 | Done reading cntlist 86 | Dumping index files... 87 | Done dumping index files... 88 | Dumping sense index... 89 | Done dumping sense index... 90 | -------------------------------------------------------------------------------- /resources/sents.vrb: -------------------------------------------------------------------------------- 1 | 1 The children %s to the playground 2 | 10 The cars %s down the avenue 3 | 100 These glasses %s easily 4 | 101 These fabrics %s easily 5 | 102 They %s their earnings this year 6 | 103 Their earnings %s this year 7 | 104 The water %ss 8 | 105 They %s the water 9 | 106 The animals %s 10 | 107 They %s a long time 11 | 108 The car %ss the tree 12 | 109 John will %s angry 13 | 11 They %s the car down the avenue 14 | 110 They %s in the city 15 | 111 They won't %s the story 16 | 112 They %s that there was a traffic accident 17 | 113 They %s whether there was a traffic accident 18 | 114 They %s her vice president 19 | 115 Did he %s his major works over a short period of time? 20 | 116 The chefs %s the vegetables 21 | 117 They %s the cape 22 | 118 The food does %s good 23 | 119 The music does %s good 24 | 12 They %s the glass tubes 25 | 120 The cool air does %s good 26 | 121 This food does %s well 27 | 122 It was %sing all day long 28 | 123 They %s him to write the letter 29 | 124 They %s him into writing the letter 30 | 125 They %s him from writing the letter 31 | 126 The bad news will %s him 32 | 127 The good news will %s her 33 | 128 The chef wants to %s the eggs 34 | 129 Sam wants to %s with Sue 35 | 13 The glass tubes %s 36 | 130 The fighter managed to %s his opponent 37 | 131 These cars won't %s 38 | 132 The branches %s from the trees 39 | 133 The stock market is going to %s 40 | 134 The moon will soon %s 41 | 135 The business is going to %s 42 | 136 The airplane is sure to %s 43 | 137 They %s to move 44 | 138 They %s moving 45 | 139 Sam and Sue %s the movie 46 | 14 Sam and Sue %s 47 | 140 They want to %s the prisoners 48 | 141 They want to %s the doors 49 | 142 The doors %s 50 | 143 Did he %s his foot? 51 | 144 Did his feet %s? 52 | 145 They will %s the duet 53 | 146 They %s their hair 54 | 147 They %s the trees 55 | 148 They %s him of all his money 56 | 149 Lights %s on the horizon 57 | 15 Sam cannot %s Sue 58 | 150 The horizon is %sing with lights 59 | 151 The crowds %s in the streets 60 | 152 The streets %s with crowds 61 | 153 Cars %s in the streets 62 | 154 The streets %s with cars 63 | 155 You can hear animals %s in the meadows 64 | 156 The meadows %s with animals 65 | 157 The birds %s in the woods 66 | 158 The woods %s with many kinds of birds 67 | 159 The performance is likely to %s Sue 68 | 16 The ropes %s 69 | 160 Sam and Sue %s over the results of the experiment 70 | 161 In the summer they like to go out and %s 71 | 162 The children %s in the rocking chair 72 | 163 There %s some children in the rocking chair 73 | 164 Some big birds %s in the tree 74 | 165 There %s some big birds in the tree 75 | 166 The men %s the area for animals 76 | 167 The men %s for animals in the area 77 | 168 The customs agents %s the bags for drugs 78 | 169 They %s him as chairman 79 | 17 The strong winds %s the rope 80 | 170 They %s him "Bobby" 81 | 18 They %s the sheets 82 | 19 The sheets didn't %s 83 | 2 The banks %s the check 84 | 20 The horses %s across the field 85 | 21 They %s the bags on the table 86 | 22 The men %s the horses across the field 87 | 23 Our properties %s at this point 88 | 24 His fields %s mine at this point 89 | 25 They %s the hill 90 | 26 They %s up the hill 91 | 27 They %s the river 92 | 28 They %s down the river 93 | 29 They %s the countryside 94 | 3 The checks %s 95 | 30 They %s in the countryside 96 | 31 These men %s across the river 97 | 32 These men %s the river 98 | 33 They %s the food to the people 99 | 34 They %s the people the food 100 | 35 They %s more bread 101 | 36 They %s the object in the water 102 | 37 The men %s the bookshelves 103 | 38 They %s the money in the closet 104 | 39 The lights %s from the ceiling 105 | 4 The children %s the ball 106 | 40 They %s the lights from the ceiling 107 | 41 They %s their rifles on the cabinet 108 | 42 The chairs %s in the corner 109 | 43 The men %s the chairs 110 | 44 The women %s water into the bowl 111 | 45 Water and oil %s into the bowl 112 | 46 They %s the wire around the stick 113 | 47 The wires %s around the stick 114 | 48 They %s the bread with melted butter 115 | 49 They %s the cart with boxes 116 | 5 The balls %s 117 | 50 They %s the books into the box 118 | 51 They %s sugar over the cake 119 | 52 They %s the cake with sugar 120 | 53 They %s the fruit with a chemical 121 | 54 They %s a chemical into the fruit 122 | 55 They %s the field with rye 123 | 56 They %s rye in the field 124 | 57 They %s notices on the doors 125 | 58 They %s the doors with notices 126 | 59 They %s money on their grandchild 127 | 6 The girls %s the wooden sticks 128 | 60 They %s their grandchild with money 129 | 61 They %s coins on the image 130 | 62 They %s the image with coins 131 | 63 They %s butter on the bread 132 | 64 They %s the lake with fish 133 | 65 The children %s the paper with grease 134 | 66 The children %s grease onto the paper 135 | 67 They %s papers over the floor 136 | 68 They %s the floor with papers 137 | 69 They %s the money 138 | 7 The wooden sticks %s 139 | 70 They %s the newspapers 140 | 71 They %s the goods 141 | 72 The men %s the boat 142 | 73 They %s the animals 143 | 74 The books %s the box 144 | 75 They %s the halls with holly 145 | 76 Holly flowers %s the halls 146 | 77 The wind storms %s the area with dust and dirt 147 | 78 Dust and dirt %s the area 148 | 79 The swollen rivers %s the area with water 149 | 8 The coins %s 150 | 80 The waters %s the area 151 | 81 They %s the cloth with water and alcohol 152 | 82 Water and alcohol %s the cloth 153 | 83 They %s the snow from the path 154 | 84 They %s the path of the snow 155 | 85 They %s the water from the sink 156 | 86 They %s the sink of water 157 | 87 They %s the parcel to their parents 158 | 88 They %s them the parcel 159 | 89 They %s cars to the tourists 160 | 9 They %s the coin 161 | 90 They %s the tourists their cars 162 | 91 They %s the money to them 163 | 92 They %s them the money 164 | 93 They %s them the information 165 | 94 They %s the information to them 166 | 95 The parents %s a French poem to the children 167 | 96 The parents %s the children a French poem 168 | 97 They %s 169 | 98 They %s themselves 170 | 99 These balls %s easily 171 | -------------------------------------------------------------------------------- /resources/verb.Framestext: -------------------------------------------------------------------------------- 1 | 1 Something ----s 2 | 2 Somebody ----s 3 | 3 It is ----ing 4 | 4 Something is ----ing PP 5 | 5 Something ----s something Adjective/Noun 6 | 6 Something ----s Adjective/Noun 7 | 7 Somebody ----s Adjective 8 | 8 Somebody ----s something 9 | 9 Somebody ----s somebody 10 | 10 Something ----s somebody 11 | 11 Something ----s something 12 | 12 Something ----s to somebody 13 | 13 Somebody ----s on something 14 | 14 Somebody ----s somebody something 15 | 15 Somebody ----s something to somebody 16 | 16 Somebody ----s something from somebody 17 | 17 Somebody ----s somebody with something 18 | 18 Somebody ----s somebody of something 19 | 19 Somebody ----s something on somebody 20 | 20 Somebody ----s somebody PP 21 | 21 Somebody ----s something PP 22 | 22 Somebody ----s PP 23 | 23 Somebody's (body part) ----s 24 | 24 Somebody ----s somebody to INFINITIVE 25 | 25 Somebody ----s somebody INFINITIVE 26 | 26 Somebody ----s that CLAUSE 27 | 27 Somebody ----s to somebody 28 | 28 Somebody ----s to INFINITIVE 29 | 29 Somebody ----s whether INFINITIVE 30 | 30 Somebody ----s somebody into V-ing something 31 | 31 Somebody ----s something with something 32 | 32 Somebody ----s INFINITIVE 33 | 33 Somebody ----s VERB-ing 34 | 34 It ----s that CLAUSE 35 | 35 Something ----s INFINITIVE 36 | -------------------------------------------------------------------------------- /src/TestApplication/Docs/README.txt: -------------------------------------------------------------------------------- 1 | ********************************************* 2 | * * 3 | * WordNet 3.0 API in C# * 4 | * Date: August 20, 2009 * 5 | * Author: Matt Gerber (gerberm2@msu.edu) * 6 | * * 7 | ********************************************* 8 | 9 | 10 | LICENSE 11 | 12 | Free. Do whatever you want with it. 13 | 14 | 15 | COMPILATION 16 | 17 | 1) Compile the WordNet project as described in README.txt in the 18 | WordNet project. 19 | 20 | 2) Right-click on the TestApplication project, select "Properties", 21 | and go to "Reference Paths". Add the Public folder that was checked 22 | out when building the WordNet project. 23 | 24 | 3) Right-click on the TestApplication project and select "Build". 25 | 26 | 27 | MACHINE-SPECIFIC PATHS 28 | 29 | The test application must know where to find the WordNet data 30 | distribution. This path can be found the in the main form's 31 | constructor. Change as necessary. 32 | 33 | 34 | FAQ 35 | 36 | 1) I'm trying to compile the test application and I'm getting an error 37 | about a missing DLL named LAIR.ResourceAPIs.WordNet.dll. Where do I 38 | get this DLL? 39 | 40 | You didn't follow the instructions! :) See item (1) under 41 | COMPILATION above. It says to first build the WordNet project. The 42 | DLL is created when you build the WordNet project. 43 | 44 | 45 | BUGS REPORTS 46 | 47 | Send to gerber.matthew@gmail.com 48 | -------------------------------------------------------------------------------- /src/TestApplication/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Windows.Forms; 5 | 6 | namespace TestApplication 7 | { 8 | static class Program 9 | { 10 | /// 11 | /// The main entry point for the application. 12 | /// 13 | [STAThread] 14 | static void Main() 15 | { 16 | Application.EnableVisualStyles(); 17 | Application.SetCompatibleTextRenderingDefault(false); 18 | Application.Run(new TestForm()); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/TestApplication/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("TestApplication")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("TestApplication")] 13 | [assembly: AssemblyCopyright("Copyright © 2009")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("f48a97b2-ea8d-4b02-b103-132fcf598912")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /src/TestApplication/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.1 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace TestApplication.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TestApplication.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /src/TestApplication/Properties/Resources.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | text/microsoft-resx 107 | 108 | 109 | 2.0 110 | 111 | 112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 113 | 114 | 115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | -------------------------------------------------------------------------------- /src/TestApplication/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.1 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace TestApplication.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/TestApplication/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/TestApplication/TestApplication.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Debug 5 | AnyCPU 6 | 9.0.21022 7 | 2.0 8 | {4CE87CD7-26B9-46AD-B192-C53096B7427D} 9 | WinExe 10 | Properties 11 | TestApplication 12 | TestApplication 13 | v4.0 14 | 512 15 | 16 | 17 | 3.5 18 | 19 | publish\ 20 | true 21 | Disk 22 | false 23 | Foreground 24 | 7 25 | Days 26 | false 27 | false 28 | true 29 | 0 30 | 1.0.0.%2a 31 | false 32 | false 33 | true 34 | 35 | 36 | 37 | true 38 | full 39 | false 40 | bin\Debug\ 41 | DEBUG;TRACE 42 | prompt 43 | 4 44 | AllRules.ruleset 45 | 46 | 47 | pdbonly 48 | true 49 | bin\Release\ 50 | TRACE 51 | prompt 52 | 4 53 | AllRules.ruleset 54 | 55 | 56 | 57 | ..\..\lib\LAIR.Collections.dll 58 | 59 | 60 | ..\..\lib\LAIR.Extensions.dll 61 | 62 | 63 | ..\..\lib\LAIR.IO.dll 64 | 65 | 66 | 67 | 3.5 68 | 69 | 70 | 3.5 71 | 72 | 73 | 3.5 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | Form 84 | 85 | 86 | TestForm.cs 87 | 88 | 89 | 90 | 91 | ResXFileCodeGenerator 92 | Resources.Designer.cs 93 | Designer 94 | 95 | 96 | TestForm.cs 97 | Designer 98 | 99 | 100 | True 101 | Resources.resx 102 | True 103 | 104 | 105 | SettingsSingleFileGenerator 106 | Settings.Designer.cs 107 | 108 | 109 | True 110 | Settings.settings 111 | True 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | False 120 | .NET Framework 3.5 SP1 Client Profile 121 | false 122 | 123 | 124 | False 125 | .NET Framework 3.5 SP1 126 | true 127 | 128 | 129 | False 130 | Windows Installer 3.1 131 | true 132 | 133 | 134 | 135 | 136 | {F4C6C48C-90EF-445D-B8F8-AD9B6767D9A8} 137 | WordNet 138 | 139 | 140 | 141 | 148 | -------------------------------------------------------------------------------- /src/TestApplication/TestForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace TestApplication 2 | { 3 | partial class TestForm 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.word = new System.Windows.Forms.TextBox(); 32 | this.getSynSets = new System.Windows.Forms.Button(); 33 | this.test = new System.Windows.Forms.Button(); 34 | this.label1 = new System.Windows.Forms.Label(); 35 | this.synSets = new System.Windows.Forms.ListBox(); 36 | this.getRelatedSynSets = new System.Windows.Forms.Button(); 37 | this.semanticRelations = new System.Windows.Forms.ListBox(); 38 | this.pos = new System.Windows.Forms.ComboBox(); 39 | this.label2 = new System.Windows.Forms.Label(); 40 | this.groupBox1 = new System.Windows.Forms.GroupBox(); 41 | this.mostCommon = new System.Windows.Forms.CheckBox(); 42 | this.label3 = new System.Windows.Forms.Label(); 43 | this.synsetID = new System.Windows.Forms.TextBox(); 44 | this.groupBox2 = new System.Windows.Forms.GroupBox(); 45 | this.menuStrip1 = new System.Windows.Forms.MenuStrip(); 46 | this.wordNetToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 47 | this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 48 | this.groupBox3 = new System.Windows.Forms.GroupBox(); 49 | this.lexicalRelations = new System.Windows.Forms.ListBox(); 50 | this.computeSemSim = new System.Windows.Forms.Button(); 51 | this.ss1 = new System.Windows.Forms.Label(); 52 | this.ss2 = new System.Windows.Forms.Label(); 53 | this.groupBox4 = new System.Windows.Forms.GroupBox(); 54 | this.groupBox1.SuspendLayout(); 55 | this.groupBox2.SuspendLayout(); 56 | this.menuStrip1.SuspendLayout(); 57 | this.groupBox3.SuspendLayout(); 58 | this.groupBox4.SuspendLayout(); 59 | this.SuspendLayout(); 60 | // 61 | // word 62 | // 63 | this.word.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 64 | this.word.Location = new System.Drawing.Point(52, 28); 65 | this.word.Name = "word"; 66 | this.word.Size = new System.Drawing.Size(133, 20); 67 | this.word.TabIndex = 0; 68 | this.word.TextChanged += new System.EventHandler(this.word_TextChanged); 69 | this.word.KeyDown += new System.Windows.Forms.KeyEventHandler(this.word_KeyDown); 70 | // 71 | // getSynSets 72 | // 73 | this.getSynSets.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); 74 | this.getSynSets.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 75 | this.getSynSets.Location = new System.Drawing.Point(482, 26); 76 | this.getSynSets.Name = "getSynSets"; 77 | this.getSynSets.Size = new System.Drawing.Size(75, 23); 78 | this.getSynSets.TabIndex = 3; 79 | this.getSynSets.Text = "Get synsets"; 80 | this.getSynSets.UseVisualStyleBackColor = true; 81 | this.getSynSets.Click += new System.EventHandler(this.getSynSets_Click); 82 | // 83 | // test 84 | // 85 | this.test.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); 86 | this.test.Location = new System.Drawing.Point(690, 403); 87 | this.test.Name = "test"; 88 | this.test.Size = new System.Drawing.Size(252, 23); 89 | this.test.TabIndex = 2; 90 | this.test.Text = "Test WordNet engine"; 91 | this.test.UseVisualStyleBackColor = true; 92 | this.test.Click += new System.EventHandler(this.test_Click); 93 | // 94 | // label1 95 | // 96 | this.label1.AutoSize = true; 97 | this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 98 | this.label1.Location = new System.Drawing.Point(10, 31); 99 | this.label1.Name = "label1"; 100 | this.label1.Size = new System.Drawing.Size(36, 13); 101 | this.label1.TabIndex = 3; 102 | this.label1.Text = "Word:"; 103 | this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; 104 | // 105 | // synSets 106 | // 107 | this.synSets.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 108 | | System.Windows.Forms.AnchorStyles.Left) 109 | | System.Windows.Forms.AnchorStyles.Right))); 110 | this.synSets.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 111 | this.synSets.FormattingEnabled = true; 112 | this.synSets.Location = new System.Drawing.Point(13, 54); 113 | this.synSets.Name = "synSets"; 114 | this.synSets.Size = new System.Drawing.Size(644, 134); 115 | this.synSets.TabIndex = 4; 116 | this.synSets.SelectedIndexChanged += new System.EventHandler(this.synSets_SelectedIndexChanged); 117 | this.synSets.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.synSets_MouseDoubleClick); 118 | // 119 | // getRelatedSynSets 120 | // 121 | this.getRelatedSynSets.Enabled = false; 122 | this.getRelatedSynSets.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 123 | this.getRelatedSynSets.Location = new System.Drawing.Point(13, 26); 124 | this.getRelatedSynSets.Name = "getRelatedSynSets"; 125 | this.getRelatedSynSets.Size = new System.Drawing.Size(112, 23); 126 | this.getRelatedSynSets.TabIndex = 0; 127 | this.getRelatedSynSets.Text = "Get related synsets"; 128 | this.getRelatedSynSets.UseVisualStyleBackColor = true; 129 | this.getRelatedSynSets.Click += new System.EventHandler(this.getRelatedSynSets_Click); 130 | // 131 | // semanticRelations 132 | // 133 | this.semanticRelations.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 134 | | System.Windows.Forms.AnchorStyles.Left) 135 | | System.Windows.Forms.AnchorStyles.Right))); 136 | this.semanticRelations.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 137 | this.semanticRelations.FormattingEnabled = true; 138 | this.semanticRelations.Location = new System.Drawing.Point(13, 54); 139 | this.semanticRelations.Name = "semanticRelations"; 140 | this.semanticRelations.Size = new System.Drawing.Size(224, 134); 141 | this.semanticRelations.TabIndex = 1; 142 | this.semanticRelations.DoubleClick += new System.EventHandler(this.synSetRelations_DoubleClick); 143 | // 144 | // pos 145 | // 146 | this.pos.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 147 | this.pos.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 148 | this.pos.FormattingEnabled = true; 149 | this.pos.Location = new System.Drawing.Point(229, 28); 150 | this.pos.Name = "pos"; 151 | this.pos.Size = new System.Drawing.Size(61, 21); 152 | this.pos.TabIndex = 2; 153 | // 154 | // label2 155 | // 156 | this.label2.AutoSize = true; 157 | this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 158 | this.label2.Location = new System.Drawing.Point(191, 31); 159 | this.label2.Name = "label2"; 160 | this.label2.Size = new System.Drawing.Size(32, 13); 161 | this.label2.TabIndex = 1; 162 | this.label2.Text = "POS:"; 163 | this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; 164 | // 165 | // groupBox1 166 | // 167 | this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 168 | | System.Windows.Forms.AnchorStyles.Left) 169 | | System.Windows.Forms.AnchorStyles.Right))); 170 | this.groupBox1.Controls.Add(this.mostCommon); 171 | this.groupBox1.Controls.Add(this.label3); 172 | this.groupBox1.Controls.Add(this.synsetID); 173 | this.groupBox1.Controls.Add(this.synSets); 174 | this.groupBox1.Controls.Add(this.word); 175 | this.groupBox1.Controls.Add(this.label2); 176 | this.groupBox1.Controls.Add(this.getSynSets); 177 | this.groupBox1.Controls.Add(this.pos); 178 | this.groupBox1.Controls.Add(this.label1); 179 | this.groupBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 180 | this.groupBox1.Location = new System.Drawing.Point(12, 43); 181 | this.groupBox1.Name = "groupBox1"; 182 | this.groupBox1.Size = new System.Drawing.Size(672, 216); 183 | this.groupBox1.TabIndex = 0; 184 | this.groupBox1.TabStop = false; 185 | this.groupBox1.Text = "Synsets"; 186 | // 187 | // mostCommon 188 | // 189 | this.mostCommon.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); 190 | this.mostCommon.AutoSize = true; 191 | this.mostCommon.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 192 | this.mostCommon.Location = new System.Drawing.Point(563, 30); 193 | this.mostCommon.Name = "mostCommon"; 194 | this.mostCommon.Size = new System.Drawing.Size(92, 17); 195 | this.mostCommon.TabIndex = 7; 196 | this.mostCommon.Text = "Most common"; 197 | this.mostCommon.UseVisualStyleBackColor = true; 198 | // 199 | // label3 200 | // 201 | this.label3.AutoSize = true; 202 | this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 203 | this.label3.Location = new System.Drawing.Point(296, 31); 204 | this.label3.Name = "label3"; 205 | this.label3.Size = new System.Drawing.Size(21, 13); 206 | this.label3.TabIndex = 6; 207 | this.label3.Text = "ID:"; 208 | this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight; 209 | // 210 | // synsetID 211 | // 212 | this.synsetID.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 213 | this.synsetID.Location = new System.Drawing.Point(323, 28); 214 | this.synsetID.Name = "synsetID"; 215 | this.synsetID.Size = new System.Drawing.Size(139, 20); 216 | this.synsetID.TabIndex = 5; 217 | this.synsetID.TextChanged += new System.EventHandler(this.synsetID_TextChanged); 218 | this.synsetID.KeyDown += new System.Windows.Forms.KeyEventHandler(this.synsetID_KeyDown); 219 | // 220 | // groupBox2 221 | // 222 | this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 223 | | System.Windows.Forms.AnchorStyles.Right))); 224 | this.groupBox2.Controls.Add(this.semanticRelations); 225 | this.groupBox2.Controls.Add(this.getRelatedSynSets); 226 | this.groupBox2.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 227 | this.groupBox2.Location = new System.Drawing.Point(690, 43); 228 | this.groupBox2.Name = "groupBox2"; 229 | this.groupBox2.Size = new System.Drawing.Size(251, 216); 230 | this.groupBox2.TabIndex = 1; 231 | this.groupBox2.TabStop = false; 232 | this.groupBox2.Text = "Semantic relations"; 233 | // 234 | // menuStrip1 235 | // 236 | this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { 237 | this.wordNetToolStripMenuItem}); 238 | this.menuStrip1.Location = new System.Drawing.Point(0, 0); 239 | this.menuStrip1.Name = "menuStrip1"; 240 | this.menuStrip1.Size = new System.Drawing.Size(953, 24); 241 | this.menuStrip1.TabIndex = 14; 242 | this.menuStrip1.Text = "menuStrip1"; 243 | // 244 | // wordNetToolStripMenuItem 245 | // 246 | this.wordNetToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { 247 | this.exitToolStripMenuItem}); 248 | this.wordNetToolStripMenuItem.Name = "wordNetToolStripMenuItem"; 249 | this.wordNetToolStripMenuItem.Size = new System.Drawing.Size(35, 20); 250 | this.wordNetToolStripMenuItem.Text = "File"; 251 | // 252 | // exitToolStripMenuItem 253 | // 254 | this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; 255 | this.exitToolStripMenuItem.Size = new System.Drawing.Size(103, 22); 256 | this.exitToolStripMenuItem.Text = "Exit"; 257 | this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); 258 | // 259 | // groupBox3 260 | // 261 | this.groupBox3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); 262 | this.groupBox3.Controls.Add(this.lexicalRelations); 263 | this.groupBox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 264 | this.groupBox3.Location = new System.Drawing.Point(691, 267); 265 | this.groupBox3.Name = "groupBox3"; 266 | this.groupBox3.Size = new System.Drawing.Size(251, 130); 267 | this.groupBox3.TabIndex = 2; 268 | this.groupBox3.TabStop = false; 269 | this.groupBox3.Text = "Lexical relations"; 270 | // 271 | // lexicalRelations 272 | // 273 | this.lexicalRelations.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 274 | | System.Windows.Forms.AnchorStyles.Left) 275 | | System.Windows.Forms.AnchorStyles.Right))); 276 | this.lexicalRelations.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 277 | this.lexicalRelations.FormattingEnabled = true; 278 | this.lexicalRelations.HorizontalScrollbar = true; 279 | this.lexicalRelations.Location = new System.Drawing.Point(12, 25); 280 | this.lexicalRelations.Name = "lexicalRelations"; 281 | this.lexicalRelations.Size = new System.Drawing.Size(224, 82); 282 | this.lexicalRelations.TabIndex = 1; 283 | // 284 | // computeSemSim 285 | // 286 | this.computeSemSim.Enabled = false; 287 | this.computeSemSim.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 288 | this.computeSemSim.Location = new System.Drawing.Point(12, 87); 289 | this.computeSemSim.Name = "computeSemSim"; 290 | this.computeSemSim.Size = new System.Drawing.Size(190, 23); 291 | this.computeSemSim.TabIndex = 8; 292 | this.computeSemSim.Text = "Compute semantic similarity"; 293 | this.computeSemSim.UseVisualStyleBackColor = true; 294 | this.computeSemSim.Click += new System.EventHandler(this.computeSemSim_Click); 295 | // 296 | // ss1 297 | // 298 | this.ss1.AutoSize = true; 299 | this.ss1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 300 | this.ss1.Location = new System.Drawing.Point(9, 40); 301 | this.ss1.Name = "ss1"; 302 | this.ss1.Size = new System.Drawing.Size(132, 13); 303 | this.ss1.TabIndex = 9; 304 | this.ss1.Text = "Double-click synset to add"; 305 | this.ss1.DoubleClick += new System.EventHandler(this.ss1_DoubleClick); 306 | // 307 | // ss2 308 | // 309 | this.ss2.AutoSize = true; 310 | this.ss2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 311 | this.ss2.Location = new System.Drawing.Point(9, 60); 312 | this.ss2.Name = "ss2"; 313 | this.ss2.Size = new System.Drawing.Size(132, 13); 314 | this.ss2.TabIndex = 10; 315 | this.ss2.Text = "Double-click synset to add"; 316 | this.ss2.DoubleClick += new System.EventHandler(this.ss2_DoubleClick); 317 | // 318 | // groupBox4 319 | // 320 | this.groupBox4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) 321 | | System.Windows.Forms.AnchorStyles.Right))); 322 | this.groupBox4.Controls.Add(this.ss1); 323 | this.groupBox4.Controls.Add(this.ss2); 324 | this.groupBox4.Controls.Add(this.computeSemSim); 325 | this.groupBox4.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 326 | this.groupBox4.Location = new System.Drawing.Point(13, 267); 327 | this.groupBox4.Name = "groupBox4"; 328 | this.groupBox4.Size = new System.Drawing.Size(672, 130); 329 | this.groupBox4.TabIndex = 15; 330 | this.groupBox4.TabStop = false; 331 | this.groupBox4.Text = "Semantic similarity"; 332 | // 333 | // TestForm 334 | // 335 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 336 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 337 | this.ClientSize = new System.Drawing.Size(953, 456); 338 | this.Controls.Add(this.groupBox4); 339 | this.Controls.Add(this.groupBox3); 340 | this.Controls.Add(this.groupBox2); 341 | this.Controls.Add(this.groupBox1); 342 | this.Controls.Add(this.test); 343 | this.Controls.Add(this.menuStrip1); 344 | this.MainMenuStrip = this.menuStrip1; 345 | this.MinimumSize = new System.Drawing.Size(961, 490); 346 | this.Name = "TestForm"; 347 | this.Text = "Test Application"; 348 | this.groupBox1.ResumeLayout(false); 349 | this.groupBox1.PerformLayout(); 350 | this.groupBox2.ResumeLayout(false); 351 | this.menuStrip1.ResumeLayout(false); 352 | this.menuStrip1.PerformLayout(); 353 | this.groupBox3.ResumeLayout(false); 354 | this.groupBox4.ResumeLayout(false); 355 | this.groupBox4.PerformLayout(); 356 | this.ResumeLayout(false); 357 | this.PerformLayout(); 358 | 359 | } 360 | 361 | #endregion 362 | 363 | private System.Windows.Forms.TextBox word; 364 | private System.Windows.Forms.Button getSynSets; 365 | private System.Windows.Forms.Button test; 366 | private System.Windows.Forms.Label label1; 367 | private System.Windows.Forms.ListBox synSets; 368 | private System.Windows.Forms.Button getRelatedSynSets; 369 | private System.Windows.Forms.ListBox semanticRelations; 370 | private System.Windows.Forms.ComboBox pos; 371 | private System.Windows.Forms.Label label2; 372 | private System.Windows.Forms.GroupBox groupBox1; 373 | private System.Windows.Forms.GroupBox groupBox2; 374 | private System.Windows.Forms.MenuStrip menuStrip1; 375 | private System.Windows.Forms.ToolStripMenuItem wordNetToolStripMenuItem; 376 | private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; 377 | private System.Windows.Forms.Label label3; 378 | private System.Windows.Forms.TextBox synsetID; 379 | private System.Windows.Forms.CheckBox mostCommon; 380 | private System.Windows.Forms.GroupBox groupBox3; 381 | private System.Windows.Forms.ListBox lexicalRelations; 382 | private System.Windows.Forms.Button computeSemSim; 383 | private System.Windows.Forms.Label ss2; 384 | private System.Windows.Forms.Label ss1; 385 | private System.Windows.Forms.GroupBox groupBox4; 386 | } 387 | } 388 | 389 | -------------------------------------------------------------------------------- /src/TestApplication/TestForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | using System.IO; 10 | using System.Threading; 11 | 12 | using LAIR.ResourceAPIs.WordNet; 13 | using LAIR.Collections.Generic; 14 | 15 | namespace TestApplication 16 | { 17 | public partial class TestForm : Form 18 | { 19 | private WordNetEngine _wordNetEngine; 20 | private SynSet _semSimSs1; 21 | private SynSet _semSimSs2; 22 | private string _origSsLbl; 23 | private WordNetSimilarityModel _semanticSimilarityModel; 24 | 25 | public TestForm() 26 | { 27 | InitializeComponent(); 28 | 29 | // create wordnet engine (use disk-based retrieval by default) 30 | string root = Directory.GetDirectoryRoot("."); 31 | _wordNetEngine = new WordNetEngine(root + @"\dev\wordnetapi\resources\", false); 32 | 33 | if (!_wordNetEngine.InMemory) 34 | test.Text += " (will take a while)"; 35 | 36 | // populate POS list 37 | foreach (WordNetEngine.POS p in Enum.GetValues(typeof(WordNetEngine.POS))) 38 | if (p != WordNetEngine.POS.None) 39 | pos.Items.Add(p); 40 | 41 | pos.SelectedIndex = 0; 42 | 43 | // allow scrolling of synset list 44 | synSets.HorizontalScrollbar = true; 45 | 46 | _semSimSs1 = _semSimSs2 = null; 47 | _origSsLbl = ss1.Text; 48 | _semanticSimilarityModel = new WordNetSimilarityModel(_wordNetEngine); 49 | } 50 | 51 | private void getSynSets_Click(object sender, EventArgs e) 52 | { 53 | synSets.Items.Clear(); 54 | semanticRelations.Items.Clear(); 55 | lexicalRelations.Items.Clear(); 56 | getRelatedSynSets.Enabled = false; 57 | 58 | // retrive synsets 59 | Set synSetsToShow = null; 60 | if (synsetID.Text != "") 61 | { 62 | try { synSetsToShow = new Set(new SynSet[] { _wordNetEngine.GetSynSet(synsetID.Text) }); } 63 | catch (Exception) 64 | { 65 | MessageBox.Show("Invalid SynSet ID"); 66 | return; 67 | } 68 | } 69 | else 70 | { 71 | // get single most common synset 72 | if (mostCommon.Checked) 73 | { 74 | try 75 | { 76 | SynSet synset = _wordNetEngine.GetMostCommonSynSet(word.Text, (WordNetEngine.POS)pos.SelectedItem); 77 | 78 | if (synset != null) 79 | synSetsToShow = new Set(new SynSet[] { synset }); 80 | } 81 | catch (Exception ex) { MessageBox.Show("Error: " + ex); return; } 82 | } 83 | // get all synsets 84 | else 85 | { 86 | try { synSetsToShow = _wordNetEngine.GetSynSets(word.Text, (WordNetEngine.POS)pos.SelectedItem); } 87 | catch (Exception ex) { MessageBox.Show("Error: " + ex); return; } 88 | } 89 | } 90 | 91 | if (synSetsToShow.Count > 0) 92 | foreach (SynSet synSet in synSetsToShow) 93 | synSets.Items.Add(synSet); 94 | else 95 | MessageBox.Show("No synsets found"); 96 | } 97 | 98 | private void synSets_SelectedIndexChanged(object sender, EventArgs e) 99 | { 100 | semanticRelations.Items.Clear(); 101 | lexicalRelations.Items.Clear(); 102 | computeSemSim.Enabled = false; 103 | getRelatedSynSets.Enabled = synSets.SelectedItem != null; 104 | 105 | // select a synset if none is selected and there is one 106 | if (synSets.SelectedItems.Count == 0) 107 | { 108 | if (synSets.Items.Count > 0) 109 | synSets.SelectedIndex = 0; 110 | } 111 | else if (synSets.SelectedItems.Count == 1) 112 | { 113 | SynSet selectedSynSet = synSets.SelectedItem as SynSet; 114 | 115 | // populate semantic relation list for the current synset 116 | semanticRelations.Items.Clear(); 117 | foreach (WordNetEngine.SynSetRelation synSetRelation in selectedSynSet.SemanticRelations) 118 | semanticRelations.Items.Add(synSetRelation + ": " + selectedSynSet.GetRelatedSynSetCount(synSetRelation)); 119 | 120 | // populate list of lexically related words for the current synset 121 | lexicalRelations.Items.Clear(); 122 | Dictionary>> lexicallyRelatedWords = selectedSynSet.GetLexicallyRelatedWords(); 123 | foreach (WordNetEngine.SynSetRelation lexicalRelation in lexicallyRelatedWords.Keys) 124 | foreach (string word1 in lexicallyRelatedWords[lexicalRelation].Keys) 125 | foreach (string word2 in lexicallyRelatedWords[lexicalRelation][word1]) 126 | lexicalRelations.Items.Add(word1 + " -- " + lexicalRelation + " --> " + word2); 127 | 128 | // show id 129 | synsetID.Text = selectedSynSet.ID; 130 | } 131 | } 132 | 133 | private void getRelatedSynSets_Click(object sender, EventArgs e) 134 | { 135 | SynSet selectedSynSet = synSets.SelectedItem as SynSet; 136 | 137 | if (selectedSynSet == null || semanticRelations.SelectedIndex == -1) 138 | return; 139 | 140 | synSets.Items.Clear(); 141 | 142 | // get relations 143 | string relationStr = semanticRelations.SelectedItem.ToString(); 144 | relationStr = relationStr.Split(':')[0].Trim(); 145 | WordNetEngine.SynSetRelation relation = (WordNetEngine.SynSetRelation)Enum.Parse(typeof(WordNetEngine.SynSetRelation), relationStr); 146 | 147 | // add related synset 148 | foreach (SynSet relatedSynset in selectedSynSet.GetRelatedSynSets(relation, false)) 149 | synSets.Items.Add(relatedSynset); 150 | 151 | // selected synset 152 | if (synSets.Items.Count > 0) 153 | synSets.SelectedIndex = 0; 154 | } 155 | 156 | private void synSetRelations_DoubleClick(object sender, EventArgs e) 157 | { 158 | getRelatedSynSets_Click(sender, e); 159 | } 160 | 161 | private void word_KeyDown(object sender, KeyEventArgs e) 162 | { 163 | if (e.KeyCode == Keys.Enter) 164 | getSynSets_Click(sender, e); 165 | } 166 | 167 | private void test_Click(object sender, EventArgs e) 168 | { 169 | Thread t = new Thread(new ThreadStart(delegate() 170 | { 171 | Invoke(new MethodInvoker(delegate() { Enabled = false; })); 172 | 173 | // test all words 174 | Dictionary> words = _wordNetEngine.AllWords; 175 | foreach (WordNetEngine.POS pos in words.Keys) 176 | foreach (string word in words[pos]) 177 | { 178 | // get synsets 179 | Set synsets = _wordNetEngine.GetSynSets(word, pos); 180 | if (synsets.Count == 0) 181 | if (MessageBox.Show("Failed to get synset for " + pos + ": " + word + ". Quit?", "Quit?", MessageBoxButtons.YesNo) == DialogResult.Yes) 182 | return; 183 | 184 | // make sure there's a most common synset 185 | if (_wordNetEngine.GetMostCommonSynSet(word, pos) == null) 186 | throw new NullReferenceException("Failed to find most common synset"); 187 | 188 | // check each synset 189 | foreach (SynSet synset in synsets) 190 | { 191 | // check lexically related words 192 | synset.GetLexicallyRelatedWords(); 193 | 194 | // check relations 195 | foreach (WordNetEngine.SynSetRelation relation in synset.SemanticRelations) 196 | synset.GetRelatedSynSets(relation, false); 197 | 198 | // check lex file name 199 | if (synset.LexicographerFileName == WordNetEngine.LexicographerFileName.None) 200 | throw new Exception("Invalid lex file name"); 201 | } 202 | } 203 | 204 | MessageBox.Show("Test completed. Everything looks okay."); 205 | 206 | Invoke(new MethodInvoker(delegate() { Enabled = true; })); 207 | })); 208 | 209 | t.Start(); 210 | } 211 | 212 | private void exitToolStripMenuItem_Click(object sender, EventArgs e) 213 | { 214 | Close(); 215 | } 216 | 217 | private void word_TextChanged(object sender, EventArgs e) 218 | { 219 | synsetID.TextChanged -= new EventHandler(synsetID_TextChanged); 220 | synsetID.Text = ""; 221 | synsetID.TextChanged += new EventHandler(synsetID_TextChanged); 222 | } 223 | 224 | private void synsetID_TextChanged(object sender, EventArgs e) 225 | { 226 | word.TextChanged -= new EventHandler(word_TextChanged); 227 | word.Text = ""; 228 | word.TextChanged += new EventHandler(word_TextChanged); 229 | } 230 | 231 | private void synsetID_KeyDown(object sender, KeyEventArgs e) 232 | { 233 | if (e.KeyCode == Keys.Enter) 234 | getSynSets_Click(sender, e); 235 | } 236 | 237 | private void computeSemSim_Click(object sender, EventArgs e) 238 | { 239 | if (_semSimSs1.POS != _semSimSs2.POS) 240 | { 241 | MessageBox.Show("Selected synsets must have the same part-of-speech."); 242 | return; 243 | } 244 | 245 | string result = ""; 246 | foreach (WordNetSimilarityModel.Strategy strategy in Enum.GetValues(typeof(WordNetSimilarityModel.Strategy))) 247 | { 248 | float sim = _semanticSimilarityModel.GetSimilarity(_semSimSs1, _semSimSs2, strategy, WordNetEngine.SynSetRelation.Hypernym); 249 | result += strategy + ": " + sim + Environment.NewLine; 250 | } 251 | 252 | MessageBox.Show(result); 253 | } 254 | 255 | private void synSets_MouseDoubleClick(object sender, MouseEventArgs e) 256 | { 257 | if (synSets.SelectedItem == null) 258 | return; 259 | 260 | SynSet s = (SynSet)synSets.SelectedItem; 261 | if (_semSimSs1 == null) 262 | { 263 | _semSimSs1 = s; 264 | ss1.Text = _semSimSs1.ToString() + " (double-click to remove)"; 265 | } 266 | else if (_semSimSs2 == null) 267 | { 268 | _semSimSs2 = s; 269 | ss2.Text = _semSimSs2.ToString() + " (double-click to remove)"; 270 | } 271 | else 272 | MessageBox.Show("Please remove one of the synsets selected below (double-click it)"); 273 | 274 | computeSemSim.Enabled = _semSimSs1 != null && _semSimSs2 != null; 275 | } 276 | 277 | private void ss1_DoubleClick(object sender, EventArgs e) 278 | { 279 | ss1.Text = _origSsLbl; 280 | _semSimSs1 = null; 281 | computeSemSim.Enabled = false; 282 | } 283 | 284 | private void ss2_DoubleClick(object sender, EventArgs e) 285 | { 286 | ss2.Text = _origSsLbl; 287 | _semSimSs2 = null; 288 | computeSemSim.Enabled = false; 289 | } 290 | } 291 | } 292 | -------------------------------------------------------------------------------- /src/TestApplication/TestForm.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 17, 17 122 | 123 | -------------------------------------------------------------------------------- /src/WordNet.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual Studio 2010 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WordNet", "WordNet\WordNet.csproj", "{F4C6C48C-90EF-445D-B8F8-AD9B6767D9A8}" 5 | EndProject 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestApplication", "TestApplication\TestApplication.csproj", "{4CE87CD7-26B9-46AD-B192-C53096B7427D}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {F4C6C48C-90EF-445D-B8F8-AD9B6767D9A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {F4C6C48C-90EF-445D-B8F8-AD9B6767D9A8}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {F4C6C48C-90EF-445D-B8F8-AD9B6767D9A8}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {F4C6C48C-90EF-445D-B8F8-AD9B6767D9A8}.Release|Any CPU.Build.0 = Release|Any CPU 18 | {4CE87CD7-26B9-46AD-B192-C53096B7427D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 19 | {4CE87CD7-26B9-46AD-B192-C53096B7427D}.Debug|Any CPU.Build.0 = Debug|Any CPU 20 | {4CE87CD7-26B9-46AD-B192-C53096B7427D}.Release|Any CPU.ActiveCfg = Release|Any CPU 21 | {4CE87CD7-26B9-46AD-B192-C53096B7427D}.Release|Any CPU.Build.0 = Release|Any CPU 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /src/WordNet/Docs/README.txt: -------------------------------------------------------------------------------- 1 | ********************************************* 2 | * * 3 | * WordNet 3.0 API in C# * 4 | * Date: August 20, 2009 * 5 | * Author: Matt Gerber (gerberm2@msu.edu) * 6 | * * 7 | ********************************************* 8 | 9 | 10 | LICENSE 11 | 12 | Free. Do whatever you want with it. 13 | 14 | 15 | WARNING 16 | 17 | This API will modify the index.* files that are distributed 18 | with WordNet. These files will be re-sorted for use by the .NET 19 | runtime, whose string sort order differs from that of the Java 20 | runtime. As a result, the Java (and other) APIs/applications might not 21 | function correctly when used with the re-sorted index.* files. You 22 | should create multiple copies of the WordNet data (one for each 23 | runtime) to avoid such problems. 24 | 25 | 26 | COMPILATION 27 | 28 | 1) The WordNet API depends on some libraries that are distributed 29 | separately. To get them, perform a Subversion checkout from the 30 | following URL: 31 | 32 | https://ptl.sys.virginia.edu/msg8u/NLP/Libraries/Public 33 | 34 | 2) Right-click on the WordNet project, select "Properties", and go to 35 | "Build". Change "Output path" to the Public directory that was 36 | checked out in the previous step. Check the box next to "XML 37 | documentation file". 38 | 39 | 3) Right-click on the WordNet project and select "Build". 40 | 41 | 42 | FAQ 43 | 44 | 1) Which version of the WordNet data should I use? 45 | 46 | This software is designed for version 3.0 of the WordNet data 47 | distribution. The Windows tools (e.g., browser) that come with 48 | WordNet are only compatible with version 2.1 of the data. Don't let 49 | this confuse you: you still need to download version 3.0 of the 50 | data in order to use this software. Here's a link: 51 | 52 | http://wordnetcode.princeton.edu/3.0/WNdb-3.0.tar.gz 53 | 54 | The index.* and data.* files should be unzipped to the directory 55 | that is passed to the WordNetEngine constructor. 56 | 57 | 58 | BUGS REPORTS 59 | 60 | Send to gerber.matthew@gmail.com 61 | -------------------------------------------------------------------------------- /src/WordNet/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("WordNet")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("WordNet")] 13 | [assembly: AssemblyCopyright("Copyright © 2009")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("3c1df4dc-990a-437c-b735-0beebefaa536")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /src/WordNet/WordNet.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Debug 5 | AnyCPU 6 | 9.0.21022 7 | 2.0 8 | {F4C6C48C-90EF-445D-B8F8-AD9B6767D9A8} 9 | Library 10 | Properties 11 | LAIR.ResourceAPIs.WordNet 12 | LAIR.ResourceAPIs.WordNet 13 | v4.0 14 | 512 15 | 16 | 17 | 3.5 18 | 19 | publish\ 20 | true 21 | Disk 22 | false 23 | Foreground 24 | 7 25 | Days 26 | false 27 | false 28 | true 29 | 0 30 | 1.0.0.%2a 31 | false 32 | false 33 | true 34 | 35 | 36 | 37 | true 38 | full 39 | false 40 | bin\Debug\ 41 | DEBUG;TRACE 42 | prompt 43 | 4 44 | AllRules.ruleset 45 | 46 | 47 | pdbonly 48 | true 49 | ..\..\..\..\Libraries\ 50 | TRACE 51 | prompt 52 | 4 53 | ..\..\..\..\Libraries\LAIR.ResourceAPIs.WordNet.XML 54 | AllRules.ruleset 55 | 56 | 57 | 58 | ..\..\lib\LAIR.Collections.dll 59 | 60 | 61 | ..\..\lib\LAIR.Extensions.dll 62 | 63 | 64 | ..\..\lib\LAIR.IO.dll 65 | 66 | 67 | 68 | 3.5 69 | 70 | 71 | 3.5 72 | 73 | 74 | 3.5 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | False 91 | .NET Framework 3.5 SP1 Client Profile 92 | false 93 | 94 | 95 | False 96 | .NET Framework 3.5 SP1 97 | true 98 | 99 | 100 | False 101 | Windows Installer 3.1 102 | true 103 | 104 | 105 | 106 | 113 | -------------------------------------------------------------------------------- /src/WordNet/WordNetSimilarityModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LAIR.ResourceAPIs.WordNet; 6 | using LAIR.Collections.Generic; 7 | 8 | namespace LAIR.ResourceAPIs.WordNet 9 | { 10 | /// 11 | /// Provides WordNet-based semantic similarity measures 12 | /// 13 | public class WordNetSimilarityModel 14 | { 15 | #region static members 16 | /// 17 | /// Similarity strategies 18 | /// 19 | public enum Strategy 20 | { 21 | /// 22 | /// Follow the method described by Wu and Palmer (1994): 2 * depth(lcs) / (depth(s1) + depth(s2)). When multiple 23 | /// synsets are available, the most common sense are used. 24 | /// 25 | WuPalmer1994MostCommon, 26 | 27 | /// 28 | /// Follow the method described by Wu and Palmer (1994): 2 * depth(lcs) / (depth(s1) + depth(s2)). When multiple 29 | /// synsets are available, the ones resulting in minimum similarity are used. 30 | /// 31 | WuPalmer1994Minimum, 32 | 33 | /// 34 | /// Follow the method described by Wu and Palmer (1994): 2 * depth(lcs) / (depth(s1) + depth(s2)). When multiple 35 | /// synsets are available, the ones resulting in maximum similarity are used. 36 | /// 37 | WuPalmer1994Maximum, 38 | 39 | /// 40 | /// Follow the method described by Wu and Palmer (1994): 2 * depth(lcs) / (depth(s1) + depth(s2)). When multiple 41 | /// synsets are available, similarity is averaged across all synsets. 42 | /// 43 | WuPalmer1994Average 44 | } 45 | #endregion 46 | 47 | private WordNetEngine _wordNetEngine; 48 | 49 | /// 50 | /// Gets the WordNet engine for this model 51 | /// 52 | public WordNetEngine WordNetEngine 53 | { 54 | get { return _wordNetEngine; } 55 | } 56 | 57 | /// 58 | /// Constructor 59 | /// 60 | /// WordNet engine to use 61 | public WordNetSimilarityModel(WordNetEngine wordNetEngine) 62 | { 63 | _wordNetEngine = wordNetEngine; 64 | } 65 | 66 | /// 67 | /// Gets similarity of two strings using the most common synset for given string/pos pairs 68 | /// 69 | /// First string 70 | /// First POS 71 | /// Second POS 72 | /// Second string 73 | /// Similarity strategy to use 74 | /// Relations to use when computing similarity 75 | /// Similarity 76 | public float GetSimilarity(string string1, WordNetEngine.POS pos1, string string2, WordNetEngine.POS pos2, Strategy strategy, params WordNetEngine.SynSetRelation[] relations) 77 | { 78 | float similarity = 0; 79 | 80 | if (strategy == Strategy.WuPalmer1994Average) 81 | { 82 | // get average similarity across all synsets 83 | int numScores = 0; 84 | foreach (SynSet synset1 in _wordNetEngine.GetSynSets(string1, pos1)) 85 | foreach (SynSet synset2 in _wordNetEngine.GetSynSets(string2, pos2)) 86 | { 87 | similarity += GetSimilarity(synset1, synset2, strategy, relations); 88 | ++numScores; 89 | } 90 | 91 | if (numScores > 0) 92 | similarity = similarity / (float)numScores; 93 | } 94 | else if (strategy == Strategy.WuPalmer1994Maximum) 95 | { 96 | // get maximum similarity across all synsets 97 | foreach (SynSet synset1 in _wordNetEngine.GetSynSets(string1, pos1)) 98 | foreach (SynSet synset2 in _wordNetEngine.GetSynSets(string2, pos2)) 99 | { 100 | float currSim = GetSimilarity(synset1, synset2, strategy, relations); 101 | if (currSim > similarity) 102 | similarity = currSim; 103 | } 104 | } 105 | else if (strategy == Strategy.WuPalmer1994Minimum) 106 | { 107 | // get minimum similarity across all synsets 108 | similarity = -1; 109 | foreach (SynSet synset1 in _wordNetEngine.GetSynSets(string1, pos1)) 110 | foreach (SynSet synset2 in _wordNetEngine.GetSynSets(string2, pos2)) 111 | { 112 | float currSim = GetSimilarity(synset1, synset2, strategy, relations); 113 | if (similarity == -1 || currSim < similarity) 114 | similarity = currSim; 115 | } 116 | 117 | // if we didn't find any synsets, similarity is zero 118 | if (similarity == -1) 119 | similarity = 0; 120 | } 121 | else if (strategy == Strategy.WuPalmer1994MostCommon) 122 | { 123 | // use most common synsets 124 | SynSet synset1 = _wordNetEngine.GetMostCommonSynSet(string1, pos1); 125 | SynSet synset2 = _wordNetEngine.GetMostCommonSynSet(string2, pos2); 126 | 127 | if (synset1 != null && synset2 != null) 128 | similarity = GetSimilarity(synset1, synset2, strategy, relations); 129 | } 130 | else 131 | throw new NotImplementedException("Unimplemented strategy: " + strategy); 132 | 133 | if (similarity < 0 || similarity > 1) 134 | throw new Exception("Invalid similarity: " + similarity); 135 | 136 | return similarity; 137 | } 138 | 139 | /// 140 | /// Gets similarity of two synsets 141 | /// 142 | /// First synset 143 | /// Second synset 144 | /// Strategy to use. All strategies named WuPalmer1994* will produce the same result since only two synsets 145 | /// are available. 146 | /// Synset relations to follow when computing similarity (pass null for all relations) 147 | /// Similarity 148 | public float GetSimilarity(SynSet synset1, SynSet synset2, Strategy strategy, params WordNetEngine.SynSetRelation[] relations) 149 | { 150 | if (relations == null) 151 | relations = Enum.GetValues(typeof(WordNetEngine.SynSetRelation)).Cast().ToArray(); 152 | 153 | float similarity = 0; 154 | 155 | if (strategy.ToString().StartsWith("WuPalmer1994")) 156 | { 157 | // get the LCS along the similarity relations 158 | SynSet lcs = synset1.GetClosestMutuallyReachableSynset(synset2, relations); 159 | if (lcs == null) 160 | similarity = 0; 161 | else 162 | { 163 | // get depth of synsets 164 | int lcsDepth = lcs.GetDepth(relations) + 1; 165 | int synset1Depth = synset1.GetShortestPathTo(lcs, relations).Count - 1 + lcsDepth; 166 | int synset2Depth = synset2.GetShortestPathTo(lcs, relations).Count - 1 + lcsDepth; 167 | 168 | // get similarity 169 | similarity = 2 * lcsDepth / (float)(synset1Depth + synset2Depth); 170 | } 171 | } 172 | else 173 | throw new NotImplementedException("Unrecognized strategy"); 174 | 175 | if (similarity < 0 || similarity > 1) 176 | throw new Exception("Invalid similarity"); 177 | 178 | return similarity; 179 | } 180 | } 181 | } 182 | --------------------------------------------------------------------------------