Lingua::Thesaurus::Term - parent class for thesaurus terms
my $term = $thesaurus->fetch_term($term_string); # methods for specific relations my $scope_note = $term->SN; my @synonyms = $term->UF; # exploring several relations at once foreach my $pair ($term->related(qw/NT RT/)) { my ($rel_type, $item) = @$pair; printf " %s(%s) = %s\n", $rel_type->description, $rel_type->rel_id, $item; } # transitive search foreach my $quadruple ($term->transitively_related(qw/NT/)) { my ($rel_type, $related_term, $through_term, $level) = @$quadruple; printf " %s($level): %s (through %s)\n", $rel_type->rel_id, $level, $related_term->string, $through_term->string; }
Objects of this class encapsulate terms in a thesaurus. They possess methods for navigating through relations, reaching other terms or external data.
my $term = Lingua::Thesaurus::Term->new( storage => $storage, # an object playing role Lingua::Thesaurus::Storage id => $id, # unique id for this term string => $string, # the actual term string origin => $origin, # an identifier for the file where this term was found );
Creates a new term object; not likely to be called from client code, because such objects are created automatically from the thesaurus through "search_terms" in Lingua::Thesaurus and "fetch_term" in Lingua::Thesaurus methods.
Reference to the storage object from which this term was issued.
unique storage id for the term
the term itself
tagname of the dumpfile where this term was found
my @pairs = $term->related(@relation_ids);
Returns a list of items related to the current term, through one or several @relation_ids. Each returned item is a pair, where the first element is an instance of Lingua::Thesaurus::RelType, and the second element is either a plain string (when the relation type is "external"), or another term (when the relation type is "internal").
@relation_ids
my @narrower_terms = $term->NT; my $broader_term = $term->BT; ...
Specific navigation methods, such as NT, BT, etc., depend on the relation types declared in the thesaurus; once those relations are known, a subclass of Lingua::Thesaurus::Term is automatically created, with the appropriate additional methods.
NT
BT
Lingua::Thesaurus::Term
Internally these methods are implemented of course by calling the "related" method described above; but instead or returning a list of pairs, they just return related items (since the relation type is explicitly requested in the method call, it would be useless to return it again as a result). The result is either a list or a single related item, depending on the calling context.
my @quadruples = $term->transitively_related(@relation_ids);
Returns a list of items directly or indirectly related to the current term, through one or several @relation_ids. Each returned item is a quadruple, where the first two elements are as in the ""related" method, and the two remaining elements are
the last intermediate term through wich this relation was reached
the level of transitive steps
To install Lingua::Thesaurus, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Lingua::Thesaurus
CPAN shell
perl -MCPAN -e shell install Lingua::Thesaurus
For more information on module installation, please visit the detailed CPAN module installation guide.