- From: Holger Knublauch <holger@topquadrant.com>
- Date: Tue, 28 Jul 2015 09:27:17 +1000
- To: RDF Data Shapes Working Group <public-data-shapes-wg@w3.org>
Both tickets [1] and [2] essentially talk about the same thing - how a
SHACL engine selects which shapes apply to a given data graph. My
proposal is to resolve both as follows:
The SHACL engine is invoked with two parameters:
1) a dataset including the data graph as its default graph
2) a shapes graph (we don't need to decide on whether that must be in
the dataset here)
There is a class sh:Graph, instances of which can represent the named
graphs themselves similar to owl:Ontology, but the use of sh:Graph is
not mandatory. Graphs that wish to help an engine find its default
shapes graph can use the property sh:shapesGraph in a triple such as
<dataGraph> sh:shapesGraph <shapesGraph>
to point at one or more shapes graph - the union of those becomes the
input 2) unless specified otherwise. If the SHACL core vocabulary is
needed then it could look like
<dataGraph> a sh:Graph ;
sh:shapesGraph <http://www.w3.org/ns/shacl> .
In addition, graphs can point to each other using a property sh:include,
which plays a similar role like owl:imports, only without the OWL
dependency/ballast. It defines an imports closure of graphs, e.g.
myGraph sh:include schema.org to help tools such as SHACL editors figure
out which other files need to be loaded when the user opens the base graph.
Holger
[1] http://www.w3.org/2014/data-shapes/track/issues/3
[2] http://www.w3.org/2014/data-shapes/track/issues/44
Received on Monday, 27 July 2015 23:27:52 UTC