- From: Felix Sasaki <felix@sasakiatcf.com>
- Date: Thu, 11 Jul 2019 16:04:42 +0200
- To: public-shacl@w3.org
- Message-ID: <CAL58czpZxxp1kXJmVnp195t3MNWwRWwyKieyXA1NsSJq8um_5w@mail.gmail.com>
Hi all, I am working on a SKOS model which I am relating to a different model. Example. SKOS MODEL: ex:topic1 a skos:Concept. ex:topic1-1 a skos:Concept; skos:broader ex:topic1. ex:topic1-2 a skos:Concept; skos:broader ex:topic1. RELATED MODEL: (a) ex:dataitem1 a exvoc:dataitem; exvoc:role "role1"; exvoc:relatedTo ex:topic1-1. (b) ex:dataitem1 a exvoc:dataitem; exvoc:role "role1"; exvoc:relatedTo ex:topic1. The data items in the related model have a relation to the SKOS model as shown above. I now want to express in the Skos model the following constraint: an instance of exvoc:dataitem that has the role "role1" MUST have a statement with exvoc:relatedTo pointing to a child concept of ex:topic 1. That is, statement (a) would be correct, statement (b) would not be correct. I could formulate that constraint in the related model itself; but in my workflow, the governance over the two models would require to formulate that constraint within the skos model. A non SHACL formulation of the constraint could look like this: ex:topic1 a skos:Concept; excvoc:scope [exvoc: targetRole "role1"; exvoc:occurence "oneOrMore";] This would mean: the constraint should be applied to dataitems with role "role1", and at least one sub concept of ex:topic1 needs to be available for such data items. The above is a proprietary approach. Whjat would be an example to model such a constraint in SHACL? Regards, Felix
Received on Thursday, 11 July 2019 14:05:20 UTC