- From: <jos.deroo@agfa.com>
- Date: Thu, 13 Apr 2006 14:52:28 +0200
- To: paula.patranjan@ifi.lmu.de
- Cc: bry@ifi.lmu.de, RIF WG <public-rif-wg@w3.org>
Let me briefly raise a thought w.r.t. http://www.w3.org/2005/rules/wg/wiki/Standard_RIF_must_support_normative_rules This works fine as can be seen from following prolog example in which the '=>' is coming from http://eulersharp.sourceforge.net/2006/02swap/euler.pl (*) %======================================================================= prefix(rpo,'http://eulersharp.sourceforge.net/2003/03swap/rpo-rules#'). prefix(p,'http://eulersharp.sourceforge.net/2006/02swap/med#'). %======================================================================= :- dynamic(p:isPrescribed/2). rpo:mu(p:ann,p:gastroEntritis,0.8). rpo:mu(p:ann,p:gastricUlcer,0.006). rpo:mu(p:ann,p:postSurgery,0). p:prescribedFor(p:aspirin,p:gastroEntritis). p:excludedFor(p:aspirin,p:gastricUlcer). p:excludedFor(p:aspirin,p:postSurgery). p:excludedFor(_,D), rpo:mu(_,D,N), N > 0.01 => bottom. p:prescribedFor(Med,D), rpo:mu(Who,D,N), N > 0.7 => p:isPrescribed(Who,Med). %======================================================================= and it follows that p:isPrescribed(p:ann, p:aspirin). When we change the case to rpo:mu(p:ann,p:gastricUlcer,0.6). then the prescription doesn't follow anymore, which is fine. BUT when we don't have the fact that rpo:mu(p:ann,p:gastricUlcer,0.6). we still get p:isPrescribed(p:ann, p:aspirin). which is not so fine! To cope with that, no integrity constraint is used in http://eulersharp.sourceforge.net/2006/02swap/med.pl and I believe it is safe in the presence of missing data. -- Jos De Roo, AGFA http://www.agfa.com/w3c/jdroo/ (*) this 3 lines of prolog came a long way and is basically saying that given X=>Y and X do not(Y) i.e. euler path detection to not step in own steps; is like SATCHMO reasoner; thanks Francois!
Received on Thursday, 13 April 2006 12:52:53 UTC