Proposal to close ISSUE-3 and ISSUE-44

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