Shacl API规则引擎是否像TopBraid Composer一样支持sh:order来执行规则。
我在TBC中测试了规则排序,它会不断迭代直到达到固定点。没有更多规则可以执行。我怀疑它被认为是一次通过,但是规则具有优先级,并且其结果可用于在同一次通过中执行的下一个规则。
无论如何,与实现方式无关,我想知道它是shacl规则引擎的功能还是TopBraid作曲家特定的实现。
以下线程提示了我正在寻找的答案,但不足。
当前的SHACL API不会立即进行迭代。RuleEngine对所有规则进行一次迭代,这些规则可以按照以下内容访问彼此的结果:
https://w3c.github.io/shacl/shacl-af/#rules-execution
要进行迭代循环,只需调用RuleEngine.executeAll,直到一轮未创建任何新的推断为止。需要注意避免无限循环,因为某些规则理论上可能会产生空白节点,随机值等。TopBraidComposer自动执行此循环。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句