You need to know some basic Perl, and you need access to a CGI server.
Tell me how!
Perl:
A working environment for Perl that works on several operating systems is free from
activestate.com. The installation comes with documentation and a tutorial that helps you get started. I also found the Perl Cookbook (
First edition) (
Second edition)really helpful (Thanks, Kathryn!).
Server:
You can run Perl programs on your computer from the command line, and get a textual result. This is great. However, this won't work for CCamelOT, because its output is HTML pages. So you need to run CCamelOT on a server.
You can run the server on your own computer. If you are running Windows XP, go to control panel -> add or remove programs -> add/remove windows components (on the left) -> internet information services (IIS). Install IIS. When you are done, you control the server from the control panel -> administrative tools -> internet information services. The Perl documentation explains how to make Perl scripts run on your IIS server.
If you can't or don't want to use IIS (because you have a Mac or whatever), you can install the free
Apache server. It doesn't have a graphical interface, so it's harder if you haven't dealt with servers before. The Perl documention and the Apache documention explain how to run CGI scripts on your Apache server. You will also need to go to all the CGI files of CCamelOT and change the "shebang" line (it's explained in the Perl documentation).
A third option is to run CCamelOT on a CGI server that your university runs. It's very likely that your university provides such a server. It's less convenient, since you will have to FTP your script to the server each time you make a change, but if you can't get your own server to run, it's better than nothing.
If you are trying to install a server and you get stuck, use google to find an answer to your question (usually in some discussion forum). The truth is out there.
Just download the zipped
source and play with it. Share your constraints with our Perl-challanged friends by sending them to me, and I will post them to the site.
Some idea of what you are getting into:
Each constraint is a subroutine that gets an input and an output, and returns the number of violations. It should be easy to copy one of the existing constraints and fiddle with it a little. You will have access to the input's and output's segments, moras, syllables and features (except that the input won't have syllables). You will find the constraints, and some more instructions, in the file Constraints.pm.
Constaints that refer to tone, stress, or any other kind of structure that isn't there yet will be more demanding. You will have to fiddle with the structure of the linguistic forms (in the file Link.pm).
Other constraints, like OO-Faith, change the way the derivation works, so adding them might be demanding. Most of the derivation is in the subroutine "derive", in the file Link.pm.