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 DSP-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 DSP-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](https://www.w3.org/TR/html5/sec-forms.html#element-attrdef-textarea-wrap)).
Checkbox
: A GUI element for choosing a boolean value using a checkbox.
Fileupload
: A GUI element for uploading a file.