我尝试使用 SHACL 形状验证我的本体实例。但是,我找不到如何说一个给定的属性实例只有当它有一个 Class1 的实例作为主体并且有一个 Class2 的实例作为对象时才有效。
换句话说,我想指定这个属性的域(即Class1)和范围(即Class2)。
在下面的示例中,我们精确地确定范围是(客户和人员),但未指定域。
ex:InvoiceShape
a sh:NodeShape ;
sh:property [
sh:path ex:customer ;
sh:class ex:Customer ;
sh:class ex:Person ;
] .
我知道可以为形状指定目标类 (TC),但这会限制属性 ex:customer 的范围,当域为 TC 时,并非在所有情况下。
是否可以编写一个固定给定属性的域和范围的形状?
谢谢!