Class Node
A Class Node is used as a potential range for a Property Node.
It is represented by an object with "@type": "sh:NodeShape"
that is wrapped by the term sh:node
. This NodeShape is used to express all the characteristics and constraints of the Class Node. The most important constraint is sh:class
, which constraints the class(es) that the target entity must have. For sh:class
arrays are allowed, which are supposed to represent multi-typed entities (MTE).
The @id
of a Class Node is used to reference it in other parts of the Domain Specification, and so reuse already defined constraints for a specific Class. Details below.
1. Example
2. Key-value Table
The following table lists all possible terms that can be used by a Class Node. The order in the table reflects the recommended order of these terms within a Class Node (optional).
3. Semantics
3.1. Class-Matching
See SHACL specification.
A Class Node includes sh:class
to specify the class(es) that the verified entity MUST match. Domain Specifications use custom semantics for class matching.
Examples:
3.2. Properties
The terms sh:property
and sh:closed
are used in a Class Node to give further restrictions on the properties of the corresponding entity. Such a Class Node with property restrictions is also called Restricted Class Node. A Class Node without further property restrictions is called a Standard Class Node.
3.2.1. sh:property
See SHACL specification.
The term sh:property
lists the property shapes that the target entity must comply with. For every property, there is a corresponding Property Node in this list.
Example:
3.2.2. sh:closed
See SHACL specification.
The term sh:closed
can be used to specify if additional properties (other than the properties allowed by sh:property
) are allowed or not. In the past, Domain Specifications had "sh:closed": true
implicitly in all NodeShapes. Now the DS creator should specify the wished behaviour.
Example:
3.2.3. ds:propertyDisplayOrder
The term ds:propertyDisplayOrder
provides a list of property IRIs that reflect a wished order of the properties for display purposes. Details about this term can be found in DomainSpecification.md.
3.3. Metadata
Following terms represent metadata about the given class. These terms do not have any effects on the verification result; They have only informational character.
3.3.1. rdfs:label
The term rdfs:label
CAN be used to give the class a label (in different languages). The value for this term is a language-tagged string. The standard label for a class term is usually provided by its vocabulary itself, rdfs:label
can be used to overwrite that standard label or provide a single label for multi-class entities (a class that has multiple sh:class
entries).
Example:
3.3.2. rdfs:comment
The term rdfs:comment
CAN be used to describe the class (in different languages). The value for this term is a language-tagged string. The standard description for a class term is usually provided by its vocabulary itself, rdfs:comment
can be used to overwrite that standard description or provide a single description for multi-class entities (a class that has multiple sh:class
entries).
Example:
Last updated