W3C home > Mailing lists > Public > public-rule-workshop-discuss@w3.org > August 2005

Re: SNAF, NAF, and monotonicity [was: Comments on * DRAFT * Rules...]

From: Dan Connolly <connolly@w3.org>
Date: Thu, 25 Aug 2005 12:08:40 -0500
To: Michael Kifer <kifer@cs.sunysb.edu>
Cc: public-rule-workshop-discuss@w3.org
Message-Id: <1124989720.16011.21.camel@dirk>

On Thu, 2005-08-25 at 00:00 -0400, Michael Kifer wrote:
> Dan Connolly wrote:
> >
> > On Aug 24, 2005, at 8:11 PM, Michael Kifer wrote:
> > [...]
> > > No, you got me wrong. I do believe that nonmonotonicity is important,  
> > > but
> > > you already have it in the form of SNAF.
> > 
> > I'm having trouble understanding that. I see it shows up in several of  
> > your recent messages, e.g.
> > 
> > "SNAF is nonmonotonic."
> > http://lists.w3.org/Archives/Public/public-rule-workshop-discuss/ 
> > 2005Aug/0029.html
> > 
> > My understanding is that SNAF is monotonic.
> > 
> > Earlier[1] we discussed this example rule...
> > 
> > { :car.auto:specification log:notIncludes {:car auto:color []}}
> >      => {:car auto:color auto:black}.
> > 
> > That rule is monotonic; if the antecedent is true, the consequent  
> > remains
> > true regardless of how many other things are also true.
> Hi Dan,
> Welcome to the discussion! Yes, it is very important to get to the bottom
> of it so that everybody will start speaking the same language.
> No, the above rule is nonmonotonic. If you add a color specification to
> that car then :car.auto:specification will now include a color
> specification and log:notIncludes will become false. Therefore 
>     :car auto:color auto:black
> will no longer be derived.

I don't understand. I understand monotonicity to mean
that if you can derive F from a set of formulas A,
then you can also derive it from the set A union B for
any set of formulas B.

You seem to be suggesting there's some set of formulas B
that when added to my A causes F to no longer hold.

Exactly what is that set of forumlas B? 
Feel free to answer using Flora-2 syntax if that's more convenient.

You say "If you add a color specification ..." which suggests that
B is something like...

  car auto:color auto:red.

but that doesn't falsify the premise:

 :car.auto:specification log:notIncludes {:car auto:color []}

> > Monotonicity is an important scaling property of a language, so I'm  
> > very interested to understand this point.
> I am not clear what does monotonicity have to do with scalability.

Monotonicity supports partial understanding: as
long as a document D is written in a monotonic language, then
I'm OK to act on any information I can find/understand in D, even if
I can't understand all of it. If it's written in a non-monotonic
language, then I can't be sure of any of the information I find
there unless I know exactly what all of it means, along with all
of the information it includes by reference.

I suppose the connection to scalability is sketchy... it's mostly
a strong intution, connected to notions like anarchic scalability
from Fielding's thesis.

You might find this write-up of partial understanding and nearby
language design issues useful...

 Web Architecture: Extensible Languages 
 W3C Note 10 Feb 1998 

Dan Connolly, W3C http://www.w3.org/People/Connolly/
D3C2 887B 0F92 6005 C541  0875 0F91 96DE 6E52 C29E
Received on Thursday, 25 August 2005 17:08:50 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 19:48:33 UTC