Lab 1 – ELDERS Product Description ELDERS - 1 ELDERS Prototype Specification Purple Team Old Dominion University CS 411 - Brunelle Terry Stilwell April 8, 2013 Version 1 Contents Lab 1 – ELDERS Product Description 1 2 3 Introduction 1.1 Purpose 1.2 Scope 1.3 Definitions, Acronyms, and Abbreviations 1.4 References 1.5 Overview General Description 2.1 Prototype Architecture Description 2.2 Prototype Functional Description 2.3 External Interfaces Specific Requirements 3.1 Functional Requirements 3.1.1 User Account Requirements 3.1.2 User Interface Requirements 3.2 Assumptions and Constraints 3.3 Non-Functional Requirements 3.3.1 Database Requirements 3.3.2 Security 3.3.3 Maintainability 3.3.4 Reliability ELDERS - 2 Lab 1 – ELDERS Product Description ELDERS - 3 Appendix List of Figures Figure 1 - Sitemap……………………………………………………………………………...11 Figure 2 – MFCD Prototype………………………………………………………………………12 Figure 3 – MFCD Product…………………………………………………………………………25 List of Tables Table 1 - Prototype VS Product …………………………………………………………………..24 Lab 1 – ELDERS Product Description 1 ELDERS - 4 Introduction Language is defined by words and their pronunciations, as well as the methods of combining them used and understood by a community. Worldwide, there are currently 7,000 languages in existence (Staff). This number means that billions of people are communicating in a number of unique ways. It also reflects the establishment of various cultures associated with those languages. However, by the next century, half of them will be extinct or even endangered (Staff). This is the case for the Nottoway language, which is the focus area for the project. The Nottoway language, although no longer spoken, is still part of the culture of the tribe. Documentation shows that these people have been living in the Tidewater region from as early as the 1650’s (Elliott). Around that time, however, only about 500 members spoke the language. Due to the aggression of other tribes and social suppression in the 1800’s, the Nottoway started to dissimilate. Currently, there are about 200 Nottoway people residing at Surry County who are experiencing several issues with the language (Morris). One of the major problems they face is that support for the language is scarce. This applies to documentation and also professional assistance. Several documents, ordered by Thomas Jefferson, were recorded that list pronunciations of about 250 Nottoway words (Elliott). This makes communication difficult due to their ambiguity. Besides a few additions in the 1830’s, there exist no other written resources for the language (Morris). To complicate things even more, there is not an alphabet included with this documentation. Furthermore, there have been multiple attempts of requesting linguistic and financial aid from organizations but each one has been denied. Lab 1 – ELDERS Product Description ELDERS - 5 In order to mitigate these issues, several solution characteristics can be evaluated. Firstly, there should a free system in place to give the Nottoway tribe assistance. This should come in the form of an educational, easily accessible program that is well documented. Also, communal involvement from the Nottoway members will be essential. With these factors in mind, a product called ELDERS has been proposed. Purpose ELDERS stands for Endangered Languages Documentation Extension and Revival System. It is the system responsible for aiding in the reconstruction of languages. It will focus on storing the original language derived from the documentation that is present, expanding it by creating an alphabet and new words, and providing the tools necessary for teaching the language to others. This will be accomplished by storing the information on an online database accessible through a GUI frontend and will stress the involvement from the Nottoway community. The database will be the primary backbone for ELDERS. It will contain at least two tables. One of those will store what is currently documented in the Nottoway language. This will be known as the Classical Dictionary. After it has been populated, it will not be touched. The tribal leaders made it very clear that they want to preserve the classical aspects of the language. Then, a second table will be created called the Expanded Dictionary. This is where the changes to the language will be stored. Any additions, modifications, or removal of words will take place in this table. Education is a major component of this project. Digitally documenting the language is beneficial, but it would be ideal for people to be able to learn from it as well. Language lessons Lab 1 – ELDERS Product Description ELDERS - 6 will be offered in the forms of video lectures and interactive modules. It is essential to have some historical information on the tribe too. Effective communication is the key for documenting an endangered language. The same goes for attempting to learn one. The Nottoway people still wanted to feel as if the language was their own (Morris). One way to accomplish this is to get them involved with the restoration process. This could be done through a message board, forum, or chat (Stilwell). Scope The main goal for the prototype is to create a digital source of documentation for the Nottoway language. This documentation must be detailed and come in the form of the alphabet, dictionaries, and history. It is important to note that there will be an initial archival process for the language as it currently exists. Also, with all that information, the culture will be preserved and, hopefully, the community will openly participate in these processes. The tribe does not want their information to be publicly available. Therefore, user restrictions will be in place to make sure that only the members of the Nottoway Tribe and those they grant access to may view the language. The same reason applies to modifying the language (Stilwell). Definitions, Acronyms, and Abbreviations ELDERS: Endangered Languages Documentation Extension and Revival System LAMP: Linux, Apache, MySQL, PHP Graphical User Interface (GUI): How the end user will interact with the application. HTTP: Hyper Text Transfer Protocol Lab 1 – ELDERS Product Description ELDERS - 7 HTTPS: Hyper Text Transfer Protocol Secure Linux: A free, widely-available open-source operating system. MySQL: the world’s most used RDBMS. Structured Query Language (SQL): standard for accessing and manipulating databases Tables: Logical collections of data stored on a database server. RDBMS: Relational Database Management System. Historic Dictionary: information that currently exists in the Nottoway language. Expanded Dictionary: any word changes, modifications, or removals in the Nottoway language. Council: tribal members responsible for voting and managing word changes or additions. References Brophy, Natalia. "Why Is Language Important to Culture?" Bright Hub Education. N.p., 19 Dec. 2010. Web. 18 Feb. 2013. <http://www.brighthubeducation.com/language-learningtips/99894-why-language-is-important-to-culture/>. Elliott, Archie. "Nottoway Indian Tribe of Virginia." Nottoway Indian Tribe of Virginia. N.p., n.d. Web. 18 Feb. 2013. <http://www.nottowayindians.org/aboutus/history.html>. Morris, J.D. Personal Interview. 5 Dec. 2012. Staff, The Week. "Save Dying Languages." The Week. N.p., 22 June 2012. Web. 18 Feb. 2013. <http://theweek.com/article/index/229695/googles-next-mission-save-dying-languages>. Stilwell, Terry. Lab I - ELDERS Product Description. Tech. N.p.: n.p., n.d. Print. Overview Lab 1 – ELDERS Product Description ELDERS - 8 The rest of the Product Specification contains detailed information for ELDERS. This includes the major components comprised from the hardware and software. Additionally, two algorithms and multiple external interfaces will be in place. (This space intentionally left blank) 2 General Description ELDERS gives the Nottoway people a way to interact with their language. This is made possible through the web interface. They are given several options at this level, such as Lab 1 – ELDERS Product Description ELDERS - 9 searching for a word or adding one. However, these processes are transparently connected to the Nottoway database, which stores the syllabary and words of the language. 2 Prototype Architecture Description The ELDERS project utilizes several open source out-of-the-box software components collectively known as a LAMP stack. Specifically in the project’s domain, this stands for Linux, Apache, MySQL, and PHP. The Ubuntu 12.04 distribution will be used since it is the latest Long Term Support (LTS). Additionally, Apache will be used as the web server, MySQL as the relational database management system (RDBMS), and PHP as the scripting language responsible for dynamic web pages. Fortunately for the administrators, each of these is provided as up-to-date packages in Ubuntu and offer user-friendly interfaces for configuration, such as phpMyAdmin for example. ELDERS is made up of two major functional hardware components. Simply put, our project will make use of a client and a server. For the product, the server will be hosted through a third party company. Recommended specifications for the server are about two to four GB of RAM and at least 30 GB of hard drive space. As for the client, the hardware includes but is not limited to desktop computers, laptops, smart phones, and tablets. For the mobile devices, an application will be developed. However, as long as a device has a web browser, then the content will still be accessible. Since an overview of the backend hardware and software has been established, it is important to identify the components interfacing between them and the users. For the database, as previously stated, there will be two separate tables created. There will be a tool on the website which will allow for the users to view the Classical and Expanded Dictionaries. The database will also store the alphabet. Lab 1 – ELDERS Product Description ELDERS - 10 Access control is essential for a number of reasons. For example, the Nottoway people do not want ELDERS open to the public. Therefore, authentication must be used in order to give registered users access to the information. LDAP is one implementation of this strategy. Not only is this used for authentication, but it can also be setup for authorization and user provisioning. For example, users can be split up into different groups, such as Administrators, Tribal Members, and Council Members. There are several parts of the website that compose other major aspects of the project too. Some have already been mentioned, such as the education, history, and communication parts. The first is a page that allows registered users to view the alphabet and the dictionary. Also, there will be the ability to propose new words for the language. This will be done through an interface which will lead to a Council vote. Afterward, members of the Council will have access to managing the dictionary. If a change occurs, registered users will be notified (Stilwell). A sitemap can be seen in Figure 1. Lab 1 – ELDERS Product Description ELDERS - 11 Figure 1 - Sitemap Lab 1 – ELDERS Product Description ELDERS - 12 Registration must be an option due to access control being in place. This will be very similar to other registrations, prompting the user for a login name, password, and email. There will also be a link on the site that will display the history of the Nottoway tribe. In addition, there will be a very simple game to play that gets the user comfortable with the words. One example of this would be Hangman. Besides this, there will also be an option for users to search the dictionaries to see if a word already exists in either one. This implies that the Classical and Expanded dictionaries will be present in the prototype as well. There will also be a forum provided for the community. These features can be seen in Figure 2 - MFCD below. Lab 1 – ELDERS Product Description ELDERS - 13 Figure 2 – MFCD Prototype Language expansion into the Expanded dictionary is a crucial part of the language reconstruction. It will provide users a tool to suggest words to be added if it does not already exists in either dictionary. The voting process will apply for the prototype too. This will be followed by a Council word approval process. 2 Prototype Functional Description There are two functions in ELDERS accessible through the front-end that interact with the back-end of the project, as well as including involvement from the Nottoway. The first deals with voting for a new word. The database is searched to see if a word in the language exists. If it does not, then voting options are opened. This corresponds to another table in the database which stores the words and the number of votes for each. The Council can then vote for a similar word from a different language, vote for a suggested word, suggest their own word, or do nothing. If a word is suggested, then it is added to the suggested word list. The next process involves the list and having to approve the words. The approval process is handled by the Council. If a word hits a certain number of votes, the Council gets to decide if the word is acceptable. If it is, then the word is added to the expanded dictionary. If it is not accepted, then it gets removed from the voting pool. Lab 1 – ELDERS Product Description 3 ELDERS - 14 External Interfaces There are a number of external interfaces involved with ELDERS. These include physical and logical types, such as hardware, software, user and communication protocols. Additionally, it is equally important to know the details for each interface. 2.3.1 Hardware Interfaces Network Interface: This is the physical component that must present in order to have access to the internet and to serve Hyper Text Transfer Protocol Secure (HTTPS) requests from the web server to clients. 2.3.2 Software Interfaces Joomla Interface: This content management system allows for quick and easy modifications to the website design and information. Joomla will only be accessible by the Administrators. 2.3.3 User Interfaces Data entry interface: This is standard for everyone is and simply a way for all users to interact with ELDERS. Input is handled by the keyboard. 2.3.4 Communications Protocols and Interfaces HTTPS Protocol: This is a web protocol that uses Secure Sockets Layer on top of HTTP over TCP for securing a client’s web session. Lab 1 – ELDERS Product Description ELDERS - 15 (This space intentionally left blank) 3 Specific Requirements The following section describes the specific functional, assumption, constraints, and nonfunctional requirements of the ELDERS project. 3 Functional Requirements The ELDERS prototype is capable of expanding and teaching the Nottoway language. The prototype will display the language and its dictionaries, activities for learning the language, history of the tribe, and a forum to keep in touch with the new word submissions and words that have been voted into the new dictionary. 3.1.1 User Account Requirements The User Account Requirements are the functions, capabilities, and restrictions which must be included in the various user access levels. Lab 1 – ELDERS Product Description The following functional requirements must be met: 1 Must have a tiered user permission system 1 Must have new accounts put into a default tier 2 Must allow new users to request higher tier status 2 Must provide user access levels 1 Must allow for creation of access levels 2 Must allow the changing of the new user default access level 3 Must allow the changing of an account’s access level 4 Must allow editing of access levels 5 Must allow editing of require access level for: a receiving notifications b accessing the dictionary section c adding words to the dictionary d editing a word in the expanded dictionary e viewing words that have been suggested f voting on suggested words g suggesting new words h suggesting a new word i editing suggested words j accessing the games section k adding a game to the game section l accessing the grammar section m accessing the forum n changing forum permissions o editing access level for accessing the history section p editing access level for editing the history section q editing access level for adding to the history section ELDERS - 16 Lab 1 – ELDERS Product Description r editing access level for accessing the website settings s editing access level for changing an account's access level t editing access level for setting the voting threshold 3 Must allow users to register for an account 1 Must allow user to choose username 2 Must alert user of existing username conflict 3 Must allow user to choose password a Must be at least 8 characters long b Must have a number c Must have an uppercase character d Must have a special character 4 Must prompt user for an email address 4 Must allow user to login 1 Must allow user to type username a Must notify the user if the username does not exist 2 Must allow user to type password a Must notify the user if the password is incorrect 3 Must allow user to reset password a Must provide user with a temporary password b Must require user to change password 5 Must allow user to customize account 1 Must allow user to turn notifications on/off 3.1.2 User Interface Requirements The User Interface Requirements detail everything the website is capable of doing. The following functional requirements must be met: 1 Must provide a means to vote on suggested Nottoway words ELDERS - 17 Lab 1 – ELDERS Product Description ELDERS - 18 1 Must restrict number of votes to one 2 Must allow for user to change vote a Must be capable of adding the suggested word to the expanded dictionary 3 Must provide a threshold for votes on a word suggestion a Suggested words that have reached the threshold must be marked as “approved” 4 Council must have a similar voting system for “approved” words 2 Must allow user to add words to the Expanded Dictionary 3 Must provide means to view the alphabet 4 Must be able to filter Nottoway words by letter 5 Must be able to search for Nottoway words in English 1 Must alert user if search fails a Must suggest synonyms b Must show suggested words c Must prompt to vote on words d Must prompt to suggest word e Must allow for editing suggested words f Must prompt to suggest word if no suggested words exist 2 Must alert user of successful search a Must display whether word is historic or expanded b Must display word in Nottoway c Must display Nottoway pronunciation d Must display word in English e Must display word’s part of speech f Must be capable of displaying a sample sentence of the word g Must be capable of displaying common phrases that include the word 6 Must be able to search for Nottoway words using the Nottoway alphabet Lab 1 – ELDERS Product Description ELDERS - 19 1 Must alert user if search fails 2 Must alert user of successful search a Must display whether word is historic or expanded b Must display word in Nottoway c Must display Nottoway pronunciation d Must display word in English e Must display word’s part of speech f Must be capable of displaying a sample sentence of the word g Must be capable of displaying common phrases that include the word 7 Must provide a means to view the history of the Nottoway 1 Must provide a means to add to history 2 Must provide a means to edit history 8 Must provide a means to access onsite games 1 Must provide means to add a game 9 Must provide a means to suggest a word 1 Must require user input of a Nottoway word 2 Must allow user to submit new Nottoway word 10 Must provide a means to edit website settings and permissions 11 Must provide a forum 1 The forum must the ability to create access controlled sub forums 2 The forum must be able to use the same accounts as the rest of the website 3 Assumptions and Constraints This table displays two conditions that are assumed to be true. Condition Type Effect on Requirement Lab 1 – ELDERS Product Description ELDERS - 20 s All new words follow the old grammar rules. Assumption Capability of defining custom grammar rules for new words is not included Example sentences for new words are entered accurately Assumption There will be no check on new entries to ensure they are correct 3 Non-Functional Requirements ELDERS must satisfy requirements not immediately known to the user. These will be responsible for covering the background or back-end processes of the project. The topics in this area include the database as well as security, maintainability, and reliability. 3.3.1 Database Requirements The database is a major component of the ELDERS project. It is responsible for storing the components of the Nottoway language. Also, it interacts with the front-end events, such as the GUI, and the associated algorithms. The following non-functional requirements must be met: 1 Must create a database called Nottoway 2 Must backup the database every day at midnight by running a cron job 3 Must have user accounts created to access the database 4 Must have database privileges limited depending on the user Lab 1 – ELDERS Product Description ELDERS - 21 5 Must contain a table named ALPHABET that stores the following information as fields a LETTERS i data_type: varchar(15) b PRONUNCIATION i data_type: varchar(50) 6 Must contain a table named HISTORICAL_DICTIONARY that stores the following information as fields a ENGLISH_WORD i data_type: varchar(25) b NOTTOWAY_WORD i data_type: varchar(50) c PRONUNCIATION i data_type: varchar(50) d DEFINITIONS i data_type: varchar(100) e PART OF SPEECH i data_type: varchar(25) 7 Must contain a table named EXPANDED_DICTIONARY that stores the following information as fields a ENGLISH_WORD i data_type: varchar(25) b NOTTOWAY_WORD i data_type: varchar(50) c PRONUNCIATION i data_type: varchar(50) d DEFINITIONS i data_type: varchar(100) e PART OF SPEECH Lab 1 – ELDERS Product Description i ELDERS - 22 data_type: varchar(25) 8 Must contain a table named NUM_VOTES which has a foreign key pointing to NOTTOWAY_WORD in the NEW_DICTIONARY table which stores the following information as fields a NOTTOWAY_WORD i data_type: varchar(50) b VOTES i data_type: int(10) 3.3.2 Security ELDERS must provide adequate security for its consumers. This includes securely storing user data and providing permission checks to various features of the product. The following non-functional requirements must be met: 1 Must store user passwords in database with encryption 2 Must have authorization checks on the following actions: 1 receiving notifications 2 accessing the dictionary section 3 adding words to the dictionary 4 editing a word in the expanded dictionary 5 viewing words that have been suggested 6 voting on suggested words 7 suggesting new words 8 suggesting a new word 9 editing suggested words 10 accessing the games section 11 adding a game to the game section 12 accessing the grammar section 13 accessing the forum Lab 1 – ELDERS Product Description ELDERS - 23 14 changing forum permissions 15 accessing the history section 16 editing the history section 17 adding to the history section 18 accessing the website settings 19 changing an account's access level 20 setting the voting threshold 3.3.3 Maintainability The product should provide features that allow it to be fixed or changed at any time. These features will ensure the product can support continued development after being released. The following non-functional requirement must be met: 1 Must check for software/package updates a Must check compatibility of current code with new software versions in test environment before updating server 3.3.4 Reliability ELDERS should be designed to provide a reliable service that will work through multiple circumstances. The following non-functional requirements must be met: 1 Must be able to make backups regularly on hosting servers 2 Website must be viewable from mobile devices 3 Website must be functional for all major web browsers. Lab 1 – ELDERS Product Description ELDERS - 24 (This space intentionally left blank) Appendix Prototype Virtual Machine Video Lectures Product X X Lab 1 – ELDERS Product Description ELDERS - 25 Mobile Application X LAMP Stack X X Voting and Searching X X Algorithms Table 1 - Prototype VS Product Lab 1 – ELDERS Product Description Figure 3 – MFCD Product ELDERS - 26