Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
WNSEARCH(3WN)		   WordNettm Library Functions		   WNSEARCH(3WN)

NAME
     findtheinfo,  findtheinfo_ds, is_defined, in_wn, index_lookup, parse_index,
     getindex, read_synset, parse_synset,  free_syns,  free_synset,  free_index,
     traceptrs_ds, do_trace

SYNOPSIS
     #include "wn.h"

     char *findtheinfo(char *searchstr, int pos, int ptr_type, int sense_num);

     SynsetPtr	findtheinfo_ds(char  *searchstr,  int  pos,  int  ptr_type,  int
     sense_num );

     unsigned int is_defined(char *searchstr, int pos);

     unsigned int in_wn(char *searchstr, int pos);

     IndexPtr index_lookup(char *searchstr, int pos);

     IndexPtr parse_index(long offset, int dabase, char *line);

     IndexPtr getindex(char *searchstr, int pos);

     SynsetPtr read_synset(int pos, long synset_offset, char *searchstr);

     SynsetPtr parse_synset(FILE *fp, int pos, char *searchstr);

     void free_syns(SynsetPtr synptr);

     void free_synset(SynsetPtr synptr);

     void free_index(IndexPtr idx);

     SynsetPtr traceptrs_ds(SynsetPtr synptr, int ptr_type, int pos, int depth);

     char *do_trace(SynsetPtr synptr, int ptr_type, int pos, int depth);

DESCRIPTION
     These functions are used for searching the WordNet database.   They  gener-
     ally  fall into several categories: functions for reading and parsing index
     file entries; functions for reading and  parsing  synsets	in  data  files;
     functions for tracing pointers and hierarchies; functions for freeing space
     occupied by data structures allocated with malloc(3).

     In the following function descriptions, pos is one of the following:

	    1	 NOUN
	    2	 VERB
	    3	 ADJECTIVE
	    4	 ADVERB

     findtheinfo()  is the primary search algorithm for use with database inter-
     face applications.  Search  results  are  automatically  formatted,  and  a
     pointer  to the text buffer is returned.  All searches listed in WNHOME/in-
     clude/wn.h can be done by findtheinfo().  findtheinfo_ds() can be	used  to
     perform  most  of the searches, with results returned in a linked list data
     structure.  This is for use with applications  that  need	to  analyze  the
     search results rather than just display them.

     Both functions are passed the same arguments: searchstr is the word or col-
     location  to search for; pos indicates the syntactic category to search in;
     ptr_type is one of the valid search types for searchstr in pos.  (Available
     searches  can  be	obtained  by  calling  is_defined()  described	 below.)
     sense_num	should be ALLSENSES if the search is to be done on all senses of
     searchstr in pos, or a positive integer indicating which sense to search.

     findtheinfo_ds()  returns	a  linked  list  data  structures   representing
     synsets.	Senses	are  linked  through  the  nextss field of a Synset data
     structure.  For each sense, synsets that match the  search  specified  with
     ptr_type are linked through the ptrlist field.  See Synset Navigation , be-
     low, for detailed information on the linked lists returned.

     is_defined() sets a bit for each search type that is valid for searchstr in
     pos,  and	returns  the resulting unsigned integer.  Each bit number corre-
     sponds to a pointer type constant defined in WNHOME/include/wn.h.	For  ex-
     ample,  if bit 2 is set, the HYPERPTR search is valid for searchstr.  There
     are 29 possible searches.

     in_wn() is used to find the syntactic categories in  the  WordNet	database
     that  contain one or more senses of searchstr.  If pos is ALL_POS, all syn-
     tactic categories are checked.  Otherwise, only the part of  speech  passed
     is  checked.   An unsigned integer is returned with a bit set corresponding
     to each syntactic category containing searchstr.  The  bit  number  matches
     the  number  for  the  part  of  speech.  0 is returned if searchstr is not
     present in pos.

     index_lookup() finds searchstr in the index file  for  pos  and  returns  a
     pointer to the parsed entry in an Index data structure.  searchstr must ex-
     actly  match the form of the word (lower case only, hyphens and underscores
     in the same places) in the index file.  NULL is returned if a match is  not
     found.

     parse_index()  parses  an entry from an index file and returns a pointer to
     the parsed entry in an Index data structure.  Passed the  byte  offset  and
     syntactic category, it reads the index entry at the desired location in the
     corresponding  file.  If passed line, line contains an index file entry and
     the database index file is not consulted.	However, offset and dbase should
     still be passed so the information can be stored in the Index structure.

     getindex() is a "smart" search for searchstr in the index file  correspond-
     ing to pos.  It applies to searchstr an algorithm that replaces underscores
     with  hyphens,  hyphens  with underscores, removes hyphens and underscores,
     and removes periods in an attempt to find a form of the string that  is  an
     exact  match  for	an  entry  in  the index file corresponding to pos.  in-
     dex_lookup() is called on each transformed string until a match is found or
     all the different strings have been tried.  It returns  a	pointer  to  the
     parsed Index data structure for searchstr, or NULL if a match is not found.

     read_synset()  is	used to read a synset from a byte offset in a data file.
     It performs an fseek(3) to synset_offset in the data file corresponding  to
     pos,  and	calls parse_synset() to read and parse the synset.  A pointer to
     the Synset data structure containing the parsed synset is returned.

     parse_synset() reads the synset at the current offset in the file indicated
     by fp.  pos is the syntactic category, and searchstr, if  not  NULL,  indi-
     cates  the word in the synset that the caller is interested in.  An attempt
     is made to match searchstr to one of the words in the synset.  If an  exact
     match  is found, the whichword field in the Synset structure is set to that
     word's number in the synset (beginning to count from 1).

     free_syns() is used to free a linked list of Synset structures allocated by
     findtheinfo_ds().	synptr is a pointer to the list to free.

     free_synset() frees the Synset structure pointed to by synptr.

     free_index() frees the Index structure pointed to by idx.

     traceptrs_ds() is a recursive search algorithm that traces pointers  match-
     ing  ptr_type starting with the synset pointed to by synptr.  Setting depth
     to 1 when traceptrs_ds() is called indicates a recursive  search;	0  indi-
     cates a non-recursive call.  synptr points to the data structure represent-
     ing  the  synset  to search for a pointer of type ptr_type.  When a pointer
     type match is found, the synset pointed to  is  read  is  linked  onto  the
     nextss  chain.   Levels  of  the  tree  generated by a recursive search are
     linked via the ptrlist field structure until NULL is found, indicating  the
     top (or bottom) of the tree.  This function is usually called from findthe-
     info_ds()	for  each sense of the word.  See Synset Navigation , below, for
     detailed information on the linked lists returned.

     do_trace() performs the search indicated by ptr_type on  synset  synptr  in
     syntactic category pos.  depth is defined as above.  do_trace() returns the
     search results formatted in a text buffer.

   Synset Navigation
     Since  the  Synset structure is used to represent the synsets for both word
     senses and pointers, the ptrlist and nextss fields have different	meanings
     depending	on  whether  the structure is a word sense or pointer.	This can
     make navigation through the lists returned by findtheinfo_ds() confusing.

     Navigation through the returned list involves the following:

     Following the nextss chain from the synset returned moves through the vari-
     ous senses of searchstr.  NULL indicates that end of the chain of senses.

     Following the ptrlist chain from a Synset structure  representing	a  sense
     traces  the  hierarchy  of  the  search results for that sense.  Subsequent
     links in the ptrlist chain indicate the next level (up or	down,  depending
     on  the  search)  in the hierarchy.  NULL indicates the end of the chain of
     search result synsets.

     If a synset pointed to by ptrlist has a value in the nextss field, it  rep-
     resents  another  pointer	of the same type at that level in the hierarchy.
     For example, some noun synsets have two hypernyms.  Following  this  nextss
     pointer,  and  then the ptrlist chain from the Synset structure pointed to,
     traces another, parallel, hierarchy, until the end is indicated by NULL  on
     that ptrlist chain.  So, a synset representing a pointer (versus a sense of
     searchstr)  having  a  non-NULL value in nextss has another chain of search
     results linked through the ptrlist  chain	of  the  synset  pointed  to  by
     nextss.

     If  searchstr  contains  more than one base form in WordNet (as in the noun
     axes, which has base forms axe and axis), synsets representing  the  search
     results  for  each base form are linked through the nextform pointer of the
     Synset structure.

   WordNet Searches
     There is no extensive description of what each search type is  or	the  re-
     sults  returned.	Using  the WordNet interface, examining the source code,
     and reading wndb(5WN) are the best ways to see what types of  searches  are
     available and the data returned for each.

     Listed below are the valid searches that can be passed as ptr_type to find-
     theinfo().   Passing a negative value (when applicable) causes a recursive,
     hierarchical search by setting depth to 1 when traceptrs() is called.

+------------------+-------+---------+--------------------------------------------+
| ptr_type	   | Value | Pointer | Search					  |
|		   |	   | Symbol  |						  |
+------------------+-------+---------+--------------------------------------------+
| ANTPTR	   |   1   |	!    | Antonyms 				  |
| HYPERPTR	   |   2   |	@    | Hypernyms				  |
| HYPOPTR	   |   3   |	~    | Hyponyms 				  |
| ENTAILPTR	   |   4   |	*    | Entailment				  |
| SIMPTR	   |   5   |	&    | Similar					  |
| ISMEMBERPTR	   |   6   |   #m    | Member meronym				  |
| ISSTUFFPTR	   |   7   |   #s    | Substance meronym			  |
| ISPARTPTR	   |   8   |   #p    | Part meronym				  |
| HASMEMBERPTR	   |   9   |   %m    | Member holonym				  |
| HASSTUFFPTR	   |  10   |   %s    | Substance holonym			  |
| HASPARTPTR	   |  11   |   %p    | Part holonym				  |
| MERONYM	   |  12   |	%    | All meronyms				  |
| HOLONYM	   |  13   |	#    | All holonyms				  |
| CAUSETO	   |  14   |	>    | Cause					  |
| PPLPTR	   |  15   |	<    | Participle of verb			  |
| SEEALSOPTR	   |  16   |	^    | Also see 				  |
| PERTPTR	   |  17   |	\    | Pertains to noun or derived from adjective |
| ATTRIBUTE	   |  18   |   \=    | Attribute				  |
| VERBGROUP	   |  19   |	$    | Verb group				  |
| DERIVATION	   |  20   |	+    | Derivationally related form		  |
| CLASSIFICATION   |  21   |	;    | Domain of synset 			  |
| CLASS 	   |  22   |	-    | Member of this domain			  |
| SYNS		   |  23   |   n/a   | Find synonyms				  |
| FREQ		   |  24   |   n/a   | Polysemy 				  |
| FRAMES	   |  25   |   n/a   | Verb example sentences and generic frames  |
| COORDS	   |  26   |   n/a   | Noun coordinates 			  |
| RELATIVES	   |  27   |   n/a   | Group related senses			  |
| HMERONYM	   |  28   |   n/a   | Hierarchical meronym search		  |
| HHOLONYM	   |  29   |   n/a   | Hierarchical holonym search		  |
| WNGREP	   |  30   |   n/a   | Find keywords by substring		  |
| OVERVIEW	   |  31   |   n/a   | Show all synsets for word		  |
| CLASSIF_CATEGORY |  32   |   ;c    | Show domain topic			  |
| CLASSIF_USAGE    |  33   |   ;u    | Show domain usage			  |
| CLASSIF_REGIONAL |  34   |   ;r    | Show domain region			  |
| CLASS_CATEGORY   |  35   |   -c    | Show domain terms for topic		  |
| CLASS_USAGE	   |  36   |   -u    | Show domain terms for usage		  |
| CLASS_REGIONAL   |  37   |   -r    | Show domain terms for region		  |
| INSTANCE	   |  38   |   @i    | Instance of				  |
| INSTANCES	   |  39   |   ~i    | Show instances				  |
+------------------+-------+---------+--------------------------------------------+

     findtheinfo_ds() cannot perform the following searches:

	    SEEALSOPTR
	    PERTPTR
	    VERBGROUP
	    FREQ
	    FRAMES
	    RELATIVES
	    WNGREP
	    OVERVIEW

NOTES
     Applications that use WordNet and/or the morphological functions must  call
     wninit()  at  the	start of the program.  See wnutil(3WN) for more informa-
     tion.

     In all function calls, searchstr may be either  a	word  or  a  collocation
     formed by joining individual words with underscore characters (_).

     The SearchResults structure defines fields in the wnresults global variable
     that  are	set by the various search functions.  This is a way to get addi-
     tional information, such as the number of senses the  word  has,  from  the
     search functions.	The searchds field is set by findtheinfo_ds().

     The pos passed to traceptrs_ds() is not used.

SEE ALSO
     wn(1WN),  wnb(1WN), wnintro(3WN), binsrch(3WN), malloc(3), morph(3WN), wnu-
     til(3WN), wnintro(5WN).

WARNINGS
     parse_synset() must find an exact match between the searchstr passed and  a
     word  in  the synset to set whichword.  No attempt is made to translate hy-
     phens and underscores, as is done in getindex().

     The WordNet database and exception list files must be  opened  with  wninit
     prior to using any of the searching functions.

     A	large  search  may  cause findtheinfo() to run out of buffer space.  The
     maximum buffer size is determined by computer platform.  If the buffer size
     is exceeded the following message is printed in the output buffer:  "Search
     too large.  Narrow search and try again...".

     Passing an invalid pos will probably result in a core dump.

WordNet 3.0			    Dec 2006			   WNSEARCH(3WN)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=wnsearch&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help