- From: Michael Kifer <kifer@cs.sunysb.edu>
- Date: Fri, 26 Aug 2005 21:32:37 -0400
- To: Dan Connolly <connolly@w3.org>
- Cc: doug.foxvog@deri.org, public-rule-workshop-discuss@w3.org
Dan,
You are confusing yourself further and further. See below.
> On Fri, 2005-08-26 at 12:57 -0400, Michael Kifer wrote:
> [...]
> > > If @ is merely a namespace identifier, it wouldn't be a reference to a
> > > set, merely a method of abbreviation. It seems unlikely to me that N3
> > > fixes in stone any namespace as soon as an "@" sign is used to indicate
> > > it. Again, with the caveat that i don't know N3, it seems that Michael
> > > is correct, and adding the formula B does not "change what @allAboutCars
> > > denotes".
> >
> > No, I think Dan and I mean the same thing,
>
> Well, up to a point. But evidently F-Logic and N3 work differently
> in this regard.
>
> > but uses the words "set" and
> > "bunch" informally. I think Dan was confused as to what "inference" means
> > in nonmonotonic logics (judging by his remark that I was using two different
> > interpretations for the set of formulas A).
>
> I was confused about how F-Logic works. I'm still studying the @
> construct in F-Logic, but it doesn't seem to be analagous
> to log:includes/log:notIncludes after all.
>
> Leaving N3 aside, perhaps I can show what I mean by
> monotonic SNAF using KIF, i.e. ordinary first-order
> logic plus quoting.
>
> Consider a relation on (quoted) formulas:
>
> (simply-entails F1 F2)
>
> where F1 and F2 are (quoted) KIF expressions that are
> analagous to RDF graphs/formulas, i.e. they
> look like
>
> (exists (b1 b2 b3 ...)
> (and (holds p1 s1 o1)
> (holds p2 s1 o2)
> ...
> ) )
>
> or in the case of no existentials, just
> (and (holds p1 s1 o1)
> (holds p2 s1 o2)
> ...
> )
>
> or in the case of just one conjunct, just
> (holds p1 s1 o1)
>
> and simply-entails is defined as per section 7.1 Simple Entailment Rules
> of RDF Semantics
> http://www.w3.org/TR/2004/REC-rdf-mt-20040210/#dt-simple-entailment
>
> That is the formula F2 can be obtained from F1 by some combination
> of erasure...
>
> (simply-entails '(and (holds price book1 10) (holds title book1 "abc"))
> '(holds price book1 10) )
>
> and existential introduction:
>
> (simply-entails '(holds location fred texas)
> '(exists (?somewhere) (holds location fred ?somewhere))
>
> and variable renaming, and re-ordering the conjuncts in an and.
>
> I'm glossing over the fact that "location" isn't quite a URI
> for clarity. Strictly speaking, it would be something
> like http\:\/\/example\/vocab\#location .
>
>
>
> This simply-entails relation is clearly an ordinary computable relation,
> just like string matching or testing whether one number is a factor
> of another. (It's called "graph match" in any number of RDF
> implementations).
>
> Then consider simply-entails-c , the complement of simply-entails.
> It's also computable: compute simply-entails and negate it.
Here is confusion #1. Are you talking about a "relation", i.e., what exists
in interpretations, or a "predicate"?
What is simply-entails-c: a relation or a predicate? If it is a relation
then it has no business being in a formula, which you wrote down below.
If it is a predicate, then you would need to axiomatize it so that it would
have the behavior you want.
Where is your axiomatization?
> Also, let (lookup SYMBOL) be some function that takes a (quoted)
> symbol and returns some formula expression.
Confusion #2: Is lookup a "function" as you stated or a "function symbol"?
If it is a function, it has no business being in the formula that
you wrote down below.
If it is a function symbol, you have to provide axiomatization so that it
would behave the way you want.
Where is your axiomatization?
> Now I can write my rule about car color defaults as:
>
> (=> (simply-entails-c (lookup 'car-specification)
> '(exists (?v) (holds auto-color car ?v)) )
> (holds auto-color car black) )
>
>
> The (lookup 'car-specification) term denotes some expression
> in each interpretation; either that expression does simply-entail
> '(exists (?v) (holds auto-color car ?v))
> or it doesn't. To "add another statement" to the formula
> expression we get when we look up 'car-specification is
> to consider a different interpretation of the lookup function.
Not sure which interpretations you are talking about, but I assume you are
talking about "first-order interpretations."
You are quite right that in some interpretations
(simply-entails-c (lookup 'car-specification)
'(exists (?v) (holds auto-color car ?v))
would be true and in some false. Let's move on.
> Let A be
> (simply-entails-c (lookup 'car-specification)
> '(exists (?v) (holds auto-color car ?v))
> and F be
> (holds auto-color car black)
>
> Then clearly we have
> Forall B A |= F implies A union B |= F
Absolutely! What you didn't notice is that actually A |/=F, so the above is
vacuously true (an implication with a false premise). Obviously, this holds
in nonmon logics as well.
Let's try to fix this.
You may have forgotten the rule, which you wrote earlier: (=> A F).
Fair enough. Let AA = A union that forgotten rule, (=> A F).
Then clearly AA |= F.
Now, if you look carefully, what you have is
A union (=> A F) |= F
A modus ponens. No quarrel from me.
But this is also true in nonmonotonic logics. That is,
Forall A,B,F: A union (=> A F) |= F implies A union (=> A F) union B |= F
This is just a direct consequence of the definition of an interpretation.
(I believe, this is also true for proof-theoretic nonmon logics -- need
to check Gabbay's postulates -- but this is not important for the current
discussion.)
> right?
To the extent that you haven't shown anything:
1. You can't formalize what simply-entails-c really is.
2. You can't explain what lookup is.
3. You have exhibited a bunch of formulas that have a property that
holds true both in monotonic and nonmonotonic logics.
What does it prove? Nothing.
--michael
Received on Saturday, 27 August 2005 01:33:35 UTC