Usage
Getting started with Potato is easy! Here\'s what you need to do:
Install Potato to your machine
Potato has a Python-based server architecture that can be run locally or hosted on any device. In order to install Potato:
- Make sure you have Python version 3 installed
- Follow the quickstart instructions here.
Set up the project data
In order to input document and specify:
- Prepare
your input data (csv, tsv, or json) and upload it in the
data
folder - Specify where and in what format you want the output data
- Optional: Update the config YAML file with input and output data preferences
Create your codebook and schema
Next, you\'ll need to specify what annotators annotate:
- Create your annotation codebook and link it to the annotation interface
- Specify the
schema,
including:
- Annotation Type:
multiselect
(checkboxes),radio
(single selection),likert
(scale with endpoints labeled), ortext
(free-form) - Questions for annotators
- Answer Choices for multiselect and radio types
- End Labels and Length for likert type questions
- Optional Question Features:
required
,horizontal
(placement of answers is horizontal not vertical),has_free_response
(whether to include an open text box at the end of multiselect or radio question, like having an \"other\" option) - Optional Answer Features: tooltips, keyboard shortcuts, keywords to highlight
- Annotation Type:
- Optional: Format the schema for the YAML config file (basic examples, advanced examples)
Define annotation settings
There are a few other settings you can play with:
- Choose an existing html template for the annotation task or create a new one
- Optional: Specify privacy and access settings for the task
- Optional: Update the YAML file with the look and feel.
- Optional: Set up active learning
Launch potato locally
And that's it! You can go ahead and get started labeling data in one of two ways:
Option 1 (recommended): Follow the prompts given above to define a YAML file that specifies the data sources, server configuration, annotation schemes, and any custom visualizations (examples) and then launch potato.
potato start sentiment_analysis -p 8000
here sentiment_analysis is a folder with a configs
subfolder, and put your .yaml
file into that folder,
potato will automatically find all the config files under the configs
folder
Option 2: Launch potato without a YAML. In this case, the server will have you follow a series of prompts about the task and automatically generate a YAML file for you. A YAML file is then passed to the server on the command line to launch the server for annotation.
python3 potato/flask_server.py -p 8000
This will launch the webserver on port 8000 which can be accessed at http://localhost:8000. You can create an account and start labeling data. Clicking \"Submit\" will autoadvance to the next instance and you can navigate between items using the arrow keys. Potato currently supports one annotation task per server instance, though multiple servers may be run on different posts to concurrently annotate different data.
Find the right IP address for local usage
In many cases you might need to use potato within your local network. For example, you have some private data that are not allowed to be uploaded to a public server, and you want your annotators to access the interface using their own devices, here are the following steps: - Deploy potato on the server/computer where the data is hosted - Find the local address of your server (this is different from the public id address, it is the address that is only accessible within your local network)
-
For linux/mac go to the terminal, type
ifconfig en0
and press enter.- You will see a list of addresses, and please find the one after
inet
, for example, you should find one line looks like this:inet 192.168.1.218 netmask 0xffffff00 broadcast 192.168.1.255
- Use the address after inet, which is
192.168.1.218
in this case
- You will see a list of addresses, and please find the one after
-
On the annotator end, use
ip:port
in the browser. For example, if you have potato running on port 8000, and in the above case, the final address to access the interface will be192.168.1.218:8000
-
Please make sure your annotators are either within the local network (e.g. company or school's net), or are connected to the vpn if they are outside the local network.
-
You can also try the above link on your ipad or smartphones as long as they are connected to the same wifi as the server (could be your own laptop)