Annotating relationship arcs in Prodigy

Our current manual annotation process (in brat) includes use of relationships between entities that have an arc between them. However, we noticed that in the README, in order to get an arc between entities, this has to be specified ahead of time, as per PRODIGY_README.html#dependencies

Is there an easy way (using a recipe, css, html, etc.) to implement manual annotation of relationships between entities? I noticed in this thread customizing-prodigy-for-ner-and-relationship-extraction, you mentioned use of Mustache to possibly achieve this. Could you please elaborate? This functionality is very critical for the majority of our annotation tasks.

Also, we use brat attributes to specify the degree of certainty for specified entities. Is this possible using a custom recipe?

Thanks very much in advance!

Prodigy currently doesn’t support manual dependency annotation, because we don’t yet have a better and more efficient solution than any of the existing free tools. Manual dependency annotation is complex, because the standard process consists of a lot of steps: select the head and child, define the dependency direction and the label. So instead, we currently recommend to prepopulate as much as possible and construct the dependencies programmatically, so you can achieve a semi-binary interface. Even if you go through more options, you can reduce the cognitive load by focusing on one complete arc at a time, rather than the multiple steps it takes to construct it manually.

(I think the solution I discuss in the thread is something I came up with before we implemented an interface to render the arcs. So unless you want to build the full click-and-drag interaction yourself in JavaScript, there isn’t much you can do with just template rendering that you can’t do in the existing interface.)

So is this an additional setting you’d want to specify on top of an entity annotation? So, the user would label the arc, and then specify an additional setting?

Prodigy really wants you to do one, easily measurable thing at a time. From what you describe, it sounds like you have everything you need covered by Brat? So I’m not even sure I’d recommend you to try and rebuild those workflows with Prodigy – unless your goal was to break down the task into smaller steps to try to make it faster and more automated.