Settings Management

Semantic Turkey distinguishes 4 levels, or "scopes", for settings:

Order of Evaluation of Settings and their Defaults

Settings may have default values. These correspond to values that can be specified at a certain scope for a certain scope. E.g. a default for PU setting defined at the system level is a default value for a setting that operates at the PU level, but being defined at system level is shared by all users on all projects. So, if a value of for that PU setting is not defined by any user for any given project, that default is used. PROJECT and USER settings have only system-level defaults. PU settings have different level of defaults: project, user and system.

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

The expression default(<scope>, <location>) referes to the default value, set for the setting of scope <scope>, on a certain scoped <location>. E.g. default(pu, user) refers to the default value for any project preference, expressed by the user. So this default value is set for a certain setting 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.

The concept of default above is not to be confused with factory settings. Defaults are stored in files and have...default values :-), which can be however changed by users or, depending on the scope of the default, project managers or administrators only. Factory settings are the last resource for certain settings and might be hard-wired in the code, that is, if a value is not set, and no default is available, then the application resorts to a certain factory-set default value.

Location of Settings Files

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

Property Name short reference stored in
user settings (system preference) USER users\<username>\plugins\<plugin>\settings.props
pu settings (project preferences) PU pu_binding\<projectname>\<username>\plugins\<plugin>\settings.props
system settings SYS system\plugins\<plugin>\settings.props
project settings PROJECT projects\<projectname>\plugins\<plugin>\settings.props
user settings default default(user,system) system\plugins\<plugin>\user-settings-defaults.props
pu settings - project default default(pu,project) projects\<projectname>\plugins\<plugin>\pu-settings-defaults.props
pu settings - user default default(pu,user) users\<username>\plugins\<plugin>\pu-settings-defaults.props
pu settings - system default default(pu,system) system\plugins\<plugin>\pu-settings-defaults.props
project settings defaults default(project, system) system\plugins\<plugin>\project-settings-defaults.props

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 they foresee to have more than one instance. All IDs have the form of a namespace.

Notable Settings

We list here some settings that are usually not known, or not available through the usual user interface (e.g. VocBench), to provide an easy reference for Semantc Turkey users.

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