The OSL Font

OSL provides an OpenType font based on Cuneiform Noto which covers all of the OSL sign repertoire, some of which are located in the Unicode Private Use Area in plane 15 (U+F0000–U+FFFFD) and supports sign-mergers and variants by using the OpenType Stylistic Variation and SALT features, as well as ligatures implemented using Unicode Ideographic Variation Selectors in the range U+E0100 to U+E01EF.

The current FontLab source for the OSL font is available as Noto-SansCuneiform-OSL.vfc [https://github.com/oracc/oracc2/raw/refs/heads/main/lib/fonts/Noto-SansCuneiform-OSL.vfc]. The OpenType version is delivered as a web font which means it is not necessary for individual users to download it; it is available as Noto-SansCuneiform-OSL.ttf [https://github.com/oracc/oracc2/raw/refs/heads/main/lib/fonts/Noto-SansCuneiform-OSL.ttf] for use with other applications.

OSL Script Concepts

OSL script variation is accessible in various ways. Common sets of variants are grouped into named script-styles which correspond to OpenType Stylistic Sets. These script-styles implement general variations such as the common merger of IM with NI₂ but are not intended to capture individual manuscript-level variation. A script-style may have individual character variants in addition to the Stylistic Set.

The following script-styles are presently defined:

Script-styleOT Stylistic Set
Default(none)Selects standard font glyphs.
Earlyss01Selects Early Dynastic glyph forms.
Middless02Selects Ur III/OB glyph forms.
Latess03Selects later mergers.
Gudeass02Selects Ur III/OB glyphs along with de₂=UMUM@s.
ED12ss04Selects UET II+ glyphs
Farass05Selects Fara glyphs

OSL script-styles can be selected in a project configuration file or in an ATF protocol.

Configuration file:

<option name="osl-script-style" value="gudea"/>

ATF protocol:

#atf: script gudea

Individual character variants may be automatically selected via transliteration based on the value or sign/form name or they may be selectable using a graphetic suffix, e.g., de₂\s might select the UMUM@s version of DE₂ which would be an alternative to transliterating as de₂(UMUM@s).

OSL Script-style Definitions

Script-styles are defined in osl.asl. A script-style label is defined using @scriptdef:

@scriptdef gudea ss03

Script-style information is added to signs and forms with @script, which must be repeated for each script-style that is required for a given sign.

The first argument to @script must be a script-style label as defined with @scriptdef, followed by a colon. The following arguments are a semi-colon-separated list of directives ending with a period.

The following directives are supported:

ivs [IVSCODE]
The ivs directive specifies an IVS codepoint which can be paired with the current sign's @ucun to create a ligature that will select the appropriate variant for the sign in the given script-style. The format matches the OSL distinction between individual codepoints, specified as, e.g., U+12000, and sequences, specified as x12000.x12000.
merge [SIGN]
The merge directive indicates that the current sign merges with the SIGN given after 'merge'; e.g., @script gudea: merge NI₂. This is not used by the font technology, but is used when building period-specific sub-signlists.
salt [NUMBER]
The salt directive indicates that the current sign should be replaced by the script-alternative sign specified by [NUMBER]. Note that [NUMBER] must be specified even if it is '1'.
sset [STYLISTIC-SET-CODE
The sset directive enables style-set selection for the current sign to override the style-set selection for the script-style; e.g., if @scriptdef late usually selects ss03, @script late: ss01 selects style-set ss01 for this sign.

@script can be used both with encoded characters and with sequences. For sequences, the font-related selectors SALT and Stylistic Set are not relevant. IVS can be used, however, to select custom ligatures of the sequence that may be defined in the font.

ATF and Script-styles

The OSL processor, sx, generates script-style data that can be used by the ATF processor. If a script-style is given in the project configuration file it is output in the osl-script attribute of all texts in the project. If a script-style is given in an ATF protocol, it is output in the osl-script attribute of the current text; both methods can be used, with the protocol overriding the configuration file.

If salt or ivs directives are given for a sign, corresponding attributes are added on grapheme nodes besides the utf8 attribute. For salt the attribute value is the number; for ivs the attribute value is the Unicode cuneiform sequence consisting of the base sign and the IVS, given in UTF-8 encoding.

 
Back to top ^^
 
CC BY-SA The OSL Project, 2014-
http://oracc.org/TheOSLFont/