- From: Dimitris Kontokostas <kontokostas@informatik.uni-leipzig.de>
- Date: Tue, 12 Jul 2016 16:55:29 +0300
- To: RDF Data Shapes Working Group <public-data-shapes-wg@w3.org>
- Message-ID: <CA+u4+a1kQN3B0B9_9Gkgph7nLTCAjRubjKEFXkbw=eADGMvTdA@mail.gmail.com>
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