- From: Dan Connolly <connolly@w3.org>
- Date: Fri, 01 Jun 2001 14:15:40 -0500
- To: Jonathan Borden <jborden@mediaone.net>, Drew McDermott <drew.mcdermott@yale.edu>, www-rdf-logic@w3.org, las@olin.edu, timbl@w3.org
Dan Connolly wrote: [...] > and rdf_Statement = KIF triple (i.e. list of length 3) > and rdf_predicate = KIF first > and rdf_subject = KIF second > and rdf_object = KIF third [...] > and using wtr once more, > (not (color sky blue)) > QED. So, Jos confirms (in his message of Sun, 27 May 2001 00:58:54 +0100) that's the way he uses RDF reification; Pat admits (Thu, 31 May 2001 11:05:44 -0500) it might make sense. In sum, rdf_predicate can work like this: (rdf_predicate '(color sky blue) 'color) Meanwhile, that doesn't match the RDF spec nor TimBL's cwm code; they have what I regard as a use/mention bug; they seem to say rdf_predicate works like this: (rdf_predicate '(color sky blue) color) TimBL keeps suggesting we can fix this by defining RDF reification with one level of indirection, ala... (<=> (rdf_type ?x rdf_Statement) (triple ?x)) ; (i.e. list of length 3, as before) (<=> (rdf_predicate ?x ?t) (= ?t (denotation (first ?x)))) (<=> (rdf_subject ?x ?t) (= ?t (denotation (second ?x)))) (<=> (rdf_object ?x ?t) (= ?t (denotation (third ?x)))) That makes a certain amount of sense, but it implies the unique names assumption; at least if you take as an axiom, as I do, that reification is unique; i.e. (forall (?st1 ?st2 ?p ?s ?o) (=> (and (rdf_type ?st1 rdf_Statement) (rdf_predicate ?st1 ?p) (rdf_subject ?st1 ?s) (rdf_object ?st1 ?o) (rdf_type ?st2 rdf_Statement) (rdf_predicate ?st2 ?p) (rdf_subject ?st2 ?s) (rdf_object ?st2 ?o) ) (= ?st1 ?st2)) ) consider terms Car and Automobile where (= Car Automobile), and let's look at the two statements ?ex1 and ?ex2: (= ?ex1 '(rdf_type c1 Car)) (= ?ex2 '(rdf_type c1 Automobile)) their subjects, predicates, and objects are identical, so we can conclude, by the uniqueness of reification above, that (= ?ex1 ?ex2). But then it must follow that (= (third ?ex1) (third ?ex2)) i.e. (= 'Car 'Automobile) which is false. So we can't use different (logical constant) names for the same thing. So... I'm still looking for a rational explanation of rdf predicate/subject/object in their present form. There's a possible-worlds angle on it that I'm noodling on... -- Dan Connolly, W3C http://www.w3.org/People/Connolly/
Received on Friday, 1 June 2001 15:15:53 UTC