Re: RIF Negation

> Right, probably it makes sense to have explicit constructs for
> Explicit/Strong/Classical negation                Neg
> Default/Negation-as-failure/Weak/Inflationary     Not

If those are the only two we need, I think I'd call them 

 Explicit/Strong/Classical negation                not
 Default/Negation-as-failure/Weak/Inflationary     fail

I could also see calling classical negation isFalse, but I'm not really
comfortable calling NAF "not", since um, it's not.  :-) (In my
experience, most prolog educational material advises against calling it
"not" because it ends up misleading too many users.  For instance, the
SWI-Prolog manual [1] for says:

    not(+Goal) True if Goal cannot be proven. Retained for compatibility
        only. New code should use \+/1. 

and, while XSB also has "not", it also has "\+" and "fail_if", and I
read the document for "not" to suggest it is mildly deprecated [2]
 -- Sandro


> -Adrian
> -----Urspr=FCngliche Nachricht-----
> Von: Sandro Hawke []=20
> Gesendet: Dienstag, 28. April 2009 13:34
> An: Adrian Paschke
> Cc: 'Christian De Sainte Marie';
> Betreff: Re: AW: [Admin] Agenda for RIF telecon 28 April *ADDENDUM*=20
> > We discussed it in the last PRD telecon. The semantics of a generic
> > "not" in case of PRD is clear since it used in a production rule set,
> > i.e. it is inflationary not.
> But is it also classical negation and NAF?  In particular, if I have
> this ruleset:
>    forall ?x
>       if not ex:p(?x) then ex:q(?x)
> this proposal defines that as a PRD ruleset.  To my eye, it could just
> as easily be FOL or LPD.  As long as the semantics in all cases would be
> the same, they could all use the same "not", but otherwise, it seems
> like they need to use different operators.
> > Alternative we could introduce many different constructs for
> > negations, but this might be counterproductive to the interchange
> > purpose of RIF. I would propose that the intended semantics of a rule
> > set such as stratified, well-founded, stable models, is denoted by a
> > special label (e.g. an attribute or additional construct) for the rule
> > set and not by different constructs for negations. Otherwise a simple
> > (business) rule set cannot be interchanged between a WFS rule engine
> > and a Stable rule engine without a translation.
> How would that work?  If a ruleset was labeled
> "use-well-founded-semantics" and I was a "stable-semantics" engine, what
> would I do with it?
>      -- Sandro

Received on Tuesday, 28 April 2009 12:05:32 UTC