You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
which I think I naturally want to read as "if b, forbid a", but that's the same as #forbid a, b. I guess that's the reading (#forbid a) :- b, whereas #forbid (a :- b) would maybe have more of a "not (not b or a)" which is "b and not a", but THAT can be currently encoded more clearly as #demand b. #forbid a.
However, I do conversely think there's value for
#demand a :- b
which expresses "if b holds in the database, then a better hold as well, or else something has gone wrong. This can't easily be expressed with existing primitives (though maybe it can be indirectly encoded), and it's even more powerful to be able to write e.g.
#demand parent _ is X :- node X.
which is saying "if X is a node, then X must be someone's parent" - that's gonna be a weird constraint to encode directly. These #demand statements are much more like the kind of constraints LogiQL supported.
The text was updated successfully, but these errors were encountered:
I don't think there's any value for
which I think I naturally want to read as "if b, forbid a", but that's the same as #forbid a, b. I guess that's the reading (#forbid a) :- b, whereas #forbid (a :- b) would maybe have more of a "not (not b or a)" which is "b and not a", but THAT can be currently encoded more clearly as #demand b. #forbid a.
However, I do conversely think there's value for
which expresses "if b holds in the database, then a better hold as well, or else something has gone wrong. This can't easily be expressed with existing primitives (though maybe it can be indirectly encoded), and it's even more powerful to be able to write e.g.
which is saying "if X is a node, then X must be someone's parent" - that's gonna be a weird constraint to encode directly. These #demand statements are much more like the kind of constraints LogiQL supported.
The text was updated successfully, but these errors were encountered: