Informatievlaanderen / OSLO-EA-to-RDF

European Union Public License 1.2
8 stars 2 forks source link

Add shacl:node relation in shacl:property #27

Open brechtvdv opened 3 years ago

brechtvdv commented 3 years ago

When you have a shacl:property of a shacl:NodeShape, you can refer to the shacl:Nodeshape this property adheres to. Currently, the toolchain only mentions the shacl:class of the property and does not use shacl:node.

An example with shacl:node added:

<https://data.vlaanderen.be/shacl/metadata-voor-services-ap#DistributieShape> a shacl:NodeShape;
  shacl:closed false;
  shacl:targetClass dcat:Distribution ;
  shacl:property [
      shacl:description "Een dataservice die deze distributie aanbiedt.";
      shacl:name "wordtAangebodenDoor";
      shacl:path dcat:accessService;
      shacl:class dcat:DataService;
      shacl:node <https://data.vlaanderen.be/shacl/metadata-voor-services-ap#DataServiceShape>
] .
bertvannuffelen commented 3 years ago

@brechtvdv

what is the reason for this request? Documentation or some validation use case?

Because the generated shacl shapes will generate the same messages. At least I believe.

Probably this additional statement might lead to a performance issues. To be checked:

dataset1  dcat:distributie dist1
dist1 dcat:accessService serv1
serv1 dcat:servesDataset dataset1 

The last one should first be tested, because I do not know if SHACL has a termination analyser build in.