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

Re: log:notIncludes (conclusion?)

From: Michael Kifer <kifer@cs.sunysb.edu>
Date: Sat, 27 Aug 2005 15:16:27 -0400
To: Sandro Hawke <sandro@w3.org>
Cc: public-rule-workshop-discuss@w3.org
Message-Id: <20050827191628.06433CB5D3@kiferserv.kiferhome.com>

> > I think the key is that semantics(+URL,-Formula) predicate and the fact
> > that you are leaving out of the picture the actual formulas that are
> > sitting at URL. The formula that you are getting using semantics/2 is (as I
> > understand) a list of terms that reify logical statements.
> > 
> > So, you have
> > 
> > formulas sitting at URL  (*)
> > the built-in semantics(URL,Formula)
> > and then you have something like
> >     Formula notIncludes somelist
> > 
> > So, adding a new formula to the set (*) can change the list Formula
> > and invalidate a previously true statement of the form
> > Formula notIncludes somelist.
> Yes.  I think we're understanding each other very well, now.


> > This is nonmonotonic.
> I'm not sure I know the right words for this, but that stuff sitting
> at that URL is considered immutable within one inference run.  cwm
> makes no attempt to read it more than once; any change in it would go
> along with an overall change in the state of the world.  A
> long-running N3-based agent would have to start everything over each
> delta-t (or cleverly act like it did).  Each time something observable
> about the universe changes, we're talking about a new set of models
> and interpretations.

Yes, but this is no different from the way Prolog (without assert/retract)
works. You read the KB only once and then make NAF-based inferences. The KB
doesn't change.

Nonmonotonicity doesn't mean that you are going to change the KB during the
run.  It means that you make your inferences on a static KB with one set of
models and observe the results. Then, some time later (after you are done
with the inference) the KB changes. You reload your KB (or whatever the
mechanism is for becoming aware of the change; it is more efficient in
Prolog, of course) and recompute your models (again, assuming that the KB
doesn't change during the inference). Then you observe the results again.
Nonmonotonicity means that it is possible that when you observe the result
the second time you may not find some inferred formulas that you saw when
you observed the result the first time.

> Going back to the definition of monotonicity you and DanC were using
> [1], the stuff sitting at that URL isn't part of A or B.  Nothing is
> entailed by that stuff at the URL.  To be slightly silly, adding a
> formula to it is no more relevant to the notion of monotonicity than
> is adding characters to the end of some constant symbol in an FOL
> formula.

If nothing is inferred from formulas at URL then you are not dealing with
semantics or logic. You are just manipulating lists and checking for their

But I don't believe that nothing is entailed from those formulas.  What
about your pharmacy example? You have two sets of rules sitting at two
different sites that describe two different medicines. (Or whatever it
was.) You pull those rules together and make inference that tells you that
there is a possible side effect. So, these formulas at A and B are used as
logical formulas and you are making inference from them.

> Now, am I sounding confused again or like this is a sensible design
> (even if not the one you might chose)....?     

I think we are making progress. The problem is that the design of N3 (its
use of pseudo-logical predicates like semantics/2 and conclusion/2) makes
it hard to account for everything that is going on from the logical point
of view.

Received on Saturday, 27 August 2005 19:16:35 UTC

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