You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The main information about SHACL 1.0 → 1.2 will be added here.
377
-
</p>
378
-
<p>
379
-
SHACL 1.0 Core <ahref="https://www.w3.org/TR/2017/REC-shacl-20170720/#shacl-shacl">included an appendix</a> providing a shapes graph to be used to validate shapes graphs according to the SHACL 1.0 Core specification. SHACL 1.2 has moved this information from the Core specification to an appendix in this Overview to allow for information relevant to parts of SHACL 1.2 not in the Core. A note about this new SHACL-SHACL location is retained in SHACL 1.2 Core.
380
-
</p>
375
+
<p>
376
+
SHACL 1.2 covers <ahref="https://www.w3.org/TR/rdf12-new/">new developments in RDF 1.2 and SPARQL 1.2</a>, formalizes versions of original SHACL documents published only as Notes, and takes SHACL into new areas such as rules for inferencing and profile definition.
377
+
</p>
378
+
<p>
379
+
The original SHACL specifications, published in 2015 and now considered SHACL 1.1 as they were aligned with RDF 1.1, are listed in the <ahref="#shacl-1.1">SHACL 1.1</a> section below. The SHACL 1.2 specifications are also listed below, in the <ahref="#shacl-1.2">SHACL 1.2</a> section.
380
+
</p>
381
+
<p>
382
+
Following are the major new things in SHACL 1.2 and the specifications in which they appear.
383
+
</p>
384
+
<tableid="new-items" class="term-table">
385
+
<tbody>
386
+
<tr>
387
+
<th>
388
+
New Feature
389
+
</th>
390
+
<th>
391
+
Description
392
+
</th>
393
+
<th>
394
+
SHACL 1.2 Specification
395
+
</th>
396
+
</tr>
397
+
<tr>
398
+
<td>
399
+
Derived Properties
400
+
</td>
401
+
<td>
402
+
In SHACL 1.1, shapes and constraints could only operate on asserted triples in a graph, and inferencing was left as an optional pre-processing step using languages like RDF Schema and OWL. SHACL 1.2 introduces its own inferencing and reasoning capabilities, which make SHACL more self-contained and cover different use cases than RDFS/OWL.
In SHACL 1.2, node expressions can be used in more places than derived properties, to which they were limited in SHACL 1.1. Particularly, they can now also be used to compute the target nodes of a shape. This provides greater flexibility than the built-in target types such as <code>sh:targetClass</code> and <code>sh:targetSubjectsOf</code>.
The new <em>Inferencing Rules</em> specification allows the representation and execution of <ahref="https://en.wikipedia.org/wiki/Datalog">Datalog</a>-like inference rules which have a straight-forward mapping to SPARQL <code>CONSTRUCT</code> statements for execution, and integrate with other SHACL features such as node expressions.
425
+
</p>
426
+
<p>
427
+
This work was inspired by the SPARQL-based rules introduced by the <ahref="https://www.w3.org/TR/shacl-af/">SHACL 1.1 Advanced Features</a> note (commonly referred to as "SHACL-AF") and older technologies such as <ahref="https://spinrdf.org/">SPIN</a>.
In SHACL 1.1, when you wanted to express that the datatype of a property was either <code>xsd:string</code>, <code>rdf:langString</code>, or <code>rdf:HTML</code>, you needed to use a verbose, repetitive construct. In SHACL 1.2, this can be written as a single list.
The major new feature in RDF 1.2 is reification, enabling RDF statements to be easily made about other RDF statements. SHACL 1.2 introduces new constraint properties (<code>sh:reifierShape</code> and <code>sh:reificationRequired</code>) which allow a shape targeting a triple to be chained to another shape targeting reification elements.
In SHACL 1.1, the severity and messages of a constraint had to be declared for the surrounding shape, sometimes requiring artificial intermediate shapes to be introduced to change only the severity or a message. SHACL 1.2 syntax is more flexible, allowing severity and messages to be directly attached to individual constraint triples.
A new class, <code>sh:ShapeClass</code>, comparable to <code>owl:Class</code>, is used to define classes that can declare constraints that apply to all instances of the class. It is equivalent to OWL syntax for declaring a class that may hold <ahref="https://www.w3.org/TR/owl2-primer/#Annotating_Axioms_and_Entities">OWL axioms</a>. This allows SHACL to be a more self-contained ontology modeling language.
We now have a cleaner separation of Core and SPARQL concerns into separate specifications. This helps indicate SHACL Core is not dependent on SPARQL, clarify other dependencies, and make some implementations easier.
The SHACL Community Group, which formed after the publication of SHACL 1.1, produced an informal <ahref="https://w3c.github.io/shacl/shacl-compact-syntax/">SHACL Compact Syntax Report</a> which defines a compact syntax (sometimes referred to as SHACL-C) for core elements of SHACL 1.1.
497
+
</p>
498
+
<p>
499
+
We now have a formalization of that syntax with updates to aline with the other SHACL 1.2 specifications.
Industry has used SHACL 1.1 for user interface generation since publication, with non-W3C extensions such as <ahref="https://www.datashapes.org/">DASH</a>. This is now formalized in a new specification.
512
+
</td>
513
+
<td>
514
+
<ahref="https://www.w3.org/TR/shacl12-ui/">UI</a>
515
+
</td>
516
+
</tr>
517
+
<tr>
518
+
<td>
519
+
Profiling mechanisms defined with SHACL
520
+
</td>
521
+
<td>
522
+
SHACL has always been used to <em>profile</em> RDF graphs, and there are now profiles <em>of</em> SHACL — Core, SPARQL, UI, etc. — so a new specification has been published to define profiling mechanisms for use with SHACL, and to align with other W3C specifications, particularly the <em>Profiles Vocabulary</em> [[DX-PROF]].
<dd>defines the use of SHACL for profiling data, including SHACL data</dd>
558
+
</dl>
559
+
</section>
560
+
<sectionid="shacl-1.1">
561
+
<h3>
562
+
SHACL 1.1
563
+
</h3>
564
+
<p><em>The original SHACL specifications listed below, now referred to as SHACL 1.1, are deprecated in favor of the SHACL 1.2 specifications, listed above.</em></p>
<dd>a Working Group Note about JavaScript-based extension mechanism for the Shapes Constraint Language</dd>
572
+
</dl>
573
+
</section>
424
574
</section>
425
575
426
576
<sectionid="governance">
427
-
<h3>Governance</h3>
577
+
<h3>Governance</h3>
428
578
<pclass="todo">TODO: This section will describe the governance arrangements in place for the continued maintenance of SHACL-SHACL resources, i.e., handling updates beyond the time frame of the Working Group's Charter.</p>
0 commit comments