diff --git a/shacl12-core/index.html b/shacl12-core/index.html index 54d74ee4..b45a28d7 100644 --- a/shacl12-core/index.html +++ b/shacl12-core/index.html @@ -572,36 +572,6 @@

Our Sample Data (Data Graph)

ex:Calvin a ex:Person ; ex:birthDate "1971-07-07"^^xsd:date ; # Extra birthDate ex:worksFor ex:UntypedCompany . # Untyped company - -
-
{
-	"@graph": [
-		{
-			"@id": "ex:Alice",
-			"@type": "ex:Person",
-			"ex:ssn": "987-65-432A"
-		},
-		{
-			"@id": "ex:Bob",
-			"@type": "ex:Person",
-			"ex:ssn": [
-				"123-45-6789",
-				"124-35-6789"
-			]
-		},
-		{
-			"@id": "ex:Calvin",
-			"@type": "ex:Person",
-			"ex:birthDate": {
-				"@type": "xsd:date",
-				"@value": "1971-07-07"
-			},
-			"ex:worksFor": {
-				"@id": "ex:UntypedCompany"
-			}
-		}
-	]
-}

@@ -666,87 +636,6 @@

Writing the Shapes and Classes (Shapes Graph)

sh:name "works for" ; sh:description "The companies that a person works for." ; . - -
-
{
-	"@graph": [
-        {
-            "@id": "ex:Person",
-            "rdfs:subClassOf": {
-                "@id": "rdfs:Resource"
-            },
-            "@type": "rdfs:Class",
-            "rdfs:label": "Person",
-            "rdfs:comment": "A human being."
-        },
-        {
-            "@id": "ex:PersonShape",
-            "@type": "sh:NodeShape",
-            "rdfs:label": "Person shape",
-            "rdfs:comment": "A shape that applies to all instances of Person.",
-            "sh:property": [
-                {
-                    "@id": "ex:PersonShape-worksFor"
-                },
-                {
-                    "@id": "ex:PersonShape-ssn"
-                }
-            ],
-            "sh:closed": {
-                "@value": "true",
-                "@type": "xsd:boolean"
-            },
-            "sh:targetClass": {
-                "@id": "ex:Person"
-            },
-            "sh:ignoredProperties": {
-                "@list": [
-                    {
-                        "@id": "rdf:type"
-                    }
-                ]
-            }
-        },
-        {
-            "@id": "ex:PersonShape-worksFor",
-            "@type": "sh:PropertyShape",
-            "sh:nodeKind": {
-                "@id": "sh:IRI"
-            },
-            "sh:class": {
-                "@id": "ex:Company"
-            },
-            "sh:name": "works for",
-            "sh:path": {
-                "@id": "ex:worksFor"
-            },
-            "sh:description": "The companies that a person works for."
-        },
-        {
-            "@id": "ex:PersonShape-ssn",
-            "@type": "sh:PropertyShape",
-            "sh:name": "social security number",
-            "sh:path": {
-                "@id": "ex:ssn"
-            },
-            "sh:maxCount": {
-                "@value": "1",
-                "@type": "xsd:integer"
-            },
-            "sh:description": "A person's unique identifier in the US.",
-            "sh:datatype": {
-                "@id": "xsd:string"
-            },
-            "sh:pattern": "^\\d{3}-\\d{2}-\\d{4}$"
-        }
-	]
-}
-
-
shape ex:PersonShape -> ex:Person {
-	closed=true ignoredProperties=[rdf:type] .
-	ex:ssn xsd:string [0..1] pattern="^\\d{3}-\\d{2}-\\d{4}$" .
-	ex:worksFor IRI ex:Company .  # TODO: This needs to be updated
-}

@@ -861,101 +750,6 @@

Running the Validation (Validation Report)

] ] . -
-
{
-	"@type": "sh:ValidationReport",
-	"sh:conforms": {
-		"@type": "xsd:boolean",
-		"@value": "false"
-	},
-	"sh:result": [
-		{
-			"@type": "sh:ValidationResult",
-			"sh:focusNode": {
-				"@id": "ex:Alice"
-			},
-			"sh:resultPath": {
-				"@id": "ex:ssn"
-			},
-			"sh:resultSeverity": {
-				"@id": "sh:Violation"
-			},
-			"sh:sourceConstraintComponent": {
-				"@id": "sh:PatternConstraintComponent"
-			},
-			"sh:sourceShape": {
-				"@id": "ex:PersonShape-ssn"
-			},
-			"sh:value": "987-65-432A",
-			"sh:resultMessage": "Value does not match pattern '^\d{3}-\d{2}-\d{4}$'"
-		},
-		{
-			"@type": "sh:ValidationResult",
-			"sh:focusNode": {
-				"@id": "ex:Bob"
-			},
-			"sh:resultPath": {
-				"@id": "ex:ssn"
-			},
-			"sh:resultSeverity": {
-				"@id": "sh:Violation"
-			},
-			"sh:sourceConstraintComponent": {
-				"@id": "sh:MaxCountConstraintComponent"
-			},
-			"sh:sourceShape": {
-				"@id": "ex:PersonShape-ssn"
-			},
-			"sh:resultMessage": "More than 1 values"
-		},
-		{
-			"@type": "sh:ValidationResult",
-			"sh:focusNode": {
-				"@id": "ex:Calvin"
-			},
-			"sh:resultPath": {
-				"@id": "ex:worksFor"
-			},
-			"sh:resultSeverity": {
-				"@id": "sh:Violation"
-			},
-			"sh:sourceConstraintComponent": {
-				"@id": "sh:ClassConstraintComponent"
-			},
-			"sh:sourceShape": {
-				"@id": "ex:PersonShape-worksFor"
-			},
-			"sh:value": {
-				"@id": "ex:UntypedCompany"
-			},
-			"sh:resultMessage": "Value does not have class ex:Company"
-		},
-		{
-			"@type": "sh:ValidationResult",
-			"sh:focusNode": {
-				"@id": "ex:Calvin"
-			},
-			"sh:resultPath": {
-				"@id": "ex:birthDate"
-			},
-			"sh:resultSeverity": {
-				"@id": "sh:Violation"
-			},
-			"sh:sourceConstraintComponent": {
-				"@id": "sh:ClosedConstraintComponent"
-			},
-			"sh:sourceShape": {
-				"@id": "ex:PersonShape"
-			},
-			"sh:value": {
-				"@type": "xsd:date",
-				"@value": "1971-07-07"
-			},
-			"sh:resultMessage": "Predicate is not allowed (closed shape)"
-		}
-	]
-}
-

How to read the report:

@@ -1224,25 +1018,6 @@

Constraints, Parameters and Constraint Components

sh:class ex:Person ; ] . -
-
{
-	"@id": "ex:InvoiceShape",
-	"@type": "sh:NodeShape",
-	"sh:property": {
-		"sh:class": [
-			{
-				"@id": "ex:Customer"
-			},
-			{
-				"@id": "ex:Person"
-			}
-		],
-		"sh:path": {
-			"@id": "ex:customer"
-		}
-	}
-}
-

@@ -1267,31 +1042,7 @@

Constraints, Parameters and Constraint Components

sh:pattern "End$" ; ] . -
-
{
-	"@id": "ex:MultiplePatternsShape",
-	"@type": "sh:NodeShape",
-	"sh:property": [
-		{
-			"sh:flags": "i",
-			"sh:path": {
-				"@id": "ex:name"
-			},
-			"sh:pattern": "^Start"
-		},
-		{
-			"sh:path": {
-				"@id": "ex:name"
-			},
-			"sh:pattern": "End$"
-		}
-	]
-}
-
-
shape ex:MultiplePatternsShape {
-	ex:name pattern="^Start" flags="i" .
-	ex:name pattern="End$" .
-}
+

Constraint components are associated with validators, which provide instructions (for example expressed via SPARQL queries) @@ -1376,37 +1127,12 @@

Node targets (sh:targetNode)

a sh:NodeShape ; sh:targetNode ex:Alice . -
-
{
-	"@id": "ex:PersonShape",
-	"@type": "sh:NodeShape",
-	"sh:targetNode": {
-		"@id": "ex:Alice"
-	}
-}
-
-
shape ex:PersonShape {
-	targetNode=ex:Alice .
-}
+
ex:Alice a ex:Person . ex:Bob a ex:Person .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:Alice",
-			"@type": "ex:Person"
-		},
-		{
-			"@id": "ex:Bob",
-			"@type": "ex:Person"
-		}
-	]
-}
-
@@ -1431,17 +1157,7 @@

Class-based Targets (sh:targetClass)

a sh:NodeShape ; sh:targetClass ex:Person . -
-
{
-	"@id": "ex:PersonShape",
-	"@type": "sh:NodeShape",
-	"sh:targetClass": {
-		"@id": "ex:Person"
-	}
-}
-
-
shape ex:PersonShape -> ex:Person {
-}
+
@@ -1449,24 +1165,6 @@

Class-based Targets (sh:targetClass)

ex:Bob a ex:Person . ex:NewYork a ex:Place .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:Alice",
-			"@type": "ex:Person"
-		},
-		{
-			"@id": "ex:Bob",
-			"@type": "ex:Person"
-		},
-		{
-			"@id": "ex:NewYork",
-			"@type": "ex:Place"
-		}
-	]
-}
-

@@ -1484,26 +1182,6 @@

Class-based Targets (sh:targetClass)

ex:Who a ex:Doctor . ex:House a ex:Nephrologist . -
-
{
-	"@graph": [
-		{
-			"@id": "ex:Doctor",
-			"rdfs:subClassOf": {
-				"@id": "ex:Person"
-			}
-		},
-		{
-			"@id": "ex:House",
-			"@type": "ex:Nephrologist"
-		},
-		{
-			"@id": "ex:Who",
-			"@type": "ex:Doctor"
-		}
-	]
-}
-

@@ -1555,36 +1233,12 @@

Implicit Class Targets and sh:ShapeClass

ex:Person a rdfs:Class, sh:NodeShape . -
-
{
-	"@id": "ex:Person",
-	"@type": [
-		"rdfs:Class",
-		"sh:NodeShape"
-	]
-}
-
-
shapeClass ex:Person {
-}
+
ex:Alice a ex:Person . ex:NewYork a ex:Place .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:Alice",
-			"@type": "ex:Person"
-		},
-		{
-			"@id": "ex:NewYork",
-			"@type": "ex:Place"
-		}
-	]
-}
-

@@ -1597,12 +1251,6 @@

Implicit Class Targets and sh:ShapeClass

ex:Person a sh:ShapeClass . -
-
{
-	"@id": "ex:Person",
-	"@type": "sh:ShapeClass"
-}
-
@@ -1628,41 +1276,12 @@

Subjects-of targets (sh:targetSubjectsOf)

a sh:NodeShape ; sh:targetSubjectsOf ex:knows . -
-
{
-	"@id": "ex:TargetSubjectsOfExampleShape",
-	"@type": "sh:NodeShape",
-	"sh:targetSubjectsOf": {
-		"@id": "ex:knows"
-	}
-}
-
-
shape ex:TargetSubjectsOfExampleShape {
-	targetSubjectsOf=ex:knows .
-}
+
ex:Alice ex:knows ex:Bob . ex:Bob ex:livesIn ex:NewYork .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:Alice",
-			"ex:knows": {
-				"@id": "ex:Bob"
-			}
-		},
-		{
-			"@id": "ex:Bob",
-			"ex:livesIn": {
-				"@id": "ex:NewYork"
-			}
-		}
-	]
-}
-

@@ -1692,41 +1311,12 @@

Objects-of targets (sh:targetObjectsOf)

a sh:NodeShape ; sh:targetObjectsOf ex:knows . -
-
{
-	"@id": "ex:TargetObjectsOfExampleShape",
-	"@type": "sh:NodeShape",
-	"sh:targetObjectsOf": {
-		"@id": "ex:knows"
-	}
-}
-
-
shape ex:TargetObjectsOfExampleShape {
-	targetObjectsOf=ex:knows .
-}
+
ex:Alice ex:knows ex:Bob . ex:Bob ex:livesIn ex:NewYork .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:Alice",
-			"ex:knows": {
-				"@id": "ex:Bob"
-			}
-		},
-		{
-			"@id": "ex:Bob",
-			"ex:livesIn": {
-				"@id": "ex:NewYork"
-			}
-		}
-	]
-}
-

@@ -1821,70 +1411,12 @@

Declaring the Severity of a Shape or Constraint

sh:message "Zu viele Zeichen"@de ; ] . -
-
{
-	"@id": "ex:MyShape",
-	"@type": "sh:NodeShape",
-	"sh:property": [
-		{
-			"sh:datatype": {
-				"@id": "xsd:string"
-			},
-			"sh:minCount": {
-				"@type": "xsd:integer",
-				"@value": "1"
-			},
-			"sh:path": {
-				"@id": "ex:myProperty"
-			},
-			"sh:severity": {
-				"@id": "sh:Warning"
-			}
-		},
-		{
-			"sh:maxLength": {
-				"@type": "xsd:integer",
-				"@value": "10"
-			},
-			"sh:message": [
-				{
-					"@language": "en",
-					"@value": "Too many characters"
-				},
-				{
-					"@language": "de",
-					"@value": "Zu viele Zeichen"
-				}
-			],
-			"sh:path": {
-				"@id": "ex:myProperty"
-			}
-		}
-	],
-	"sh:targetNode": {
-		"@id": "ex:MyInstance"
-	}
-}
-
-
shape ex:MyShape {
-	targetNode=ex:MyInstance .
-	ex:myProperty xsd:string [1..*] severity=Warning .
-	ex:myProperty maxLength=10 message="Too many characters"@en message="Zu viele Zeichen"@de .
-}
+
ex:MyInstance ex:myProperty "http://toomanycharacters"^^xsd:anyURI .
-
-
{
-	"@id": "ex:MyInstance",
-	"ex:myProperty": {
-		"@type": "xsd:anyURI",
-		"@value": "http://toomanycharacters"
-	}
-}
-
@@ -1911,71 +1443,6 @@

Declaring the Severity of a Shape or Constraint

] ] .
-
-
{
-	"@type": "sh:ValidationReport",
-	"sh:conforms": {
-		"@type": "xsd:boolean",
-		"@value": "false"
-	},
-	"sh:result": [
-		{
-			"@type": "sh:ValidationResult",
-			"sh:focusNode": {
-				"@id": "ex:MyInstance"
-			},
-			"sh:resultPath": {
-				"@id": "ex:myProperty"
-			},
-			"sh:resultSeverity": {
-				"@id": "sh:Warning"
-			},
-			"sh:sourceConstraintComponent": {
-				"@id": "sh:DatatypeConstraintComponent"
-			},
-			"sh:sourceShape": {
-				"@id": "_:b1"
-			},
-			"sh:value": {
-				"@type": "xsd:anyURI",
-				"@value": "http://toomanycharacters"
-			}
-		},
-		{
-			"@type": "sh:ValidationResult",
-			"sh:focusNode": {
-				"@id": "ex:MyInstance"
-			},
-			"sh:resultMessage": [
-				{
-					"@language": "en",
-					"@value": "Too many characters"
-				},
-				{
-					"@language": "de",
-					"@value": "Zu viele Zeichen"
-				}
-			],
-			"sh:resultPath": {
-				"@id": "ex:myProperty"
-			},
-			"sh:resultSeverity": {
-				"@id": "sh:Violation"
-			},
-			"sh:sourceConstraintComponent": {
-				"@id": "sh:MaxLengthConstraintComponent"
-			},
-			"sh:sourceShape": {
-				"@id": "_:b2"
-			},
-			"sh:value": {
-				"@type": "xsd:anyURI",
-				"@value": "http://toomanycharacters"
-			}
-		}
-	]
-}
-

@@ -2001,9 +1468,6 @@

Declaring the Severity of a Shape or Constraint

sh:message "Zu viele Zeichen"@de ; ] . -
- N/A -
@@ -2056,9 +1520,6 @@

Declaring Messages for a Shape or Constraint

|} ] . -
- N/A -
@@ -2126,37 +1587,6 @@

Deactivating Shapes and Constraints

sh:minCount 1 ; sh:deactivated true . -
-
{
-	"@graph": [
-		{
-			"@id": "ex:PersonShape",
-			"@type": "sh:NodeShape",
-			"sh:property": {
-				"@id": "ex:PersonShape-name"
-			},
-			"sh:targetClass": {
-				"@id": "ex:Person"
-			}
-		},
-		{
-			"@id": "ex:PersonShape-name",
-			"@type": "sh:PropertyShape",
-			"sh:deactivated": {
-				"@type": "xsd:boolean",
-				"@value": "true"
-			},
-			"sh:minCount": {
-				"@type": "xsd:integer",
-				"@value": "1"
-			},
-			"sh:path": {
-				"@id": "ex:name"
-			}
-		}
-	]
-}
-

With the following data, no constraint violation will be reported even though the instance does not have any value for ex:name. @@ -2165,12 +1595,6 @@

Deactivating Shapes and Constraints

ex:JohnDoe a ex:Person .
-
-
{
-	"@id": "ex:JohnDoe",
-	"@type": "ex:Person"
-}
-

@@ -2191,8 +1615,6 @@

Deactivating Shapes and Constraints

sh:minCount 1 {| sh:deactivated true |} ; sh:maxCount 1 . -
-
@@ -2270,59 +1692,6 @@

Property Shapes

sh:description "We need at least one email value" ; sh:minCount 1 . -
-
{
-	"@graph": [
-		{
-			"@id": "ex:ExampleNodeShapeWithPropertyShapes",
-			"@type": "sh:NodeShape",
-			"sh:property": [
-				{
-					"sh:description": "We need at least one email value",
-					"sh:minCount": {
-						"@type": "xsd:integer",
-						"@value": "1"
-					},
-					"sh:name": "e-mail",
-					"sh:path": {
-						"@id": "ex:email"
-					}
-				},
-				{
-					"sh:description": "We need at least one email for everyone you know",
-					"sh:minCount": {
-						"@type": "xsd:integer",
-						"@value": "1"
-					},
-					"sh:name": "Friend's e-mail",
-					"sh:path": {
-						"@list": [
-							{
-								"@id": "ex:knows"
-							},
-							{
-								"@id": "ex:email"
-							}
-						]
-					}
-				}
-			]
-		},
-		{
-			"@id": "ex:ExamplePropertyShape",
-			"@type": "sh:PropertyShape",
-			"sh:description": "We need at least one email value",
-			"sh:minCount": {
-				"@type": "xsd:integer",
-				"@value": "1"
-			},
-			"sh:path": {
-				"@id": "ex:email"
-			}
-		}
-	]
-}
-
@@ -2384,69 +1753,6 @@

SHACL Property Paths

sh:alternativePath ( ex:father ex:mother ) ] . -
-
{
-	"@graph": [
-		{
-			"@id": "ex:SomeClass-alternativePathExample",
-			"sh:path": {
-				"sh:alternativePath": {
-					"@list": [
-						{
-							"@id": "ex:father"
-						},
-						{
-							"@id": "ex:mother"
-						}
-					]
-				}
-			}
-		},
-		{
-			"@id": "ex:SomeClass-complexPathExample",
-			"sh:path": {
-				"@list": [
-					{
-						"@id": "rdf:type"
-					},
-					{
-						"sh:zeroOrMorePath": {
-							"@id": "rdfs:subClassOf"
-						}
-					}
-				]
-			}
-		},
-		{
-			"@id": "ex:SomeClass-inversePathExample",
-			"sh:path": {
-				"sh:inversePath": {
-					"@id": "ex:parent"
-				}
-			}
-		},
-		{
-			"@id": "ex:SomeClass-predicateExample",
-			"sh:path": {
-				"@id": "ex:parent"
-			}
-		},
-		{
-			"@id": "ex:SomeClass-sequencePathExample",
-			"sh:path": {
-				"@list": [
-					{
-						"@id": "ex:parent"
-					},
-					{
-						"@id": "ex:firstName"
-					}
-				]
-			}
-		}
-	]
-}
-
@@ -2720,19 +2026,6 @@

Linking to shapes graphs (sh:shapesGraph)

sh:shapesGraph ex:graph-shapes1 ; sh:shapesGraph ex:graph-shapes2 . -
-
{
-	"@id": "http://example.com/myDataGraph",
-	"sh:shapesGraph": [
-		{
-			"@id": "ex:graph-shapes1"
-		},
-		{
-			"@id": "ex:graph-shapes2"
-		}
-	]
-}
-
@@ -2892,16 +2185,6 @@

Validation Report

sh:conforms true ; ] . -
-
{
-	"@id": "_:b1",
-	"@type": "sh:ValidationReport",
-	"sh:conforms": {
-		"@type": "xsd:boolean",
-		"@value": "true"
-	}
-}
-

@@ -2925,35 +2208,6 @@

Validation Report

] ] . -
-
{
-	"@type": "sh:ValidationReport",
-	"sh:conforms": {
-		"@type": "xsd:boolean",
-		"@value": "false"
-	},
-	"sh:result": {
-		"@type": "sh:ValidationResult",
-		"sh:focusNode": {
-			"@id": "ex:Bob"
-		},
-		"sh:resultMessage": "ex:age expects a literal of datatype xsd:integer.",
-		"sh:resultPath": {
-			"@id": "ex:age"
-		},
-		"sh:resultSeverity": {
-			"@id": "sh:Violation"
-		},
-		"sh:sourceConstraintComponent": {
-			"@id": "sh:DatatypeConstraintComponent"
-		},
-		"sh:sourceShape": {
-			"@id": "ex:PersonShape-age"
-		},
-		"sh:value": "twenty two"
-	}
-}
-
@@ -3229,68 +2483,13 @@

sh:class

sh:class ex:PostalAddress ; ] . -
-
{
-	"@id": "ex:ClassExampleShape",
-	"@type": "sh:NodeShape",
-	"sh:property": {
-		"sh:class": {
-			"@id": "ex:PostalAddress"
-		},
-		"sh:path": {
-			"@id": "ex:address"
-		}
-	},
-	"sh:targetNode": [
-		{
-			"@id": "ex:Bob"
-		},
-		{
-			"@id": "ex:Alice"
-		},
-		{
-			"@id": "ex:Carol"
-		}
-	]
-}
-
-
shape ex:ClassExampleShape {
-	targetNode=ex:Bob targetNode=ex:Alice targetNode=ex:Carol .
-	ex:address ex:PostalAddress .
-}
+
ex:Alice a ex:Person . ex:Bob ex:address [ a ex:PostalAddress ; ex:city ex:Berlin ] . ex:Carol ex:address [ ex:city ex:Cairo ] .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:Alice",
-			"@type": "ex:Person"
-		},
-		{
-			"@id": "ex:Bob",
-			"ex:address": {
-				"@type": "ex:PostalAddress",
-				"ex:city": {
-					"@id": "ex:Berlin"
-				}
-			}
-		},
-		{
-			"@id": "ex:Carol",
-			"ex:address": {
-				"ex:city": {
-					"@id": "ex:Cairo"
-				}
-			}
-		}
-	]
-}
-

@@ -3308,8 +2507,6 @@

sh:class

sh:class ( ex:Cat ex:Dog ) ; ] . -
-
@@ -3320,8 +2517,6 @@

sh:class

ex:Alice a ex:Person ; ex:pet ex:Tessie, ex:Rusty . ex:Bob a ex:Person ; ex:pet ex:Fluffy .
-
-
@@ -3384,65 +2579,13 @@

sh:datatype

sh:datatype xsd:integer ; ] . -
-
{
-	"@id": "ex:DatatypeExampleShape",
-	"@type": "sh:NodeShape",
-	"sh:property": {
-		"sh:datatype": {
-			"@id": "xsd:integer"
-		},
-		"sh:path": {
-			"@id": "ex:age"
-		}
-	},
-	"sh:targetNode": [
-		{
-			"@id": "ex:Alice"
-		},
-		{
-			"@id": "ex:Bob"
-		},
-		{
-			"@id": "ex:Carol"
-		}
-	]
-}
-
-
shape ex:DatatypeExampleShape {
-	targetNode=ex:Alice targetNode=ex:Bob targetNode=ex:Carol .
-	ex:age xsd:integer .
-}
+
ex:Alice ex:age "23"^^xsd:integer . ex:Bob ex:age "twenty two" . ex:Carol ex:age "23"^^xsd:int .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:Alice",
-			"ex:age": {
-				"@type": "xsd:integer",
-				"@value": "23"
-			}
-		},
-		{
-			"@id": "ex:Bob",
-			"ex:age": "twenty two"
-		},
-		{
-			"@id": "ex:Carol",
-			"ex:age": {
-				"@type": "xsd:int",
-				"@value": "23"
-			}
-		}
-	]
-}
-

@@ -3461,16 +2604,12 @@

sh:datatype

sh:datatype ( xsd:string rdf:langString ) ; ] . -
-
ex:Estonia rdfs:label "Estonia", "Estland"@de . ex:GreatBritain rdfs:label "Great Britain", "<b>Great</b> Britain"^^rdf:HTML .
-
-
@@ -3486,30 +2625,32 @@

sh:nodeKind

Parameters:
- - - - + + + + + - - - - + + + - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:nodeKind - The node kind (IRI, blank node, literal, triple term, or combination of these) of all value nodes. - A shape has at most one value for sh:nodeKind. - The value of sh:nodeKind in a shape is either an IRI or a blank node that is a well-formed SHACL list where all members are IRIs. -

- - If the values of sh:nodeKind are IRIs, then the values of sh:nodeKind in a shape are one of the following seven instances of the class sh:NodeKind: - sh:BlankNode, sh:IRI, sh:Literal - sh:BlankNodeOrIRI, sh:BlankNodeOrLiteral, sh:IRIOrLiteral, and sh:TripleTerm. +
sh:nodeKind + The node kind (IRI, blank node, literal, triple term, or combination of these) of all value nodes. + A shape has at most one value for sh:nodeKind. + The value of sh:nodeKind in a shape is either an IRI or a blank node that is a well-formed SHACL list where all members are IRIs.

- If the values of sh:nodeKind are well-formed SHACL lists, then members of those lists in a shape are one of the following four instances of the class sh:NodeKind: - sh:BlankNode, sh:IRI, sh:Literal, and sh:TripleTerm. - -
+ + If the values of sh:nodeKind are IRIs, then the values of sh:nodeKind in a shape are one of the following seven instances of the class sh:NodeKind: + sh:BlankNode, sh:IRI, sh:Literal + sh:BlankNodeOrIRI, sh:BlankNodeOrLiteral, sh:IRIOrLiteral, and sh:TripleTerm. +

+ If the values of sh:nodeKind are well-formed SHACL lists, then members of those lists in a shape are one of the following four instances of the class sh:NodeKind: + sh:BlankNode, sh:IRI, sh:Literal, and sh:TripleTerm. +
+ + + +
TEXTUAL DEFINITION
@@ -3539,42 +2680,12 @@

sh:nodeKind

sh:targetObjectsOf ex:knows ; sh:nodeKind sh:IRI .
-
-
{
-	"@id": "ex:NodeKindExampleShape",
-	"@type": "sh:NodeShape",
-	"sh:nodeKind": {
-		"@id": "sh:IRI"
-	},
-	"sh:targetObjectsOf": {
-		"@id": "ex:knows"
-	}
-}
-
-
shape ex:NodeKindExampleShape {
-	targetObjectsOf=ex:knows nodeKind=IRI .
-}
+
ex:Bob ex:knows ex:Alice . ex:Alice ex:knows "Bob" .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:Alice",
-			"ex:knows": "Bob"
-		},
-		{
-			"@id": "ex:Bob",
-			"ex:knows": {
-				"@id": "ex:Alice"
-			}
-		}
-	]
-}
-

@@ -3589,25 +2700,6 @@

sh:nodeKind

sh:targetObjectsOf ex:knows ; sh:nodeKind ( sh:BlankNode sh:IRI ) . -
-
{
-	"@id": "ex:NodeKindExampleShape",
-	"@type": "sh:NodeShape",
-	"sh:nodeKind": {
-		"@list": [
-			{
-				"@id": "sh:BlankNode"
-			},
-			{
-				"@id": "sh:IRI"
-			}
-		]
-	},
-	"sh:targetObjectsOf": {
-		"@id": "ex:knows"
-	}
-}
-
@@ -3615,27 +2707,6 @@

sh:nodeKind

ex:Bob ex:knows _:john . ex:Alice ex:knows "Bob" .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:Alice",
-			"ex:knows": "Bob"
-		},
-		{
-			"@id": "ex:Bob",
-			"ex:knows": [
-				{
-					"@id": "ex:Alice"
-				},
-				{
-					"@id": "_:b1"
-				}
-			]
-		}
-	]
-}
-
@@ -3658,22 +2729,24 @@

sh:minCount

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:minCount - The minimum cardinality. - Node shapes cannot have any value for sh:minCount. - A property shape has at most one value for sh:minCount. - The values of sh:minCount in a property shape are literals with datatype xsd:integer. -
+ + + sh:minCount + + The minimum cardinality. + Node shapes cannot have any value for sh:minCount. + A property shape has at most one value for sh:minCount. + The values of sh:minCount in a property shape are literals with datatype xsd:integer. + + + +
TEXTUAL DEFINITION
@@ -3692,50 +2765,12 @@

sh:minCount

sh:path ex:name ; sh:minCount 1 .
-
-
{
-	"@id": "ex:MinCountExampleShape",
-	"@type": "sh:PropertyShape",
-	"sh:minCount": {
-		"@type": "xsd:integer",
-		"@value": "1"
-	},
-	"sh:path": {
-		"@id": "ex:name"
-	},
-	"sh:targetNode": [
-		{
-			"@id": "ex:Alice"
-		},
-		{
-			"@id": "ex:Bob"
-		}
-	]
-}
-
ex:Alice ex:name "Alice" . ex:Bob ex:givenName "Bob"@en .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:Alice",
-			"ex:name": "Alice"
-		},
-		{
-			"@id": "ex:Bob",
-			"ex:givenName": {
-				"@language": "en",
-				"@value": "Bob"
-			}
-		}
-	]
-}
-
@@ -3751,22 +2786,24 @@

sh:maxCount

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:maxCount - The maximum cardinality. - Node shapes cannot have any value for sh:maxCount. - A property shape has at most one value for sh:maxCount. - The values of sh:maxCount in a property shape are literals with datatype xsd:integer. -
+ + + sh:maxCount + + The maximum cardinality. + Node shapes cannot have any value for sh:maxCount. + A property shape has at most one value for sh:maxCount. + The values of sh:maxCount in a property shape are literals with datatype xsd:integer. + + + +
TEXTUAL DEFINITION
@@ -3787,38 +2824,11 @@

sh:maxCount

sh:maxCount 1 ; ] .
-
-
{
-	"@id": "ex:MaxCountExampleShape",
-	"@type": "sh:NodeShape",
-	"sh:property": {
-		"sh:maxCount": {
-			"@type": "xsd:integer",
-			"@value": "1"
-		},
-		"sh:path": {
-			"@id": "ex:birthDate"
-		}
-	},
-	"sh:targetNode": {
-		"@id": "ex:Bob"
-	}
-}
-
-
shape ex:MaxCountExampleShape {
-	targetNode=ex:Bob .
-	ex:birthDate [0..1] .
-}
+
ex:Bob ex:birthDate "May 5th 1990" .
-
-
{
-	"@id": "ex:Bob",
-	"ex:birthDate": "May 5th 1990"
-}
-
@@ -3843,40 +2853,7 @@

Value Range Constraint Components

sh:maxInclusive 150 ; ] . -
-
{
-	"@id": "ex:NumericRangeExampleShape",
-	"@type": "sh:NodeShape",
-	"sh:property": {
-		"sh:maxInclusive": {
-			"@type": "xsd:integer",
-			"@value": "150"
-		},
-		"sh:minInclusive": {
-			"@type": "xsd:integer",
-			"@value": "0"
-		},
-		"sh:path": {
-			"@id": "ex:age"
-		}
-	},
-	"sh:targetNode": [
-		{
-			"@id": "ex:Bob"
-		},
-		{
-			"@id": "ex:Alice"
-		},
-		{
-			"@id": "ex:Ted"
-		}
-	]
-}
-
-
shape ex:NumericRangeExampleShape {
-	targetNode=ex:Bob targetNode=ex:Alice targetNode=ex:Ted .
-	ex:age minInclusive=0 maxInclusive=150 .
-}
+
@@ -3884,30 +2861,6 @@

Value Range Constraint Components

ex:Alice ex:age 220 . ex:Ted ex:age "twenty one" .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:Alice",
-			"ex:age": {
-				"@type": "xsd:integer",
-				"@value": "220"
-			}
-		},
-		{
-			"@id": "ex:Bob",
-			"ex:age": {
-				"@type": "xsd:integer",
-				"@value": "23"
-			}
-		},
-		{
-			"@id": "ex:Ted",
-			"ex:age": "twenty one"
-		}
-	]
-}
-
@@ -3918,21 +2871,23 @@

sh:minExclusive

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:minExclusive - The minimum exclusive value. - The values of sh:minExclusive in a shape are literals. - A shape has at most one value for sh:minExclusive. -
+ + + sh:minExclusive + + The minimum exclusive value. + The values of sh:minExclusive in a shape are literals. + A shape has at most one value for sh:minExclusive. + + + +
TEXTUAL DEFINITION
@@ -3956,21 +2911,23 @@

sh:minInclusive

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:minInclusive - The minimum inclusive value. - The values of sh:minInclusive in a shape are literals. - A shape has at most one value for sh:minInclusive. -
+ + + sh:minInclusive + + The minimum inclusive value. + The values of sh:minInclusive in a shape are literals. + A shape has at most one value for sh:minInclusive. + + + +
TEXTUAL DEFINITION
@@ -3989,21 +2946,23 @@

sh:maxExclusive

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:maxExclusive - The maximum exclusive value. - The values of sh:maxExclusive in a shape are literals. - A shape has at most one value for sh:maxExclusive. -
+ + + sh:maxExclusive + + The maximum exclusive value. + The values of sh:maxExclusive in a shape are literals. + A shape has at most one value for sh:maxExclusive. + + + +
TEXTUAL DEFINITION
@@ -4022,21 +2981,23 @@

sh:maxInclusive

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:maxInclusive - The maximum inclusive value. - The values of sh:maxInclusive in a shape are literals. - A shape has at most one value for sh:maxInclusive. -
+ + + sh:maxInclusive + + The maximum inclusive value. + The values of sh:maxInclusive in a shape are literals. + A shape has at most one value for sh:maxInclusive. + + + +
TEXTUAL DEFINITION
@@ -4067,21 +3028,23 @@

sh:minLength

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:minLength - The minimum length. - The values of sh:minLength in a shape are literals with datatype xsd:integer. - A shape has at most one value for sh:minLength. -
+ + + sh:minLength + + The minimum length. + The values of sh:minLength in a shape are literals with datatype xsd:integer. + A shape has at most one value for sh:minLength. + + + +
TEXTUAL DEFINITION
@@ -4112,21 +3075,23 @@

sh:maxLength

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:maxLength - The maximum length. - The values of sh:maxLength in a shape are literals with datatype xsd:integer. - A shape has at most one value for sh:maxLength. -
+ + + sh:maxLength + + The maximum length. + The values of sh:maxLength in a shape are literals with datatype xsd:integer. + A shape has at most one value for sh:maxLength. + + + +
TEXTUAL DEFINITION
@@ -4151,56 +3116,12 @@

sh:maxLength

sh:maxLength 10 ; ] .
-
-
{
-	"@id": "ex:PasswordExampleShape",
-	"@type": "sh:NodeShape",
-	"sh:property": {
-		"sh:maxLength": {
-			"@type": "xsd:integer",
-			"@value": "10"
-		},
-		"sh:minLength": {
-			"@type": "xsd:integer",
-			"@value": "8"
-		},
-		"sh:path": {
-			"@id": "ex:password"
-		}
-	},
-	"sh:targetNode": [
-		{
-			"@id": "ex:Bob"
-		},
-		{
-			"@id": "ex:Alice"
-		}
-	]
-}
-
-
shape ex:PasswordExampleShape {
-	targetNode=ex:Bob targetNode=ex:Alice .
-	ex:password minLength=8 maxLength=10 .
-}
+
ex:Bob ex:password "123456789" . ex:Alice ex:password "1234567890ABC" .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:Alice",
-			"ex:password": "1234567890ABC"
-		},
-		{
-			"@id": "ex:Bob",
-			"ex:password": "123456789"
-		}
-	]
-}
-
@@ -4216,28 +3137,30 @@

sh:pattern

Parameters:
- - - - + + + + + - - - - - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:pattern - A regular expression that all value nodes need to match. - The values of sh:pattern in a shape are literals with datatype xsd:string. - The values of sh:pattern in a shape are valid pattern arguments for the SPARQL REGEX function. -
sh:flags - An optional string of flags, interpreted as in SPARQL 1.2 REGEX. - The values of sh:flags in a shape are literals with datatype xsd:string. -
+ + + sh:pattern + + A regular expression that all value nodes need to match. + The values of sh:pattern in a shape are literals with datatype xsd:string. + The values of sh:pattern in a shape are valid pattern arguments for the SPARQL REGEX function. + + + + sh:flags + + An optional string of flags, interpreted as in SPARQL 1.2 REGEX. + The values of sh:flags in a shape are literals with datatype xsd:string. + + + +
TEXTUAL DEFINITION
@@ -4264,58 +3187,13 @@

sh:pattern

sh:flags "i" ; # Ignore case ] .
-
-
{
-	"@id": "ex:PatternExampleShape",
-	"@type": "sh:NodeShape",
-	"sh:property": {
-		"sh:flags": "i",
-		"sh:path": {
-			"@id": "ex:bCode"
-		},
-		"sh:pattern": "^B"
-	},
-	"sh:targetNode": [
-		{
-			"@id": "ex:Bob"
-		},
-		{
-			"@id": "ex:Alice"
-		},
-		{
-			"@id": "ex:Carol"
-		}
-	]
-}
-
-
shape ex:PatternExampleShape {
-	targetNode=ex:Bob targetNode=ex:Alice targetNode=ex:Carol .
-	ex:bCode pattern="^B" flags="i" .
-}
+
ex:Bob ex:bCode "b101" . ex:Alice ex:bCode "B102" . ex:Carol ex:bCode "C103" .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:Alice",
-			"ex:bCode": "B102"
-		},
-		{
-			"@id": "ex:Bob",
-			"ex:bCode": "b101"
-		},
-		{
-			"@id": "ex:Carol",
-			"ex:bCode": "C103"
-		}
-	]
-}
-
@@ -4337,21 +3215,23 @@

sh:singleLine

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:singleLine - true to activate this constraint. - The values of sh:singleLine in a shape are literals with datatype xsd:boolean. - A shape has at most one value for sh:singleLine. -
+ + + sh:singleLine + + true to activate this constraint. + The values of sh:singleLine in a shape are literals with datatype xsd:boolean. + A shape has at most one value for sh:singleLine. + + + +
TEXTUAL DEFINITION
@@ -4384,51 +3264,6 @@

sh:singleLine

sh:singleLine false ; ] .
-
-
{
-	"@id": "ex:SingleLineExampleShape",
-	"@type": "sh:NodeShape",
-	"sh:property": [
-		{
-			"@type": "sh:PropertyShape",
-			"sh:datatype": {
-				"@id": "xsd:string"
-			},
-			"sh:path": {
-				"@id": "rdfs:label"
-			},
-			"sh:singleLine": {
-				"@type": "xsd:boolean",
-				"@value": "true"
-			}
-		},
-		{
-			"@type": "sh:PropertyShape",
-			"sh:or": {
-				"@list": [
-					{
-						"sh:datatype": {
-							"@id": "xsd:string"
-						}
-					},
-					{
-						"sh:datatype": {
-							"@id": "rdf:langString"
-						}
-					}
-				]
-			},
-			"sh:path": {
-				"@id": "rdfs:comment"
-			},
-			"sh:singleLine": {
-				"@type": "xsd:boolean",
-				"@value": "false"
-			}
-		}
-	]
-}
-
@@ -4444,22 +3279,24 @@

sh:languageIn

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:languageIn - A list of basic language ranges as per [[!BCP47]]. - Each value of sh:languageIn in a shape is a SHACL list. - Each member of such a list is a literal with datatype xsd:string. - A shape has at most one value for sh:languageIn. -
+ + + sh:languageIn + + A list of basic language ranges as per [[!BCP47]]. + Each value of sh:languageIn in a shape is a SHACL list. + Each member of such a list is a literal with datatype xsd:string. + A shape has at most one value for sh:languageIn. + + + +
TEXTUAL DEFINITION
@@ -4487,35 +3324,7 @@

sh:languageIn

sh:languageIn ( "en" "mi" ) ; ] .
-
-
{
-	"@id": "ex:NewZealandLanguagesShape",
-	"@type": "sh:NodeShape",
-	"sh:property": {
-		"sh:languageIn": {
-			"@list": [
-				"en",
-				"mi"
-			]
-		},
-		"sh:path": {
-			"@id": "ex:prefLabel"
-		}
-	},
-	"sh:targetNode": [
-		{
-			"@id": "ex:Mountain"
-		},
-		{
-			"@id": "ex:Berg"
-		}
-	]
-}
-
-
shape ex:NewZealandLanguagesShape {
-	targetNode=ex:Mountain targetNode=ex:Berg .
-	ex:prefLabel languageIn=["en" "mi"] .
-}
+

From the example instances, ex:Berg will lead to constraint violations for all of its labels. @@ -4532,42 +3341,6 @@

sh:languageIn

ex:prefLabel "Berg"@de ; ex:prefLabel ex:BergLabel .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:Berg",
-			"ex:prefLabel": [
-				"Berg",
-				{
-					"@language": "de",
-					"@value": "Berg"
-				},
-				{
-					"@id": "ex:BergLabel"
-				}
-			]
-		},
-		{
-			"@id": "ex:Mountain",
-			"ex:prefLabel": [
-				{
-					"@language": "en",
-					"@value": "Mountain"
-				},
-				{
-					"@language": "en-nz",
-					"@value": "Hill"
-				},
-				{
-					"@language": "mi",
-					"@value": "Maunga"
-				}
-			]
-		}
-	]
-}
-
@@ -4583,22 +3356,24 @@

sh:uniqueLang

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:uniqueLang - true to activate this constraint. - The values of sh:uniqueLang in a shape are literals with datatype xsd:boolean. - A property shape has at most one value for sh:uniqueLang. - Node shapes cannot have any value for sh:uniqueLang. -
+ + + sh:uniqueLang + + true to activate this constraint. + The values of sh:uniqueLang in a shape are literals with datatype xsd:boolean. + A property shape has at most one value for sh:uniqueLang. + Node shapes cannot have any value for sh:uniqueLang. + + + +
TEXTUAL DEFINITION
@@ -4620,33 +3395,7 @@

sh:uniqueLang

sh:uniqueLang true ; ] .
-
-
{
-	"@id": "ex:UniqueLangExampleShape",
-	"@type": "sh:NodeShape",
-	"sh:property": {
-		"sh:path": {
-			"@id": "ex:label"
-		},
-		"sh:uniqueLang": {
-			"@type": "xsd:boolean",
-			"@value": "true"
-		}
-	},
-	"sh:targetNode": [
-		{
-			"@id": "ex:Alice"
-		},
-		{
-			"@id": "ex:Bob"
-		}
-	]
-}
-
-
shape ex:UniqueLangExampleShape {
-	targetNode=ex:Alice targetNode=ex:Bob .
-	ex:label uniqueLang=true .
-}
+
ex:Alice @@ -4658,39 +3407,6 @@

sh:uniqueLang

ex:label "Bob"@en ; ex:label "Bobby"@en .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:Alice",
-			"ex:label": [
-				"Alice",
-				{
-					"@language": "en",
-					"@value": "Alice"
-				},
-				{
-					"@language": "fr",
-					"@value": "Alice"
-				}
-			]
-		},
-		{
-			"@id": "ex:Bob",
-			"ex:label": [
-				{
-					"@language": "en",
-					"@value": "Bob"
-				},
-				{
-					"@language": "en",
-					"@value": "Bobby"
-				}
-			]
-		}
-	]
-}
-
@@ -4714,20 +3430,22 @@

sh:memberShape

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:memberShape - The shape that all members of the SHACL list must conform to. - The value of sh:memberShape must be a well-formed node shape. -
+ + + sh:memberShape + + The shape that all members of the SHACL list must conform to. + The value of sh:memberShape must be a well-formed node shape. + + + +
TEXTUAL DEFINITION
@@ -4760,25 +3478,6 @@

sh:memberShape

] ; ] .
-
-
{
-	"@id": "ex:AgendaShape",
-	"@type": "sh:NodeShape",
-	"sh:property": {
-		"sh:memberShape": {
-			"sh:nodeKind": {
-				"@id": "sh:IRI"
-			}
-		},
-		"sh:path": {
-			"@id": "ex:speakerOrder"
-		}
-	},
-	"sh:targetClass": {
-		"@id": "ex:Agenda"
-	}
-}
-
@@ -4788,44 +3487,6 @@

sh:memberShape

ex:agenda2 a ex:Agenda ; ex:speakerOrder ( ex:Alice ex:Bob "Charlie" ) .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:agenda1",
-			"@type": "ex:Agenda",
-			"ex:speakerOrder": {
-				"@list": [
-					{
-						"@id": "ex:Alice"
-					},
-					{
-						"@id": "ex:Bob"
-					},
-					{
-						"@id": "ex:Charlie"
-					}
-				]
-			}
-		},
-		{
-			"@id": "ex:agenda2",
-			"@type": "ex:Agenda",
-			"ex:speakerOrder": {
-				"@list": [
-					{
-						"@id": "ex:Alice"
-					},
-					{
-						"@id": "ex:Bob"
-					},
-					"Charlie"
-				]
-			}
-		}
-	]
-}
-
@@ -4841,21 +3502,23 @@

sh:minListLength

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:minListLength - The minimum number of members in the SHACL list. - The values of sh:minListLength in a shape are literals with datatype xsd:integer. - The values of sh:minListLength in a shape are integers greater than or equal to 0. -
+ + + sh:minListLength + + The minimum number of members in the SHACL list. + The values of sh:minListLength in a shape are literals with datatype xsd:integer. + The values of sh:minListLength in a shape are integers greater than or equal to 0. + + + +
TEXTUAL DEFINITION
@@ -4881,24 +3544,6 @@

sh:minListLength

sh:minListLength 1 ; ] .
-
-
{
-	"@id": "ex:PersonShape",
-	"@type": "sh:NodeShape",
-	"sh:property": {
-		"sh:minListLength": {
-			"@type": "xsd:integer",
-			"@value": "1"
-		},
-		"sh:path": {
-			"@id": "ex:skills"
-		}
-	},
-	"sh:targetClass": {
-		"@id": "ex:Person"
-	}
-}
-
@@ -4908,29 +3553,6 @@

sh:minListLength

ex:person2 a ex:Person ; ex:skills () .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:person1",
-			"@type": "ex:Person",
-			"ex:skills": {
-				"@list": [
-					"programming",
-					"design"
-				]
-			}
-		},
-		{
-			"@id": "ex:person2",
-			"@type": "ex:Person",
-			"ex:skills": {
-				"@list": []
-			}
-		}
-	]
-}
-
@@ -4946,21 +3568,23 @@

sh:maxListLength

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:maxListLength - The maximum number of members in the SHACL list. - The values of sh:maxListLength in a shape are literals with datatype xsd:integer. - The values of sh:maxListLength in a shape are integers greater than or equal to 0. -
+ + + sh:maxListLength + + The maximum number of members in the SHACL list. + The values of sh:maxListLength in a shape are literals with datatype xsd:integer. + The values of sh:maxListLength in a shape are integers greater than or equal to 0. + + + +
TEXTUAL DEFINITION
@@ -4986,24 +3610,6 @@

sh:maxListLength

sh:maxListLength 2 ; ] .
-
-
{
-	"@id": "ex:PersonShape",
-	"@type": "sh:NodeShape",
-	"sh:property": {
-		"sh:maxListLength": {
-			"@type": "xsd:integer",
-			"@value": "2"
-		},
-		"sh:path": {
-			"@id": "ex:hobbies"
-		}
-	},
-	"sh:targetClass": {
-		"@id": "ex:Person"
-	}
-}
-
@@ -5013,33 +3619,6 @@

sh:maxListLength

ex:person2 a ex:Person ; ex:hobbies ( "reading" "writing" "swimming" ) .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:person1",
-			"@type": "ex:Person",
-			"ex:hobbies": {
-				"@list": [
-					"reading",
-					"writing"
-				]
-			}
-		},
-		{
-			"@id": "ex:person2",
-			"@type": "ex:Person",
-			"ex:hobbies": {
-				"@list": [
-					"reading",
-					"writing",
-					"swimming"
-				]
-			}
-		}
-	]
-}
-
@@ -5055,20 +3634,22 @@

sh:uniqueMembers

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:uniqueMembers - A boolean that specifies whether the members of the SHACL list must be unique. - The values of sh:uniqueMembers in a shape are literals with datatype xsd:boolean. -
+ + + sh:uniqueMembers + + A boolean that specifies whether the members of the SHACL list must be unique. + The values of sh:uniqueMembers in a shape are literals with datatype xsd:boolean. + + + +
TEXTUAL DEFINITION
@@ -5099,24 +3680,6 @@

sh:uniqueMembers

sh:uniqueMembers true ; ] .
-
-
{
-	"@id": "ex:PersonShape",
-	"@type": "sh:NodeShape",
-	"sh:property": {
-		"sh:uniqueMembers": {
-			"@type": "xsd:boolean",
-			"@value": "true"
-		},
-		"sh:path": {
-			"@id": "ex:preferences"
-		}
-	},
-	"sh:targetClass": {
-		"@id": "ex:Person"
-	}
-}
-
@@ -5126,35 +3689,6 @@

sh:uniqueMembers

ex:person2 a ex:Person ; ex:preferences ( "coffee" "tea" "coffee" "tea" "tea" ) .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:person1",
-			"@type": "ex:Person",
-			"ex:preferences": {
-				"@list": [
-					"coffee",
-					"tea"
-				]
-			}
-		},
-		{
-			"@id": "ex:person2",
-			"@type": "ex:Person",
-			"ex:preferences": {
-				"@list": [
-					"coffee",
-					"tea",
-					"coffee",
-					"tea",
-					"tea"
-				]
-			}
-		}
-	]
-}
-
@@ -5178,20 +3712,22 @@

sh:equals

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:equals - The property to compare with. - The values of sh:equals in a shape are IRIs. -
+ + + sh:equals + + The property to compare with. + The values of sh:equals in a shape are IRIs. + + + +
TEXTUAL DEFINITION
@@ -5220,40 +3756,13 @@

sh:equals

sh:equals ex:givenName ; ] .
-
-
{
-	"@id": "ex:EqualExampleShape",
-	"@type": "sh:NodeShape",
-	"sh:property": {
-		"sh:equals": {
-			"@id": "ex:givenName"
-		},
-		"sh:path": {
-			"@id": "ex:firstName"
-		}
-	},
-	"sh:targetNode": {
-		"@id": "ex:Bob"
-	}
-}
-
-
shape ex:EqualExampleShape {
-	targetNode=ex:Bob .
-	ex:firstName equals=ex:givenName .
-}
+
ex:Bob ex:firstName "Bob" ; ex:givenName "Bob" .
-
-
{
-	"@id": "ex:Bob",
-	"ex:firstName": "Bob",
-	"ex:givenName": "Bob"
-}
-
@@ -5272,20 +3781,22 @@

sh:disjoint

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:disjoint - The property to compare the values with. - The values of sh:disjoint in a shape are IRIs. -
+ + + sh:disjoint + + The property to compare the values with. + The values of sh:disjoint in a shape are IRIs. + + + +
TEXTUAL DEFINITION
@@ -5311,32 +3822,7 @@

sh:disjoint

sh:disjoint ex:altLabel ; ] .
-
-
{
-	"@id": "ex:DisjointExampleShape",
-	"@type": "sh:NodeShape",
-	"sh:property": {
-		"sh:disjoint": {
-			"@id": "ex:altLabel"
-		},
-		"sh:path": {
-			"@id": "ex:prefLabel"
-		}
-	},
-	"sh:targetNode": [
-		{
-			"@id": "ex:USA"
-		},
-		{
-			"@id": "ex:Germany"
-		}
-	]
-}
-
-
shape ex:DisjointExampleShape {
-	targetNode=ex:USA targetNode=ex:Germany .
-	ex:prefLabel disjoint=ex:altLabel .
-}
+
ex:USA @@ -5347,22 +3833,6 @@

sh:disjoint

ex:prefLabel "Germany" ; ex:altLabel "Germany" .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:Germany",
-			"ex:altLabel": "Germany",
-			"ex:prefLabel": "Germany"
-		},
-		{
-			"@id": "ex:USA",
-			"ex:altLabel": "United States",
-			"ex:prefLabel": "USA"
-		}
-	]
-}
-
@@ -5378,21 +3848,23 @@

sh:lessThan

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:lessThan - The property to compare the values with. - The values of sh:lessThan in a shape are IRIs. - Node shapes cannot have any value for sh:lessThan. -
+ + + sh:lessThan + + The property to compare the values with. + The values of sh:lessThan in a shape are IRIs. + Node shapes cannot have any value for sh:lessThan. + + + +
TEXTUAL DEFINITION
@@ -5418,23 +3890,7 @@

sh:lessThan

sh:lessThan ex:endDate ; ] .
-
-
{
-	"@id": "ex:LessThanExampleShape",
-	"@type": "sh:NodeShape",
-	"sh:property": {
-		"sh:lessThan": {
-			"@id": "ex:endDate"
-		},
-		"sh:path": {
-			"@id": "ex:startDate"
-		}
-	}
-}
-
-
shape ex:LessThanExampleShape {
-	ex:startDate lessThan=ex:endDate .
-}
+
@@ -5449,21 +3905,23 @@

sh:lessThanOrEquals

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:lessThanOrEquals - The property to compare the values with. - The values of sh:lessThanOrEquals in a shape are IRIs. - Node shapes cannot have any value for sh:lessThanOrEquals. -
+ + + sh:lessThanOrEquals + + The property to compare the values with. + The values of sh:lessThanOrEquals in a shape are IRIs. + Node shapes cannot have any value for sh:lessThanOrEquals. + + + +
TEXTUAL DEFINITION
@@ -5495,20 +3953,22 @@

sh:not

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:not - The shape to negate. - The values of sh:not in a shape must be well-formed shapes. -
+ + + sh:not + + The shape to negate. + The values of sh:not in a shape must be well-formed shapes. + + + +
TEXTUAL DEFINITION
@@ -5537,36 +3997,11 @@

sh:not

sh:minCount 1 ; ] .
-
-
{
-	"@id": "ex:NotExampleShape",
-	"@type": "sh:NodeShape",
-	"sh:not": {
-		"@type": "sh:PropertyShape",
-		"sh:minCount": {
-			"@type": "xsd:integer",
-			"@value": "1"
-		},
-		"sh:path": {
-			"@id": "ex:property"
-		}
-	},
-	"sh:targetNode": {
-		"@id": "ex:InvalidInstance1"
-	}
-}
-
ex:InvalidInstance1 ex:property "Some value" .
-
-
{
-	"@id": "ex:InvalidInstance1",
-	"ex:property": "Some value"
-}
-
@@ -5583,21 +4018,23 @@

sh:and

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:and - A SHACL list of shapes to validate the value nodes against. - Each value of sh:and in a shape is a SHACL list. - Each member of such list must be a well-formed shape. -
+ + + sh:and + + A SHACL list of shapes to validate the value nodes against. + Each value of sh:and in a shape is a SHACL list. + Each member of such list must be a well-formed shape. + + + +
TEXTUAL DEFINITION
@@ -5643,53 +4080,6 @@

sh:and

] ) .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:ExampleAndShape",
-			"@type": "sh:NodeShape",
-			"sh:and": {
-				"@list": [
-					{
-						"@id": "ex:SuperShape"
-					},
-					{
-						"sh:maxCount": {
-							"@type": "xsd:integer",
-							"@value": "1"
-						},
-						"sh:path": {
-							"@id": "ex:property"
-						}
-					}
-				]
-			},
-			"sh:targetNode": [
-				{
-					"@id": "ex:ValidInstance"
-				},
-				{
-					"@id": "ex:InvalidInstance"
-				}
-			]
-		},
-		{
-			"@id": "ex:SuperShape",
-			"@type": "sh:NodeShape",
-			"sh:property": {
-				"sh:minCount": {
-					"@type": "xsd:integer",
-					"@value": "1"
-				},
-				"sh:path": {
-					"@id": "ex:property"
-				}
-			}
-		}
-	]
-}
-
@@ -5701,23 +4091,6 @@

sh:and

ex:property "One" ; ex:property "Two" .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:InvalidInstance",
-			"ex:property": [
-				"One",
-				"Two"
-			]
-		},
-		{
-			"@id": "ex:ValidInstance",
-			"ex:property": "One"
-		}
-	]
-}
-
@@ -5734,21 +4107,23 @@

sh:or

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:or - A SHACL list of shapes to validate the value nodes against. - Each value of sh:or in a shape is a SHACL list. - Each member of such list must be a well-formed shape. -
+ + + sh:or + + A SHACL list of shapes to validate the value nodes against. + Each value of sh:or in a shape is a SHACL list. + Each member of such list must be a well-formed shape. + + + +
TEXTUAL DEFINITION
@@ -5788,48 +4163,11 @@

sh:or

] ) .
-
-
{
-	"@id": "ex:OrConstraintExampleShape",
-	"@type": "sh:NodeShape",
-	"sh:or": {
-		"@list": [
-			{
-				"sh:minCount": {
-					"@type": "xsd:integer",
-					"@value": "1"
-				},
-				"sh:path": {
-					"@id": "ex:firstName"
-				}
-			},
-			{
-				"sh:minCount": {
-					"@type": "xsd:integer",
-					"@value": "1"
-				},
-				"sh:path": {
-					"@id": "ex:givenName"
-				}
-			}
-		]
-	},
-	"sh:targetNode": {
-		"@id": "ex:Bob"
-	}
-}
-
ex:Bob ex:firstName "Robert" .
-
-
{
-	"@id": "ex:Bob",
-	"ex:firstName": "Robert"
-}
-

@@ -5855,47 +4193,11 @@

sh:or

) ] .
-
-
{
-	"@id": "ex:PersonAddressShape",
-	"@type": "sh:NodeShape",
-	"sh:property": {
-		"sh:or": {
-			"@list": [
-				{
-					"sh:datatype": {
-						"@id": "xsd:string"
-					}
-				},
-				{
-					"sh:class": {
-						"@id": "ex:Address"
-					}
-				}
-			]
-		},
-		"sh:path": {
-			"@id": "ex:address"
-		}
-	},
-	"sh:targetClass": {
-		"@id": "ex:Person"
-	}
-}
-
-
shape ex:PersonAddressShape -> ex:Person {
-	ex:address xsd:string|ex:Address .
-}
+
ex:Bob ex:address "123 Prinzengasse, Vaduz, Liechtenstein" .
-
-
{
-	"@id": "ex:Bob",
-	"ex:address": "123 Prinzengasse, Vaduz, Liechtenstein"
-}
-
@@ -5911,34 +4213,6 @@

sh:or

(ex:shapeA ex:shapeB), (ex:shapeC ex:shapeD). -
-
{
-	"@id": "ex:shapeRoot",
-	"@type": "sh:NodeShape",
-	"sh:or": [
-		{
-			"@list": [
-				{
-					"@id": "ex:shapeA"
-				},
-				{
-					"@id": "ex:shapeB"
-				}
-			]
-		},
-		{
-			"@list": [
-				{
-					"@id": "ex:shapeC"
-				},
-				{
-					"@id": "ex:shapeD"
-				}
-			]
-		}
-	]
-}
-

@@ -5958,21 +4232,23 @@

sh:xone

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:xone - A SHACL list of shapes to validate the value nodes against. - Each value of sh:xone in a shape is a SHACL list. - Each member of such list must be a well-formed shape. -
+ + + sh:xone + + A SHACL list of shapes to validate the value nodes against. + Each value of sh:xone in a shape is a SHACL list. + Each member of such list must be a well-formed shape. + + + +
TEXTUAL DEFINITION
@@ -6020,52 +4296,6 @@

sh:xone

] ) .
-
-
{
-	"@id": "ex:XoneConstraintExampleShape",
-	"@type": "sh:NodeShape",
-	"sh:targetClass": {
-		"@id": "ex:Person"
-	},
-	"sh:xone": {
-		"@list": [
-			{
-				"sh:property": {
-					"sh:minCount": {
-						"@type": "xsd:integer",
-						"@value": "1"
-					},
-					"sh:path": {
-						"@id": "ex:fullName"
-					}
-				}
-			},
-			{
-				"sh:property": [
-					{
-						"sh:minCount": {
-							"@type": "xsd:integer",
-							"@value": "1"
-						},
-						"sh:path": {
-							"@id": "ex:firstName"
-						}
-					},
-					{
-						"sh:minCount": {
-							"@type": "xsd:integer",
-							"@value": "1"
-						},
-						"sh:path": {
-							"@id": "ex:lastName"
-						}
-					}
-				]
-			}
-		]
-	}
-}
-
@@ -6081,30 +4311,6 @@

sh:xone

ex:lastName "Dunce" ; ex:fullName "Dory Dunce" .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:Bob",
-			"@type": "ex:Person",
-			"ex:firstName": "Robert",
-			"ex:lastName": "Coin"
-		},
-		{
-			"@id": "ex:Carla",
-			"@type": "ex:Person",
-			"ex:fullName": "Carla Miller"
-		},
-		{
-			"@id": "ex:Dory",
-			"@type": "ex:Person",
-			"ex:firstName": "Dory",
-			"ex:fullName": "Dory Dunce",
-			"ex:lastName": "Dunce"
-		}
-	]
-}
-
@@ -6127,20 +4333,22 @@

sh:node

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:node - The node shape that all value nodes need to conform to. - The values of sh:node in a shape must be well-formed node shapes. -
+ + + sh:node + + The node shape that all value nodes need to conform to. + The values of sh:node in a shape must be well-formed node shapes. + + + +
TEXTUAL DEFINITION
@@ -6176,53 +4384,7 @@

sh:node

sh:node ex:AddressShape ; ] .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:AddressShape",
-			"@type": "sh:NodeShape",
-			"sh:property": {
-				"sh:datatype": {
-					"@id": "xsd:string"
-				},
-				"sh:maxCount": {
-					"@type": "xsd:integer",
-					"@value": "1"
-				},
-				"sh:path": {
-					"@id": "ex:postalCode"
-				}
-			}
-		},
-		{
-			"@id": "ex:PersonShape",
-			"@type": "sh:NodeShape",
-			"sh:property": {
-				"sh:minCount": {
-					"@type": "xsd:integer",
-					"@value": "1"
-				},
-				"sh:node": {
-					"@id": "ex:AddressShape"
-				},
-				"sh:path": {
-					"@id": "ex:address"
-				}
-			},
-			"sh:targetClass": {
-				"@id": "ex:Person"
-			}
-		}
-	]
-}
-
-
shape ex:AddressShape {
-	ex:postalCode xsd:string [0..1] .
-}
-shape ex:PersonShape -> ex:Person {
-	ex:address [1..*] @ex:AddressShape .
-}
+
ex:Bob a ex:Person ; @@ -6237,37 +4399,6 @@

sh:node

ex:RetosAddress ex:postalCode 5678 .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:Bob",
-			"@type": "ex:Person",
-			"ex:address": {
-				"@id": "ex:BobsAddress"
-			}
-		},
-		{
-			"@id": "ex:BobsAddress",
-			"ex:postalCode": "1234"
-		},
-		{
-			"@id": "ex:Reto",
-			"@type": "ex:Person",
-			"ex:address": {
-				"@id": "ex:RetosAddress"
-			}
-		},
-		{
-			"@id": "ex:RetosAddress",
-			"ex:postalCode": {
-				"@type": "xsd:integer",
-				"@value": "5678"
-			}
-		}
-	]
-}
-
@@ -6285,37 +4416,6 @@

sh:node

] ] .
-
-
{
-	"@type": "sh:ValidationReport",
-	"sh:conforms": {
-		"@type": "xsd:boolean",
-		"@value": "false"
-	},
-	"sh:result": {
-		"@type": "sh:ValidationResult",
-		"sh:focusNode": {
-			"@id": "ex:Reto"
-		},
-		"sh:resultMessage": "Value does not conform to shape ex:AddressShape.",
-		"sh:resultPath": {
-			"@id": "ex:address"
-		},
-		"sh:resultSeverity": {
-			"@id": "sh:Violation"
-		},
-		"sh:sourceConstraintComponent": {
-			"@id": "sh:NodeConstraintComponent"
-		},
-		"sh:sourceShape": {
-			"@id": "_:b1"
-		},
-		"sh:value": {
-			"@id": "ex:RetosAddress"
-		}
-	}
-}
-
@@ -6331,20 +4431,22 @@

sh:property

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:property - A property shape that all value nodes need to have. - Each value of sh:property in a shape must be a well-formed property shape. -
+ + + sh:property + + A property shape that all value nodes need to have. + Each value of sh:property in a shape must be a well-formed property shape. + + + +
TEXTUAL DEFINITION
@@ -6430,27 +4532,7 @@

sh:someValue

] ] .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:DuckFarmerShape",
-			"@type": "sh:NodeShape",
-			"sh:property": {
-				"sh:path": {
-					"@id": "ex:tendsAnimal"
-				},
-				"sh:someValue": {
-					"sh:class": {
-						"@id": "ex:Duck"
-					}
-				}
-			}
-		}
-	]
-}
-
TODO

sh:someValue can be regarded as syntactic sugar for a combination of @@ -6471,46 +4553,48 @@

sh:qualifiedValueShape, sh:qualifiedMinCount, sh:qualifiedMaxCount

Parameters:
- - - - + + + + + - - - - - - - - - - - - - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:qualifiedValueShape - The shape that the specified number of value nodes needs to conform to. - The values of sh:qualifiedValueShape in a shape must be well-formed shapes. - Node shapes cannot have any value for sh:qualifiedValueShape. - This is a mandatory parameter of sh:QualifiedMinCountConstraintComponent and sh:QualifiedMaxCountConstraintComponent. -
sh:qualifiedValueShapesDisjoint - This is an optional parameter of sh:QualifiedMinCountConstraintComponent and sh:QualifiedMaxCountConstraintComponent. - If set to true then (for the counting) the value nodes must not conform to any of the sibling shapes. - The values of sh:qualifiedValueShapesDisjoint in a shape are literals with datatype xsd:boolean. -
sh:qualifiedMinCount - The minimum number of value nodes that conform to the shape. - The values of sh:qualifiedMinCount in a shape are literals with datatype xsd:integer. - This is a mandatory parameter of sh:QualifiedMinCountConstraintComponent. -
sh:qualifiedMaxCount - The maximum number of value nodes that can conform to the shape. - The values of sh:qualifiedMaxCount in a shape are literals with datatype xsd:integer. - This is a mandatory parameter of sh:QualifiedMaxCountConstraintComponent. -
+ + + sh:qualifiedValueShape + + The shape that the specified number of value nodes needs to conform to. + The values of sh:qualifiedValueShape in a shape must be well-formed shapes. + Node shapes cannot have any value for sh:qualifiedValueShape. + This is a mandatory parameter of sh:QualifiedMinCountConstraintComponent and sh:QualifiedMaxCountConstraintComponent. + + + + sh:qualifiedValueShapesDisjoint + + This is an optional parameter of sh:QualifiedMinCountConstraintComponent and sh:QualifiedMaxCountConstraintComponent. + If set to true then (for the counting) the value nodes must not conform to any of the sibling shapes. + The values of sh:qualifiedValueShapesDisjoint in a shape are literals with datatype xsd:boolean. + + + + sh:qualifiedMinCount + + The minimum number of value nodes that conform to the shape. + The values of sh:qualifiedMinCount in a shape are literals with datatype xsd:integer. + This is a mandatory parameter of sh:QualifiedMinCountConstraintComponent. + + + + sh:qualifiedMaxCount + + The maximum number of value nodes that can conform to the shape. + The values of sh:qualifiedMaxCount in a shape are literals with datatype xsd:integer. + This is a mandatory parameter of sh:QualifiedMaxCountConstraintComponent. + + + +
TEXTUAL DEFINITION of Sibling Shapes
@@ -6574,40 +4658,6 @@

sh:qualifiedValueShape, sh:qualifiedMinCount, sh:qualifiedMaxCount

sh:qualifiedMinCount 1 ; ] .
-
-
{
-	"@id": "ex:QualifiedValueShapeExampleShape",
-	"@type": "sh:NodeShape",
-	"sh:property": {
-		"sh:maxCount": {
-			"@type": "xsd:integer",
-			"@value": "2"
-		},
-		"sh:minCount": {
-			"@type": "xsd:integer",
-			"@value": "2"
-		},
-		"sh:path": {
-			"@id": "ex:parent"
-		},
-		"sh:qualifiedMinCount": {
-			"@type": "xsd:integer",
-			"@value": "1"
-		},
-		"sh:qualifiedValueShape": {
-			"sh:hasValue": {
-				"@id": "ex:female"
-			},
-			"sh:path": {
-				"@id": "ex:gender"
-			}
-		}
-	},
-	"sh:targetNode": {
-		"@id": "ex:QualifiedValueShapeExampleValidResource"
-	}
-}
-
@@ -6615,40 +4665,11 @@

sh:qualifiedValueShape, sh:qualifiedMinCount, sh:qualifiedMaxCount

ex:parent ex:John ; ex:parent ex:Jane . -ex:John - ex:gender ex:male . - -ex:Jane - ex:gender ex:female . -
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:Jane",
-			"ex:gender": {
-				"@id": "ex:female"
-			}
-		},
-		{
-			"@id": "ex:John",
-			"ex:gender": {
-				"@id": "ex:male"
-			}
-		},
-		{
-			"@id": "ex:QualifiedValueShapeExampleValidResource",
-			"ex:parent": [
-				{
-					"@id": "ex:John"
-				},
-				{
-					"@id": "ex:Jane"
-				}
-			]
-		}
-	]
-}
+ex:John + ex:gender ex:male . + +ex:Jane + ex:gender ex:female .
@@ -6684,70 +4705,6 @@

sh:qualifiedValueShape, sh:qualifiedMinCount, sh:qualifiedMaxCount

sh:qualifiedMaxCount 4 ; ] . -
-
{
-	"@id": "ex:HandShape",
-	"@type": "sh:NodeShape",
-	"sh:property": [
-		{
-			"sh:maxCount": {
-				"@type": "xsd:integer",
-				"@value": "5"
-			},
-			"sh:path": {
-				"@id": "ex:digit"
-			}
-		},
-		{
-			"sh:path": {
-				"@id": "ex:digit"
-			},
-			"sh:qualifiedMaxCount": {
-				"@type": "xsd:integer",
-				"@value": "1"
-			},
-			"sh:qualifiedMinCount": {
-				"@type": "xsd:integer",
-				"@value": "1"
-			},
-			"sh:qualifiedValueShape": {
-				"sh:class": {
-					"@id": "ex:Thumb"
-				}
-			},
-			"sh:qualifiedValueShapesDisjoint": {
-				"@type": "xsd:boolean",
-				"@value": "true"
-			}
-		},
-		{
-			"sh:path": {
-				"@id": "ex:digit"
-			},
-			"sh:qualifiedMaxCount": {
-				"@type": "xsd:integer",
-				"@value": "4"
-			},
-			"sh:qualifiedMinCount": {
-				"@type": "xsd:integer",
-				"@value": "4"
-			},
-			"sh:qualifiedValueShape": {
-				"sh:class": {
-					"@id": "ex:Finger"
-				}
-			},
-			"sh:qualifiedValueShapesDisjoint": {
-				"@type": "xsd:boolean",
-				"@value": "true"
-			}
-		}
-	],
-	"sh:targetClass": {
-		"@id": "ex:Hand"
-	}
-}
-
@@ -6763,31 +4720,33 @@

sh:reifierShape, sh:reificationRequired

Parameters:
- - - - + + + + + - - - - - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:reifierShape - The node shape that a reifier for this triple must conform to. - - The values of sh:reifierShape must be well-formed node shapes. - If a value for sh:reifierShape is given, sh:path values are constrained to IRIs. - -
sh:reificationRequired - This is an optional parameter of sh:ReifierShapeConstraintComponent. - If set to true, there must be at least one reification value for the focus node/path combination in the data graph. - The values of sh:reificationRequired in a shape are literals with datatype xsd:boolean. -
+ + + sh:reifierShape + + The node shape that a reifier for this triple must conform to. + + The values of sh:reifierShape must be well-formed node shapes. + If a value for sh:reifierShape is given, sh:path values are constrained to IRIs. + + + + + sh:reificationRequired + + This is an optional parameter of sh:ReifierShapeConstraintComponent. + If set to true, there must be at least one reification value for the focus node/path combination in the data graph. + The values of sh:reificationRequired in a shape are literals with datatype xsd:boolean. + + + +
TEXTUAL DEFINITION
@@ -6834,73 +4793,6 @@

sh:reifierShape, sh:reificationRequired

sh:reifierShape ex:ProvenanceShape ; sh:reificationRequired true .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:PersonShape",
-			"@type": "sh:NodeShape",
-			"sh:property": {
-				"@id": "ex:PersonShape-age"
-			},
-			"sh:targetClass": {
-				"@id": "ex:Person"
-			}
-		},
-		{
-			"@id": "ex:PersonShape-age",
-			"@type": "sh:PropertyShape",
-			"sh:datatype": {
-				"@id": "xsd:integer"
-			},
-			"sh:maxCount": {
-				"@type": "xsd:integer",
-				"@value": "1"
-			},
-			"sh:path": {
-				"@id": "ex:age"
-			},
-			"sh:reificationRequired": {
-				"@type": "xsd:boolean",
-				"@value": "true"
-			},
-			"sh:reifierShape": {
-				"@id": "ex:ProvenanceShape"
-			}
-		},
-		{
-			"@id": "ex:ProvenanceShape",
-			"@type": "sh:NodeShape",
-			"sh:property": [
-				{
-					"sh:datatype": {
-						"@id": "xsd:date"
-					},
-					"sh:maxCount": {
-						"@type": "xsd:integer",
-						"@value": "1"
-					},
-					"sh:path": {
-						"@id": "ex:date"
-					}
-				},
-				{
-					"sh:maxCount": {
-						"@type": "xsd:integer",
-						"@value": "1"
-					},
-					"sh:nodeKind": {
-						"@id": "sh:IRI"
-					},
-					"sh:path": {
-						"@id": "ex:author"
-					}
-				}
-			]
-		}
-	]
-}
-
@@ -6909,24 +4801,6 @@

sh:reifierShape, sh:reificationRequired

ex:author ex:Claire |}.
-
-
{
-	"@id": "Bob",
-	"ex:age": {
-		"@type": "xsd:integer",
-		"@value": "23",
-		"@annotation": {
-			"ex:author": {
-				"@id": "ex:Claire"
-			},
-			"ex:date": {
-				"@type": "xsd:date",
-				"@value": "2019-12-05"
-			}
-		}
-	}
-}
-
@@ -6955,29 +4829,31 @@

sh:closed, sh:ignoredProperties

Parameters:
- - - - + + + + + - - - - - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:closed - Set to true to close the shape. - The values of sh:closed in a shape are literals with datatype xsd:boolean - or the IRI sh:ByTypes. -
sh:ignoredProperties - Optional SHACL list of properties that are also permitted in addition to those explicitly enumerated via sh:property. - The values of sh:ignoredProperties in a shape must be SHACL lists. - Each member of such a list must be a IRI. -
+ + + sh:closed + + Set to true to close the shape. + The values of sh:closed in a shape are literals with datatype xsd:boolean + or the IRI sh:ByTypes. + + + + sh:ignoredProperties + + Optional SHACL list of properties that are also permitted in addition to those explicitly enumerated via sh:property. + The values of sh:ignoredProperties in a shape must be SHACL lists. + Each member of such a list must be a IRI. + + + +
TEXTUAL DEFINITION
@@ -7040,48 +4916,7 @@

sh:closed, sh:ignoredProperties

sh:path ex:lastName ; ] .
-
-
{
-	"@id": "ex:ClosedShapeExampleShape",
-	"@type": "sh:NodeShape",
-	"sh:closed": {
-		"@type": "xsd:boolean",
-		"@value": "true"
-	},
-	"sh:ignoredProperties": {
-		"@list": [
-			{
-				"@id": "rdf:type"
-			}
-		]
-	},
-	"sh:property": [
-		{
-			"sh:path": {
-				"@id": "ex:firstName"
-			}
-		},
-		{
-			"sh:path": {
-				"@id": "ex:lastName"
-			}
-		}
-	],
-	"sh:targetNode": [
-		{
-			"@id": "ex:Alice"
-		},
-		{
-			"@id": "ex:Bob"
-		}
-	]
-}
-
-
shape ex:ClosedShapeExampleShape {
-	targetNode=ex:Alice targetNode=ex:Bob closed=true ignoredProperties=[rdf:type] .
-	ex:firstName .
-	ex:lastName .
-}
+
ex:Alice @@ -7091,21 +4926,6 @@

sh:closed, sh:ignoredProperties

ex:firstName "Bob" ; ex:middleInitial "J" .
-
-
{
-	"@graph": [
-		{
-			"@id": "ex:Alice",
-			"ex:firstName": "Alice"
-		},
-		{
-			"@id": "ex:Bob",
-			"ex:firstName": "Bob",
-			"ex:middleInitial": "J"
-		}
-	]
-}
-

@@ -7130,19 +4950,21 @@

sh:hasValue

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:hasValue - A specific required value. -
+ + + sh:hasValue + + A specific required value. + + + +
TEXTUAL DEFINITION
@@ -7163,46 +4985,13 @@

sh:hasValue

sh:hasValue ex:Stanford ; ] .
-
-
{
-	"@id": "ex:StanfordGraduate",
-	"@type": "sh:NodeShape",
-	"sh:property": {
-		"sh:hasValue": {
-			"@id": "ex:Stanford"
-		},
-		"sh:path": {
-			"@id": "ex:alumniOf"
-		}
-	},
-	"sh:targetNode": {
-		"@id": "ex:Alice"
-	}
-}
-
-
shape ex:StanfordGraduate {
-	targetNode=ex:Alice .
-	ex:alumniOf hasValue=ex:Stanford .
-}
+
ex:Alice ex:alumniOf ex:Harvard ; ex:alumniOf ex:Stanford .
-
-
{
-	"@id": "ex:Alice",
-	"ex:alumniOf": [
-		{
-			"@id": "ex:Harvard"
-		},
-		{
-			"@id": "ex:Stanford"
-		}
-	]
-}
-
@@ -7218,21 +5007,23 @@

sh:in

Parameters:
- - - - + + + + + - - - - - -
PropertySummary and Syntax Rules
PropertySummary and Syntax Rules
sh:in - A SHACL list that has the allowed values as members. - Each value of sh:in in a shape is a SHACL list. - A shape has at most one value for sh:in. -
+ + + sh:in + + A SHACL list that has the allowed values as members. + Each value of sh:in in a shape is a SHACL list. + A shape has at most one value for sh:in. + + + +
TEXTUAL DEFINITION
@@ -7257,46 +5048,11 @@

sh:in

sh:in ( ex:Pink ex:Purple ) ; ] .
-
-
{
-	"@id": "ex:InExampleShape",
-	"@type": "sh:NodeShape",
-	"sh:property": {
-		"sh:in": {
-			"@list": [
-				{
-					"@id": "ex:Pink"
-				},
-				{
-					"@id": "ex:Purple"
-				}
-			]
-		},
-		"sh:path": {
-			"@id": "ex:color"
-		}
-	},
-	"sh:targetNode": {
-		"@id": "ex:RainbowPony"
-	}
-}
-
-
shape ex:InExampleShape {
-	targetNode=ex:RainbowPony .
-	ex:color in=[ex:Pink ex:Purple] .
-}
+
ex:RainbowPony ex:color ex:Pink .
-
-
{
-	"@id": "ex:RainbowPony",
-	"ex:color": {
-		"@id": "ex:Pink"
-	}
-}
-
@@ -7424,112 +5180,6 @@

sh:group

sh:order 1 ; rdfs:label "Address" . -
-
{
-	"@graph": [
-		{
-			"@id": "ex:AddressGroup",
-			"@type": "sh:PropertyGroup",
-			"rdfs:label": "Address",
-			"sh:order": {
-				"@type": "xsd:integer",
-				"@value": "1"
-			}
-		},
-		{
-			"@id": "ex:NameGroup",
-			"@type": "sh:PropertyGroup",
-			"rdfs:label": "Name",
-			"sh:order": {
-				"@type": "xsd:integer",
-				"@value": "0"
-			}
-		},
-		{
-			"@id": "ex:PersonFormShape",
-			"@type": "sh:NodeShape",
-			"sh:property": [
-				{
-					"sh:description": "The person's given name(s)",
-					"sh:group": {
-						"@id": "ex:NameGroup"
-					},
-					"sh:name": "first name",
-					"sh:order": {
-						"@type": "xsd:integer",
-						"@value": "0"
-					},
-					"sh:path": {
-						"@id": "ex:firstName"
-					}
-				},
-				{
-					"sh:description": "The person's last name",
-					"sh:group": {
-						"@id": "ex:NameGroup"
-					},
-					"sh:name": "last name",
-					"sh:order": {
-						"@type": "xsd:integer",
-						"@value": "1"
-					},
-					"sh:path": {
-						"@id": "ex:lastName"
-					}
-				},
-				{
-					"sh:description": "The street address including number",
-					"sh:group": {
-						"@id": "ex:AddressGroup"
-					},
-					"sh:name": "street address",
-					"sh:order": {
-						"@type": "xsd:integer",
-						"@value": "11"
-					},
-					"sh:path": {
-						"@id": "ex:streetAddress"
-					}
-				},
-				{
-					"sh:description": "The city or town of the address",
-					"sh:group": {
-						"@id": "ex:AddressGroup"
-					},
-					"sh:name": "locality",
-					"sh:order": {
-						"@type": "xsd:integer",
-						"@value": "12"
-					},
-					"sh:path": {
-						"@id": "ex:locality"
-					}
-				},
-				{
-					"sh:description": "The postal code of the locality",
-					"sh:group": {
-						"@id": "ex:AddressGroup"
-					},
-					"sh:name": [
-						"postal code",
-						{
-							"@language": "en-us",
-							"@value": "zip code"
-						}
-					],
-					"sh:order": {
-						"@type": "xsd:integer",
-						"@value": "13"
-					},
-					"sh:path": {
-						"@id": "ex:postalCode"
-					}
-				}
-			]
-		}
-	]
-}
-

@@ -7619,112 +5269,6 @@

sh:group

sh:order 0 ; rdfs:label "Name" . -
-
{
-	"@graph": [
-		{
-			"@id": "ex:AddressGroup",
-			"@type": "sh:PropertyGroup",
-			"rdfs:label": "Address",
-			"sh:order": {
-				"@type": "xsd:integer",
-				"@value": "1"
-			}
-		},
-		{
-			"@id": "ex:NameGroup",
-			"@type": "sh:PropertyGroup",
-			"rdfs:label": "Name",
-			"sh:order": {
-				"@type": "xsd:integer",
-				"@value": "0"
-			}
-		},
-		{
-			"@id": "ex:PersonFormShape",
-			"@type": "sh:NodeShape",
-			"sh:property": [
-				{
-					"sh:description": "The person's last name",
-					"sh:group": {
-						"@id": "ex:NameGroup"
-					},
-					"sh:name": "last name",
-					"sh:order": {
-						"@type": "xsd:integer",
-						"@value": "1"
-					},
-					"sh:path": {
-						"@id": "ex:lastName"
-					}
-				},
-				{
-					"sh:description": "The person's given name(s)",
-					"sh:group": {
-						"@id": "ex:NameGroup"
-					},
-					"sh:name": "first name",
-					"sh:order": {
-						"@type": "xsd:integer",
-						"@value": "0"
-					},
-					"sh:path": {
-						"@id": "ex:firstName"
-					}
-				},
-				{
-					"sh:description": "The postal code of the locality",
-					"sh:group": {
-						"@id": "ex:AddressGroup"
-					},
-					"sh:name": [
-						"postal code",
-						{
-							"@language": "en-us",
-							"@value": "zip code"
-						}
-					],
-					"sh:order": {
-						"@type": "xsd:integer",
-						"@value": "13"
-					},
-					"sh:path": {
-						"@id": "ex:postalCode"
-					}
-				},
-				{
-					"sh:description": "The street address including number",
-					"sh:group": {
-						"@id": "ex:AddressGroup"
-					},
-					"sh:name": "street address",
-					"sh:order": {
-						"@type": "xsd:integer",
-						"@value": "11"
-					},
-					"sh:path": {
-						"@id": "ex:streetAddress"
-					}
-				},
-				{
-					"sh:description": "The city or town of the address",
-					"sh:group": {
-						"@id": "ex:AddressGroup"
-					},
-					"sh:name": "locality",
-					"sh:order": {
-						"@type": "xsd:integer",
-						"@value": "12"
-					},
-					"sh:path": {
-						"@id": "ex:locality"
-					}
-				}
-			]
-		}
-	]
-}
-
diff --git a/shacl12-node-expr/index.html b/shacl12-node-expr/index.html index 86073129..84988019 100644 --- a/shacl12-node-expr/index.html +++ b/shacl12-node-expr/index.html @@ -324,9 +324,6 @@

Getting started with Node Expressions

] ] . -
- TODO -

@@ -368,9 +365,6 @@

Getting started with Node Expressions

""" ] . -
- TODO -

@@ -406,9 +400,6 @@

Getting started with Node Expressions

] ] . -
- TODO -

@@ -636,9 +627,6 @@

List Parameter Functions

) ] . -
- TODO -

@@ -764,9 +752,6 @@

Var Expressions

sh:path ex:loves ; sh:defaultValue [ shnex:var "focusNode" ] . -
- TODO -

@@ -846,9 +831,6 @@

List Expressions

shnex:minus ( owl:Thing rdfs:Resource ) ; ] . -
- TODO -

@@ -939,9 +921,6 @@

Path Values Expressions

] ; ] . -
- TODO -

@@ -962,9 +941,6 @@

Path Values Expressions

shnex:focusNode skos:Concept ; ] . -
- TODO -

@@ -1104,9 +1080,6 @@

If Expressions

shnex:else "red" ; ] . -
- TODO -

@@ -1186,9 +1159,6 @@

Distinct Expressions

] ; ] . -
- TODO -

@@ -1248,9 +1218,6 @@

Intersection Expressions

) ] . -
- TODO -

@@ -1429,9 +1396,6 @@

Filter Shape Expressions

] ; ] . -
- TODO -

@@ -1516,9 +1480,6 @@

Limit Expressions

shnex:limit 2 ; ] . -
- TODO -

@@ -1603,9 +1564,6 @@

Offset Expressions

shnex:offset 1 ; ] . -
- TODO -

@@ -1686,9 +1644,6 @@

Count Expressions

] ; ] . -
- TODO -

@@ -1759,9 +1714,6 @@

Min Expressions

] ; ] . -
- TODO -

@@ -2265,9 +2217,6 @@

sh:expression

) ] . -
- TODO -
@@ -2763,11 +2712,6 @@

Example: Dynamic Minimum Age of Presidents

shnex:else 18 ; ] .
-
-
-								TODO
-							
-
@@ -2792,11 +2736,6 @@

Example: Dynamic Enumerations

ex:state "QLD" ; . -
-
-								TODO
-							
-

@@ -2828,11 +2767,6 @@

Example: Dynamic Enumerations

"AR" ; # ... . -
-
-								TODO
-							
-

@@ -2852,11 +2786,6 @@

Example: Dynamic Enumerations

shnex:pathValues ( ex:country ex:stateCode ) ] . -
-
-								TODO
-							
-