NAME

Lingua::Phonology - a module providing a unified way to deal with linguistic representations of phonology.

SYNOPSIS

use Lingua::Phonology;

$phono = new Phonology;

$features = $phono->features;
$symbols = $phono->symbols;
$rules = $phono->rules;
$segment = $phono->segment;

# Do with them as you will . . .

DESCRIPTION

Lingua::Phonology is a unified module for handling phonological descriptions. It includes sub-modules for linguistic features, phonetic or orthographic symbols, individual segments, and linguistic rules.

Lingua::Phonology itself is just a meta-module providing easy access to the sub-modules. The real work is done by the sub-modules, of which there are currently four:

  • Lingua::Phonology::Features - handles heirarchical features.

  • Lingua::Phonology::Segment - an instantitation of values for a feature set

  • Lingua::Phonology::Symbols - a list of symbols used to represent Lingua::Phonology::Segment objects and methods for spelling them out.

  • Lingua::Phonology::Rules - a set of rules that can be aplied to words of segments.

The description of the function and use of each of these modules is on their respective man pages. It is recommended that you read these pages in the order given above to best understand them.

WARNINGS

Always use them. Lingua::Phonology contains many useful warnings, but it generally will not display them unless use warnings is on.

Plus, you should do that anyway.

METHODS

new

Takes no arguments, and returns a new Lingua::Phonology object. This new object will contain one Lingua::Phonology::Features object, one Lingua::Phonology::Symbols object, and one Lingua::Phonology::Rules object. These objects will be initialized to refer to one another where appropriate, so it is rarely necessary to new on any of the sub-modules.

features

Returns the current Features object associated with this phonology. You may also pass a Features object as an argument, in which case the Features object for the current phonology is set to that.

symbols

Returns the current Symbols object. As with features(), you can pass a Symbols object as an argument to set the current Symbols object, if desired.

rules

Returns the current Rules object, or sets the current object if a Rules object is provided as an argument.

segment

Returns a new Lingua::Phonology::Segment object. This method takes no arguments, and cannot be used to initialize a segment. Therefore, it's probably easier to use the segment() method in Lingua::Phonology::Symbols.

APOLOGIA

This module was written to fill my need for a truly versatile, sufficiently powerful way of handling phonologies. The existing Perl tools (Lingua::SoundChange and Lingua::FeatureMatrix) worked well enough for what they did, but they all lacked some functionality that I considered important. Thus, I decided to make my own tool. I have to a certain extent reinvented the wheel, but I prefer to think of it as replacing the wheel with a jet engine, since Lingua::Phonology is much more powerful than the existing modules.

Nonetheless, I am interested in integrating with existing tools, especially ones that are widely used and would be useful to others. Feel free to send me suggestions, or to make your own module interfacing Lingua::Phonology with whatever else.

BUGS

Probably. Please send bug reports and code improvements to the author.

SEE ALSO

Lingua::Phonology::Features, Lingua::Phonology::Symbols, Lingua::Phonology::Segment, Lingua::Phonology::Rules.

AUTHOR

Jesse S. Bangs <jaspax@u.washington.edu>.

LICENSE

This module is free software. You can distribute and/or modify it under the same terms as Perl itself.