Annotation tool TILTer for the annotation and conversion of privacy policies into the TILT schema.
- Python 3.7.0 or above
- Docker
- docker-compose
- Type
source ops/variables/local.txt
- Type
docker-compose up
in the Terminal Window. - Access http://localhost:5000 and http://localhost:5000/api/docs/ in your favorite Browser
This is a setup Guide for Ubuntu.
- Create a Python Environment with
python -m venv <your-env-name>
- Activate your python environment with
source <your-env-name>/bin/activate
- Upgrade Pip with
python -m pip install -U pip
and install all necessary packages withpip install -r app/requirements.txt
- Type
source ops/variables/local.txt
- Run the app with
./scripts/start_local.sh
TILTer is deployed on a TU VM.
Inside the VM the repository is clonded and has to be manually synched with
the remote repository. For access to the VM ask Michael.
In the engine a log is created from the console output via nohub. All output is saved in nohub.out
in the
root directory of the titler.
The TILTer is available under: 'https://daskita-tilter.infra.ise-apps.de/'
It is recommended to use screens for managing the application on the compute engine.
Start a new screen by: screen -S <screen_name>
Reattach a screen by: screen -r <screen_name>
See all screens with: screen ls
Deployment variables are stored seperately.
The deployment will be active for 90 days (from 31.05.2021) without any costs. Afterwards running the TILTer will costs ~13 Euros per month.
The Deployment can be accessed under: http://34.141.64.214:5000/
For a detailed manual for the titler go here
Currently supported Languages are English (standard) and German. These are realized using the pybabel
package. For more information regarding this topic please visit the babel documentation.
New languages are added using the pybabel
command as follows:
- Append the code for the new Language to the
LANGUAGES
-list inconfig.py
. For available language codes check the babel documentation. - Add new text to be translated using the
_([text])
command, where[text]
is the string to be translated. - Execute
pybabel extract -F babel.cfg -o translations/messages.pot .
in/app/
. - Execute
pybabel init -i translations/messages.pot -d translations -l [code]
inapp
, where[code]
is the language code you chose in the first step. - Now add translations using
msgstr ""
entries in the file to/app/translations/[code]/LC_MESSAGES/messages.po
, where[code]
again is the language code you chose in the first step. - Compile the changes using
pybabel compile -d translations
in/app/
. - Restart the flask application via docker.
When updating existing languages there is no need to follow the whole procedure above. Instead use the following steps:
- Add new text to be translated using the
_([text])
command, where[text]
is the string to be translated. - Execute
pybabel extract -F babel.cfg -o translations/messages.pot .
in/app/
. - Execute
pybabel update -i translations/messages.pot -d translations
in/app/
. - Now add translations using
msgstr ""
entries in the file to/app/translations/[code]/LC_MESSAGES/messages.po
, where[code]
is the language code associated with the target language. - Compile the changes using
pybabel compile -d translations
in/app/
. - Restart the flask application via docker.
- Create yourself an account.
- Visit http://tilter.implementation.cloud/api/docs.
POST
/auth
with your credentials and save your apiKey.
{
"username": "janedoe",
"password": "rEyl3TuS4Qq"
}
- Authorize in the upper right corner with your apiKey (e.g.
eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTYyNjUxOTA5OSwianRpIjoiM2Q0ODVkOGMtMmU4NS00OTg4LTk4YTEtNjlmYzI4NDI2MDgwIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6ImVsaWFzZ3J1ZW5ld2FsZCIsIm5iZiI6MTYyNjUxOTA5OSwiZXhwIjoxNjI2NTE5OTk5fQ
). Note: You need to generate a new one from time to time. POST
/task/create
with
{
"name": "My Company",
"text": "Here we describe how we collect, use, and handle your personal data when you use our websites, software, and services (\u201CServices\u201D). For more information and details, please see...",
"html": false,
"url": "https://mycompany.com/privacy"
}
Tip: Use https://www.freeformatter.com/json-escape.html to escape your text
for correct json representation.
- Check the task list at http://tilter.implementation.cloud/tasks.
- Visit your created task and label all subtasks.
- Retrieve the resulting tilt document via http://tilter.implementation.cloud/api/task/:id/tilt where
:id
is something like60d08460e26c9b911f6c81aa
depending on your task.
MIT License
2020
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
This software depends on the following third party software products:
- label-studio under Apache 2.0 License
- bootstrap under MIT License
- flask under BSD-3-Clause License