如何限制属性形状中的单位?

问题描述

我希望为我的本体中具有特定单元的某些属性制作一些 SHACL 形状。示例:

我的实例数据如下所示:

otlc:surgeprotector_1
  rdf:type otlc:Surgeprotector ;
  otlc:Nominal_voltage[
      rdf:type otlc:QuantityValue ;
      rdf:value "225"^^xsd:float ;
      otlc:hasUnit unit:KiloV ;
    ] ;
.

然后我有一些形状来验证这些数据:

otlc:Nominal_voltageShape
  rdf:type sh:PropertyShape ;
  sh:path otlc:Nominal_voltage ;
  sh:class otlc:QuantityValue ;
  **otlc:hasUnit unit:KiloV ;**
  sh:maxCount 1 ;
  sh:minCount 1 ;
.

otlc:SurgeprotectorShape
  rdf:type sh:NodeShape ;
  sh:property otlc:Nominal_voltageShape ;
  sh:targetClass otlc:Surgeprotector ;
.

我的问题:如何为本体中每个属性的实例数据中的谓词“otlc:hasUnit”指定单位?我想要的最终结果是为电涌保护器设置一个节点形状,为“nominal_voltage”属性设置一个属性形状,以将标称电压的值限制为单位:千伏。我希望有某种我没有听说过/意识到我可以在这里使用的 shacl 关键字,以添加到我的属性形状中(现在,我将我想象中的 shacl 存在于 ** 中)。 (例如,sh:pattern 可以用来用正则表达式指定值,但我想指定我的值的一段元数据的值,如果有意义的话...)

提前致谢! 罗宾

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)