UD annotatrix/UD annotatrix at GSoC 2017

From Apertium
Jump to navigation Jump to search


The contributions were made to the master branch of the UD annotatrix repository on GitHub.

The idea

Before GSoC 2017 Apertium had a web-interface for visualising syntactic trees written in Java-Script and HTML. The system allowed the user to either enter their trees in the text area or upload a treebank from a file and switch between sentences. The aim of this project was to create a graphical editing interface for Universal Dependencies annotation based on the existing project.

Main work on the project


Primarily, the tool was using brat's JavaScript library for visualisation. As a part of this project, I have rewritten the visualisation part using the Cytoscape library. Cytoscape is a JS graph library primarily developed for biologists, but avaliable to use for different purposes. This was made to add functionality which brat's visualisation library could not provide, namely, easier implementation of editing functionality and alignment (RTL, top to bottom) settings.

The source code for visualisation support is mostly located in ./standalone/lib/visualiser.js.

Editing functionality

Currently, the interface allows to:

  • Draw depencencies
  • Label dependencies

The source code for visualisation support is mostly located in ./standalone/lib/gui.js.

Server version

There is also a ...

The product

The web-interface is currently available on GitHub pages: [1]. The basic manual to the interface is provided on the help page.

The product has some functionality not present in other tools:

  • It supports multiword tokens visualisation
  • It supports RTL sentences

The project's architecture and components


All the JS dependencies needed for the standalone version are included in the package. These are:

  • jQuery
  • Cytoscape
  • head.js

The server version is written on Python 3, Flask.

The project's package consists of sever and standalone sub-directories.


The standalone sub-directory contains the version of the product which can function without the server package. This directory contains the dependencies (listed above, located in directory ./ext) and the main native code of the project. The native code consists of:

  • annotator.js


The server directory contains additional support ...

Usability testing

To evaluate the usability of the interface, ...

To be done

All the existing bugs and plans are listed on the issue page of the main repository. The main directions of the further development could be:

  • Improving the server version. Currently the only thing server version allows to do is saving user corpora on server. Other options could be:
    • The ability to create user accounts and have "projects" with a number of uploaded corpora
    • Editing history managing
  • Improving the GUI functionality
  • More on format conversion
    • SD parse
  • Work on style
    • Improving style of the website
    • Adding user-selected style settings