- From: Joy lix <joylix4112@outlook.com>
- Date: Tue, 10 Aug 2021 15:19:16 +0000
- To: Holger Knublauch <holger@topquadrant.com>, "public-shacl@w3.org" <public-shacl@w3.org>
- Message-ID: <OSAPR01MB520183620D224F857FE72AF9DBF79@OSAPR01MB5201.jpnprd01.prod.outlook.com>
Dear Holger:
Thank you very much for your reply.
I have implemented the function I need according to the method you said.
The rule is:
if Student's Test score between [90-100] then get a "A" grade, likewise [75-90) --> "B" ; [60-75) -->"C"; [0-60)-->"D".
and I use:
shaclinfer.bat -datafile D:\data-test.ttl -shapesfile D:\shacl-test.ttl>D:\report.txt, the output in report.txt is:
:Test1 :grade "A" .
:Test2 :grade "A" .
:Test3 :grade "A" .
:Test4 :grade "C" .
:Test5 :grade "D" .
Please check if my code can be simplified (see attached file).
Now I want to add a rule that says if count("A") >=3 then Student.rating= "Outstanding", so the SHACL inference engine should output:
:Bob :rating "Outstanding"
But I don't know how to write the count statement in this shacl shape file.
This is an interesting example, I think it should be very helpful for people who learn shacl.
In addition, it would be nice to have a more detailed instance of sh:if in the Test Suite.
Thanks again for your help.
Kind regards,
Joylix
________________________________
发件人: Holger Knublauch <holger@topquadrant.com>
发送时间: 2021年8月10日 16:23
收件人: public-shacl@w3.org <public-shacl@w3.org>
主题: Re: about SHACL rules engine
On 2021-08-10 5:38 pm, Joy lix wrote:
Hi, there, I'm reading SHACL Advanced Features 1.1 specification, https://w3c.github.io/shacl/shacl-af/#rules-examples , In 8.1 it mentions:
For the data graph above, a SHACL rules engine will produce the following inferred triples:
ex:SquareRectangle rdf:type ex:Square .
I ran this example with shacl.org and https://github.com/TopQuadrant/shacl ,
but I only get a Validation Report with several results (confirm false),
would anyone please tell me which SHACL rules engine I can use to get this inferred triples?
See https://github.com/TopQuadrant/shacl/blob/master/src/test/java/org/topbraid/shacl/RuleExample.java
and the shaclinfer command line tool there https://github.com/TopQuadrant/shacl/tree/master/src/main/command
Also, does the new version of SHACL specification support RDF-star and SPARQL-star?
The SHACL spec predates RDF-star by several years, so it cannot yet support that. A future version may.
Meanwhile see https://github.com/w3c/rdf-star/issues/122
Holger
Thanks in advance.
Joylix
Attachments
- application/octet-stream attachment: shacl-test.ttl
- application/octet-stream attachment: data-test.ttl
Received on Tuesday, 10 August 2021 15:19:42 UTC