An Example From DL-safe for query to BadChild(Cain)

*** making rules DL safe ***
the Rule component (in POSL)
BadChild(?X) :- Q_Grandchild(?X), Q_parent(?X, ?Y), Q_parent(?Z, ?Y), hates(?X, ?Z), O(?X), O(?Y), O(?Z).
hates(Cain, Abel). O(Cain). O(Abel). O(Adam).
the DL component (in RACER)
(in-knowledge-base dlrule-t dlrule-a)
(in-tbox dlrule-t)
(signature :atomic-concepts (Person Grandchild) :roles ((parent) (father :parent parent)) :individuals (Cain Adam Abel))
(implies Person (some father Person)) (implies (some father (some father Person)) Grandchild)
(in-abox dlrule-a)
(instance Cain Person)
(related Cain Adam father) (related Abel Adam father)
|