Sparnatural SHACL configuration shapes

Creation date: 2023-05-31
Last updated: 2023-05-31 00:00:00
Version: 1.x
Creator: thomas.francart@sparna.fr
Publisher: http://sparna.fr

Table of Contents


Description

This defines a subset of the SHACL specification combined with custom properties to define the necessary structure for the configuration of Sparnatural

Model documentation

Sparnatural entity

https://data.sparna.fr/ontologies/sparnatural-config-shapes#Entity

This node shape specifies how NodeShapes should be declared to be used for Sparnatural configuration. It is required that NodeShapes are IRIs.

Property name URI Expected value Card. Description Example
type rdf:type sh:NodeShape
1..*
Class. Value must always be sh:NodeShape.
label rdfs:label rdf:langString or xsd:string
0..*
The label of the entity to be displayed in Sparnatural. Labels are multilingual, and can provide multiple labels in different languages. Lhe label in the current user language is displayed; If no label is given, the local part of the URI is used.
order sh:order xsd:decimal
0..*
The order of this entity in the entity selection dropdown.
tooltip 1 volipi:message rdf:langString or xsd:string
0..*
The preferred tooltip that will be displayed when this entity is hovered. This can contain HTML markup. Tooltips are also multilingual, you can provide one tooltip per language, and the tooltip in the current user language is used.
tooltip 2 sh:description rdf:langString or xsd:string
0..*
A tooltip that will be displayed when this entity is hovered, if no preferred tooltip is provided. This can contain HTML markup.
fontawesome icon code volipi:iconName xsd:string
0..1
The fontawesome icon code that will be displayed by Sparnatural, e.g. "fa-solid fa-user" fa-solid fa-user
icon url volipi:icon IRI
0..1
A reference to an icon URL that will be displayed on Sparnatural. Use of this is discouraged, prefer volipi:iconName
target class sh:targetClass Target class
0..*
The actual URI of the class that this shape corresponds to, that will be inserted in the SPARQL queries. NodeShapes can either have sh:targetClass or they can be rdf:type rdfs:Class, in which case the URI of the NodeShape is assumed to be the URI of the class itself.
node kind sh:nodeKind IRI
0..1
If used on a NodeShape with value sh:Literal, then Sparnatural will treat this shape as a Literal and will not generate an rdf:type triple in the SPARQL query.
datatype sh:datatype IRI
0..1
If used on a NodeShape, then Sparnatural will treat this shape as a Literal and will not generate an rdf:type triple in the SPARQL query.
language in sh:languageIn BlankNode
0..1
If used on a NodeShape, then Sparnatural will treat this shape as a Literal and will not generate an rdf:type triple in the SPARQL query.
unique lang sh:uniqueLang xsd:boolean
0..1
If used on a NodeShape, then Sparnatural will treat this shape as a Literal and will not generate an rdf:type triple in the SPARQL query.
deactivated sh:deactivated xsd:boolean
0..1
If marked with sh:deactivated, a shape will be filtered out from the initial list of classes
or sh:or BlankNode
0..*
subclass of rdfs:subClassOf Target class
0..*
If the NodeShape is also a Class, it can have a subClassOf reference to the class(es) from which it will inherit the properties

Sparnatural property

https://data.sparna.fr/ontologies/sparnatural-config-shapes#Property

This node shape defines how PropertyShapes should be declared to be used for Sparnatural configuration. It is required that PropertyShapes are IRIs, not blank nodes. Note how the target of this shape is defined as all objects of sh:property predicate, to allow working with property shapes with no explicit type.

  • Nodes: BlankNodeOrIRI
  • Applies to objects of: http://www.w3.org/ns/shacl#property
Property name URI Expected value Card. Description Example
entity / shape ^sh:property Sparnatural entity
1..*
The entity from the configuration to which the property is attached. Note that this is expressed as an inverse property on the PropertyShapes, for ease of use when defining SHACL configurations in Excel tables.
property sh:path BlankNodeOrIRI
1..1
The property IRI, or the SHACL property path that this property shape is constraining.
order sh:order xsd:decimal
0..1
The order of this property in the property selection drpdown.
name sh:name rdf:langString or xsd:string
0..*
The name of the property to be displayed. Labels are multilingual, and can provide multiple labels in different languages. Lhe label in the current user language is displayed; If no label is given, the local part of the URI is used.
tooltip 1 volipi:message rdf:langString or xsd:string
0..*
The preferred tooltip that will be displayed when this entity is hovered. This can contain HTML markup. Tooltips are also multilingual, you can provide one tooltip per language, and the tooltip in the current user language is used.
tooltip 2 sh:description rdf:langString or xsd:string
0..*
A tooltip that will be displayed when this entity is hovered, if no preferred tooltip is provided. This can contain HTML markup.
tooltip 3 sh:path/skos:definition rdf:langString or xsd:string
0..*
The definition of the property, that can be used as tooltip, if no tooltips are provided on the shape
tooltip 4 sh:path/rdfs:comment rdf:langString or xsd:string
0..*
A comment on the property, that can be used as tooltip, if no tooltips are provided on the shape, and there is no definition on the property
search widget dash:searchWidget IRI

config-core:SearchProperty, config-core:ListProperty, config-core:AutocompleteProperty, config-core:BooleanProperty, config-core:MapProperty, config-core:StringEqualsProperty, config-core:TimeProperty-Date, config-core:TimeProperty-Year, config-core:TimeProperty-Period, config-core:TreeProperty, config-core:NumberProperty

0..1
An explicit search widget to use for this property. If no explicit search widget is specified, a default one is determined based on the sh:datatype and other characteristics of the property shape.
role of the property (default label property) dash:propertyRole dash:LabelRole
0..1
If used with the value dash:LabelRole, indicate that this property shape describes the main label of the entities to which it is attached. This is used to fetch this property automatically in generated SPARQL queries, and to populate automatically dropdowns and autocomplete search with this property.
class (of the property value) sh:class IRI
0..1
Defines the entity in the configuration that is the value of this property. References the URI of a class that is itself referred to by an sh:targetClass from a NodeShape.
node shape (of the property value) sh:node IRI
0..1
Defines the entity in the configuration that is the value of this property. References a NodeShape that describes the target entity of the property. If no sh:class or sh:node is found, then a default behavior is proposed
deactivated sh:deactivated xsd:boolean
0..1
In case a property shape is marked as deactivated, it will not be shown in the interface
datasource (for lists and autocomplete) config-datasources:datasource BlankNodeOrIRI
0..1
The datasource to populate the widget of the property. If not provided, a default datasource is used.
sh:in sh:in BlankNode
0..1
If sh:in is used on the property shape, its default widget will be a dropdown and the list content will be read from the configuration instead of being read from a SPARQL query
datasource (for tree childrens) config-datasources:treeChildrenDatasource BlankNodeOrIRI
0..1
The datasource to populate the children node of a node in a tree widget
datasource (for tree roots) config-datasources:treeRootsDatasource BlankNodeOrIRI
0..1
The datasource to populate the root nodes of a tree widget
or sh:or BlankNodeOrIRI
0..1
Indicates alternatives for either multiple datatypes (e.g. xsd:string or xsd:dateTime), or multiple sh:class/sh:node, or different node kinds (e.g. IRI or Literal). The expected values are nodes with either an sh:datatype or an sh:class or an sh:node or an sh:nodeKind. 2 levels of sh:or are supported to deal with properties that can be either IRI or literals, and then indicate the sh:class(es) of the IRI shape, and the sh:datatype(s) of the literal shape. The actual list value of sh:or can be either a blank node or an IRI. Example : property with 2 datatypes : ([sh:datatype xsd:string][sh:datatype xsd:dateTime]), Example : property either IRI or literal ([sh:nodeKind sh:IRI; sh:class ex:class1][sh:nodeKind sh:Literal sh:or([sh:datatype xsd:string][sh:datatype xsd:date])]) Property with 2 datatypes : ([sh:datatype xsd:string][sh:datatype xsd:dateTime]), Property either IRI or literal ([sh:nodeKind sh:IRI; sh:class ex:class1][sh:nodeKind sh:Literal sh:or([sh:datatype xsd:string][sh:datatype xsd:date])])

Target class

https://data.sparna.fr/ontologies/sparnatural-config-shapes#TargetClass

A Class targeted by a NodeShape

Property name URI Expected value Card. Description
subClassOf rdfs:subClassOf Target class
0..*
Indicates the superclass or superclasses of this class, from which this node shape inherits. When a class is selected in Sparnatural, the properties of its superclasses will be proposed.
is target of ^sh:targetClass Sparnatural entity
0..*
A target class may be referenced by a NodeShape through sh:targetClass, or it can be itself a sh:NodeShape. The properties of the NodeShape are inherited by the subclasses.
definition skos:definition rdf:langString or xsd:string
0..*
The definition of the class, that can be used as a tooltip
comment rdfs:comment rdf:langString or xsd:string
0..*
A comment on the class, that can be used as a tolltip
label rdfs:label rdf:langString or xsd:string
0..*
The label of the class, to be used if no rdfs:label is found on the node shape