You can subscribe to this list here.
| 2007 |
Jan
(6) |
Feb
(19) |
Mar
(14) |
Apr
(32) |
May
(19) |
Jun
(15) |
Jul
(9) |
Aug
(34) |
Sep
|
Oct
(104) |
Nov
(10) |
Dec
(26) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2008 |
Jan
(26) |
Feb
(3) |
Mar
(163) |
Apr
(45) |
May
|
Jun
(1) |
Jul
(1) |
Aug
(1) |
Sep
(8) |
Oct
(1) |
Nov
(5) |
Dec
(43) |
| 2009 |
Jan
(11) |
Feb
(21) |
Mar
(23) |
Apr
(18) |
May
(68) |
Jun
(20) |
Jul
(6) |
Aug
(17) |
Sep
(29) |
Oct
(20) |
Nov
(61) |
Dec
(52) |
| 2010 |
Jan
(36) |
Feb
(25) |
Mar
(11) |
Apr
(3) |
May
(21) |
Jun
(1) |
Jul
(1) |
Aug
(25) |
Sep
(25) |
Oct
(19) |
Nov
(1) |
Dec
|
| 2011 |
Jan
(23) |
Feb
(34) |
Mar
(81) |
Apr
(5) |
May
(38) |
Jun
(14) |
Jul
(5) |
Aug
(87) |
Sep
(41) |
Oct
(49) |
Nov
(24) |
Dec
(25) |
| 2012 |
Jan
(23) |
Feb
(19) |
Mar
(37) |
Apr
(93) |
May
(17) |
Jun
(128) |
Jul
(119) |
Aug
(96) |
Sep
(32) |
Oct
(26) |
Nov
(52) |
Dec
(25) |
| 2013 |
Jan
(20) |
Feb
(92) |
Mar
(98) |
Apr
(6) |
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
| 2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
| 2015 |
Jan
|
Feb
(40) |
Mar
(12) |
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
(8) |
Oct
(1) |
Nov
(1) |
Dec
(3) |
| 2016 |
Jan
|
Feb
|
Mar
(5) |
Apr
(2) |
May
|
Jun
|
Jul
(9) |
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2017 |
Jan
(9) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(5) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <fri...@us...> - 2009-01-15 16:18:16
|
Revision: 9665
http://zaf.svn.sourceforge.net/zaf/?rev=9665&view=rev
Author: friedelwolff
Date: 2009-01-15 16:18:05 +0000 (Thu, 15 Jan 2009)
Log Message:
-----------
Fix a few typos, and correct negative associative copulatives
Modified Paths:
--------------
trunk/dict/zu/hunspell/zu_aff.py
Modified: trunk/dict/zu/hunspell/zu_aff.py
===================================================================
--- trunk/dict/zu/hunspell/zu_aff.py 2009-01-15 15:58:44 UTC (rev 9664)
+++ trunk/dict/zu/hunspell/zu_aff.py 2009-01-15 16:18:05 UTC (rev 9665)
@@ -543,7 +543,7 @@
### Nouns ###
- noun = aff.add_group(prefix=True, flag="N")
+ noun = aff.add_group(suffix=False, flag="N")
# This group will contain most prefixes for nouns
for morpheme in possesive_morphemes:
@@ -554,14 +554,16 @@
# simplification. Uncomment the rule above, and put needaffix=True in for
# the following rule for more correct morphological analysis
noun_rules(noun, affix="na", morphology="ASSOCIATIVE_COPULATIVE", continuation_classes=[simple_subjects])
- noun_rules(noun, affix="na", needaffix=True, morphology="NEG_ASSOCIATIVE_COPULATIVE", continuation_classes=[simple_subjects_neg])
+ noun.add_rule(affix="n", condition="a", needaffix=True, morphology="NEG_ASSOCIATIVE_COPULATIVE", continuation_classes=[simple_subjects_neg])
+ noun.add_rule(affix="na", condition="i", strip="i", needaffix=True, morphology="NEG_ASSOCIATIVE_COPULATIVE", continuation_classes=[simple_subjects_neg])
+ noun.add_rule(affix="na", condition="u", strip="u", needaffix=True, morphology="NEG_ASSOCIATIVE_COPULATIVE", continuation_classes=[simple_subjects_neg])
# identificative copulative particle words
noun.add_rule(affix="y", condition="i", morphology="IDENTIFICATIVE_COPULATIVE", continuation_classes=[simple_subjects])
noun.add_rule(affix="y", contition="i", needaffix=True, morphology="NEG_IDENTIFICATIVE_COPULATIVE", continuation_classes=[simple_subjects_neg])
- noun_rules(noun, affix="ngu", contition="[ou]", morphology="IDENTIFICATIVE_COPULATIVE", continuation_classes=[simple_subjects_neg])
+ noun_rules(noun, affix="ngu", contition="[ou]", morphology="IDENTIFICATIVE_COPULATIVE", continuation_classes=[simple_subjects])
noun_rules(noun, affix="ngu", contition="[ou]", needaffix=True, morphology="NEG_IDENTIFICATIVE_COPULATIVE", continuation_classes=[simple_subjects_neg])
- noun_rules(noun, affix="wu", contition="[ou]", morphology="IDENTIFICATIVE_COPULATIVE", continuation_classes=[simple_subjects_neg])
+ noun_rules(noun, affix="wu", contition="[ou]", morphology="IDENTIFICATIVE_COPULATIVE", continuation_classes=[simple_subjects])
noun_rules(noun, affix="wu", contition="[ou]", needaffix=True, morphology="NEG_IDENTIFICATIVE_COPULATIVE", continuation_classes=[simple_subjects_neg])
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fri...@us...> - 2009-01-15 15:59:02
|
Revision: 9664
http://zaf.svn.sourceforge.net/zaf/?rev=9664&view=rev
Author: friedelwolff
Date: 2009-01-15 15:58:44 +0000 (Thu, 15 Jan 2009)
Log Message:
-----------
Identificative copulative particle words
Modified Paths:
--------------
trunk/dict/zu/hunspell/zu_aff.py
Modified: trunk/dict/zu/hunspell/zu_aff.py
===================================================================
--- trunk/dict/zu/hunspell/zu_aff.py 2009-01-15 15:49:09 UTC (rev 9663)
+++ trunk/dict/zu/hunspell/zu_aff.py 2009-01-15 15:58:44 UTC (rev 9664)
@@ -556,5 +556,13 @@
noun_rules(noun, affix="na", morphology="ASSOCIATIVE_COPULATIVE", continuation_classes=[simple_subjects])
noun_rules(noun, affix="na", needaffix=True, morphology="NEG_ASSOCIATIVE_COPULATIVE", continuation_classes=[simple_subjects_neg])
+ # identificative copulative particle words
+ noun.add_rule(affix="y", condition="i", morphology="IDENTIFICATIVE_COPULATIVE", continuation_classes=[simple_subjects])
+ noun.add_rule(affix="y", contition="i", needaffix=True, morphology="NEG_IDENTIFICATIVE_COPULATIVE", continuation_classes=[simple_subjects_neg])
+ noun_rules(noun, affix="ngu", contition="[ou]", morphology="IDENTIFICATIVE_COPULATIVE", continuation_classes=[simple_subjects_neg])
+ noun_rules(noun, affix="ngu", contition="[ou]", needaffix=True, morphology="NEG_IDENTIFICATIVE_COPULATIVE", continuation_classes=[simple_subjects_neg])
+ noun_rules(noun, affix="wu", contition="[ou]", morphology="IDENTIFICATIVE_COPULATIVE", continuation_classes=[simple_subjects_neg])
+ noun_rules(noun, affix="wu", contition="[ou]", needaffix=True, morphology="NEG_IDENTIFICATIVE_COPULATIVE", continuation_classes=[simple_subjects_neg])
+
print aff.hunspell()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fri...@us...> - 2009-01-15 15:49:21
|
Revision: 9663
http://zaf.svn.sourceforge.net/zaf/?rev=9663&view=rev
Author: friedelwolff
Date: 2009-01-15 15:49:09 +0000 (Thu, 15 Jan 2009)
Log Message:
-----------
Connective particle word 'na' and associative copulative (positive and negative)
Modified Paths:
--------------
trunk/dict/zu/hunspell/zu_aff.py
Modified: trunk/dict/zu/hunspell/zu_aff.py
===================================================================
--- trunk/dict/zu/hunspell/zu_aff.py 2009-01-15 15:39:12 UTC (rev 9662)
+++ trunk/dict/zu/hunspell/zu_aff.py 2009-01-15 15:49:09 UTC (rev 9663)
@@ -549,5 +549,12 @@
for morpheme in possesive_morphemes:
noun_rules(noun, affix=morpheme, morphology="POSSESSIVE")
+ #noun_rules(noun, affix="na", morphology="CONNECTIVE_PARTICLE_WORD", continuation_classes=[simple_subjects])
+ # ^ This is merged into the rule for associative copulatives, just for
+ # simplification. Uncomment the rule above, and put needaffix=True in for
+ # the following rule for more correct morphological analysis
+ noun_rules(noun, affix="na", morphology="ASSOCIATIVE_COPULATIVE", continuation_classes=[simple_subjects])
+ noun_rules(noun, affix="na", needaffix=True, morphology="NEG_ASSOCIATIVE_COPULATIVE", continuation_classes=[simple_subjects_neg])
+
print aff.hunspell()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fri...@us...> - 2009-01-15 15:39:31
|
Revision: 9662
http://zaf.svn.sourceforge.net/zaf/?rev=9662&view=rev
Author: friedelwolff
Date: 2009-01-15 15:39:12 +0000 (Thu, 15 Jan 2009)
Log Message:
-----------
Start the work on noun morphology. This adds support for simple possessives
Modified Paths:
--------------
trunk/dict/zu/hunspell/zu_aff.py
Modified: trunk/dict/zu/hunspell/zu_aff.py
===================================================================
--- trunk/dict/zu/hunspell/zu_aff.py 2009-01-15 14:33:45 UTC (rev 9661)
+++ trunk/dict/zu/hunspell/zu_aff.py 2009-01-15 15:39:12 UTC (rev 9662)
@@ -38,6 +38,13 @@
#TODO: auxilary verbs
#TODO: consider avoiding illegal reflexives
+#NOUNS:
+#TODO: locatives
+#TODO: locatives of class 1
+#TODO: possessive of class 1
+#TODO: review possessive of class 2a
+
+
from hunspell_format import *
import re
@@ -47,6 +54,8 @@
situative_prefixes = ["e", "be"]
concords = subject_morphemes + relative_prefixes + situative_prefixes
object_morphemes = ["ngi", "ku", "si", "ni", "m", "ba", "wu", "yi", "li", "wa", "zi", "lu", "bu"]
+possesive_morphemes = ["wa", "ba", "ya", "la", "sa", "za", "lwa", "kwa"]
+#bu -> ba
a_rules = [["a", "Y", "PFX"]]
"""prefixes only applicable to verbs ending on -a"""
@@ -224,6 +233,31 @@
pass
return group.rules
+def noun_rules(group, **kwargs):
+ """Generate the necessary rules to prepend the given prefix to a noun
+
+ It receives a string with the already built (complete) prefix and
+ returns a list of lists, with each list presenting one affix rule.
+ """
+ prefix = kwargs.pop('affix')
+ if prefix[-1] == 'a':
+ prefix = prefix[0:-1]
+ #prefix could now be "", which is probably ok:
+ # amamanzi (a)amadoda
+ group.add_rule(affix=prefix, condition="a", **kwargs)
+ group.add_rule(affix=prefix+'e', condition="i", strip="i", **kwargs)
+ group.add_rule(affix=prefix+'o', condition="u", strip="u", **kwargs)
+ return group.rules
+
+ if prefix[-1] == 'u':
+ prefix = prefix[0:-1]
+ # Any prefixes except the identifying copulative "ngu"/"wu"
+ group.add_rule(affix=prefix, condition="[ou]", **kwargs)
+ return group.rules
+
+ print >> sys.stderr, "got an unexpected noun prefix:", prefix
+ return group.rules
+
################################################################################
for i in concords:
@@ -507,4 +541,13 @@
locative_sfx.add_rule(affix="eni", strip="a", circumfix=True, morphology="LOC_sfx")
+ ### Nouns ###
+
+ noun = aff.add_group(prefix=True, flag="N")
+ # This group will contain most prefixes for nouns
+
+ for morpheme in possesive_morphemes:
+ noun_rules(noun, affix=morpheme, morphology="POSSESSIVE")
+
+
print aff.hunspell()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fri...@us...> - 2009-01-15 14:33:51
|
Revision: 9661
http://zaf.svn.sourceforge.net/zaf/?rev=9661&view=rev
Author: friedelwolff
Date: 2009-01-15 14:33:45 +0000 (Thu, 15 Jan 2009)
Log Message:
-----------
Rename N->n M-m (on the way to a naming convention where capital letters are public flags and lower case letters are private
Modified Paths:
--------------
trunk/dict/zu/hunspell/zu_aff.py
Modified: trunk/dict/zu/hunspell/zu_aff.py
===================================================================
--- trunk/dict/zu/hunspell/zu_aff.py 2009-01-06 08:51:14 UTC (rev 9660)
+++ trunk/dict/zu/hunspell/zu_aff.py 2009-01-15 14:33:45 UTC (rev 9661)
@@ -36,6 +36,7 @@
#TODO: monosyllabic verbs
#TODO: statives
#TODO: auxilary verbs
+#TODO: consider avoiding illegal reflexives
from hunspell_format import *
import re
@@ -381,10 +382,10 @@
question = aff.add_group(suffix=True, flag="I")
# This group contains rules for forming question words
- locative = aff.add_group(suffix=False, flag="N")
+ locative = aff.add_group(suffix=False, flag="n")
# This group will contain rules for locative prefixes
- locative_sfx = aff.add_group(suffix=True, flag="M")
+ locative_sfx = aff.add_group(suffix=True, flag="m")
# This group will contain rules for locative suffixes
for morpheme in subject_morphemes:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fri...@us...> - 2009-01-06 08:51:21
|
Revision: 9660
http://zaf.svn.sourceforge.net/zaf/?rev=9660&view=rev
Author: friedelwolff
Date: 2009-01-06 08:51:14 +0000 (Tue, 06 Jan 2009)
Log Message:
-----------
Remove incorrect 'onmiddelik' en 'onmiddelike' - we really need to get rid of the duplication
Modified Paths:
--------------
trunk/dict/af/wordlists/wordlist.nieuwoudt.in
trunk/dict/af/wordlists/wordlist.viljoen.in
Modified: trunk/dict/af/wordlists/wordlist.nieuwoudt.in
===================================================================
--- trunk/dict/af/wordlists/wordlist.nieuwoudt.in 2009-01-06 07:23:45 UTC (rev 9659)
+++ trunk/dict/af/wordlists/wordlist.nieuwoudt.in 2009-01-06 08:51:14 UTC (rev 9660)
@@ -81957,8 +81957,6 @@
onmerkbare
onmetodies
onmetodiese
-onmiddelik
-onmiddelike
onmiddellik
onmiddellike
onmiddellikheid
Modified: trunk/dict/af/wordlists/wordlist.viljoen.in
===================================================================
--- trunk/dict/af/wordlists/wordlist.viljoen.in 2009-01-06 07:23:45 UTC (rev 9659)
+++ trunk/dict/af/wordlists/wordlist.viljoen.in 2009-01-06 08:51:14 UTC (rev 9660)
@@ -90651,8 +90651,6 @@
onmerkbare
onmetodies
onmetodiese
-onmiddelik
-onmiddelike
onmiddellik
onmiddellike
onmiddellikheid
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fri...@us...> - 2009-01-06 07:23:52
|
Revision: 9659
http://zaf.svn.sourceforge.net/zaf/?rev=9659&view=rev
Author: friedelwolff
Date: 2009-01-06 07:23:45 +0000 (Tue, 06 Jan 2009)
Log Message:
-----------
Slight reorderings and a few more comments to clear things up and make diffing easier with ../utils/Makefile.language
Modified Paths:
--------------
trunk/dict/zu/Makefile
Modified: trunk/dict/zu/Makefile
===================================================================
--- trunk/dict/zu/Makefile 2009-01-06 07:22:18 UTC (rev 9658)
+++ trunk/dict/zu/Makefile 2009-01-06 07:23:45 UTC (rev 9659)
@@ -17,6 +17,8 @@
#REGION_FAKE=IT
CHARSET=iso-8859-1
+include ../utils/Makefile.language
+
# The wordlists already in munched form
MUNCHEDLIST.IN=$(shell ls myspell/munchedlist.*.in)
MUNCHEDLIST.CHARSET=$(patsubst %.in, %.$(CHARSET), $(MUNCHEDLIST.IN))
@@ -27,16 +29,19 @@
myspell/zu_ZA.aff: myspell/zu_aff.py
$^ > $@
-include ../utils/Makefile.language
-
ZU_TARGETS_MYSPELL= myspell/munchedlist.$(CHARSET) myspell/zu_ZA.dic.tmp myspell/zu_ZA.aff
ZU_TARGET_WORDLISTS= $(MUNCHEDLIST.CHARSET)
clean-wordlists:
- rm -rf $(TARGET_WORDLISTS) $(ZU_TARGET_WORDLISTS)
+ rm -rf $(TARGET_WORDLISTS)
+ rm -rf $(ZU_TARGET_WORDLISTS)
+# MySpell rules
+
clean-myspell:
- rm -rf $(TARGETS_MYSPELL) $(ZU_TARGETS_MYSPELL)
+ rm -rf $(TARGETS_MYSPELL)
+ rm -rf $(ZU_TARGETS_MYSPELL)
+
# we override the generation of the myspell .dic file.
# it does not munch the wordlist, but instead only makes use of the unmunched
# wordlist and then appends the already munched lists.
@@ -44,6 +49,16 @@
cat myspell/wordlist.$(CHARSET) myspell/munchedlist.$(CHARSET) | wc -l > $@
cat myspell/wordlist.$(CHARSET) myspell/munchedlist.$(CHARSET) >> $@
+# Ispell Rules
+
+# Aspell Rules
+
+# Hunspell rules
+
+# Autocorrect rules
+
+# this is just a standard pattern used for overriding Makefiles:
+# http://www.gnu.org/software/automake/manual/make/Overriding-Makefiles.html
%: force
@$(MAKE) -f ../utils/Makefile.language $@
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fri...@us...> - 2009-01-06 07:22:22
|
Revision: 9658
http://zaf.svn.sourceforge.net/zaf/?rev=9658&view=rev
Author: friedelwolff
Date: 2009-01-06 07:22:18 +0000 (Tue, 06 Jan 2009)
Log Message:
-----------
Use standard capitalisation for 'Hunspell'
Modified Paths:
--------------
trunk/dict/utils/Makefile.language
Modified: trunk/dict/utils/Makefile.language
===================================================================
--- trunk/dict/utils/Makefile.language 2008-12-30 14:31:17 UTC (rev 9657)
+++ trunk/dict/utils/Makefile.language 2009-01-06 07:22:18 UTC (rev 9658)
@@ -200,7 +200,7 @@
aspell/Makefile.pre: aspell/proc aspell/info
(cd aspell; export LC_COLLATE=C; ./proc create)
-# HunSpell rules
+# Hunspell rules
clean-hunspell:
rm -rf $(TARGETS_HUNSPELL)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fri...@us...> - 2008-12-30 14:31:28
|
Revision: 9657
http://zaf.svn.sourceforge.net/zaf/?rev=9657&view=rev
Author: friedelwolff
Date: 2008-12-30 14:31:17 +0000 (Tue, 30 Dec 2008)
Log Message:
-----------
Support the exclusive aspectual morpheme (-ka-) with negative infinitives and negative indicative present tense
Modified Paths:
--------------
trunk/dict/zu/hunspell/zu_aff.py
Modified: trunk/dict/zu/hunspell/zu_aff.py
===================================================================
--- trunk/dict/zu/hunspell/zu_aff.py 2008-12-30 13:07:26 UTC (rev 9656)
+++ trunk/dict/zu/hunspell/zu_aff.py 2008-12-30 14:31:17 UTC (rev 9657)
@@ -32,8 +32,7 @@
#TODO: be- and se- verbs
#TODO: non-indicative modes, positive and negative
#TODO: aspectual morphemes with non-indicative modes (+/-)
-#TODO: exclusive aspectual morpheme (ka) with indicative, present, negative
-#TODO: exclusive aspectual morpheme (ka) with infinitive
+#TODO: exclusive aspectual morpheme (ka) with object morpheme?
#TODO: monosyllabic verbs
#TODO: statives
#TODO: auxilary verbs
@@ -394,8 +393,11 @@
# Duplicate it for the sake of the indicative long form, present, positive
# Here we don't use verb_rules, because this will always combine with -ya-
simple_subjects.add_rule(affix=morpheme)
- # Indicative, present, negative with subject morpheme only
+ # Indicative, present+past, negative with subject morpheme only
verb_rules(main_subjects, affix=add_semivowels("a"+morpheme), needaffix=True, circumfix=True, continuation_classes=[negative_i, negative_anga])
+ # Indicative, present, negative with subject morpheme and exclusive aspectual morpheme (-ka-)
+ #TODO: will verb_rules do the right thing here to elide the 'a' of 'ka' for vowel verbs?
+ verb_rules(main_subjects, affix=add_semivowels("a"+morpheme)+"ka", needaffix=True, circumfix=True, continuation_classes=[negative_i])
#Negative future tenses
verb_rules(simple_subjects_neg, affix=(add_semivowels("a" + morpheme)))
@@ -439,6 +441,8 @@
verb_rules(infixes, affix="ukusa", morphology="INFINITIVE_PROG", continuation_classes=[locative])
#infinitive, negative
verb_rules(infixes, affix="ukunga", needaffix=True, circumfix=True, morphology="INFINITIVE_NEG", continuation_classes=[negative_i])#XXX
+ #infinitive, negative, with -ka- exclusive aspectual morpheme
+ verb_rules(infixes, affix="ukungaka", needaffix=True, circumfix=True, morphology="INFINITIVE_NEG_EXCL", continuation_classes=[negative_i])#XXX
for morpheme in object_morphemes:
#Although this makes sense, this causes rules from main_subjects with mandatory continuation classes to
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fri...@us...> - 2008-12-30 13:07:31
|
Revision: 9656
http://zaf.svn.sourceforge.net/zaf/?rev=9656&view=rev
Author: friedelwolff
Date: 2008-12-30 13:07:26 +0000 (Tue, 30 Dec 2008)
Log Message:
-----------
Add support for remote past indicative (positive). This automatically supports aspectual morphemes and object morphemes
Modified Paths:
--------------
trunk/dict/zu/hunspell/zu_aff.py
Modified: trunk/dict/zu/hunspell/zu_aff.py
===================================================================
--- trunk/dict/zu/hunspell/zu_aff.py 2008-12-30 11:04:17 UTC (rev 9655)
+++ trunk/dict/zu/hunspell/zu_aff.py 2008-12-30 13:07:26 UTC (rev 9656)
@@ -42,6 +42,7 @@
import re
subject_morphemes = ["ngi", "u", "si", "ni", "u", "ba", "i", "li", "a", "si", "zi", "lu", "bu", "ku"]
+remote_past_subject_morphemes = ["nga", "wa", "sa", "na", "wa", "ba", "ya", "la", "a", "sa", "za", "lwa", "ba", "kwa"]
relative_prefixes = ["engi", "esi", "eni", "o", "aba", "e", "eli", "a", "esi", "ezi", "olu", "obu", "oku"]
situative_prefixes = ["e", "be"]
concords = subject_morphemes + relative_prefixes + situative_prefixes
@@ -275,7 +276,7 @@
# a_rules.extend(verb_rules(add_semivowels("a"+ i) +"yuku")) #XXX:DONE
#Remote past tense:
- a_rules.extend(verb_rules(contract(i+"a")))
+# a_rules.extend(verb_rules(contract(i+"a"))) #XXX:DONE
for j in object_morphemes:
if illegal_reflexive(i, j):
@@ -294,7 +295,7 @@
#TODO: be- and se- forms
#Remote past tense:
- a_rules.extend(verb_rules(contract(i+"a")+j))
+# a_rules.extend(verb_rules(contract(i+"a")+j)) #XXX:DONE
a_rules.extend(verb_rules("loku"))
@@ -305,7 +306,7 @@
#Lines below indicated with two hashes will probably be better handled
#lexically (by just adding their stems to the dictionary)
V_rules.append(['a', 'ela', 'a'])
-V_rules.append(['a', 'elani', 'a'])
+V_rules.append(['a', 'elani', 'a']) #XXX:DONE
V_rules.append(['a', 'elaphi', 'a']) #
V_rules.append(['a', 'eka', 'a']) ##
V_rules.append(['a', 'ekana', 'a'])
@@ -316,8 +317,8 @@
V_rules.append(['a', 'isani', 'a'])
V_rules.append(['a', 'isaphi', 'a']) #
V_rules.append(['0', 'na', 'a'])
-V_rules.append(['0', 'ni', 'a'])
-V_rules.append(['0', 'phi', 'a']) #
+V_rules.append(['0', 'ni', 'a']) #XXX:DONE
+V_rules.append(['0', 'phi', 'a']) #XXX:DONE #
V_rules.append(['a', 'wa', '[^w]a']) ##?
#The above can create problems with monosyllabic verbs
V_rules.append(['a', 'wani', '[^w]a'])
@@ -395,13 +396,18 @@
simple_subjects.add_rule(affix=morpheme)
# Indicative, present, negative with subject morpheme only
verb_rules(main_subjects, affix=add_semivowels("a"+morpheme), needaffix=True, circumfix=True, continuation_classes=[negative_i, negative_anga])
- #Negative future tenses:
+ #Negative future tenses
verb_rules(simple_subjects_neg, affix=(add_semivowels("a" + morpheme)))
+
# We handle class 1 negative separately:
verb_rules(main_subjects, affix="aka", needaffix=True, circumfix=True, continuation_classes=[negative_i, negative_anga])
simple_subjects_neg.add_rule(affix=add_semivowels("aka"))
+ #Remote past tense
+ for morpheme in remote_past_subject_morphemes:
+ verb_rules(main_subjects, affix=morpheme, morphology="REMOTE_PAST_IND", continuation_classes=[question])
+
#indicative long form, present, positive
verb_rules(infixes, affix="ya", needaffix=True, morphology="PRESENT_IND_LONG", continuation_classes=[simple_subjects])
#progressive aspectual morpheme
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fri...@us...> - 2008-12-30 11:04:27
|
Revision: 9655
http://zaf.svn.sourceforge.net/zaf/?rev=9655&view=rev
Author: friedelwolff
Date: 2008-12-30 11:04:17 +0000 (Tue, 30 Dec 2008)
Log Message:
-----------
Split negative_indicative into the _i and _anga cases to allow negative infinitives. +Negative infinitives (with and without object morphemes)
Modified Paths:
--------------
trunk/dict/zu/hunspell/zu_aff.py
Modified: trunk/dict/zu/hunspell/zu_aff.py
===================================================================
--- trunk/dict/zu/hunspell/zu_aff.py 2008-12-30 10:36:30 UTC (rev 9654)
+++ trunk/dict/zu/hunspell/zu_aff.py 2008-12-30 11:04:17 UTC (rev 9655)
@@ -368,10 +368,13 @@
past_indicative = aff.add_group(suffix=True, flag="d")
# This group contains the suffixes for the past indicative (positive)
- negative_indicative = aff.add_group(suffix=True, flag="e")
- # This groups contains the suffixes for the negative indicative (future and
- # present)
+ negative_i = aff.add_group(suffix=True, flag="e")
+ # This groups contains the suffixes for the negative indicative (present)
+ # and infinitive
+ negative_anga = aff.add_group(suffix=True, flag="f")
+ # This groups contains the suffixes for the negative indicative (past)
+
imperative = aff.add_group(suffix=True, flag="F")
# This contains suffixes for imperative mode
@@ -391,12 +394,12 @@
# Here we don't use verb_rules, because this will always combine with -ya-
simple_subjects.add_rule(affix=morpheme)
# Indicative, present, negative with subject morpheme only
- verb_rules(main_subjects, affix=add_semivowels("a"+morpheme), needaffix=True, circumfix=True, continuation_classes=[negative_indicative])
+ verb_rules(main_subjects, affix=add_semivowels("a"+morpheme), needaffix=True, circumfix=True, continuation_classes=[negative_i, negative_anga])
#Negative future tenses:
verb_rules(simple_subjects_neg, affix=(add_semivowels("a" + morpheme)))
# We handle class 1 negative separately:
- verb_rules(main_subjects, affix="aka", needaffix=True, circumfix=True, continuation_classes=[negative_indicative])
+ verb_rules(main_subjects, affix="aka", needaffix=True, circumfix=True, continuation_classes=[negative_i, negative_anga])
simple_subjects_neg.add_rule(affix=add_semivowels("aka"))
#indicative long form, present, positive
@@ -428,7 +431,8 @@
verb_rules(infixes, affix="uku", morphology="INFINITIVE", continuation_classes=[locative])
#infinitive + -sa- progressive aspectual morpheme
verb_rules(infixes, affix="ukusa", morphology="INFINITIVE_PROG", continuation_classes=[locative])
- #TODO: infinitive, negative
+ #infinitive, negative
+ verb_rules(infixes, affix="ukunga", needaffix=True, circumfix=True, morphology="INFINITIVE_NEG", continuation_classes=[negative_i])#XXX
for morpheme in object_morphemes:
#Although this makes sense, this causes rules from main_subjects with mandatory continuation classes to
@@ -466,6 +470,8 @@
#infinitive with object morpheme
verb_rules(infixes, affix="uku"+morpheme, morphology="INFINITIVE_with_OBJ", continuation_classes=[locative])
+ #negative infinitive with object morpheme
+ verb_rules(infixes, affix="ukunga"+morpheme, needaffix=True, circumfix=True, morphology="INFINITIVE_NEG_with_OBJ", continuation_classes=[negative_i])
#infinitive + -sa- progressive aspectual morpheme
verb_rules(infixes, affix="ukusa"+morpheme, morphology="INFINITIVE_PROG_with_OBJ", continuation_classes=[locative])
@@ -475,8 +481,8 @@
past_indicative.add_rule(affix="e", strip="a", morphology="RECENT_PAST_IND_SHORT")
past_indicative.add_rule(affix="ile", strip="a", morphology="RECENT_PAST_IND_LONG")
- negative_indicative.add_rule(affix="i", circumfix=True, strip="a", morphology="PRESENT_IND_NEGATIVE")
- negative_indicative.add_rule(affix="nga", circumfix=True, morphology="PAST_IND_NEGATIVE")
+ negative_i.add_rule(affix="i", circumfix=True, strip="a", morphology="PRESENT_IND_NEG/INFINITIVE_NEG")
+ negative_anga.add_rule(affix="nga", circumfix=True, morphology="PAST_IND_NEGATIVE")
imperative.add_rule(affix="ni", condition="a", morphology="IMPERATIVE_(PLURAL)")
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fri...@us...> - 2008-12-30 10:36:37
|
Revision: 9654
http://zaf.svn.sourceforge.net/zaf/?rev=9654&view=rev
Author: friedelwolff
Date: 2008-12-30 10:36:30 +0000 (Tue, 30 Dec 2008)
Log Message:
-----------
Remove the old implementation adding the exclusive aspectual morpheme (ka) to future verbs. It should only apply to present tense and infinitive mode. +TODOs for exclusive aspectual morpheme.
Modified Paths:
--------------
trunk/dict/zu/hunspell/zu_aff.py
Modified: trunk/dict/zu/hunspell/zu_aff.py
===================================================================
--- trunk/dict/zu/hunspell/zu_aff.py 2008-12-30 10:25:45 UTC (rev 9653)
+++ trunk/dict/zu/hunspell/zu_aff.py 2008-12-30 10:36:30 UTC (rev 9654)
@@ -32,6 +32,8 @@
#TODO: be- and se- verbs
#TODO: non-indicative modes, positive and negative
#TODO: aspectual morphemes with non-indicative modes (+/-)
+#TODO: exclusive aspectual morpheme (ka) with indicative, present, negative
+#TODO: exclusive aspectual morpheme (ka) with infinitive
#TODO: monosyllabic verbs
#TODO: statives
#TODO: auxilary verbs
@@ -272,12 +274,6 @@
# a_rules.extend(verb_rules(add_semivowels("a"+ i) +"yu")) #XXX:DONE
# a_rules.extend(verb_rules(add_semivowels("a"+ i) +"yuku")) #XXX:DONE
- #-ka- + negative future tenses:
- a_rules.extend(verb_rules(add_semivowels("a"+ i) +"kazu"))
- a_rules.extend(verb_rules(add_semivowels("a"+ i) +"kazuku"))
- a_rules.extend(verb_rules(add_semivowels("a"+ i) +"kayu"))
- a_rules.extend(verb_rules(add_semivowels("a"+ i) +"kayuku"))
-
#Remote past tense:
a_rules.extend(verb_rules(contract(i+"a")))
@@ -295,12 +291,6 @@
# a_rules.extend(verb_rules(add_semivowels("a"+ i) +"yu"+j)) #XXX:DONE
# a_rules.extend(verb_rules(add_semivowels("a"+ i) +"yuku"+j)) #XXX:DONE
- #-ka- + negative future tenses:
- a_rules.extend(verb_rules(add_semivowels("a"+ i) +"kazu"+j))
- a_rules.extend(verb_rules(add_semivowels("a"+ i) +"kazuku"+j))
- a_rules.extend(verb_rules(add_semivowels("a"+ i) +"kayu"+j))
- a_rules.extend(verb_rules(add_semivowels("a"+ i) +"kayuku"+j))
-
#TODO: be- and se- forms
#Remote past tense:
@@ -428,7 +418,7 @@
verb_rules(infixes, affix="yu", condition="[^aeiou]", needaffix=True, morphology="DISTANT_FUTURE_IND_SHORT_NEG", continuation_classes=[simple_subjects_neg])
verb_rules(infixes, affix="yuku", needaffix=True, morphology="DISTANT_FUTURE_IND_LONG_NEG", continuation_classes=[simple_subjects_neg])
- #-sa- + indicative future tenses
+ #-sa- + indicative future tenses (progressive aspectual morpheme)
verb_rules(infixes, affix="sazo", condition="[^aeiou]", needaffix=True, morphology="PROG_NEAR_FUTURE_IND_SHORT", continuation_classes=[simple_subjects])
verb_rules(infixes, affix="sazoku", needaffix=True, morphology="PROG_NEAR_FUTURE_IND_LONG", continuation_classes=[simple_subjects])
verb_rules(infixes, affix="sayo", condition="[^aeiou]", needaffix=True, morphology="PROG_DISTANT_FUTURE_IND_SHORT", continuation_classes=[simple_subjects])
@@ -462,7 +452,7 @@
verb_rules(infixes, affix="yu"+morpheme, condition="[^aeiou]", needaffix=True, morphology="DISTANT_FUTURE_IND_SHORT_NEG_with_OBJ", continuation_classes=[simple_subjects_neg])
verb_rules(infixes, affix="yuku"+morpheme, needaffix=True, morphology="DISTANT_FUTURE_IND_LONG_NEG_with_OBJ", continuation_classes=[simple_subjects_neg])
- #-sa- + future indicative, positive
+ #-sa- + future indicative, positive (progressive aspectual morpheme)
verb_rules(infixes, affix="sazo"+morpheme, needaffix=True, morphology="PROG_NEAR_FUTURE_IND_SHORT_with_OBJ", continuation_classes=[simple_subjects])
verb_rules(infixes, affix="sazoku"+morpheme, needaffix=True, morphology="PROG_NEAR_FUTURE_IND_LONG_with_OBJ", continuation_classes=[simple_subjects])
verb_rules(infixes, affix="sayo"+morpheme, needaffix=True, morphology="PROG_DISTANT_FUTURE_IND_SHORT_with_OBJ", continuation_classes=[simple_subjects])
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fri...@us...> - 2008-12-30 10:25:54
|
Revision: 9653
http://zaf.svn.sourceforge.net/zaf/?rev=9653&view=rev
Author: friedelwolff
Date: 2008-12-30 10:25:45 +0000 (Tue, 30 Dec 2008)
Log Message:
-----------
Indicative, future, negative - with and without the progressive aspectual morpheme
Modified Paths:
--------------
trunk/dict/zu/hunspell/zu_aff.py
Modified: trunk/dict/zu/hunspell/zu_aff.py
===================================================================
--- trunk/dict/zu/hunspell/zu_aff.py 2008-12-29 14:48:49 UTC (rev 9652)
+++ trunk/dict/zu/hunspell/zu_aff.py 2008-12-30 10:25:45 UTC (rev 9653)
@@ -30,6 +30,8 @@
#TODO: review class 1 exceptions
#TODO: handle negative future circumfixes with vowel verbs better
#TODO: be- and se- verbs
+#TODO: non-indicative modes, positive and negative
+#TODO: aspectual morphemes with non-indicative modes (+/-)
#TODO: monosyllabic verbs
#TODO: statives
#TODO: auxilary verbs
@@ -261,14 +263,14 @@
#Mode specific ones:
for i in subject_morphemes:
-# a_rules.extend(verb_rules(i+"ya"))#XXX:DONE
+# a_rules.extend(verb_rules(i+"ya")) #XXX:DONE
#TODO: be- and se- forms
#Negative future tenses:
- a_rules.extend(verb_rules(add_semivowels("a"+ i) +"zu"))
- a_rules.extend(verb_rules(add_semivowels("a"+ i) +"zuku"))
- a_rules.extend(verb_rules(add_semivowels("a"+ i) +"yu"))
- a_rules.extend(verb_rules(add_semivowels("a"+ i) +"yuku"))
+# a_rules.extend(verb_rules(add_semivowels("a"+ i) +"zu")) #XXX:DONE
+# a_rules.extend(verb_rules(add_semivowels("a"+ i) +"zuku")) #XXX:DONE
+# a_rules.extend(verb_rules(add_semivowels("a"+ i) +"yu")) #XXX:DONE
+# a_rules.extend(verb_rules(add_semivowels("a"+ i) +"yuku")) #XXX:DONE
#-ka- + negative future tenses:
a_rules.extend(verb_rules(add_semivowels("a"+ i) +"kazu"))
@@ -288,10 +290,10 @@
# a_rules.extend(verb_rules("uku" + j)) #XXX:DONE
#Negative future tenses:
- a_rules.extend(verb_rules(add_semivowels("a"+ i) +"zu"+j))
- a_rules.extend(verb_rules(add_semivowels("a"+ i) +"zuku"+j))
- a_rules.extend(verb_rules(add_semivowels("a"+ i) +"yu"+j))
- a_rules.extend(verb_rules(add_semivowels("a"+ i) +"yuku"+j))
+# a_rules.extend(verb_rules(add_semivowels("a"+ i) +"zu"+j)) #XXX:DONE
+# a_rules.extend(verb_rules(add_semivowels("a"+ i) +"zuku"+j)) #XXX:DONE
+# a_rules.extend(verb_rules(add_semivowels("a"+ i) +"yu"+j)) #XXX:DONE
+# a_rules.extend(verb_rules(add_semivowels("a"+ i) +"yuku"+j)) #XXX:DONE
#-ka- + negative future tenses:
a_rules.extend(verb_rules(add_semivowels("a"+ i) +"kazu"+j))
@@ -454,11 +456,24 @@
verb_rules(infixes, affix="yo"+morpheme, needaffix=True, morphology="DISTANT_FUTURE_IND_SHORT_with_OBJ", continuation_classes=[simple_subjects])
verb_rules(infixes, affix="yoku"+morpheme, needaffix=True, morphology="DISTANT_FUTURE_IND_LONG_with_OBJ", continuation_classes=[simple_subjects])
+ #indicative future tenses, negative
+ verb_rules(infixes, affix="zu"+morpheme, condition="[^aeiou]", needaffix=True, morphology="NEAR_FUTURE_IND_SHORT_NEG_with_OBJ", continuation_classes=[simple_subjects_neg])
+ verb_rules(infixes, affix="zuku"+morpheme, needaffix=True, morphology="NEAR_FUTURE_IND_LONG_NEG_with_OBJ", continuation_classes=[simple_subjects_neg])
+ verb_rules(infixes, affix="yu"+morpheme, condition="[^aeiou]", needaffix=True, morphology="DISTANT_FUTURE_IND_SHORT_NEG_with_OBJ", continuation_classes=[simple_subjects_neg])
+ verb_rules(infixes, affix="yuku"+morpheme, needaffix=True, morphology="DISTANT_FUTURE_IND_LONG_NEG_with_OBJ", continuation_classes=[simple_subjects_neg])
+
+ #-sa- + future indicative, positive
verb_rules(infixes, affix="sazo"+morpheme, needaffix=True, morphology="PROG_NEAR_FUTURE_IND_SHORT_with_OBJ", continuation_classes=[simple_subjects])
verb_rules(infixes, affix="sazoku"+morpheme, needaffix=True, morphology="PROG_NEAR_FUTURE_IND_LONG_with_OBJ", continuation_classes=[simple_subjects])
verb_rules(infixes, affix="sayo"+morpheme, needaffix=True, morphology="PROG_DISTANT_FUTURE_IND_SHORT_with_OBJ", continuation_classes=[simple_subjects])
verb_rules(infixes, affix="sayoku"+morpheme, needaffix=True, morphology="PROG_DISTANT_FUTURE_IND_LONG_with_OBJ", continuation_classes=[simple_subjects])
+ #-sa- + indicative future tenses, negative
+ verb_rules(infixes, affix="sazu"+morpheme, condition="[^aeiou]", needaffix=True, morphology="PROG_NEAR_FUTURE_IND_SHORT_NEG_with_OBJ", continuation_classes=[simple_subjects_neg])
+ verb_rules(infixes, affix="sazuku"+morpheme, needaffix=True, morphology="PROG_NEAR_FUTURE_IND_LONG_NEG_with_OBJ", continuation_classes=[simple_subjects_neg])
+ verb_rules(infixes, affix="sayu"+morpheme, condition="[^aeiou]", needaffix=True, morphology="PROG_DISTANT_FUTURE_IND_SHORT_NEG_with_OBJ", continuation_classes=[simple_subjects_neg])
+ verb_rules(infixes, affix="sayuku"+morpheme, needaffix=True, morphology="PROG_DISTANT_FUTURE_IND_LONG_NEG_with_OBJ", continuation_classes=[simple_subjects_neg])
+
#infinitive with object morpheme
verb_rules(infixes, affix="uku"+morpheme, morphology="INFINITIVE_with_OBJ", continuation_classes=[locative])
#infinitive + -sa- progressive aspectual morpheme
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fri...@us...> - 2008-12-29 14:48:59
|
Revision: 9652
http://zaf.svn.sourceforge.net/zaf/?rev=9652&view=rev
Author: friedelwolff
Date: 2008-12-29 14:48:49 +0000 (Mon, 29 Dec 2008)
Log Message:
-----------
Add basic support for negative future indicative negative (short and long form). This requires another simple subjects class for negative subject morphemes.
Modified Paths:
--------------
trunk/dict/zu/hunspell/zu_aff.py
Modified: trunk/dict/zu/hunspell/zu_aff.py
===================================================================
--- trunk/dict/zu/hunspell/zu_aff.py 2008-12-29 14:46:31 UTC (rev 9651)
+++ trunk/dict/zu/hunspell/zu_aff.py 2008-12-29 14:48:49 UTC (rev 9652)
@@ -362,6 +362,11 @@
# This group will contain plain positive indicative subject morphemes that
# can combine with -ya-. This will duplicate some contents of main_subjects.
+ simple_subjects_neg = aff.add_group(suffix=False, flag="n")
+ # This group will contain negative future indicative subject morphemes that
+ # can combine with -zu- / -zuku-. This will duplicate some contents of
+ # main_subjects.
+
infixes = aff.add_group(suffix=False, flag="C")
# This group will contain all prefix groups inserted between the subject
# morpheme and the root. Combinations will be compacted as one prefix.#
@@ -395,9 +400,12 @@
simple_subjects.add_rule(affix=morpheme)
# Indicative, present, negative with subject morpheme only
verb_rules(main_subjects, affix=add_semivowels("a"+morpheme), needaffix=True, circumfix=True, continuation_classes=[negative_indicative])
+ #Negative future tenses:
+ verb_rules(simple_subjects_neg, affix=(add_semivowels("a" + morpheme)))
# We handle class 1 negative separately:
verb_rules(main_subjects, affix="aka", needaffix=True, circumfix=True, continuation_classes=[negative_indicative])
+ simple_subjects_neg.add_rule(affix=add_semivowels("aka"))
#indicative long form, present, positive
verb_rules(infixes, affix="ya", needaffix=True, morphology="PRESENT_IND_LONG", continuation_classes=[simple_subjects])
@@ -412,6 +420,12 @@
verb_rules(infixes, affix="yo", condition="[^aeiou]", needaffix=True, morphology="DISTANT_FUTURE_IND_SHORT", continuation_classes=[simple_subjects])
verb_rules(infixes, affix="yoku", needaffix=True, morphology="DISTANT_FUTURE_IND_LONG", continuation_classes=[simple_subjects])
+ #indicative future tenses, negative
+ verb_rules(infixes, affix="zu", condition="[^aeiou]", needaffix=True, morphology="NEAR_FUTURE_IND_SHORT_NEG", continuation_classes=[simple_subjects_neg])
+ verb_rules(infixes, affix="zuku", needaffix=True, morphology="NEAR_FUTURE_IND_LONG_NEG", continuation_classes=[simple_subjects_neg])
+ verb_rules(infixes, affix="yu", condition="[^aeiou]", needaffix=True, morphology="DISTANT_FUTURE_IND_SHORT_NEG", continuation_classes=[simple_subjects_neg])
+ verb_rules(infixes, affix="yuku", needaffix=True, morphology="DISTANT_FUTURE_IND_LONG_NEG", continuation_classes=[simple_subjects_neg])
+
#-sa- + indicative future tenses
verb_rules(infixes, affix="sazo", condition="[^aeiou]", needaffix=True, morphology="PROG_NEAR_FUTURE_IND_SHORT", continuation_classes=[simple_subjects])
verb_rules(infixes, affix="sazoku", needaffix=True, morphology="PROG_NEAR_FUTURE_IND_LONG", continuation_classes=[simple_subjects])
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fri...@us...> - 2008-12-29 14:46:42
|
Revision: 9651
http://zaf.svn.sourceforge.net/zaf/?rev=9651&view=rev
Author: friedelwolff
Date: 2008-12-29 14:46:31 +0000 (Mon, 29 Dec 2008)
Log Message:
-----------
Only use simple_subjects as a continuation class for the positive future tenses. Otherwise we over-generate with negative subject morphemes and positive future indicative prefixes.
Modified Paths:
--------------
trunk/dict/zu/hunspell/zu_aff.py
Modified: trunk/dict/zu/hunspell/zu_aff.py
===================================================================
--- trunk/dict/zu/hunspell/zu_aff.py 2008-12-29 08:19:42 UTC (rev 9650)
+++ trunk/dict/zu/hunspell/zu_aff.py 2008-12-29 14:46:31 UTC (rev 9651)
@@ -28,6 +28,7 @@
# This currently only handles morphology for verbs. More to follow later.
#TODO: review class 1 exceptions
+#TODO: handle negative future circumfixes with vowel verbs better
#TODO: be- and se- verbs
#TODO: monosyllabic verbs
#TODO: statives
@@ -394,6 +395,7 @@
simple_subjects.add_rule(affix=morpheme)
# Indicative, present, negative with subject morpheme only
verb_rules(main_subjects, affix=add_semivowels("a"+morpheme), needaffix=True, circumfix=True, continuation_classes=[negative_indicative])
+
# We handle class 1 negative separately:
verb_rules(main_subjects, affix="aka", needaffix=True, circumfix=True, continuation_classes=[negative_indicative])
@@ -405,16 +407,16 @@
verb_rules(infixes, affix="nga", needaffix=True, morphology="POTEN", continuation_classes=[main_subjects])
#indicative future tenses
- verb_rules(infixes, affix="zo", condition="[^aeiou]", needaffix=True, morphology="NEAR_FUTURE_IND_SHORT", continuation_classes=[main_subjects])
- verb_rules(infixes, affix="zoku", needaffix=True, morphology="NEAR_FUTURE_IND_LONG", continuation_classes=[main_subjects])
- verb_rules(infixes, affix="yo", condition="[^aeiou]", needaffix=True, morphology="DISTANT_FUTURE_IND_SHORT", continuation_classes=[main_subjects])
- verb_rules(infixes, affix="yoku", needaffix=True, morphology="DISTANT_FUTURE_IND_LONG", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="zo", condition="[^aeiou]", needaffix=True, morphology="NEAR_FUTURE_IND_SHORT", continuation_classes=[simple_subjects])
+ verb_rules(infixes, affix="zoku", needaffix=True, morphology="NEAR_FUTURE_IND_LONG", continuation_classes=[simple_subjects])
+ verb_rules(infixes, affix="yo", condition="[^aeiou]", needaffix=True, morphology="DISTANT_FUTURE_IND_SHORT", continuation_classes=[simple_subjects])
+ verb_rules(infixes, affix="yoku", needaffix=True, morphology="DISTANT_FUTURE_IND_LONG", continuation_classes=[simple_subjects])
#-sa- + indicative future tenses
- verb_rules(infixes, affix="sazo", condition="[^aeiou]", needaffix=True, morphology="PROG_NEAR_FUTURE_IND_SHORT", continuation_classes=[main_subjects])
- verb_rules(infixes, affix="sazoku", needaffix=True, morphology="PROG_NEAR_FUTURE_IND_LONG", continuation_classes=[main_subjects])
- verb_rules(infixes, affix="sayo", condition="[^aeiou]", needaffix=True, morphology="PROG_DISTANT_FUTURE_IND_SHORT", continuation_classes=[main_subjects])
- verb_rules(infixes, affix="sayoku", needaffix=True, morphology="PROG_DISTANT_FUTURE_IND_LONG", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="sazo", condition="[^aeiou]", needaffix=True, morphology="PROG_NEAR_FUTURE_IND_SHORT", continuation_classes=[simple_subjects])
+ verb_rules(infixes, affix="sazoku", needaffix=True, morphology="PROG_NEAR_FUTURE_IND_LONG", continuation_classes=[simple_subjects])
+ verb_rules(infixes, affix="sayo", condition="[^aeiou]", needaffix=True, morphology="PROG_DISTANT_FUTURE_IND_SHORT", continuation_classes=[simple_subjects])
+ verb_rules(infixes, affix="sayoku", needaffix=True, morphology="PROG_DISTANT_FUTURE_IND_LONG", continuation_classes=[simple_subjects])
#infinitive
verb_rules(infixes, affix="uku", morphology="INFINITIVE", continuation_classes=[locative])
@@ -423,21 +425,25 @@
#TODO: infinitive, negative
for morpheme in object_morphemes:
+ #Although this makes sense, this causes rules from main_subjects with mandatory continuation classes to
+ #not need them anymore. See for example "angizosa" or "angizithanda"
verb_rules(infixes, affix=morpheme, needaffix=True, morphology="OBJ", continuation_classes=[main_subjects])
verb_rules(infixes, affix="ya"+morpheme, needaffix=True, morphology="PRESENT_IND_LONG_with_OBJ", continuation_classes=[simple_subjects])
+ #This also over-generates like teh rule above. This rule incorrectly satisfies the NEEDAFFIX specification
+ #of rules in main_subjects. See for example "angisathanda".
verb_rules(infixes, affix="sa"+morpheme, needaffix=True, morphology="PROG_with_OBJ", continuation_classes=[main_subjects])
verb_rules(infixes, affix="nga"+morpheme, needaffix=True, morphology="POTEN_with_OBJ", continuation_classes=[main_subjects])
#TODO: do we need to exclude the short forms with vowel verbs?
- verb_rules(infixes, affix="zo"+morpheme, needaffix=True, morphology="NEAR_FUTURE_IND_SHORT_with_OBJ", continuation_classes=[main_subjects])
- verb_rules(infixes, affix="zoku"+morpheme, needaffix=True, morphology="NEAR_FUTURE_IND_LONG_with_OBJ", continuation_classes=[main_subjects])
- verb_rules(infixes, affix="yo"+morpheme, needaffix=True, morphology="DISTANT_FUTURE_IND_SHORT_with_OBJ", continuation_classes=[main_subjects])
- verb_rules(infixes, affix="yoku"+morpheme, needaffix=True, morphology="DISTANT_FUTURE_IND_LONG_with_OBJ", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="zo"+morpheme, needaffix=True, morphology="NEAR_FUTURE_IND_SHORT_with_OBJ", continuation_classes=[simple_subjects])
+ verb_rules(infixes, affix="zoku"+morpheme, needaffix=True, morphology="NEAR_FUTURE_IND_LONG_with_OBJ", continuation_classes=[simple_subjects])
+ verb_rules(infixes, affix="yo"+morpheme, needaffix=True, morphology="DISTANT_FUTURE_IND_SHORT_with_OBJ", continuation_classes=[simple_subjects])
+ verb_rules(infixes, affix="yoku"+morpheme, needaffix=True, morphology="DISTANT_FUTURE_IND_LONG_with_OBJ", continuation_classes=[simple_subjects])
- verb_rules(infixes, affix="sazo"+morpheme, needaffix=True, morphology="PROG_NEAR_FUTURE_IND_SHORT_with_OBJ", continuation_classes=[main_subjects])
- verb_rules(infixes, affix="sazoku"+morpheme, needaffix=True, morphology="PROG_NEAR_FUTURE_IND_LONG_with_OBJ", continuation_classes=[main_subjects])
- verb_rules(infixes, affix="sayo"+morpheme, needaffix=True, morphology="PROG_DISTANT_FUTURE_IND_SHORT_with_OBJ", continuation_classes=[main_subjects])
- verb_rules(infixes, affix="sayoku"+morpheme, needaffix=True, morphology="PROG_DISTANT_FUTURE_IND_LONG_with_OBJ", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="sazo"+morpheme, needaffix=True, morphology="PROG_NEAR_FUTURE_IND_SHORT_with_OBJ", continuation_classes=[simple_subjects])
+ verb_rules(infixes, affix="sazoku"+morpheme, needaffix=True, morphology="PROG_NEAR_FUTURE_IND_LONG_with_OBJ", continuation_classes=[simple_subjects])
+ verb_rules(infixes, affix="sayo"+morpheme, needaffix=True, morphology="PROG_DISTANT_FUTURE_IND_SHORT_with_OBJ", continuation_classes=[simple_subjects])
+ verb_rules(infixes, affix="sayoku"+morpheme, needaffix=True, morphology="PROG_DISTANT_FUTURE_IND_LONG_with_OBJ", continuation_classes=[simple_subjects])
#infinitive with object morpheme
verb_rules(infixes, affix="uku"+morpheme, morphology="INFINITIVE_with_OBJ", continuation_classes=[locative])
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fri...@us...> - 2008-12-29 08:19:46
|
Revision: 9650
http://zaf.svn.sourceforge.net/zaf/?rev=9650&view=rev
Author: friedelwolff
Date: 2008-12-29 08:19:42 +0000 (Mon, 29 Dec 2008)
Log Message:
-----------
If a condition was passed to verb_rules(), ensure that at least the simple rule form is generated. This fixes the bug where -zo- and -yo- was not generated at all
Modified Paths:
--------------
trunk/dict/zu/hunspell/zu_aff.py
Modified: trunk/dict/zu/hunspell/zu_aff.py
===================================================================
--- trunk/dict/zu/hunspell/zu_aff.py 2008-12-29 08:11:35 UTC (rev 9649)
+++ trunk/dict/zu/hunspell/zu_aff.py 2008-12-29 08:19:42 UTC (rev 9650)
@@ -164,8 +164,7 @@
#of the rules
condition = kwargs.pop('condition', '')
if condition:
- #the rule above already generated the simple case and passed the
- #condition.
+ group.add_rule(affix=prefix, condition=condition, **kwargs)
return group.rules
#normal verb starting on consonant:
group.add_rule(affix=prefix, condition="[^aeiou]", **kwargs)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fri...@us...> - 2008-12-29 08:11:43
|
Revision: 9649
http://zaf.svn.sourceforge.net/zaf/?rev=9649&view=rev
Author: friedelwolff
Date: 2008-12-29 08:11:35 +0000 (Mon, 29 Dec 2008)
Log Message:
-----------
Limit the -zo- and -yo- future indicative prefixes to non-vowel verbs
Modified Paths:
--------------
trunk/dict/zu/hunspell/zu_aff.py
Modified: trunk/dict/zu/hunspell/zu_aff.py
===================================================================
--- trunk/dict/zu/hunspell/zu_aff.py 2008-12-26 16:55:40 UTC (rev 9648)
+++ trunk/dict/zu/hunspell/zu_aff.py 2008-12-29 08:11:35 UTC (rev 9649)
@@ -359,7 +359,7 @@
# This group will contain all the major subject morphemes
simple_subjects = aff.add_group(suffix=False, flag="s")
- # This group will contain plain positive indicate subject morphemes that
+ # This group will contain plain positive indicative subject morphemes that
# can combine with -ya-. This will duplicate some contents of main_subjects.
infixes = aff.add_group(suffix=False, flag="C")
@@ -406,9 +406,9 @@
verb_rules(infixes, affix="nga", needaffix=True, morphology="POTEN", continuation_classes=[main_subjects])
#indicative future tenses
- verb_rules(infixes, affix="zo", needaffix=True, morphology="NEAR_FUTURE_IND_SHORT", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="zo", condition="[^aeiou]", needaffix=True, morphology="NEAR_FUTURE_IND_SHORT", continuation_classes=[main_subjects])
verb_rules(infixes, affix="zoku", needaffix=True, morphology="NEAR_FUTURE_IND_LONG", continuation_classes=[main_subjects])
- verb_rules(infixes, affix="yo", needaffix=True, morphology="DISTANT_FUTURE_IND_SHORT", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="yo", condition="[^aeiou]", needaffix=True, morphology="DISTANT_FUTURE_IND_SHORT", continuation_classes=[main_subjects])
verb_rules(infixes, affix="yoku", needaffix=True, morphology="DISTANT_FUTURE_IND_LONG", continuation_classes=[main_subjects])
#-sa- + indicative future tenses
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fri...@us...> - 2008-12-26 16:55:44
|
Revision: 9648
http://zaf.svn.sourceforge.net/zaf/?rev=9648&view=rev
Author: friedelwolff
Date: 2008-12-26 16:55:40 +0000 (Fri, 26 Dec 2008)
Log Message:
-----------
Mark another item as done. +Some more notes.
Modified Paths:
--------------
trunk/dict/zu/hunspell/zu_aff.py
Modified: trunk/dict/zu/hunspell/zu_aff.py
===================================================================
--- trunk/dict/zu/hunspell/zu_aff.py 2008-12-26 15:52:43 UTC (rev 9647)
+++ trunk/dict/zu/hunspell/zu_aff.py 2008-12-26 16:55:40 UTC (rev 9648)
@@ -222,6 +222,7 @@
################################################################################
for i in concords:
+#TODO: look at these rules for non-indicative subject morphemes
# A_rules.extend(verb_rules(i)) #XXX:DONE
# A_rules.extend(verb_rules(i+"nga")) #XXX:DONE
@@ -282,7 +283,7 @@
if illegal_reflexive(i, j):
continue
#Indicative:
- a_rules.extend(verb_rules(i + "ya" + j))
+# a_rules.extend(verb_rules(i + "ya" + j)) #XXX:DONE
#Infinitive
# a_rules.extend(verb_rules("uku" + j)) #XXX:DONE
@@ -309,21 +310,23 @@
a_rules.extend(verb_rules("noku"))
#Lines below indicated with hashes will cause incorect imperatives
+#Lines below indicated with two hashes will probably be better handled
+#lexically (by just adding their stems to the dictionary)
V_rules.append(['a', 'ela', 'a'])
V_rules.append(['a', 'elani', 'a'])
V_rules.append(['a', 'elaphi', 'a']) #
-V_rules.append(['a', 'eka', 'a'])
+V_rules.append(['a', 'eka', 'a']) ##
V_rules.append(['a', 'ekana', 'a'])
V_rules.append(['a', 'ekani', 'a'])
V_rules.append(['a', 'ekaphi', 'a']) #
-V_rules.append(['a', 'isa', 'a'])
+V_rules.append(['a', 'isa', 'a']) ##
V_rules.append(['a', 'isana', 'a'])
V_rules.append(['a', 'isani', 'a'])
V_rules.append(['a', 'isaphi', 'a']) #
V_rules.append(['0', 'na', 'a'])
V_rules.append(['0', 'ni', 'a'])
V_rules.append(['0', 'phi', 'a']) #
-V_rules.append(['a', 'wa', '[^w]a'])
+V_rules.append(['a', 'wa', '[^w]a']) ##?
#The above can create problems with monosyllabic verbs
V_rules.append(['a', 'wani', '[^w]a'])
V_rules.append(['a', 'waphi', '[^w]a'])
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fri...@us...> - 2008-12-26 15:52:47
|
Revision: 9647
http://zaf.svn.sourceforge.net/zaf/?rev=9647&view=rev
Author: friedelwolff
Date: 2008-12-26 15:52:43 +0000 (Fri, 26 Dec 2008)
Log Message:
-----------
Infinitives (plain, and combined with progressive aspectual morpheme)
Modified Paths:
--------------
trunk/dict/zu/hunspell/zu_aff.py
Modified: trunk/dict/zu/hunspell/zu_aff.py
===================================================================
--- trunk/dict/zu/hunspell/zu_aff.py 2008-12-26 11:44:01 UTC (rev 9646)
+++ trunk/dict/zu/hunspell/zu_aff.py 2008-12-26 15:52:43 UTC (rev 9647)
@@ -284,10 +284,7 @@
#Indicative:
a_rules.extend(verb_rules(i + "ya" + j))
#Infinitive
- a_rules.extend(verb_rules("uku" + j))
- a_rules.extend(verb_rules("uku" + j))
- a_rules.extend(verb_rules("uku" + j))
- a_rules.extend(verb_rules("uku" + j))
+# a_rules.extend(verb_rules("uku" + j)) #XXX:DONE
#Negative future tenses:
a_rules.extend(verb_rules(add_semivowels("a"+ i) +"zu"+j))
@@ -417,6 +414,12 @@
verb_rules(infixes, affix="sayo", condition="[^aeiou]", needaffix=True, morphology="PROG_DISTANT_FUTURE_IND_SHORT", continuation_classes=[main_subjects])
verb_rules(infixes, affix="sayoku", needaffix=True, morphology="PROG_DISTANT_FUTURE_IND_LONG", continuation_classes=[main_subjects])
+ #infinitive
+ verb_rules(infixes, affix="uku", morphology="INFINITIVE", continuation_classes=[locative])
+ #infinitive + -sa- progressive aspectual morpheme
+ verb_rules(infixes, affix="ukusa", morphology="INFINITIVE_PROG", continuation_classes=[locative])
+ #TODO: infinitive, negative
+
for morpheme in object_morphemes:
verb_rules(infixes, affix=morpheme, needaffix=True, morphology="OBJ", continuation_classes=[main_subjects])
verb_rules(infixes, affix="ya"+morpheme, needaffix=True, morphology="PRESENT_IND_LONG_with_OBJ", continuation_classes=[simple_subjects])
@@ -434,7 +437,11 @@
verb_rules(infixes, affix="sayo"+morpheme, needaffix=True, morphology="PROG_DISTANT_FUTURE_IND_SHORT_with_OBJ", continuation_classes=[main_subjects])
verb_rules(infixes, affix="sayoku"+morpheme, needaffix=True, morphology="PROG_DISTANT_FUTURE_IND_LONG_with_OBJ", continuation_classes=[main_subjects])
- verb_rules(infixes, affix="uku", morphology="INFINITIVE", continuation_classes=[locative])
+ #infinitive with object morpheme
+ verb_rules(infixes, affix="uku"+morpheme, morphology="INFINITIVE_with_OBJ", continuation_classes=[locative])
+ #infinitive + -sa- progressive aspectual morpheme
+ verb_rules(infixes, affix="ukusa"+morpheme, morphology="INFINITIVE_PROG_with_OBJ", continuation_classes=[locative])
+
infixes.add_rule(affix="", condition="[^aeiou]", morphology="IMPERATIVE", continuation_classes=[imperative])
infixes.add_rule(affix="y", condition="[aeiou]", morphology="IMPERATIVE", continuation_classes=[imperative])
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fri...@us...> - 2008-12-26 12:07:59
|
Revision: 9646
http://zaf.svn.sourceforge.net/zaf/?rev=9646&view=rev
Author: friedelwolff
Date: 2008-12-26 11:44:01 +0000 (Fri, 26 Dec 2008)
Log Message:
-----------
Generate rules for -nga- potential aspectual morpheme, as well as indicative future tenses and combinations with -nga- and -sa- aspectual morphemes
Modified Paths:
--------------
trunk/dict/zu/hunspell/zu_aff.py
Modified: trunk/dict/zu/hunspell/zu_aff.py
===================================================================
--- trunk/dict/zu/hunspell/zu_aff.py 2008-12-26 10:33:08 UTC (rev 9645)
+++ trunk/dict/zu/hunspell/zu_aff.py 2008-12-26 11:44:01 UTC (rev 9646)
@@ -160,6 +160,13 @@
group.add_rule(affix=prefix, **kwargs)
return group.rules
+ #if a condition was passed mandating [^aeiou], we can't generate the rest
+ #of the rules
+ condition = kwargs.pop('condition', '')
+ if condition:
+ #the rule above already generated the simple case and passed the
+ #condition.
+ return group.rules
#normal verb starting on consonant:
group.add_rule(affix=prefix, condition="[^aeiou]", **kwargs)
@@ -217,39 +224,39 @@
for i in concords:
# A_rules.extend(verb_rules(i)) #XXX:DONE
- A_rules.extend(verb_rules(i+"nga"))
- A_rules.extend(verb_rules(i+"sa"))
+# A_rules.extend(verb_rules(i+"nga")) #XXX:DONE
+# A_rules.extend(verb_rules(i+"sa")) #XXX:DONE
#Future tenses:
- a_rules.extend(verb_rules(i+"zo"))
- a_rules.extend(verb_rules(i+"zoku"))
- a_rules.extend(verb_rules(i+"yo"))
- a_rules.extend(verb_rules(i+"yoku"))
+# a_rules.extend(verb_rules(i+"zo")) #XXX:DONE
+# a_rules.extend(verb_rules(i+"zoku")) #XXX:DONE
+# a_rules.extend(verb_rules(i+"yo")) #XXX:DONE
+# a_rules.extend(verb_rules(i+"yoku")) #XXX:DONE
#-sa- + future tenses:
- a_rules.extend(verb_rules(i+"sazo"))
- a_rules.extend(verb_rules(i+"sazoku"))
- a_rules.extend(verb_rules(i+"sayo"))
- a_rules.extend(verb_rules(i+"sayoku"))
+# a_rules.extend(verb_rules(i+"sazo")) #XXX:DONE
+# a_rules.extend(verb_rules(i+"sazoku")) #XXX:DONE
+# a_rules.extend(verb_rules(i+"sayo")) #XXX:DONE
+# a_rules.extend(verb_rules(i+"sayoku")) #XXX:DONE
for j in object_morphemes:
if illegal_reflexive(i, j):
continue
- A_rules.extend(verb_rules(i+j))
- A_rules.extend(verb_rules(i+"nga"+j)) #confusable with negatives
- A_rules.extend(verb_rules(i+"sa"+j))
+# A_rules.extend(verb_rules(i+j)) #XXX:DONE
+# A_rules.extend(verb_rules(i+"nga"+j)) #confusable with negatives #XXX:DONE
+# A_rules.extend(verb_rules(i+"sa"+j)) #XXX:DONE
#Future tenses:
- a_rules.extend(verb_rules(i+"zo"+j))
- a_rules.extend(verb_rules(i+"zoku"+j))
- a_rules.extend(verb_rules(i+"yo"+j))
- a_rules.extend(verb_rules(i+"yoku"+j))
+# a_rules.extend(verb_rules(i+"zo"+j)) #XXX:DONE
+# a_rules.extend(verb_rules(i+"zoku"+j)) #XXX:DONE
+# a_rules.extend(verb_rules(i+"yo"+j)) #XXX:DONE
+# a_rules.extend(verb_rules(i+"yoku"+j)) #XXX:DONE
#-sa- + future tenses:
- a_rules.extend(verb_rules(i+"sazo"+j))
- a_rules.extend(verb_rules(i+"sazoku"+j))
- a_rules.extend(verb_rules(i+"sayo"+j))
- a_rules.extend(verb_rules(i+"sayoku"+j))
+# a_rules.extend(verb_rules(i+"sazo"+j)) #XXX:DONE
+# a_rules.extend(verb_rules(i+"sazoku"+j)) #XXX:DONE
+# a_rules.extend(verb_rules(i+"sayo"+j)) #XXX:DONE
+# a_rules.extend(verb_rules(i+"sayoku"+j)) #XXX:DONE
#Mode specific ones:
for i in subject_morphemes:
@@ -391,13 +398,42 @@
# We handle class 1 negative separately:
verb_rules(main_subjects, affix="aka", needaffix=True, circumfix=True, continuation_classes=[negative_indicative])
+ #indicative long form, present, positive
+ verb_rules(infixes, affix="ya", needaffix=True, morphology="PRESENT_IND_LONG", continuation_classes=[simple_subjects])
+ #progressive aspectual morpheme
+ verb_rules(infixes, affix="sa", needaffix=True, morphology="PROG", continuation_classes=[main_subjects])
+ #potensial aspectual morpheme
+ verb_rules(infixes, affix="nga", needaffix=True, morphology="POTEN", continuation_classes=[main_subjects])
- verb_rules(infixes, affix="ya", needaffix=True, morphology="PRESENT_IND_LONG", continuation_classes=[simple_subjects])
- verb_rules(infixes, affix="sa", needaffix=True, morphology="STILL", continuation_classes=[main_subjects])
+ #indicative future tenses
+ verb_rules(infixes, affix="zo", needaffix=True, morphology="NEAR_FUTURE_IND_SHORT", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="zoku", needaffix=True, morphology="NEAR_FUTURE_IND_LONG", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="yo", needaffix=True, morphology="DISTANT_FUTURE_IND_SHORT", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="yoku", needaffix=True, morphology="DISTANT_FUTURE_IND_LONG", continuation_classes=[main_subjects])
+
+ #-sa- + indicative future tenses
+ verb_rules(infixes, affix="sazo", condition="[^aeiou]", needaffix=True, morphology="PROG_NEAR_FUTURE_IND_SHORT", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="sazoku", needaffix=True, morphology="PROG_NEAR_FUTURE_IND_LONG", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="sayo", condition="[^aeiou]", needaffix=True, morphology="PROG_DISTANT_FUTURE_IND_SHORT", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="sayoku", needaffix=True, morphology="PROG_DISTANT_FUTURE_IND_LONG", continuation_classes=[main_subjects])
+
for morpheme in object_morphemes:
verb_rules(infixes, affix=morpheme, needaffix=True, morphology="OBJ", continuation_classes=[main_subjects])
verb_rules(infixes, affix="ya"+morpheme, needaffix=True, morphology="PRESENT_IND_LONG_with_OBJ", continuation_classes=[simple_subjects])
- verb_rules(infixes, affix="sa"+morpheme, needaffix=True, morphology="STILL_with_OBJ", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="sa"+morpheme, needaffix=True, morphology="PROG_with_OBJ", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="nga"+morpheme, needaffix=True, morphology="POTEN_with_OBJ", continuation_classes=[main_subjects])
+
+ #TODO: do we need to exclude the short forms with vowel verbs?
+ verb_rules(infixes, affix="zo"+morpheme, needaffix=True, morphology="NEAR_FUTURE_IND_SHORT_with_OBJ", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="zoku"+morpheme, needaffix=True, morphology="NEAR_FUTURE_IND_LONG_with_OBJ", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="yo"+morpheme, needaffix=True, morphology="DISTANT_FUTURE_IND_SHORT_with_OBJ", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="yoku"+morpheme, needaffix=True, morphology="DISTANT_FUTURE_IND_LONG_with_OBJ", continuation_classes=[main_subjects])
+
+ verb_rules(infixes, affix="sazo"+morpheme, needaffix=True, morphology="PROG_NEAR_FUTURE_IND_SHORT_with_OBJ", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="sazoku"+morpheme, needaffix=True, morphology="PROG_NEAR_FUTURE_IND_LONG_with_OBJ", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="sayo"+morpheme, needaffix=True, morphology="PROG_DISTANT_FUTURE_IND_SHORT_with_OBJ", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="sayoku"+morpheme, needaffix=True, morphology="PROG_DISTANT_FUTURE_IND_LONG_with_OBJ", continuation_classes=[main_subjects])
+
verb_rules(infixes, affix="uku", morphology="INFINITIVE", continuation_classes=[locative])
infixes.add_rule(affix="", condition="[^aeiou]", morphology="IMPERATIVE", continuation_classes=[imperative])
infixes.add_rule(affix="y", condition="[aeiou]", morphology="IMPERATIVE", continuation_classes=[imperative])
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fri...@us...> - 2008-12-26 10:33:15
|
Revision: 9645
http://zaf.svn.sourceforge.net/zaf/?rev=9645&view=rev
Author: friedelwolff
Date: 2008-12-26 10:33:08 +0000 (Fri, 26 Dec 2008)
Log Message:
-----------
Only apply verb rules specially if it is necessary (if the prefix ends on a vowel). This ensures proper handling of class 1 object morphemes with vowel verbs, such as 'ngimosa'.
Modified Paths:
--------------
trunk/dict/zu/hunspell/zu_aff.py
Modified: trunk/dict/zu/hunspell/zu_aff.py
===================================================================
--- trunk/dict/zu/hunspell/zu_aff.py 2008-12-26 10:31:29 UTC (rev 9644)
+++ trunk/dict/zu/hunspell/zu_aff.py 2008-12-26 10:33:08 UTC (rev 9645)
@@ -155,6 +155,11 @@
group = AffixGroup(flag="tmp", suffix=False)
else:
prefix = kwargs.pop('affix')
+ #The verb rules are only really necessary if the prefix ends on a vowel
+ if not prefix[-1] in "aeiou":
+ group.add_rule(affix=prefix, **kwargs)
+ return group.rules
+
#normal verb starting on consonant:
group.add_rule(affix=prefix, condition="[^aeiou]", **kwargs)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fri...@us...> - 2008-12-26 10:31:37
|
Revision: 9644
http://zaf.svn.sourceforge.net/zaf/?rev=9644&view=rev
Author: friedelwolff
Date: 2008-12-26 10:31:29 +0000 (Fri, 26 Dec 2008)
Log Message:
-----------
Generate prefixes with object morphemes from the list
Modified Paths:
--------------
trunk/dict/zu/hunspell/zu_aff.py
Modified: trunk/dict/zu/hunspell/zu_aff.py
===================================================================
--- trunk/dict/zu/hunspell/zu_aff.py 2008-12-26 10:08:32 UTC (rev 9643)
+++ trunk/dict/zu/hunspell/zu_aff.py 2008-12-26 10:31:29 UTC (rev 9644)
@@ -40,7 +40,7 @@
relative_prefixes = ["engi", "esi", "eni", "o", "aba", "e", "eli", "a", "esi", "ezi", "olu", "obu", "oku"]
situative_prefixes = ["e", "be"]
concords = subject_morphemes + relative_prefixes + situative_prefixes
-object_concords = ["ngi", "ku", "si", "ni", "m", "ba", "wu", "yi", "li", "wa", "zi", "lu", "bu"]
+object_morphemes = ["ngi", "ku", "si", "ni", "m", "ba", "wu", "yi", "li", "wa", "zi", "lu", "bu"]
a_rules = [["a", "Y", "PFX"]]
"""prefixes only applicable to verbs ending on -a"""
@@ -227,7 +227,7 @@
a_rules.extend(verb_rules(i+"sayo"))
a_rules.extend(verb_rules(i+"sayoku"))
- for j in object_concords:
+ for j in object_morphemes:
if illegal_reflexive(i, j):
continue
A_rules.extend(verb_rules(i+j))
@@ -266,7 +266,7 @@
#Remote past tense:
a_rules.extend(verb_rules(contract(i+"a")))
- for j in object_concords:
+ for j in object_morphemes:
if illegal_reflexive(i, j):
continue
#Indicative:
@@ -388,10 +388,11 @@
verb_rules(infixes, affix="ya", needaffix=True, morphology="PRESENT_IND_LONG", continuation_classes=[simple_subjects])
- verb_rules(infixes, affix="yaku", needaffix=True, morphology="PRESENT_IND_LONG_OBJ_ku", continuation_classes=[simple_subjects])
verb_rules(infixes, affix="sa", needaffix=True, morphology="STILL", continuation_classes=[main_subjects])
- verb_rules(infixes, affix="ku", needaffix=True, morphology="OBJ_ku", continuation_classes=[main_subjects])#
- verb_rules(infixes, affix="saku", needaffix=True, continuation_classes=[main_subjects])
+ for morpheme in object_morphemes:
+ verb_rules(infixes, affix=morpheme, needaffix=True, morphology="OBJ", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="ya"+morpheme, needaffix=True, morphology="PRESENT_IND_LONG_with_OBJ", continuation_classes=[simple_subjects])
+ verb_rules(infixes, affix="sa"+morpheme, needaffix=True, morphology="STILL_with_OBJ", continuation_classes=[main_subjects])
verb_rules(infixes, affix="uku", morphology="INFINITIVE", continuation_classes=[locative])
infixes.add_rule(affix="", condition="[^aeiou]", morphology="IMPERATIVE", continuation_classes=[imperative])
infixes.add_rule(affix="y", condition="[aeiou]", morphology="IMPERATIVE", continuation_classes=[imperative])
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fri...@us...> - 2008-12-26 10:08:39
|
Revision: 9643
http://zaf.svn.sourceforge.net/zaf/?rev=9643&view=rev
Author: friedelwolff
Date: 2008-12-26 10:08:32 +0000 (Fri, 26 Dec 2008)
Log Message:
-----------
Use verb_rules to generate correct rules for vowel verbs
Modified Paths:
--------------
trunk/dict/zu/hunspell/zu_aff.py
Modified: trunk/dict/zu/hunspell/zu_aff.py
===================================================================
--- trunk/dict/zu/hunspell/zu_aff.py 2008-12-24 13:40:35 UTC (rev 9642)
+++ trunk/dict/zu/hunspell/zu_aff.py 2008-12-26 10:08:32 UTC (rev 9643)
@@ -27,6 +27,7 @@
# This currently only handles morphology for verbs. More to follow later.
+#TODO: review class 1 exceptions
#TODO: be- and se- verbs
#TODO: monosyllabic verbs
#TODO: statives
@@ -153,7 +154,7 @@
#Let's make a temporary group to work with
group = AffixGroup(flag="tmp", suffix=False)
else:
- prefix = kwargs.pop('prefix')
+ prefix = kwargs.pop('affix')
#normal verb starting on consonant:
group.add_rule(affix=prefix, condition="[^aeiou]", **kwargs)
@@ -376,21 +377,22 @@
for morpheme in subject_morphemes:
# Indicative short form, present, positive with subject morpheme only
- main_subjects.add_rule(affix=morpheme, continuation_classes=[past_indicative, question])
+ verb_rules(main_subjects, affix=morpheme, continuation_classes=[past_indicative, question])
# Duplicate it for the sake of the indicative long form, present, positive
+ # Here we don't use verb_rules, because this will always combine with -ya-
simple_subjects.add_rule(affix=morpheme)
# Indicative, present, negative with subject morpheme only
- main_subjects.add_rule(affix=add_semivowels("a"+morpheme), needaffix=True, circumfix=True, continuation_classes=[negative_indicative])
+ verb_rules(main_subjects, affix=add_semivowels("a"+morpheme), needaffix=True, circumfix=True, continuation_classes=[negative_indicative])
# We handle class 1 negative separately:
- main_subjects.add_rule(affix="aka", needaffix=True, circumfix=True, continuation_classes=[negative_indicative])
+ verb_rules(main_subjects, affix="aka", needaffix=True, circumfix=True, continuation_classes=[negative_indicative])
- infixes.add_rule(affix="ya", needaffix=True, morphology="PRESENT_IND_LONG", continuation_classes=[simple_subjects])
- infixes.add_rule(affix="yaku", needaffix=True, morphology="PRESENT_IND_LONG_OBJ_ku", continuation_classes=[simple_subjects])
- infixes.add_rule(affix="sa", needaffix=True, morphology="STILL", continuation_classes=[main_subjects])
- infixes.add_rule(affix="ku", needaffix=True, morphology="OBJ_ku", continuation_classes=[main_subjects])#
- infixes.add_rule(affix="saku", needaffix=True, continuation_classes=[main_subjects])
- infixes.add_rule(affix="uku", morphology="INFINITIVE", continuation_classes=[locative])
+ verb_rules(infixes, affix="ya", needaffix=True, morphology="PRESENT_IND_LONG", continuation_classes=[simple_subjects])
+ verb_rules(infixes, affix="yaku", needaffix=True, morphology="PRESENT_IND_LONG_OBJ_ku", continuation_classes=[simple_subjects])
+ verb_rules(infixes, affix="sa", needaffix=True, morphology="STILL", continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="ku", needaffix=True, morphology="OBJ_ku", continuation_classes=[main_subjects])#
+ verb_rules(infixes, affix="saku", needaffix=True, continuation_classes=[main_subjects])
+ verb_rules(infixes, affix="uku", morphology="INFINITIVE", continuation_classes=[locative])
infixes.add_rule(affix="", condition="[^aeiou]", morphology="IMPERATIVE", continuation_classes=[imperative])
infixes.add_rule(affix="y", condition="[aeiou]", morphology="IMPERATIVE", continuation_classes=[imperative])
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fri...@us...> - 2008-12-24 13:40:43
|
Revision: 9642
http://zaf.svn.sourceforge.net/zaf/?rev=9642&view=rev
Author: friedelwolff
Date: 2008-12-24 13:40:35 +0000 (Wed, 24 Dec 2008)
Log Message:
-----------
Rewrite verb_rules to accept **kwargs and work with Affix and AffixGroup objects directly
Modified Paths:
--------------
trunk/dict/zu/hunspell/zu_aff.py
Modified: trunk/dict/zu/hunspell/zu_aff.py
===================================================================
--- trunk/dict/zu/hunspell/zu_aff.py 2008-12-24 11:57:35 UTC (rev 9641)
+++ trunk/dict/zu/hunspell/zu_aff.py 2008-12-24 13:40:35 UTC (rev 9642)
@@ -139,7 +139,7 @@
prefix = re.sub(r"[aeiou]([aeiou])", r"\1", prefix)
return prefix
-def verb_rules(prefix):
+def verb_rules(group, **kwargs):
"""Generate the necessary rules to prepend the given prefix to a verb
It receives a string with the already built (complete) prefix and
@@ -147,65 +147,70 @@
consequence of vowel verbs are taken into account here, and no users of
this function need to take vowel verbs into account.
"""
- changed = []
+ if isinstance(group, basestring):
+ #old API - this is actually the prefix
+ prefix = group
+ #Let's make a temporary group to work with
+ group = AffixGroup(flag="tmp", suffix=False)
+ else:
+ prefix = kwargs.pop('prefix')
#normal verb starting on consonant:
- changed.append(["0", prefix, "[^y]"])
- #monosyllabic verbs: in the dictionary in imperative form, e.g. yidla
- changed.append(["yi", prefix, "yi"])
+ group.add_rule(affix=prefix, condition="[^aeiou]", **kwargs)
- #now for the complicated part: verbs starting on vowels. (e.g. yakha)
+ #now for the complicated part: verbs starting on vowels. (e.g. akha)
if prefix[-1] == 'u':
#the 'u' always needs to be removed, we probably need a 'w'
prefix = prefix[0:-1]
#if the original prefix ended on 'wu', we don't want to add
#another 'w' as this will result in 'ww'
if len(prefix) > 0 and prefix[-1] == 'w':
- changed.append(["y", prefix, "y[ae]"])
+ group.add_rule(affix=prefix, condition="[ae]", **kwargs)
else:
- changed.append(["y", prefix + 'w', "y[ae]"])
+ group.add_rule(affix=prefix + 'w', condition="[ae]", **kwargs)
if len(prefix) == 0:
#if prefix == 'u' before 'o' we change to 'w' as above
- changed.append(["y", 'w', "yo"])
+ group.add_rule(affix='w', condition="o", **kwargs)
else:
#for a prefix ending on 'u' before 'o' we simply remove the 'u'
#without adding 'w', e.g. lu + osa -> losa
- changed.append(["y", prefix, "yo"])
- return changed
+ group.add_rule(affix=prefix, condition="o", **kwargs)
+ return group.rules
if prefix[-1] == 'i':
#if the complete prefix is 'i' before a vowel verb, we can
#ignore it, as it is simply the same as the imperative form
#example: i + enza = yenza
#
- #otherwise, change 'i' to 'y'
if len(prefix) > 1:
prefix = prefix[0:-1]
- changed.append(["y", prefix, "y[^i]"])
- #changed.append(["y", prefix, "y"])
- #TODO: this just made the "yi", prefix "yi" rule (above) unnecessary
- return changed
+ group.add_rule(affix=prefix, condition="[aeiou]", **kwargs)
+ else:
+ #otherwise, change 'i' to 'y'
+ group.add_rule(affix="y", condition="[aeiou]", **kwargs)
+ return group.rules
if prefix[-1] == 'a':
prefix = prefix[0:-1]
- changed.append(["y", prefix, "y[^i]"])
- #changed.append(["y", prefix, "y"])
- #TODO: this just made the "yi", prefix "yi" rule (above) unnecessary
- return changed
+ #prefix could now be "", which is probably ok:
+ # amadoda enza lokhu
+ group.add_rule(affix=prefix, condition="[aeiou]", **kwargs)
+ return group.rules
if prefix == "o":
#Although other prefixes can end on 'o' ('zo' or 'yo'), these
#are only used with consonant verbs and not with monosyllabics.
#TODO: verify if others are possible
- #TODO: verify if 'zo' and 'yo' are only used before consonants
- return changed
+ return group.rules
if prefix[-1] == "e":
#TODO: situative e- and be- should be handled (entirely thrown away?).
#We can probably just generate them, and duplicate handling should take
#care of them. Then we need to handle relatives with ending on e.
pass
- return changed
+ return group.rules
################################################################################
for i in concords:
+# A_rules.extend(verb_rules(i)) #XXX:DONE
+
A_rules.extend(verb_rules(i+"nga"))
A_rules.extend(verb_rules(i+"sa"))
@@ -242,6 +247,7 @@
#Mode specific ones:
for i in subject_morphemes:
+# a_rules.extend(verb_rules(i+"ya"))#XXX:DONE
#TODO: be- and se- forms
#Negative future tenses:
@@ -328,8 +334,13 @@
# flag, cross_product, type = rule_set[0]
# group = aff.add_group(suffix=type=="SFX", cross_product=cross_product, flag=flag)
# for rule in rule_set[1:]:
-# strip, affix, condition = rule
-# group.add_rule(strip=strip, affix=affix, condition=condition)
+# if isinstance(rule, Affix):
+# group.add_rule(rule)
+# else:
+# strip, affix, condition = rule
+# group.add_rule(strip=strip, affix=affix, condition=condition)
+# print aff.hunspell()
+# exit()
main_subjects = aff.add_group(suffix=False, flag="B")
# This group will contain all the major subject morphemes
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fri...@us...> - 2008-12-24 11:58:27
|
Revision: 9641
http://zaf.svn.sourceforge.net/zaf/?rev=9641&view=rev
Author: friedelwolff
Date: 2008-12-24 11:57:35 +0000 (Wed, 24 Dec 2008)
Log Message:
-----------
Allow add_group() to accept an already composed group and add_rule() to accept an already composed rule
Modified Paths:
--------------
trunk/dict/zu/hunspell/hunspell_format.py
Modified: trunk/dict/zu/hunspell/hunspell_format.py
===================================================================
--- trunk/dict/zu/hunspell/hunspell_format.py 2008-12-24 10:19:57 UTC (rev 9640)
+++ trunk/dict/zu/hunspell/hunspell_format.py 2008-12-24 11:57:35 UTC (rev 9641)
@@ -80,9 +80,9 @@
return "\n".join(output)
- def add_group(self, **kwargs):
+ def add_group(self, group=None, **kwargs):
"""Adds a new group to the file"""
- new_group = AffixGroup(**kwargs)
+ new_group = group or AffixGroup(**kwargs)
self.groups.append(new_group)
return new_group
@@ -132,9 +132,9 @@
trimmed.append(i)
return trimmed
- def add_rule(self, **kwargs):
+ def add_rule(self, rule=None, **kwargs):
"""Inserts a new rule in this affix class"""
- new_rule = Affix(**kwargs)
+ new_rule = rule or Affix(**kwargs)
new_rule.group = self
self.rules.append(new_rule)
return new_rule
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|