Updated version
This commit is contained in:
parent
91e2f3b92a
commit
af9eb6850a
|
@ -1,6 +1,6 @@
|
||||||
digraph {
|
digraph {
|
||||||
graph [outputorder=edgefirst];
|
graph [outputorder=edgefirst];
|
||||||
node [shape="record", fontname="Courier-Bold", fontsize=15];
|
node [shape="record", fontname="Noto Sans Mono SemiBold", fontsize=15];
|
||||||
edge [fontname="Verdana", fontsize=12,labeldistance=7.5 ];
|
edge [fontname="Verdana", fontsize=12,labeldistance=7.5 ];
|
||||||
fontname="Verdana";
|
fontname="Verdana";
|
||||||
ranksep=0.02; nodesep=0.5;
|
ranksep=0.02; nodesep=0.5;
|
||||||
|
@ -10,7 +10,7 @@ subgraph {
|
||||||
preprocessing[style=filled,fillcolor="lightgreen",fontname="Verdana",label="Glyph pre-processing"];
|
preprocessing[style=filled,fillcolor="lightgreen",fontname="Verdana",label="Glyph pre-processing"];
|
||||||
orthographic[style=filled,fillcolor="lightblue",fontname="Verdana",label="Orthographic Unit Shaping"];
|
orthographic[style=filled,fillcolor="lightblue",fontname="Verdana",label="Orthographic Unit Shaping"];
|
||||||
reordering[style=filled, fillcolor="lightcoral",fontname="Verdana",label="Reordering group (USE)"];
|
reordering[style=filled, fillcolor="lightcoral",fontname="Verdana",label="Reordering group (USE)"];
|
||||||
topographic[style=filled,fillcolor="lightgoldenrod",fontname="Verdana",label="Topographical Features"];
|
topographic[style=filled,fillcolor="lightgoldenrod",fontname="Verdana",label="Topographical Features‡"];
|
||||||
typographic[style=filled,fillcolor="lightpink",fontname="Verdana",label="Typographic Presentation"];
|
typographic[style=filled,fillcolor="lightpink",fontname="Verdana",label="Typographic Presentation"];
|
||||||
positioning[style=filled,fillcolor="lightsalmon",fontname="Verdana",label="Positioning"];
|
positioning[style=filled,fillcolor="lightsalmon",fontname="Verdana",label="Positioning"];
|
||||||
preprocessing->reordering->orthographic->topographic->typographic->positioning;
|
preprocessing->reordering->orthographic->topographic->typographic->positioning;
|
||||||
|
@ -20,8 +20,21 @@ subgraph {
|
||||||
rvrn->decision1;
|
rvrn->decision1;
|
||||||
|
|
||||||
ltrfeatures [label="{ltra|ltrm}", fillcolor="lightgreen",style="filled"];
|
ltrfeatures [label="{ltra|ltrm}", fillcolor="lightgreen",style="filled"];
|
||||||
rtlfeatures [label="{rtla|rtlm}", fillcolor="lightgreen",style="filled"];
|
{
|
||||||
fracfeatures [label="frac|numr|dnom", fillcolor="lightpink",style="filled"];
|
rtlfeatures [label="{rtla|rtlm¹}", fillcolor="lightgreen",style="filled"];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
rank=same;
|
||||||
|
fracfeatures [label="frac²|numr³|dnom⁴", fillcolor="lightpink",style="filled"];
|
||||||
|
fracnotes [fontname="Verdana",shape=plaintext,label=<<table border="0" cellborder="0" cellspacing="0">
|
||||||
|
<tr><td align="left">¹ rtlm is scoped to characters with a Unicode mirroring property</td></tr>
|
||||||
|
<tr><td align="left">² frac is scoped to numr + the slash + dnom</td></tr>
|
||||||
|
<tr><td align="left">³ numr is scoped to all decimal numbers before a U+2044 FRACTION SLASH.</td></tr>
|
||||||
|
<tr><td align="left">⁴ dnom is scoped to all decimal numbers after a U+2044 FRACTION SLASH.</td></tr>
|
||||||
|
</table>
|
||||||
|
>];
|
||||||
|
|
||||||
|
}
|
||||||
rand [fillcolor="lightpink",style="filled"];
|
rand [fillcolor="lightpink",style="filled"];
|
||||||
|
|
||||||
decision1 -> ltrfeatures [label="Left-to-right"];
|
decision1 -> ltrfeatures [label="Left-to-right"];
|
||||||
|
@ -35,7 +48,7 @@ subgraph {
|
||||||
|
|
||||||
decision2 [shape="diamond", label="Script?",fontname="Verdana"];
|
decision2 [shape="diamond", label="Script?",fontname="Verdana"];
|
||||||
|
|
||||||
{rank=same; HARF; notes;}
|
{rank=same; HARF [label="{Harf|HARF}"]; notes;}
|
||||||
rand -> trak -> HARF -> decision2;
|
rand -> trak -> HARF -> decision2;
|
||||||
|
|
||||||
commonfeatures [shape=none,label=<<table border="0" cellspacing="0">
|
commonfeatures [shape=none,label=<<table border="0" cellspacing="0">
|
||||||
|
@ -50,7 +63,10 @@ subgraph {
|
||||||
</tr>
|
</tr>
|
||||||
</table>>
|
</table>>
|
||||||
];
|
];
|
||||||
|
|
||||||
decision3 [shape="diamond", label="Script\ndirection?",fontname="Verdana"];
|
decision3 [shape="diamond", label="Script\ndirection?",fontname="Verdana"];
|
||||||
|
|
||||||
|
BUZZ [label="{Buzz|BUZZ}"];
|
||||||
BUZZ -> commonfeatures -> decision3;
|
BUZZ -> commonfeatures -> decision3;
|
||||||
|
|
||||||
horizontalfeatures [
|
horizontalfeatures [
|
||||||
|
@ -82,7 +98,7 @@ subgraph complexshapers {
|
||||||
subgraph cluster_arabic {
|
subgraph cluster_arabic {
|
||||||
bgcolor="lightyellow"
|
bgcolor="lightyellow"
|
||||||
label="Arabic, Syriac";
|
label="Arabic, Syriac";
|
||||||
stch [ style="filled", fillcolor="lightgreen",label="ccmp|locl"];
|
stch [ style="filled", fillcolor="lightgreen",label="stch"];
|
||||||
ccmplocl [ style="filled", label="ccmp|locl", fillcolor="lightgreen"];
|
ccmplocl [ style="filled", label="ccmp|locl", fillcolor="lightgreen"];
|
||||||
arabicfeatures [label="isol|fina|fin2|fin3|medi|med2|init", style="filled", fillcolor="lightgoldenrod"];
|
arabicfeatures [label="isol|fina|fin2|fin3|medi|med2|init", style="filled", fillcolor="lightgoldenrod"];
|
||||||
arabicfeatures2 [label="rclt|calt", style="filled",fillcolor="lightpink"];
|
arabicfeatures2 [label="rclt|calt", style="filled",fillcolor="lightpink"];
|
||||||
|
@ -95,7 +111,7 @@ mset [fillcolor="lightpink",style="filled"]
|
||||||
subgraph cluster_hangul {
|
subgraph cluster_hangul {
|
||||||
bgcolor="lightyellow"
|
bgcolor="lightyellow"
|
||||||
label="Hangul";
|
label="Hangul";
|
||||||
hangulfeatures [label="ljmo|vjmo|tjmo", style="filled",fillcolor="lightblue"]
|
hangulfeatures [label="ljmo|vjmo|tjmo", style="filled",fillcolor="lightgoldenrod"]
|
||||||
}
|
}
|
||||||
hangulfeatures->BUZZ:n;
|
hangulfeatures->BUZZ:n;
|
||||||
|
|
||||||
|
@ -103,25 +119,47 @@ mset [fillcolor="lightpink",style="filled"]
|
||||||
label="Indic";
|
label="Indic";
|
||||||
bgcolor="lightyellow"
|
bgcolor="lightyellow"
|
||||||
// Preprocessing
|
// Preprocessing
|
||||||
loclccmpindic [label="locl|ccmp",style=filled,fillcolor="lightgreen"];
|
loclccmpindic [label="locl†|ccmp†",style=filled,fillcolor="lightgreen"];
|
||||||
node[style=filled,fillcolor="lightgreen"];
|
node[style=filled,fillcolor="lightgreen"];
|
||||||
|
nukt [label="nukt†"];
|
||||||
|
akhn [label="akhn†"];
|
||||||
loclccmpindic->indic_reorder_1->nukt->akhn;
|
loclccmpindic->indic_reorder_1->nukt->akhn;
|
||||||
indic_reorder_1[label="Initial reordering", fontname="Verdana",fillcolor="lightgrey",shape=ellipse,style=filled]
|
indic_reorder_1[label="Initial reordering", fontname="Verdana",fillcolor="lightgrey",shape=ellipse,style=filled]
|
||||||
|
|
||||||
// Orthographic
|
// Orthographic
|
||||||
node[style=filled,fillcolor="lightblue"]
|
node[style=filled,fillcolor="lightblue"]
|
||||||
|
rphf [label="rphf⁵"];
|
||||||
|
rkpf [label="rkpf†"];
|
||||||
|
pref [label="pref⁶"];
|
||||||
|
blwf [label="blwf⁷"];
|
||||||
|
abvf [label="abvf⁸"];
|
||||||
|
half [label="half⁹"];
|
||||||
|
pstf [label="pstf⁸"];
|
||||||
|
vatu [label="vatu†"];
|
||||||
|
cjct [label="cjct†"];
|
||||||
akhn ->rphf -> rkpf -> pref -> blwf -> abvf -> half -> pstf -> vatu -> cjct;
|
akhn ->rphf -> rkpf -> pref -> blwf -> abvf -> half -> pstf -> vatu -> cjct;
|
||||||
// Typographic presentation
|
// Typographic presentation
|
||||||
indic_typographic[style=filled,fillcolor="lightpink",label="init|pres|abvs|blws|psts|haln"]
|
indic_typographic[style=filled,fillcolor="lightpink",label="init|pres|abvs|blws|psts|haln"]
|
||||||
indic_reorder_2[label="Final reordering",fillcolor="lightgrey",fontname="Verdana", shape=ellipse,style=filled]
|
indic_reorder_2[label="Final reordering",fillcolor="lightgrey",fontname="Verdana", shape=ellipse,style=filled]
|
||||||
cjct->indic_reorder_2->indic_typographic;
|
cjct->indic_reorder_2->indic_typographic;
|
||||||
|
|
||||||
|
notes2 [fontname="Verdana",shape=plaintext,style="",label=<<table border="0" cellborder="0" cellspacing="0">
|
||||||
|
<tr><td align="right">⁵ rphf is scoped to pre-base ra+halant sequences</td></tr>
|
||||||
|
<tr><td align="right">⁶ pref is scoped to the two glyphs after the base; outputs are reordered</td></tr>
|
||||||
|
<tr><td align="right">⁷ blwf is usually scoped to the whole syllable, except in Telugu and Kannada where it is post-base</td></tr>
|
||||||
|
<tr><td align="right">⁸ abvf and pstf are scoped to post-base</td></tr>
|
||||||
|
<tr><td align="right">⁹ half is scoped to pre-base</td></tr>
|
||||||
|
</table>
|
||||||
|
>];
|
||||||
|
indic_typographic -> notes2 [style=invis];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
subgraph cluster_khmer {
|
subgraph cluster_khmer {
|
||||||
label="Khmer";
|
label="Khmer";
|
||||||
bgcolor="lightyellow"
|
bgcolor="lightyellow"
|
||||||
|
|
||||||
khmerbasic [style=filled,fillcolor="lightgreen",label="locl|ccmp|pref|bwlf|abvf|pstf|cfar"]
|
khmerbasic [style=filled,fillcolor="lightgreen",label="locl†|ccmp†|pref†|bwlf†|abvf†|pstf†|cfar†"]
|
||||||
khmerother [style=filled,fillcolor="lightpink",label="pres|abvs|blws|psts"]
|
khmerother [style=filled,fillcolor="lightpink",label="pres|abvs|blws|psts"]
|
||||||
khmerbasic -> khmerother -> khmerclig;
|
khmerbasic -> khmerother -> khmerclig;
|
||||||
khmerclig [label="clig",style=filled,fillcolor="lightpink"];
|
khmerclig [label="clig",style=filled,fillcolor="lightpink"];
|
||||||
|
@ -130,11 +168,11 @@ mset [fillcolor="lightpink",style="filled"]
|
||||||
subgraph cluster_myanmar {
|
subgraph cluster_myanmar {
|
||||||
label="Myanmar";
|
label="Myanmar";
|
||||||
bgcolor="lightyellow"
|
bgcolor="lightyellow"
|
||||||
loclccmpmyanmar [label="locl|ccmp",style=filled,fillcolor="lightgreen"];
|
loclccmpmyanmar [label="locl†|ccmp†",style=filled,fillcolor="lightgreen"];
|
||||||
rphfmymr [label="rphf",style=filled,fillcolor="lightblue"]
|
rphfmymr [label="rphf†",style=filled,fillcolor="lightblue"]
|
||||||
prefmymr [label="pref",style=filled,fillcolor="lightblue"]
|
prefmymr [label="pref†",style=filled,fillcolor="lightblue"]
|
||||||
blwfmymr [label="blwf",style=filled,fillcolor="lightblue"]
|
blwfmymr [label="blwf†",style=filled,fillcolor="lightblue"]
|
||||||
pstfmymr [label="pstf",style=filled,fillcolor="lightblue"]
|
pstfmymr [label="pstf†",style=filled,fillcolor="lightblue"]
|
||||||
myanmarother [label="pres|abvs|blws|psts",style=filled,fillcolor="lightpink"];
|
myanmarother [label="pres|abvs|blws|psts",style=filled,fillcolor="lightpink"];
|
||||||
reorder_myanmar[label="Reordering", shape=ellipse,style=filled,fontname="Verdana"]
|
reorder_myanmar[label="Reordering", shape=ellipse,style=filled,fontname="Verdana"]
|
||||||
loclccmpmyanmar -> reorder_myanmar-> rphfmymr -> prefmymr -> blwfmymr -> pstfmymr -> myanmarother;
|
loclccmpmyanmar -> reorder_myanmar-> rphfmymr -> prefmymr -> blwfmymr -> pstfmymr -> myanmarother;
|
||||||
|
@ -143,16 +181,22 @@ mset [fillcolor="lightpink",style="filled"]
|
||||||
subgraph cluster_use {
|
subgraph cluster_use {
|
||||||
label="Universal Shaping Engine"
|
label="Universal Shaping Engine"
|
||||||
bgcolor="lightyellow"
|
bgcolor="lightyellow"
|
||||||
use_preprocessing [style=filled, label="locl|ccmp|nukt|akhn", fillcolor="lightgreen"];
|
use_preprocessing [style=filled, label="locl†|ccmp†|nukt†|akhn†", fillcolor="lightgreen"];
|
||||||
// Reoredering
|
// Reoredering
|
||||||
rphfuse [label="rphf", style=filled, fillcolor="lightcoral"];
|
rphfuse [label="rphf¹⁰", style=filled, fillcolor="lightcoral"];
|
||||||
prefuse [label="pref", style=filled, fillcolor="lightcoral"];
|
prefuse [label="pref¹¹", style=filled, fillcolor="lightcoral"];
|
||||||
// Orthographic
|
// Orthographic
|
||||||
orthographicuse [label="rkrf|abvf|blwf|half|pstf|vatu|cjct", style="filled", fillcolor="lightblue"];
|
orthographicuse [label="rkrf†|abvf†|blwf†|half†|pstf†|vatu†|cjct†", style="filled", fillcolor="lightblue"];
|
||||||
topographicaluse [label="isol|init|medi|fina", style="filled", fillcolor="lightgoldenrod"];
|
topographicaluse [label="isol|init|medi|fina", style="filled", fillcolor="lightgoldenrod"];
|
||||||
typographicaluse [label="abvs|blws|haln|pres|psts", style="filled", fillcolor="lightpink"];
|
typographicaluse [label="abvs|blws|haln|pres|psts", style="filled", fillcolor="lightpink"];
|
||||||
reorder_use[label="Reordering", shape=ellipse,style=filled,fontname="Verdana"]
|
reorder_use[label="Reordering", shape=ellipse,style=filled,fontname="Verdana"]
|
||||||
use_preprocessing -> rphfuse -> prefuse->orthographicuse ->reorder_use -> topographicaluse -> typographicaluse;
|
use_preprocessing -> rphfuse -> prefuse->orthographicuse ->reorder_use -> topographicaluse -> typographicaluse;
|
||||||
|
notes3 [fontname="Verdana",shape=plaintext,label=<<table border="0" cellborder="0" cellspacing="0">
|
||||||
|
<tr><td align="left">¹⁰ Outputs are reordered as category R</td></tr>
|
||||||
|
<tr><td align="left">¹¹ Outputs are reordered to before base</td></tr>
|
||||||
|
</table>
|
||||||
|
>];
|
||||||
|
typographicaluse -> notes3 [style=invis];
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -170,7 +214,6 @@ mset [fillcolor="lightpink",style="filled"]
|
||||||
decision2->use_preprocessing;
|
decision2->use_preprocessing;
|
||||||
decision2->BUZZ [label=" Hebrew, Thai,\n Lao, other"];
|
decision2->BUZZ [label=" Hebrew, Thai,\n Lao, other"];
|
||||||
|
|
||||||
|
|
||||||
notes [fontname="Verdana",shape=box,label=<<table border="0" cellborder="0" cellspacing="0">
|
notes [fontname="Verdana",shape=box,label=<<table border="0" cellborder="0" cellspacing="0">
|
||||||
<tr><td align="left">
|
<tr><td align="left">
|
||||||
<b>Indic</b> scripts are: Bengali, Devanagari,
|
<b>Indic</b> scripts are: Bengali, Devanagari,
|
||||||
|
@ -205,4 +248,12 @@ Takri, Tibetan, Tifinagh, Tirhuta, Wancho, Zanabazar square,
|
||||||
</td></tr>
|
</td></tr>
|
||||||
|
|
||||||
</table>>]
|
</table>>]
|
||||||
|
|
||||||
|
|
||||||
|
footnote[fontname="Verdana",label=<<table border="0" cellborder="0" cellspacing="0">
|
||||||
|
<tr><td align="left">† Feature is scoped to each syllable</td></tr>
|
||||||
|
<tr><td align="left">‡ All topographic features are scoped based on topographic position</td></tr>
|
||||||
|
</table>>];
|
||||||
|
notes3->footnote[style=invis];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue