A01 |
*Functional Properties |
A03++: multiple properties together |
X |
V |
X |
X |
V |
X |
|
*V |
min+max=1 |
25/02/2019 |
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A1_Functional_Properties |
A02 |
*Inverse-Functional Properties |
|
X |
V |
X |
X |
V |
X |
|
X |
NO: needs unique, count over sparql |
12/02/2019 |
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A2_Inverse-Functional_Properties |
A03 |
*Primary Key Properties |
|
X |
V |
X |
X |
V |
X |
|
X |
NO: needs unique |
14/02/2019 |
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A3_Primary_Key_Properties |
A04 |
*Subsumption |
All of class X are also of class Y |
X |
V |
V |
~ |
V |
V |
|
V |
sh:targetClass + sh:class |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A4_Subsumption |
A05 |
*Sub-Properties |
|
X |
V |
V |
X |
V |
X |
|
X |
|
12/02/2019 |
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A5_Sub-Properties |
A06 |
*Object Property Paths |
|
X |
V |
X |
X |
V |
X |
|
X |
|
12/02/2019 |
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A6_Object_Property_Paths |
A07 |
Allowed Values |
values in list |
V |
V |
X |
V |
V |
V |
|
V |
sh:in |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A7_Allowed_Values |
A08 |
Not Allowed Values |
values not in list |
X |
V |
X |
X |
V |
V |
|
~ |
sh:not + sh:in |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A8_Not_Allowed_Values |
A09 |
*Class Equivalence |
|
X |
V |
V |
X |
V |
X |
|
X |
|
12/02/2019 |
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A9_Class_Equivalence |
A10 |
*Equivalent Properties |
owl:sameAs for property |
X |
V |
V |
X |
V |
X |
|
V |
sh:equals + sh:node |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A10_Equivalent_Properties |
A11 |
Literal Value Comparison |
|
X |
X |
X |
X |
V |
V |
|
V |
sh:equals,sh:lessThan,sh:lessThanOrEquals |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A11_Literal_Value_Comparison |
A12 |
Value is Valid for Datatype |
|
X |
X |
X |
X |
V |
X |
|
V |
sh:datatype,sh:nodeKind |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A12_Value_is_Valid_for_Datatype |
A13 |
*Property Domains |
|
X |
V |
V |
X |
V |
X |
|
*V |
sh:targetSubjectsOf + sh:property + sh:class |
12/02/2019 |
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A13_Property_Domains |
A14 |
*Property Ranges |
|
X |
V |
V |
X |
V |
X |
|
V |
sh:targetSubjectsOf + sh:property/sh:class |
12/02/2019 |
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A14_Property_Ranges |
A15 |
*Class-Specific Property Range |
|
V |
V |
X |
V |
V |
V |
|
V |
sh:targetClass + sh:property + sh:class |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A15_Class-Specific_Property_Range |
A16 |
Data Property Facets |
string validations |
X |
V |
V |
X |
V |
X |
|
V |
sh:pattern, sh:minLength, sh:maxLength |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A16_Data_Property_Facets |
A17 |
Literal Ranges |
|
X |
V |
X |
X |
V |
X |
|
V |
sh:min/maxEx/Inclusive |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A17_Literal_Ranges |
A18 |
Negative Literal Ranges |
|
X |
V |
X |
X |
V |
X |
|
~ |
sh:not + sh:min/maxEx/Inclusive |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A18_Negative_Literal_Ranges |
A19 |
IRI Pattern Matching |
|
X |
X |
X |
X |
V |
V |
|
*V |
sh:pattern |
12/02/2019 |
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A19_IRI_Pattern_Matching |
A20 |
Literal Pattern Matching |
|
X |
V |
X |
X |
V |
X |
|
V |
sh:pattern |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A20_Literal_Pattern_Matching |
A21 |
Negative Literal Pattern Matching |
|
X |
V |
X |
X |
V |
X |
|
~ |
sh:not + sh:pattern |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A21_Negative_Literal_Pattern_Matching |
A22 |
*Existential Quantifications |
there is at least one p where x p y |
X |
V |
X |
~ |
V |
~ |
|
V |
sh:targetClass + sh:class + sh:minCount 1 |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A22_Existential_Quantifications |
A23 |
*Universal Quantifications |
for every p, x p y |
X |
V |
X |
X |
V |
X |
|
V |
sh:class + sh:minCount + sh:closed |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A23_Universal_Quantifications |
A24 |
*Value Restrictions |
|
V |
V |
X |
V |
V |
V |
|
V |
sh:in |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A24_Value_Restrictions |
A25 |
Use Sub-Super Relations in Validation |
if general p1 is mentioned, use specific p2 |
X |
X |
X |
X |
V |
X |
|
X |
NO: needs equals across targets |
12/02/2019 |
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A25_Use_Sub-Super_Relations_in_Validation |
A26 |
Negative Property Constraints |
not use p |
X |
V |
X |
X |
V |
V |
|
~ |
sh:not sh:property |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A26_Negative_Property_Constraints |
A27 |
Language Tag Matching |
|
X |
X |
X |
X |
V |
X |
|
*V |
sh:languageIn |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A27_Language_Tag_Matching |
A28 |
Language Tag Cardinality |
|
X |
X |
X |
X |
V |
X |
|
~ |
sh:uniqueLang |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A28_Language_Tag_Cardinality |
A29 |
Whitespace Handling |
|
X |
X |
X |
X |
V |
X |
|
X |
|
|
X |
NO: AF |
A30 |
HTML Handling |
|
X |
X |
X |
X |
V |
X |
|
X |
|
|
X |
NO: AF |
A31 |
Structure |
|
X |
X |
X |
X |
V |
X |
|
*V |
sh:sparql |
12/02/2019 |
X |
NO: needs SPARQL |
A32 |
*Minimum Unqualified Cardinality |
|
V |
V |
X |
~ |
V |
V |
|
V |
sh:class + sh:minCount |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A32_Minimum_Unqualified_Cardinality_Restrictions |
A33 |
*Minimum Qualified Cardinality |
|
V |
V |
X |
~ |
V |
V |
|
V |
sh:targetClass + sh:class + sh:minCount |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A33_Minimum_Qualified_Cardinality_Restrictions |
A34 |
*Maximum Unqualified Cardinality |
|
V |
V |
X |
~ |
V |
V |
|
V |
sh:class + sh:maxCount |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A34_Maximum_Unqualified_Cardinality_Restrictions |
A35 |
*Maximum Qualified Cardinality |
|
V |
V |
X |
~ |
V |
V |
|
V |
sh:targetClass + sh:class + sh:maxCount |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A35_Maximum_Qualified_Cardinality_Restrictions |
A36 |
*Exact Unqualified Cardinality |
|
V |
V |
X |
~ |
V |
V |
|
V |
sh:targetClass + sh:class + sh:minCount + sh:maxCount n |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A36_Exact_Unqualified_Cardinality_Restrictions |
A37 |
*Exact Qualified Cardinality |
|
V |
V |
X |
~ |
V |
V |
|
V |
sh:class + sh:minCount + sh:maxCount n |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A37_Exact_Qualified_Cardinality_Restrictions |
A38 |
*Cardinality Shortcuts |
|
X |
V |
X |
V |
V |
V |
|
*~ |
no shortcuts, but supported |
12/02/2019 |
should |
math builtins |
A39 |
Vocabulary |
|
X |
X |
X |
X |
V |
X |
|
*V |
owl:imports vocabulary shape + sh:target* |
12/02/2019 |
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/B2_Triple_Pattern |
A40 |
Provenance |
|
X |
X |
X |
X |
V |
X |
|
*V |
owl:imports provenance shape + sh:target* |
|
should |
existence of structure |
A41 |
Required Properties |
|
V |
V |
X |
V |
V |
V |
|
~ |
sh:property |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A41_Required_Properties |
A42 |
Optional Properties |
|
V |
V |
X |
V |
V |
V |
|
~ |
sh:minCount 0 |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A42_Optional_Properties |
A43 |
Repeatable Properties |
x uses p1 at least once |
V |
V |
X |
V |
V |
V |
|
~ |
sh:property + sh:mincount 1 |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A43_Repeatable_Properties |
A44 |
Conditional Properties |
if x has p1, it also should have p2 |
X |
X |
X |
X |
V |
X |
|
V |
sh:subjectsOfproperty,sh:property |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A44_Conditional_Properties |
A45 |
Recommended Properties |
|
X |
X |
X |
X |
V |
X |
|
*V |
sh:severity + minCount 1 |
12/02/2019 |
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A45_Recommended_Properties |
A46 |
Severity Levels |
|
X |
X |
X |
X |
V |
X |
|
V |
sh:severity |
|
should |
~constraint language |
A47 |
Labeling and Documentation |
|
X |
X |
X |
X |
V |
X |
|
V |
sh:name, sh:description |
|
should |
existence of structure |
A48 |
Context-Sp. Property Groups |
|
X |
~ |
~ |
V |
V |
V |
|
V |
sh:targetClass + sh:property,sh:property |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/B1_PVT_Pattern |
A49 |
Context-Sp. Exclusive OR of P. |
|
X |
V |
X |
X |
V |
V |
|
*V |
sh:targetClass + sh:xone + sh:property |
|
should |
intersection and disjunction supported, so xOR as well |
A50 |
Context-Sp. Exclusive OR of P. Groups |
|
X |
~ |
X |
V |
V |
V |
|
*V |
sh:targetClass + sh:qualifiedValueShape + sh:qualifiedValueShapesDisjoint +… |
|
should |
intersection and disjunction supported, so xOR as well |
A51 |
Context-Sp. Inclusive OR of P. |
|
X |
~ |
~ |
X |
V |
X |
|
V |
sh:targetClass + sh:or + sh:property |
|
should |
intersection and disjunction supported, so xOR as well |
A52 |
Context-Sp. Inclusive OR of P. Groups |
|
X |
~ |
~ |
X |
V |
X |
|
V |
sh:targetClass + sh:qualifiedValueShape + … |
|
should |
intersection and disjunction supported, so xOR as well |
A53 |
Mathematical Operations |
|
X |
X |
X |
X |
V |
X |
|
*~ |
AF: sh:rule + function? |
12/02/2019 |
should |
math builtins |
A54 |
Ordering |
|
X |
X |
X |
X |
V |
X |
|
*V |
shsh:ListShape |
13/02/2019 |
should |
list builtin |
A55 |
*Inverse Object Properties |
|
X |
V |
V |
~ |
V |
X |
|
V |
2 shapes? |
|
should |
existence of structure |
A56 |
*Symmetric Object Properties |
|
X |
V |
V |
X |
V |
X |
|
*V |
AF: sh:this |
13/02/2019 |
should |
existence of structure |
A57 |
*Asymmetric Object Properties |
|
X |
V |
V |
X |
V |
X |
|
*V |
AF: sh:not sh:this |
13/02/2019 |
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A57_Asymmetric_Object_Properties |
A58 |
*Transitive Object Properties |
|
X |
V |
X |
X |
V |
X |
|
X |
NO: needs equals across targets |
13/02/2019 |
should |
existence of structure |
A59 |
*Self Restrictions |
|
X |
V |
X |
X |
V |
X |
|
*V |
AF: sh:this |
|
should |
existence of structure |
A60 |
Valid Identifiers |
|
X |
X |
X |
X |
V |
X |
|
X |
NO: needs HTML get |
|
X |
NO: needs HTML get |
A61 |
Recursive Queries |
|
V |
V |
V |
V |
~ |
V |
|
V |
sh:node, sh:property |
|
should |
existence of structure |
A62 |
*Reflexive Object Properties |
|
X |
V |
V |
X |
V |
X |
|
*V |
AF: sh:this |
13/02/2019 |
should |
existence of structure |
A63 |
*Class-Sp. Reflexive Object P. |
|
X |
V |
X |
X |
V |
X |
|
*V |
AF: sh:this |
13/02/2019 |
should |
existence of structure |
A64 |
*Irreflexive Object Properties |
|
X |
V |
V |
X |
V |
X |
|
*V |
AF: sh:path/sh:not/sh:this |
13/02/2019 |
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A64_Irreflexive_Object_Properties |
A65 |
*Class-Specific Irreflexive Object Properties |
|
X |
V |
X |
X |
V |
X |
|
*V |
AF: sh:targetClass sh:path/sh:not/sh:this |
13/02/2019 |
should |
existence of structure |
A66 |
Data Model Consistency |
|
X |
X |
X |
X |
V |
X |
|
*V |
sh:sparql |
13/02/2019 |
X |
NO: needs SPARQL |
A67 |
Handle RDF Collections |
|
X |
X |
X |
X |
V |
X |
|
*V |
AF: sh:rule + function? |
13/02/2019 |
should |
list:builtin |
A68 |
Membership in Controlled Vocabularies |
|
V |
X |
X |
X |
V |
X |
|
V |
sh:in |
|
should |
list:builtin |
A69 |
Disjoint Properties |
|
X |
V |
V |
X |
V |
X |
|
X |
NO: needs disjoint on class |
13/02/2019 |
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A69_Disjoint_Properties |
A70 |
Disjoint Classes |
|
X |
V |
V |
X |
V |
X |
|
~ |
sh:disjoint |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A70_Disjoint_Classes |
A71 |
String Operations |
|
X |
X |
X |
X |
V |
X |
|
~ |
sh:pattern |
|
should |
string builtin |
A72 |
Aggregations |
|
X |
X |
X |
X |
V |
X |
|
*V |
AF: sh:rule + sh:function? |
13/02/2019 |
should |
math builtins |
A73 |
*Individual Equality |
|
X |
V |
X |
X |
V |
X |
|
*V |
AF: sh:rule or sh:this |
13/02/2019 |
should |
equality builtin |
A74 |
Individual Inequality |
|
X |
V |
V |
X |
V |
X |
|
*V |
AF: sh:rule or sh:not/sh:this |
13/02/2019 |
should |
equality builtin |
A75 |
Context-Specific Valid Classes |
|
X |
X |
X |
X |
V |
X |
|
X |
NO: target ALL |
13/02/2019 |
should |
existence of structure |
A76 |
Context-Specific Valid Properties |
use only p1-n for X |
X |
X |
X |
X |
V |
X |
|
V |
sh:property+ + sh:closed (+sh:ignoredProperties?) |
|
should |
existence of structure |
A77 |
Property Assertions |
|
X |
V |
~ |
X |
V |
X |
|
~ |
sh:hasValue |
|
should |
existence of structure |
A78 |
*Intersection |
|
X |
V |
X |
V |
V |
V |
|
V |
sh:and |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A78_Conjunction |
A79 |
*Disjunction |
|
X |
V |
X |
X |
V |
X |
|
V |
sh:or |
|
should |
disjunction |
A80 |
*Negation |
|
X |
V |
X |
X |
V |
X |
|
V |
sh:not |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A80_Negation |
A81 |
*Default Values |
|
X |
X |
X |
V |
V |
X |
|
V |
sh:defaultValue |
|
V |
https://github.com/IDLabResearch/validatrr/tree/master/resources/rules/A81_Default_Values |