- From: pat hayes <phayes@ai.uwf.edu>
- Date: Wed, 12 Feb 2003 16:01:21 -0600
- To: Tim Berners-Lee <timbl@w3.org>
- Cc: w3c-rdfcore-wg@w3.org
>On Tuesday, Feb 11, 2003, at 16:17 US/Pacific, pat hayes wrote: > >>>On Tue, 11 Feb 2003, Tim Berners-Lee wrote: >>> >>>> Another question is about the semantics. >>>> I understand that an id :i on the statement { :superman :can :fly} >>>> should generate the statements >>>> >>>> :i a rdf:Statement; rdf:subject :superman; rdf:predicate :can; >>>> rdf:object :fly. >>>> :superman :can :fly. >>>> >>>> and I might want to use this to generate attribution: >>>> >>>> :lois :thinks :i. >>>> >>>> This would suggest that an owl reasoner (say) that knows that :superman >>>> and >>>> :clarkekent are daml:equivalent should be able to infer that >>>> >>>> :i a rdf:Statement; rdf:subject : clarkekent; rdf:predicate :can; >>>> rdf:object :fly. >>>> : clarkekent :can :fly. >>>> :lois :thinks :i. >>>> >>>> This seems counterintuitive, as one would expect it allow one to >>>> conclude >>>> that the modified statement is due to the original source. >>>> Some form of quoting around the subject, predicate >>>> and object would seem necessary. >> >>Right. This arises from the way that RDF handles reification. The >>obvious, and simplest, way to understand the above would be one >>where the reification :i refers to the triple itself, ie to its >>syntactic form, in effect quoting it. Then the equality >>substitution would not be valid, since even though :clarkekent = >>:superman, the *triples* expressing the propositions that Clarke >>can fly, and that Superman can fly, are distinct piece of syntax. >>But this way of understanding reification was rejected by the WG in >>favor of one where the reification is understood to refer to the >>things that the original triple referred to, so that for example >>the subject of the reified triple is not the subject NODE of the >>triple, but the thing that node refers to, which is that same >>flying guy, no matter what name you use to refer to him by. This >>might be called a de-re rather than a de-dicto interpretation of >>reification. This allows equality substitution, but it does not >>allow a reification to be coherently used as a de-dicto object of a >>psychological modality like 'thinks' or 'believes'. >> >>We could have gone either way on this. But we can't go both ways at once. > >What is not clear is the use of going with the de-re interpretation. Im not sure I can clearly recollect what led us to that choice, but I know the matter was discussed at some length (though not using this terminology). As I recall, Dan C. said that it should be interpreted this way at least in part because there were use cases which required it, but I can no longer bring the details to mind. One kind of use involves de-reification, ie suppose one has a reified description of a triple, and uses it to build (a copy of) the actual triple, or comes across the actual triple that was used to build the reification. Then with the present semantics, the subject/object of the reification and the subject/object of the reconstructed (or original) triple are the same, so one can for example transfer anything you know about one to the other, or you can take what someone :thinks (reified), de-reify it and then run an RDF reasoner on it and figure out some consequences of what they :think. If we went with a de dicto reading they wouldn't be the same and in fact wouldn't even have very much to do with one another in any way that could be said in RDF, and it wouldn't be correct to transfer any :thinking to any consequences (since for example, they might not be as smart as we are at figuring out consequences). > Whatever i identifies, I don't know what the semantics are of a >statement which involves i. There don't seem to be any use cases >either. > >Would the spec be damaged in practice if the id= on property arcs >and bagid= atttributes were deprecated, or removed to a separate >module? I'm probably the wrong person to ask about that particular issue, but I'd guess not. At least in the sense that I don't think this would have any other knock-on effects elsewhere in the spec. >I'd note that cwm, while it does not implement these bag things, it >does implement quoting (with parsetype=quote), which is needs, for >representation of a set of statements from a specific source and so >on. So that implementation experience suggests that the bagid >system, while adding complexity, does not meet those needs which >apparently originally lead to the bagid feature's introduction. Its not quotation, for sure. So if that was the original motivation, I tend to agree. From what I recall of the old discussions, I think that the central point being made was that although this - quotation - was the original design use which was intended, that the actual use cases had used it differently; and that it was more important to support actual use than intent of design. But like I say, the details are murky in my memory, sorry; this was from around the time of the Sebastopol F2F meeting when I was a WG newbie. Pat PS. John McCarthy once, when modal logics were all the rage for KR work in AI., threatened to write a paper with the title 'Ipso facto, ceteris paribus, de re is de dicto'. The point being that in practice, one doesn't actually get into much trouble by ignoring these issues of not using the right name for Superman, etc., because most of the time, in the actual world, people *do* know what one another are talking about and *do* use names in ways that are generally understood. The Superman cases are rare; so if you are willing to take a slight risk of occasionally getting your inferences in a twist, it's not clear that it's worth the bother of making this distinction (and to get it strictly right IS a hell of a bother). The fact that one has to use Latin to even talk about it is kind of a give-away, when you think about it. If it was a widespread problem there would be an ISO standard term for it by now. For example, here's one way to hack around a Superman problem. Use the basic de-re interpretation (as we do now) but say explicitly that some name is being used in a way that the knower wouldnt recognize, eg something like: :lois :doesNotKnowReferentOf ":Superman" . which is supposed to be a flag that this name isn't one that Lois, poor sap, would recognize as being used to refer to what it does refer to. Now you can use RDF inference freely on the text of what Lois thinks, even though the names might not be ones that Lois would recognize (you don't have to keep asking yourself: Oh, but does Lois know that??) ; and you can also keep track of the ways that it fails to be de dicto in this particular case and even why, since you can pinpont the place where Lois' mental model has a fracture in it. This corresponds to a kind of omniscient-narrator convention as used by poor novelists, but it works for cases like this. -- --------------------------------------------------------------------- IHMC (850)434 8903 or (650)494 3973 home 40 South Alcaniz St. (850)202 4416 office Pensacola (850)202 4440 fax FL 32501 (850)291 0667 cell phayes@ai.uwf.edu http://www.coginst.uwf.edu/~phayes s.pam@ai.uwf.edu for spam
Received on Wednesday, 12 February 2003 17:01:39 UTC