W3C home > Mailing lists > Public > www-rdf-logic@w3.org > January 2005

Re: RDF as a syntax for OWL

From: Peter F. Patel-Schneider <pfps@research.bell-labs.com>
Date: Thu, 06 Jan 2005 21:14:16 -0500 (EST)
Message-Id: <20050106.211416.75690225.pfps@research.bell-labs.com>
To: jos.deroo@agfa.com
Cc: www-rdf-logic@w3.org

OK, so it works on one example.  How about trying it on:

_:x rdf:first :tilde .
_:x rdf:rest _:x1 .
_:x1 rdf:first y .
_:x1 rdf:rest rdf:nil .
_:y rdf:first :some .
_:y rdf:rest _:y1 .
_:y1 rdf:first ex:P .
_:y1 rdf:rest _:y2 .
_:y2 rdf:first _:za .
_:y2 rdf:first _:zb .
_:y2 rdf:rest rdf:nil .
_:za rdf:first :some .
_:za rdf:rest _:za1 .
_:za1 rdf:rest _:za2 .
_:za2 rdf:first ex:C .
ex:C rdf:type :BaseClass .
_:zb rdf:rest _:zb1 .
_:zb1 rdf:first ex:Q .
_:zb1 rdf:rest _:zb2 .
_:zb2 rdf:rest rdf:nil .

I claim that this is perfectly good syntax, that you should be able to
easily handle.

Then you can try the examples I gave to Geoff.

peter


From: jos.deroo@agfa.com
Subject: Re: RDF as a syntax for OWL (was Re: same-syntax extensions to RDF)
Date: Fri, 7 Jan 2005 02:35:58 +0100

> 
> Couldn't resist and had few nightly hours left :)
> *If* you want nnf to be your problem for a while
> then one can write in N3 such triples as
> 
> 
> {?C a :BaseClass} => {?C a :GivenClass}.
> {?C a :BaseClass} => {?C :isRewrittenAs ?C}.
> {(:tilde (:tilde ?C)) a :GivenClass. ?C a :GivenClass. ?C :isRewrittenAs 
> ?CC} => {(:tilde (:tilde ?C)) :isRewrittenAs ?CC}.
> {(:tilde (:and ?C ?D)) a :GivenClass. ?C a :GivenClass. ?D a :GivenClass. 
> ?C :isRewrittenAs ?CC. ?D :isRewrittenAs ?DD} => {(:tilde (:and ?C ?D)) 
> :isRewrittenAs (:or (:tilde ?CC) (:tilde ?DD))}.
> {(:tilde (:or ?C ?D)) a :GivenClass. ?C a :GivenClass. ?D a :GivenClass. 
> ?C :isRewrittenAs ?CC. ?D :isRewrittenAs ?DD} => {(:tilde (:or ?C ?D)) 
> :isRewrittenAs (:and (:tilde ?CC) (:tilde ?DD))}.
> {(tilde (:some ?P ?C)) a :Class. ?C a :GivenClass. ?C :isRewrittenAs ?CC} 
> => {(tilde (:some (?P ?C))) :isRewrittenAs (:all (?P :tilde (?CC)))}.
> {(tilde (:all ?P ?C)) a :Class. ?C a :GivenClass. ?C :isRewrittenAs ?CC} 
> => {(tilde (:all (?P ?C))) :isRewrittenAs (:some (?P :tilde (?CC)))}.
> 
> and then given
> 
> :A a :BaseClass.
> :B a :BaseClass.
> (:tilde (:and :A :B)) a :GivenClass.
> (:tilde (:tilde (:tilde (:and :A :B)))) a :GivenClass.
> 
> one can ask
> 
> ?C :isRewrittenAs ?D.
> 
> and get
> 
> # Generated with http://www.agfa.com/w3c/euler/ version R4104 on 7 Jan 
> 2005 01:25:51 GMT
> @prefix log: <http://www.w3.org/2000/10/swap/log#>.
> 
> (<file:/temp/bijan.n3>.log:semantics).log:conjunction =>
> {
> @prefix q: <http://www.w3.org/2004/ql#>.
> @prefix e: <http://www.agfa.com/w3c/euler/log-rules#>.
> @prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
> @prefix : <http://www.agfa.com/w3c/temp/bijan#>.
> @prefix log: <http://www.w3.org/2000/10/swap/log#>.
> @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
> @prefix math: <http://www.w3.org/2000/10/swap/math#>.
> @prefix owl: <http://www.w3.org/2002/07/owl#>.
> @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
> 
> {{:A a :BaseClass} e:evidence <file:/temp/bijan.n3#_48>} => {
> {:A :isRewrittenAs :A} e:evidence <file:/temp/bijan.n3#_41>}. 
> 
> {{:B a :BaseClass} e:evidence <file:/temp/bijan.n3#_49>} => {
> {:B :isRewrittenAs :B} e:evidence <file:/temp/bijan.n3#_41>}. 
> 
> {{(:tilde (:tilde (:tilde (:and :A :B)))) a :GivenClass} e:evidence 
> <file:/temp/bijan.n3#_51>. 
>  {(:tilde (:and :A :B)) a :GivenClass} e:evidence 
> <file:/temp/bijan.n3#_50>. 
>  {{(:tilde (:and :A :B)) a :GivenClass} e:evidence 
> <file:/temp/bijan.n3#_50>. 
>   {{:A a :BaseClass} e:evidence <file:/temp/bijan.n3#_48>} => {
>   {:A a :GivenClass} e:evidence <file:/temp/bijan.n3#_40>}. 
>   {{:B a :BaseClass} e:evidence <file:/temp/bijan.n3#_49>} => {
>   {:B a :GivenClass} e:evidence <file:/temp/bijan.n3#_40>}. 
>   {{:A a :BaseClass} e:evidence <file:/temp/bijan.n3#_48>} => {
>   {:A :isRewrittenAs :A} e:evidence <file:/temp/bijan.n3#_41>}. 
>   {{:B a :BaseClass} e:evidence <file:/temp/bijan.n3#_49>} => {
>   {:B :isRewrittenAs :B} e:evidence <file:/temp/bijan.n3#_41>}} => {
>  {(:tilde (:and :A :B)) :isRewrittenAs (:or (:tilde :A) (:tilde :B))} 
> e:evidence <file:/temp/bijan.n3#_43>}} => {
> {(:tilde (:tilde (:tilde (:and :A :B)))) :isRewrittenAs (:or (:tilde :A) 
> (:tilde :B))} e:evidence <file:/temp/bijan.n3#_42>}. 
> 
> {{(:tilde (:and :A :B)) a :GivenClass} e:evidence 
> <file:/temp/bijan.n3#_50>. 
>  {{:A a :BaseClass} e:evidence <file:/temp/bijan.n3#_48>} => {
>  {:A a :GivenClass} e:evidence <file:/temp/bijan.n3#_40>}. 
>  {{:B a :BaseClass} e:evidence <file:/temp/bijan.n3#_49>} => {
>  {:B a :GivenClass} e:evidence <file:/temp/bijan.n3#_40>}. 
>  {{:A a :BaseClass} e:evidence <file:/temp/bijan.n3#_48>} => {
>  {:A :isRewrittenAs :A} e:evidence <file:/temp/bijan.n3#_41>}. 
>  {{:B a :BaseClass} e:evidence <file:/temp/bijan.n3#_49>} => {
>  {:B :isRewrittenAs :B} e:evidence <file:/temp/bijan.n3#_41>}} => {
> {(:tilde (:and :A :B)) :isRewrittenAs (:or (:tilde :A) (:tilde :B))} 
> e:evidence <file:/temp/bijan.n3#_43>}. 
> 
> # Proof found for file:/temp/bijanC.n3 in 145 steps (14485 steps/sec) 
> using 1 engine (11 triples)
> }.
> 
> so the e.g. 3rd solution says ~~~(A&B) is rewritten as ~A v ~B
> and all those () are actually rdf list triples
> 
> 
> -- 
> Jos De Roo, AGFA http://www.agfa.com/w3c/jdroo/
> 
Received on Friday, 7 January 2005 02:14:29 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 2 March 2016 11:10:43 UTC