CS 411W Lab II Prototype Product Specification For CLASH Professor Janet Brunelle Professor Hill Price Prepared by: Fredrick Murry Date: 04/20/2015 Version 2 Table of Contents TOC \o "1-2" \h \z HYPERLINK \l "_Toc417288853" 1 Introduction PAGEREF _Toc417288853 \h 1 HYPERLINK \l "_Toc417288854" 1.1 Purpose PAGEREF _Toc417288854 \h 1 HYPERLINK \l "_Toc417288855" 1.2 Scope PAGEREF _Toc417288855 \h 1 HYPERLINK \l "_Toc417288856" 1.3 Definitions, Acronyms, and Abbreviations PAGEREF _Toc417288856 \h 1 HYPERLINK \l "_Toc417288857" 1.4 References PAGEREF _Toc417288857 \h 2 HYPERLINK \l "_Toc417288858" 1.5 Overview PAGEREF _Toc417288858 \h 2 HYPERLINK \l "_Toc417288859" 2 General Description PAGEREF _Toc417288859 \h 3 HYPERLINK \l "_Toc417288860" 2.1 Prototype Architecture Description PAGEREF _Toc417288860 \h 3 HYPERLINK \l "_Toc417288861" 2.2 Prototype Functional Description PAGEREF _Toc417288861 \h 4 HYPERLINK \l "_Toc417288862" 2.3 External Interfaces PAGEREF _Toc417288862 \h 5 TOC \h \z \c "Figure" HYPERLINK \l "_Toc415048816" Figure 1. CLASH Major Functional Components PAGEREF _Toc415048816 \h 3 TOC \h \z \c "Table" Prototype Functions HYPERLINK \l "_Toc415049072" PAGEREF _Toc415049072 \h 4 Table 1 CLASH Introduction Purpose The goal of CLASH is to help ESL students increase their reading speed and comprehension at a rate higher than traditional methods. CLASH will be a web-based application assessable through a standard web-browser. CLASH will consist of a server that will handle the COLRS and Slash modules. The COLRS module will identify POS using colors to highlight different types. The Slash module separates sentences into lexical bundles and displays the results in the web-browser at a speed controlled by the student for reading. CLASH will allow the instructor to provide reading assignments to the students. Student usage data can also be monitored by the instructor. Scope The main hardware for the prototype will be a Virtual Machine (VM) hosted at ODU. The user will be able to use their own internet-enabled device for access. The software for the prototype will include a collection of open source software and custom algorithm programs. The VM will run Ubuntu 14.04 LTS. Nod.js will be used for the application and web server, so that there will be interaction with the Natural Language Toolkit. (NLTK), and the database server. The Node.js server will provide the SPA that will allow user access to the CLASH prototype. Definitions, Acronyms, and Abbreviations CLASH- - Color Lexical Analysis algorithm and Slash Handler COLRS- Colored Organized Lexical Recognition Software ELC- English Learning Center ESL- English as second language IBT- International benchmark test JSON- JavaScript Object Notation Lexical Bundle- a group of words that occur repeatedly together, or represent a single thought group. MFCD- Major Functional Component Diagram NLTK- a suite of libraries and programs for symbolic and statistical natural language processing for the Python programming language. Node.js- an open source, cross-platform run-time environment for serverside and networking applications. POS- Parts of Speech SPA- single page application, is a highly responsive web application that fits on a single page and does not reload as the web page changes states. TOEFL- Test of English as a Foreign Language Ubuntu- a Debian-based Linux operating system VM-Virtual Machine References Fredrick Murry (2015, February). Clash Product Description CS411 Lab 1. Overview This product specification provides the hardware and software configuration, capabilities and features of the CLASH prototype. The information provided in the remaining sections of this document includes the Prototype Architecture Description, the Prototype Functional Description, detailed description of the hardware and software, the key features of the CLASH prototype. The methods that will be used to control, manage, or establish key features are also discussed later in this document. The outputs, displays, and user interactions expected of the CLASH product are specified. General Description The CLASH prototype will be a Single Page Application (SPA) that does not reload when changes are made to the web page. The SPA will be built using JavaScript and will utilize a JavaScript-built Graphical User Interface, application and web server, and a database. Ideally a database with JavaScript object Notation (JSON) would be used, such as NoSQL. The prototype will use a relational database instead of NoSQL. The SPA will combine the user the accessibility of a web application with the look and feel of a desktop application. There will be no software to download and install by the users. The prototype will be a proof of concept for the real world product. The POS tagging will use open source NLP tools and will very basic in its operation. The accounts for the various users will manually set up instead of the real world product’s integration with ODU’s enrollment systems. Prototype Architecture Description CLASH will feature three major components software components. They will include the COLRS module, SLASH module, and the text reader viewed through the web browser. Being that CLASH is a web-based application, the only hardware requirements are an active server on the back-end and an Internet-enabled device for the user. The major hardware components can be seen in Figure1. The COLRS module will use Natural Language Processing (NLP) to tag the POS in the input document. An open source tokenizer will be used for the process. The Slash module will use the same tokenizer from the COLRS module in its algorithm to identify lexical bundles. The text reader will use the tokenized output from the server to be viewed by the user. It will have a User Interface for control of user viewing speed and POS identification using color-coded highlights. Figure SEQ Figure \* ARABIC 1 . CLASH Major Functional Components Prototype Functional Description Table 1 contains a list of the main functions of the prototype and what they do. Table SEQ Table \* ARABIC 1 CLASH Prototype Functions Functions Parsing function to parse text copy and pasted-in text block. Text Modifier to modify and store previously parsed documents Text Colorizing function to color chosen parts of speech using a JSON format and JavaScript functions. Slashing function to identify Lexical Bundles through the inserting of slashes. Login interface to authenticate User activities in a stand-alone environment. Student Data Reporting function to generate reports on basic student metrics. SLASH Reader to view documents and control viewing of Lexical Bundles. External Interfaces Hardware Interfaces The Clash product utilizes a Virtual Machine that acts as the server for the Clash implementation. This VM actually holds the algorithms for the CLRS and SLASH modules. These algorithms are executed on the VM. Software Interfaces The Clash product contains a MySQL database that is implemented on the VM. This database is used to store reading documents, user login information, and user statistical data. Node.js is the software running on the VM used to provide the SPA that will allow user access to the CLASH prototype. Node.js will connect the application, database, and server. User Interfaces A standard javascript-complient web-browser and Internet connection required to connect to the hardware containing the server. PAGE \* MERGEFORMAT 5 \* MERGEFORMAT i PAGE PAGE « ½ U mH : ? A o p ¾ Ò Ó Ô Õ ñ ò ó ô üóíçíçíáíÛÕáíÕíóÊÃÊ°¢™¢ƒ°¢o¢dUd nH u • h:x mH nH u ' h7 ‹ õ • “ ˜ • ö j • h:x ž § - h:x CJ OJ 0J U mH nH 0J mH nH u QJ aJ mH nH u u h:x mH nH $ j hu<û h:x * • j u hu<û 0J U mH hu<û h:x nH u h:x h& ¶ 5 •\ • j h& ¶ 5 •U \ • h«6 CJ$ hë'F CJ$ hM;ç CJ$ hA(d CJ$ h& ¶ CJ$ h& ¶ 5 •CJ$ \ • h& ¶ 6 : @ A ¨ ª « ½ $ r ¾ ~ ý ø ø ø ø ø ø ø ø ø ý ø ø ø ý ê ê ê ê Æ À ¶! Æ à ¶! $ a$ ! " # $ D E H I P Q R l q r s t • ‘ ’ “ íÞÓÞÀ¬Àž•žÀž¬žÓÞÓmÞÓÞÀ¬Àž•žWÀž¬žÓ* jô 0J U mH nH u # • jw • h:x U mH nH u * • jú hu<û h:x 0J U mH mH nH u hu<û h:x 0J mH nH u ' h7 Z o p Œ ý • ž ø ø ø ø ø ø % m – nH ñ & B n o — œ hu<û h:x u h:x C p • h:x 0J U U mH CJ mH nH º ã OJ QJ aJ mH nH u $ j hu<û h:x nH u • h:x mH nH u j • h:x u # • j} • h:x U mH nH u "• » ¼ ½ ¾ ¿ À Ü Ý ž Þ ¸ ß ¹ â ' ( ) * + , . / K L M N Q R ðåÓðåðÀ¬Àž•žÀž¬žåðåmðåðÀ¬Àž•žWÀž¬* jè 0J U mH nH u # • jk • h:x U mH nH u * • jî hu<û h:x 0J U mH nH u hu<û h:x 0J mH nH u ' h7 hu<û mH nH h:x u h:x h:x CJ OJ QJ aJ mH nH u $ j hu<û h:x 0J U mH nH u # • jq • h:x U mH nH u • h:x mH nH u j • h:x U mH nH u "R \ ] ^ x y z { | } ~ • € œ • ž Ÿ ¢ £ « ¬ Ç È É Ê Ë Ì Í Î Ï ë ì í î ñæ×æÅ×æײž²ñ•ñ²ñžñæ×æm×æײž²ñ•ñW²* jÜ hu<û h:x 0J U mH nH u # • j_ • h:x U mH nH u * • jâ hu<û h:x 0J U mH nH u h:x mH nH u ' h7 h:x 0J U U mH Í % Ž õ O CJ mH nH OJ nH u QJ u aJ mH nH u $ j hu<û h:x # • je • h:x U mH nH u • h:x mH nH u hu<û h:x 0J mH j nH u • h:x "~ Q Ù Û W Y Z [ \ ] ^ l m u A ë k ø ñ Ö Û & F Æ ø å Ý Ö Ò $ a$ gd-*í ø Ö É ø å Û Ö Ò „@ `„@ gdM;ç Û Ô É Ò ! ¶! „Ð ^„Ð à ¶! Æ Æ À ¶! î ï ð ! " # $ % & ' C D E F I J l m n ˆ ‰ Š ‹ Œ • Ž • • ¬ ñÝñÒÃÒ±ÃÒÞݞñ•ñžñÝñÒÃÒmÃÒÞݞñ•ñ # • jS • h:x U mH nH u * • jÖ 0J U mH nH u h:x mH nH u $ j hu<û h:x 0J U mH nH u # • jY • h:x U mH nH u U mH nH u • h:x mH nH u ' h7 hu<û j h:x • h:x h:x ® ¯ ² ³ Ó Ô Õ ï ð ñ ò ó ô õ ö ÷ CJ OJ QJ aJ mH nH u hu<û h:x 0J mH nH u "- - . / I J K L M N O ê×ɵɪ›ª‰›ª›×µ×É€Éj×ɵɪ›ªX›ª›×µ # • jG U mH nH u * • jÊ hu<û h:x 0J U mH nH mH nH u # • jM • h:x U mH nH u j U mH nH u • h:x mH nH u ' h7 • h:x u h:x • h:x h:x CJ OJ 0J mH nH u 0J U mH nH QJ aJ mH nH u hu<û h:x $ j hu<û h:x u * • jÐ hu<û h:x 0J U mH nH u O P Q R i j k l ˆ ‰ Š ‹ · ¸ ¹ Ó Ô Õ Ö × Ø Ù Ú Û Ü ôíà×àĶ-¶—ĶŒ}Œk}Œ}ÄWàNA ¶ 5 •CJ$ \ • ' hë'F h-*í CJ OJ • h-*í U mH nH u j H u * • jÄ h¹B# h-*í 0J U mH 0J mH nH u $ j h¹B# h-*í j h-*í 5 •CJ$ U \ • j QJ nH 0J hô ü 5 •CJ$ U \ • h& aJ mH nH u # • jA • h-*í U mH nH u • h-*í mH u U mH h-*í mH nH u nH u h¹B# h-*í h-*í 5 •CJ$ \ • n h& ¶ 5 •\ • j h& ¶ 5 •U \ • Ü ò ó ô õ 5 6 7 Q R S T U V W X Y ] ^ u Z k ¯ æ ÷ê×ÉÀɪ×ÉŸŸ~Ÿ×jêa]W]SOSKS] h«6 h7 hM;ç h& ¶ CJ h& ¶ h& ¶ 5 •CJ$ \ • ' hë'F hô ü CJ OJ QJ aJ mH nH u # • j; • hô ü U mH nH u j • hô ü U mH nH u • hô ü mH n H u * • j¾ h{ = hô ü 0J U mH nH u hô ü mH nH u h{ = hô ü 0J mH nH u $ j h{ = hô ü 0J U mH nH u j hô ü 5 •CJ$ U \ • hô ü 5 •CJ$ \ • A k q r s ¦ § ¬ Ü Ý à ù ú ý ; < @ \ ] m Â Ã Ç ë ì ð q r y Û Ü ß ð ñ ô „ … Š ± ² ¸ ß à â ò ó ! A H I S T š › • ¡ ¶ üøóïóïèóïèóïèóïèóïèóïè óïèóïèóïèóïáóïáóïáóïáóïáóïáÙÓÊÓÊ¿Ù´-©Ù¡Ù hë'F B* ph hô ü hô ü hô ü hô ü hô ü B* ph ¶ 5 •B* \ •ph hžf“ hžf“ PJ h«6 PJ h& ¶ B* ph h& h© x hó:/ hÒ o ¶ hó:/ hó:/ hó:/ 5 • h& hM;ç >k § Ý ú < ] à ì r Ü ñ ô I J T › œ • ž ú ú ú ú ú ú ú ú ú ú ú ú ñ ï ñ ñ á Ø Ö Ö „ ^„ gdô ü „@ `„@ gdô ü gdô ü gdó:/ ž Ÿ ¡ ¶ 1 2 V W Ó ¬ ø ù ú û ý ý ý û ò ä â Ù Ù Â ½ ½ ½ ½ ½ Ô ¸ … ² ú à ó ú ú ê ¤d ¤d [$ \$ ® ô õ ö ÷é Ô Ê ½ gd7 gd+ 1 $ a$ gdó:/ $ „h `„h gdó:/ gdó:/ „@ `„@ gdó:/ gdë'F „Ð `„Ð gdë'F ¶ Ó µ ¶ Ì Í Î Ï ô ú û 3 T V y z • • ‘ ’ ùõùõîæõâÑâÉâÉÀÉâ¼´æ©‘ˆ‘ˆ„}„yqyqhqy nH u j h-*í U h-*í 1 Z gdô ü 2 V W l m q „@ `„@ ¬ -r s h-*í mH h7 h7 h7 h‰+ö 5 •CJ aJ h‰+ö h‰+ö 5 •CJ aJ h‰+ö h7 5 •CJ aJ h7 h7 B* ph h5 ¾ hó:/ 5 • h+ 1 hó:/ mH nH u h@Qê hó:/ U mH j nH u hó:/ U hó:/ j¸ h& ¶ B* ph hô ü hô ü hô ü h÷ õ hô ü $ m n ð o p ê ê Ö ðÿá r ñ s ð - Ú E ”ô q ð kd–² · ¸ ” $ $ If É ÷ ð ð Ú – Ú ö n" ö aö ÿÿytøKˆ ö } Ö Ö $ *$ 1$ 8$ 9D Ö If Ö gd+ 2Ö 4Ö 4Ö 1 $ gd-*í gd7 $ „@ `„@ gd‰+ö - ¶ · ¸ È É è õ ö ÷ ø ! ! 6! 7! 8! P! ! ¡! ²! ³! ñ! ò! ó! " " "" ?" @" A" B" X" a" b" y" •" •" •" ‘" •" ž" °" ×" Ø" Ù" Û" Ü" íÖŵֵ¢µÖŵ֢ÖÅŽÖŵ֢ÖÅ¢Öµ¢µÖÅ¢µÖµ¢µÖÅŽÖ¢µÖņ~ h `ç B* ph h& ¶ B* ph & høKˆ CJ KH PJ ^J _H9 aJ nH tH $ h+ 1 høKˆ CJ KH _H9 aJ nH tH - høKˆ CJ KH _H9 aJ nH tH h+ 1 høKˆ CJ OJ PJ QJ aJ , h+ 1 høKˆ CJ KH PJ ^J _H9 aJ nH tH $ høKˆ 5 •CJ tH .÷ ø ! 7! 8! Q! ! ¦ – = – – X kdr³ $ $ If – ”· Ö0 ðÿá ^" ñ KH \ •_H9 aJ – nH } 4Ö ö n" ö 4Ö aö ÿÿytøKˆ ö Ö $ *$ 1$ 8$ 9D Ö If Ö gd+ Ö 2Ö 1 X ” kdý² $ $ If – Ö0 ðÿá ^" ñ } 4Ö ö n" ö 4Ö aö ÿÿytøKˆ ö ! ¡! = Ö ³! Ö ò! – ó! X ”˜ Ö0 ðÿá ^" ñ Ö " kd\´ A" – $ Ö ¦ $ If – – 2Ö – } 4Ö ö n" ö 4Ö aö ÿÿytøKˆ ö Ö $ *$ 1$ 8$ 9D Ö If Ö gd+ Ö 2Ö 1 X ”· kdç³ $ $ If Ö0 ðÿá ^" ñ – } 4Ö ö n" ö 4Ö aö ÿÿytøKˆ ö A" B" = Ö b" ÿ •" – ÿ Ö ‘" X ”Î Ö0 ðÿá ^" ñ ž" kdFµ Ö Ø" – $ Ö ¦ $ If – – 2Ö – } 4Ö ö n" ö 4Ö aö ÿÿytøKˆ ö Ö $ *$ 1$ 8$ 9D Ö If Ö gd+ Ö 2Ö 1 X ” kdÑ´ $ $ If – Ö0 ðÿá ^" ñ } 4Ö ö n" ö 4Ö ö Ö Ö Ö Ö aö ÿÿytøKˆ Ø" Ù" Ú" Û" Ü" ð" # ×# ë# N% ^% á% ¦ š ˜ ˜ “ … Ž … Ž | ˜ ˜ „Ð `„Ð gd á „Ð `„Ð gd á gd:x gd:x ¤d ¤d [$ \$ gd-*í X kd»µ $ $ If – ” Ö0 ðÿá ^" ñ 2Ö ã% ä% Ž æ% ˜ } 4Ö ö n" ö 4Ö aö ÿÿytøKˆ ö Ö Ö Ö Ö 2Ö Ü" ì" ï" ð" # ¬# Ö# ×# ë# ›$ Í$ M% N% % á% â% ä% å% ç% è% ê% ë% í% î% ï% ð% & ‰% & ¡% & «% ¶% & ¹% à & & & & & & ôìáÙÑìÊÙѾ³ÙìÂÙÑÙ¯§£§£§£§£Ÿ›“Ÿ“Š|Ÿ›rlrl hÇ;~ 0Jj hÇ;~ 0J- U j ha@C U mH nH u u j ha@C U h^ ö ha@C h^VÝ j h^VÝ U á h `ç B* ph h7 h‰+ö mH h& ¶ nH h h7 B* ph hÇ;~ h `ç h á B* ph h `ç B* ph B* ph h `ç h `ç B* ph & h:x h `ç B* ph (æ% ç% é% ê% ì% h:x í% î% ï% & & & ý & & & ý & ¶ ? 0 ö ý $ a$ gdë'F 4& 5& 6& h^VÝ ha@C j 9& :& ;& û í ý 3& 8& ý ý á 2& 7& ý û ã 6& <& ý ý ý ë ö ý û ý ë Ú 7& 8& „üÿ „ 9& :& h& h^ ö hë'F j ha@C U hÇ;~ „Ð `„Ð gd &`#$ " $ a$ " ;& <& üôðôçÙðÕÑðÑÍÉ ha@C U mH nH u & h‰+ö mH & & nH u 0 0 P 1•h °Ð/ °à=!° "° #• $• %° °Ð °Ð •Ð Dp 9 0 P 1•h °Ð/ °à=!° "° #• $• %° °Ð °Ð •Ð Dp