-
Notifications
You must be signed in to change notification settings - Fork 42
Description
Hello everyone,
Following today's discussion with Dörthe about N3, I think it would be good to reach a final decision and then move forward on how to handle the creation of new RDF resources and the infinite loops this may trigger. My perspective is the following:
- Rules should be allowed to create new RDF resources (Skolem terms) and literals in rule heads.
- This can indeed lead to infinite loops. While some cases could be mitigated by introducing functions with parameters (which create an individual the first time they are evaluated and then always return the same individual thereafter), the problem of infinite loops cannot be eliminated entirely.
Given this, I believe we should allow rules to create RDF resources and literals without imposing specific restrictions in the syntax or the algorithm. The responsibility for avoiding infinite loops should lie with the knowledge engineer. Anyone defining a set of SHACL rules should also be able to demonstrate that repeated rule execution terminates (for example, by showing that cycles of RDF resources do not repeatedly trigger the same rules). This is analogous to programming in Java or Python, where developers must ensure that loops in their code terminate.
What do you think?
Cheers
Livio