CSC/ECE 517 Fall 2013/oss E812 amp: Difference between revisions
(→Design) |
|||
Line 15: | Line 15: | ||
Here is the basic structure of our gem: | Here is the basic structure of our gem: | ||
[[File:Structure.jpg|right|50px|alt=Structure | [[File:Structure.jpg|right|50px|alt=Structure.]] | ||
'''Lib''': code of automated_metareview package is placed in this folder. It contains all the 18 files. | '''Lib''': code of automated_metareview package is placed in this folder. It contains all the 18 files. |
Revision as of 18:51, 30 October 2013
Intrdouction
This article is a report about our Open Source project(Expertiza) - Turn automated_metareview folder into a gem . It explains the design considerations, steps followed, issues faced while setting up Expertiza. It explains how our team manages to create a new Gem file, and test it on the existing Expertiza system.
Project Description
Existing Expertiza system had automated_metareview.rb class which was using the text processing functionality from automated_metareview directory. "automated_metareview" directory had 18 files which included features like spell checker, plagiarism check and the review tone.
What it does: Gives automatic feedback to a reviewer, using NLP text analysis, to help the reviewer improve the review.
What needs to be done: We had to convert automated_metareview directory into a gem so that it can be used with other review systems.
Our goal was to remove the automated_metareview directory from existing Expertiza system. Include all those features in the Gem, and then import the functionality from the Gem file.
Motivation
The features of Automated metareview were integrated in the existing Expertiza system. If these features were converted into a gem, then these can be used in other review systems, wherein the reviewer will get an automated feedback about the review and he/she can change the review based on the results of automated metreview results. Thus by creating a gem file, other systems can install the gem and get access to all features of automated metareview, thereby increasing reusability.
Design
We have turned the automated_metareview feature into a gem called “automated_metareview” which could be used in other review systems. Here is the basic structure of our gem:
Lib: code of automated_metareview package is placed in this folder. It contains all the 18 files.
Automated_metareview.rb : This file gets loaded when require’automated_metareview’ is run. That one file is in charge of setting up your gem’s code and API.
Build and Install Gem: You can build a gem from gemspec. Then you can install the generated gem locally to test it out.
This gem is now available for installation by anyone. This can be viewed in http://rubygems.org/gems/automated_metareview OR
In order to use the gem please follow the following steps: 1. gem install automated_metareview-0.0.2 OR Add line gem ‘automated_metareview’ in gemfile. Do bundle install. 2. Add following line in the code where you want to use the gem: require ‘automated_metareview’
Future Work
The current implementation has a few method calls very specific to Expertiza. We can change these methods so that they can be used in any other system. We generalized a few methods, so that it can be used in systems similar to Expertiza. But we can generalize it more such that we can seperate functionalities like Spell checker , plagiarism check in separate gem file.
Appendix: Setup Issues
1. There were a lot of problems with the master branch of expertiza.
2. There were many missing routes.
3. We faced a number of problems installing Aspell dictionary on windows.
4. There are a number of steps which need to be followed to activate the metareview feature.
5. The automated meta review feature is partly implemented using java due to which there are a number of dependencies. To overcome these dependencies we need to install multiple jar files such as joda-time.jar,stanford-segmenter.jar etc.
6. No concrete documentation about the working of the meta review functionality is available due to which a lot of time was required to get the feature running.