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!
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.
CCASH coordinates the activities of two components:
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.
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:
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.
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
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 postgres database for CCASH by running the following command:
createdb -U postgres ccash
Create a postgres user for CCASH by running the following command:
createuser -U postgres 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.
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:
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:
Start annotating by Doing Simple Sentiment Classification.
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!
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!
These are fully formed annotation tasks you can use for reference. Relevant classes are indicated by links to their javadocs
These are reusable components that was have developed while working on our own tasks. Check out the linked javadocs for more information.
These are tasks that we have in the incubator.
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.