CS 411W Lab II Prototype Product Specification For Sequoyah Matt Hines, Black Group Date: April 13, 2015 Hines 3/25/2015 Table of Contents 1 Introduction .......................................................................................................................................... 3 1.1 Purpose ............................................................................................................................................. 3 1.2 Scope ................................................................................................................................................. 4 1.3 Definitions, Acronyms, and Abbreviations........................................................................................ 4 1.4 References ........................................................................................................................................ 5 1.5 Overview ........................................................................................................................................... 5 2 General Description .............................................................................................................................. 6 2.1 Prototype Architecture Description .................................................................................................. 6 2.2 Prototype Functional Description ..................................................................................................... 6 2.3 External Interfaces ............................................................................................................................ 7 2 Hines 3/25/2015 1 Introduction Communication is the lifeblood of any successful civilization. This is evident by the fact that there are over 7000 unique languages around the world (Alliance for Linguistic Diversity, n.d.). While some of these languages have a formal writing system, many do not. It is estimated that 40% of languages are at risk of disappearing and a large portion of those to become extinct as their speakers die out (Alliance for Linguistic Diversity, n.d.). Sequoyah is a tool that serves to preserve languages through a written form. Sequoyah gives language speakers the ability to create a syllabary of their language that can be saved long after the spoken form is gone. The syllabary is used as the basis for words and meaning in the written form. 1.1 Purpose Sequoyah is a tool for creating syllabaries, collections of syllables. Syllables are phoneme pairs with one consonant and a vowel. These are used to build words. Phonemes are units of sound broken into consonants and vowels. Syllabaries form half of a written language, the other being words and structure. Syllabaries are incredibly useful as they form the base of the entire language, forming words and meaning. However, syllabaries do not contain grammar and therefore cannot be used by themselves. Grammars are the rules of a language and dictate how syllables make words and in turn how words make a language. Sequoyah only solves the syllabary problem. Sequoyah was originally conceived for the Nottoway tribe of Virginia who agreed to be a case study. The Nottoway had previously worked on projects for Old Dominion University’s Computer Science department and are eager to play a part in the development of tools relating to language preservation. The Nottoway language is currently considered extinct as there are fewer than 200 known words and the tribe would like to see their language revived (Nottoway Indian Language (Cheroenhaka), n.d.). 3 Hines 3/25/2015 1.2 Scope Sequoyah provides all of the tools necessary to create a digital version of a written language. Sequoyah’s main component is the syllabary grid. This grid provides the author of the language with the ability to create a digital font. Each cell in this grid is a single syllable, designated as a consonant-vowel pair. A vector font editor will be provided, enabling the user to create shapes for each character, with the option to import existing shapes from other tools. Sequoyah also provides the ability to export a TrueType font from the created characters as well as generating a keyboard layout. The editor also provides the ability to preview what the syllables would sound like when spoken. 1.3 Definitions, Acronyms, and Abbreviations API (Application Programming Interface) – The code interface provided by a piece of software for other software to interact with it. Controller - A class with methods designed to process user web requests and combine stored database information with a view to present a page to the user. Controller Action - A procedure provided by an MVC controller that processes and services a user’s web request. HTML5 (Hypertext Markup Language Version 5) – A markup language that describes the structure of a web page. Version 5 is the latest standard with many new features to enable fluid, feature-rich web applications. JavaScript – A programming language embedded into web pages that enables interactivity with a page. MySQL – An SQL (Structured Query Language) database server that enables storage of structured data in database tables. Phoneme - A unit of sound, such as ‘a’, ‘e’,‘s’, ‘ch’. Divided into vowels and consonants. PHP (PHP Hypertext Processor) – A programming language designed to process user web requests and connect database data to HTML that is sent to a user’s web browser. It 4 Hines 3/25/2015 allows web pages to save and load data to and from web servers. SVG (Scalable Vector Graphics) – A graphics format that makes use of primitive shapes instead of pixel maps to ensure non-pixelation upon zooming in. Syllabary - A set of symbols each representing one syllable, with a pattern of consonant and vowel phonemes (usually a consonant followed by a vowel). Syllable - A combination of phonemes that makes up a unit of speech (‘pa’, ‘cha’, ‘se’). TrueType – A font standard developed by Apple and Microsoft used today in virtually all operating systems. View - an HTML template that is filled with data to present a final page to a web browser. 1.4 References Ager, S. (n.d.). Cherokee syllabary (ᏣᎳᎩ / Tsalagi). Retrieved from Omniglot: http://www.omniglot.com/writing/cherokee.htm Alliance for Linguistic Diversity. (n.d.). About the project. Retrieved from The Endangered Laguages Project: http://www.endangeredlanguages.com/about/ Brown, P., Cotnoir, C., Goodall, N., Headen, Q., Hines, M., & Phelps, N. (2014). Sequoyah Product Description. Old Dominion University, Department of Computer Science. Retrieved from http://www.cs.odu.edu/~cpi/old/410/blackf14/documents/CS410Black_Fall2014_Lab1.p Nottoway Indian Language (Cheroenhaka), (n.d.). Retrieved from Native Languages: http://www.nativelanguages.org/nottoway.htm 1.5 Overview Sections two and three (below) provide the product specification and a general description of the requirements of the prototype. Section two covers descriptions of the prototype’s architecture, functions it aims to provide, and an overview of the interfaces that Sequoyah utilizes. Section three covers functional requirements. 5 Hines 3/25/2015 2 General Description Sequoyah’s prototype is planned to contain all of the features of the completed version. These features include syllable editing, custom phoneme selection, playing audio samples of syllables, project management, and TrueType generation. There are also features, mainly for testing, in the prototype that will not be present in the final version. 2.1 Prototype Architecture Description Sequoyah is a mostly self-contained project that only requires a web server to run on and an external database to interact with. The site can be run multiple times on one server if a test environment is desired. Each website can have its own database and is, if using its own database, completely isolated. The prototype will be running exclusively as a test version on the development server and will provide means for users to supply feedback. Both version also contain an interactive user manual. The guide will walk the user through creating a language using Sequoyah. It includes every detail to create a project, syllabary, and syllables. It does not provide a guide to being an artist however. All tutorials will be visual to show the user what is required rather than forcing the user to try and interpret definitions in a paper manual. 2.2 Prototype Functional Description Project management is the first step in the process of creating a font. Projects allow creators to have collaborators, but also restrict visibility, and editing capabilities. Projects can have any number of collaborators and each collaborator can be allowed to view the syllabaries, edit them, or administrate other collaborators. Projects also house syllabaries. Each project can have an unlimited number of syllabaries, each unique. Syllabaries are the individual fonts for the project. Syllabary creation utilizes many functions of the site. The syllabary is made up of a grid of phonemes and phoneme pairs that make syllables. Each cell is a single syllable and contains a written 6 Hines 3/25/2015 syllable, graphical symbol, and audio sample. Syllable symbols can be generated by editing either phoneme that it contains or manually editing it with the built-in font editor (described below) or by importing an SVG file. Syllables that have already been created are added to a palette that can be used to base other characters. The font editor is a third-party component that provides the ability to edit shapes of each individual character and save it to the database. The font editor allows for vector fonts to be created. Shapes in the editor can be moved, rotated, resized, and morphed. Saving is done automatically every time the shape is modified to minimize potential loss in the event of connection failure. The audio samples used for each syllable are generated from the phonemes that make up the syllable. Audio samples are automatically generated by giving a pronunciation guide for the phoneme (However, by default, the editor uses the IPA set, which provides pre-defined phonemes). Audio samples can also be uploaded to the server. When a request to play the sample is given, the audio is automatically mixed on the server via third-party library and is downloaded to the client to play. All of the server software will be running PHP, or be interacted with through PHP. All of the front end that the client sees will use HTML 5 where possible and other fallbacks if necessary. The prototype has extra features built into the client’s front-end to allow easier access to back-end data for testing. 2.3 External Interfaces Sequoyah utilizes both hardware and software. The hardware requires at least one computer capable of running a server with PHP support and some sort of database management system, such as MySQL. The web server runs on the server and houses the Sequoyah application. The user must have a modern web browser that supports HTML 5. The user will connect to the Sequoyah application through the Sequoyah website and the website will automatically handle communication to/from the server. The Sequoyah uses a few other third-party libraries including a font editor, TrueType font generator, and 7 Hines 3/25/2015 audio generator. The website will use almost exclusively HTML to present the editor, occasionally using native dialogs where necessary, such as for opening and saving files. The application will also provide the capability to download the finished font, which will be created via third-party software on the server. 8