Re: kb Scoped Negation As Failure

Dan Connolly wrote:
> On May 28, 2006, at 10:05 AM, jos.deroo@agfa.com wrote:
>
>>
>> Today I was experimenting with kb Scoped Negation As Failure
>> via http://eulersharp.sourceforge.net/2003/03swap/log-rules#no
>
> Interesting... if I understand correctly, we have...
>
>   { ?FORMULAS e:no ?CONCLUSION }
>    <=> { ?FORMULAS.log:conclusion log:notSupports ?CONCLUSION }.
>
> where log:notSupports is the oppositve of log:supports; it's not 
> something
> we've implemented so far, I think.

I was not aware of log:notSupports but now see tests
in http://www.w3.org/2000/10/swap/test/supports/
and I will try it that way :-)

The e:no implementation we have is a single prolog line
'e:no'(U,lf(Y)):- (X==>Y), X, !, fail; \+Y, feed(U).
and see below for that feed predicate...

> It makes sense except for this part of the proof:
>
>> [ e:imply {{:Joe :candidateFor :betaBlocker.
>> (<http://www.agfa.com/w3c/euler/medic.n3>
>> <http://www.agfa.com/w3c/euler/medicF.n3>) e:no {:Joe :notPrescribed
>> :betaBlocker}} => {:Joe :isPrescribed :betaBlocker}}]
>
> I see the corresponding rule in http://www.agfa.com/w3c/euler/medic.n3 
> ...
>
> {?W :candidateFor ?M. ?M :excludedFor ?D. ?U e:no {(?W ?D) rpo:mu ?V}} 
> => {?W :notPrescribed ?M}.
>
> but I don't see how ?U gets bound to 
> (<http://www.agfa.com/w3c/euler/medic.n3>
> <http://www.agfa.com/w3c/euler/medicF.n3>). Does the e:no built-in have
> access to the command-line args?
>>

It looks for feed(U) and will find one in the engine kb
as during aggregation of n3 sources (done via euler1) 
we assert a fact such as
feed(['<http://www.agfa.com/w3c/euler/medic.n3>','<http://www.agfa.com/w3c/euler/medicF.n3>']).

Thanks for your prompt reply, esp. while it is Sunday :-)

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

Received on Sunday, 28 May 2006 16:31:56 UTC