The Projects page
VocBench is a collaborative platform. As such, different users may collaborate on a same project with different editing privileges. Above all users, the administrator is in charge of creating projects and of assigning them managers.
There are mainly two pages related to projects:
- The landing page for the administrator, showing the list of available projects, their status, characteristics etc.., allowing the administrator to create new projects, delete them etc..
- The Project Management page, which is available also to Project Managers
Listing, Creating, Deleting Projects
Projects can be listed, created and deleted by the administrator through the Landing Page, that is reached by the administrator right after they log into the system
The pages shows a table that will be filled with the projects created inside VocBench. Here follows a description of the table headers:
- Project Name : The name of the project
- Open/Close: tells whether a project has been opened inside the system. A project can be closed in order to release its resources. However, when a project is closed, it is not possible for common users to access it.
- Accessed: if the project has been selected by the user and is thus the one currently accessed by the client browser. All operations focused on a specific project will assume this selection as the reference project
- Model: the type of the dataset, it can be an RDFS or OWL ontology, a SKOS thesaurus, or an OntoLex lexicon
- Lexicalization: the type of lexicalization adopted, it can be RDFS, SKOS, SKOS-XL or OntoLex
- History: tells whether history has been activated for this project
- Validation: tells whether history has been activated for this project
- Repository Location: remote or local
- Actions: a button for deleting a project and a context menu for further actions (e.g. Edit ACL, edit project settings, see project Properties, ...)
Through the buttons on the panel heading it is possible to:
- Create a new Project
- Open or close all the projects in one go
- Refresh the projects list
- Inspect the ACL matrix
- Changes the project view settings and customize the project facets schema (both under the cog button)
Which kind of project best suits my needs?
In VocBench we introduced the notion of semantic model, or simply model, implying the core modeling vocabulary that is being used. Roughly speaking:
- if you are developing an ontology, the model to be adopted is OWL
- for a thesaurus or any kind of KOS (Knowledge Organization System), including authority lists, terminologies etc.. the model should be SKOS
- while if you are interested in developing a lexical resource with a fine-grain on lexical aspects (e.g. distinction between lemmas and other forms, term composition, lexical relations etc..) Ontolex-Lemon should be your choice.
Project Creation
To create a new project click on "Create" button. You will be prompted with a window like the one in figure below:
Here you have to fill (in order of appearance) the following fields:
Section Create Project:
- Project Name: the name of the project. Any name which can be stored as a folder in the file system is a valid project name.
- Optional data preloading: allows the user to preload data during the project creation. The available choices are:
- Do not preload any data: default selection, skips the data preloading.
- Preload from local file: loads the content of an RDF file picked from the local filesystem.
- Preload from URI: fetches and loads the data referenced by an URL (e.g. http://xmlns.com/foaf/0.1/).
- Preload from Dataset Catalog: exploits available Dataset Catalogs for loading a vocabulary.
- Base URI: any valid ontology URI is accepted. If the uri ends with no trailing # nor /, the default namespace will end with a #. If the URI ends with /, the default namespace will be the same as the baseuri.
- Model: it can be RDFS, OWL, SKOS or OntoLex depending on the model (RDFS and OWL for ontologies, SKOS for thesauri, OntoLex for lexicons) you want to adopt for your data.
- Lexicalization: it can be RDFS, SKOS, SKOS-XL or OntoLex depending on the lexicalization model you want to adopt for your data. If the adopted Model is OntoLex, then the Lexicalization model is forced to be OntoLex as well.
Please note that: as of version 4.0 and 5.0 of VocBench, the settings for the combinations of other models (RDFS, OWL or SKOS) with Ontolex as a lexicalization model in a project need still improvement. As a consequence, if you need to use Ontolex-Lemon at any extent in your project (from simply lexicalizing an existing ontology with lexical entries from an existing lexicon to building from scratch all of these resources we strongly suggest to choose Ontolex-Lemon both as the (semantic) model of the project and the lexical model. - History, Validation and Blacklisting: the checkboxes have to be ticked in order to activate the respective features for the project being created. Blacklisting can be activated only if Validation is activated as well.
- Undo: Enable the possibility to undo operation on the data.
-
Trivial Inference: optionally enables trivial reasoning (e.g. resolution of inverse and symmetric properties) to assert and retract triples.
Upon the addition of a triples p o
:- if
p
is anowl:SymmetricProperty
, then the tripleo p s
(swapping the subject and object of the original triple) will be also added - if
p
has inversep'
orp'
has inversep
, then the tripleo p' s
(swapping the subject and object of the original triple, and using the inverse property as predicate) will also be added
s p o
, the triple that would have been materialized according to the rules above will be also deleted.
This trivial reasoning is based on the schema existing at the beginning of a transaction: therefore, its soundness and completeness depends on the fact that a property is not used in the same transaction that manipulates its definition. - if
Section Data Store:
- Repository Access: one of:
- CreateLocal: creates a local data repository.
- CreateRemote: creates a repository on a remote triple store. Currently there are configurable settings for RDF4J and GraphDB stores.
- AccessExistingRemote: access an existing repository and creates a project by using the data already there.
- Remote Access Config: enabled only for remote repositories, allows the user to specify the server URL and the access credentials (username and password)
- Repository ID Fields and Configuration:
- In order to enable options for History and Validation, the related checkboxes in the previous section must have been selected
- For both "Create" options for repository access, the IDs of the repositories will follow predefined conventions.
- If the AccessExistingRemote option has been chosen, the Configuration boxes will be greyed out as the repository has already been configured and needs only to be accessed
Section Optional Settings:
This section is initially hidden, because the default configuration will be fine in most circumstances. The figure below shows the content of the section, after the user clicked on the collapse/expand (rotating) triangle near the section name.
There are four subsections here.
- URI Generator: this section allows to configure which URIGenerator that will be used generate resource URIs automatically (in those circumstances in which the user has not indicated them explicitly).
- Rendering Engine: this section allows to configure which Rendering Engine will be used to produce a human-intelligible representation of the resources displayed in different parts of the UI.
- Resource Metadata: this section is about the configuration of the automatic management of resource-level metadata. It has been originally designed for the automatic update of date-time metadata about created or modified resources, but its usage could be wider. This topic is explained in detail on the dedicated page.
- SHACL Shape Validation: this section is about data validation using SHACL shape definitions. To enable such feature, it is necessary to:
- check the checkbox "Enable"
- after the project has been created, load shapes that define actual constraints on the data
- Validation enabled (true by default): tells whether the (loaded) SHACL shapes are enforced interactively on every commit, aborting any change that would violate any constraint. Consequently, the data will always be valid with respect the loaded shapes. Conversely, if this setting is set to false, then data can become invalid and violations can be detected later by means of the batch validation. This settings can be changed afterwards
- Validation results limit total (-1 by default): limits the number of validation results per report: -1 means unlimited, 0 means that validity is ascertained but not validation result is reported in detail, while n means that at most n results will be included in the report. The property rdf4j:truncated has been introduced to indicate whether a report is truncated or not
- Validation results limit per constraint (true by default): limits the number of validation results per constraint. The same policy discussed above applies
Both the URIGenerator and the Rendering Engine is configured by the system automatically, by choosing an implementation suitable for the indicated lexicalization model. To choose a different implementation, do the following:
- Uncheck the checkbox "User default settings"
- Use the dropdown "Plugin" to choose the implementation
- Use the dropdown "Configuration" to choose a configuration type, and if enabled press the button "Configure" to edit the configuration properties
The documentation of Semantic Turkey lists the predefined URIGenerator and RenderingEngine implementations, together with their configuration options.
A final Other options section contains:
- Universal access level: Set the universal access level for this project. The default for this option can be established in the System configuration panel. More details about this option in ACL documentation.
- Open at startup: If true, the project is automatically opened when SemanticTurkey server starts up. As well as the previous option its default can be configured from the System configuration panel.
Repository Configuration
Each triple store may support different type of configurations. Currently there are configurable settings for RDF4J and GraphDB stores.
In particular, RDF4J offers three kind of connections:
- in-memory: a repository managed completely in-memory. The two options provided by the connector (persistent/non persistent) specify which kind of project will be managed. In the first case (persistent) the data will be always saved in real time, with user modifications, in the latter case it will require for the project to be explicitly saved
- native: this corresponds to a repository using dedicated on-disk data structures for storage
- remote: allows for remote connection to a RDF4J-compliant server. Currently supported stores are RDF4J itself and GraphDB.
The Configuration menu provides a list of properties which depend on the chosen triple store. These properties are declared by the connector itself and are thus dynamically fed to the user interface. The documentation for the parameters of RDF4J is available in a dedicated section of the RDF4J user manual. Same for GraphDB Sail Configuration.
However, a tooltip over each of the shown parameters should provide enough explanation to understand its use.
Also, in case of a remote connection, if any of History or Validation (or both) has been selected during the initial part of the project configuration, the changetracking-sail jar should be dropped onto the target triple store, see instructions in the system-administration manual. Similarly, if Trivial Inference Engine has been selected, the trivial-inference-sail jar should be dropped onto the target triple store
Project settings
Some of the settings configured during the project creation procedure can be changed once the project is already activated. From the projects list page, by clicking on the Edit project settings option in the project context menu, the following dialog is prompted.
Some settings, in order to be edited, strictly require the project to be inactive, so the above editor is available only for closed projects.
From such editor it is possible to:
- Activate or deactivate the Open at startup option, in order to let the system automatically open the project when the SemanticTurkey server starts up.
- Activate or deactivate the Blacklisting option (only for project with Validation activated). See History, Validation and Blacklisting documentation for details about this feature.
- Activate or deactivate the SHACL Shape Validation (on commit) option (only for project with SHACL Validation enabled). When active, the validation of SHACL shapes is run at every commit.
- Activate or deactivate the Undo feature.
- Change the Rendering Engine adopted and its configuration.
- Change the URIGenerator adopted and its configuration.
Note: in order to make the changes effective it may be necessary to restart the repository. This operation can be executed automatically on remote repositories by ticking the dedicated checkbox (see the figure above), or, in case of local projects, it has to be executed manually.
Project labels
Project renaming is an operation not allowed in VocBench. This limitation is due to the fact that the project name is actually an identifier which is widely referenced in the data structure of SemanticTurkey. In order to overcome this limitation, VocBench offers the possibility to set multilingual labels to projects. From the context menu of the project, by clicking on Edit labels entry, the following dialog is prompted where you can set a label to show for a specific language.
User can enabled/disable the visualization of the labels through the rendering button placed on the top bar of the project list. The label shown when rendering is enabled depends on the active localization language. If no label is set for the active language, the project rendering falls back on the project name.
Further actions
Once a project has been created, by selecting it, it is possible to enable further actions. It is possible in fact to delete a project, just clicking on the button with the trashbin icon under the Actions column.
By clicking on the Properties entry in the project context menu a modal dialog shows basic properties of the project
Only for remote (and close) projects is also possible to show and edit the information to access to the remote repository. The following dialog can be open by clicking on the Edit remote Repo configuration entry in the project context menu.
Project facets
In case of large amount of projects loaded in VocBench, the default view, which consists in a flat list of projects, may result poorly organized and difficult to read. This is where the new facts-based view, available from version 9.0.0, comes useful. This view allows you to group projects according a chosen facet in order to make the view cleaner and organized efficiently.
The facets are aspects and attributes that characterize a project. VocBench provides six pre-defined facets: Model, Lexicalization, History and Validation, which are unmodifiable attributes chosen during the creation of the project, Category and Organization.
In addition to such pre-defined facets, VocBench allows the administrator to define custom facets.
Clicking the "cog" button in the top right corner of the panel and selecting the entry Custom project facets schema settings, the following dialog is prompted.
A new facet can be added through the "plus" button. Then the editor shows several fields that can be filled in order to define a new facet:
- Name: a unique name that identifies the facet;
- Required: tells if the facet must be provided to the project;
- Description: a natural language description that provide further information to the user (it will be displayed as a tooltip). It is possible to provide multiple descriptions in different languages, VocBench will display the proper description according the chosen localization;
- Localized display names: the facet name to display to the user. Also in this case, as well as the description, multiple names can be provided in order to support the multilingual UI;
- Type: the value type of the facet (e.g. string, integer, boolean, ...);
- Enumeration: optionally an enumeration can be defined in order to restrict the admitted values;
Clicking on the Edit facets entry in the project context menu (under Actions column), the following dialog shows up and it allows the editing of the project facets. As you can see, there are the built-in facets Category and Organization plus the custom one just defined.
Now that we know what facets are, how to define customs and how to set them in a project, let's see how can they be used to organize the project view.
As we have already seen, the "cog" button, placed on the topbar of the project list, opens a menu.
Selecting Project view settings, user can customize the visualization of the project view.
Here it is possible to choose between two visualization mode: List, namely the "classic" flat list of projects, and Facet based. Selecting the latter, it appears a Facet selector which allows the selection of the facet on which the projects have to be grouped.
Additionally, in the same dialog, it is possible to customize the info shown in the list by changing the columns order or hiding some of them.
Here it is an example of facets-based visualization based on Category. The categories here shown have been assigned arbitrarily by the administrator. The last one "Unclassified" is a dedicated group that collects those projects where the category (or in general the chosen facet) has not been specified.
Note: projects facets can be created, edited and assigned only by administrator users, which are the only users who can access the Projects page. Anyway the possibility to change the visualization preferences through the Projects view settings dialog, is also available for non-admin users through the project selection dialog (the one accessible through the button on the topmost bar of the screen).
Project Access Control
Each project in VB contains an Access Control List, representing the consumers that can access its content. This enables a permission-by-delegation mechanism for which a project can automatically grant access to its content to users logged on another project, providing that this second project has been allowed to access the content of the first.