From 5a9fbaa3bdc0f74105759b0a0a19326dcef545ed Mon Sep 17 00:00:00 2001
From: Nicholas Car
Date: Thu, 18 Jun 2026 21:03:15 +0930
Subject: [PATCH 1/4] move examples to files and include in HTML
---
shacl12-profiling/examples/01.ttl | 8 ++
shacl12-profiling/examples/02.ttl | 14 +++
shacl12-profiling/examples/03.ttl | 9 ++
shacl12-profiling/examples/04.ttl | 26 +++++
shacl12-profiling/examples/05.ttl | 4 +
shacl12-profiling/examples/06.ttl | 8 ++
shacl12-profiling/examples/07.ttl | 10 ++
shacl12-profiling/examples/08.ttl | 13 +++
shacl12-profiling/examples/09.ttl | 1 +
shacl12-profiling/examples/10.ttl | 1 +
shacl12-profiling/examples/11.ttl | 1 +
shacl12-profiling/examples/12.ttl | 1 +
shacl12-profiling/examples/13.ttl | 19 ++++
shacl12-profiling/index.html | 155 +++---------------------------
14 files changed, 128 insertions(+), 142 deletions(-)
create mode 100644 shacl12-profiling/examples/01.ttl
create mode 100644 shacl12-profiling/examples/02.ttl
create mode 100644 shacl12-profiling/examples/03.ttl
create mode 100644 shacl12-profiling/examples/04.ttl
create mode 100644 shacl12-profiling/examples/05.ttl
create mode 100644 shacl12-profiling/examples/06.ttl
create mode 100644 shacl12-profiling/examples/07.ttl
create mode 100644 shacl12-profiling/examples/08.ttl
create mode 100644 shacl12-profiling/examples/09.ttl
create mode 100644 shacl12-profiling/examples/10.ttl
create mode 100644 shacl12-profiling/examples/11.ttl
create mode 100644 shacl12-profiling/examples/12.ttl
create mode 100644 shacl12-profiling/examples/13.ttl
diff --git a/shacl12-profiling/examples/01.ttl b/shacl12-profiling/examples/01.ttl
new file mode 100644
index 00000000..0f138da9
--- /dev/null
+++ b/shacl12-profiling/examples/01.ttl
@@ -0,0 +1,8 @@
+ex:ont-M
+ a sh:ShapesGraph ;
+.
+
+ex:shape-1
+ a sh:NodeShape ;
+ rdfs:isDefinedBy ex:ont-M ;
+.
\ No newline at end of file
diff --git a/shacl12-profiling/examples/02.ttl b/shacl12-profiling/examples/02.ttl
new file mode 100644
index 00000000..0da29780
--- /dev/null
+++ b/shacl12-profiling/examples/02.ttl
@@ -0,0 +1,14 @@
+# 'Ontology M' uses a Shape defined by 'Ontology Other'
+ex:ont-M
+ a sh:ShapesGraph ;
+ rdfs:member ex:shape-1 ;
+.
+
+ex:ont-Other
+ a sh:ShapesGraph ;
+.
+
+ex:shape-1
+ a sh:NodeShape ;
+ rdfs:isDefinedBy ex:ont-Other ;
+.
\ No newline at end of file
diff --git a/shacl12-profiling/examples/03.ttl b/shacl12-profiling/examples/03.ttl
new file mode 100644
index 00000000..60382046
--- /dev/null
+++ b/shacl12-profiling/examples/03.ttl
@@ -0,0 +1,9 @@
+# 'Ontology N' imports 'Ontology M'
+ex:ont-M
+ a owl:Ontology ;
+.
+
+ex:ont-N
+ a owl:Ontology ;
+ owl:imports ex:ont-M ;
+.
\ No newline at end of file
diff --git a/shacl12-profiling/examples/04.ttl b/shacl12-profiling/examples/04.ttl
new file mode 100644
index 00000000..8032f6b5
--- /dev/null
+++ b/shacl12-profiling/examples/04.ttl
@@ -0,0 +1,26 @@
+# declaration of the Core profile
+<http://www.w3.org/ns/shacl/profile/core>
+ a prof:Profile ;
+ prof:isProfileOf <https://www.w3.org/TR/shacl/> ;
+ prof:hasResource
+ <https://www.w3.org/TR/shacl12-core/> ,
+ <http://www.w3.org/ns/shacl-shacl/core> ;
+.
+
+# Core specification
+<https://www.w3.org/TR/shacl12-core/>
+ a prof:ResourceDescriptor ;
+ prof:hasRole role:Specification ;
+ dcterms:format "text/html" ;
+ dcterms:conformsTo <http://www.w3.org/TR/html5/> ;
+ prof:hasArtifact <https://www.w3.org/TR/shacl12-core/> ;
+.
+
+# Core validator
+<http://www.w3.org/ns/shacl-shacl/core>
+ a prof:ResourceDescriptor ;
+ prof:hasRole role:Validation ;
+ dcterms:format "text/turtle" ;
+ dcterms:conformsTo <https://www.w3.org/TR/shacl/> ;
+ prof:hasArtifact <http://www.w3.org/ns/shacl-shacl/core> ;
+.
\ No newline at end of file
diff --git a/shacl12-profiling/examples/05.ttl b/shacl12-profiling/examples/05.ttl
new file mode 100644
index 00000000..f0fce698
--- /dev/null
+++ b/shacl12-profiling/examples/05.ttl
@@ -0,0 +1,4 @@
+<SG1>
+ a prof:Profile ;
+ prof:isProfileOf <S1> ;
+.
\ No newline at end of file
diff --git a/shacl12-profiling/examples/06.ttl b/shacl12-profiling/examples/06.ttl
new file mode 100644
index 00000000..fe4ef0a7
--- /dev/null
+++ b/shacl12-profiling/examples/06.ttl
@@ -0,0 +1,8 @@
+<SG1>
+ a prof:Profile ;
+ prof:isProfileOf <S1> ;
+ prof:hasResource [
+ prof:hasArtifact <SG1> ;
+ prof:hasRole role:validation ;
+ ] ;
+.
\ No newline at end of file
diff --git a/shacl12-profiling/examples/07.ttl b/shacl12-profiling/examples/07.ttl
new file mode 100644
index 00000000..3867df4d
--- /dev/null
+++ b/shacl12-profiling/examples/07.ttl
@@ -0,0 +1,10 @@
+<SG1>
+ a prof:Profile ;
+ prof:isProfileOf <S1> ;
+ prof:hasResource [
+ prof:hasArtifact <S1> ;
+ prof:hasRole role:validation ;
+ dcterms:conformsTo <https://www.w3.org/TR/shacl12-core/> ;
+ dcterms:format "text/turtle" ;
+ ] ;
+.
\ No newline at end of file
diff --git a/shacl12-profiling/examples/08.ttl b/shacl12-profiling/examples/08.ttl
new file mode 100644
index 00000000..3d1b2915
--- /dev/null
+++ b/shacl12-profiling/examples/08.ttl
@@ -0,0 +1,13 @@
+<SG1>
+ a prof:Profile ;
+ prof:isProfileOf <S1> ;
+ prof:hasResource [
+ prof:hasArtifact <S1> ;
+ prof:hasRole
+ role:constraints ,
+ role:specification ,
+ role:validation ;
+ dcterms:conformsTo <https://www.w3.org/TR/shacl12-core/> ;
+ dcterms:format "text/turtle" ;
+ ] ;
+.
\ No newline at end of file
diff --git a/shacl12-profiling/examples/09.ttl b/shacl12-profiling/examples/09.ttl
new file mode 100644
index 00000000..adc020b2
--- /dev/null
+++ b/shacl12-profiling/examples/09.ttl
@@ -0,0 +1 @@
+<DG1> dcterms:conformsTo <SG1> . # via RDFS or OWL-RL reasoning
\ No newline at end of file
diff --git a/shacl12-profiling/examples/10.ttl b/shacl12-profiling/examples/10.ttl
new file mode 100644
index 00000000..bf426864
--- /dev/null
+++ b/shacl12-profiling/examples/10.ttl
@@ -0,0 +1 @@
+<DG1> dcterms:conformsTo <SG1> .
\ No newline at end of file
diff --git a/shacl12-profiling/examples/11.ttl b/shacl12-profiling/examples/11.ttl
new file mode 100644
index 00000000..6dd104e5
--- /dev/null
+++ b/shacl12-profiling/examples/11.ttl
@@ -0,0 +1 @@
+<SG1> prof:isProfileOf <S1> .
\ No newline at end of file
diff --git a/shacl12-profiling/examples/12.ttl b/shacl12-profiling/examples/12.ttl
new file mode 100644
index 00000000..3c8c027d
--- /dev/null
+++ b/shacl12-profiling/examples/12.ttl
@@ -0,0 +1 @@
+<DG1> dcterms:conformsTo <S1> .
\ No newline at end of file
diff --git a/shacl12-profiling/examples/13.ttl b/shacl12-profiling/examples/13.ttl
new file mode 100644
index 00000000..9221861b
--- /dev/null
+++ b/shacl12-profiling/examples/13.ttl
@@ -0,0 +1,19 @@
+<http://www.w3.org/ns/shacl/profile/cd1>
+ a
+ owl:Ontology ,
+ prof:Profile ;
+ prof:isProfileOf sh: ;
+ rdfs:label "CD1 Profile of SHACL"@en ;
+ rdfs:comment """This is a Profile of SHACL 1.2 that excludes shapes found to
+be computationally intensive.
+
+Vocabulary elements of SHACL that are not listed as members of this profile may
+not be used for implementations claiming conformance to this profile."""@en ;
+ rdfs:member
+ sh:AbstractResult ,
+ sh:AndConstraintComponent ,
+ # ... many skipped members
+ sh:xone ,
+ sh:zeroOrMorePath ,
+ sh:zeroOrOnePath ;
+.
\ No newline at end of file
diff --git a/shacl12-profiling/index.html b/shacl12-profiling/index.html
index 32fdd160..12ad7028 100644
--- a/shacl12-profiling/index.html
+++ b/shacl12-profiling/index.html
@@ -653,18 +653,7 @@ Indicating Element definition
This recommendation suggests that the creator of a SHACL element SHOULD indicate the group
within which the SHACL element is defined. An example of such an assertion in RDF is as follows:
-
-ex:ont-M
- a owl:Ontology ;
-ex:ont-M
- a sh:ShapesGraph ;
-.
-
-ex:shape-1
- a sh:NodeShape ;
- rdfs:isDefinedBy ex:ont-M ;
-.
-
+
In Section 2.5 Syntactic Variations of Shapes and Classes of [[[shacl12-core]]],
a warning is issued that while property shapes may be declared
@@ -689,22 +678,7 @@
Indicating Element use
An example of the use of the rdfs:member predicate to indicate inclusion of a SHACL element in a group
that does not define it, as well use of rdfs:isDefinedBy, as in the example above, is as follows:
-
-# 'Ontology M' uses a Shape defined by 'Ontology Other'
-ex:ont-M
- a sh:ShapesGraph ;
- rdfs:member ex:shape-1 ;
-.
-
-ex:ont-Other
- a sh:ShapesGraph ;
-.
-
-ex:shape-1
- a sh:NodeShape ;
- rdfs:isDefinedBy ex:ont-Other ;
-.
-
+
Indicating group dependence
@@ -723,16 +697,7 @@ Indicating group dependence
An example of owl:imports is as per the example below.
-
-# 'Ontology N' imports 'Ontology M'
-ex:ont-M
- a owl:Ontology ;
-.
-
-ex:ont-N
- a owl:Ontology ;
- owl:imports ex:ont-M ;
-.
+
Calculating Dependencies
@@ -772,34 +737,7 @@ Defining Profiles of SHACL
Profiles of SHACL should be declared using [[[dx-prof]]]. The declaration of the Core profile of SHACL 1.2 is as follows:
-
-# declaration of the Core profile
-<http://www.w3.org/ns/shacl/profile/core>
- a prof:Profile ;
- prof:isProfileOf <https://www.w3.org/TR/shacl/>
- prof:hasResource
- <https://www.w3.org/TR/shacl12-core/> ,
- <http://www.w3.org/ns/shacl-shacl/core> ;
-.
-
-# Core specification
-<https://www.w3.org/TR/shacl12-core/>
- a prof:ResourceDescriptor ;
- prof:hasRole role:Specification ;
- dcterms:format "text/html" ;
- dcterms:conformsTo <http://www.w3.org/TR/html5/> ;
- prof:hasArtifact <https://www.w3.org/TR/shacl12-core/> ;
-.
-
-# Core validator
-<http://www.w3.org/ns/shacl-shacl/core>
- a prof:ResourceDescriptor ;
- prof:hasRole role:Validation ;
- dcterms:format "text/turtle" ;
- dcterms:conformsTo <https://www.w3.org/TR/shacl/> ;
- prof:hasArtifact <http://www.w3.org/ns/shacl-shacl/core> ;
-.
-
+
This declaration identifies the Core profile with the IRI <http://www.w3.org/ns/shacl/profile/core> and
indicates it is an instance of prof:Profile, that it is a profile of the original SHACL publication from
@@ -929,26 +867,12 @@
Characterizing the profiling situation
If a Shapes Graph SG1 is profiling a specification S1 then, following
the characterisation of [[[dx-prof]]]:
-
- <SG1>
- a prof:Profile ;
- prof:isProfileOf <S1> ;
- .
-
+
However, SG1 is also playing the role of Validation,
so a more complete [[[dx-prof]]] characterisation of the situation would be:
-
- <SG1>
- a prof:Profile ;
- prof:isProfileOf <S1> ;
- prof:hasResource [
- prof:hasArtifact <SG1> ;
- prof:hasRole role:validation ;
- ] ;
- .
-
+
This is an unexpected use of [[[dx-prof]]], where the profile is also playing a role usually performed by a part of,
or one of, the resources of the profile, rather than having a single profile resource playing all roles, but it is legitimate,
@@ -959,18 +883,7 @@
Characterizing the profiling situation
To indicate that a profile resource is using [[[shacl12-core]]] and available in Turtle, the following can also be added to
the characterisation:
-
- <SG1>
- a prof:Profile ;
- prof:isProfileOf <S1> ;
- prof:hasResource [
- prof:hasArtifact <S1> ;
- prof:hasRole role:validation ;
- dcterms:conformsTo <https://www.w3.org/TR/shacl12-core/> ;
- dcterms:format "text/turtle" ;
- ] ;
- .
-
+
If SG1 is also considered the normative expression of the profile's requirements, as opposed to perhaps a
separate human language document containing them, then the prof:hasRole value of role:constraints
@@ -982,21 +895,7 @@
Characterizing the profiling situation
role:specification is specified to "[define] the profile in human-readable form" and while SHACL is
human-readable, natural language prose is expected.
-
- <SG1>
- a prof:Profile ;
- prof:isProfileOf <S1> ;
- prof:hasResource [
- prof:hasArtifact <S1> ;
- prof:hasRole
- role:constraints ,
- role:specification ,
- role:validation ;
- dcterms:conformsTo <https://www.w3.org/TR/shacl12-core/> ;
- dcterms:format "text/turtle" ;
- ] ;
- .
-
+
What Use Cases does this reasoning address?
@@ -1013,27 +912,19 @@ Implications for data
have been asserted after testing the conformance of the Data Graph to the Shapes Graph by validation
we can infer that:
-
-<DG1> dcterms:conformsTo <SG1> . # via RDFS or OWL-RL reasoning
-
+
Following the [[[dx-prof]]] axiom of dcterms:conformsTo owl:propertyChainAxiom ( dcterms:conformsTo prof:isProfileOf ) then, if given
-
-<DG1> dcterms:conformsTo <SG1> .
-
+
and
-
-<SG1> prof:isProfileOf <S1> .
-
+
we can conclude that
-
-<DG1> dcterms:conformsTo <S1> .
-
+
This reasoning allows for static conformance claims of data to profiles of specifications and specifications
themselves to be made which will have utility for data whose conformance to these things must be known but which
@@ -1615,27 +1506,7 @@
CD1 Profile
This profile is defined in the resource http://www.w3.org/ns/shacl/profile/cd1, a portion of which is as follows:
-
-<http://www.w3.org/ns/shacl/profile/cd1>
- a
- owl:Ontology ,
- prof:Profile ;
- prof:isProfileOf sh: ;
- rdfs:label "CD1 Profile of SHACL"@en ;
- rdfs:comment """This is a Profile of SHACL 1.2 that excludes shapes found to
-be computationally intensive.
-
-Vocabulary elements of SHACL that are not listed as members of this profile may
-not be used for implementations claiming conformance to this profile."""@en ;
- rdfs:member
- sh:AbstractResult ,
- sh:AndConstraintComponent ,
- # ... many skipped members
- sh:xone ,
- sh:zeroOrMorePath ,
- sh:zeroOrOnePath ;
-.
-
+
All the class and property elements of SHACL 1.2 are listed where ... many skipped members
is indicated above except for:
From 85407648ecb7f236c5b0d2bb475da57d9bf2b004 Mon Sep 17 00:00:00 2001
From: Nicholas Car
Date: Thu, 18 Jun 2026 21:04:06 +0930
Subject: [PATCH 2/4] add rdf format checking script
---
shacl12-profiling/examples/README.md | 17 +++++++++++++++++
shacl12-profiling/examples/_prefixes.ttl | 8 ++++++++
shacl12-profiling/examples/check-rdf.py | 13 +++++++++++++
3 files changed, 38 insertions(+)
create mode 100644 shacl12-profiling/examples/README.md
create mode 100644 shacl12-profiling/examples/_prefixes.ttl
create mode 100644 shacl12-profiling/examples/check-rdf.py
diff --git a/shacl12-profiling/examples/README.md b/shacl12-profiling/examples/README.md
new file mode 100644
index 00000000..3aa150dd
--- /dev/null
+++ b/shacl12-profiling/examples/README.md
@@ -0,0 +1,17 @@
+# Examples
+
+This directory contains example files in pseudo-Turtle format used within the Profiling HTML document.
+
+All examples are included using ReSpect commands like this:
+
+``
+
+## Validation
+
+To validate an example you will need Python installed and the [rdflib](https://pypi.org/project/rdflib/) package installed. You cna then run `validate.py` with any example file as an argument, e.g.:
+
+```bash
+python check-rdf.py 01.ttl
+```
+
+The script will print "OK" if there are no syntax errors or else an error message.
diff --git a/shacl12-profiling/examples/_prefixes.ttl b/shacl12-profiling/examples/_prefixes.ttl
new file mode 100644
index 00000000..7316220f
--- /dev/null
+++ b/shacl12-profiling/examples/_prefixes.ttl
@@ -0,0 +1,8 @@
+PREFIX dcterms:
+PREFIX ex:
+PREFIX owl:
+PREFIX prof:
+PREFIX rdfs:
+PREFIX role:
+PREFIX sh:
+PREFIX shpr:
\ No newline at end of file
diff --git a/shacl12-profiling/examples/check-rdf.py b/shacl12-profiling/examples/check-rdf.py
new file mode 100644
index 00000000..14b858e0
--- /dev/null
+++ b/shacl12-profiling/examples/check-rdf.py
@@ -0,0 +1,13 @@
+import sys
+from rdflib import Graph
+
+prefixes = open("_prefixes.ttl").read()
+example_data = open(sys.argv[1]).read()
+
+example_data = example_data.replace("<", "<")
+
+total = prefixes + "\n\n" + example_data
+
+# print(total)
+g = Graph().parse(data=total, format="turtle")
+print("ok")
\ No newline at end of file
From 2f075e08e446965b89401779332ce0c8077e6be7 Mon Sep 17 00:00:00 2001
From: Nicholas Car
Date: Thu, 18 Jun 2026 21:28:26 +0930
Subject: [PATCH 3/4] Update shacl12-profiling/examples/README.md
Co-authored-by: Alex Nelson
---
shacl12-profiling/examples/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/shacl12-profiling/examples/README.md b/shacl12-profiling/examples/README.md
index 3aa150dd..01e65107 100644
--- a/shacl12-profiling/examples/README.md
+++ b/shacl12-profiling/examples/README.md
@@ -2,7 +2,7 @@
This directory contains example files in pseudo-Turtle format used within the Profiling HTML document.
-All examples are included using ReSpect commands like this:
+All examples are included using ReSpec commands like this:
``
From b40456db1eeae1ae4410dab34613eb76ce179083 Mon Sep 17 00:00:00 2001
From: Nicholas Car
Date: Thu, 18 Jun 2026 21:37:55 +0930
Subject: [PATCH 4/4] include exampels as plain text
---
shacl12-profiling/examples/04.ttl | 20 +++++++++----------
shacl12-profiling/examples/05.ttl | 4 ++--
shacl12-profiling/examples/06.ttl | 6 +++---
shacl12-profiling/examples/07.ttl | 8 ++++----
shacl12-profiling/examples/08.ttl | 8 ++++----
shacl12-profiling/examples/09.ttl | 2 +-
shacl12-profiling/examples/10.ttl | 2 +-
shacl12-profiling/examples/11.ttl | 2 +-
shacl12-profiling/examples/12.ttl | 2 +-
shacl12-profiling/examples/13.ttl | 2 +-
shacl12-profiling/examples/README.md | 2 +-
shacl12-profiling/examples/check-rdf.py | 2 --
shacl12-profiling/index.html | 26 ++++++++++++-------------
13 files changed, 42 insertions(+), 44 deletions(-)
diff --git a/shacl12-profiling/examples/04.ttl b/shacl12-profiling/examples/04.ttl
index 8032f6b5..5fda95d2 100644
--- a/shacl12-profiling/examples/04.ttl
+++ b/shacl12-profiling/examples/04.ttl
@@ -1,26 +1,26 @@
# declaration of the Core profile
-<http://www.w3.org/ns/shacl/profile/core>
+
a prof:Profile ;
- prof:isProfileOf <https://www.w3.org/TR/shacl/> ;
+ prof:isProfileOf ;
prof:hasResource
- <https://www.w3.org/TR/shacl12-core/> ,
- <http://www.w3.org/ns/shacl-shacl/core> ;
+ ,
+ ;
.
# Core specification
-<https://www.w3.org/TR/shacl12-core/>
+
a prof:ResourceDescriptor ;
prof:hasRole role:Specification ;
dcterms:format "text/html" ;
- dcterms:conformsTo <http://www.w3.org/TR/html5/> ;
- prof:hasArtifact <https://www.w3.org/TR/shacl12-core/> ;
+ dcterms:conformsTo ;
+ prof:hasArtifact ;
.
# Core validator
-<http://www.w3.org/ns/shacl-shacl/core>
+
a prof:ResourceDescriptor ;
prof:hasRole role:Validation ;
dcterms:format "text/turtle" ;
- dcterms:conformsTo <https://www.w3.org/TR/shacl/> ;
- prof:hasArtifact <http://www.w3.org/ns/shacl-shacl/core> ;
+ dcterms:conformsTo ;
+ prof:hasArtifact ;
.
\ No newline at end of file
diff --git a/shacl12-profiling/examples/05.ttl b/shacl12-profiling/examples/05.ttl
index f0fce698..e04e4ea9 100644
--- a/shacl12-profiling/examples/05.ttl
+++ b/shacl12-profiling/examples/05.ttl
@@ -1,4 +1,4 @@
-<SG1>
+
a prof:Profile ;
- prof:isProfileOf <S1> ;
+ prof:isProfileOf ;
.
\ No newline at end of file
diff --git a/shacl12-profiling/examples/06.ttl b/shacl12-profiling/examples/06.ttl
index fe4ef0a7..75200e4c 100644
--- a/shacl12-profiling/examples/06.ttl
+++ b/shacl12-profiling/examples/06.ttl
@@ -1,8 +1,8 @@
-<SG1>
+
a prof:Profile ;
- prof:isProfileOf <S1> ;
+ prof:isProfileOf ;
prof:hasResource [
- prof:hasArtifact <SG1> ;
+ prof:hasArtifact ;
prof:hasRole role:validation ;
] ;
.
\ No newline at end of file
diff --git a/shacl12-profiling/examples/07.ttl b/shacl12-profiling/examples/07.ttl
index 3867df4d..b5d6be20 100644
--- a/shacl12-profiling/examples/07.ttl
+++ b/shacl12-profiling/examples/07.ttl
@@ -1,10 +1,10 @@
-<SG1>
+
a prof:Profile ;
- prof:isProfileOf <S1> ;
+ prof:isProfileOf ;
prof:hasResource [
- prof:hasArtifact <S1> ;
+ prof:hasArtifact ;
prof:hasRole role:validation ;
- dcterms:conformsTo <https://www.w3.org/TR/shacl12-core/> ;
+ dcterms:conformsTo ;
dcterms:format "text/turtle" ;
] ;
.
\ No newline at end of file
diff --git a/shacl12-profiling/examples/08.ttl b/shacl12-profiling/examples/08.ttl
index 3d1b2915..b4f628de 100644
--- a/shacl12-profiling/examples/08.ttl
+++ b/shacl12-profiling/examples/08.ttl
@@ -1,13 +1,13 @@
-<SG1>
+
a prof:Profile ;
- prof:isProfileOf <S1> ;
+ prof:isProfileOf ;
prof:hasResource [
- prof:hasArtifact <S1> ;
+ prof:hasArtifact ;
prof:hasRole
role:constraints ,
role:specification ,
role:validation ;
- dcterms:conformsTo <https://www.w3.org/TR/shacl12-core/> ;
+ dcterms:conformsTo ;
dcterms:format "text/turtle" ;
] ;
.
\ No newline at end of file
diff --git a/shacl12-profiling/examples/09.ttl b/shacl12-profiling/examples/09.ttl
index adc020b2..f6c74a1a 100644
--- a/shacl12-profiling/examples/09.ttl
+++ b/shacl12-profiling/examples/09.ttl
@@ -1 +1 @@
-<DG1> dcterms:conformsTo <SG1> . # via RDFS or OWL-RL reasoning
\ No newline at end of file
+ dcterms:conformsTo . # via RDFS or OWL-RL reasoning
\ No newline at end of file
diff --git a/shacl12-profiling/examples/10.ttl b/shacl12-profiling/examples/10.ttl
index bf426864..71b21056 100644
--- a/shacl12-profiling/examples/10.ttl
+++ b/shacl12-profiling/examples/10.ttl
@@ -1 +1 @@
-<DG1> dcterms:conformsTo <SG1> .
\ No newline at end of file
+ dcterms:conformsTo .
\ No newline at end of file
diff --git a/shacl12-profiling/examples/11.ttl b/shacl12-profiling/examples/11.ttl
index 6dd104e5..4202efba 100644
--- a/shacl12-profiling/examples/11.ttl
+++ b/shacl12-profiling/examples/11.ttl
@@ -1 +1 @@
-<SG1> prof:isProfileOf <S1> .
\ No newline at end of file
+ prof:isProfileOf .
\ No newline at end of file
diff --git a/shacl12-profiling/examples/12.ttl b/shacl12-profiling/examples/12.ttl
index 3c8c027d..59eb67ca 100644
--- a/shacl12-profiling/examples/12.ttl
+++ b/shacl12-profiling/examples/12.ttl
@@ -1 +1 @@
-<DG1> dcterms:conformsTo <S1> .
\ No newline at end of file
+ dcterms:conformsTo .
\ No newline at end of file
diff --git a/shacl12-profiling/examples/13.ttl b/shacl12-profiling/examples/13.ttl
index 9221861b..a874dd20 100644
--- a/shacl12-profiling/examples/13.ttl
+++ b/shacl12-profiling/examples/13.ttl
@@ -1,4 +1,4 @@
-<http://www.w3.org/ns/shacl/profile/cd1>
+
a
owl:Ontology ,
prof:Profile ;
diff --git a/shacl12-profiling/examples/README.md b/shacl12-profiling/examples/README.md
index 01e65107..d72ad539 100644
--- a/shacl12-profiling/examples/README.md
+++ b/shacl12-profiling/examples/README.md
@@ -4,7 +4,7 @@ This directory contains example files in pseudo-Turtle format used within the Pr
All examples are included using ReSpec commands like this:
-``
+``
## Validation
diff --git a/shacl12-profiling/examples/check-rdf.py b/shacl12-profiling/examples/check-rdf.py
index 14b858e0..a123f438 100644
--- a/shacl12-profiling/examples/check-rdf.py
+++ b/shacl12-profiling/examples/check-rdf.py
@@ -4,8 +4,6 @@
prefixes = open("_prefixes.ttl").read()
example_data = open(sys.argv[1]).read()
-example_data = example_data.replace("<", "<")
-
total = prefixes + "\n\n" + example_data
# print(total)
diff --git a/shacl12-profiling/index.html b/shacl12-profiling/index.html
index 12ad7028..57806028 100644
--- a/shacl12-profiling/index.html
+++ b/shacl12-profiling/index.html
@@ -653,7 +653,7 @@ Indicating Element definition
This recommendation suggests that the creator of a SHACL element SHOULD indicate the group
within which the SHACL element is defined. An example of such an assertion in RDF is as follows:
-
+
In Section 2.5 Syntactic Variations of Shapes and Classes of [[[shacl12-core]]],
a warning is issued that while property shapes may be declared
@@ -678,7 +678,7 @@
Indicating Element use
An example of the use of the rdfs:member predicate to indicate inclusion of a SHACL element in a group
that does not define it, as well use of rdfs:isDefinedBy, as in the example above, is as follows:
-
+
Indicating group dependence
@@ -697,7 +697,7 @@ Indicating group dependence
An example of owl:imports is as per the example below.
-
+
Calculating Dependencies
@@ -737,7 +737,7 @@ Defining Profiles of SHACL
Profiles of SHACL should be declared using [[[dx-prof]]]. The declaration of the Core profile of SHACL 1.2 is as follows:
-
+
This declaration identifies the Core profile with the IRI <http://www.w3.org/ns/shacl/profile/core> and
indicates it is an instance of prof:Profile, that it is a profile of the original SHACL publication from
@@ -867,12 +867,12 @@
Characterizing the profiling situation
If a Shapes Graph SG1 is profiling a specification S1 then, following
the characterisation of [[[dx-prof]]]:
-
+
However, SG1 is also playing the role of Validation,
so a more complete [[[dx-prof]]] characterisation of the situation would be:
-
+
This is an unexpected use of [[[dx-prof]]], where the profile is also playing a role usually performed by a part of,
or one of, the resources of the profile, rather than having a single profile resource playing all roles, but it is legitimate,
@@ -883,7 +883,7 @@
Characterizing the profiling situation
To indicate that a profile resource is using [[[shacl12-core]]] and available in Turtle, the following can also be added to
the characterisation:
-
+
If SG1 is also considered the normative expression of the profile's requirements, as opposed to perhaps a
separate human language document containing them, then the prof:hasRole value of role:constraints
@@ -895,7 +895,7 @@
Characterizing the profiling situation
role:specification is specified to "[define] the profile in human-readable form" and while SHACL is
human-readable, natural language prose is expected.
-
+
What Use Cases does this reasoning address?
@@ -912,19 +912,19 @@ Implications for data
have been asserted after testing the conformance of the Data Graph to the Shapes Graph by validation
we can infer that:
-
+
Following the [[[dx-prof]]] axiom of dcterms:conformsTo owl:propertyChainAxiom ( dcterms:conformsTo prof:isProfileOf ) then, if given
-
+
and
-
+
we can conclude that
-
+
This reasoning allows for static conformance claims of data to profiles of specifications and specifications
themselves to be made which will have utility for data whose conformance to these things must be known but which
@@ -1506,7 +1506,7 @@
CD1 Profile
This profile is defined in the resource http://www.w3.org/ns/shacl/profile/cd1, a portion of which is as follows:
-
+
All the class and property elements of SHACL 1.2 are listed where ... many skipped members
is indicated above except for: