@@ -885,7 +885,11 @@ <h3>SHACL Example</h3>
885885 }
886886}</ pre >
887887 </ div >
888- </ div >
888+ < div class ="shaclc "> < pre class ="shaclc "> shape ex:PersonShape -> ex:Person {
889+ closed=true ignoredProperties=[rdf:type] .
890+ ex:ssn xsd:string [0..1] pattern="^\\d{3}-\\d{2}-\\d{4}$" .
891+ ex:worksFor IRI ex:Company .
892+ }</ pre > </ div > </ div >
889893 </ aside >
890894 < p >
891895 We can use the shape declaration above to illustrate some of the key terminology used by SHACL.
@@ -1303,7 +1307,10 @@ <h3>Constraints, Parameters and Constraint Components</h3>
13031307 ]
13041308}</ pre >
13051309 </ div >
1306- </ div >
1310+ < div class ="shaclc "> < pre class ="shaclc "> shape ex:MultiplePatternsShape {
1311+ ex:name pattern="^Start" flags="i" .
1312+ ex:name pattern="End$" .
1313+ }</ pre > </ div > </ div >
13071314 </ aside >
13081315 < p >
13091316 Constraint components are associated with < dfn data-lt ="validator|validators "> validators</ dfn > , which provide instructions (for example expressed via SPARQL queries)
@@ -1397,7 +1404,9 @@ <h4>Node targets (sh:targetNode)</h4>
13971404 }
13981405}</ pre >
13991406 </ div >
1400- </ div >
1407+ < div class ="shaclc "> < pre class ="shaclc "> shape ex:PersonShape {
1408+ targetNode=ex:Alice .
1409+ }</ pre > </ div > </ div >
14011410 < div class ="data-graph ">
14021411 < div class ="turtle ">
14031412< span class ="focus-node-selected "> ex:Alice</ span > a ex:Person .
@@ -1450,7 +1459,8 @@ <h4>Class-based Targets (sh:targetClass)</h4>
14501459 }
14511460}</ pre >
14521461 </ div >
1453- </ div >
1462+ < div class ="shaclc "> < pre class ="shaclc "> shape ex:PersonShape -> ex:Person {
1463+ }</ pre > </ div > </ div >
14541464
14551465 < div class ="data-graph ">
14561466 < div class ="turtle ">
@@ -1568,7 +1578,8 @@ <h4>Implicit Class Targets and sh:ShapeClass</h4>
15681578 ]
15691579}</ pre >
15701580 </ div >
1571- </ div >
1581+ < div class ="shaclc "> < pre class ="shaclc "> shapeClass ex:Person {
1582+ }</ pre > </ div > </ div >
15721583 < div class ="data-graph ">
15731584 < div class ="turtle ">
15741585< span class ="focus-node-selected "> ex:Alice</ span > a ex:Person .
@@ -1640,7 +1651,9 @@ <h4>Subjects-of targets (sh:targetSubjectsOf)</h4>
16401651 }
16411652}</ pre >
16421653 </ div >
1643- </ div >
1654+ < div class ="shaclc "> < pre class ="shaclc "> shape ex:TargetSubjectsOfExampleShape {
1655+ targetSubjectsOf=ex:knows .
1656+ }</ pre > </ div > </ div >
16441657 < div class ="data-graph ">
16451658 < div class ="turtle ">
16461659< span class ="focus-node-selected "> ex:Alice</ span > ex:knows ex:Bob .
@@ -1702,7 +1715,9 @@ <h4>Objects-of targets (sh:targetObjectsOf)</h4>
17021715 }
17031716}</ pre >
17041717 </ div >
1705- </ div >
1718+ < div class ="shaclc "> < pre class ="shaclc "> shape ex:TargetObjectsOfExampleShape {
1719+ targetObjectsOf=ex:knows .
1720+ }</ pre > </ div > </ div >
17061721 < div class ="data-graph ">
17071722 < div class ="turtle ">
17081723ex:Alice ex:knows < span class ="focus-node-selected "> ex:Bob</ span > .
@@ -1853,7 +1868,11 @@ <h4>Declaring the Severity of a Shape or Constraint</h4>
18531868 }
18541869}</ pre >
18551870 </ div >
1856- </ div >
1871+ < div class ="shaclc "> < pre class ="shaclc "> shape ex:MyShape {
1872+ targetNode=ex:MyInstance .
1873+ ex:myProperty xsd:string [1..*] severity=Warning .
1874+ ex:myProperty maxLength=10 message="Too many characters"@en message="Zu viele Zeichen"@de .
1875+ }</ pre > </ div > </ div >
18571876 < div class ="data-graph ">
18581877 < div class ="turtle ">
18591878ex:MyInstance
@@ -3220,7 +3239,10 @@ <h4>sh:class</h4>
32203239 ]
32213240}</ pre >
32223241 </ div >
3223- </ div >
3242+ < div class ="shaclc "> < pre class ="shaclc "> shape ex:ClassExampleShape {
3243+ targetNode=ex:Bob targetNode=ex:Alice targetNode=ex:Carol .
3244+ ex:address ex:PostalAddress .
3245+ }</ pre > </ div > </ div >
32243246 < div class ="data-graph ">
32253247 < div class ="turtle ">
32263248ex:Alice a ex:Person .
@@ -3372,7 +3394,10 @@ <h4>sh:datatype</h4>
33723394 ]
33733395}</ pre >
33743396 </ div >
3375- </ div >
3397+ < div class ="shaclc "> < pre class ="shaclc "> shape ex:DatatypeExampleShape {
3398+ targetNode=ex:Alice targetNode=ex:Bob targetNode=ex:Carol .
3399+ ex:age xsd:integer .
3400+ }</ pre > </ div > </ div >
33763401 < div class ="data-graph ">
33773402 < div class ="turtle ">
33783403ex:Alice ex:age "23"^^xsd:integer .
@@ -3499,7 +3524,9 @@ <h4>sh:nodeKind</h4>
34993524 }
35003525}</ pre >
35013526 </ div >
3502- </ div >
3527+ < div class ="shaclc "> < pre class ="shaclc "> shape ex:NodeKindExampleShape {
3528+ targetObjectsOf=ex:knows nodeKind=IRI .
3529+ }</ pre > </ div > </ div >
35033530 < div class ="data-graph ">
35043531 < div class ="turtle ">
35053532ex:Bob ex:knows ex:Alice .
@@ -3690,7 +3717,10 @@ <h4>sh:maxCount</h4>
36903717 }
36913718}</ pre >
36923719 </ div >
3693- </ div >
3720+ < div class ="shaclc "> < pre class ="shaclc "> shape ex:MaxCountExampleShape {
3721+ targetNode=ex:Bob .
3722+ ex:birthDate [0..1] .
3723+ }</ pre > </ div > </ div >
36943724 < div class ="data-graph ">
36953725 < div class ="turtle ">
36963726ex:Bob ex:birthDate "May 5th 1990" .
@@ -3755,7 +3785,10 @@ <h3>Value Range Constraint Components</h3>
37553785 ]
37563786}</ pre >
37573787 </ div >
3758- </ div >
3788+ < div class ="shaclc "> < pre class ="shaclc "> shape ex:NumericRangeExampleShape {
3789+ targetNode=ex:Bob targetNode=ex:Alice targetNode=ex:Ted .
3790+ ex:age minInclusive=0 maxInclusive=150 .
3791+ }</ pre > </ div > </ div >
37593792
37603793 < div class ="data-graph ">
37613794 < div class ="turtle ">
@@ -4057,7 +4090,10 @@ <h4>sh:maxLength</h4>
40574090 ]
40584091}</ pre >
40594092 </ div >
4060- </ div >
4093+ < div class ="shaclc "> < pre class ="shaclc "> shape ex:PasswordExampleShape {
4094+ targetNode=ex:Bob targetNode=ex:Alice .
4095+ ex:password minLength=8 maxLength=10 .
4096+ }</ pre > </ div > </ div >
40614097 < div class ="data-graph ">
40624098 < div class ="turtle ">
40634099ex:Bob ex:password "123456789" .
@@ -4164,7 +4200,10 @@ <h4>sh:pattern</h4>
41644200 ]
41654201}</ pre >
41664202 </ div >
4167- </ div >
4203+ < div class ="shaclc "> < pre class ="shaclc "> shape ex:PatternExampleShape {
4204+ targetNode=ex:Bob targetNode=ex:Alice targetNode=ex:Carol .
4205+ ex:bCode pattern="^B" flags="i" .
4206+ }</ pre > </ div > </ div >
41684207 < div class ="data-graph ">
41694208 < div class ="turtle ">
41704209ex:Bob ex:bCode "b101" .
@@ -4385,7 +4424,10 @@ <h4>sh:languageIn</h4>
43854424 ]
43864425}</ pre >
43874426 </ div >
4388- </ div >
4427+ < div class ="shaclc "> < pre class ="shaclc "> shape ex:NewZealandLanguagesShape {
4428+ targetNode=ex:Mountain targetNode=ex:Berg .
4429+ ex:prefLabel languageIn=["en" "mi"] .
4430+ }</ pre > </ div > </ div >
43894431 < p >
43904432 From the example instances, < code > ex:Berg</ code > will lead to constraint violations for all
43914433 of its labels.
@@ -4513,7 +4555,10 @@ <h4>sh:uniqueLang</h4>
45134555 ]
45144556}</ pre >
45154557 </ div >
4516- </ div >
4558+ < div class ="shaclc "> < pre class ="shaclc "> shape ex:UniqueLangExampleShape {
4559+ targetNode=ex:Alice targetNode=ex:Bob .
4560+ ex:label uniqueLang=true .
4561+ }</ pre > </ div > </ div >
45174562 < div class ="data-graph ">
45184563 < div class ="turtle ">
45194564ex:Alice
@@ -5104,7 +5149,10 @@ <h4>sh:equals</h4>
51045149 }
51055150}</ pre >
51065151 </ div >
5107- </ div >
5152+ < div class ="shaclc "> < pre class ="shaclc "> shape ex:EqualExampleShape {
5153+ targetNode=ex:Bob .
5154+ ex:firstName equals=ex:givenName .
5155+ }</ pre > </ div > </ div >
51085156 < div class ="data-graph ">
51095157 < div class ="turtle ">
51105158ex:Bob
@@ -5197,7 +5245,10 @@ <h4>sh:disjoint</h4>
51975245 ]
51985246}</ pre >
51995247 </ div >
5200- </ div >
5248+ < div class ="shaclc "> < pre class ="shaclc "> shape ex:DisjointExampleShape {
5249+ targetNode=ex:USA targetNode=ex:Germany .
5250+ ex:prefLabel disjoint=ex:altLabel .
5251+ }</ pre > </ div > </ div >
52015252 < div class ="data-graph ">
52025253 < div class ="turtle ">
52035254ex:USA
@@ -5293,7 +5344,9 @@ <h4>sh:lessThan</h4>
52935344 }
52945345}</ pre >
52955346 </ div >
5296- </ div >
5347+ < div class ="shaclc "> < pre class ="shaclc "> shape ex:LessThanExampleShape {
5348+ ex:startDate lessThan=ex:endDate .
5349+ }</ pre > </ div > </ div >
52975350 </ aside >
52985351 </ section >
52995352
@@ -5742,7 +5795,9 @@ <h4>sh:or</h4>
57425795 }
57435796}</ pre >
57445797 </ div >
5745- </ div >
5798+ < div class ="shaclc "> < pre class ="shaclc "> shape ex:PersonAddressShape -> ex:Person {
5799+ ex:address xsd:string|ex:Address .
5800+ }</ pre > </ div > </ div >
57465801 < div class ="data-graph ">
57475802 < div class ="turtle ">
57485803ex:Bob ex:address "123 Prinzengasse, Vaduz, Liechtenstein" .
@@ -6074,7 +6129,12 @@ <h4>sh:node</h4>
60746129 ]
60756130}</ pre >
60766131 </ div >
6077- </ div >
6132+ < div class ="shaclc "> < pre class ="shaclc "> shape ex:AddressShape {
6133+ ex:postalCode xsd:string [0..1] .
6134+ }
6135+ shape ex:PersonShape -> ex:Person {
6136+ ex:address [1..*] @ex:AddressShape .
6137+ }</ pre > </ div > </ div >
60786138 < div class ="data-graph ">
60796139 < div class ="turtle ">
60806140ex:Bob a ex:Person ;
@@ -7069,7 +7129,11 @@ <h3>sh:closed, sh:ignoredProperties</h3>
70697129 ]
70707130}</ pre >
70717131 </ div >
7072- </ div >
7132+ < div class ="shaclc "> < pre class ="shaclc "> shape ex:ClosedShapeExampleShape {
7133+ targetNode=ex:Alice targetNode=ex:Bob closed=true ignoredProperties=[rdf:type] .
7134+ ex:firstName .
7135+ ex:lastName .
7136+ }</ pre > </ div > </ div >
70737137 < div class ="data-graph ">
70747138 < div class ="turtle ">
70757139ex:Alice
@@ -7168,7 +7232,10 @@ <h4>sh:hasValue</h4>
71687232 }
71697233}</ pre >
71707234 </ div >
7171- </ div >
7235+ < div class ="shaclc "> < pre class ="shaclc "> shape ex:StanfordGraduate {
7236+ targetNode=ex:Alice .
7237+ ex:alumniOf hasValue=ex:Stanford .
7238+ }</ pre > </ div > </ div >
71727239 < div class ="data-graph ">
71737240 < div class ="turtle ">
71747241ex:Alice
@@ -7266,7 +7333,10 @@ <h4>sh:in</h4>
72667333 }
72677334}</ pre >
72687335 </ div >
7269- </ div >
7336+ < div class ="shaclc "> < pre class ="shaclc "> shape ex:InExampleShape {
7337+ targetNode=ex:RainbowPony .
7338+ ex:color in=[ex:Pink ex:Purple] .
7339+ }</ pre > </ div > </ div >
72707340 < div class ="data-graph ">
72717341 < div class ="turtle ">
72727342ex:RainbowPony ex:color ex:Pink .
@@ -7850,4 +7920,5 @@ <h2>Changes between SHACL 1.0 Core and SHACL 1.2 Core</h2>
78507920
78517921
78527922
7923+
78537924</ body > </ html >
0 commit comments