The SALSAH GUI Ontology

Overview

The SALSAH GUI ontology provides entities that can be used in user-created ontologies to indicate to SALSAH (or to another GUI) how data should be entered and displayed.

The SALSAH GUI ontology is identified by the IRI http://www.knora.org/ontology/salsah-gui. In the Knora documentation in general, it is identified by the prefix salsah-gui, but for brevity, we omit the prefix in this document.

Properties

guiOrder

Can be attached to an owl:Restriction representing a cardinality in a resource class, to indicate the order in which properties should be displayed in the GUI. The object is a non-negative integer. For example, a property with guiOrder 0 would be displayed first, followed by a property with guiOrder 1, and so on.

guiElement

Can be attached to a property definition to indicate which SALSAH GUI element should be used to enter data for the property. This should be one of the individuals of class Guielement described below.

guiAttribute

Can be attached to a property definition to provide attributes for the GUI element specified in guiElement. The objects of this predicate are written in a DSL with the following syntax:

object = attribute name, "=", attribute value ;

attribute name = identifier ;

identifier = letter , { letter } ;

attribute value = integer | decimal | percent | string | iri ;

percent = integer, "%" ;

iri = "<", string, ">" ;

The attributes used with each GUI element are described below under Individuals.

guiAttributeDefinition

Used only in the salsah-gui ontology itself, as a predicate attached to instances of Guielement (see Individuals), to specify the attributes that can be given as objects of guiAttribute when a given Guielement. is used. The objects of this predicate are written in a DSL with the following syntax:

object = attribute name, [ "(required)" ], ":", attribute type, [ enumerated values ] ;

enumerated values = "(", enumerated value, { "|", enumerated value } ")" ;

attribute name = identifier ;

attribute type = "integer" | "decimal" | "percent" | "string" | "iri" ;

enumerated value = identifier ;

identifier = letter , { letter } ;
Enumerated values are allowed only if `attribute type` is `string`.
If enumerated values are provided for an attribute, the attribute
value given via `guiAttribute` must be one of the enumerated values.

Classes

Guielement

The instances of this class are individuals representing SALSAH GUI elements for data entry.

Individuals

Colorpicker

A GUI element for selecting a color. A property definition that uses this element may also contain a guiAttribute predicate whose object is a string in the form "ncolors=N", where N is an integer specifying the number of colors to display.

Date

A GUI element for selecting a date.

Geometry

A GUI element for selecting the geometry of a two-dimensional region.

Geonames

A GUI element for selecting a Geonames identifier.

Interval

A GUI element for selecting a time interval in an audio or video recording.

List

A GUI element for selecting an item in a hierarchical list (see ListValue). A property definition that uses this element must also contain this guiAttribute predicate:

  • "hlist=<LIST_IRI>", where LIST_IRI is the IRI of a knora-base:ListNode that is the root node of a hierarchical list.

Pulldown

A GUI element for selecting an item in a flat list (see ListValue) using a pull-down menu. A property definition that uses this element must also contain this guiAttribute predicate:

  • "hlist=<LIST_IRI>", where LIST_IRI is the IRI of a knora-base:ListNode that is the root node of a hierarchical list.

Radio

A GUI element for selecting an item in a flat list (see ListValue) using radio buttons. A property definition that uses this element must also contain this guiAttribute predicate:

  • "hlist=<LIST_IRI>", where LIST_IRI is the IRI of a knora-base:ListNode that is the root node of a hierarchical list.

Richtext

A GUI element for editing multi-line formatted text.

Searchbox

A GUI element for searching for a resource by matching text in its rdfs:label. For Knora API v1, a property definition that uses this element may also contain this guiAttribute predicate:

  • "numprops=N", where N is an integer specifying the number of describing properties to be returned for each found resource.

For Knora API v2, the guiAttribute has no effect.

SimpleText

A GUI element for editing a single line of unformatted text. A property definition that uses this element may also contain a guiAttribute predicate with one or both of the following objects:

  • "size=N", where N is an integer specifying the size of the text field.
  • "maxlength=N", where N is an integer specifying the maximum length of the string to be input.
Slider

A GUI element for choosing numerical values using a slider. A property definition that uses this element must also contain a guiAttribute predicate with both of the following objects:

  • "min=N", where N is an integer specifying the minimum value of the input.
  • "max=N", where N is an integer specifying the maximum value of the input.
Spinbox

A GUI element for choosing numerical values using a spinbox. A property definition that uses this element may also contain a guiAttribute predicate with one or both of the following objects:

  • "min=N", where N is an integer specifying the minimum value of the input.
  • "max=N", where N is an integer specifying the maximum value of the input.
Textarea

A GUI element for editing multi-line unformatted text. A property definition that uses this element may also contain a guiAttribute predicate with one or more of the following objects:

  • "width=N", where N is a percentage of the window width (an integer followed by %).
  • "cols=N", where N is an integer representing the number of colums in the text entry box.
  • "rows=N", where N is an integer specifying the height of the text entry box in rows.
  • "wrap=W", where W is soft or hard (see wrap).
Checkbox

A GUI element for choosing a boolean value using a checkbox.

Fileupload

A GUI element for uploading a file.