pySHACL/FEATURES.md at master · RDFLib/pySHACL (original) (raw)

pySHACL Features Matrix

Core Constraint Components

Value Type Constraint Components

Parameter Constraint Link Status Comments
sh:class ClassConstraintComponent status-complete
sh:datatype DatatypeConstraintComponent status-complete
sh:nodeKind NodeKindConstraintComponent status-complete

Cardinality Constraint Components

Parameter Constraint Link Status Comments
sh:minCount MinCountConstraintComponent status-complete
sh:maxCount MaxCountConstraintComponent status-complete

Value Range Constraint Components

Parameter Constraint Link Status Comments
sh:minExclusive MinExclusiveConstraintComponent status-complete
sh:minInclusive MinInclusiveConstraintComponent status-complete
sh:maxExclusive MaxExclusiveConstraintComponent status-complete
sh:maxInclusive MaxInclusiveConstraintComponent status-complete

String-based Constraint Components

Parameter Constraint Link Status Comments
sh:minLength MinLengthConstraintComponent status-complete
sh:maxLength MaxLengthConstraintComponent status-complete
sh:pattern PatternConstraintComponent status-complete includes sh:flags
sh:languageIn LanguageInConstraintComponent status-complete
sh:uniqueLang UniqueLangConstraintComponent status-complete

Property Pair Constraint Components

Parameter Constraint Link Status Comments
sh:equals EqualsConstraintComponent status-complete
sh:disjoint DisjointConstraintComponent status-complete
sh:lessThan LessThanConstraintComponent status-complete
sh:lessThanOrEquals LessThanOrEqualsConstraintComponent status-complete

Logical Constraint Components

Parameter Constraint Link Status Comments
sh:not NotConstraintComponent status-complete
sh:and AndConstraintComponent status-complete
sh:or OrConstraintComponent status-complete
sh:xone XoneConstraintComponent status-complete

Shape-based Constraint Components

Parameter Constraint Link Status Comments
sh:node NodeConstraintComponent status-complete
sh:property PropertyConstraintComponent status-complete See SHACL Property Paths feature table below
sh:qualifiedValueShape QualifiedValueShapeConstraintComponent status-complete includes sh:qualifiedValueShapesDisjoint
sh:qualifiedMinCount QualifiedMinCountConstraintComponent status-complete
sh:qualifiedMaxCount QualifiedMaxCountConstraintComponent status-complete

Other Constraint Components

Parameter Constraint Link Status Comments
sh:closed ClosedConstraintComponent status-complete
sh:ignoredProperties ClosedConstraintComponent status-complete
sh:hasValue HasValueConstraintComponent status-complete
sh:in InConstraintComponent status-complete

SPARQL Constraints

SPARQL Based Constraints

Parameter Constraint Link Status Comments
sh:sparql SPARQLConstraintComponent status-complete

SPARQL Based Constraint Components

Parameter Constraint Link Status Comments
sh:validator ConstraintComponent status-complete
sh:select SPARQLSelectValidator status-complete
sh:ask SPARQLAskValidator status-complete

SHACL Property Paths

Path Link Status Comments
Predicate Path status-complete
Sequence Paths status-complete
Alternative Paths status-complete
Inverse Paths status-complete
Zero-Or-More Paths status-complete
One-Or-More Paths status-complete
Zero-Or-One Paths status-complete

Non-Validating Shape Characteristics

Path Link Status Comments
sh:name status-complete
sh:description status-complete
sh:order status-missing
sh:group status-missing
sh:defaultValue status-missing

SHACL Advanced Features spec

Custom Targets

Parameter Link Status Comments
sh:target status-complete
sh:SPARQLTarget status-complete
sh:SPARQLTargetType status-complete

Annotation Properties

Parameter Link Status Comments
sh:annotationProperty status-missing
sh:annotationVarName status-missing
sh:annotationValue status-missing

SHACL Functions

Parameter Link Status Comments
sh:SHACLFunction status-complete fully implemented
sh:SPARQLFunction status-complete implemented using RDFLib

Node Expressions

Path Link Status Comments
sh:this status-complete
Constant Term status-complete
sh:filterShape status-complete not tested
SHACL Function status-complete
sh:path status-complete
sh:intersection status-complete not tested
sh:union status-complete not tested

Expression Constraints

Path Link Status Comments
sh:ExpressionConstraintComponent status-complete

SHACL Rules

Parameter Link Status Comments
sh:condition status-complete
sh:order status-complete
sh:deactivated status-complete
sh:entailment status-missing
sh:TripleRule status-complete
sh:SPARQLRule status-complete

SHACL-JS spec

The SHACL-JS features are implemented behind a Python "extras" feature. To enable it, you must install PySHACL using PIP with the extras included like pyshacl[js]

Javascript-based Constraints

Parameter Link Status Comments
sh:js status-complete

Javascript-based Constraints-Components

Parameter Link Status Comments
sh:validator status-complete
sh:JSValidator status-complete

Javascript-based SHACL Functions

Parameter Link Status Comments
sh:JSFunction status-complete
sh:parameter status-complete

Javascript-based SHACL Rules

Parameter Link Status Comments
sh:JSRule status-complete

Javascript-based Custom Targets

Parameter Link Status Comments
sh:JSTarget status-complete
sh:JSTargetType status-complete

Implementation Notes

SHACL Test Suite Failures:

- core/property/datatype-ill-formed.ttl : Waiting on RDFLib support for determining ill-formed Literals https://github.com/RDFLib/rdflib/issues/848
- sparql/pre-binding/shapesGraph-001.ttl : Prebinding to $shapesGraph is currently unsupported. This will be supported in the future.