use of constraints

assume one calls
  {set-of-triples} => {}.
a constraint.
 
I found constraints quite useful
to write rules to detect inconsistencies
e.g.
  {?Y owl:disjointWith ?Z. ?X a ?Y, ?Z} => {}.

and to use single triple constraints as rule premise
e.g.
  {?X :cp :hipInjury. {?X :fracture :femur} => {}}
   => {?X :contusion :hip}.
so that given
  :Ann :cp :hipInjury.
  {:Ann :fracture :femur} => {}.
one could derive
  :Ann :contusion :hip.
and if it would somehow be the case that
  :Ann :fracture :femur.
then one can clearly detect that inconsistency.

cwm doesn't seem to be happy with that..


ah-ha! cwm seems to be happy when given
  @forAll :X.
  {:X :cp :hipInjury. {} <= {:X :fracture :femur}}
   => {:X :contusion :hip}.

  :Ann :cp :hipInjury.
  {} <= {:Ann :fracture :femur}.

to answer
    :Ann     :contusion :hip .

for query
  []
  q:select {?P :contusion ?G};
  q:where  {?P :contusion ?G}.

and I'm wondering about that..


-- 
Jos De Roo, AGFA http://www.agfa.com/w3c/jdroo/

Received on Thursday, 18 August 2005 20:49:59 UTC