next_inactive up previous


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


Contents


List of Figures


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:


1.4 References


1.5 Definitions and Acronyms


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

3.1 WAFFLE System Top-Level Diagram

The Waffle components will all interact with the core MediaWiki 1.9.3 software and the MySql database.
Figure 1: WAFFLE Top-Level Diagram
Image waffle-overview
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
Image waffle-main-state-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
Image word-package
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
Image word-package-state-diagram

3.2.1.1 Classes

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.
Figure 5: main method
Image main

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
Image adjective
Figure 7: Adjective Attributes
Image adjective-attr

3.2.1.1.2 Adverb Class
The Adverb class represents a Word data type that is specialized to represent an english adverb.
Figure 8: Adverb Class
Image adverb
Figure 9: Adverb Attributes
Image adverb-attr

3.2.1.1.3 Definiton Class
The Definition object is used as one possible meaning for a Word object.
Figure 10: Definition Class
Image definition
Figure 11: Definition Attributes
Image definition-attr

3.2.1.1.4 Field Class
The Field class represents a branch of knowledge,the arts, etc. that a word belongs.
Figure 12: Field Class
Image field
Figure 13: Field Attributes
Image field-attr

3.2.1.1.5 GeoLoc Class
The GeoLoc class represents a geographic location at which a word is used.
Figure 14: GeoLoc Class
Image geoloc
Figure 15: GeoLoc Attributes
Image geoloc-attr

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
Image latitude

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 17: LatLong Class
Image latlong
Figure 18: LatLong Attributes
Image latlong-attr

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
Image longitude

3.2.1.1.9 Map Class
The map class is used to show a region in which a word is used.
Figure 20: Map Class
Image map
Figure 21: Map Attributes
Image map-attr

3.2.1.1.10 Noun Class
The Noun class represents a Word data type that is specialized to represent an english noun.
Figure 22: Noun Class
Image noun
Figure 23: Noun Attributes
Image noun-attr

3.2.1.1.11 PartOfSpeech Class
The PartOfSpeech class represents which subclass a Word data type is.
Figure 24: PartOfSpeech Class
Image partofspeech
Figure 25: PartOfSpeech Attributes
Image partofspeech-attr

3.2.1.1.12 Power Class
The Power class represents what power attributes a Word data type has.
Figure 26: Power Class
Image power
Figure 27: Power Attributes
Image power-attr

3.2.1.1.13 Sex Class
The Sex class represents what sexual attributes a Word data type has.
Figure 28: Sex Class
Image sex
Figure 29: Sex Attributes
Image sex-attr

3.2.1.1.14 SpecialType Class
The SpecialType class represents to which special types a Word data type belongs.
Figure 30: SpecialType Class
Image specialtype
Figure 31: SpecialType Attributes
Image specialtype-attr

3.2.1.1.15 Tag Class
The Tag class represents to which general cataegories a Word data type belongs.
Figure 32: Tag Class
Image tag
Figure 33: Tag Attributes
Image tag-attr

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
Image tensetype
Figure 35: TenseType Attributes
Image tensetype-attr

3.2.1.1.17 Verb Class
The Verb class represents a Word data type that is specialized to represent an english verb.
Figure 36: Verb Class
Image verb
Figure 37: Verb Attributes
Image verb-attr

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
Image verbconjugation
Figure 39: VerbConjugation Attributes
Image verbconjugation-attr

3.2.1.1.19 Word Class
The Word class represents the simplest example of word data.
Figure 40: Word Class
Image word
Figure 41: Word Attributes
Image word-attr

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
Image wordnetparser
Figure 43: WordnetParser Attributes
Image wordnetparser-attr

Image wordnetparser-main

Image wordnetparser-parseadjectiveindexfile
Figure 44: WordnetParser operations
Image wordnetparser-parseadverbindexfile

Image wordnetparser-parseindexfile

Image wordnetparser-parsenounindexfile

Image wordnetparser-parsesenseindexfile

Image wordnetparser-parseverbindexfile
Figure 45: WordnetParser operations
Image wordnetparser-parsewordnetfiles


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
Image graph-state_diagram
Figure 47: Graph Config Variables
Image graph-config-vars1
Figure 48: Graph Config Variables
Image graph-config-vars2


3.2.3 User

Figure 49: User Package Class Diagram
Image user-package-diagram
Figure 50: User Package State Diagram
Image flow

3.2.3.0.1 User Class
Represents user's personal data for informant purposes.
Figure 51: User Class
Image user
Figure 52: User Attributes
Image user-attr

3.2.3.0.2 Housing Class
Stores user's housing information.
Figure 53: Housing Class
Image housing
Figure 54: Housing Attributes
Image housing-attr

3.2.3.0.3 HousingType Class
Stores the type of housing of the user.
Figure 55: HousingType Class
Image housingtype
Figure 56: HousingType Attributes
Image housingtype-attr

3.2.3.0.4 Occupation Class
Stores the user's occupation
Figure 57: Occupation Class
Image occupation
Figure 58: Occupation Attributes
Image occupation-attr

3.2.3.0.5 Income Class
Stores the user's income.
Figure 59: Income Class
Image income
Figure 60: Income Attributes
Image income-attr

3.2.3.0.6 Age Class
Stores the user's age.
Figure 61: Age Class
Image age
Figure 62: Age Attributes
Image age-attr

3.2.3.0.7 Sex Class
Stores the user's sex.
Figure 63: Sex Class
Image sex
Figure 64: Sex Attributes
Image sex-attr

3.2.3.0.8 PlaceOfBirth Class
Stores the user's place of birth.
Figure 65: PlaceOfBirth Class
Image placeofbirth
Figure 66: PlaceOfBirth Attributes
Image placeofbirth-attr

3.2.3.0.9 MaritalStatus Class
Stores the user's martial status.
Figure 67: MaritalStatus Class
Image maritalstatus
Figure 68: MaritalStatus Attributes
Image maritalstatus-attr

3.2.3.0.10 EducationLevel Class
Stores the user's education level.
Figure 69: EducationLevel Class
Image educationlevel
Figure 70: EducationLevel Attributes
Image educationlevel-attr

3.2.3.0.11 SocialClass Class
Stores the user's social class.
Figure 71: SocialClass Class
Image socialclass
Figure 72: SocialClass Attributes
Image educationlevel-attr


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
Image tools_package

Figure 74: Tools Data Flow Diagram
Image DataFlow

Figure 75: Tools User Interface Flow Diagram
Image UIFlow

3.2.4.1 Classes

3.2.4.1.1 Document

The Document class represents text documents submitted for analysis.

Figure 76: Document Class
Image Document

Figure 77: Document Attributes
Image DocumentAtr

3.2.4.1.2 Metric
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
Image metric_hiark

Figure 79: Metric Attributes
Image MetricAtr

Figure 80: Metric Methods
Image MetricMeth

3.2.4.1.3 DocumentProfile
The DocumentProfile class contains a profile of a given document based on a collection of measurement by Metric objects.

Figure 81: DocumentProfile Class
Image DocumentProfile

Figure 82: DocumentProfile Class Attributes
Image DocumentProfileAtr

3.2.4.1.4 ProfileGroup
The ProfileGroup class creates objects that contain sets of DocumentProfile objects.

Figure 83: ProfileGroup Class
Image ProfileGroup

Figure 84: ProfileGroup Class Attributes
Image ProfileGroupAtr

3.2.4.1.5 ProfileBuilder
The ProfileBuilder class constructs a Profile object for a given Document based on a group of Metrics.

Figure 85: ProfileBuilder Class
Image ProfileBuilder

Figure 86: ProfileBuilder Class Attributes
Image ProfileBuilderAtr

Figure 87: ProfilerBuilder Methods
Image ProfileBuilderMeth

3.2.4.1.6 ProfileGroupBuilder
The ProfileGroupBuilder class constructs a ProfileGroup object for a given set of Documents and Metrics.

Figure 88: ProfileGroupBuilder Class
Image ProfileGroupBuilder

Figure 89: ProfileGroupBuilder Class Attributes
Image ProfileGroupBuilderAtr

Figure 90: ProfilerGroupBuilder Methods
Image ProfileGroupBuilderMeth

3.2.4.1.7 Tool
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
Image tools_hiark

Figure 92: Tool Class Attributes
Image ToolAtr

Figure 93: Tool Methods
Image ToolMeth

3.2.4.1.8 ToolResults
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
Image result_hiark

Figure 95: ToolResults Class Attributes
Image ToolResultsAtr

Figure 96: ToolResults Methods
Image ToolResultMeth

3.2.4.1.9 Visualization
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
Image visualization_hiark

Figure 98: Visualization Class Attributes
Image VisualizationAtr

Figure 99: Visualization Methods
Image VisualizationMeth

About this document ...

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


next_inactive up previous
Chancellor Pascale 2007-04-30