Re: shapes-ISSUE-174 (Scopenode): Scopenode does not use RDF node definition [SHACL - Core]

Hi Karen

On Mon, Jul 11, 2016 at 11:02 PM, RDF Data Shapes Working Group Issue
Tracker <sysbot+tracker@w3.org> wrote:

> shapes-ISSUE-174 (Scopenode): Scopenode does not use RDF node definition
> [SHACL - Core]
>
> http://www.w3.org/2014/data-shapes/track/issues/174
>
> Raised by: Karen Coyle
> On product: SHACL - Core
>
> After chatting with various folks I am convinced that the use of "node" in
> the definition of "node scope" in SHACL is not correct. Node in RDF (which
> definition SHACL claims to follow) is defined thus:
>
> "The set of nodes of an RDF graph is the set of subjects and objects of
> triples in the graph. It is possible for a predicate IRI to also occur as a
> node in the same graph."[1]
>
> When we look at that:
>
> "The set of nodes of an RDF graph is the set of subjects and objects of
> triples in a graph."
>
> -> Only subjects and objects are "nodes."
>
> "It is possible for a predicate IRI to also occur as a node in the same
> graph."
>
> This refers to the IRI that is a predicate in a graph, not the predicate
> position in the triple, which is always an "arc" and not a node. The IRI
> can be a node (a subject or an object) if it is the subject or object of a
> triple. This means that if you "say something" about the predicate (for
> example adding a provenance statement about the predicate) then it has
> become a node in a graph as well as being a predicate in the graph.
>
> In fact, most predicates are not also subjects or objects. This means that
> at the moment SHACL does not have a way to define a scope on predicates.
>

At the moment, SHACL and all existing parallel proposals (correct me if I
am wrong) including ShEx & Peter's proposal work on RDF nodes.
No proposal has any special treatment for predicates, when the predicates
do not exists as subjects / objects on the graph to be tested


> If the above holds true, then two things must happen: 1) SHACL must not
> use "node" where it means all components of a triple and


We do not currently have any discussion on how a predicate can work as
scope nor any use-cases. e.g. what does it mean to to have e.g. rdfs:label
as scope?

however, we do have sh:scopeProperty and sh:scopeInverse property

e.g. sh:scopeProperty rdfs:label selects all subjects in the data graph
that appear in a triple with rdfs:label as predicate
e.g. sh:scopeInverseProperty rdfs:label selects all objects in the data
graph that appear in a triple with rdfs:label as predicate

in that sense I think the term node here is correct


> 2a) there must either be a SHACL vocabulary element that allows scoping
> based on *any* component of a triple, or 2b) there must be a separate SHACL
> vocabulary element that allows scoping based on matching a predicate.
>

as stated above, we first need to define what does it mean to have a
predicate as a scope
e.g. sh:scopePredicate rdfs:label

to me something like this would intuitively translate to the following
SHACL scopes
sh:scopeNode rdfs:label
sh:scopeProperty rdfs:label
sh:scopeInverseProperty rdfs:label
i.e. the actual predicate as a node as well as all the subjects / objects
in the data graph that appear in a triple with rdfs:label as predicate
is this what you have in mind as well? in that case we can discuss if we
can create such a syntax shortcut

Best,
Dimitris

>
>
> [1]
> https://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/#section-rdf-graph
>
>
>
>


-- 
Dimitris Kontokostas
Department of Computer Science, University of Leipzig & DBpedia Association
Projects: http://dbpedia.org, http://rdfunit.aksw.org,
http://aligned-project.eu
Homepage: http://aksw.org/DimitrisKontokostas
Research Group: AKSW/KILT http://aksw.org/Groups/KILT

Received on Tuesday, 12 July 2016 13:56:27 UTC