Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
![](w3c-no-bars.svg)
![](w3c.svg)

# Data Shapes WG Repository

Expand All @@ -19,13 +19,14 @@ The WG is currently working on updated and new [SHACL](https://www.w3.org/TR/sha

* [SHACL 1.2 Node Expressions](https://w3c.github.io/data-shapes/shacl12-node-expr/)

#### Phase 2, after July 2025:
#### Phase 2, now in progress since July 2025:

##### Editor's drafts

* [SHACL 1.2 Inference Rules](https://w3c.github.io/data-shapes/shacl12-inf-rules/)
* [SHACL 1.2 SHACL-SHACL](https://w3c.github.io/data-shapes/shacl12-shacl-shacl)
* [SHACL 1.2 Overview](https://w3c.github.io/data-shapes/shacl12-overview/)
* [SHACL 1.2 Rules](https://w3c.github.io/data-shapes/shacl12-rules/)
* [SHACL 1.2 UI](https://w3c.github.io/data-shapes/shacl12-ui/)
* [SHACL 1.2 Compact Syntax](https://w3c.github.io/data-shapes/shacl12-cs/)
* [SHACL 1.2 Profiling](https://w3c.github.io/data-shapes/shacl12-profiling/)

All of the above specifications are drafts that are automatically rebuilt on pushes to this repository.
Expand Down
18 changes: 9 additions & 9 deletions shacl12-common/specifications.html
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ <h2>SHACL Specifications</h2>
<dd>defines SPARQL-related extensions of the SHACL</dd>
<dt><a href="https://w3c.github.io/data-shapes/shacl12-node-expr/">SHACL 1.2 Node Expressions</a></dt>
<dd>defines graph expressions used to determine focus nodes in SHACL</dd>
<dt><a href="https://w3c.github.io/data-shapes/shacl12-inf-rules/">SHACL 1.2 Inference Rules</a></dt>
<dt><a href="https://w3c.github.io/data-shapes/shacl12-rules/">SHACL 1.2 Rules</a></dt>
<dd>defines SHACL's methods of rule-based inference</dd>
<dt><a href="https://w3c.github.io/data-shapes/shacl12-ui/">SHACL 1.2 UI</a></dt>
<dd>defines SHACL's use for User Interface generation</dd>
Expand All @@ -26,21 +26,21 @@ <h2>SHACL Specifications</h2>

<!--
<dl>
<dt data-transform="noSelfCite">[[[SHACL12-OVERVIEW]]]</dt>
<dt data-transform="noSelfCite">[[[shacl12-overview]]]</dt>
<dd>overviews the set of SHACL specifications</dd>
<dt data-transform="noSelfCite">[[[SHACL12-CORE]]]</dt>
<dt data-transform="noSelfCite">[[[shacl12-core]]]</dt>
<dd>defines the Core of SHACL</dd>
<dt data-transform="noSelfCite">[[[SHACL12-SPARQL]]]</dt>
<dt data-transform="noSelfCite">[[[shacl12-sparql]]]</dt>
<dd>defines SPARQL-related extensions of the SHACL</dd>
<dt data-transform="noSelfCite">[[[SHACL12-NODE-EXPR]]]</dt>
<dt data-transform="noSelfCite">[[[shacl12-node-expr]]]</dt>
<dd>defines graph expressions used to determine focus nodes in SHACL</dd>
<dt data-transform="noSelfCite">[[[SHACL12-INF-RULES]]]</dt>
<dt data-transform="noSelfCite">[[[shacl12-rules]]]</dt>
<dd>defines SHACL's methods of rule-based inference</dd>
<dt data-transform="noSelfCite">[[[SHACL12-CS]]]</dt>
<dt data-transform="noSelfCite">[[[shacl12-cs]]]</dt>
<dd>defines an RDF syntax for expressing SHACL concepts</dd>
<dt data-transform="noSelfCite">[[[SHACL12-UI]]]</dt>
<dt data-transform="noSelfCite">[[[shacl12-ui]]]</dt>
<dd>defines SHACL's use for User Interface generation</dd>
<dt data-transform="noSelfCite">[[[SHACL12-PROFILING]]]</dt>
<dt data-transform="noSelfCite">[[[shacl12-profiling]]]</dt>
<dd>defines the use of SHACL for profiling data, including SHACL data</dd>
</dl>
-->
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
@base <http://example.org/basic-shape> .
@prefix ex: <http://example.org/test#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
<http://example.org/basic-shape>
a owl:Ontology ;
.
ex:TestShape
a sh:NodeShape ;
.
@base <http://example.org/basic-shape> .
@prefix ex: <http://example.org/test#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://example.org/basic-shape>
a owl:Ontology ;
.

ex:TestShape
a sh:NodeShape ;
.
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
@base <http://example.org/comment> .
@prefix ex: <http://example.org/test#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
<>
a owl:Ontology ;
.
ex:TestShape
a sh:NodeShape ;
.
@base <http://example.org/comment> .
@prefix ex: <http://example.org/test#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<>
a owl:Ontology ;
.

ex:TestShape
a sh:NodeShape ;
.
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
BASE <http://example.com/ns>
IMPORTS <http://example.com/person-ontology>
PREFIX ex: <http://example.com/ns#>
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 [0..*] .
ex:address BlankNode [0..1] {
ex:city xsd:string [1..1] .
ex:postalCode xsd:integer|xsd:string [1..1] maxLength=5 .
} .
BASE <http://example.com/ns>

IMPORTS <http://example.com/person-ontology>

PREFIX ex: <http://example.com/ns#>

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 [0..*] .
ex:address BlankNode [0..1] {
ex:city xsd:string [1..1] .
ex:postalCode xsd:integer|xsd:string [1..1] maxLength=5 .
} .
}
Original file line number Diff line number Diff line change
@@ -1,48 +1,48 @@
@base <http://example.com/ns> .
@prefix ex: <http://example.com/ns#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
<http://example.com/ns>
rdf:type owl:Ontology ;
owl:imports <http://example.com/person-ontology> .
ex:PersonShape
a sh:NodeShape ;
sh:targetClass ex:Person ;
sh:closed true ;
sh:ignoredProperties ( rdf:type ) ;
sh:property [
sh:path ex:ssn ;
sh:maxCount 1 ;
sh:datatype xsd:string ;
sh:pattern "^\\d{3}-\\d{2}-\\d{4}$" ;
] ;
sh:property [
sh:path ex:worksFor ;
sh:class ex:Company ;
sh:nodeKind sh:IRI ;
] ;
sh:property [
sh:path ex:address ;
sh:maxCount 1 ;
sh:nodeKind sh:BlankNode ;
sh:node [
sh:property [
sh:path ex:city ;
sh:datatype xsd:string ;
sh:minCount 1 ;
sh:maxCount 1 ;
] ;
sh:property [
sh:path ex:postalCode ;
sh:or ( [ sh:datatype xsd:integer ] [ sh:datatype xsd:string ] ) ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:maxLength 5 ;
] ;
] ;
@base <http://example.com/ns> .
@prefix ex: <http://example.com/ns#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://example.com/ns>
rdf:type owl:Ontology ;
owl:imports <http://example.com/person-ontology> .

ex:PersonShape
a sh:NodeShape ;
sh:targetClass ex:Person ;
sh:closed true ;
sh:ignoredProperties ( rdf:type ) ;
sh:property [
sh:path ex:ssn ;
sh:maxCount 1 ;
sh:datatype xsd:string ;
sh:pattern "^\\d{3}-\\d{2}-\\d{4}$" ;
] ;
sh:property [
sh:path ex:worksFor ;
sh:class ex:Company ;
sh:nodeKind sh:IRI ;
] ;
sh:property [
sh:path ex:address ;
sh:maxCount 1 ;
sh:nodeKind sh:BlankNode ;
sh:node [
sh:property [
sh:path ex:city ;
sh:datatype xsd:string ;
sh:minCount 1 ;
sh:maxCount 1 ;
] ;
sh:property [
sh:path ex:postalCode ;
sh:or ( [ sh:datatype xsd:integer ] [ sh:datatype xsd:string ] ) ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:maxLength 5 ;
] ;
] ;
] .
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
BASE <http://example.com/ns>
IMPORTS <http://example.com/person-ontology>
PREFIX ex: <http://example.com/ns#>
shapeClass 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 [0..*] .
ex:address BlankNode [0..1] {
ex:city xsd:string [1..1] .
ex:postalCode xsd:integer|xsd:string [1..1] maxLength=5 .
} .
}
BASE <http://example.com/ns>

IMPORTS <http://example.com/person-ontology>

PREFIX ex: <http://example.com/ns#>

shapeClass 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 [0..*] .
ex:address BlankNode [0..1] {
ex:city xsd:string [1..1] .
ex:postalCode xsd:integer|xsd:string [1..1] maxLength=5 .
} .
}
Original file line number Diff line number Diff line change
@@ -1,47 +1,47 @@
@base <http://example.com/ns> .
@prefix ex: <http://example.com/ns#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
<http://example.com/ns>
rdf:type owl:Ontology ;
owl:imports <http://example.com/person-ontology> .
ex:Person
a sh:NodeShape, rdfs:Class ;
sh:closed true ;
sh:ignoredProperties ( rdf:type ) ;
sh:property [
sh:path ex:ssn ;
sh:maxCount 1 ;
sh:datatype xsd:string ;
sh:pattern "^\\d{3}-\\d{2}-\\d{4}$" ;
] ;
sh:property [
sh:path ex:worksFor ;
sh:class ex:Company ;
sh:nodeKind sh:IRI ;
] ;
sh:property [
sh:path ex:address ;
sh:maxCount 1 ;
sh:nodeKind sh:BlankNode ;
sh:node [
sh:property [
sh:path ex:city ;
sh:datatype xsd:string ;
sh:minCount 1 ;
sh:maxCount 1 ;
] ;
sh:property [
sh:path ex:postalCode ;
sh:or ( [ sh:datatype xsd:integer ] [ sh:datatype xsd:string ] ) ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:maxLength 5 ;
] ;
] ;
@base <http://example.com/ns> .
@prefix ex: <http://example.com/ns#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://example.com/ns>
rdf:type owl:Ontology ;
owl:imports <http://example.com/person-ontology> .

ex:Person
a sh:NodeShape, rdfs:Class ;
sh:closed true ;
sh:ignoredProperties ( rdf:type ) ;
sh:property [
sh:path ex:ssn ;
sh:maxCount 1 ;
sh:datatype xsd:string ;
sh:pattern "^\\d{3}-\\d{2}-\\d{4}$" ;
] ;
sh:property [
sh:path ex:worksFor ;
sh:class ex:Company ;
sh:nodeKind sh:IRI ;
] ;
sh:property [
sh:path ex:address ;
sh:maxCount 1 ;
sh:nodeKind sh:BlankNode ;
sh:node [
sh:property [
sh:path ex:city ;
sh:datatype xsd:string ;
sh:minCount 1 ;
sh:maxCount 1 ;
] ;
sh:property [
sh:path ex:postalCode ;
sh:or ( [ sh:datatype xsd:integer ] [ sh:datatype xsd:string ] ) ;
sh:minCount 1 ;
sh:maxCount 1 ;
sh:maxLength 5 ;
] ;
] ;
] .
Loading