-
Notifications
You must be signed in to change notification settings - Fork 0
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
Handle logic rules #1
Comments
Some details about the healthcare domain that we need to consider:
It will take some time to solve each detail for the automatic converter to handle it. Some parts of the domain are confusing:
|
|
I already started to model Unification of lists is currently not supported, every term is internally represented as a String. UPDATE: |
Now we lack the DNF, Questions:
(:method (achieveGoal ?g ?gi ?a ?gv)
genericEnticeToAchieve
(
(activeG ?g ?gi ?gv)
(goal ?g ?gi ?a)
(commitment ?c ?ci ?a ?d)
(assign ?cv ?gv)
(eqGSCP ?g ?gv ?c ?cv)
(goal ?g2 ?gi2 ?a)
(assign ?gv2 ?cv)
(eqGSCQ ?g2 ?gv2 ?c ?cv)
(call != ?g ?g2)
)
(
(entice ?g ?gi ?gv ?c ?ci ?cv ?a ?d)
(detach ?c ?ci ?cv)
(deliver ?g2 ?gi2 ?gv2 ?c ?ci ?cv ?a ?d)
(achieveGoal ?g2 ?gi2 ?gv2 ?a)
)
) |
I don't seem to use As for the ;==========================================================
;Equalities between conditions on commitments and on goals
;==========================================================
; True if the success condition of ?g matches the antecedent of ?c
;(?gv and ?cv will unify with the specific instance of ?g and ?c that match this)
(:- (eqGSCP ?g ?gv ?c ?cv) (and (imply (s ?g ?gi ?gv) (p ?c ?ci ?cv)) (imply (p ?c ?ci ?cv) (s ?g ?gi ?gv)) ) ) ; Basically a logical equivalence <->
;TODO make sure that the variables ?gv and ?cv get instantiated
; True of the success condition of ?g matches the consequent of ?c
(:- (eqGSCQ ?g ?gv ?c ?cv) (and (imply (s ?g ?gi ?gv) (q ?c ?ci ?cv)) (imply (q ?c ?ci ?cv) (s ?g ?gi ?gv)) ) ) ; Basically a logical equivalence <->
; True of the the antecedent of commitment ?c1 matches the consequent of commitment ?c2 (so they are reciprocal)
(:- (eqCPCQ ?c1 ?cv1 ?c2 ?cv2) (and (imply (p ?c1 ?ci1 ?cv1) (q ?c2 ?ci2 ?cv2)) (imply (q ?c2 ?ci2 ?cv2) (p ?c1 ?ci1 ?cv1)) ) ) ; Basically a logical equivalence <-> |
There are assign statements here |
I can live without them, those were just testing code. |
@Maumagnaguagno, I was trying to parse my domain again and find the replications, but one parse error you seem to report is a "redefinition" of the axioms. However, when you have axioms for the We need to support this "redefinition", much in the same way we can have different methods for the same task. While I agree that redefining actions may create ambiguity, there is no such problem for the axioms. |
Yes, I am working on it. |
|
As a feature request, I'd like for the planner to handle logic rules, as shown in the healthcare domain.
The text was updated successfully, but these errors were encountered: