Frisch, Pierrehumbert and Broe (2004): Similarity Avoidance and the OCP #
This file formalizes the similarity metric of [FPB04]. Homorganic
consonant pairs are rare in Arabic verbal roots, and the paper shows that the rarer a pair is
the more similar its consonants are, where the similarity of two consonants is the number of
natural classes they share over the number containing either (equation (7)). The natural
classes are those of the feature matrix (8), generated by the structured specification of
[Bro93a], and only the classes whose description includes a place feature count, so that
nonhomorganic consonants have similarity 0. Every printed value of the paper's similarity
table (Table III) follows from the matrix and the equation (similarities_rounds).
A larger place class has more contrasts and so more natural classes, which lowers the
similarity of its members: the coronal /s, n/ are less similar than the labial /f, m/, and
adding /p/ and /v/ to the labials would lower the similarity of /f, m/ from 2/9 to 2/13
(expandedSimilarity_f_m). This is how the metric derives the strength of the labial
co-occurrence restriction against the weakness of the coronal one. The printed list of the
classes of /b, f/ has the class {b, w}, which the matrix does not generate, in place of {f},
and the count and the reported value are unaffected (labialClasses_b_f).
The paper's quantitative comparison, co-occurrence by similarity (Table IV) and the fits of
five models of OCP-Place to the O/E of every pair (Table V), is printed data in
Data.Experiments.FrischPierrehumbertBroe2004.
Main definitions #
placeClasses: the natural classes of the matrix whose description includes a place feature.similarity: the similarity of two consonants of the Arabic fragment, equation (7).
Main results #
similarities_rounds: the matrix and the equation give every value of Table III.similarity_self,similarity_eq_zero: identical consonants have similarity 1, and nonhomorganic ones 0.expandedSimilarity_f_m: the expanded labial inventory lowers the similarity of /f, m/.
Implementation notes #
- A class is a set of columns of the matrix held as the bits of a natural number (
Mask), so that the kernel meets classes byNat.land. The classes containing a column are generated from the place classes containing it by the attribute extents containing it (classesAt), which is how the table is computed. - The paper writes ج as the dorsal stop g and ظ as zˤ; their segments are the fragment's /dʒ/
and /ðˤ/ (
segment). - The paper does not print the columns of the hypothetical /p/ and /v/; they are those of /b/ and /f/ with the other value of [voice], which generate the four new classes it lists.
- The best monotone fit of O/E to similarity behind Table V is not formalized, since the paper does not print the O/E of the individual pairs.
References #
Sets of columns #
A set of columns of a feature matrix, as the bits of a natural number.
- val : ℕ
The bits.
Instances For
Equations
- FrischPierrehumbertBroe2004.instDecidableEqMask.decEq { val := a } { val := b } = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- a.instDecidableLE b = { decide := (a.val &&& b.val).beq a.val, reflects_decide := ⋯ }
A column is in a set when its bit is set.
Equations
- FrischPierrehumbertBroe2004.Mask.instMembershipNat = { mem := fun (m : FrischPierrehumbertBroe2004.Mask) (i : ℕ) => m.val.testBit i = true }
Equations
- FrischPierrehumbertBroe2004.Mask.instDecidableMemNat i m = instDecidableEqBool (m.val.testBit i) true
The set of one column.
Equations
- FrischPierrehumbertBroe2004.Mask.single i = { val := 2 ^ i }
Instances For
The set of the positions at which a list is true.
Equations
- FrischPierrehumbertBroe2004.Mask.ofList [] = { val := 0 }
- FrischPierrehumbertBroe2004.Mask.ofList (b :: l) = { val := 2 * (FrischPierrehumbertBroe2004.Mask.ofList l).val + b.toNat }
Instances For
Matrix (8) #
The features of matrix (8).
- cons : Feature
- son : Feature
- cont : Feature
- acute : Feature
- strident : Feature
- nasal : Feature
- lateral : Feature
- labial : Feature
- coronal : Feature
- anterior : Feature
- dorsal : Feature
- back : Feature
- phar : Feature
- radical : Feature
- voice : Feature
- spglot : Feature
- conglot : Feature
Instances For
Equations
- FrischPierrehumbertBroe2004.instDecidableEqFeature x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
The features in the order of (8).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The place features.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The consonants of (8) in its column order, as the fragment's segments.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The column of a consonant in (8).
Equations
- FrischPierrehumbertBroe2004.col x = List.idxOf x FrischPierrehumbertBroe2004.columns
Instances For
The fragment's segment for a consonant of (8).
Equations
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.b = Arabic.ModernStandard.Phonology.b
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.f = Arabic.ModernStandard.Phonology.f
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.m = Arabic.ModernStandard.Phonology.m
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.t = Arabic.ModernStandard.Phonology.t
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.d = Arabic.ModernStandard.Phonology.d
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.tEmph = Arabic.ModernStandard.Phonology.«tˤ»
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.dEmph = Arabic.ModernStandard.Phonology.«dˤ»
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.theta = Arabic.ModernStandard.Phonology.θ
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.edh = Arabic.ModernStandard.Phonology.ð
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.s = Arabic.ModernStandard.Phonology.s
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.z = Arabic.ModernStandard.Phonology.z
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.sEmph = Arabic.ModernStandard.Phonology.«sˤ»
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.zEmph = Arabic.ModernStandard.Phonology.«ðˤ»
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.esh = Arabic.ModernStandard.Phonology.«ʃ»
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.k = Arabic.ModernStandard.Phonology.k
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.g = Arabic.ModernStandard.Phonology.«dʒ»
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.q = Arabic.ModernStandard.Phonology.q
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.chi = Arabic.ModernStandard.Phonology.χ
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.gamma = Arabic.ModernStandard.Phonology.«ʁ»
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.hbar = Arabic.ModernStandard.Phonology.ħ
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.ayin = Arabic.ModernStandard.Phonology.«ʕ»
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.h = Arabic.ModernStandard.Phonology.h
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.glottal = Arabic.ModernStandard.Phonology.«ʔ»
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.l = Arabic.ModernStandard.Phonology.l
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.r = Arabic.ModernStandard.Phonology.r
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.n = Arabic.ModernStandard.Phonology.n
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.w = Arabic.ModernStandard.Phonology.w
- FrischPierrehumbertBroe2004.segment FrischPierrehumbertBroe2004.Consonant.j = Arabic.ModernStandard.Phonology.j
Instances For
The columns are the fragment's consonants.
Matrix (8), row by row over columns: ⊕ and ⊖ for the printed + and −, ○ where
the paper leaves the feature unspecified.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Natural classes and similarity #
The columns at which a row of a matrix has a value.
Equations
- FrischPierrehumbertBroe2004.extent row v = FrischPierrehumbertBroe2004.Mask.ofList (List.map (fun (x : Option Bool) => x == some v) row)
Instances For
The attribute extents of a matrix: the columns of each feature value.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The attribute extents of (8).
Equations
Instances For
All the columns of (8).
Equations
- FrischPierrehumbertBroe2004.inventory = FrischPierrehumbertBroe2004.Mask.ofList (List.map (fun (x : Phonology.Segment) => true) FrischPierrehumbertBroe2004.columns)
Instances For
The place classes of (8): the columns of each place feature.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The natural classes of (8) whose description includes a place feature (p. 198).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The place classes containing either of two consonants.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The natural-classes similarity of two consonants, equation (7): the shared classes over the shared and non-shared ones.
Equations
Instances For
Identical consonants have similarity 1 (p. 198).
Consonants with no place feature in common have similarity 0 (p. 198).
Computing the table #
The place classes containing column i: those each place class containing i generates
with the attribute extents containing i.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The classes containing each column, memoized for the kernel.
Equations
- FrischPierrehumbertBroe2004.classesTable = List.map FrischPierrehumbertBroe2004.classesAt (List.range 28)
Instances For
Table III #
Matrix (8) and equation (7) give every printed value of Table III.
The labials (p. 199) #
The classes whose description includes [labial], those of the labial sub-inventory
(Broe1993.mem_naturalClasses_inf).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The set of the columns of some consonants.
Equations
- FrischPierrehumbertBroe2004.cl xs = { val := (List.map (fun (x : Phonology.Segment) => 2 ^ FrischPierrehumbertBroe2004.col x) xs).sum }
Instances For
The labial classes containing /f/ or /m/ are the nine the paper lists.
The labial classes containing /b/ or /f/ are the eight the paper lists, with {f} for the printed {b, w}, which no description over the matrix picks out.
The coronals /s, n/ are less similar than the labials /f, m/.
The labial columns of (8) with /p/ and /v/ added, in the order p b f v m w: /p/ is /b/ and /v/ is /f/ with the other value of [voice].
Equations
- FrischPierrehumbertBroe2004.expandedLabials FrischPierrehumbertBroe2004.Feature.cons = [some true, some true, some true, some true, some true, some false]
- FrischPierrehumbertBroe2004.expandedLabials FrischPierrehumbertBroe2004.Feature.son = [some false, some false, some false, some false, some true, some true]
- FrischPierrehumbertBroe2004.expandedLabials FrischPierrehumbertBroe2004.Feature.cont = [some false, some false, some true, some true, some false, some true]
- FrischPierrehumbertBroe2004.expandedLabials FrischPierrehumbertBroe2004.Feature.nasal = [some false, some false, none, none, some true, none]
- FrischPierrehumbertBroe2004.expandedLabials FrischPierrehumbertBroe2004.Feature.labial = [some true, some true, some true, some true, some true, some true]
- FrischPierrehumbertBroe2004.expandedLabials FrischPierrehumbertBroe2004.Feature.voice = [some false, some true, some false, some true, some true, some true]
- FrischPierrehumbertBroe2004.expandedLabials x✝ = [none, none, none, none, none, none]
Instances For
Without /p/ and /v/ the expanded columns are the labial columns of (8).
The natural classes of the expanded labial inventory.
Equations
- One or more equations did not get rendered due to their size.
Instances For
In the expanded inventory /f, m/ share 2 of the 13 classes containing either, where they shared 2 of 9: the new classes are {f, v}, {p, f}, {p, b, m} and {b, v, m}.