Skip to content

Commit 370828f

Browse files
authored
Merge branch 'gh-pages' into common-spec-elements
2 parents 08f233c + a6a7881 commit 370828f

File tree

3 files changed

+805
-151
lines changed

3 files changed

+805
-151
lines changed

shacl12-overview/index.html

Lines changed: 197 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -372,61 +372,211 @@ <h2>Introduction</h2>
372372

373373
<section id="whatsnew">
374374
<h2>What's New in SHACL 1.2</h2>
375-
<p class="todo">
376-
The main information about SHACL 1.0 &rarr; 1.2 will be added here.
377-
</p>
378-
<p>
379-
SHACL 1.0 Core <a href="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 <a href="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 <a href="#shacl-1.1">SHACL 1.1</a> section below. The SHACL 1.2 specifications are also listed below, in the <a href="#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+
<table id="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.
403+
</td>
404+
<td>
405+
<a href="https://www.w3.org/TR/shacl12-core/">Core</a>,<br />
406+
<a href="https://www.w3.org/TR/shacl12-node-expr/">Node Expr</a>
407+
</td>
408+
</tr>
409+
<tr>
410+
<td>
411+
Flexible Target Nodes
412+
</td>
413+
<td>
414+
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>.
415+
</td>
416+
<td>
417+
<a href="https://www.w3.org/TR/shacl12-node-expr/">Node Expr</a>
418+
</td>
419+
</tr>
420+
<tr>
421+
<td>Inference Rules</td>
422+
<td>
423+
<p>
424+
The new <em>Inferencing Rules</em> specification allows the representation and execution of <a href="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 <a href="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 <a href="https://spinrdf.org/">SPIN</a>.
428+
</p>
429+
</td>
430+
<td>
431+
<a href="https://w3c.github.io/data-shapes/shacl12-inf-rules/">Inf Rules</a>
432+
</td>
433+
</tr>
434+
<tr>
435+
<td>
436+
Better Syntax for Unions of Datatypes and Classes
437+
</td>
438+
<td>
439+
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.
440+
</td>
441+
<td>
442+
<a href="https://www.w3.org/TR/shacl12-core/">Core</a>
443+
</td>
444+
</tr>
445+
<tr>
446+
<td>
447+
Constraints on RDF 1.2 Reification
448+
</td>
449+
<td>
450+
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.
451+
</td>
452+
<td>
453+
<a href="https://www.w3.org/TR/shacl12-core/">Core</a>
454+
</td>
455+
</tr>
456+
<tr>
457+
<td>
458+
Use of Reification in Constraint Definitions
459+
</td>
460+
<td>
461+
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.
462+
</td>
463+
<td>
464+
<a href="https://www.w3.org/TR/shacl12-core/">Core</a>
465+
</td>
466+
</tr>
467+
<tr>
468+
<td>
469+
The <code>sh:ShapeClass</code> Metaclass
470+
</td>
471+
<td>
472+
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 <a href="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.
473+
</td>
474+
<td>
475+
<a href="https://www.w3.org/TR/shacl12-core/">Core</a>
476+
</td>
477+
</tr>
478+
<tr>
479+
<td>
480+
Cleaner Separation between Core and SPARQL
481+
</td>
482+
<td>
483+
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.
484+
</td>
485+
<td>
486+
<a href="https://www.w3.org/TR/shacl12-core/">Core</a>,<br />
487+
<a href="https://www.w3.org/TR/shacl12-sparql/">SPARQL</a>
488+
</td>
489+
</tr>
490+
<tr>
491+
<td>
492+
A formal Compact Syntax
493+
</td>
494+
<td>
495+
<p>
496+
The SHACL Community Group, which formed after the publication of SHACL 1.1, produced an informal <a href="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.
500+
</p>
501+
</td>
502+
<td>
503+
<a href="https://www.w3.org/TR/shacl12-cs/">Compact Syntax</a>
504+
</td>
505+
</tr>
506+
<tr>
507+
<td>
508+
A formal SHACL UI
509+
</td>
510+
<td>
511+
Industry has used SHACL 1.1 for user interface generation since publication, with non-W3C extensions such as <a href="https://www.datashapes.org/">DASH</a>. This is now formalized in a new specification.
512+
</td>
513+
<td>
514+
<a href="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]].
523+
</td>
524+
<td>
525+
<a href="https://www.w3.org/TR/shacl12-profiling/">Profiling</a>
526+
</td>
527+
</tr>
528+
</tbody>
529+
</table>
381530
</section>
382531

383532
<section id="specifications">
384533
<h2>Specifications</h2>
385-
<h3>
386-
SHACL 1.2
387-
</h3>
388-
<dl>
389-
<dt>SHACL 1.2 Overview (this document)</dt>
390-
<dd>overviews the set of SHACL specifications</dd>
391-
<dt><a href="https://w3c.github.io/data-shapes/shacl12-core/">SHACL 1.2 Core</a></dt>
392-
<dd>defines the Core of SHACL</dd>
393-
<dt><a href="https://w3c.github.io/data-shapes/shacl12-sparql/">SHACL 1.2 SPARQL Extensions</a></dt>
394-
<dd>defines SPARQL-related extensions of the SHACL</dd>
395-
<dt><a href="https://w3c.github.io/data-shapes/shacl12-node-expr/">SHACL 1.2 Node Expressions</a></dt>
396-
<dd>defines graph expressions used to determine focus nodes in SHACL</dd>
397-
<dt><a href="https://w3c.github.io/data-shapes/shacl12-inf-rules/">SHACL 1.2 Inference Rules</a></dt>
398-
<dd>defines SHACL's methods of rule-based inference</dd>
399-
<dt><a href="https://w3c.github.io/data-shapes/shacl12-ui/">SHACL 1.2 UI</a></dt>
400-
<dd>defines SHACL's use for User Interface generation</dd>
401-
<dt><a href="https://w3c.github.io/data-shapes/shacl12-compact-syntax/">SHACL 1.2 Compact Syntax</a></dt>
402-
<dd>defines an RDF syntax for expressing SHACL concepts</dd>
403-
<dt><a href="https://w3c.github.io/data-shapes/shacl12-profiling/">SHACL 1.2 Profiling</a></dt>
404-
<dd>defines the use of SHACL for profiling data, including SHACL data</dd>
405-
</dl>
406-
407-
<h3>
408-
SHACL 1.0
409-
</h3>
410-
<p><em>The original SHACL specifications, now deprecated in favour of SHACL 1.2 specifications, above.</em></p>
411-
<dl>
412-
<dt><a href="https://www.w3.org/TR/2017/REC-shacl-20170720/">SHACL</a></dt>
413-
<dd>the original SHACL Shapes Constraint Language definition</dd>
414-
<dt><a href="https://www.w3.org/TR/2017/NOTE-shacl-af-20170608/">SHACL Advanced Features</a></dt>
415-
<dd>a Working Group Note about "features to define custom targets, annotation properties, user-defined functions, node expressions and rules"</dd>
416-
<dt><a href="https://www.w3.org/TR/shacl-js/">SHACL Javascript Extensions</a></dt>
417-
<dd>a Working Group Note about JavaScript-based extension mechanism for the Shapes Constraint Language</dd>
418-
</dl>
419-
</section>
420-
421-
<section id="x">
422-
<h2>Section X</h2>
423-
<p class="todo">TODO: This section will describe...</p>
534+
<p>
535+
The current version of SHACL is 1.2.
536+
</p>
537+
<section id="shacl-1.2">
538+
<h3>
539+
SHACL 1.2
540+
</h3>
541+
<dl>
542+
<dt>SHACL 1.2 Overview (this document)</dt>
543+
<dd>overviews the set of SHACL specifications</dd>
544+
<dt><a href="https://w3c.github.io/data-shapes/shacl12-core/">SHACL 1.2 Core</a></dt>
545+
<dd>defines the Core of SHACL</dd>
546+
<dt><a href="https://w3c.github.io/data-shapes/shacl12-sparql/">SHACL 1.2 SPARQL Extensions</a></dt>
547+
<dd>defines SPARQL-related extensions of the SHACL</dd>
548+
<dt><a href="https://w3c.github.io/data-shapes/shacl12-node-expr/">SHACL 1.2 Node Expressions</a></dt>
549+
<dd>defines graph expressions used to determine focus nodes in SHACL</dd>
550+
<dt><a href="https://w3c.github.io/data-shapes/shacl12-inf-rules/">SHACL 1.2 Inference Rules</a></dt>
551+
<dd>defines SHACL's methods of rule-based inference</dd>
552+
<dt><a href="https://w3c.github.io/data-shapes/shacl12-ui/">SHACL 1.2 User Interfaces</a></dt>
553+
<dd>defines SHACL's use for User Interface generation</dd>
554+
<dt><a href="https://w3c.github.io/data-shapes/shacl12-compact-syntax/">SHACL 1.2 Compact Syntax</a></dt>
555+
<dd>defines an RDF syntax for expressing SHACL concepts</dd>
556+
<dt><a href="https://w3c.github.io/data-shapes/shacl12-profiling/">SHACL 1.2 Profiling</a></dt>
557+
<dd>defines the use of SHACL for profiling data, including SHACL data</dd>
558+
</dl>
559+
</section>
560+
<section id="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>
565+
<dl>
566+
<dt><a href="https://www.w3.org/TR/2017/REC-shacl-20170720/">SHACL</a></dt>
567+
<dd>the original SHACL Shapes Constraint Language definition</dd>
568+
<dt><a href="https://www.w3.org/TR/2017/NOTE-shacl-af-20170608/">SHACL Advanced Features</a></dt>
569+
<dd>a Working Group Note about "features to define custom targets, annotation properties, user-defined functions, node expressions and rules"</dd>
570+
<dt><a href="https://www.w3.org/TR/shacl-js/">SHACL Javascript Extensions</a></dt>
571+
<dd>a Working Group Note about JavaScript-based extension mechanism for the Shapes Constraint Language</dd>
572+
</dl>
573+
</section>
424574
</section>
425575

426576
<section id="governance">
427-
<h3>Governance</h3>
577+
<h3>Governance</h3>
428578
<p class="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>
429-
</section>
579+
</section>
430580

431581
<section id="shacl-shacl" class="appendix informative">
432582
<h2>SHACL-SHACL</h2>

0 commit comments

Comments
 (0)