WAFFLE Design Document
Chance Pascale, Ed Stehle, Laurence Chapman,
Mark Dobbins, & Brian Pyles
ctp26, evs23, lc88, mgd27, bdp27@drexel.edu
Adviser: Moshe Kam(Department of Computer Science)
kam@minerva.ece.drexel.edu
1 Introduction
1.1 Purpose
The purpose of this document is to describe the desgin and system architecture of WAFFLE for members of the development team. It explains both the technical and functional issues related to application design and will be used as the basis of system implementation. The sections included in this document are the design overview and system architecture of the various components of WAFFLE.
1.2 Scope
This document is the prime source for development team members to understand how to implement the functional and non-function requirements of WAFFLE as laid out in the Requirements Document. This specifics of design for this application is expressed both in written description and UML diagrams for each level of system architecture and external technology used. Each package of WAFFLE will be decred by the above means, down to class level. The central external asoftware package, mediawiki-1.9.3 will not be described as it is only a means of expressing the systems' data and its implementation is not needed for design of the rest of the software system.
This document does not include every detail involved in the development of the application and there will be some assumptions made about underlying design issues, these assumptions will be tested at various points in the testing phase of development. This document does not include user interface details as the majority of them are handled by mediawiki-1.9.3 and user input (on a page-by-page basis). As changes are made to the design due to implementation changes and discovery o flaws in the testing phase, this document will be updated to reflect any necessary changes to system design.
1.3 Design Goals
Success of the WAFFLE system will not only be measured by meeting requirements, both functional and non-functional, but also by the following goals for proper design:
- Extensibility - The system will allow for extension of both data stored and the means of processing it. By using a SOA approach to our tools, we hope to not only allow for development team members to easily extend functionality of tools easily by standing up services, but also this allows non-team members elsewhere in the world to make their own services available to this system.
- Usability - The WAFFLE site will alow linguistic informants, both linguists and speakers of languages, to easily populate pages that describe words in a clear and understandable manner without need for extra training. This also extends to tools, specifically with regard to the ability of users to provide/use services they ahave developed or are comfortable with to analyze data made available to them via our system.
- Object-Orientation - This is paramount to the maintainence and extensibility. The development team will develop modular packages of semantically-related code and provide simple and uniform interfaces to transfer data between classes and modules alike.
1.4 References
- Mediawiki-1.9.3 28 February 2007 <http://www.mediawiki.org/wiki/MediaWiki>
- Hunt, Andrew & Thomas, David. The Pragmatic Programmer. New York, NY: Addison-Wesley, 2000
- Pressman, Roger. Software Engineering: A Practioner's Approac. New York, NY: McGraw Hill, 2005
1.5 Definitions and Acronyms
- Hibernate - A query and object/relational persistence service for Java
- JDBC - Java Database Connectivity, a system for SQL database access.
- Persistence The ability of data to outlive an execution of program by which it was created.
- SOA - Service-Oriented Architecture
2 Design Overview
The WAFFLE system is based upon several subsystem packages. These are detailed throughout the document. The design of classes and program flow is described for WAFFLE classes. These subsystems consist of the word package, user package, WAFFLE toolset, and the WAFFLE wiki.
There are also already existing subsystems that are being used as a foundation for Waffle. These additional technologies are used to enhance the
WAFFLE system and provide a code base for standardized processes.
Java Hibernate, Persistence, and Spring are used to help maintain database information. These subsystems handle the creation of data within the database from the objects of programming languages. They allow objects to easily be entered into a database with little modification.
MySQL will be used as the database technology to maintain data used by Java and the WAFFLE wiki. Java Database Connectivity (JDBC) will be used to interface the software and database. These pieces will form the backbone of WAFFLEÕs data interaction.
Some known subsystems that are used in conjunction with the linguist tools are Glassfish V2 build 33 and Weka 3.4.8. Glassfish is an open source Java based application server from Sun Microsystems. It is the server application for the tools portion of the WAFFLE Wiki; plug-ins that are created are run via this application on the wiki.
Weka is an open source data mining library from University of Waikato. This subsystem augments the machine learning components of the WAFFLE Tools. It allows for the efficient search and manipulation of the database for these analysis tools.
3 System Architecture
The Waffle components will all interact with the core MediaWiki 1.9.3 software and the MySql database.
Figure 1:
WAFFLE Top-Level Diagram
|
|
From the Main Page of the wiki the user can access Word pages, User pages, and Special pages. From the User page users will be able to access information obtained from the Waffle Tools.
Figure 2:
WAFFLE Top-Level Diagram
|
|
3.2 Packages
3.2.1 Word
The Word package (see fig.3) is the
link between the word data code used for certain functionality such as bulk
loading of data and the MySQL db used by the wiki to display word data to the browser
Figure 3:
Word
Package Class Diagram
|
|
The Main Page of the wiki is the entry point to the Word pages. From the Word page users have access to the Edit page for editing word data and the History page for examining previous edits. All of these pages use the central waffle database for their operations.
Figure 4:
Word
Package State Diagram
|
|
As a note, this package is used soley for the purpose of creating and maintaining Word and Word-related data, therefor the majority of the methods are private attribute accessors and mutators. Thus only operations that are not of this type, namely the main method that all methods share and the methods of the Utility subpackage's classes are enumerated here. The main method shown here has the same signature for all classes and is used to test all aspects of the classes creation and maintenance of objects of their own type.
3.2.1.1.1 Adjective Class
The Adjective class represents a Word data type that is specialized to represent an english adjective.
Figure 6:
Adjective Class
|
|
Figure 7:
Adjective Attributes
|
|
3.2.1.1.2 Adverb Class
The Adverb class represents a Word data type that is specialized to represent an english adverb.
Figure 9:
Adverb Attributes
|
|
3.2.1.1.3 Definiton Class
The Definition object is used as one possible meaning for a Word object.
Figure 10:
Definition Class
|
|
Figure 11:
Definition Attributes
|
|
3.2.1.1.4 Field Class
The Field class represents a branch of knowledge,the arts, etc. that a word belongs.
Figure 13:
Field Attributes
|
|
3.2.1.1.5 GeoLoc Class
The GeoLoc class represents a geographic location at which a word is used.
Figure 15:
GeoLoc Attributes
|
|
3.2.1.1.6 Latitude Class
The Latitude class is part of a latitude-longitude pair that represents a geographic location at which a word is used or at which a map has its limits.
Figure 16:
Latitude Class
|
|
3.2.1.1.7 LatLong Class
The LatLong class that is the superclass for both Latitude and Longitude classes that are instrumental in geographically representing a location
Figure 18:
LatLong Attributes
|
|
3.2.1.1.8 Longitude Class
The Longitude class is part of a latitude-longitude pair that represents a geographic location at which a word is used or at which a map has its limits.
Figure 19:
Longitude Class
|
|
3.2.1.1.9 Map Class
The map class is used to show a region in which a word is used.
Figure 21:
Map Attributes
|
|
3.2.1.1.10 Noun Class
The Noun class represents a Word data type that is specialized to represent an english noun.
Figure 23:
Noun Attributes
|
|
3.2.1.1.11 PartOfSpeech Class
The PartOfSpeech class represents which subclass a Word data type is.
Figure 24:
PartOfSpeech Class
|
|
Figure 25:
PartOfSpeech Attributes
|
|
3.2.1.1.12 Power Class
The Power class represents what power attributes a Word data type has.
Figure 27:
Power Attributes
|
|
3.2.1.1.13 Sex Class
The Sex class represents what sexual attributes a Word data type has.
Figure 29:
Sex Attributes
|
|
3.2.1.1.14 SpecialType Class
The SpecialType class represents to which special types a Word data type belongs.
Figure 30:
SpecialType Class
|
|
Figure 31:
SpecialType Attributes
|
|
3.2.1.1.15 Tag Class
The Tag class represents to which general cataegories a Word data type belongs.
Figure 33:
Tag Attributes
|
|
3.2.1.1.16 TenseType Class
The TenseType class represents the type of tense (past,present,future, perfective, etc.) that a VerbConjugation object fulfills.
Figure 34:
TenseType Class
|
|
Figure 35:
TenseType Attributes
|
|
3.2.1.1.17 Verb Class
The Verb class represents a Word data type that is specialized to represent an english verb.
Figure 37:
Verb Attributes
|
|
3.2.1.1.18 VerbConjugation Class
The VerbConjugation class represents a specific set of conjugations of a Verb object to which this object belongs.
Figure 38:
VerbConjugation Class
|
|
Figure 39:
VerbConjugation Attributes
|
|
3.2.1.1.19 Word Class
The Word class represents the simplest example of word data.
Figure 41:
Word Attributes
|
|
3.2.1.1.20 WordnetParser Class
The WordnetParser class is part of the utilities package that parses a variety of Wordnet files into all of the Word Package objects.
Figure 42:
WordnetParser Class
|
|
Figure 43:
WordnetParser Attributes
|
|
Figure 44:
WordnetParser operations
|
|
Figure 45:
WordnetParser operations
|
|
3.2.2 Graph
The Graphics Package is a script that interfaces with the Word Package and the MySql db to visualize structural information as diagrams of abstract graphs and networks. The user is presented with a form where they select what they want to visualize and a script converts their options into a graph using the GraphViz application http://www.research.att.com/sw/tools/graphviz/. The output of the graph is in dot format but is then displayed in the format the user specifies, png, pdf or svg format.
Figure 46:
Graph
Package State Diagram
|
|
Figure 47:
Graph
Config Variables
|
|
Figure 48:
Graph
Config Variables
|
|
3.2.3 User
Figure 49:
User
Package Class Diagram
|
|
Figure 50:
User
Package State Diagram
|
|
3.2.3.0.1 User Class
Represents user's personal data for informant purposes.
Figure 52:
User Attributes
|
|
3.2.3.0.2 Housing Class
Stores user's housing information.
Figure 54:
Housing Attributes
|
|
3.2.3.0.3 HousingType Class
Stores the type of housing of the user.
Figure 55:
HousingType Class
|
|
Figure 56:
HousingType Attributes
|
|
3.2.3.0.4 Occupation Class
Stores the user's occupation
Figure 57:
Occupation Class
|
|
Figure 58:
Occupation Attributes
|
|
3.2.3.0.5 Income Class
Stores the user's income.
Figure 60:
Income Attributes
|
|
3.2.3.0.6 Age Class
Stores the user's age.
Figure 62:
Age Attributes
|
|
3.2.3.0.7 Sex Class
Stores the user's sex.
Figure 64:
Sex Attributes
|
|
3.2.3.0.8 PlaceOfBirth Class
Stores the user's place of birth.
Figure 65:
PlaceOfBirth Class
|
|
Figure 66:
PlaceOfBirth Attributes
|
|
3.2.3.0.9 MaritalStatus Class
Stores the user's martial status.
Figure 67:
MaritalStatus Class
|
|
Figure 68:
MaritalStatus Attributes
|
|
3.2.3.0.10 EducationLevel Class
Stores the user's education level.
Figure 69:
EducationLevel Class
|
|
Figure 70:
EducationLevel Attributes
|
|
3.2.3.0.11 SocialClass Class
Stores the user's social class.
Figure 71:
SocialClass Class
|
|
Figure 72:
SocialClass Attributes
|
|
3.2.4 Tools
The Tools package contains the classes required to analyze text documents based on information in the WAFFLE database.
Figure 73:
Tools Package Class Diagram
|
|
Figure 74:
Tools Data Flow Diagram
|
|
Figure 75:
Tools User Interface Flow Diagram
|
|
The Document class represents text documents submitted for analysis.
Figure 76:
Document Class
|
|
Figure 77:
Document Attributes
|
|
The Metric class creates objects that returns measurements of documents based on information contained in the WAFFLE database. For example a metric may return a count of the occurrences of words from a word group in the WAFFLE database. The class hierarchy shown in Figure 78 illustrates an example implementation of Metrics.
Figure 78:
Metric Class Hierarchy
|
|
Figure 79:
Metric Attributes
|
|
Figure 80:
Metric Methods
|
|
The DocumentProfile class contains a profile of a given document based on a collection of measurement by Metric objects.
Figure 81:
DocumentProfile Class
|
|
Figure 82:
DocumentProfile Class Attributes
|
|
The ProfileGroup class creates objects that contain sets of DocumentProfile objects.
Figure 83:
ProfileGroup Class
|
|
Figure 84:
ProfileGroup Class Attributes
|
|
The ProfileBuilder class constructs a Profile object for a given Document based on a group of Metrics.
Figure 85:
ProfileBuilder Class
|
|
Figure 86:
ProfileBuilder Class Attributes
|
|
Figure 87:
ProfilerBuilder Methods
|
|
The ProfileGroupBuilder class constructs a ProfileGroup object for a given set of Documents and Metrics.
Figure 88:
ProfileGroupBuilder Class
|
|
Figure 89:
ProfileGroupBuilder Class Attributes
|
|
Figure 90:
ProfilerGroupBuilder Methods
|
|
The Tool class analyzes a group of DocumentProfiles. The class hierarchy shown in Figure 91 illustrates an example implementation of Tools.
Figure 91:
Tool Class Hierarchy
|
|
Figure 92:
Tool Class Attributes
|
|
The ToolResults class is a container for data produced by objects of the Tool class. The class hierarchy shown in Figure 94 illustrates an example implementation of ToolResults.
Figure 94:
ToolResults Class Hierarchy
|
|
Figure 95:
ToolResults Class Attributes
|
|
Figure 96:
ToolResults Methods
|
|
The Visualization class creates visual representations of ToolsResults objects. The class hierarchy shown in Figure 97 illustrates an example implementation of Visualization.
Figure 97:
Visualization Class Hierarchy
|
|
Figure 98:
Visualization Class Attributes
|
|
Figure 99:
Visualization Methods
|
|
WAFFLE Design Document
This document was generated using the
LaTeX2HTML translator Version 2002-2-1 (1.71)
Copyright © 1993, 1994, 1995, 1996,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999,
Ross Moore,
Mathematics Department, Macquarie University, Sydney.
The command line arguments were:
latex2html -split 0 -link 7 -toc_depth 7 -toc_stars -navigation -top_navigation -bottom_navigation -index_in_navigation -contents_in_navigation -next_page_in_navigation -previous_page_in_navigation -show_section_numbers design_document.tex
The translation was initiated by Chancellor Pascale on 2007-04-30
Chancellor Pascale
2007-04-30