Old Release

This documentation relates to an old version of VIVO, version 1.7.x. Looking for another version? See all documentation.

A custom form allows your users to edit complex data structures on a single page, instead of editing one triple at a time.


Custom entry forms allow VIVO to transcend the general-purpose, utilitarian editing scheme of Vitro. Without custom entry forms, VIVO users must edit each RDF triple individually. With a custom entry form, users can edit a complex data structure on a single page. 

VIVO is distributed with a dozens of custom entry form generators. You may want to modify these form generators, or add more of your own.

An example

Say you wish to establish that a particular person is a member of a particular academic department. This relationship can be expressed in a single RDF statement.

But what if the academic department doesn't exist in VIVO yet? You will want to create that department, and assign a name to it. You may also want to record the role that your person plays in that department, when their membership began, and when it ended (if it is not ongoing).

The data structure for this information looks something like this:

Note that this reflects the VIVO 1.5 Ontology. The data structures have changed significantly in VIVO 1.6 and beyond.

Without a custom entry form, you would need to record each piece of data individually.

VIVO includes a custom form generator for this relationship. The custom entry form looks like this:

How is it created?

The creation of custom entry forms is an arcane and eldritch art, for which little documentation is available.

Each form requires a Java class known as a EditConfigurationGenerator. The generator describes the data structure being created, lists the SPARQL queries used, and includes a reference to the Freemarker template that will render the form.

You can start by examining the existing generators in this directory

and the Freemarker templates found here

There is also a short page of technical description called Implementing custom forms using N3 editing.

  • No labels