/** \package crowdUser Contains classes allowing CPS to harness CrowdFlower's crowdsourced-obtained results as well as uploading new jobs.
CrowdUser provides two classes that have in common their close relation with the crowd, either communicationg directly with CrowdFlower (or an intermediary, the Antechamber) or dealing with its hard results. The classes crowdManager uses extensively HTTP protocol. An account to use CrowdFlower's \"self-service\" is necessary.
This class is in charge of the direct communication with CrowdFlower, uploading HITs after receiving the data necessary, retrieving the results and sending them to a Refiner instance.
Ameliorates the quality of the results obtained through the use of the crowd by using Ipeirotis and his students program get another label. It also provides several methods reading and parsing csv files.
This package contains two classes : MySQLbase and MediaBase. These classes are used to store and retrieve information, and, therefore, can also provide an "exchange area" for other objects to communicate. MySQLbase plays such a role : it saves comparisons results to avoid submitting them twice but also allows an object to write them and another to read them, thus serving as a buffer between the two.
Contains information on the media used. The most important one is the association between media real names and their identifier, an integer used by CPS to identify each media. Basically, it contains everything that is in the media.xml file.
This class stores results in a MySQL database. Methods are implemented to save HITs' hard results, i.e as they are sent by CrowdFlower. Such data is made of the answer to the question the workers are asked, but also their country, city, ip address, etc. Other methods allows to store refined results, i.e what is obtained after the program get another label is called on the hard data. These higher quality results are easily available because dedicated methods allow their retrieval.
This package contains two classes : Comparator and SplitSort. These class are not independent in any way : the Comparator contains several (as much as axes) instances of SplitSort in its attribute sorters. The SplitSort performs the quicksort iteration while generating necessary comparisons ; the Comparator gather these comparisons and sends them to other objects using its demandNewComparisons() method.
*/ /** \package myShell It is the interface between CPS and the rest of the computer as well as the user : it reads configuration files, writes the results, a log file and contains the main method.This package is made of three classes :
As its name indicates, it provides an easy way to write a log file. It is pretty straight forward : it has a constructor and an append method writing a given String at the end of the file.
This class's aim is to allow an easy access to the content of the config.xml configuration file as well as writing the results of the splitsort in the results.xml file. It also saves intermediary results.
Amazingly, it is the main class of this program. It contains the main method (in charge of parsing command line arguments and calling th right function), can display a quick help and, of course, conducts the other classes into using CrowdFlower's workers to sort media.