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

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

From: Michael Kifer <kifer@cs.sunysb.edu>
Date: Fri, 26 Aug 2005 16:38:49 -0400
To: jos.deroo@agfa.com
Cc: Dan Connolly <connolly@w3.org>, public-rule-workshop-discuss@w3.org
Message-Id: <20050826203850.AF07919E75F@kiferdesk.lmc.cs.sunysb.edu>


jos.deroo@agfa.com wrote:
> Michael Kifer wrote:
> > jos.deroo@agfa.com wrote:
> >>
> >>>>> 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'm aware of following sentence from
> >>>> http://www.w3.org/2000/10/swap/doc/Reach
> >>>> 
> >>>> [[
> >>>> Also, if we start to just loosely talk about defaults in
> >>>> the sense of "if you don't already know a color", then
> >>>> different agents will end up drawing different conclusions
> >>>> from the same data, which is not a good foundation for a
> >>>> scalable web.
> >>>> ]]
> >>>> 
> >>>> and believe that
> >>>> 
> >>>> <uri-of-document> log:semantics ?F.
> >>>> ?F log:notIncludes {set-of-triples}.
> >>>> 
> >>>> is a robust approach and is monotonic
> >>>> (you cannot add things to ?F)
> >>>
> >>> Jos,
> >>>
> >>> Monotonicity or nonmonotonicity is a property of a logical
> >>> language, not of a particular set of formulas. 
> >> 
> >> Okay
> >> 
> >>> Furthermore, in your example, ?F is just a variable whose
> >>> quantification you neglected to specify.
> >> 
> >> Well, I should have said that the triples
> >> 
> >>   <uri-of-document> log:semantics ?F.
> >>   ?F log:notIncludes {set-of-triples}.
> >> 
> >> were in the premise of a N3 rule and then ?F is a
> >> universally quantified variable with the scope of
> >> that rule.
> >
> >
> > OK. You wrote them as if they were facts, so I was confused.
> >
> >
> >>> A proper thing to do here would be to write something like:
> >>>
> >>> <uri-of-document> log:semantics t.
> >>> t log:notIncludes {set-of-triples}.
> >>>
> >>> where t is a term that represents (reifies) the set of
> >>> formulas that are encoded in uri-of-document. Now, t is
> >>> a term, not a formula, so your statement about "adding
> >>> things to ?F" is irrelevant as far as monotonicity
> >>> of the language is concerned.
> >> 
> >> Well, this is indeed where we seem to have a disconnect..
> >> I meant that for the set triples represented by ?F (and
> >> which are real triples in my machine) there is no way to
> >> add triples to that set; you can of course add triples to
> >> the document at <uri-of-document> on the web but then,
> >> formula A in your (**) has a different interpretation.
> >
> > No, this is where you get confused. See my earlier message
> > adding to Dieter's tutorial on nonmonotonicity:
> > 
> http://lists.w3.org/Archives/Public/public-rule-workshop-discuss/2005Aug/0082.html
> >
> > The set of formulas A stays the same. The formulas that would
> > be added to the document at <uri-of-document> form the set B.
> > So, initially, "the document at <uri-of-document>" consists
> > of the set A, and you get one set of inferences from there.
> > Then "the document at <uri-of-document>" is changed to
> > consist of the set of formulas A union B, and now you get
> > a different set of inferences.
> >
> > I went again through Dan's example in the above message and
> > explained once more why SNAF is nonmonotonic. Your query
> >
> > ?- <uri-of-document> log:semantics ?F
> >    and
> >    ?F log:notIncludes {set-of-triples}.
> >
> > is handled exactly the same (actually simpler) than Dan's car example.
> 
> 
> Michael,
> 
> I didn't speak about a query :)
> Above triples are the premis of an N3 rule

Query, premise -- basically the same thing. Every query can be made into a
rule premise in semantically preserving way.

> 
> so A is for instance
> 
> { <uri-of-document> log:semantics ?F.
>   ?F log:notIncludes { sky color blue } }
>   => { thisTest a Pass }.
> 
> 
> and <uri-of-document> has for instance following triple
> 
> fred hairColor red.
> 
> 
> then A |= thisTest a Pass.
> 
> 
> Whatever B triples we add to A doesn't change the entailment.
> 
> 
> Now when we add the triple
> 
> sky color blue.
> 
> to <uri-of-document> so that it now contains 2 triples
> 
> fred hairColor red.
> sky color blue.
> 
> 
> then we are not talking about A union B but about
> A with a different interpretation/model.
> 

No, Jos, you are wrong. Interpretations are separate from the statements of
the language. They are means of defining semantics. You write statements in
your language and interpretations are nowhere to be seen.

In your example:

The set A is

1.   { <uri-of-document> log:semantics ?F.
      ?F log:notIncludes { sky color blue } }
	  => { thisTest a Pass }.

2.   fred hairColor red.

The set B is 

3.   sky color blue.


Now we have that A |= thisTest a Pass
but  A union B |/= thisTest a Pass


I again urge you to try to understand Dieter's mini-tutorial and the
additions that Gerd and I sent later.


	cheers
	  --michael  
Received on Friday, 26 August 2005 20:38:57 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 8 January 2008 14:16:23 GMT