W3C home > Mailing lists > Public > public-semweb-lifesci@w3.org > March 2013

Re: owl:sameAs - Is it used in a right way?

From: David Booth <david@dbooth.org>
Date: Thu, 28 Mar 2013 22:42:14 -0400
Message-ID: <5154FF86.6010706@dbooth.org>
To: Oliver Ruebenacker <curoli@gmail.com>
CC: public-semweb-lifesci@w3.org
On 03/28/2013 01:17 PM, Oliver Ruebenacker wrote:
>       Hello David,
>
> On Thu, Mar 28, 2013 at 8:51 AM, David Booth <david@dbooth.org> wrote:
>> On 03/27/2013 11:02 AM, Oliver Ruebenacker wrote:
>>>
>>>        Hello David,
>>>
>>>     So if I understand your view correctly, then it could be expressed
>>> in a language close to yours as:
>>>
>>>     "Some people believe that if a URI occurs twice within a graph or
>>> statement, it refers to the same thing. But this is a myth! RDF never
>>> guarantees that two occurrences of the same URI mean the same thing."
>>
>>
>> No, that's not correct.  If you are talking about what the URI means
>> **within that graph**, then:
>>
>>    - For any interpretation, every occurrence of that URI in that graph
>> refers to the same thing; BUT . . .
>>
>>    - Different interpretations can be applied to that graph, such that the
>> URI means one thing in one interpretation, but means something different in
>> another interpretation.
>
>    Everything you say relies on one assumption: that interpretations
> apply to graphs. You still have not explained what makes you believe
> this is always true.

Look at the semantic conditions in the RDF Semantics spec and you can 
plainly see that interpretations are applied to graphs, triples, URIs, 
typed literals and plain literals.  This does not require any sort of 
deep analysis.  Just look at the rules in section 1.4.  For example, 
here is the rule for a ground graph:
http://www.w3.org/TR/rdf-mt/#gddenot

   if E is a ground RDF graph then I(E) = false if I(E') = false
   for some triple E' in E, otherwise I(E) =true.

> In fact, I thought you just conceded in your
> previous message that it is not always true.

I don't know why you thought that.

>
>    Let's say I have a graph G1 containing two statements s1 and s2.
> Both s1 and s2 contain the same uri u1. Do you think the RDF specs
> allow me to use interpretation I1 for s1 and interpretation I2 for s2?

If you are asking whether the spec tells you how to determine the truth 
condition of I1(s1) and the truth condition of I2(s2), then yes. 
Whether s1 and s2 happen to be contained in G1 is irrelevant.  If s1 and 
s2 are ground triples, the relevant rule in the section 1.4 is:

   if E is a ground triple s p o. then I(E) = true if
   s, p and o are in V, I(p) is in IP and <I(s),I(o)> is in IEXT(I(p))
   otherwise I(E)= false.

If you are asking whether the spec tells you how to determine the truth 
value of I(G1), for some interpretation I based on I1 and I2, where
I1 != I2, then the answer is no.  The spec does not define any way to 
combine interpretations.

> Could it then be true that u1 in s1 refers to a different thing than
> u1 in s2?

Yes, of course, if I1 != I2.

> Even though both occurrences are in G1?

It doesn't matter where they occur.  The rules have no 
context-sensitivity.  If you give the rule an interpretation I1 in which 
u1 maps to "fish", and a ground triple s1, then the rule gives you the 
truth value of I1(s1) with u1 mapping to "fish".  If you give the rule 
an interpretation I2 in which u1 maps to "bird", and a ground triple s2, 
then the rule gives you the truth value of I2(s2) with u1 mapping to 
"bird".  There is nothing magic about it, and no dependency whatsoever 
on s1 or s2 occurring or not occurring in any graph.

On the other hand, as mentioned above, the spec does *not* tell you how 
to determine the truth value of a graph containing s1 and s2 using both 
I1 and I2 (assuming I1 != I2).  It only tells you how to determine the 
truth value of a graph containing s1 and s2 using a *single* interpretation.

>
>    I'm not interested in whether this is a useful approach, or whether
> you would do it this way. I just want to know whether you think the
> specs allow this.

Yes, of course the specs allow this.  Those semantic rules can be 
applied to *any* interpretation and *any* graph or triple.

>
>> It all comes down to the fact that, in essence, the RDF Semantics spec
>> defines a function -- call it RS -- of *two* arguments: one interpretation
>> and one graph
>
>    I'm still waiting to hear why one argument needs to be a graph.
>
>> (or a piece of a graph, but that's an unimportant detail).
>
>    No, I don't think that is an unimportant detail. I think that is a
> crucial test whether such a view is coherent at all.

I called it an unimportant detail because the unit in which most people 
work is the graph -- not the individual triple, URI or literal.  For 
example, they may wish to check the graph for consistency, i.e., check 
to see if it can have any satisfying interpretation.  But as I pointed 
out above, the semantic conditions also specify how the truth value of a 
single statement can be determined, given an interpretation.

David
Received on Friday, 29 March 2013 02:42:41 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 14:53:02 UTC