NAME
Lingua::Zompist::Barakhinei - Inflect Barakhinei nouns, verbs, and adjectives
VERSION
This document refers to version 0.01 of Lingua::Zompist::Barakhinei, released on 2002-05-24.
SYNOPSIS
use Lingua::Zompist::Barakhinei;
$i_am = Lingua::Zompist::Barakhinei::demeric('eza')->[0];
or
use Lingua::Zompist::Barakhinei ':all';
$i_am = demeric('eza')->[0];
or
use Lingua::Zompist::Barakhinei qw( demeric scrifel );
$you_know = demeric('shkrivê')->[1];
$they_had = crifel('tenê')->[5];
$word = noun('belu'); # nouns
$word = noun('sû'); # pronouns
$word = noun('mukh');
$word = adj('khôtê'); # adjectives
# verbs
$word = demeric('ibrê'); # present
$word = scrifel('ibrê'); # past
$word = izhcrifel('ibrê'); # past anterior
$word = budemeric('ibrê'); # present subjunctive
$word = buscrifel('ibrê'); # past subjunctive
$word = befel('ibrê'); # imperative
$word = part('ibrê'); # participles
DESCRIPTION
Overview
Lingua::Zompist::Barakhinei is a module which allows you to inflect Barakhinei words. You can conjugate verbs and decline nouns, pronouns, and adjectives.
There is one function to inflect nouns and pronouns, and another to inflect adjectives. Verbs are covered by several functions: one for each tense or mood and another for the participles.
Exports
Lingua::Zompist::Barakhinei exports no functions by default, in order to avoid namespace pollution. This enables, for example, Lingua::Zompist::Barakhinei and Lingua::Zompist::Cadhinor to be used in the same program, since otherwise many of the function names would clash. However, all functions listed here can be imported explicitly by naming them, or they can be imported all together by using the tag ':all'.
A note on the character set used
This module expects input to be in iso-8859-1 (Latin-1) and will return output in that character set as well. For example, lelcê (meaning to see) should have a byte with the value 234 as the last character, and its accusative, lelcâ, will have a byte with the value 226 as its last character.
In the future, this module may expect and produce the charset used by the Maraille font. At that point, the module Lingua::Zompist::Convert is expected to be available, which should be able to convert between that charset and standard charsets such as iso-8859-1 and utf-8.
noun
This function allows you to inflect nouns and pronouns.
It takes three arguments:
The noun or pronoun to inflect.
The gender of the noun (one of 'masc', 'neut', or 'fem'), or
undef
for the function to guess. (This can remainundef
for pronouns.)The (nominative) plural of the noun, or
undef
for the function to guess.In Barakhinei, it is necessary to know the singular, the gender, and the plural of a noun in order to inflect a noun correctly. However, if you do know the plural form, you can pass
undef
to this function and the function will attempt to guess based on a built-in list of nouns.
noun
returns an arrayref on success, or croaks on failure (for example, because it could not determine which declension or gender a noun belonged to).
In general, the arrayref will have seven elements, in the following order: nominative singular, accusative singular, dative singular, genitive singular, nominative plural, accusative/dative plural, genitive plural. In some cases, some of those elements may be undef
; the most common case is when you ask for the declension of a plural personal pronoun such as ta or kêt.
Notes:
If you use a singular personal pronoun as input to this function, you will get back an arrayref with seven elements, corresponding to both singular and plural forms of the pronoun. Note that this will cause the accusative/dative distinction to be thrown in away in the plural forms, since nouns make no such distinction! So it is better to input the plural form separately to get the full form.
(This behaviour may change in the future. I'm not sure whether dropping one form is the right thing to do... singular pronouns may end up returning only the first four elements filled.)
If you use a plural personal pronoun as input to this function, only the first four elements will be filled (with the plural forms) and the last three elements will be
undef
. This appears to be more DWIMmish (at least, it is for me -- I've used ta, for example, as input and wondered why it was being treated as a noun rather than as a personal pronoun).The genitive form of sû, lê, ta, mukh, and kâ will be returned in parenthesis to show that it is a regular adjective and not an undeclined genitive form.
The reflexive pronouns are listed under the pseudo-nominative forms zê and za; in the return list, the nominative forms will be the empty string.
adj
This function inflects adjectives. It expects two arguments:
The adjective to be inflected
The root consonant in the oblique forms (for example, for na "north", which has the root nan- in the oblique forms, pass in
'na'
and'n'
). If you pass in undef, the function will attempt to guess whether the adjective has a different oblique stem.
adj
returns an arrayref on success and croaks on failure.
The arrayref will itself contain three arrayrefs, each with seven elements. The first arrayref will contain the masculine forms, the second arrayref the neuter forms, and the third arrayref the feminine forms. The forms are in the same order as in the arrayref returned by the noun function. Briefly, this order is nominative - accusative - dative - genitive in the singular and nominative - accusative/dative - genitive in the plural.
This function should determine the declension of an adjective automatically.
There is currently no function which returns the declension of an adjective (partly because the matter is so simple -- declension I adjectives end in -C or have an extra oblique stem consonant, declension II adjectives end in -ê, and declension III adjectives end in -i); however, if there is popular demand for such a function it could be quickly added.
demeric
This function declines a verb in the present tense. It takes two arguments:
The verb to be conjugated
The declension of the verb as an integer (only strictly necessary for verbs in -ê, which can be first, third, or fifth declension, corresponding to Cadhinor verbs in -EC, -EN, and -ER)
demeric
returns an arrayref on success and croaks on failure.
The arrayref will contain six elements, in the following order: first person singular ("I"), second person singular ("thou"), third person singular ("he/she/it"), first person plural ("we"), second person plural ("[all of] you"), third person plural ("they").
scrifel
This function declines a verb in the past tense. It is otherwise similar to the function demeric.
izhcrifel
This function declines a verb in the past anterior tense. It is otherwise similar to the function demeric.
budemeric
This function declines a verb in the present subjunctive. It is otherwise similar to the function demeric.
The name derives from Cadhinor grammar terms buprilise "remote" and demeric "present", since the Barakhinei subjunctive mood derived from the Cadhinor remote forms of a verb.
buscrifel
This function declines a verb in the past subjunctive. It is otherwise similar to the function demeric.
The name derives from Cadhinor grammar terms buprilise "remote" and scrifel "past", since the Barakhinei subjunctive mood derived from the Cadhinor remote forms of a verb.
befel
This function declines a verb in the imperative. It is otherwise similar to the function demeric.
- Note
-
The first and fourth elements of the arrayref will be empty, since Barakhinei has no first person imperative, neither singular nor plural.
part
This function returns the two participles of a verb. It takes the verb and declension number (compare "demeric") as an argument and returns an arrayref (in scalar context) or a list (in list context) of two elements: the present participle and the past participle. On failure, this function croaks.
Specifically, the form returned for each participle is the masculine nominative singular form of the participle (which is the citation form). Since participles decline like regular adjectives (with an oblique stem consonant of 'l' in the case of participles in -u), the other forms of the participles may be obtained by calling the adj function, if desired.
BUGS
This module should handle irregular words correctly. However, if there is a word that is inflected incorrectly, please send me email and notify me. (Since Barakhinei has all sorts of funky sound changes, I wouldn't be surprised if this module makes mistakes! However, I think it handles correctly all the examples on the web page as of 2002-05-24.)
However, please make sure that you have checked against a current version of http://www.zompist.com/bara.htm or that you asked Mark Rosenfelder himself; the grammar occasionally changes as small errors are found or words change.
TODO
Flesh out the dictionary from baralex.htm.
SEE ALSO
Lingua::Zompist::Verdurian, Lingua::Zompist::Kebreni, Lingua::Zompist::Cadhinor, http://www.zompist.com/bara.htm
FEEDBACK
If you use this module, I'd appreciate it if you drop me a line at the email address in "AUTHOR", just so that I have an idea of how many people use this module at all. Also, if you have any comments, feel free to email me.
AUTHOR
Philip Newton, <pne@cpan.org>
COPYRIGHT AND LICENSE
(This is basically the BSD licence.)
Copyright (C) 2002 by Philip Newton. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 829:
Non-ASCII character seen before =encoding in 'demeric('shkrivê')->[1];'. Assuming CP1252