Segments from PHOIBLE feature matrices #
This file turns a PHOIBLE feature matrix into a Segment, so that a fragment can take the
feature values of its phonemes from the PHOIBLE chart instead of listing them. PHOIBLE's
features extend those of Hayes, which Phonology.Feature follows, with length, tone, stress,
clicks and further laryngeal features. Each feature of Phonology.Feature is a PHOIBLE column,
under another name for [voice], [constricted glottis], [ATR] and [RTR], and the segment of a
matrix reads the matrix along that correspondence, dropping the columns it lacks.
The two systems differ in one convention. PHOIBLE specifies [round] only on labial segments and marks it not applicable elsewhere, where Hayes's charts give every other segment [−round]. The segment of a matrix therefore takes [−round] as its default.
PHOIBLE also codes the tongue-root contrast of plain vowel glyphs by [tense], /i e o u/ against /ɪ ɛ ɔ ʊ/, and gives every plain vowel [−ATR]; only glyphs with the diacritic ◌̘ are [+ATR]. A language whose vowels contrast in [ATR] reads a chart entry through its tongue-root reading, which carries the [tense] value as the [ATR] value.
A fragment gives each phoneme by Segment.ofChart. It reads a chart entry, merges over it
the values on which a grammar departs from the chart, and keeps the result on the features
the grammar treats as contrastive. A phoneme is then a segment, named by its symbol, and an
inventory is a finite set of segments, which a fragment shows to lie among the segments of a
PHOIBLE inventory.
Main definitions #
Phonology.Feature.toPHOIBLE: the PHOIBLE column of each feature.Data.PHOIBLE.FeatureMatrix.toSegment: the segment of a feature matrix.Data.PHOIBLE.FeatureMatrix.tenseAsATR: the tongue-root reading of a feature matrix.Data.PHOIBLE.Inventory.segments: the segments of an inventory's phonemes.Phonology.Segment.ofChart: the segment of a chart entry, a departure and a contrastive feature set.
Main results #
Phonology.Feature.toPHOIBLE_injective: distinct features are distinct columns.Data.PHOIBLE.FeatureMatrix.range_toSegment: the segments of feature matrices are those specified for [round].Phonology.Segment.ofChart_apply: on a contrastive feature where the departure is silent, the segment has the chart's value.
Implementation notes #
Dropping PHOIBLE's further features can identify two phonemes of an inventory, a long and a
short vowel or a plain and a fortis stop, which then have one segment. A fragment guards
against this by giving its inventory as a list of segments with a proof that it has no
duplicates. PHOIBLE also leaves [round] unspecified on its less-rounded segments, written
with ◌̜, which therefore come out [−round]. Velar consonants are [−front, −back] in PHOIBLE,
so a vowel tier is picked out by Segment.IsVowel and not by the absence of a [back] value.
References #
The PHOIBLE column of a feature.
Equations
- Phonology.Feature.syllabic.toPHOIBLE = Data.PHOIBLE.Feature.syllabic
- Phonology.Feature.consonantal.toPHOIBLE = Data.PHOIBLE.Feature.consonantal
- Phonology.Feature.sonorant.toPHOIBLE = Data.PHOIBLE.Feature.sonorant
- Phonology.Feature.approximant.toPHOIBLE = Data.PHOIBLE.Feature.approximant
- Phonology.Feature.continuant.toPHOIBLE = Data.PHOIBLE.Feature.continuant
- Phonology.Feature.delayedRelease.toPHOIBLE = Data.PHOIBLE.Feature.delayedRelease
- Phonology.Feature.nasal.toPHOIBLE = Data.PHOIBLE.Feature.nasal
- Phonology.Feature.lateral.toPHOIBLE = Data.PHOIBLE.Feature.lateral
- Phonology.Feature.strident.toPHOIBLE = Data.PHOIBLE.Feature.strident
- Phonology.Feature.tap.toPHOIBLE = Data.PHOIBLE.Feature.tap
- Phonology.Feature.trill.toPHOIBLE = Data.PHOIBLE.Feature.trill
- Phonology.Feature.voice.toPHOIBLE = Data.PHOIBLE.Feature.periodicGlottalSource
- Phonology.Feature.spreadGlottis.toPHOIBLE = Data.PHOIBLE.Feature.spreadGlottis
- Phonology.Feature.constrGlottis.toPHOIBLE = Data.PHOIBLE.Feature.constrictedGlottis
- Phonology.Feature.labial.toPHOIBLE = Data.PHOIBLE.Feature.labial
- Phonology.Feature.round.toPHOIBLE = Data.PHOIBLE.Feature.round
- Phonology.Feature.labiodental.toPHOIBLE = Data.PHOIBLE.Feature.labiodental
- Phonology.Feature.coronal.toPHOIBLE = Data.PHOIBLE.Feature.coronal
- Phonology.Feature.anterior.toPHOIBLE = Data.PHOIBLE.Feature.anterior
- Phonology.Feature.distributed.toPHOIBLE = Data.PHOIBLE.Feature.distributed
- Phonology.Feature.dorsal.toPHOIBLE = Data.PHOIBLE.Feature.dorsal
- Phonology.Feature.high.toPHOIBLE = Data.PHOIBLE.Feature.high
- Phonology.Feature.low.toPHOIBLE = Data.PHOIBLE.Feature.low
- Phonology.Feature.front.toPHOIBLE = Data.PHOIBLE.Feature.front
- Phonology.Feature.back.toPHOIBLE = Data.PHOIBLE.Feature.back
- Phonology.Feature.tense.toPHOIBLE = Data.PHOIBLE.Feature.tense
- Phonology.Feature.atr.toPHOIBLE = Data.PHOIBLE.Feature.advancedTongueRoot
- Phonology.Feature.rtr.toPHOIBLE = Data.PHOIBLE.Feature.retractedTongueRoot
Instances For
The segment of a feature matrix reads the matrix along Feature.toPHOIBLE, with [−round]
where PHOIBLE marks [round] not applicable.
Equations
- m.toSegment = Function.update (m ∘ Phonology.Feature.toPHOIBLE) Phonology.Feature.round ↑(Flat.unbotD false (m Data.PHOIBLE.Feature.round))
Instances For
The segments of feature matrices are exactly those specified for [round], since each other
feature of Phonology.Feature is a column of its own.
The tongue-root reading #
The tongue-root reading of a matrix carries its [tense] value as its tongue-root value, keeping its own tongue-root value where it has no [tense], and has no [tense].
Equations
- One or more equations did not get rendered due to their size.
Instances For
Off [ATR] and [tense], the tongue-root reading has the matrix's values.
Witnesses from the chart #
The segments of an inventory's phonemes.
Equations
- I.segments = Finset.image Data.PHOIBLE.FeatureMatrix.toSegment I.featureMatrices
Instances For
A set of segments lies among those of an inventory when each is the segment of one of its
phonemes, a condition decide checks without deduplicating the inventory.
The segment of a chart entry m has the values of departure where that is specified and
those of m elsewhere, kept on the features in contrastive.
Equations
- Phonology.Segment.ofChart m departure contrastive = Phonology.Segment.restrict contrastive fun (f : Phonology.Feature) => (departure f).or (m.toSegment f)
Instances For
With no departure and every feature contrastive, a chart entry's segment is its matrix's.