Issue: Creating Inverse Property Shapes leaves an error

29 views
Skip to first unread message

Tim Smith

unread,
Apr 27, 2020, 4:16:55 PM4/27/20
to topbrai...@googlegroups.com
Hi,

When I use EDG to give a name to an inverse relationship, much the way edg:columnOf works for edg:DatabaseTable, I get an error that persists after creation even though the correct SHACL has been generated.

Everything seems to work although I don't think the error should be there.

Tim

First screenshot - error during creation.  Bypassed by using Submit Anyway

SHACL:
pgont:ManufacturingLine-hasPart-inverse
  a sh:PropertyShape ;
  sh:path [
      sh:inversePath pgont:hasPart ;
    ] ;
  sh:name "test inverse property - has part" ;
  sh:nodeKind sh:IRI ;

Second screenshot - error shown when viewing the property shape.
  
Third  screenshot - view of edg:DatabaseTable-columnOf-inverse property shape.  Note no errors.

SHACL:
edg:DatabaseTable-columnOf-inverse
  a sh:PropertyShape ;
  sh:path [
      sh:inversePath edg:columnOf ;
    ] ;
  graphql:name "columns" ;
  rdfs:isDefinedBy <http://edg.topbraid.solutions/1.0/schema/datamodels> ;
  sh:class edg:DatabaseColumn ;
  sh:description "The columns of a database table." ;
  sh:group edg:DataStructurePropertiesGroup ;
  sh:name "columns" ;
  sh:order "40"^^xsd:decimal ;


image.png

image.png
image.png


Irene Polikoff

unread,
Apr 27, 2020, 7:14:36 PM4/27/20
to topbrai...@googlegroups.com
Hmm…

I can’t reproduce. May be Holger has some ideas.

<image.png>

<image.png>
<image.png>



--
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 topbraid-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/topbraid-users/CAF0WbnLQJ_G-x2X0q7kQDTQgoqTtJSeX0YCnpAJNf0hx5TqFVw%40mail.gmail.com.

Holger Knublauch

unread,
Apr 27, 2020, 7:46:02 PM4/27/20
to topbrai...@googlegroups.com

Same here. I guess you are using 6.3? Could it be that you have owl:imported some file that defines additional constraints, e.g. that the values of sh:inversePath must be sh:class rdfs:Resource? If this doesn't help, feel free to send me a TriG file with your graph and subgraphs so that I can try to reproduce this issue.

Holger

Tim Smith

unread,
Apr 27, 2020, 8:07:35 PM4/27/20
to topbrai...@googlegroups.com
I will take a look.  There is no hand-written SHACL but there is always the possibility of some errant owl axiom that was converted into such a constraint.

I am using 6.3.1. 

Holger Knublauch

unread,
Apr 27, 2020, 8:22:46 PM4/27/20
to topbrai...@googlegroups.com

You may be up to something. The rdfs:range of sh:inversePath is indeed rdfs:Resource, so if (for some reason) an OWL-to-SHACL converter was executed over the SHACL system graph itself then such a constraint might have been created. Please keep us informed if you find such a constraint and how it might have come into existence.

Holger

Tim Smith

unread,
Apr 29, 2020, 6:04:19 PM4/29/20
to topbrai...@googlegroups.com
Hi Holger,

I looked through my graphs and I did find what I think would be the output if the OWL-to-SHACL converter was executed on the system graphs.  There are a lot of sh: rows.  Specifically, the following looks suspect:

sh:PropertyShape-path
        rdf:type  sh:PropertyShape ;
        sh:path   sh:path ;
        sh:class  rdfs:Resource .

sh:PropertyShape  rdf:type  sh:NodeShape ;
        sh:property  sh:PropertyShape-readOnly ;
        sh:property  sh:PropertyShape-defaultValue ;
        sh:property  sh:PropertyShape-group ;
        sh:property  sh:PropertyShape-editor ;
        sh:property  sh:PropertyShape-composite ;
        sh:property  sh:PropertyShape-name ;
        sh:property  sh:PropertyShape-path ;
        sh:property  sh:PropertyShape-reifiableBy ;
        sh:property  sh:PropertyShape-viewer ;
        sh:property  sh:PropertyShape-hidden ;
        sh:property  sh:PropertyShape-description .

I cleared the ontology and recreated it from my source ttl file and I no longer see the problem.  As to how it got there, the only thing I can think of is that when I did the Transform to convert and delete the OWL axioms, maybe I erroneously clicked on one or more imports which may have included the system graphs?  That is just a guess.  I was learning on the fly so such a mistake is not out of the realm of possibilities.  Three of the imports are provided by EDG:

image.png
I'm happy to test further if there are any scenarios you would like me to investigate.

Tim


Reply all
Reply to author
Forward
0 new messages