[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



Reply via email to