*Deprecated* See https://wiki.duraspace.org/display/VIVODOC/All+Documentation for current documentation

Instructions for editing an ontology in Vitro

Setting domain and range classes on object properties

One of the classic dilemmas in Vitro focuses on whether to provide explicit domain and range classes for object properties. Doing so has the welcome side effect of controlling when a property shows up for editing through the editing interfaces, but the negative effect of not allowing the choice except for the specifically - indicated classes. The latter effect has too often lead to distortion of the ontology, particularly the addition of additional levels simply to support the desired editing choices. These additional levels make the ontology harder to understand and may cause problems with other properties where a different hierarchical order might be preferable.

An example may clarify. The investigatesSubjectArea property will almost always have a person as its domain, but might occasionally have a department, project, or grant as its domain. To provide the proper editing choice for people without unnecessarily restricting domain values to be of class Person, we can create a restriction on Person for the property investigatesSubjectArea.

To do this in VItro, log in and go to the Person class control panel. At the very bottom of the page, select "all values from" as the type of restriction to enter. Since this will not be a restriction intended to imply that anything having an investigatesSubjectArea property is in fact a person, we use "necessary" rather than "necessary and sufficient" as the choice of restriction type. Select the investigatesSubjectArea property as the property to restrict, and select core:SubjectArea as the class for range values.