From cf8a8eac35fd8164e855329aaebf2d7d44bc8003 Mon Sep 17 00:00:00 2001 From: Jesse Wright <63333554+jeswr@users.noreply.github.com> Date: Mon, 14 Jul 2025 12:30:44 +0100 Subject: [PATCH 1/4] chore: normalize shacl12-core html document --- shacl12-core/index.html | 299 +++++++++++++++++++++++++--------------- 1 file changed, 186 insertions(+), 113 deletions(-) diff --git a/shacl12-core/index.html b/shacl12-core/index.html index 1fce7e21..04b99f6c 100644 --- a/shacl12-core/index.html +++ b/shacl12-core/index.html @@ -1,9 +1,7 @@ - - -
+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 . +}
We can use the shape declaration above to illustrate some of the key terminology used by SHACL. @@ -1304,7 +1308,10 @@
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) @@ -1398,7 +1405,9 @@
shape ex:PersonShape { + targetNode=ex:Alice . +}
shape ex:PersonShape -> ex:Person { +}
shapeClass ex:Person { +}
shape ex:TargetSubjectsOfExampleShape { + targetSubjectsOf=ex:knows . +}
shape ex:TargetObjectsOfExampleShape { + targetObjectsOf=ex:knows . +}
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 . +}
shape ex:ClassExampleShape { + targetNode=ex:Bob targetNode=ex:Alice targetNode=ex:Carol . + ex:address ex:PostalAddress . +}
shape ex:DatatypeExampleShape { + targetNode=ex:Alice targetNode=ex:Bob targetNode=ex:Carol . + ex:age xsd:integer . +}
shape ex:NodeKindExampleShape { + targetObjectsOf=ex:knows nodeKind=IRI . +}
shape ex:MaxCountExampleShape { + targetNode=ex:Bob . + ex:birthDate [0..1] . +}
shape ex:NumericRangeExampleShape { + targetNode=ex:Bob targetNode=ex:Alice targetNode=ex:Ted . + ex:age minInclusive=0 maxInclusive=150 . +}
shape ex:PasswordExampleShape { + targetNode=ex:Bob targetNode=ex:Alice . + ex:password minLength=8 maxLength=10 . +}
shape ex:PatternExampleShape { + targetNode=ex:Bob targetNode=ex:Alice targetNode=ex:Carol . + ex:bCode pattern="^B" flags="i" . +}
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.
@@ -4513,7 +4555,10 @@
shape ex:UniqueLangExampleShape { + targetNode=ex:Alice targetNode=ex:Bob . + ex:label uniqueLang=true . +}
shape ex:EqualExampleShape { + targetNode=ex:Bob . + ex:firstName equals=ex:givenName . +}
shape ex:DisjointExampleShape { + targetNode=ex:USA targetNode=ex:Germany . + ex:prefLabel disjoint=ex:altLabel . +}
shape ex:LessThanExampleShape { + ex:startDate lessThan=ex:endDate . +}
shape ex:PersonAddressShape -> ex:Person { + ex:address xsd:string|ex:Address . +}
shape ex:AddressShape { + ex:postalCode xsd:string [0..1] . +} +shape ex:PersonShape -> ex:Person { + ex:address [1..*] @ex:AddressShape . +}
shape ex:ClosedShapeExampleShape { + targetNode=ex:Alice targetNode=ex:Bob closed=true ignoredProperties=[rdf:type] . + ex:firstName . + ex:lastName . +}
shape ex:StanfordGraduate { + targetNode=ex:Alice . + ex:alumniOf hasValue=ex:Stanford . +}
shape ex:InExampleShape { + targetNode=ex:RainbowPony . + ex:color in=[ex:Pink ex:Purple] . +}