- From: Sandro Hawke <sandro@w3.org>
- Date: Thu, 12 Sep 2002 16:02:19 -0400
- To: www-rdf-logic@w3.org, timbl@w3.org, connolly@w3.org
I wrote up a simple demonstration of stratification which can be used with an RDF negation vocabulary to keep things well-defined in the face of self-reference. The syntax is Otter's. -- sandro ================ % % RDF Negation defined with a class (lx_FalseSentence) and % three predicates (lx_subject, lx_predicate, lx_object). % % We turn self-reference paradoxes into contradictions by % declarating that these sentences are stratified; that is % sentences are always "higher" than their parts. % % Alas, I have not been able to prove these axioms consistent! % % The general problem I'm working on is discussed in % http://lists.w3.org/Archives/Public/www-rdf-logic/2002Sep/0013.html % % % Connect -rdf with its reification % all X Y Z ( (exists S ( rdf(S, rdf_type, lx_FalseSentence) & rdf(S, lx_subject, X) & rdf(S, lx_predicate, Y) & rdf(S, lx_object, Z) )) <-> -rdf(X, Y, Z) ). % % Stratify sentences (anything which describes % a looping sentence is false). % %% A sentence is higher than its parts all S P ( rdf(S, lx_subject, P) -> higher(S, P) ). all S P ( rdf(S, lx_predicate, P) -> higher(S, P) ). all S P ( rdf(S, lx_object, P) -> higher(S, P) ). %% "higher" is antisymmtric (like greater-than) all S1 S2 ( higher(S1, S2) -> -higher(S2, S1) ). %% "higher" is transitive (like greater-than) all S1 S2 S3 ( higher(S1, S2) & higher(S2, S3) -> higher(S1, S3) ). % % There might be a kind of empty or singleton universe where this would be % consistent. Am I interested in that kind? % rdf(c1,c1,c1). -rdf(c2,c2,c2). %% % %% % Example 1 %% % %% %% % indirectly assert -rdf(a,b,c) %% rdf(s, lx_subject, a). %% rdf(s, lx_predicate, b). %% rdf(s, lx_object, c). %% rdf(s, rdf_type, lx_FalseSentence). %% %% % directly assert(a,b,c) %% rdf(a,b,c). %% %% ---------------- PROOF ---------------- %% %% 1 [] -rdf(A,rdf_type,lx_FalseSentence)| -rdf(A,lx_subject,B)| %% -rdf(A,lx_predicate,C)| -rdf(A,lx_object,D)| -rdf(B,C,D). %% 16 [] rdf(s,lx_subject,a). %% 17 [] rdf(s,lx_predicate,b). %% 18 [] rdf(s,lx_object,c). %% 19 [] rdf(s,rdf_type,lx_FalseSentence). %% 20 [] rdf(a,b,c). %% 777 [hyper,20,1,19,16,17,18] $F. %% %% % %% % Example 2 %% % %% %% % describe a self-reference loop of size 9 %% rdf(a, lx_subject, b). %% rdf(b, lx_subject, c). %% rdf(c, lx_subject, d). %% rdf(d, lx_subject, e). %% rdf(e, lx_subject, f). %% rdf(f, lx_subject, g). %% rdf(g, lx_subject, h). %% rdf(h, lx_subject, i). %% rdf(i, lx_subject, a). %% %% %% ---------------- PROOF ---------------- %% %% 6 [] -rdf(S,lx_subject,P)|higher(S,P). %% 9 [] -higher(S1,S2)| -higher(S2,S1). %% 10 [] -higher(S1,S2)| -higher(S2,S3)|higher(S1,S3). %% 11 [] rdf(a,lx_subject,b). %% 12 [] rdf(b,lx_subject,c). %% 13 [] rdf(c,lx_subject,d). %% 14 [] rdf(d,lx_subject,e). %% 15 [] rdf(e,lx_subject,f). %% 16 [] rdf(f,lx_subject,g). %% 17 [] rdf(g,lx_subject,h). %% 18 [] rdf(h,lx_subject,i). %% 19 [] rdf(i,lx_subject,a). %% 20 [hyper,11,6] higher(a,b). %% 37 [hyper,12,6] higher(b,c). %% 55 [hyper,37,10,20] higher(a,c). %% 56 [hyper,13,6] higher(c,d). %% 74 [hyper,56,10,55] higher(a,d). %% 76 [hyper,14,6] higher(d,e). %% 95 [hyper,76,10,74] higher(a,e). %% 97 [hyper,15,6] higher(e,f). %% 116 [hyper,97,10,95] higher(a,f). %% 119 [hyper,16,6] higher(f,g). %% 139 [hyper,119,10,116] higher(a,g). %% 142 [hyper,17,6] higher(g,h). %% 162 [hyper,142,10,139] higher(a,h). %% 166 [hyper,18,6] higher(h,i). %% 187 [hyper,166,10,162] higher(a,i). %% 191 [hyper,19,6] higher(i,a). %% 226 [hyper,191,9,187] $F. %%
Received on Thursday, 12 September 2002 16:02:55 UTC