One way to implement this is: :BoundCollectionForm a sh:NodeShape ; sh:node :ItemForm ; # "inherits" all constraints from ItemForm # adds additional constraints particular to the BoundCollection sh:targetClass arm:BoundCollection ; sh:property :BoundCollectionForm_bf_hasPart_arm_Item ; . :BoundCollectionForm_bf_hasPart_arm_Item sh:class bf:Item ; etc. The ItemForm would omit this property shape. For now in VitroLib will use workaround by hard-coding the domain. See https://github.com/ld4l-labs/vitrolib/issues/211.
One way to implement this is:
:BoundCollectionForm
a sh:NodeShape ;
sh:node :ItemForm ; # "inherits" all constraints from ItemForm
# adds additional constraints particular to the BoundCollection
sh:targetClass arm:BoundCollection ;
sh:property :BoundCollectionForm_bf_hasPart_arm_Item ;
.
:BoundCollectionForm_bf_hasPart_arm_Item
sh:class bf:Item ;
etc.
The ItemForm would omit this property shape.
For now in VitroLib will use workaround by hard-coding the domain. See ld4l-labs/vitrolib#211.