-
Notifications
You must be signed in to change notification settings - Fork 32
Profiling Introduction #489
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
nicholascar
wants to merge
3
commits into
gh-pages
Choose a base branch
from
profiling-updates
base: gh-pages
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
|
@@ -7,7 +7,7 @@ | |||||
<script class="remove"> | ||||||
|
||||||
function prepareSyntaxRules() { | ||||||
document.querySelectorAll("[data-syntax-rule]").forEach(element => { | ||||||
specification.querySelectorAll("[data-syntax-rule]").forEach(element => { | ||||||
let ruleId = element.getAttribute("data-syntax-rule"); | ||||||
let tr = document.createElement("tr"); | ||||||
tr.classList.add("syntax-rule-tr"); | ||||||
|
@@ -420,10 +420,10 @@ | |||||
<body> | ||||||
<section id="abstract"> | ||||||
<p> | ||||||
This document defines extensions of the SHACL Shapes Constraint Language created to allow for the profiling of specifications. | ||||||
This specification defines elements of the SHACL Shapes Constraint Language created to allow for profiles of SHACL and profiling with SHACL. | ||||||
</p> | ||||||
<p> | ||||||
SHACL is a language for validating RDF graphs against a set of conditions, so this document's scope is limited to the profiling of RDF graph models, including SHACL-defined models. | ||||||
SHACL is a language for validating RDF graphs against a set of conditions, so this document's scope is limited to profiling of RDF graphs, including graphs containing SHACL Shapes. | ||||||
</p> | ||||||
|
||||||
<p style="text-indent: 100px;"> | ||||||
|
@@ -436,32 +436,103 @@ | |||||
|
||||||
<section id="sotd"></section> | ||||||
|
||||||
<section id="introduction"> | ||||||
<h2>Introduction</h2> | ||||||
<p>SHACL Profiling is the act of creating | ||||||
a <a href="https://www.w3.org/TR/dx-prof/#dfn-profile">profile</a> | ||||||
of an <a href="https://www.w3.org/TR/shacl/#dfn-rdf-graph">RDF graph</a> | ||||||
using SHACL... | ||||||
<section class="introductory"> | ||||||
<h2>SHACL Specifications</h2> | ||||||
<p> | ||||||
This specification is part of the SHACL 1.2 family of specifications. See the SHACL 1.2 Overview for a more detailed introduction to all of them. | ||||||
</p> | ||||||
<p> | ||||||
The specifications are as follows: | ||||||
</p> | ||||||
<dl> | ||||||
<dt><a href="https://w3c.github.io/data-shapes/shacl12-overview/">SHACL 1.2 Overview</a></dt> | ||||||
<dd>overviews the set of SHACL specifications</dd> | ||||||
<dt><a href="https://w3c.github.io/data-shapes/shacl12-core/">SHACL 1.2 Core</a></dt> | ||||||
<dd>defines the Core of SHACL</dd> | ||||||
<dt><a href="https://w3c.github.io/data-shapes/shacl12-sparql/">SHACL 1.2 SPARQL Extensions</a></dt> | ||||||
<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> | ||||||
<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> | ||||||
<dt><a href="https://w3c.github.io/data-shapes/shacl12-compact-syntax/">SHACL 1.2 Compact Syntax</a></dt> | ||||||
<dd>defines an RDF syntax for expressing SHACL concepts</dd> | ||||||
<dt>SHACL 1.2 Profiling (this specification)</dt> | ||||||
<dd>defines the use of SHACL for profiling data, including SHACL data</dd> | ||||||
</dl> | ||||||
</section> | ||||||
|
||||||
<section id="terminology"> | ||||||
<h3>Terminology</h3> | ||||||
<section class="introductory"> | ||||||
<h2>Document Outline</h2> | ||||||
<p> | ||||||
The introduction provides background concepts of profiling and states this specification's scope. | ||||||
</p> | ||||||
<p> | ||||||
Sections 2 & 3 cover the two main elements within the stated scope. | ||||||
</p> | ||||||
</section> | ||||||
|
||||||
<section id="introduction"> | ||||||
<h2>Introduction</h2> | ||||||
<section id="what-is"> | ||||||
<h3>What is profiling?</h3> | ||||||
<p> | ||||||
Terminology used throughout this document is consistent with several sources: | ||||||
Profiling is the act of creating a "profile" of something. | ||||||
</p> | ||||||
<p> | ||||||
Generically, in English, a "profile" of something is as follows: | ||||||
</p> | ||||||
<p style="padding: 0 50px 0 50px;"> | ||||||
The outline of a physical object or feature, or a representation of this | ||||||
<br /><br />- Oxford English dictionary, use of the word "profile" since the 17th century | ||||||
</p> | ||||||
<p> | ||||||
Within the world of data, a derived definition of "profile" consistent with the above is — | ||||||
</p> | ||||||
<p> | ||||||
A summary or an extraction | ||||||
</p> | ||||||
<p> | ||||||
In this definition, the essence of the English word is retained, since a summary or extraction of or from a data object <em>may</em> be an outline of it; for example, a 2D representation of a 3D spatial object. or a statistical summary of a dataset having lots of parts. | ||||||
</p> | ||||||
<p> | ||||||
By definition, SHACL constrains (RDF) data; thus, any data that is valid according to a shapes graph will be a profile of the data graph that was validated. In the case of a shapes graph validating all elements of a data graph, the valid data will be a "null" profile of the data graph, that is identical to it. | ||||||
</p> | ||||||
<p> | ||||||
The W3C's <em>Profiles Vocabulary</em> [[dx-prof]] has defined "data profiling" in the context of <em>specifications</em> or <em>data specifications</em>: | ||||||
</p> | ||||||
<p style="padding: 0 50px 0 50px;"> | ||||||
<em>A data specification that constrains, extends, combines, or provides guidance or explanation about the use of other data specifications.</em> | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Should we add the other variants referred to in the specification? |
||||||
</p> | ||||||
<p> | ||||||
If a shapes graph is taken to be a "data specification" and it can sensibly be then, in addition to data valid according to a shapes graph being a profile of the data graph validated, the shapes graph itself is a profile of the data model used for the data graph. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
</p> | ||||||
</section> | ||||||
<section id="scope"> | ||||||
<h3>Scope</h3> | ||||||
<p> | ||||||
With the above section's concepts in mind, this specification defines the following: | ||||||
</p> | ||||||
<ol> | ||||||
<li>the main SHACL [[shacl]] specification | ||||||
<ul> | ||||||
<li>which references terms from RDF [[rdf11-concepts]]</li> | ||||||
<li>technical terns for SHACL</li> | ||||||
</ul> | ||||||
</li> | ||||||
<li>the Profiles Vocabulary [[dx-prof]], a W3C Dataset Exchange Working Group Note | ||||||
<ul><li>which defines general terms to do with profiling including the terms "profiling" / "profile"</li></ul> | ||||||
</li> | ||||||
<li>profiles of SHACL</li> | ||||||
<li>profiling with SHACL</li> | ||||||
</ol> | ||||||
</section> | ||||||
<section id="terminology"> | ||||||
<h3>Terminology</h3> | ||||||
<p> | ||||||
The SHACL terms include | ||||||
Terminology used throughout this specification is taken from several sources: | ||||||
</p> | ||||||
<dl> | ||||||
<dt><a href="https://w3c.github.io/data-shapes/shacl12-core/">SHACL 1.2 Core</a> specification</dt> | ||||||
<dd>technical terms for SHACL and RDF, the latter from [[rdf12-concepts]]</dd> | ||||||
<dt>Profiles Vocabulary [[dx-prof]]</dt> | ||||||
<dd>defines general terms to do with profiling including the terms "profiling" & "profile"</dd> | ||||||
</dl> | ||||||
<p> | ||||||
The SHACL & RDF terms include: | ||||||
<dfn data-lt="bindings"> | ||||||
<a href="https://www.w3.org/TR/shacl/#dfn-binding">binding</a> | ||||||
</dfn> | ||||||
|
@@ -614,7 +685,7 @@ <h3>Terminology</h3> | |||||
. | ||||||
</p> | ||||||
<p> | ||||||
The general profiling terms include | ||||||
The general profiling terms include: | ||||||
<dfn data-lt="specification|specifications"> | ||||||
<a href="https://www.w3.org/TR/dx-prof/#dfn-specification">specification</a> | ||||||
</dfn> | ||||||
|
@@ -632,7 +703,7 @@ <h3>Terminology</h3> | |||||
<section id="conventions"> | ||||||
<h3>Document Conventions</h3> | ||||||
<p> | ||||||
Within this document, the following namespace prefix definitions are used: | ||||||
Within this specification, the following namespace prefix definitions are used: | ||||||
</p> | ||||||
<table class="term-table"> | ||||||
<tr> | ||||||
|
@@ -649,7 +720,7 @@ <h3>Document Conventions</h3> | |||||
</tr> | ||||||
<tr> | ||||||
<td><code>sh:</code></td> | ||||||
<td><code><a href="http://www.w3.org/ns/shacl">http://www.w3.org/ns/shacl#</a></code></td> | ||||||
<td><code>http://www.w3.org/ns/shacl#</code></td> | ||||||
</tr> | ||||||
<tr> | ||||||
<td><code>xsd:</code></td> | ||||||
|
@@ -662,7 +733,7 @@ <h3>Document Conventions</h3> | |||||
</table> | ||||||
|
||||||
<p> | ||||||
Within this document, the following JSON-LD context is used: | ||||||
Within this specification, the following JSON-LD context is used: | ||||||
</p> | ||||||
<pre class="jsonld">{ | ||||||
"@context": { | ||||||
|
@@ -679,11 +750,11 @@ <h3>Document Conventions</h3> | |||||
References to the SHACL vocabulary, e.g., via <code>owl:imports</code> should include the <code>#</code>. | ||||||
</p> | ||||||
<p> | ||||||
Throughout the document, color-coded boxes containing RDF graphs in Turtle and JSON-LD will appear. | ||||||
Throughout the specification, color-coded boxes containing RDF graphs in Turtle and JSON-LD will appear. | ||||||
The color and title of a box indicate whether it is a Shapes graph, a Data graph, or something else. | ||||||
The Turtle document fragments use the prefix bindings given above. | ||||||
The JSON-LD document fragments use the context given above. | ||||||
Only the Turtle documents will have parts highlighted. | ||||||
The Turtle specification fragments use the prefix bindings given above. | ||||||
The JSON-LD specification fragments use the context given above. | ||||||
Only the Turtle specifications will have parts highlighted. | ||||||
</p> | ||||||
|
||||||
<div class="shapes-graph"> | ||||||
|
@@ -755,13 +826,18 @@ <h3>Document Conventions</h3> | |||||
</section> | ||||||
</section> | ||||||
|
||||||
<section id="section"> | ||||||
<h2>Section</h2> | ||||||
<section id="profiles-of-shacl"> | ||||||
<h2>Profiles of SHACL</h2> | ||||||
<p>Content.</p> | ||||||
</section> | ||||||
|
||||||
<section id="profiling-with-shacl"> | ||||||
<h2>Profiling with SHACL</h2> | ||||||
<p>Content.</p> | ||||||
</section> | ||||||
|
||||||
<section id="syntax-rules" class="appendix"> | ||||||
<h2>Summary of Syntax Rules from this Document</h2> | ||||||
<h2>Summary of Syntax Rules from this Specification</h2> | ||||||
</section> | ||||||
|
||||||
<section id="security"> | ||||||
|
@@ -776,7 +852,7 @@ <h2>Privacy Considerations</h2> | |||||
|
||||||
<section id="ack" class="appendix informative"> | ||||||
<h2>Acknowledgements</h2> | ||||||
<p>Many people contributed to this document, including members of the RDF Data Shapes Working Group.</p> | ||||||
<p>Many people contributed to this specification, including members of the RDF Data Shapes Working Group.</p> | ||||||
</section> | ||||||
|
||||||
<section id="internationalization"> | ||||||
|
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.