- From: Bijan Parsia <bparsia@isr.umd.edu>
- Date: Thu, 6 Jan 2005 21:40:56 +0900
- To: "Peter F. Patel-Schneider" <pfps@research.bell-labs.com>
- Cc: geoff@sover.net, www-rdf-logic@w3.org
(I hope to comment on Geoff's excellent effort directly, in detail later. But I should acknowledge...) On Jan 6, 2005, at 9:34 PM, Peter F. Patel-Schneider wrote: > > From: "Geoff Chappell" <geoff@sover.net> > Subject: RE: RDF as a syntax for OWL (was Re: same-syntax extensions > to RDF) > Date: Wed, 5 Jan 2005 22:07:52 -0500 > >>> -----Original Message----- >>> From: www-rdf-logic-request@w3.org >>> [mailto:www-rdf-logic-request@w3.org] >>> On Behalf Of Bijan Parsia >>> Sent: Wednesday, January 05, 2005 10:28 AM >>> To: www-rdf-logic@w3.org >>> Subject: Re: RDF as a syntax for OWL (was Re: same-syntax extensions >>> to [snip] >>> I'll even give the rules: >>> I'll use ~ for not (complementOf) >>> & for conjunction (intersectionOf) >>> v for disjunction (unionOf) >>> some for existential quantification (someValuesFrom) >>> all for universal quantification (allValuesFrom) >>> I'll use fairly normal infixy syntax. I'll happily convert to >>> something else. >>> >>> For (compound) class expressions C and D >>> nnf(~~C)) => nnf(C) >>> nnf(~(C & D)) => nnf(~C) v nnf(~D) >>> nnf(~(C v D)) => nnf(~C) & nnf(~D) >>> nnf(~some(P, C)) => all(P, nnf(C)) >>> nnf(~all(P, C)) => some(P, nnf(C)) >>> >>> Base case: for atomic class name C >>> nnf(C) => C >>> nnf(~C) => ~C >>> >>> That's almost the prolog program :) > > Almost, but not nearly. Oops, yeah. > The above is a specification of the > transformations that need be done to transform to NNF. It doesn't > (except > for the base case) give the identity transforms. [snip] Good point. Where C and D are class expressions nnf(C&D) => nnf(C)&nnf(D) nnf(CvD) => nnf(C) v nnf(D) nnf(some(P, C)) => some(P, nnf(C)) nnf(all(P, C)) => all(P, nnf(C)) Did I miss any? Cheers, Bijan Parsia.
Received on Thursday, 6 January 2005 12:41:02 UTC