- From: Sandro Hawke <sandro@w3.org>
- Date: Thu, 16 Dec 2004 12:30:51 -0500
- To: "Peter F. Patel-Schneider" <pfps@research.bell-labs.com>
- Cc: www-rdf-logic@w3.org
> From: Sandro Hawke <sandro@w3.org> > Subject: Re: same-syntax extensions to RDF > Date: Thu, 16 Dec 2004 09:29:35 -0500 > > > > > > In your formalization does > > > a r b . > > > c r d . > > > entail the encoding of the conjunction of a r b . and c r d . ? > > > > It looks like you are asking whether 2 RDF triples entail the ~20 > > triples which describe and assert those same triples as an > > lx:Conjunction. A simpler case would be whether 1 RDF triple entails > > the ~8 triples which describe and assert that triple via LX. > > > > Specifically, for example, does > > <a> <r> <b>. > > entail (for some _:x) > > _:x rdf:type lx:Triple. > > _:x lx:subjectTerm _:xs. > > _:x lx:predicateTerm _:xp. > > _:x lx:objectTerm _:xo. > > _:xs lx:denotation <a>. > > _:xp lx:denotation <r>. > > _:xo lx:denotation <b>. > > _:x rdf:type lx:Usable. > > > > The first 7 triples are entailed by the empty KB, > > Hmm. I think that I'm missing something then. How is > > _:x rdf:type lx:Triple. > > entailed by the empty KB? You have claimed this, but given not even a hint > of how it is going to happen. There are pitfalls here, and you need to > give some outline of how these comprehension principles work. Is it important that I express these in the same form as you used in S&AS 5.2 (subsection "Comprehension conditions (principles)")? For instance, where you say If there exists ====================== x1, ... xn in IOC Then there exists I1, ..., IN in IL with ======================================== <I1,x1> in EXT1(S1(rdf:first)), .... I'd be much happier saying rdf(rdf_nil, rdf_type, rdf_List). % all lists of all things exist all X L1 ( rdf(L1, rdf_type, rdf_List) -> exists L2 ( rdf(L2, rdf_type, rdf_List) & rdf(L2, rdf_first, X) & rdf(L2, rdf_rest, L1) ) ). Is that okay? For me, it has two huge advantages: I can run automated test cases against it, and I have an off-the-shelf reference implementation available. (I'm using Otter here, but Vampire or any other FOL Theorem Prover should basically work.) In this form, the comprehension principle needed above seems rather straightforward: all A R B ( rdf(R, rdf_type, rdf_Property) -> ( exists SubjTerm PredTerm ObjTerm Triple ( rdf(Triple, rdf_type, lx_Triple) & rdf(Triple, lx_subjTerm, SubjTerm) & rdf(Triple, lx_predTerm, PredTerm) & rdf(Triple, lx_objTerm, ObjTerm) & rdf(SubjTerm, lx_denotation, A) & rdf(PredTerm, lx_denotation, R) & rdf(ObjTerm, lx_denotation, B) )) ). > > but the 8th, by > > design, is not. Usability is not implied by truth. > > > Do you see a problem with this bit? Do you want the 8th triple to be > > entailed as well for some reason? > > Yes indeed. The first seven triples may be entailed by the empty KB, if > you get the comprehension principles right, but somehow you need to get the > connection between. > > <a> <r> <b> . > > and the truth of the encoding of the sentence R(a,b). Otherwise how can > you say that you have captured FOL? By design, Usable only goes one way. So there's a connection, but not an if-and-only-if connection. I'm not quite sure what it would mean to "capture" FOL, so I'll be more specific. I want people to able to publish FOL assertions in RDF on the web so others can aggregate them (using RDF harvester/aggregators) and draw the normal FOL conclusions. For instance e:yeshayah fam:brother e:sandro. from one source, e:yeshayah fam:daughter e:eliana. from another source, and suitable definitions expressed at the fam: namespace in LX triples should allow one to conclude e:eliana fam:uncle e:sandro. > > Here I think you're asking whether > > for some _:SA_left, _:SA_lefts, _:SA_leftp, _:SA_lefto > > _:SA_left lx:subjectTerm _:SA_lefts. > > _:SA_left lx:predicateTerm _:SA_leftp. > > _:SA_left lx:objectTerm _:SA_lefto. > > _:SA_lefts lx:denotation <a>. > > _:SA_leftp lx:denotation <r>. > > _:SA_lefto lx:denotation <b>. > > _:SA_left rdf:type lx:Usable. > > and > > for some _:SA_right, _:SA_rights, _:SA_rightp, _:SA_righto > > _:SA_right lx:subjectTerm _:SA_rights. > > _:SA_right lx:predicateTerm _:SA_rightp. > > _:SA_right lx:objectTerm _:SA_righto. > > _:SA_rights lx:denotation <c>. > > _:SA_rightp lx:denotation <r>. > > _:SA_righto lx:denotation <d>. > > _:SA_right rdf:type lx:Usable. > > together entail > > for some _:x, _:left, _:lefts, _:leftp, _:lefto > > _:right , _:rights, _:rightp, _:righto > > _:x rdf:type lx:Conjunction. ... > > _:x rdf:type lx:Usable. > > > > which I believe I can show. > > Well, yes, I would like to see how this works. I didn't see anything that > gives me reason to believe that it does follow, however. In particular I > don't see anything in the rationale for Usable that could lead to the > possiblity of inferring that Usable was the type of any resource. You're right, I was overly hasty in thinking that entailment held. We don't need it for my use cases, and to provide for it gets problematic -- sandro
Received on Thursday, 16 December 2004 17:27:53 UTC