-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature request: Support asserting unique name assumption for KB and support equality/inequality in rule bodies in that case #7
Comments
More work for inequality - didn't remember that there's no negation in rule bodies, so DLGP language would need to be extended to support != Ok, not little work. Feel free to close. |
Hi Alan, We already have a method to preprocess equality in ConjunctiveQuery (in EqualityUtils.java), so it's quite easy to rewrite rule to erase equality in body. About inequality, we don't have negation in rule bodies (nor in Query in DLGP language), but we have ConjunctiveQueryWithNegatedParts.java in Graal API … But, what about ?
as rules… |
Well, I've stared at your example for a while, but I don't understand it. Could say a few more words? |
Hi Alan, My previous example are not correct to explain the problem because we can deduce that So let me take another simpler example with only inequality :
So, in a forward chaining (chase), we first obtain :
then we can't apply However, we know that in any logical model of the KB, either This shows that rule application is not complete with respect to classical logical entailment as soon as we have inequality atoms that may be mapped to existential variables in the facts (which is our case). I hope this enlightens you. |
Thank you very much for the response. I'm being dense and still am having problems understanding. I'll list where I'm confused. Sorry if I've missing some very obvious thing. I hope you understand the below isn't meant to be critical in any way, just a setting out of what I'm not understanding.
|
Hi sipi, Thanks |
Relating, sort of, to #5, I had another thought:
If the KB is able to be told the unique name assumption holds in a particular case I think it could be very little work to support equality/inequality testing in rule body. I'm thinking this because you wouldn't have to add new structures to manage equality in general as equality/inequality is completely determined and easily testable in that case.
It would still be worth signaling an exception if equality is asserted in the head, since there more issues there (I imagine).
At least in my case, this would be quite useful gain in expressivity. I think it is the common case that unique names are assumed, so the increased expressivity could benefit other as well.
I guess I could manage this myself via using pseudo equality/inequality predicates and adding the extra assertions to any kb I have, and I may do that, but thought it was worth a mention.
The text was updated successfully, but these errors were encountered: