Properties: Settings and Preferences

Semantic Turkey distinguishes the following properties:

Settings and Preferences have also defaults that can be set at various levels. For instance, a user can set the default value for a given preference for all projects, so that if that preference is not set for a given project, the default will be applied. Project Managers can also set default project preferences for their managed projects, so that if no preference is set by the user, the project default preference applies.

Order of Evaluation of Properties and their Defaults

The following ones are the associated workflows for resolving the property value by first looking into the asserted value, and then on list of property defaults.

The expression default(<property-type>, <location>) referes to the default value, set for property of type <property type>, on a certain <location>. E.g. default(pp, user) refers to the default value for a project preference, expressed by the user. So this default value is set for a certain property by the user, and is considered for that property on all projects, unless overridden, in a specific project P, by a default specified by a project manager for P, or by an explicit value expressed by the user for P.

Location of Property Files

The following table lists all property types, including defaults for various locations and where their values/defaults are stored

Property Name short reference stored in
system preferences SP users\<username>\plugins\<plugin>\system-preferences.cfg
project preferences PP pu_binding\<projectname>\<username>\plugins\<plugin>\preferences.cfg
system settings SS system\plugins\<plugin>\settings.cfg
project settings PS projects\<projectname>\plugins\<plugin>\settings.cfg
system preference default default(sp,system) system\plugins\<plugin>\system-preference-defaults.cfg
project preference - project default default(pp,project) projects\<projectname>\plugins\<plugin>\preference-defaults.cfg
project preference - user default default(pp,user) users\<username>\plugins\<plugin>\project-preference-defaults.cfg
project preference - system default default(pp,system) system\plugins\<plugin>\project-preference-defaults.cfg
project settings defaults default(ps,system) system\plugins\<plugin>\project-settings-defaults.cfg

Each property is local to a plugin. Actually, the <plugin> placeholder may refer to an extension point (in that case, the property is shared by all plugins implementing the extension point) or by a specific plugin implementation. Plugin implementations in turn use their plugin ID if they are singletons, or generate specific IDs of the form: <PluginID>.inst_<instID> if the foresee to have more than one instance. All IDs have the form of a namespace.

Notable Properties

Project Settings

Available Languages: definition list in the defaults of the "languages" project property

Semantic Turkey comes with a default definition list of languages that can be shown in different options: editing languages per each project, language proficiencies of the users, language for showing the content, etc... Each of these options restricts the set of languages that can be chosen by users, adopted in projects etc.. but no language can be ever selected if it has not been by first declared in this definition list.

The definition list is actually a default for the "languages" project property defining the overall set of languages that can be adopted in a given project. As a consequence, the "language" property for each project is located in:

<STData>/projects/<projectname>/plugins/it.uniroma2.art.semanticturkey/settings.props

while the generic definition list is available at:

<STData>/system/plugins/it.uniroma2.art.semanticturkey/project-settings-defaults.props