Lab 2 - ODU Computer Science

advertisement
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
Download