W3C home > Mailing lists > Public > w3c-rdfcore-wg@w3.org > February 2003

Re: Two questions about bagid

From: pat hayes <phayes@ai.uwf.edu>
Date: Wed, 12 Feb 2003 16:01:21 -0600
Message-Id: <p05111b0aba7068e0c5f0@[]>
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 
>Would the spec be damaged in practice if the id=  on property arcs 
>and bagid= atttributes were deprecated, or removed to a separate 

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.


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

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 14:54:04 UTC