Hi Irene, thanks for your prompt response! I should be more clear that the error doesn't surface in the EDG editor interface but through the SHACL validation form (/edg/tbl/swp?_viewClass=tblshacl%3AValidationPage) as well as the public shacl playground (http://shacl.org). I have enclosed a simple example for you to reproduce.
shape: # baseURI: urn:x-evn-master:mytest # imports: http://datashapes.org/dash # imports: http://datashapes.org/graphql @prefix mytest: <http://example.org/ontologies/mytest#> . @prefix metadata: <http://topbraid.org/metadata#> . @prefix sh: <http://www.w3.org/ns/shacl#> . @prefix teamwork: <http://topbraid.org/teamwork#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . <urn:x-evn-master:mytest> a owl:Ontology ; rdfs:label "mytest" ; metadata:status metadata:UnderDevelopmentStatus ; <http://topbraid.org/swa#defaultNamespace> "http://example.org/ontologies/mytest#" ; teamwork:newInstancesUserCannotModifyURI false ; owl:imports <http://datashapes.org/dash> , <http://datashapes.org/graphql> . mytest:B a sh:NodeShape , owl:Class ; rdfs:label "B" ; rdfs:subClassOf owl:Thing . mytest:A a sh:NodeShape , owl:Class ; rdfs:label "A" ; rdfs:subClassOf mytest:B . mytest:C a sh:NodeShape , owl:Class ; rdfs:label "C" ; rdfs:subClassOf owl:Thing ; sh:property mytest:C-prop1 . mytest:C-prop1 a sh:PropertyShape ; sh:class mytest:B ; sh:path mytest:prop1 . mytest:prop1 a owl:ObjectProperty ; rdfs:label "prop1" . data: # baseURI: urn:x-evn-master:mytest # imports: http://datashapes.org/dash # imports: http://datashapes.org/graphql @prefix mytest: <http://example.org/ontologies/mytest#> . @prefix metadata: <http://topbraid.org/metadata#> . @prefix sh: <http://www.w3.org/ns/shacl#> . @prefix teamwork: <http://topbraid.org/teamwork#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . <urn:x-evn-master:mytest> a owl:Ontology ; rdfs:label "mytest" ; metadata:status metadata:UnderDevelopmentStatus ; <http://topbraid.org/swa#defaultNamespace> "http://example.org/ontologies/mytest#" ; teamwork:newInstancesUserCannotModifyURI false ; owl:imports <http://datashapes.org/dash> , <http://datashapes.org/graphql> . mytest:34640a83-2c1b-11b2-80f2-005056bba47c a mytest:A ; rdfs:label "a1" . mytest:34640a85-2c1b-11b2-80f2-005056bba47c a mytest:C ; rdfs:label "c1" ; mytest:prop1 mytest:34640a83-2c1b-11b2-80f2-005056bba47c . With regard to SHACL reference, I would be more than happy to know if you have any recommendations. Thanks, Fan On Thursday, October 10, 2019 at 12:09:24 PM UTC-4, Irene Polikoff wrote: > > Fan Li, > > If :X rdf:type :A, :A rdfs:subClassOf :B, :Y :prop1 :X and you have a > constraint :prop1 sh:class :B, you will NOT get a validation result. > > For example, if you look at one of the samples available for EDG - Geo > Taxonomy, you will not that most resources in that taxonomy are not of type > skos:Concept. Instead, they are members of classes Continent, City, etc., > which are declared as subclasses of skos:Concept. > > There is a constraint on skos:broader: > > skos:Concept-broader > a sh:PropertyShape ; > sh:path skos:broader ; > sh:class skos:Concept ; > sh:description "Relates a concept to a concept that is more general in > meaning."@en ; > sh:group skos:StandardRelationshipsPropertyGroup ; > sh:name "broader concept" ; > sh:order 0 ; > . > > Data has, for example: > > g:United_States > a g:Country ; > skos:broader g:North_America. > > g:North_America > a g:Continent. > > And there are no violations. SubclassOf entailment is always applied > automatically when sh:class constraints are evaluated and when target nodes > are calculated if class target is used. This is described in the spec: > > SHACL Type > The SHACL types of an RDF term <https://www.w3.org/TR/shacl/#dfn-rdf-term> in > an RDF graph <https://www.w3.org/TR/shacl/#dfn-rdf-graph> is the set of > its values <https://www.w3.org/TR/shacl/#dfn-value> for rdf:type in the > graph <https://www.w3.org/TR/shacl/#dfn-rdf-graph> *as well as the SHACL > superclasses <https://www.w3.org/TR/shacl/#dfn-shacl-superclass> of > these values <https://www.w3.org/TR/shacl/#dfn-value> in the graph > <https://www.w3.org/TR/shacl/#dfn-rdf-graph>.* > > If you are having a problem, the issue is not with this logic. Are you > certain that the rdfs:subClassOf statement is present in the data graph? > How are you running the validation? > > Further, the book you are referencing has quite a number of inaccuracies > in its description of SHACL - some are more subtle than others. > > I would not recommend it as a guide for understanding and using SHACL. If > you do so, chances are you will have some key misconceptions that would > prevent you from using SHACL effectively. > > Irene > > On Oct 10, 2019, at 11:41 AM, Fan Li <[email protected] <javascript:>> > wrote: > > Recently we encountered a situation where the validation error "Value must > be an instance of [some class]" is raised, even though the individual has > been declared an instance of a subclass of the class. We looked it up and > it seems the error is related to the lack of RDFS entailment in the > validation process: https://book.validatingrdf.com/bookHtml011.html#sec171 > > The referenced book also mentioned that entailment may be enabled during > the validation process. Is it possible within EDG? > > > -- > You received this message because you are subscribed to the Google Groups > "TopBraid Suite Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/topbraid-users/f4ad53ab-2f70-402c-8d4d-4b906ac5d69e%40googlegroups.com > . > > > -- You received this message because you are subscribed to the Google Groups "TopBraid Suite Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/topbraid-users/ef7c2a88-f029-43bd-9a80-ef4314110ed3%40googlegroups.com.
