Open dwhieb opened 3 years ago
I think this issue is best split in two:
phonologicalClass(es)
: A simple string indicating the phonological class a morpheme belongs to. Useful for indicating which phonological rules apply to a given morpheme without having to actually specify the details of the rule for every morpheme. The value should be the key of a PhonologicalRule object.PhonologicalRule
: A schema object representing a phonological rule. This doesn't necessarily have to have a parent schema; it can live on its own. Each phonological rule should have a name / key, which can be used by the phonologicalClass
attribute.
Create a new
PhonologicalRule
schema. Each Phonological Rule should have the following properties:name
description
: a prose description of this ruleformula
: a string representing the rule in Phonological Rule Notation:For now, we can leave the formula as a simple string. Later, we may implement
input
,output
, andenvironment
fields. This would be a fairly complex task though. We'd need to support:a
orb
as values of properties in the Phonological Features object)σ
ors
; morpheme+
; word#
)C
; vowelV
; glide/semivowelW
; sibilantS
; rhoticR
; lateralL
; nasalN
; maybe othersTake a look at this repo for implementation ideas: https://github.com/TriMill/sca