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: Fri, 29 Mar 2013 12:15:19 -0400
Message-ID: <5155BE17.1080804@dbooth.org>
To: Alan Ruttenberg <alanruttenberg@gmail.com>
CC: Oliver Ruebenacker <curoli@gmail.com>, "public-semweb-lifesci@w3.org" <public-semweb-lifesci@w3.org>
[Warning to readers: Mostly tedious clarifications below.  Not much 
interesting.]

On 03/29/2013 12:52 AM, Alan Ruttenberg wrote:
>                 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.
>
>
> Right. Nothing about combining, nothing about switching.
>
>         Could it then be true that u1 in s1 refers to a different thing than
>         u1 in s2?
>
>
>     Yes, of course, if I1 != I2.
>
> He meant at the same time. You answer here as if the question was: Are
> those two things the same color (and they are), and you say, no they
> might not be, if you wear yellow glasses while looking at the one and
> blue glasses while looking at the other. Of course if you wear the same
> glasses looking at both you see the same thing.
>
> Similarly, l1 has u1 meaning the same thing in both cases, and l2 has u1
> meaning the same thing in both cases. So the answer to his question is "no".

If I'm understanding your analogy, it is:

	  two things : u1 in s1 and u1 in s2
                color : resource to which u1 maps
              glasses : an interpretation
       yellow glasses : I1
         blue glasses : I2

It sounds like when you say "at the same time", you are further 
stipulating that I1 == I2.  But Oliver did not stipulate that. Certainly 
if I1 == I2, then the answer to Oliver's question "Could it then be true 
that u1 in s1 refers to a different thing than u1 in s2?" would be no. 
But if I1 != I2 then the answer would be yes, as I stated.

>
>         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.
>
>
> That makes it sound like the interpretation could vary across graphs,
> which it can't.

I don't know what you mean by "vary across graphs".  Certainly *the* 
interpretation can never vary across graphs, because the word "the" is 
singular, and an interpretation cannot change.  But if you are talking 
about applying different interpretations I1 and I2 to different graphs 
G1 and G2, then of course different interpretations can be applied to 
different graphs.  You can apply the RDF Semantics spec to as many 
<interpretation, graph> pairs as you want, and it will determine the 
truth value of each one.

>
>     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.
>
>
> Right, because that's what "interpretation" means. It similarly does not
> tell you anything about how to determine the truth value of different
> graphs with different interpretations.

That's absurd.  You seem to have your frame of reference stuck *inside* 
the RDF Semantics spec.  You need to look at the spec as a whole, from 
the outside.  Let me illustrate.

If I define a function

   f: int x int -> int

   For any i, j in int,
      f(i,j) = i+j       ##HERE##

 From inside the body of that "For any" statement -- i.e., at the line 
marked "##HERE##" -- it would appear as though there is only one i and 
one j. Indeed, that line only talks about one i and one j.  But does 
this mean that f can only be applied to *one* <int, int> pair?  Of 
course not. That definition of f *as a whole** tells you how to 
determine the sums of an infinite number of <int, int> pairs.  I can 
sensibly talk about both f(2,3) and f(12,7) in the same sentence, and I 
can sensibly make statements like:

   There exists an i1, i2, j in int, such that f(i1,j) != f(i2, j).

The same is true of the RDF Semantics spec.  The spec **as a whole** 
tells you how to determine the truth values of an infinite number of 
<interpretation, graph> pairs.

>
>             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.
>
>
> This is misleading. You can't pick pairs of (interpretation, graph).

Of course you can!  The spec applies to *any* <interpretation, graph> 
pair!  Again, you need to shift your frame of reference outside the RDF 
Semantics spec, to look at the spec as a whole.

WordPress was written in PHP.  If you tried to view the whole world 
through PHP eyes, a lot of things would seem impossible.  But if you 
look at WordPress as a whole, from the outside, you can talk about what 
it does and how it can be used, and the world makes a lot more sense.

> You can pick an interpretation first, and then apply that interpretation to
> all graphs.

Yes, you can pick an interpretation first, but you don't have to. 
Another good way to use the spec is to pick a graph first, and then 
determine the set of satisfying interpretations for that graph.  The 
function SI, based on function RS, does this.  Both RS and SI are defined at
http://lists.w3.org/Archives/Public/public-semweb-lifesci/2013Mar/0227.html

A third way to use the spec would be to pick an interpretation and then 
determine the set of *graphs* that could be true under this 
interpretation.  We could define a function SG for this purpose:

   SG: Interpretations -> PowerSet(Graphs)

   For any i in Interpretations, SG(i) = { g in Graphs | RS(i, g) }.

>
> If you change the interpretation, you change it in all graphs. So in
> changing the interpretation, u1 no longer refers to whatever it did
> before, and the answer to his question is "no".

Again, you seem to have your frame of reference stuck inside the spec. 
You need to look at it as a whole, from the outside.

>
>             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
>
>
> What is this function RS?  Please call it by it's actual name so we can
> look it up.

RS was defined here:
http://lists.w3.org/Archives/Public/public-semweb-lifesci/2013Mar/0227.html

David


> If you are suggesting RS is the interpretation function,
> then no, it always takes single argument. Sometimes that argument is a
> uri, sometimes a triple, sometimes a graph.
>
>              I'm still waiting to hear why one argument needs to be a graph.
>
>
> It doesn't, assuming "it" is the interpretation function. We'll see
> what's the case once we know what "RS" is.
>
> -Alan
>
>
Received on Friday, 29 March 2013 16:15:52 UTC

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