Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
166 changes: 83 additions & 83 deletions doc/samples/bamana.gram.txt
Original file line number Diff line number Diff line change
Expand Up @@ -41,111 +41,111 @@ return if parsed
section inflection
# verbal inflection
# -la/-na PROG
pattern :v: [ {@nasal-v@|na}:: ] | :v: [:v: :mrph:PROG]
pattern :v: [ {@nonnasal-v@|la}:: ] | :v: [:v: :mrph:PROG]
pattern :v: [{@nasal-v@|na}::] | :v: [:v: :mrph:PROG]
pattern :v: [{@nonnasal-v@|la}::] | :v: [:v: :mrph:PROG]
# moved up from v_vq_derivation because of na/la ambiguity
pattern :n: [ {@smth-nasal@|na}:: ] | :n: [ :v: :mrph:AG.PRM]
pattern :n: [ {@nonnasal-v@|la}:: ] | :n: [ :v: :mrph:AG.PRM]
pattern :n: [{@smth-nasal@|na}::] | :n: [:v: :mrph:AG.PRM]
pattern :n: [{@nonnasal-v@|la}::] | :n: [:v: :mrph:AG.PRM]

# -ra/-la/-na PFV.INTR
pattern :v: [ {@nasal-syl@|<re>n[a']</re>}:: ] | :v: [:v: :mrph:PFV.INTR]
pattern :v: [ {@glide-syl@|<re>l[a']</re>}:: ] | :v: [:v: :mrph:PFV.INTR]
pattern :v: [ {@nonnasalglide-syl@|<re>r[a']</re>}:: ] | :v: [:v: :mrph:PFV.INTR]
pattern :v: [{@nasal-syl@|<re>n[a']</re>}::] | :v: [:v: :mrph:PFV.INTR]
pattern :v: [{@glide-syl@|<re>l[a']</re>}::] | :v: [:v: :mrph:PFV.INTR]
pattern :v: [{@nonnasalglide-syl@|<re>r[a']</re>}::] | :v: [:v: :mrph:PFV.INTR]
# nominal inflection
# -w PL
pattern :n/adj/dtm/prn/ptcp/n.prop/num: [ {|w}:: ] | :n/adj/dtm/prn/ptcp/n.prop/num: [:n/adj/dtm/prn/ptcp/n.prop/num: :mrph:PL]
pattern :n/adj/dtm/prn/ptcp/n.prop/num: [{|w}::] | :n/adj/dtm/prn/ptcp/n.prop/num: [:n/adj/dtm/prn/ptcp/n.prop/num: :mrph:PL]

# participles
section participles
pattern :v/ptcp: [ {|bali}:: ] | :ptcp: [ :v: :mrph:PTCP.PRIV]
pattern :v/ptcp: [ {|ta}:: ] | :ptcp: [ :v: :mrph:PTCP.POT]
pattern :v/ptcp: [ {|tɔ}:: ] | :ptcp: [ :v: :mrph:CONV.PROG]
pattern :v/ptcp: [ {@smth-nasal@|nen}:: ] | :ptcp: [ :v: :mrph:PTCP.RES]
pattern :v/ptcp: [ {@nonnasal-v@|len}:: ] | :ptcp: [ :v: :mrph:PTCP.RES]
pattern :v/ptcp: [{|bali}::] | :ptcp: [:v: :mrph:PTCP.PRIV]
pattern :v/ptcp: [{|ta}::] | :ptcp: [:v: :mrph:PTCP.POT]
pattern :v/ptcp: [{|tɔ}::] | :ptcp: [:v: :mrph:CONV.PROG]
pattern :v/ptcp: [{@smth-nasal@|nen}::] | :ptcp: [:v: :mrph:PTCP.RES]
pattern :v/ptcp: [{@nonnasal-v@|len}::] | :ptcp: [:v: :mrph:PTCP.RES]

pattern :v/ptcp: [ {@smth-nasal@|nen|ba}:: ] | :ptcp: [ :v: :mrph:PTCP.RES :mrph:AUGM]
pattern :v/ptcp: [ {@nonnasal-v@|len|ba}:: ] | :ptcp: [ :v: :mrph:PTCP.RES :mrph:AUGM]
pattern :v/ptcp: [{@smth-nasal@|nen|ba}::] | :ptcp: [:v: :mrph:PTCP.RES :mrph:AUGM]
pattern :v/ptcp: [{@nonnasal-v@|len|ba}::] | :ptcp: [:v: :mrph:PTCP.RES :mrph:AUGM]


# derivative forms we need to consider even if we have them in dictionary
section common_derivation
pattern :ptcp/n/adj: [ {|nin}:: ] | :ptcp/n/adj: [:ptcp/n/adj: :mrph:DIM]
pattern :n/adj/ptcp/v: [ {|ya}:: ] | :n: [:n/adj/ptcp/v: :mrph:ABSTR]
pattern :ptcp/n/adj: [ {|ba}:: ] | :ptcp/n/adj: [:ptcp/n/adj: :mrph:AUGM]
pattern :ptcp/n/adj: [{|nin}::] | :ptcp/n/adj: [:ptcp/n/adj: :mrph:DIM]
pattern :n/adj/ptcp/v: [{|ya}::] | :n: [:n/adj/ptcp/v: :mrph:ABSTR]
pattern :ptcp/n/adj: [{|ba}::] | :ptcp/n/adj: [:ptcp/n/adj: :mrph:AUGM]

# to handle -baliya ex: basigi.bali.ya
pattern :v/ptcp/n/adj: [ {|bali|ya}:: ] | :n: [:v/ptcp: :mrph:PTCP.PRIV :mrph:ABSTR]
pattern :v/ptcp/n/adj: [{|bali|ya}::] | :n: [:v/ptcp: :mrph:PTCP.PRIV :mrph:ABSTR]

# common nominal/verbal derivation (locatives)
section n_v_derivation
pattern :n/n.prop: [ {|ka}:: ] | :n/n.prop: [:n/n.prop: :mrph:GENT]
pattern :n/n.prop: [ {@nasal-v@|na}:: ] | :n/n.prop: [:n/n.prop: :mrph:LOC]
pattern :n/n.prop: [ {@nonnasal-v@|la}:: ] | :n/n.prop: [:n/n.prop: :mrph:LOC]
pattern :n/n.prop: [{|ka}::] | :n/n.prop: [:n/n.prop: :mrph:GENT]
pattern :n/n.prop: [{@nasal-v@|na}::] | :n/n.prop: [:n/n.prop: :mrph:LOC]
pattern :n/n.prop: [{@nonnasal-v@|la}::] | :n/n.prop: [:n/n.prop: :mrph:LOC]

# nominal derivation
section n_derivation
pattern :n: [ {@smth-nasal@|nama}:: ] | :n: [ :n: :mrph:STAT]
pattern :n: [ {@nonnasal-v@|lama}:: ] | :n: [ :n: :mrph:STAT]
pattern :n: [ {|ma}:: ] | :n: [ :n: :mrph:COM]
pattern :adj/n: [ {|ntan}:: ] | :adj/n: [ :n: :mrph:PRIV]
pattern :adj/n: [ {|bagatɔ}:: ] | :adj/n: [ :n: :mrph:ST]
pattern :adj/n: [ {|baatɔ}:: ] | :adj/n: [ :n: :mrph:ST]
pattern :n: [ {ɲɔgɔn|}:: ] | :n: [ :prn:RECP :n: ]
pattern :n: [ {|<re>ɲwaa?n</re>}:: ] | :n: [ :n: :prn:RECP]
pattern :n: [{@smth-nasal@|nama}::] | :n: [:n: :mrph:STAT]
pattern :n: [{@nonnasal-v@|lama}::] | :n: [:n: :mrph:STAT]
pattern :n: [{|ma}::] | :n: [:n: :mrph:COM]
pattern :adj/n: [{|ntan}::] | :adj/n: [:n: :mrph:PRIV]
pattern :adj/n: [{|bagatɔ}::] | :adj/n: [:n: :mrph:ST]
pattern :adj/n: [{|baatɔ}::] | :adj/n: [:n: :mrph:ST]
pattern :n: [{ɲɔgɔn|}::] | :n: [:prn:RECP :n:]
pattern :n: [{|<re>ɲwaa?n</re>}::] | :n: [:n: :prn:RECP]


# verbal/vq derivation
section v_vq_derivation
pattern :n: [ {@smth-nasal@|nan}:: ] | :n: [ :v: :mrph:INSTR]
pattern :n: [ {@nonnasal-v@|lan}:: ] | :n: [ :v: :mrph:INSTR]
pattern :n: [ {@smth-nasal@|ni}:: ] | :n: [ :v: :mrph:NMLZ]
pattern :n: [ {@nonnasal-v@|li}:: ] | :n: [ :v: :mrph:NMLZ]
pattern :n: [ {|baga}:: ] | :n: [ :v: :mrph:AG.OCC]
pattern :n: [ {|baa}:: ] | :n: [ :v: :mrph:AG.OCC]
pattern :n: [ {|baga|nci}:: ] | :n: [ :v: :mrph:AG.OCC :mrph:AG.EX]
pattern :n: [ {|baa|nci}:: ] | :n: [ :v: :mrph:AG.OCC :mrph:AG.EX]
pattern :n: [{@smth-nasal@|nan}::] | :n: [:v: :mrph:INSTR]
pattern :n: [{@nonnasal-v@|lan}::] | :n: [:v: :mrph:INSTR]
pattern :n: [{@smth-nasal@|ni}::] | :n: [:v: :mrph:NMLZ]
pattern :n: [{@nonnasal-v@|li}::] | :n: [:v: :mrph:NMLZ]
pattern :n: [{|baga}::] | :n: [:v: :mrph:AG.OCC]
pattern :n: [{|baa}::] | :n: [:v: :mrph:AG.OCC]
pattern :n: [{|baga|nci}::] | :n: [:v: :mrph:AG.OCC :mrph:AG.EX]
pattern :n: [{|baa|nci}::] | :n: [:v: :mrph:AG.OCC :mrph:AG.EX]

# attempt to handle -likɛ, -likɛla, others like -liwari...
pattern :v: [ {@nonnasal-v@|li|kɛ}:: ] | :v: [ :v: :mrph:NMLZ kɛ́:v:faire]
pattern :n: [ {@nonnasal-v@|li|kɛ|la}:: ] | :n: [ :v: :mrph:NMLZ kɛ́:v:faire :mrph:AG.PRM]
pattern :v: [ {@smth-nasal@|ni|kɛ}:: ] | :v: [ :v: :mrph:NMLZ kɛ́:v:faire]
pattern :n: [ {@smth-nasal@|ni|kɛ|la}:: ] | :n: [ :v: :mrph:NMLZ kɛ́:v:faire :mrph:AG.PRM]
pattern :n: [ {@nonnasal-v@|li|wari}:: ] | :n: [ :v: :mrph:NMLZ :n:]
pattern :n: [ {@smth-nasal@|ni|wari}:: ] | :n: [ :v: :mrph:NMLZ :n:]
pattern :n: [ {@nonnasal-v@|li|fɛn}:: ] | :n: [ :v: :mrph:NMLZ fɛ́n:n:chose]
pattern :n: [ {@smth-nasal@|ni|fɛn}:: ] | :n: [ :v: :mrph:NMLZ fɛ́n:n:chose]
pattern :n: [ {@nonnasal-v@|li|ko}:: ] | :n: [ :v: :mrph:NMLZ kó:n:affaire]
pattern :n: [ {@smth-nasal@|ni|ko}:: ] | :n: [ :v: :mrph:NMLZ kó:n:affaire]
pattern :v: [{@nonnasal-v@|li|kɛ}::] | :v: [:v: :mrph:NMLZ kɛ́:v:faire]
pattern :n: [{@nonnasal-v@|li|kɛ|la}::] | :n: [:v: :mrph:NMLZ kɛ́:v:faire :mrph:AG.PRM]
pattern :v: [{@smth-nasal@|ni|kɛ}::] | :v: [:v: :mrph:NMLZ kɛ́:v:faire]
pattern :n: [{@smth-nasal@|ni|kɛ|la}::] | :n: [:v: :mrph:NMLZ kɛ́:v:faire :mrph:AG.PRM]
pattern :n: [{@nonnasal-v@|li|wari}::] | :n: [:v: :mrph:NMLZ :n:]
pattern :n: [{@smth-nasal@|ni|wari}::] | :n: [:v: :mrph:NMLZ :n:]
pattern :n: [{@nonnasal-v@|li|fɛn}::] | :n: [:v: :mrph:NMLZ fɛ́n:n:chose]
pattern :n: [{@smth-nasal@|ni|fɛn}::] | :n: [:v: :mrph:NMLZ fɛ́n:n:chose]
pattern :n: [{@nonnasal-v@|li|ko}::] | :n: [:v: :mrph:NMLZ kó:n:affaire]
pattern :n: [{@smth-nasal@|ni|ko}::] | :n: [:v: :mrph:NMLZ kó:n:affaire]

# need to handle -ba AUGM inside ex: ko.jugu.ba.kɛ.la

pattern :n: [ {|ɲɔgɔn}:: ] | :n: [ :v: :prn:RECP]
pattern :n: [ {|<re>ɲwaa?n</re>}:: ] | :n: [ :v: :prn:RECP]
pattern :n: [ {ɲɔgɔn|}:: ] | :n: [ :prn:RECP :v: ]
pattern :n: [{|ɲɔgɔn}::] | :n: [:v: :prn:RECP]
pattern :n: [{|<re>ɲwaa?n</re>}::] | :n: [:v: :prn:RECP]
pattern :n: [{ɲɔgɔn|}::] | :n: [:prn:RECP :v:]

# vq derivation
section vq_derivation
pattern :vq: [ {|ya}:: ] | :n/v: [ :vq: :mrph:DEQU]
pattern :adj: [ {|man}:: ] | :adj: [ :vq: :mrph:ADJ]
pattern :vq: [{|ya}::] | :n/v: [:vq: :mrph:DEQU]
pattern :adj: [{|man}::] | :adj: [:vq: :mrph:ADJ]

# numeral derivation
section num_derivation
pattern :num: [ {@nasal-v@|na}:: ] | :num: [ :num: :mrph:PRICE]
pattern :num: [ {@nonnasal-v@|la}:: ] | :num: [ :num: :mrph:PRICE]
pattern :num: [ {@nasal-v@|nan}:: ] | :num: [ :num: :mrph:ORD]
pattern :num: [ {<re>[0-9]+</re>|nan}:: ] | :num: [ :num: :mrph:ORD]
pattern :num: [ {@nonnasal-v@|lan}:: ] | :num: [ :num: :mrph:ORD]
pattern :num: [{@nasal-v@|na}::] | :num: [:num: :mrph:PRICE]
pattern :num: [{@nonnasal-v@|la}::] | :num: [:num: :mrph:PRICE]
pattern :num: [{@nasal-v@|nan}::] | :num: [:num: :mrph:ORD]
pattern :num: [{<re>[0-9]+</re>|nan}::] | :num: [:num: :mrph:ORD]
pattern :num: [{@nonnasal-v@|lan}::] | :num: [:num: :mrph:ORD]

## reduplication
section reduplication
pattern :v: [ {<re>(?P<stem>.+)</re>|<re>(?P=stem)</re>}:: ] | :v: [ :v: :v: ]
pattern :adj: [ {<re>(?P<stem>.+)</re>|<re>(?P=stem)</re>}:: ] | :adj: [ :adj: :adj: ]
pattern :num: [ {<re>(?P<stem>.+)</re>|<re>(?P=stem)</re>}:: ] | :num: [ :num: :num: ]
pattern :v: [ {<re>(?P<stem>.+)</re>|-|<re>(?P=stem)</re>}:: ] | :v: [ :v: :: :v: ]
pattern :adj: [ {<re>(?P<stem>.+)</re>|-|<re>(?P=stem)</re>}:: ] | :adj: [ :adj: :: :adj: ]
pattern :num: [ {<re>(?P<stem>.+)</re>|-|<re>(?P=stem)</re>}:: ] | :num: [ :num: :: :num: ]
pattern :v: [ {<re>(?P<stem>.+)</re>|<re>(?P=stem)</re>|<re>(?P=stem)</re>}:: ] | :v: [ :v: :v: :v: ]
pattern :adj: [ {<re>(?P<stem>.+)</re>|<re>(?P=stem)</re>|<re>(?P=stem)</re>}:: ] | :adj: [ :adj: :adj: :adj: ]
pattern :v: [{<re>(?P<stem>.+)</re>|<re>(?P=stem)</re>}::] | :v: [:v: :v:]
pattern :adj: [{<re>(?P<stem>.+)</re>|<re>(?P=stem)</re>}::] | :adj: [:adj: :adj:]
pattern :num: [{<re>(?P<stem>.+)</re>|<re>(?P=stem)</re>}::] | :num: [:num: :num:]
pattern :v: [{<re>(?P<stem>.+)</re>|-|<re>(?P=stem)</re>}::] | :v: [:v: :: :v:]
pattern :adj: [{<re>(?P<stem>.+)</re>|-|<re>(?P=stem)</re>}::] | :adj: [:adj: :: :adj:]
pattern :num: [{<re>(?P<stem>.+)</re>|-|<re>(?P=stem)</re>}::] | :num: [:num: :: :num:]
pattern :v: [{<re>(?P<stem>.+)</re>|<re>(?P=stem)</re>|<re>(?P=stem)</re>}::] | :v: [:v: :v: :v:]
pattern :adj: [{<re>(?P<stem>.+)</re>|<re>(?P=stem)</re>|<re>(?P=stem)</re>}::] | :adj: [:adj: :adj: :adj:]

## composition
# general part-of-speech composition patterns
Expand All @@ -154,44 +154,44 @@ section pos_composition

# two-words composites
# n.prop + n = n ex: Irisi.jamana
pattern :n: [ :n.prop: :n: ] | :n: [ :n.prop: :n: ]
pattern :n: [:n.prop: :n:] | :n: [:n.prop: :n:]
# v/n + n = n
pattern :n: [ :n/v: :n: ] | :n: [ :n/v: :n: ]
pattern :n: [:n/v: :n:] | :n: [:n/v: :n:]
# n + v = n/v
pattern :n/v: [ :n: :v: ] | :n/v: [ :n: :v: ]
pattern :n/v: [:n: :v:] | :n/v: [:n: :v:]
# n + adj/num = n
pattern :n: [ :n: :adj/num: ] | :n: [ :n: :adj/num: ]
pattern :n: [:n: :adj/num:] | :n: [:n: :adj/num:]
# dtm + v = n
pattern :n: [ :dtm: :v: ] | :n: [ :dtm: :v: ]
pattern :n: [:dtm: :v:] | :n: [:dtm: :v:]
# pp + n = n ex. kɔkan.maliden, kɔnɔ.mɔgɔ
pattern :n: [ :pp: :n: ] | :n: [ :pp: :n: ]
pattern :n: [:pp: :n:] | :n: [:pp: :n:]

# three-words composites
# n + adj/pp/num + n = n -> added num : san.duuru.baara
pattern :n: [ :n: :adj/pp/num: :n: ] | :n: [ :n: :adj/pp/num: :n: ]
pattern :n: [:n: :adj/pp/num: :n:] | :n: [:n: :adj/pp/num: :n:]
# dtm/n + v + n = n
pattern :n: [ :dtm/n: :v: :n: ] | :n: [ :dtm/n: :v: :n: ]
pattern :n: [:dtm/n: :v: :n:] | :n: [:dtm/n: :v: :n:]
# n + pp + v = n/v
pattern :n/v: [ :n: :pp: :v: ] | :n/v: [ :n: :pp: :v: ]
pattern :n/v: [:n: :pp: :v:] | :n/v: [:n: :pp: :v:]
# n+n+n = n yiriwali.nafolo.ko ?
pattern :n: [ :n: :n: :n: ] | :n: [ :n: :n: :n: ]
pattern :n: [:n: :n: :n:] | :n: [:n: :n: :n:]

# ??? : mrph not taken into acount (not in dic?)
# v+mrph+n ex: gansi.li.walan
pattern :n: [ :v: li:mrph: :n: ] | :n: [ :v: :mrph:NMLZ :n: ]
pattern :n: [ :n: ba:mrph: :n: ] | :n: [ :n: :mrph:AUGM :n: ]
pattern :n: [:v: li:mrph: :n:] | :n: [:v: :mrph:NMLZ :n:]
pattern :n: [:n: ba:mrph: :n:] | :n: [:n: :mrph:AUGM :n:]
# v+mrph+v ex: kɔlɔsi.li.kɛ
pattern :v: [ :v: li:mrph: :v: ] | :v: [ :v: :mrph:NMLZ :v: ]
pattern :n: [ :v: ka:pm: :v: ] | :n: [ :v: kà:pm:INF :v: ]
pattern :v: [:v: li:mrph: :v:] | :v: [:v: :mrph:NMLZ :v:]
pattern :n: [:v: ka:pm: :v:] | :n: [:v: kà:pm:INF :v:]


# four-words composites
# n + pp + n + n = n
pattern :n: [ :n: :pp: :n: :n: ] | :n: [ :n: :pp: :n: :n: ]
pattern :n: [:n: :pp: :n: :n:] | :n: [:n: :pp: :n: :n:]
# n + pp + adj + n = n Ex: dugu.jukɔrɔ.nafoloma.fɛn
pattern :n: [ :n: :pp: :adj: :n: ] | :n: [ :n: :pp: :adj: :n: ]
pattern :n: [:n: :pp: :adj: :n:] | :n: [:n: :pp: :adj: :n:]
# n+v+v+n : kunnafoni.falen.falen.ko
pattern :n: [ :n: :v: :v: :n: ] | :n: [ :n: :v: :v: :n: ]
pattern :n: [:n: :v: :v: :n:] | :n: [:n: :v: :v: :n:]


# orthographically unlikely to be bamana words
Expand Down