- From: Michael Kifer <kifer@cs.sunysb.edu>
- Date: Sat, 27 Aug 2005 02:03:59 -0400
- To: Sandro Hawke <sandro@w3.org>
- Cc: public-rule-workshop-discuss@w3.org
> > > > > MMS is non-monotonic in that anything that cannot be proved > > > > true in MMS is concluded to be false. Adding any (non-provable) > > > > ground statement or rule to a Herbrand model, limits the Herbrand > > > > space and falsifies the conclusions that various statements are > > > > false obtained from the earlier model. > > > > > > So MMS necessarily brings with it the CWA? > > > > > > I guess Flora-2 and Triple do this in a clever way, so they have MMS > > > but their CWA is somehow scoped? > > > > Actually, there is nothing really clever in what Flora-2 or Triple do. :-) > > What they do is not a semantic trick, but a syntactic one. They allow the > > user to specify the scope of any inference (positive or negation) > > explicitly, but the semantics remains like in traditional systems. > > (Actually, Triple didn't have SNAF originally -- only positive scoped > > inference. I am not sure if some later versions of Triple have default > > negation, but this is not important here.) > > > > I already hinted at how this is done when discussing Dan's example. > > Basically, every rule-head (or fact) defined in a particular module > > is treate d as a predicate with a prefix that is specific to that > > module, and different modules have different prefixes. In this way, > > if you ask a negated query against any predicate in a given module, > > then NAF and SNAF give the same result because nothing outside of > > the module matters due to the uniqueness of the predicate names that > > are local to that module. > > Can one also define shared/global predicates, for which facts are > allowed to come from multiple sources? I imagine S/NAF would not be > available for them? > > -- sandro There can be predicates that feed on several other predicates coming from other modules. For instance, p(X) :- q(X)@foo. p(X) :- r(X)@bar. But every predicate belongs to some module. So, one can negate any predicate. --michael
Received on Saturday, 27 August 2005 16:41:36 UTC