Comment 1: The idea of using "not" is that, even though the semantics are overloaded for PRD, it has the same "basic" meaning, and there is some interchange of terms for cross-dialect use, and it is the default term for vendor implementations of PR languages.
If the argument against "not" is that every dialect needs to be explicitly mutually exclusive from a "dialect semantics" perspective, doesn't that apply to (and condemn) RIF as a whole, as surely there are other more fundamental areas where we are "overloading" for dialect usage (e.g. consider PRD semantics for rules)?
Comment 2: If RIFWG votes on separate terms for every semantic distinction (for "not" anyway), then using my bible of classical logic (er, Wikipedia) I see one should use Â¬ for "logical not" and not for "PRD not" :)
forall ?x
if Â¬( ex:p(?x)) then ex:q(?x)
Paul Vincent
TIBCO Software
> -----Original Message-----
> From: public-rif-wg-request@w3.org [mailto:public-rif-wg-request@w3.org]
> On Behalf Of Sandro Hawke
> Sent: 28 April 2009 13:05
> To: Adrian Paschke
> Cc: 'Christian De Sainte Marie'; public-rif-wg@w3.org
> Subject: 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
>
> [1] http://www.swi-prolog.org/pldoc/doc_for?object=not%2f1
> [2] http://xsb.sourceforge.net/manual1/node111.html#8424
>
>
> > -Adrian
> >
> > -----Urspr=FCngliche Nachricht-----
> > Von: Sandro Hawke [mailto:sandro@w3.org]=20
> > Gesendet: Dienstag, 28. April 2009 13:34
> > An: Adrian Paschke
> > Cc: 'Christian De Sainte Marie'; public-rif-wg@w3.org
> > 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