- From: James Hudson <jameshudson3010@gmail.com>
- Date: Wed, 1 Apr 2020 08:01:05 -0400
- To: Nicholas Car <nicholas.car@surroundaustralia.com>
- Cc: Public Shacl W3C <public-shacl@w3.org>
- Message-ID: <CAEUVO9E8ot6Pi6NEy5tg_MFYDkEJwkukM_2cAq0ULWdxtHYD8g@mail.gmail.com>
Hello Nicholas, Thank you for your reply. I filed an issue with the pySHACL project and received a response explaining the issue, how to resolve it, and what the best practice is. The issue can be found at https://github.com/RDFLib/pySHACL/issues/46 and contains the correct gist URL ( https://gist.github.com/James-Hudson3010/2588d9b17dd33e15922122b8b5cf1bd7 ) The key concept I was missing, which you mention as well, was that the shape file needs to contain all of the ontology information as well. When I split the files, the shape.ttl file did not contain any of the required ontology information. This matches the behavior of https://shacl.org/playground/ as well. Regards, James On Wed, Apr 1, 2020 at 6:49 AM Nicholas Car < nicholas.car@surroundaustralia.com> wrote: > Hi James, > > Something funny about that Gist: it doesn’t resolve! > > Sorry but without that, I can’t retry your first command quoted below to > try and replicate your output. > > > is it a best practice to always put everything into a single file? > > > Quite the opposite: my day-to-day use of pySHACL involves separate shape, > ontology and data files. The SHACL playground [1] also expects the shape > files to be separate from the data files. > > > I will say that your SHACL shape results (which I can’t see the source > files for since the gist is gone) should really have error messages in them > so you can get some human-readable send of what’s through be a violation. > > What do you see int eh data files where the errors are triggered in the > all-in-one validation? Even whiteout human-redable error messages, you > should be able to manually inspect the focus nodes (d:e4, d:e3 & d:e2) and > see if you can determine whether they are should be failing. For example, > it looks like d:e2 is missing 1+ hr:jobGrade. > > > One final thing, a point of order: for this sort of question, you might be > better off in StackOverflow tagged [shacl] [2] as it’s a use question (of a > SHACL tool), rather than a SHACL dev question per se. > > Cheers, > > Nick > > > > [1] https://shacl.org/playground/ > [2] https://stackoverflow.com/questions/tagged/shacl > > > > On 30 Mar 2020, at 9:59 pm, James Hudson <jameshudson3010@gmail.com> > wrote: > > Hello, > > If this is not the appropriate forum for this question, please let me know. > > I have a gist with all of the relevant files at: > https://gist.github.com/James-Hudson3010/65be952d586859da380d949e7b520320 > > If I execute: > > $ pyshacl -a -f human employees.ttl > > > I get the following, correct validation report... > > Validation Report > Conforms: False > Results (3): > Constraint Violation in MaxInclusiveConstraintComponent ( > http://www.w3.org/ns/shacl#MaxInclusiveConstraintComponent): > Severity: sh:Violation > Source Shape: hr:jobGradeShape > Focus Node: d:e4 > Value Node: Literal("8", datatype=xsd:integer) > Result Path: hr:jobGrade > Constraint Violation in DatatypeConstraintComponent ( > http://www.w3.org/ns/shacl#DatatypeConstraintComponent): > Severity: sh:Violation > Source Shape: hr:jobGradeShape > Focus Node: d:e3 > Value Node: Literal("3.14", datatype=xsd:decimal) > Result Path: hr:jobGrade > Constraint Violation in MinCountConstraintComponent ( > http://www.w3.org/ns/shacl#MinCountConstraintComponent): > Severity: sh:Violation > Source Shape: hr:jobGradeShape > Focus Node: d:e2 > Result Path: hr:jobGrade > > > However, if I split employees.ttl into three files containing the schema, > shape, and instance data and run: > > pyshacl -s shape.ttl -e schema.ttl -a -f human instance.ttl > > > the result is: > > Validation Report > Conforms: True > > > I assume I am calling pyshacl correctly. > > If there are other tools similar to pySHACL that allow me to split the > shape, schema, and instance files, I would be interested in learning about > them. Or, is it a best practice to always put everything into a single file? > > Regards, > James > > > > > ______________________________________________________________________________________ > > Dr Nicholas Car > Data Systems Architect > SURROUND Australia Pty Ltd > Address P.O. Box 86, Mawson, Canberra ACT 2607 > Phone +61 477 560 177 > <+61+414+99+55+43?utm_source=WiseStamp&utm_medium=email&utm_term=&utm_content=&utm_campaign=signature> > Email *nicholas.car@surroundaustralia.com > <nicholas.car@surroundaustralia.com>* > Website *https://surroundaustralia.com <https://surroundaustralia.com>* > > > *Enhancing Intelligence Within Organisations**delivering evidence that > connects decisions to outcomes* > > > > > >
Received on Wednesday, 1 April 2020 12:01:31 UTC