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.