Table of Contents

Alert! Work in Progress We are in the process of making major upgrades to CCASH's architecture. New features include flexible data structures suitable for a variety of textual data and annotations. This reduces the burden on developers who do not wish to implement their own data structures. Other new features include fine-grained user permissions over these data structures. Unfortunately, the size of these changes means that the code base will be unstable for a time. Feel free to email us about progress details, or to get involved if you want things to move faster!

Introduction

What is CCASH?

CCASH (Cost-Conscious Annotation Supervised by Humans) is a web-based annotation framework. It is designed to be an environment for evaluating state-of-the-art and experimental techniques for efficient annotation and also for applying those techniques to real world annotation projects. While designing CCASH we had our eye particularly on Active Learning; however other techniques such as feature labeling and incorporating rich prior knowledge could also be incorporated into CCASH without too much trouble.

How does it work?

CCASH coordinates the activities of two components:

  1. Provide annotators with an optionally pre-annotated instances
  2. Record annotations

In a typical annotation scenario, CCASH would query an annotation manager for a pre-annotated instance, then present that instance to a human annotator via a compatible GUI task. After the annotator finished, the completed annotation would be sent back to the annotation manager to be preserved.

Getting Started

Eclipse

CCASH is an Eclipse project, so you will want to get a current copy of Eclipse. We recommend the Eclipse Enterprise Edition (Eclipse EE) since it comes ready to run Apache Tomcat servers, which you'll need to run data providers.

You'll need to install the following Eclipse plugins:

Postgres

Install

CCASH manages its data in a relational database. We chose postgres as the default implementation because of its permissive licensing and sub-second timing values. You will need to install the postgres server on your system.

Configure

After installing postgres, you must configure postgres to accept connections from your CCASH install. Do this by editing the pg_hba.conf file and changing the line that reads

host    all         all         127.0.0.1/32          ident

to read

host    all         all         127.0.0.1/32          trust

This tells postgres to trust all connections from the localhost. This is fine for development. (In the future when you deploy Ccash, you will probably want to increase security by changing the word “trust” to “md5” which will require you to create a postgres account and password for CCASH. The username and password can be whatever you want as long as you change the corresponding data inside of the file Ccash/src/META-INF/persistence.xml).

Create a database

Create a postgres database for CCASH by running the following command:

createdb -U postgres ccash

Create a database user

Create a postgres user for CCASH by running the following command:

createuser -U postgres ccash

Get CCASH

For a copy of CCASH licensed under the AGPL, see the SourceForge project at https://sourceforge.net/p/ccash/code/HEAD/tree/. Using Subclipse or Subversive check out a read-only copy of the the code from http://svn.code.sf.net/p/ccash/code/trunk. If you are interested in CCASH under a different license, please contact us directly.

Run CCASH

To run CCASH, right-click on the eclipse CCASH project, click “Run As,” and select “Web Application.” After a minute a “Development Mode” tab will open in Eclipse and display a url. Copy this url into a browser, and you will see the CCASH login screen. Login with username “admin” and password “passwd99”. You can change this password after logging in by clicking the “Admin” menu item, and selecting “Annotators”. <!– This should no longer be necessary:

Work-around UserAgentAsserter crash

When you run CCASH for the first time you may have problems with GWT's UserAgentAsserter. To work around this issue follow these steps:

To enable all GWT supported browsers:

"Hello, World" annotation task

Start annotating by Doing Simple Sentiment Classification.

How do I implement my own annotation task in CCASH?

CCASH is an annotation framework. Before you can apply CCASH to the annotation task you are interested in, you'll need to create an Annotation Manager to run on the server, and an Annotation Task to run in your annotators' browsers. If you create something that you think others might be interested in, please contribute it to the repository!

Do I have to build my application from scratch?

We have already developed some annotation tasks that we are interested in. Feel free to use their pieces as building blocks for your own project!

Example annotation tasks

These are fully formed annotation tasks you can use for reference. Relevant classes are indicated by links to their javadocs

Reusable components

These are reusable components that was have developed while working on our own tasks. Check out the linked javadocs for more information.

Half-baked Tasks

These are tasks that we have in the incubator.

I have a problem! What should I do?

First consult the CCASH Frequently Asked Questions. If your question isn't answered there, send us a note at ccash at cs dot byu dot edu.

<!–