CSC/ECE 517 Fall 2013/oss E812 amp

From Expertiza_Wiki
Jump to navigation Jump to search

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 and 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

The existing Expertiza system has an automated_metareview.rb class which was using the text processing functionality from automated_metareview directory. "automated_metareview" directory has 18 files which provides features such as spell checker, plagiarism check and the review tone analysis.
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 Automated metareview functionality is not used in the existing Expertiza system. If this feature is converted into a gem, then it 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

Steps to create Gem

We have turned the automated_metareview folder into a gem called “automated_metareview” which could be used in other review systems. Here is the basic structure of our gem:

Structure


Lib: Code from the 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.

Automated_metareview.gemspec : This file gives details of the gem, author, version and other details.


Build and Install Gem:
You can build a gem from gemspec using the following command:

         gem build automated_metareview.gemspec

Install the generated gem locally to test it out.

         gem install automated_metareview-0.0.2


Push gem
In order to make this gem available to everyone, we need to push the gem using :

         gem push automated_metareview-0.0.2.gem  

This gem is now available for installation by anyone. This can be viewed in http://rubygems.org/gems/automated_metareview

OR

You can check in the list of available gems:

         gem list -r automated_metareview

Steps to install and use Gem

In order to use the gem please follow the below steps:
1. Run the following command to install the gem

       gem install automated_metareview-0.0.2

OR Add following line in gemfile

       gem ‘automated_metareview-0.0.2’

Run following command:

       bundle install

2. Add following line in the code where you want to use the gem:

       require ‘automated_metareview-0.0.2’

Example: In order to use automated_metareview feature of testing whether a phrase /word is suggestive or not, we can use SentenceState methods to test it :


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.

References

<references/> 1.Make your own gem