idnits 2.17.1 draft-slevinski-formal-signwriting-04.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an Introduction section. ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (January 20, 2018) is 2288 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Missing Reference: 'ABC' is mentioned on line 300, but not defined == Missing Reference: 'A-C' is mentioned on line 303, but not defined -- Looks like a reference, but probably isn't: '123' on line 1555 == Missing Reference: '0-9a-f' is mentioned on line 1555, but not defined == Missing Reference: '0-5' is mentioned on line 1589, but not defined == Missing Reference: '5-9' is mentioned on line 553, but not defined == Missing Reference: '0-9' is mentioned on line 1589, but not defined == Missing Reference: '3-6' is mentioned on line 553, but not defined == Missing Reference: '0-4' is mentioned on line 1589, but not defined == Missing Reference: 'LMR' is mentioned on line 639, but not defined == Missing Reference: '0-5u' is mentioned on line 1136, but not defined == Missing Reference: '0-9a-fu' is mentioned on line 1055, but not defined == Missing Reference: '2-9' is mentioned on line 1589, but not defined == Missing Reference: '3-9' is mentioned on line 1589, but not defined == Missing Reference: '2-3' is mentioned on line 1589, but not defined == Unused Reference: 'SuttonSignWritingProject' is defined on line 1720, but no explicit reference was found in the text Summary: 2 errors (**), 0 flaws (~~), 16 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Sutton-Slevinski Collaboration S. Slevinski 3 Internet-Draft Center for Sutton Movement Writing 4 Intended status: Informational January 20, 2018 5 Expires: July 24, 2018 7 Formal SignWriting 8 draft-slevinski-formal-signwriting-04 10 Abstract 12 Sutton SignWriting is the universal and complete solution for written 13 sign language, ISO 15924 script code "Sgnw". It has been applied by 14 a wide and deep international community of sign language users. 15 Sutton SignWriting is an international standard for writing sign 16 languages by hand or with computers. From education to research, 17 from entertainment to religion, SignWriting has proven useful because 18 people are using it to write signed languages. 20 Formal SignWriting is one particular computerized design for Sutton 21 SignWriting that envisions a sign as a two part word. Each word is 22 written as a string of characters that can be recognized and 23 processed by regular expressions. The design has been optimized for 24 display, searching, sorting, text flow, and other character 25 processing. 27 Where as American Sign Language is a natural language, Formal 28 SignWriting is a formal language. A formal language is useful in 29 mathematics, computer science, and linguistics. 31 This memo defines a conceptual character encoding map for the 32 Internet community. It is published for reference, examination, 33 implementation, and evaluation. Distribution of this memo is 34 unlimited. 36 Status of This Memo 38 This Internet-Draft is submitted in full conformance with the 39 provisions of BCP 78 and BCP 79. 41 Internet-Drafts are working documents of the Internet Engineering 42 Task Force (IETF). Note that other groups may also distribute 43 working documents as Internet-Drafts. The list of current Internet- 44 Drafts is at https://datatracker.ietf.org/drafts/current/. 46 Internet-Drafts are draft documents valid for a maximum of six months 47 and may be updated, replaced, or obsoleted by other documents at any 48 time. It is inappropriate to use Internet-Drafts as reference 49 material or to cite them other than as "work in progress." 51 This Internet-Draft will expire on July 24, 2018. 53 Copyright Notice 55 Copyright (c) 2018 IETF Trust and the persons identified as the 56 document authors. All rights reserved. 58 This document is subject to BCP 78 and the IETF Trust's Legal 59 Provisions Relating to IETF Documents 60 (https://trustee.ietf.org/license-info) in effect on the date of 61 publication of this document. Please review these documents 62 carefully, as they describe your rights and restrictions with respect 63 to this document. Code Components extracted from this document must 64 include Simplified BSD License text as described in Section 4.e of 65 the Trust Legal Provisions and are provided without warranty as 66 described in the Simplified BSD License. 68 Table of Contents 70 1. Sutton SignWriting . . . . . . . . . . . . . . . . . . . . . 3 71 1.1. Script . . . . . . . . . . . . . . . . . . . . . . . . . 4 72 1.2. Symbols . . . . . . . . . . . . . . . . . . . . . . . . . 4 73 2. Formal SignWriting . . . . . . . . . . . . . . . . . . . . . 5 74 2.1. Design Principles . . . . . . . . . . . . . . . . . . . . 5 75 2.1.1. Complete . . . . . . . . . . . . . . . . . . . . . . 5 76 2.1.2. Universal . . . . . . . . . . . . . . . . . . . . . . 5 77 2.1.3. Empowering . . . . . . . . . . . . . . . . . . . . . 5 78 2.1.4. Possible . . . . . . . . . . . . . . . . . . . . . . 5 79 2.2. Characters . . . . . . . . . . . . . . . . . . . . . . . 5 80 2.2.1. Formal SignWriting in ASCII (FSW) . . . . . . . . . . 6 81 2.2.2. SignWriting in Unicode (SWU) . . . . . . . . . . . . 6 82 2.3. Building Blocks . . . . . . . . . . . . . . . . . . . . . 6 83 2.3.1. Regular Expressions . . . . . . . . . . . . . . . . . 6 84 2.3.2. Token Patterns . . . . . . . . . . . . . . . . . . . 7 85 2.3.3. Symbols . . . . . . . . . . . . . . . . . . . . . . . 8 86 2.3.4. Numbers . . . . . . . . . . . . . . . . . . . . . . . 12 87 2.4. Two-Part Word . . . . . . . . . . . . . . . . . . . . . . 13 88 2.4.1. Spatial Signbox . . . . . . . . . . . . . . . . . . . 14 89 2.4.2. Temporal Prefix . . . . . . . . . . . . . . . . . . . 17 90 2.5. Styling String . . . . . . . . . . . . . . . . . . . . . 18 91 2.5.1. Entire Sign . . . . . . . . . . . . . . . . . . . . . 19 92 2.5.2. Individual Symbols . . . . . . . . . . . . . . . . . 21 93 2.5.3. SVG Class Names and ID . . . . . . . . . . . . . . . 22 94 2.6. Query Language . . . . . . . . . . . . . . . . . . . . . 23 95 2.6.1. Searching the Spatial Signbox . . . . . . . . . . . . 25 96 2.6.2. Searching the Temporal Prefix . . . . . . . . . . . . 26 97 2.6.3. Including the Styling String . . . . . . . . . . . . 27 98 3. Technology Integration . . . . . . . . . . . . . . . . . . . 28 99 3.1. Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . 28 100 3.1.1. Windows, Linux, and Mac . . . . . . . . . . . . . . . 28 101 3.1.2. Mac and iOS . . . . . . . . . . . . . . . . . . . . . 28 102 3.1.3. Android . . . . . . . . . . . . . . . . . . . . . . . 29 103 3.2. Fonts and CSS . . . . . . . . . . . . . . . . . . . . . . 29 104 3.3. Scalar Vector Graphics . . . . . . . . . . . . . . . . . 30 105 3.3.1. Font Based SVG . . . . . . . . . . . . . . . . . . . 30 106 3.3.2. Stand Alone SVG . . . . . . . . . . . . . . . . . . . 31 107 3.4. HTML and CSS . . . . . . . . . . . . . . . . . . . . . . 32 108 3.4.1. Centering and Sizing . . . . . . . . . . . . . . . . 32 109 3.4.2. Coloring Symbols and Signs . . . . . . . . . . . . . 33 110 3.4.3. Other Effects . . . . . . . . . . . . . . . . . . . . 34 111 3.4.4. Sentences . . . . . . . . . . . . . . . . . . . . . . 34 112 4. Transformations . . . . . . . . . . . . . . . . . . . . . . . 35 113 4.1. Formal SignWriting to Query String . . . . . . . . . . . 35 114 4.2. Query String to Regular Expression . . . . . . . . . . . 36 115 5. Unicode Considerations . . . . . . . . . . . . . . . . . . . 37 116 5.1. Official Characters . . . . . . . . . . . . . . . . . . . 37 117 5.2. 17 New Characters . . . . . . . . . . . . . . . . . . . . 38 118 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 38 119 7. Security Considerations . . . . . . . . . . . . . . . . . . . 38 120 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 39 121 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 40 123 1. Sutton SignWriting 125 Sutton SignWriting is the universal and complete solution for written 126 sign language. It has been applied by a wide and deep international 127 community of sign languages including: American Sign Language, 128 Arabian Sign Languages, Australian Sign Language, Bolivian Sign 129 Language, Brazilian Sign Language, British Sign Language, Catalan 130 Sign Language, Colombian Sign Language, Czech Sign Language, Danish 131 Sign Language, Dutch Sign Language, Ethiopian Sign Language, Finnish 132 Sign Language, Flemish Sign Language, French-Belgian Sign Language, 133 French Sign Language, German Sign Language, Greek Sign Language, 134 Irish Sign Language, Italian Sign Language, Japanese Sign Language, 135 Malawi Sign Language, Malaysian Sign Language, Maltese Sign Language, 136 Mexican Sign Language, Nepalese Sign Language, New Zealand Sign 137 Language, Nicaraguan Sign Language, Norwegian Sign Language, Peruvian 138 Sign Language, Philippines Sign Language, Polish Sign Language, 139 Portugese Sign Language, Quebec Sign Language, South African Sign 140 Language, Spanish Sign Language, Swedish Sign Language, Swiss Sign 141 Language, Taiwanese Sign Language, and Tunisian Sign Language. 143 Sutton SignWriting is an international standard for writing sign 144 languages by hand or with computers. From education to research, 145 from entertainment to religion, SignWriting has proven useful because 146 people are using it to write signed languages. 148 1.1. Script 150 Sign language is vastly different than spoken language. Instead of 151 the sequential sounds of the voice, there is a 3 dimensional space 152 with simultaneous action. Sutton SignWriting creates 2-dimensional 153 writing that is visually icon and full of featural information. This 154 is true on the symbol level and on the sign level. A symbol 155 represents phonemic information and is full of featural information 156 to better understand the phonemes of the symbols. A sign is a 157 2-dimensional arrangement of symbols and is full of featural 158 information to better understand the morphemes of the signs. 160 Punctuation is represented by a single symbol and separates a series 161 of signs into structured sentences. Line breaks should not occur 162 before punctuation. 164 When written vertically, SignWriting can use 3 different lanes: left, 165 middle, and right. The middle lane is the default lane and 166 punctuation is always used in the middle lane. No matter the lane, 167 the center of a sign is aligned with the center of the lane. The 168 left and right lanes are used to represent body weight shifts and are 169 represented by a horizontal offset from the middle lane. Body weight 170 shifts are important to the grammar of sign languages, used for two 171 different grammatical aspects: 1) role shifting during sign language 172 storytelling, and 2) spatial comparisons of two items under 173 discussion. One "role" or "item" is placed on the right side of the 174 body (right lane), and the other on the left side of the body (left 175 lane), and the weight shifts back and forth between the two, with the 176 narrator in the middle (middle lane). 178 1.2. Symbols 180 The Sutton SignWriting Symbols are the building blocks of Sutton 181 SignWriting. The symbols are arranged in 2 dimensions to create the 182 sign images. The symbols are organized with a 16-bit coded character 183 set and a layered hierarchy. The symbols are defined in the 184 International SignWriting Alphabet 2010 (ISWA 2010). The ISWA 2010 185 is a product of the Sutton-Slevinski collaboration. 187 2. Formal SignWriting 189 Formal SignWriting is one particular computerized encoding for Sutton 190 SignWriting. The design is based on character processing with 191 regular expressions. With Formal SignWriting, each sign is written 192 as a two-part word of time and space. 194 Where as American Sign Language is a natural language, Formal 195 SignWriting is a formal language. A formal language is useful in 196 mathematics, computer science, and linguistics. 198 2.1. Design Principles 200 Formal SignWriting was created using four design principles: 201 completeness, universality, empowerment, and possiblity. 203 2.1.1. Complete 205 Sutton SignWriting is a complex script with unique requirements and 206 processing. Formal SignWriting supports all of the structures 207 inherent to the script. 209 2.1.2. Universal 211 Sutton SignWriting can be used to write any sign language, natural or 212 constructed. Formal SignWriting supports all sign languages without 213 requiring the addition of new characters or updated fonts. 215 2.1.3. Empowering 217 Sutton SignWriting is flexible enough to let each writer decide how 218 they want to write their signs. Formal SignWriting enable the 219 writers to decide for themselves the spelling of their respective 220 signs. 222 2.1.4. Possible 224 Sutton SignWriting is a practical script that makes it possible to 225 write sign language. Formal SignWriting is a practical encoding 226 because it works with existing font technologies across operating 227 systems. 229 2.2. Characters 231 Any sign can be written as a string of characters. Formal 232 SignWriting has two sets of characters that can be used: Formal 233 SignWriting in ASCII (FSW) and SignWriting in Unicode (SWU). These 234 sets are isomorphic with an easy bi-directional conversion between 235 the two sets. 237 +-----------------+------------------+--------------------+ 238 | Description | FSW Characters | SWU Characters | 239 +-----------------+------------------+--------------------+ 240 | Sequence Marker | A | U+1D800 | 241 +-----------------+------------------+--------------------+ 242 | Signbox Markers | B, L, M, R | U+1D801 to U+1D804 | 243 +-----------------+------------------+--------------------+ 244 | Numbers | 250 to 749 | U+1D80C to U+1D9FF | 245 +-----------------+------------------+--------------------+ 246 | Symbols | S10000 to S38b07 | U+40001 to U+4F428 | 247 +-----------------+------------------+--------------------+ 249 Table 1 251 2.2.1. Formal SignWriting in ASCII (FSW) 253 Formal SignWriting in ASCII (FSW) was released in January 2012 and 254 has been stable since. FSW only uses characters from the ASCII 255 subset of "ABLMRS0123456789xabcdef". 257 2.2.2. SignWriting in Unicode (SWU) 259 SignWriting in Unicode (SWU) was first published in October 2016 and 260 officially submitted to the Unicode Technical Committee in July 2017. 261 SWU is not part of the Unicode standard. 263 SignWriting in Unicode is an experimental Unicode design that is 264 promoted by the Center for Sutton Movement Writing. This alternate 265 encoding replaces the Sutton SignWriting block in Unicode and uses 266 plane 4 for the SignWriting symbols. 268 2.3. Building Blocks 270 The mathematical words of Formal SignWriting are plain text strings 271 of characters. 273 2.3.1. Regular Expressions 275 Regular Expressions define string matching criteria. Regular 276 Expressions offer fast processing and wide support on the various 277 platforms. 279 Formal SignWriting is defined with regular expressions. Formal 280 languages and regular expressions are used to solve fundamental 281 problems. 283 Regular Expression Basics 285 +------------+--------------------------+---------------------------+ 286 | Characters | Description | Example | 287 +------------+--------------------------+---------------------------+ 288 | * | Match a literal 0 or | ABC* matches AB, ABC, | 289 | | more times | ABCC, ... | 290 +------------+--------------------------+---------------------------+ 291 | + | Match a literal 1 or | ABC+ matches ABC, ABCC, | 292 | | more times | ABCCC, ... | 293 +------------+--------------------------+---------------------------+ 294 | ? | Match a literal 0 or 1 | ABC? matches AB or ABC | 295 | | times | | 296 +------------+--------------------------+---------------------------+ 297 | {#} | Match a literal "#" | AB{2} matches ABB | 298 | | times | | 299 +------------+--------------------------+---------------------------+ 300 | [ ] | Match any single literal | [ABC] matches A, B, or C | 301 | | from a list | | 302 +------------+--------------------------+---------------------------+ 303 | [ - ] | Match any single literal | [A-C] matches A, B, or C | 304 | | in a range | | 305 +------------+--------------------------+---------------------------+ 306 | ( ) | Creates a group for | A(BC)+ matches ABC, | 307 | | matching | ABCBC, ABCBCBC, ... | 308 +------------+--------------------------+---------------------------+ 309 | ( | ) | Matches one of several | (AB|BC|CD) will match AB, | 310 | | alternatives | BC, or CD | 311 +------------+--------------------------+---------------------------+ 313 Table 2 315 2.3.2. Token Patterns 317 The Formal SignWriting encoding model makes explicit those features 318 which can be effectively and efficiently processed. The mathematical 319 names are structured with 11 different tokens. They can be grouped 320 in 4 layers: the 5 structural makers (A, B, L, M, R), the 3 base 321 symbol ranges (w, s, P), the 2 modifier indexes (i, o), and the 322 numbers (n). 324 The Tokens of Formal SignWriting 326 +-------+-------------------------------+ 327 | Token | Description | 328 +-------+-------------------------------+ 329 | A | Sequence Marker | 330 +-------+-------------------------------+ 331 | B | Signbox Marker | 332 +-------+-------------------------------+ 333 | L | Left Lane Marker | 334 +-------+-------------------------------+ 335 | M | Middle Lane Marker | 336 +-------+-------------------------------+ 337 | R | Right Lane Marker | 338 +-------+-------------------------------+ 339 | w | Writing BaseSymbols | 340 +-------+-------------------------------+ 341 | s | Detailed Location BaseSymbols | 342 +-------+-------------------------------+ 343 | P | Punctuation BaseSymbols | 344 +-------+-------------------------------+ 345 | i | Fill Modifiers | 346 +-------+-------------------------------+ 347 | o | Rotation Modifiers | 348 +-------+-------------------------------+ 349 | n | Number from 250 to 749 | 350 +-------+-------------------------------+ 352 Table 3 354 These tokens are used in patterns to form written sign language. 356 2.3.3. Symbols 358 Symbols can be described with 3 tokens: base symbol, fill modifier, 359 and rotation modifier. 361 Symbol Tokens 363 +---------+---------------------------------------------------------+ 364 | Token | Description | 365 | Pattern | | 366 +---------+---------------------------------------------------------+ 367 | w | Writing BaseSymbols. | 368 +---------+---------------------------------------------------------+ 369 | s | Detailed Location BaseSymbols. | 370 +---------+---------------------------------------------------------+ 371 | P | Punctuation BaseSymbols. | 372 +---------+---------------------------------------------------------+ 373 | i | Fill Modifiers. | 374 +---------+---------------------------------------------------------+ 375 | o | Rotation Modifiers. | 376 +---------+---------------------------------------------------------+ 377 | wio | A writing symbol as 3 tokens of writing base, fill | 378 | | modifier and rotation modifier. Writing symbols can be | 379 | | used in the spatial signbox or the temporal prefix. | 380 +---------+---------------------------------------------------------+ 381 | [ws]io | A writing symbol or a detailed location symbol as 3 | 382 | | tokens of base, fill modifier, and rotation modifier. | 383 | | Writing symbols and detail location symbols can be used | 384 | | in the temporal prefix. | 385 +---------+---------------------------------------------------------+ 386 | Pio | A punctuation symbol as 3 tokens of punctuation base, | 387 | | fill modifier, and rotation modifier. Punctuation | 388 | | symbols divide signs into sentences. | 389 +---------+---------------------------------------------------------+ 391 Table 4 393 There are a variety of symbol types that are used for different 394 purposes. 396 Symbol Types and Descriptions 398 +-------------+-----------------------------------------------------+ 399 | Type | Description | 400 +-------------+-----------------------------------------------------+ 401 | all symbols | All symbols used in Formal SignWriting. | 402 +-------------+-----------------------------------------------------+ 403 | writing | Symbols that can be used in the spatial signbox or | 404 | | the temporal prefix. | 405 +-------------+-----------------------------------------------------+ 406 | hand | Various handshapes | 407 +-------------+-----------------------------------------------------+ 408 | movement | Contact symbols, small finger movements, straight | 409 | | arrows, curved arrows and circles. | 410 +-------------+-----------------------------------------------------+ 411 | dynamic | Dynamic symbols are used to give the "feeling" or | 412 | | "tempo" to movement. | 413 +-------------+-----------------------------------------------------+ 414 | head | Symbols for the head and face. | 415 +-------------+-----------------------------------------------------+ 416 | hcenter | Used to determine the horizontal center of a sign. | 417 | | Same as the head type. | 418 +-------------+-----------------------------------------------------+ 419 | vcenter | Use to determine the vertical center of a sign. | 420 | | Includes the head and trunk types. | 421 +-------------+-----------------------------------------------------+ 422 | trunk | Symbols for torso movement, shoulders, and hips. | 423 +-------------+-----------------------------------------------------+ 424 | limb | Symbols for limbs and fingers. | 425 +-------------+-----------------------------------------------------+ 426 | location | Detailed location symbols can only be used in the | 427 | | temporal prefix. | 428 +-------------+-----------------------------------------------------+ 429 | punctuation | Punctual symbols are used to divide signs into | 430 | | sentences. | 431 +-------------+-----------------------------------------------------+ 433 Table 5 435 Symbol types occur in specific ranges depending on the characters 436 involved. 438 Symbol Types and Ranges 440 +-------------+-------------+------------------+ 441 | Type | FSW | SWU | 442 +-------------+-------------+------------------+ 443 | all symbols | S100 - S38b | U+40001 -U+4F480 | 444 +-------------+-------------+------------------+ 445 | writing | S100 - S37e | U+40001 -U+4EFA0 | 446 +-------------+-------------+------------------+ 447 | hand | S100 - 204 | U+40001 -U+461E0 | 448 +-------------+-------------+------------------+ 449 | movement | S205 - S2f6 | U+461E1 -U+4BCA0 | 450 +-------------+-------------+------------------+ 451 | dynamic | S2f7 - S2fe | U+4BCA1 -U+4BFA0 | 452 +-------------+-------------+------------------+ 453 | head | S2ff - S36c | U+4BFA1 -U+4E8E0 | 454 +-------------+-------------+------------------+ 455 | hcenter | S2ff - S36c | U+4BFA1 -U+4E8E0 | 456 +-------------+-------------+------------------+ 457 | vcenter | S2ff - S375 | U+4BFA1 -U+4EC40 | 458 +-------------+-------------+------------------+ 459 | trunk | S36d - S375 | U+4E8E1 -U+4EC40 | 460 +-------------+-------------+------------------+ 461 | limb | S376 - S37e | U+4EC41 -U+4EFA0 | 462 +-------------+-------------+------------------+ 463 | location | S37f - S386 | U+4EFA1 -U+4F2A0 | 464 +-------------+-------------+------------------+ 465 | punctuation | S387 - S38b | U+4F2A1 -U+4F480 | 466 +-------------+-------------+------------------+ 468 Table 6 470 2.3.3.1. FSW Symbols 472 Symbol keys are 6 characters long. The first character of a symbol 473 key is always "S". The next 3 characters identify the symbol base. 474 The last two characters identify the fill and rotation modifiers 475 respectively. 477 Symbol Key Definition 479 +--------------------------------+-----------------------+ 480 | Regular Expression | Description | 481 +--------------------------------+-----------------------+ 482 | S | Start of symbol key | 483 +--------------------------------+-----------------------+ 484 | [123][0-9a-f]{2} | Symbol key base | 485 +--------------------------------+-----------------------+ 486 | [0-5] | Fill modifier | 487 +--------------------------------+-----------------------+ 488 | [0-9a-f] | Rotation modifier | 489 +--------------------------------+-----------------------+ 490 | S[123][0-9a-f]{2}[0-5][0-9a-f] | Symbol key definition | 491 +--------------------------------+-----------------------+ 493 Table 7 495 2.3.3.2. SWU Symbols 497 The 37,811 symbols of the International SignWriting Alphabet 2010 are 498 uniquely idendified with Unicode characters in the range U+40001 to 499 U+4F428. 501 A simple formula transforms a symbol key into a codepoint. Given a 502 symbol key as variable "key", in JavaScript the function is defined 503 as: 505 var code = ((parseInt(key.slice(1,4),16) - 256) * 96) + 506 ((parseInt(key.slice(4,5),16))*16) + parseInt(key.slice(5,6),16) + 507 1; 509 2.3.4. Numbers 511 The numbers encode the ruler principle with characters. The ruler 512 principle is built in automatically for scripts written sequentially 513 in one dimension. The number characters are needed to specify the 514 spatial relationship between symbols. 516 Both FSW and SWU use a restricted range of 500 numbers between 250 517 and 749. 519 Cartesian Coordinates can be described with 2 tokens: number and 520 number. These numbers represent the X and Y coordinates 521 respectively. 523 Coordinate Tokens 525 +----------------+---------------------------------------------+ 526 | Token Patterns | Description | 527 +----------------+---------------------------------------------+ 528 | n | Number from 250 to 749 | 529 +----------------+---------------------------------------------+ 530 | nn | Coordinate with X and Y values as 2 numbers | 531 +----------------+---------------------------------------------+ 533 Table 8 535 2.3.4.1. FSW Numbers 537 Formal SignWriting in ASCII has two definitions for a number. The 538 more general definition simply defines 3 digits together with a 539 potential range of 1000. A more explicit definition correctly 540 restricts the numbers to 500 possibilities in the 250 to 749 range. 541 The general coordinate definition is adequate for processing. 543 An X,Y coordinate is created by using the letter "x" to join two FSW 544 numbers. 546 General 3 digit number definition: [0-9]{3} 548 General coordinate definition: [0-9]{3}x[0-9]{3} 550 Explicit number definition from 250 to 749: 551 (2[5-9][0-9]|[3-6][0-9]{2}|7[0-4][0-9]) 553 Explicit coordinate definition: (2[5-9][0-9]|[3-6][0-9]{2}|7[0-4][0- 554 9])x(2[5-9][0-9]|[3-6][0-9]{2}|7[0-4][0-9]) 556 2.3.4.2. SWU Numbers 558 SignWriting in Unicode has a single definition for a number. Each 559 number is uniquely idendified with Unicode characters in the range 560 U+1D80C to U+1D9FF. A coordinate is defined as 2 numbers together. 562 2.4. Two-Part Word 564 Formal SignWriting envisions a sign as a two-part word of time and 565 space. The two-dimensional appearance of a sign is written in the 566 spatial signbox as an objective arrangement. The one-dimensional 567 order of a sign is written in the temporal prefix as a subjective 568 analysis. 570 2.4.1. Spatial Signbox 572 The spatial signbox is a two-dimensional cluster of symbols. The 573 position of each symbol is determined by the writer and defined using 574 Cartesian Coordinates that represent the top-left of the symbol 575 image. Formal numbers range from 250 to 749. 577 2-dimensional space does not have a normative 1-dimensional order. 578 When symbols overlap, the relative order of the overlapping symbols 579 is important. Symbols written first appear underneath symbols that 580 are written later. Otherwise, the exact string order of the spatial 581 symbols is unpredictable. The spatial signbox is neither formatting 582 nor style and represents meaning that is beyond the temporal prefix. 584 Y Axis 585 | 250 586 | 587 | 588 | 589 | 590 | 591 X Axis | 592 -----------+------------ 593 250 | 749 594 | 595 | 596 | 597 | 598 | 599 | 749 601 The Spatial Signbox can be described with 8 tokens. 603 Spatial Signbox Tokens 605 +-----------------+-------------------------------------------------+ 606 | Token Pattern | Description | 607 +-----------------+-------------------------------------------------+ 608 | B | Signbox Marker | 609 +-----------------+-------------------------------------------------+ 610 | L | Left Lane Marker | 611 +-----------------+-------------------------------------------------+ 612 | M | Middle Lane Marker | 613 +-----------------+-------------------------------------------------+ 614 | R | Right Lane Marker | 615 +-----------------+-------------------------------------------------+ 616 | w | Writing BaseSymbols | 617 +-----------------+-------------------------------------------------+ 618 | i | Fill Modifiers | 619 +-----------------+-------------------------------------------------+ 620 | o | Rotation Modifiers | 621 +-----------------+-------------------------------------------------+ 622 | n | Number from 250 to 749 | 623 +-----------------+-------------------------------------------------+ 624 | wio | A writing symbol as 3 tokens of writing base, | 625 | | fill modifier and rotation modifier | 626 +-----------------+-------------------------------------------------+ 627 | nn | Coordinate with X and Y values as 2 numbers | 628 +-----------------+-------------------------------------------------+ 629 | wionn | A spatial symbol as 5 tokens, with 3 tokens for | 630 | | a writing symbol and 2 tokens for coordinates | 631 | | of top left placement | 632 +-----------------+-------------------------------------------------+ 633 | (wionn)* | Zero or more spatial symbols | 634 +-----------------+-------------------------------------------------+ 635 | Bnn(wionn)* | A Signbox with a preprocessed maximum | 636 | | coordinate and a list of spatial symbols used | 637 | | for horizontal writing | 638 +-----------------+-------------------------------------------------+ 639 | [LMR] | A lane marker: either left, middle or right. | 640 +-----------------+-------------------------------------------------+ 641 | [LMR]nn(wionn)* | A Signbox in either the left, middle, or right | 642 | | lane with a preprocessed maximum coordinate and | 643 | | a list of spatial symbols used for vertical | 644 | | writing | 645 +-----------------+-------------------------------------------------+ 647 Table 9 649 The spatial signbox is assigned to a lane, has a preprocessed maximum 650 coordinate and zero or more writing symbols with X and Y coordinates 651 for each symbol. 653 2.4.1.1. Bounding Box 655 The symbols do not have a consistent width or height. The center of 656 a symbol can be safely assumed to be at half-width and half-height. 657 A bounding box for a symbol is based on the symbol width and height. 658 Each symbol has a defined width and height in a text file with 37,811 659 lines. Alternately, the symbol width and height can be calculated by 660 analyzing the glyphs in a TTF font file, using JavaScript or other 661 language. 663 The bounding box of a sign is a tight box around the symbols. The 664 bounding box is used to determine the width and height of a sign. 665 The center of a bounding box is coordinate 500,500. 667 The bounding box of a sign consists of four values: Minimum X, 668 Minimum Y, Maximum X and Maximum Y. The values of the bounding box 669 is taken straight from the coordinates in an Formal SignWriting word. 671 2.4.1.2. Maximum Coordinate 673 The maximum coordinate for a Signbox is pre-calculated to simplify 674 layout for width, height, and center. For each symbol, the width of 675 height of that symbol is added to the coordinate position of that 676 symbol. These new coordinate values represent the bottom-right 677 coordinate of each symbol bounding box. The maximum X value is 678 joined with the maximum Y value to determine the maximum coordinate. 680 2.4.1.3. Centering a Sign 682 To simplify layout and improve 2-dimensional searching, every sign 683 has a normalized center based on symbol type, size, and mathematical 684 formula. The vertical center is based on the center of the bounding 685 box around the head symbols. The horizontal center is based on the 686 center of the bounding box around the head and trunk symbols. If a 687 sign doesn't contain head or trunk symbols, then the bounding box of 688 all symbols is used. For the symbol ranges see Table 6 690 Once the center of a sign has been determined, the symbols are moved 691 so that the center is coordinate 500,500. 693 2.4.2. Temporal Prefix 695 The temporal prefix is a one-dimensional list of symbols that is 696 written by an author. The arrangement of the symbols is based on a 697 particular theory of sorting. The order of the symbols in the 698 temporal prefix is significant because sorting is possible with a 699 binary string comparison. The temporal prefix is neither formatting 700 nor style and represents meaning not found in the spatial signbox. 702 Signs are written in 2-dimensional space which does not have a 703 normative 1-dimensional order. Any 1-dimensional order of 704 2-dimensional space is subjective. Some 1-dimensional orders may be 705 canonical according to a particular theory, but there are a variety 706 of theories on setting a 1-dimensional order. 708 The temporal prefix will use the same symbols that are used in the 709 spatial signbox, but it does not need to use all of them and it is 710 not limited to only those symbols. The temporal prefix is a list of 711 writing symbols and/or detailed location symbols that identify 712 temporal order and additional analysis. A valid sequence must 713 contain at least one symbol and can not contain punctuation. 715 The temporal prefix allows for sorting that is universally supported 716 through binary string comparison. 718 There are several theories on the best way to structure a temporal 719 prefix. The most productive is based on the SignSpelling Sequence 720 theory of Valerie Sutton. A temporal prefix is structured as a 721 series of beginning handshapes, followed by transitional movements 722 and dynamics that lead to the next set of handshapes. This pattern 723 continues until the end of the sign. The last section of the 724 temporal prefix should contain symbols of of type "head", "trunk", 725 and "limb". 727 Detailed location symbols of type "location" can be used in a 728 temporal prefix, but are rarely (if ever) needed for general writing. 730 A temporal prefix can be described with 5 tokens. 732 Temporal Prefix Tokens 734 +---------------+---------------------------------------------------+ 735 | Token | Description | 736 | Patterns | | 737 +---------------+---------------------------------------------------+ 738 | A | Sequence Marker | 739 +---------------+---------------------------------------------------+ 740 | w | Writing BaseSymbols | 741 +---------------+---------------------------------------------------+ 742 | s | Detailed Location BaseSymbols | 743 +---------------+---------------------------------------------------+ 744 | i | Fill Modifiers | 745 +---------------+---------------------------------------------------+ 746 | o | Rotation Modifiers | 747 +---------------+---------------------------------------------------+ 748 | (A([ws]io)+)? | An optional temporal prefix to be used as a | 749 | | prefix for a Signbox | 750 +---------------+---------------------------------------------------+ 752 Table 10 754 The temporal prefix starts with a sequence marker and includes an 755 ordered list of writing symbols and detailed locations. 757 2.5. Styling String 759 The styling string of Formal SignWriting uses a lite markup to define 760 a variety of styling options. The styling string is the same for FSW 761 and SWU. The entire sign can be customized for padding, coloring, 762 and size. Individual symbols within a sign can be customized for 763 coloring and size. For SVG output, class names and IDs can be 764 defined. A styling string can be added to the end of any Formal 765 SignWriting string to style a particular sign. 767 Colors can be written as CSS color names or as color hex values. 769 CSS Color Names: [a-zA-Z]+ 771 Color Hex Values: [0-9a-fA-F]{3}([0-9a-fA-F]{3})? 773 The styling string is divided into 3 sections: one for the entire 774 sign, one for individual symbols, and one for SVG class names and ID. 775 The styling string starts with a single dash, after which is the 776 section about the entire sign. A second dash, if present, marks the 777 start of the section about the individual symbols. A third dash, if 778 present, marks the start of the section about the SVG class names and 779 ID. The order of the styling options is important. 781 Styling String: -C?(P[0-9]{2})?(G_([0-9a-fA-F]{3}([0-9a-fA- 782 F]{3})?|[a-zA-Z]+)_)?(D_([0-9a-fA-F]{3}([0-9a-fA-F]{3})?|[a-zA- 783 Z]+)(,([0-9a-fA-F]{3}([0-9a-fA-F]{3})?|[a-zA- 784 Z]+))?_)?(Z([0-9]+(\.[0-9]+)?|x))?(-(D[0-9]{2}_([0-9a-fA-F]{3}([0- 785 9a-fA-F]{3})?|[a-zA-Z]+)(,([0-9a-fA-F]{3}([0-9a-fA-F]{3})?|[a-zA- 786 Z]+))?_)*(Z[0-9]{2},[0-9]+(\.[0-9]+)?(,[0-9]{3}x[0-9]{3})?)*)?(-- 787 ?[_a-zA-Z][_a-zA-Z0-9-]{0,100}( -?[_a-zA-Z][_a-zA- 788 Z0-9-]{0,100})*!([a-zA-Z][_a-zA-Z0-9-]{0,100}!)?)? 790 2.5.1. Entire Sign 792 There are several options for styling an entire sign. 794 C Colorize 796 P Padding 798 G Background 800 D Detail colors 802 Z Zoom level 804 2.5.1.1. Colorize 806 Colorizing a sign will set the color of each symbol based on its 807 classification. 809 Hand 0000CC 811 Movement CC0000 813 Dynamic FF0099 815 Head 006600 817 Body 000000 819 Detailed Location 884411 821 Punctuation FF9900 822 +----------------+----------------------------------+ 823 | Styling String | Description | 824 +----------------+----------------------------------+ 825 | -C | Colorize the symbols of the sign | 826 +----------------+----------------------------------+ 828 Table 11 830 2.5.1.2. Padding 832 Padding is applied around the entire sign. A two-digit number is 833 used to set the padding. 835 +----------------+--------------------------------+ 836 | Styling String | Description | 837 +----------------+--------------------------------+ 838 | -P01 | A padding of 1 around the sign | 839 +----------------+--------------------------------+ 841 Table 12 843 2.5.1.3. Background 845 By default, the background of a sign is transparent. The background 846 color can be set with a CSS color name or with a color hex value. 847 The color name or value must be surrounded by underscores. 849 +----------------+-----------------------------------+ 850 | Styling String | Description | 851 +----------------+-----------------------------------+ 852 | -G_lightblue_ | Background color of light blue. | 853 +----------------+-----------------------------------+ 854 | -G_f00_ | Background color as 3 hex values. | 855 +----------------+-----------------------------------+ 856 | -G_ff0000_ | Background color as 6 hex values. | 857 +----------------+-----------------------------------+ 859 Table 13 861 2.5.1.4. Detail Colors 863 By default, each symbol has a line color of black and a fill color of 864 white. The line color for all of the symbols can be set with a CSS 865 color name or with a color hex value. The color name or value must 866 be surrounded by underscores. Setting the fill color is optional. 867 To set the fill color, put a comma and the fill color after the line 868 color but before the closing underscore. 870 +----------------+------------------------------------------------+ 871 | Styling String | Description | 872 +----------------+------------------------------------------------+ 873 | -D_red_ | Line color of red. | 874 +----------------+------------------------------------------------+ 875 | -D_red,yellow_ | Line color of red with a fill color of yellow. | 876 +----------------+------------------------------------------------+ 878 Table 14 880 2.5.1.5. Zoom Level 882 By default, a sign is set to zoom level 1. The zoom level can be set 883 with an integer or a decimal number. 885 Alternatively, the zoom level can be set to lower-case 'x', for 886 extendable. The SVG created will not specify the width or height, so 887 that the sign image will fill whatever container it is placed inside. 889 +----------------+--------------------------+ 890 | Styling String | Description | 891 +----------------+--------------------------+ 892 | -Z2 | Zoom level of 2 | 893 +----------------+--------------------------+ 894 | -Z15.7 | Zoom level of 15.7 | 895 +----------------+--------------------------+ 896 | -Zx | Zoom level of extendable | 897 +----------------+--------------------------+ 899 Table 15 901 2.5.2. Individual Symbols 903 There are two options for styling individual symbols. Individual 904 symbols are identified by a two-digit number, which identifies the 905 order the symbol appears in the Signbox. 907 D Detail colors 909 Z Zoom level 911 2.5.2.1. Detail Colors 913 By default, each symbol has a line color of black and a fill color of 914 white. The line color for an individual symbol can be set with a CSS 915 color name or with a color hex value. The color name or value must 916 be surrounded by underscores. Setting the fill color is optional. 918 To set the fill color, put a comma and the fill color after the line 919 color but before the closing underscore. 921 +----------------------+--------------------------------------------+ 922 | Styling String | Description | 923 +----------------------+--------------------------------------------+ 924 | --D01_red_ | First symbol line color of red. | 925 +----------------------+--------------------------------------------+ 926 | --D01_red,yellow_ | First symbol line color of red with a fill | 927 | | color of yellow. | 928 +----------------------+--------------------------------------------+ 929 | --D01_red_D02_green_ | First symbol line color of red and second | 930 | | symbol line color of green. | 931 +----------------------+--------------------------------------------+ 933 Table 16 935 2.5.2.2. Zoom Level 937 By default, each symbol is set to zoom level 1. The zoom level of 938 individual symbols can be set with an integer or a decimal number. 940 Additionally, an offset coordinate can be specified with an 941 individual symbol's zoom level. The offset coordinate of 500x500 is 942 considered no offset for either the x or y value. 944 +-------------------+-----------------------------------------------+ 945 | Styling String | Description | 946 +-------------------+-----------------------------------------------+ 947 | --Z03,2 | Third symbol zoom level of 2 | 948 +-------------------+-----------------------------------------------+ 949 | --Z04,15.7 | Fourth symbol zoom level of 15.7 | 950 +-------------------+-----------------------------------------------+ 951 | --Z04,1.5,480x500 | Fourth symbol zoom level of 1.5 with a -20 | 952 | | offset applied to the X value of the symbol's | 953 | | placement coordinate. | 954 +-------------------+-----------------------------------------------+ 956 Table 17 958 2.5.3. SVG Class Names and ID 960 When using SVG, there are two additional styling options of class 961 names and ID. 963 {class names}! SVG Class Names 965 {ID}! SVG ID 966 Both class names and ID use a restricted ASCII subset. 968 class names -?[_a-zA-Z][_a-zA-Z0-9-]{0,100}( -?[_a-zA-Z][_a-zA- 969 Z0-9-]{0,100})* 971 ID [a-zA-Z][_a-zA-Z0-9-]{0,100} 973 Each SVG can be created with a list of class names separated by 974 spaces, ending in an exclamation (!) mark. After the class names 975 exclamation mark, an ID can be written followed by another 976 exclamation mark. 978 +---------------------+---------------------------------------------+ 979 | Styling String | Description | 980 +---------------------+---------------------------------------------+ 981 | ---glowing! | A class name of "glowing" | 982 +---------------------+---------------------------------------------+ 983 | ---flashing | Two class names of "flashing" and | 984 | primary! | "primary". | 985 +---------------------+---------------------------------------------+ 986 | ---!cursor! | SVG created with an ID of "cursor" | 987 +---------------------+---------------------------------------------+ 988 | ---flashing!cursor! | SVG created with a class name of "flashing" | 989 | | and an ID of "cursor" | 990 +---------------------+---------------------------------------------+ 992 Table 18 994 2.6. Query Language 996 The query language of Formal SignWriting allows for precise searching 997 of signs written in either FSW or SWU. A query string is a concise 998 representation for a much larger and detailed set of regular 999 expressions. The regular expressions can be used to quickly and 1000 accurately search large files and databases containing Formal 1001 SignWriting. 1003 A filter and repeat pattern of searching is used as a series of match 1004 criteria. A file, database, or text input is searched using a 1005 sequence of steps. Each step applies a single match criteria. 1006 Matching results are collated and the next search criteria is 1007 applied. The pattern of searching the previous results continues 1008 until all regular expressions have been used. 1010 The query language of Formal SignWriting is different for FSW and 1011 SWU, but allows for the same searching strategies. Any FSW string 1012 and SWU string can easily be converted into several different query 1013 string, depending on the search parameters. 1015 There are two main sections of a query string. The first searches 1016 the spatial signbox. The second searches the temporal prefix. Both 1017 sections use the same definition for a symbol or a range. 1019 The symbol search can match an exact symbol, or a set of symbols with 1020 an unspecified fill or rotation. 1022 With FSW, the fill and rotation modifiers of a symbol key can be 1023 replaced with the "u" character as a wildcard. The "u" stands for 1024 unknown and will match all values rather than a specific character. 1026 With SWU, the letters "f' or "r" can be written after a symbol to 1027 indicate an unspecified fill or rotation respectively. 1029 The range search can match a range of base symbols. The base symbol 1030 range consists of 2 values: the starting base symbol and the ending 1031 base symbol. Every symbol between these 2 base symbols will be 1032 matched. 1034 Symbol Search in FSW: S[123][0-9a-f]{2}[0-5u][0-9a-fu] 1036 Symbol Search in SWU (UTF-16): ((\uD8C0[\uDC01-\uDFFF])|([\uD8C1-\uD 1037 8FC][\uDC00-\uDFFF])|(\uD8FD[\uDC00-\uDC80]))f?r? 1039 Range Search in FSW: R[123][0-9a-f]{2}t[123][0-9a-f]{2} 1041 Symbol Search in SWU (UTF-16): R((\uD8C0[\uDC01-\uDFFF])|([\uD8C1-\u 1042 D8FC][\uDC00-\uDFFF])|(\uD8FD[\uDC00-\uDC80]))((\uD8C0[\uDC01-\uDF 1043 FF])|([\uD8C1-\uD8FC][\uDC00-\uDFFF])|(\uD8FD[\uDC00-\uDC80])) 1045 At the end of the query string is an optional styling string flag 1046 represented by a dash (-). If present, the Formal SignWriting 1047 strings will include any styling strings. If the styling string flag 1048 isn't included, the query string will only find plain text Formal 1049 SignWriting strings without the styling string. 1051 The full query string definition allows for the possibility of 1052 searching the temporal prefix and the spatial signbox at the same 1053 time. 1055 Query String in FSW: Q((A(S[123][0-9a-f]{2}[0-5u][0-9a-fu]|R[123][0- 1056 9a-f]{2}t[123][0-9a-f]{2})+)?T)?(S[123][0-9a-f]{2}[0-5u][0-9a- 1057 fu]([0-9]{3}x[0-9]{3})?|R[123][0-9a-f]{2}t[123][0-9a- 1058 f]{2}([0-9]{3}x[0-9]{3})?)*(V[0-9]+)?-? 1060 Query String in SWU (UTF-16): Q((A(((\uD8C0[\uDC01-\uDFFF])|([\uD8C1 1061 -\uD8FC][\uDC00-\uDFFF])|(\uD8FD[\uDC00-\uDC80]))f?r?|R((\uD8C0[\u 1062 DC01-\uDFFF])|([\uD8C1-\uD8FC][\uDC00-\uDFFF])|(\uD8FD[\uDC00-\uDC 1063 80]))f?r?((\uD8C0[\uDC01-\uDFFF])|([\uD8C1-\uD8FC][\uDC00-\uDFFF]) 1064 |(\uD8FD[\uDC00-\uDC80]))f?r?)+)?T)?((R((\uD8C0[\uDC01-\uDFFF])|([ 1065 \uD8C1-\uD8FC][\uDC00-\uDFFF])|(\uD8FD[\uDC00-\uDC80]))f?r?((\uD8C 1066 0[\uDC01-\uDFFF])|([\uD8C1-\uD8FC][\uDC00-\uDFFF])|(\uD8FD[\uDC00- 1067 \uDC80]))f?r?(\uD836[\uDC0C-\uDDFF]\uD836[\uDC0C-\uDDFF])?)|(((\uD 1068 8C0[\uDC01-\uDFFF])|([\uD8C1-\uD8FC][\uDC00-\uDFFF])|(\uD8FD[\uDC0 1069 0-\uDC80]))f?r?(\uD836[\uDC0C-\uDDFF]\uD836[\uDC0C-\uDDFF])?))*(V[ 1070 0-9]+)?-? 1072 2.6.1. Searching the Spatial Signbox 1074 The spatial signbox is a list of symbols with 2-dimensional 1075 placement. The query "Q" will find all signs regardless of the 1076 symbols used or their placement. 1078 It is possible to specify one or more symbols (or ranges of symbols) 1079 that must be included in the Signbox to indicate a match. The order 1080 of the symbols is not important. Each symbol (or range) can include 1081 an optional coordinate. The coordinate is a restriction on the 1082 match, such that a symbol must be used within a certain variance of 1083 the coordinate to qualify as a match. 1085 The variance is a number value, 0 or greater with a default value of 1086 20. A variance of 0 will only find symbols used at an exact 1087 coordinate. A variance of 5 will match the symbols used at a 1088 coordinate, plus or minus 5 for both X and Y numbers. 1090 Symbol Search with Optional Coordinate: S[123][0-9a-f]{2}[0-5u][0- 1091 9a-fu]([0-9]{3}x[0-9]{3})? 1093 Range Search with Optional Coordinate: R[123][0-9a-f]{2}t[123][0-9a- 1094 f]{2}([0-9]{3}x[0-9]{3})? 1096 Variance: (V[0-9]+)? 1098 Spatial Signbox Search Query: Q(S[123][0-9a-f]{2}[0-5u][0-9a- 1099 fu]([0-9]{3}x[0-9]{3})?|R[123][0-9a-f]{2}t[123][0-9a- 1100 f]{2}([0-9]{3}x[0-9]{3})?)*(V[0-9]+)? 1102 Spatial Signbox Query Examples 1104 +------------------+------------------------------------------------+ 1105 | Query | Description | 1106 +------------------+------------------------------------------------+ 1107 | Q | All signs | 1108 +------------------+------------------------------------------------+ 1109 | QS100uu | Signs with the index handshape in the spatial | 1110 | | signbox | 1111 +------------------+------------------------------------------------+ 1112 | QS100uu480x480 | Signs with the index handshape in the spatial | 1113 | | signbox used near coordinate (480,480) | 1114 +------------------+------------------------------------------------+ 1115 | QS100uu480x480V0 | Signs with the index handshape in the spatial | 1116 | | signbox used at the exact coordinate (480,480) | 1117 +------------------+------------------------------------------------+ 1118 | QS100uuR2fft36c | Signs with the index handshape and a symbol | 1119 | | from the head & face range | 1120 +------------------+------------------------------------------------+ 1122 Table 19 1124 2.6.2. Searching the Temporal Prefix 1126 The temporal prefix is a list of symbol keys. The query "QT" will 1127 find all signs that include a temporal prefix. 1129 It is possible to specify the start of the temporal prefix by 1130 identifying a series of symbols and/or ranges. The query will start 1131 with an "QA" and end with a "T", such as "QA...T". Between the "QA" 1132 and "T", a series of symbol searches and/or range searches will 1133 specify the desired start of the temporal prefix. The order of the 1134 symbols and ranges is important. 1136 Temporal Prefix Search Query: Q((A(S[123][0-9a-f]{2}[0-5u][0-9a- 1137 fu]|R[123][0-9a-f]{2}t[123][0-9a-f]{2})+)?T)? 1139 Temporal Prefix Query Examples 1141 +-------------------------+-----------------------------------------+ 1142 | Query | Description | 1143 +-------------------------+-----------------------------------------+ 1144 | QT | All signs that include the temporal | 1145 | | prefix | 1146 +-------------------------+-----------------------------------------+ 1147 | QAS100uuT | Signs with a temporal prefix that | 1148 | | starts with the index handshape | 1149 +-------------------------+-----------------------------------------+ 1150 | QAS100uuR100t204S20500T | Signs with a temporal prefix that | 1151 | | starts with the index handshape, | 1152 | | followed by any handshape, followed by | 1153 | | the single contact | 1154 +-------------------------+-----------------------------------------+ 1156 Table 20 1158 2.6.3. Including the Styling String 1160 At the end of the query string is an optional styling string flag 1161 represented by a dash (-). If present, the Formal SignWriting 1162 strings will include any styling strings. If the styling string flag 1163 isn't included, the query string will only find plain text Formal 1164 SignWriting strings without the styling string. 1166 Styling String Search Query: Q- 1168 Styling String Search Only: - 1170 Styling String Query Examples 1172 +-------+-----------------------------------------------------------+ 1173 | Query | Description | 1174 +-------+-----------------------------------------------------------+ 1175 | Q- | All signs including the styling strings when present | 1176 +-------+-----------------------------------------------------------+ 1177 | - | Only find styling string without including the Formal | 1178 | | SignWriting | 1179 +-------+-----------------------------------------------------------+ 1181 Table 21 1183 3. Technology Integration 1185 Formal SignWriting has been specifically designed to integrate with 1186 standard technology on the phone, tablet, and desktop. 1188 3.1. Fonts 1190 The Sutton SignWriting Fonts are available as source SVG and as three 1191 TrueType Font files. 1193 Sutton SignWriting Fonts 1194 Copyright (c) 1974-2017, Center for Sutton Movement Writing, inc 1195 Licensed under the SIL Open Font License v1.1 1197 The Sutton SignWriting TrueType fonts are available for download and 1198 installation. 1200 Installing the fonts using the instructions below is not required, 1201 but it will improve the user experience. If the fonts are not 1202 installed on the system, CSS declarations will install the fonts in 1203 the browser cache. 1205 3.1.1. Windows, Linux, and Mac 1207 Installation is straight forward for Windows, Linux and Mac. Simply 1208 download the TrueType fonts and install as usual. 1210 Sutton SignWriting Line TrueType Font [SuttonSignWritingFontLine] 1212 Sutton SignWriting Fill TrueType Font [SuttonSignWritingFontFill] 1214 Sutton SignWriting One-D TrueType Font [SuttonSignWritingFontOneD] 1216 3.1.2. Mac and iOS 1218 Installation is possible for Mac OS X and iOS with a configuration 1219 profile. The Sutton SignWriting Symbol configuration profile 1220 includes 2 fonts for SVG: SuttonSignWritingLine and 1221 SuttonSignWritingFill. The Sutton SignWriting One configuration 1222 profile includes the font SuttonSignWritingOneD. With the 1223 configuration profile installed, the Unicode Option 1 characters can 1224 be used throughout the operating system, even as file and folder 1225 names. 1227 Sutton SignWriting Symbol Configuration Profile 1228 [SuttonSignWritingFontSymbol] 1229 Sutton SignWriting One Configuration Profile 1230 [SuttonSignWritingFontOne] 1232 3.1.3. Android 1234 Android can not install the fonts directly onto the system. The CSS 1235 declarations below will install the fonts in the browser cache. 1237 3.2. Fonts and CSS 1239 The TrueType Fonts can be used without installing the fonts on any 1240 platform by defining two font-face statements. Simply include the 1241 following CSS in any HTML page to access the fonts. Make sure to 1242 replace the URLs with the fully qualified links for the fonts. 1244 @font-face { 1245 font-family: "SuttonSignWritingLine"; 1246 src: 1247 local('SuttonSignWritingLine'), 1248 url('https://.../SuttonSignWritingLine.ttf') format('truetype'); 1249 } 1250 @font-face { 1251 font-family: "SuttonSignWritingFill"; 1252 src: 1253 local('SuttonSignWritingFill'), 1254 url('https://.../SuttonSignWritingFill.ttf') format('truetype'); 1255 } 1256 @font-face { 1257 font-family: "SuttonSignWritingOneD"; 1258 src: 1259 local('SuttonSignWritingOneD'), 1260 url('https://.../SuttonSignWritingOneD.ttf') format('truetype'); 1261 } 1263 If the fonts are installed, then the system fonts will be used. If 1264 the fonts are not installed when a SignWriting Font page is opened, 1265 the CSS will cause the fonts to be automatically downloaded to the 1266 browser's cache on the first visit. Once the fonts are installed in 1267 the browser cache, they will remain there until the browser cache is 1268 emptied. Any webside that uses this CSS can access the browser 1269 installed font without requesting a new copy. The fonts are 18 MB, 1270 so the first page view make take a few seconds or longer depending on 1271 your download speed and processor. 1273 3.3. Scalar Vector Graphics 1275 Sutton SignWriting is a 2-dimensional script. The sign images are 1276 composed using Scalar Vector Graphic (SVG). 1278 3.3.1. Font Based SVG 1280 The conversion of Formal SignWriting to Scalar Vector Graphics 1281 requires three parts: header, text, and symbols. Consider the FSW 1282 string 1283 "M518x533S1870a489x515S18701482x490S20500508x496S2e734500x468". 1285 3.3.1.1. SVG Header 1287 The header section contains the SVG definition along with the width, 1288 height, and viewbox. The viewbox is a combination of the minimum X, 1289 minimum Y, width, and height. 1291 Minimum X: 482 1293 Maximum X: 518 1295 Width: 36 1297 Minimum Y: 468 1299 Maximum Y: 533 1301 Height: 65 1303 1306 If the width and height properties are not included, then the 1307 resulting SVG will automatically expand in size to fill the 1308 containing element on the screen. 1310 1313 3.3.1.2. SVG Text 1315 The SVG text section is included to make it possible to copy and 1316 paste Formal SignWriting strings. The font-size is set to zero to 1317 make the text invisible. 1319 1320 M518x533S1870a489x515S18701482x490S20500508x496S2e734500x468 1321 1323 3.3.1.3. SVG Symbols 1325 Each symbol in the Signbox is a combination of the symbol key and the 1326 positioning coordinate. 1328 Symbol 1: S1870a 489x515 1330 Symbol 2: S18701 482x490 1332 Symbol 3: S20500 508x496 1334 Symbol 4: S2e734 500x468 1336 Each spatial symbol is written as an SVG group and positioned by the 1337 transformation translate. 1339 ... 1340 ... 1341 ... 1342 ... 1344 Inside of each group, 2 text elements are written. The symbol fill 1345 is written first using the SuttonSignWritingFill font with a plane 16 1346 character. The symbol line is written second using the 1347 SuttonSignWritingLine font with a plane 15 character. See 1348 Section 2.3.3.2 for the formula to convert symbol keys to codepoints. 1350 1352 {plane 16 codepoint} 1353 1354 1356 {plane 15 codepoint} 1357 1359 3.3.2. Stand Alone SVG 1361 It is possible to request completed SVG images from the SignWriting 1362 Server [SignWritingServer]. The SVG images created by the 1363 SignWriting Server are stand-alone graphics that do not use the 1364 TrueType Fonts. The SVG images use path elements to define the 1365 symbol lines and curves. 1367 The SVG header and SVG text for the server-side images are the same 1368 as the standard FSW to SVG transformation. See Section 3.3.1 1370 The SVG symbols section is structured differently. Multiple SVG 1371 elements are contained within each sign SVG image. Each sub-SVG 1372 element uses X and Y coordinates to place each symbol. Consider the 1373 FSW string 1374 "M518x533S1870a489x515S18701482x490S20500508x496S2e734500x468". 1376 Symbol 1: S1870a 489x515 1378 Symbol 2: S18701 482x490 1380 Symbol 3: S20500 508x496 1382 Symbol 4: S2e734 500x468 1384 ... 1385 ... 1386 ... 1387 ... 1389 Inside of each sub-SVG element is a group (g) element with one or two 1390 path elements. This inside information can only be requested from 1391 the SignWriting Server or some other source of the symbol image data. 1393 1394 1395 1396 1398 3.4. HTML and CSS 1400 Basic HTML structures and CSS rules can be used with Sutton 1401 SignWriting for customization and layout. 1403 3.4.1. Centering and Sizing 1405 It is possible to center a symbol or sign within a div with a few CSS 1406 rules. The symbol or sign will automatically shrink in size if the 1407 containing div is smaller than the SVG image. Additionally, if the 1408 SVG is created with the zoom level of extendable (styling string 1409 "-Zx"), the symbol or sign will grow in size to fill as much of the 1410 containing div as possible. 1412
1413 1415 div.centered { 1416 position: relative; 1417 width: 10%; 1418 height: 10%; 1419 border: 1px solid black; 1420 } 1422 div.centered svg { 1423 position: absolute; 1424 display: block; 1425 top:2.5%; 1426 bottom: 2.5%; 1427 left: 2.5%; 1428 right: 2.5%; 1429 margin: auto; 1430 max-width: 95%; 1431 max-height: 95%; 1432 } 1434 3.4.2. Coloring Symbols and Signs 1436 Individual signs can be colored with CSS rules. The individual 1437 classes of 'sym-line' and 'sym-fill' can be used to isolate each part 1438 of a symbol, both positive and negative spaces, or the classes can be 1439 ignored to create the shadow of a symbol that includes both aspects 1440 of a symbol. 1442 1489 1490
1493 div.signtext { 1494 -webkit-writing-mode: vertical-lr; 1495 writing-mode: vertical-lr; 1496 font-size: 0%; 1497 border-left: 1px solid blue; 1498 height: 100%; 1499 } 1501 span.outside { border-left: 1px solid blue; vertical-align: top; } 1502 span.middle { vertical-align: bottom; } 1503 span.inside { border-left: 1px dashed red; } 1505 div.signtext div { 1506 writing-mode: horizontal-tb; 1507 display: inline-block; 1508 vertical-align: middle; 1509 padding: 20px; 1510 box-sizing: content-box; 1511 } 1513 4. Transformations 1515 Formal SignWriting and the surrounding technologies have been created 1516 to facilitate easy transformations between the various forms. 1518 4.1. Formal SignWriting to Query String 1520 Formal SignWriting strings have several natural transformations to 1521 query string. The transformation can use the temporal prefix and/or 1522 the spatial signbox. For each symbol, the query can include the 1523 exact symbol key, or the query can use a general symbol key where the 1524 fill and rotation modifiers are not explicitly defined. Consider the 1525 Formal SignWriting string 1526 "AS14c20S27106M518x529S14c20481x471S27106503x489". 1528 Exact Temporal Prefix Symbols: QAS14c20S27106T 1530 General Temporal Prefix Symbols: QAS14cuuS271uuT 1532 Exact Spatial Signbox Symbols: QS14c20S27106 1534 General Spatial Signbox Symbols: QS14cuuS271uu 1536 Exact Spatial Signbox Symbols with Location: 1537 QS14c20481x471S27106503x489 1539 General Spatial Signbox Symbols with Location: 1540 QS14cuu481x471S271uu503x489 1542 4.2. Query String to Regular Expression 1544 The transformation from query string to regular expressions has been 1545 fully implemented in the Sutton SignWriting JavaScript Library and 1546 the SignWriting Server. 1548 The query language to regular expressions generator uses the 1549 following regular expression structures as building blocks. 1551 Temporal Prefix Prefix: (A(S[123][0-9a-f]{2}[0-5][0-9a-f])+) 1553 Signbox Prefix: [BLMR]([0-9]{3}x[0-9]{3}) 1555 Spatial Symbols: (S[123][0-9a-f]{2}[0-5][0-9a-f][0-9]{3}x[0-9]{3})* 1557 The Temporal Prefix Prefix is a structural marker followed by one or 1558 more symbols. For the query string "QT", the prefix is required. 1559 For the general "Q", the prefix is optional so "?" is appended to the 1560 Temporal Prefix Prefix regular expression. 1562 The Signbox Prefix is a combination of structural marker and 1563 preprocessed maximum coordinate. Every constructed regular 1564 expression will include the Signbox Prefix. 1566 The Spatial Symbols is zero or more symbol definitions and associated 1567 coordinates. The Spatial Symbols regular expression is used for 1568 every search. For both "Q" and "QT", it is the only symbol matching 1569 used. When searching for specific symbols and ranges, the general 1570 Spatial Symbols definition will sandwich the specific search 1571 definitions. 1573 Searching for number ranges with regular expressions requires a 1574 unique technique. This technique requires five steps. 1576 Find a number between 122 and 455 1578 1) 10's don't match and the min 1's are not zero ( last number to 9): 1580 Match 12[2-9] 1582 2) Bring up the 10's if hundreds are different: Match 1[3-9][0-9] 1584 3) Bring up the 100's if different: Match [2-3][0-9][0-9] 1586 4) Bring up the 10's: Match 4[0-4][0-9] 1588 5) Bring up the 1's: Match 45[0-5] 1589 Final Match (12[2-9]|1[3-9][0-9]|[2-3][0-9][0-9]|4[0-4][0-9]|45[0-5]) 1591 For the styling string regular expression, see Section 2.5. 1593 5. Unicode Considerations 1595 In 2015, the Sutton SignWriting block was officially added to the 1596 Unicode standard. This block contains characters for representing 1597 the symbols of the ISWA 2010. Unfortunately, this encoding has 1598 several unresolved issues. The presentation Issues with SignWriting 1599 in Unicode 8 [Unicode8Issues] details why this encoding is 1600 incomplete, broken, and fictional. 1602 Discussions with the Unicode Technical Committee continue. The 1603 latest document submission is Design Options for Sutton SignWriting 1604 with examples and fonts [SuttonSignWritingOptions]. 1606 The Center for Sutton Movement Writing discourages the use of these 1607 characters as defined in the Unicode standard. This information is 1608 included for informational purposes only. 1610 5.1. Official Characters 1612 In 2015, the symbols of Sutton SignWriting were added to Unicode 1613 version 8. 1615 See Section 1.2 and Section 2.3.3 1617 +----------------------------+--------------------+ 1618 | Description | Unicode Range | 1619 +----------------------------+--------------------+ 1620 | Base Charcters | U+1D800 to U+1DA8B | 1621 +----------------------------+--------------------+ 1622 | Fill Modifiers 2 to 6 | U+1DA9B to U+1DA9F | 1623 +----------------------------+--------------------+ 1624 | Rotation Modifiers 2 to 16 | U+1DAA1 to U+1DAAF | 1625 +----------------------------+--------------------+ 1627 Table 22 1629 Each symbol key can be rewritten as 3 Unicode characters of a base, a 1630 fill, and a rotation. Given a symbol key as variable "key", in 1631 JavaScript the 3 characters can be derived with the following 1632 statements: 1634 var base = parseInt(key.substr(1,3),16) + parseInt('1D700',16); 1636 var fill = parseInt(key.substr(4,1),16) + parseInt('1DA9A',16); 1637 var rotation = parseInt(key.substr(5,1),16) + 1638 parseInt('1DAA0',16); 1640 5.2. 17 New Characters 1642 The addition of 17 Unicode characters to the official Unicode 1643 standard can complete the script encoding and cover 2-dimensional 1644 layout. 1646 +---------------------+--------------------+--------------------+ 1647 | Description | Formal SignWriting | Proposed Unicode | 1648 +---------------------+--------------------+--------------------+ 1649 | Fill Modifier 1 | 0 | U+1DA9A | 1650 +---------------------+--------------------+--------------------+ 1651 | Rotation Modifier 1 | 0 | U+1DAA0 | 1652 +---------------------+--------------------+--------------------+ 1653 | Numbers | 0 to 9 | U+1DAB0 to U+1DAB9 | 1654 +---------------------+--------------------+--------------------+ 1655 | Sequence Marker | A | U+1DABA | 1656 +---------------------+--------------------+--------------------+ 1657 | Signbox Markers | B | U+1DABB | 1658 +---------------------+--------------------+--------------------+ 1659 | Left Lane Markers | L | U+1DABC | 1660 +---------------------+--------------------+--------------------+ 1661 | Middle Lane Markers | M | U+1DABD | 1662 +---------------------+--------------------+--------------------+ 1663 | Right Lane Markers | R | U+1DABE | 1664 +---------------------+--------------------+--------------------+ 1666 Table 23 1668 Fill Modifier 1 and Rotation Modifier 1 are included to fix sorting 1669 and simplify processing. 1671 The 10 number characters express the concept of distance, important 1672 for use with 2-dimensional scripts. 1674 The 5 structural markers define cohesive units of the script. 1676 6. IANA Considerations 1678 None. 1680 7. Security Considerations 1682 None. 1684 8. References 1686 [SignWritingServer] 1687 Slevinski, S., "SignWriting Server", 1688 . 1690 [SuttonSignWritingFontFill] 1691 Slevinski, S., "Sutton SignWriting Fill TypeType Font", . 1695 [SuttonSignWritingFontLine] 1696 Slevinski, S., "Sutton SignWriting Line TypeType Font", . 1700 [SuttonSignWritingFontOne] 1701 Slevinski, S., "Sutton SignWriting One Configuration 1702 Profile", . 1705 [SuttonSignWritingFontOneD] 1706 Slevinski, S., "Sutton SignWriting One-D TypeType Font", < 1707 https://cdn.rawgit.com/Slevinski/SuttonSignWriting/master/ 1708 assets/SuttonSignWritingOneD.ttf>. 1710 [SuttonSignWritingFontSymbol] 1711 Slevinski, S., "Sutton SignWriting Symbol Configuration 1712 Profile", . 1715 [SuttonSignWritingOptions] 1716 Slevinski, S., "Sutton SignWriting Design Options", 1717 . 1720 [SuttonSignWritingProject] 1721 Slevinski, S., "Sutton SignWriting Project", 1722 . 1724 [Unicode8Issues] 1725 Slevinski, S., "Issues with SignWriting in Unicode 8", 1726 . 1729 Author's Address 1731 Stephen E Slevinski Jr 1732 Center for Sutton Movement Writing 1734 Email: slevinski@signwriting.org