Hi Pat,

Thanks for taking the time to discuss this with me, and sorry for the slow response. Lots of other things going on right now.

My goal in this discussion is to reach common understanding to allow the wording in the RDF specs to be made agreeable to all. The current draft has certain passages that I find problematic. I'm trying first to convey an understanding of *why* I see these portions as problematic. I'd like to to avoid as much back-end-forth as possible, but some back-and-forth may be unavoidable in order isolate where our common understanding breaks down.

On 09/15/2013 06:45 AM, Pat Hayes wrote:

On Sep 13, 2013, at 9:07 AM, David Booth wrote:

Hi Pat,

I think the big disconnect between us is that I am looking at the
semantics from the perspective of multiple interpretations, whereas
you seem to keep assuming a single-interpretation viewpoint.

This idea you have of two different perspectives is a fallacy. There
is only one correct way to understand model theory.

Oh, come on. That's an absurd thing to say about *any* scientific discipline. If that were true, we'd never make any scientific progress! But that's completely beside the point.

I'm not trying to make any grand new discoveries here. I'm just trying to point out something fairly simple: that as currently written, certain statements in the RDF documents do not align with reality. They don't need a lot to be corrected -- very little really -- but first we need to understand the problem. I am not in any way trying to reinvent or redesign the semantics, nor am I trying to make any new observations about model theory. You're the expert on that. I'm just applying what I read in the spec.

Apparently, you have not fully grasped the basic idea.

I don't think that is the problem. AFAICT I've been following all of your explanations -- very good explanations BTW -- but you seem to be making some an additional "magic" assumption that apparently I am not making -- an assumption that AFAICT is unjustified by the mathematics and seems false to me. The central assumption that I do not buy is that in the end there is only ever permitted to be one interpretation, or at least we're only allowed to talk about one at a time. That is perhaps a crude way of putting it, but I think it kind of captures the gist.

As an example, below you admit: "There are interpretations which make G1 true, and there are other interpretations which make G2 true, and these interpretations give different meanings to ex:p." And yet the introduction to RDF Concepts blithely states that "Two different appearances of an IRI denote the same resource". Taken at face value, this seems contradictory. If somehow that contradiction is to be avoided, surely some qualifications need to be added.

Also, if indeed it were true that "Two different appearances of an IRI denote the same resource" then there could never be a URI Collision
http://www.w3.org/TR/webarch/#URI-collision
and there would be no point in the AWWW discussing it or admonishing against it.

Furthermore, no matter what style of semantics was used in writing the RDF Semantics spec, it is still a W3C spec and it still must stand on its own according to what it *says* -- not what philosophical outlook one chooses to have. You cannot dismiss my points about the spec with "go read a book" or "you have not fully grasped the basic idea" just because I'm not wearing the same model-theory-colored glasses that you are wearing. In particular, if the spec says that an interpretation is a *function*, then it had damn well better be a function and nothing more than a function! Not a function with magic powers or special implicit constraints, but a *function*. And yet, somehow additional assumptions keep creeping in, as I've been trying to point out, because you keep trying to constrain the application of those functions *beyond* what the mathematics requires.

Last spring I think we made some significant progress in understanding this disconnect between our perspectives, so I found it useful to review some of that exchange in the email archives. I don't expect you to go back and re-read all of those messages, but for convenience, here are my posts in that conversation:
http://tinyurl.com/k4csl4v

To recap where we left off, let me quote some of that exchange:

http://lists.w3.org/Archives/Public/public-semweb-lifesci/2013Mar/0191.html
[[
From: David Booth (in reply to Pat Hayes)
[ . . . ]
> It's not the interpretations that you are suggesting to treat as
> contexts, it is the *graphs*. Your idea amounts to treating graphs as
> local contexts for the URI tokens that occur in them. And this is not
> a wholly insane idea, and indeed it has been suggested by several
> other people, including people on the current RDF WG. Some users use
> datasets in this way, treating the URI tokens in the various named
> graphs as functionally independent of one another until they have
> evidence that they are being used with the same meaning.

First of all, I was not making a proposal, I was making an *observation*
about the *existing* RDF Semantics spec and the *existing* conforming
use of that spec.  But to understand that observation, you need to be
able to look at the RDF Semantics spec as a whole, and recognize that:

   (a) in essence, the RDF Semantics spec defines a standard
   function -- call it RS -- for determining the truth value
   of an <interpretation, graph> pair; and

   (b) the particular formal style in which that function was
   defined  -- in this case, a model theoretic style -- is
   **completely irrelevant** to the end result of its definition.

If you are unwilling/unable to acknowledge those two basic points, then
indeed my observation will sound like an improperly stated proposal, and
no amount of discussion will correct that appearance.

On the other hand, if you are with me so far, or if you can at least
temporarily suspend your disbelief in those points, there are some
fundamental observations that follow.

1. Applications correspond to interpretations.  (Well, technically they
correspond to *sets* of interpretations, but for simplicity let's
pretend an app corresponds to one interpretation.)  Think of an
application as a function that maps a graph to an output.  When a
conforming RDF app takes a graph as input, assumes that graph is true,
and uses some algorithm (perhaps computing entailments) to produce some
output based on that graph, in essence it has chosen an interpretation
to apply to that graph.  That interpretation maps URIs to resources in
that application's domain of discourse, whatever it may be.

2. Different applications choose *different* interpretations, because
they have different purposes.  Thus, the *same* graph may contain a URI
that maps to *different* resources in different
applications/interpretations.

3. Different RDF authors sometimes use the same URI to denote
*different* things.  I.e., different RDF authors make different
assumptions about the interpretations that will/should be applied to the
graphs that they write.  We may wish they didn't, but they do.  (And
because ambiguity is inescapable, this is impossible to avoid, so
there's no point in getting huffy about it.)  Fortunately, we can still
use the RDF Semantics to help us determine the author's intended
"meaning" of each graph by recognizing that different graphs require
different interpretations!  To clarify, we can use the RDF Semantics to
(separately) determine the entailments and satisfying interpretations
for each graph.  This is useful!  And it cannot be done under the
single-interpretation assumption.

4. Just because we can use the RDF Semantics to correctly determine the
authors' intended "meaning" of two graphs individually -- i.e.,
determine each graph's entailments and satisfying interpretations --
this does *not* mean that the *merge* of those two graphs will be
useful.  Because if those two graphs have disjoint sets of satisfying
interpretations, then there cannot be any satisfying interpretations for
the merge, i.e., the merge is necessarily false.  In other words, even
though an app may work perfectly on two graphs *individually*, it may
*not* work on the merge of those two graphs.  This may be quite
counter-intuitive to those who would assume that if an app works fine on
one set of RDF data then it should also work fine on a superset of that
data.

[ . . . ]

5. This has direct consequences for owl:sameAs.  It explains why it is
useful, as Jeremy suggested, to keep separate graphs that reflect
different "perspectives" -- i.e., that assume different sets of
interpretations -- and keep them separate from owl:sameAs assertions.
This allows you to *choose* which URIs will be joined by owl:sameAs, and
which RDF assertions will be used with them, by choosing which datasets
to merge into the graph that you wish to use for a particular
application, *without* requiring that the merge of all possible graphs
be consistent, and *without* violating RDF Semantics.
]]

And later, you wrote:
http://lists.w3.org/Archives/Public/public-semweb-lifesci/2013Mar/0212.html
[[
From: Pat Hayes (in reply to David Booth)
[ . . . ]
> An interpretation can be applied to any graph or any RDF
> statement.  And certainly you could determine the truth
> value of N different statements according to N different
> interpretations.  But would it be useful to do so?
> Probably not.  Furthermore, if two statements are true
> under two different interpretations, that would not tell you
> whether a graph consisting of those two statements would be
> true under a single interpretation.
>
> OTOH, it *is* useful to apply different intepretations to
> different graphs, and one reason is that you may be using
> those graphs for different applications, each app in effect
> applying its own interpretation.  But the fact that those
> graphs may be true under different interpretations does
> *not* tell you whether the merge of those graphs will be
> true under a single interpretation.
>
> The RDF Semantics spec only tells you how to compute the
> truth value of one <interpretation, graph> pair at a time,
> but you can certainly apply it to as many <interpretation,
> graph> pairs as you want -- in full conformance with the
> intent of the spec.

Not with the *intent*, even if I have to concede that it does conform to the letter. The intention of the spec is to describe a model-theoretic semantics for RDF and RDF extensions. What you are doing, David, is not model theory semantics and does not describe any useful notion of interpretation.
]]

I beg to differ on its conformance and its usefuless, since: (a) it is merely applying the *existing* RDF semantics; and (b) it is *certainly* useful to talk about what sets of interpretations satisfy two different graphs (respectively). Consequently it is also useful to talk about what resource(s) a given URI might denote in each of those graphs (respectively), based on each graph's set of satisfying interpretations.

As a simple example of how a URI can denote different things in different graphs, suppose Alice sends this graph G1 from her smart phone to her home computer to turn *on* her porch light (assuming the usual URI prefix definitions):

G1: {  @prefix db: <http://dbooth.org/>
       ex:alicePorchLight rdf:value db:x .
       db:x owl:sameAs ex:on .
       ex:on owl:differentFrom ex:off . }

and her light turns on.

In contrast, Bob sends this graph G2 from his smart phone to his home computer to turn *off* his oven:

G2: {  ex:bobOven rdf:value db:x .
       db:x owl:sameAs ex:off .
       ex:on owl:differentFrom ex:off . }

and his oven turns off.

It is perfectly reasonable and natural to ask "What resource does db:x denote in G1?", and it is reasonable and natural to ask the same of G2. The RDF Semantics (along with OWL) tells us that in G1 db:x denotes whatever ex:on denotes, whereas in G2 db:x denotes whatever ex:off denotes. That is useful! Furthermore, the semantics tells us that if we merge those graphs then we have a contradiction -- there are no satisfying interpretations for the merge -- and that is useful to know also, because it means that Alice and Bob's graphs **cannot be used together**.

Furthermore, the RDF Semantics notion of an interpretation maps well to real life applications: in effect, an application chooses a particular interpretation when it processes RDF data. This is a very useful aspect of the model theoretic style of the semantics. In this example, Alice's home control app interpreted db:x to denote "on" and Bob's home control app interpreted it to denote "off". And *both* were correct (in isolation): they both did The Right Thing.

Anyway, one of the parts of the RDF specs that needs to be fixed is the sentence in the RDF Concepts spec that says "Two different appearances of an IRI denote the same resource", because as pointed out, this simply is not true. To address this, I think two things are needed. The first is to reword that sentence as a *goal* or as an *intent*, rather than as a fact. A change as simple as: "Two different appearances of an IRI are intended to denote the same resource" would probably be adequate. The second thing that's needed is a small amount of explanation about *why* two appearances of an IRI do not necessarily denote the same resource, and how this can be handled by the RDF Semantics. (Short answer: it can't, except by applying the semantics separately to each appearance, using different interpretations.)

The other part (along these lines) of the RDF specs that I think needs to be fixed is in the RDF Semantics spec, but let's address the above statement in the RDF Concepts first and see if we can get on the same page with that one before addressing the other one.

So . . . based on the above, how close or far apart do you think we are? Would you be agreeable to changes along the lines described above?

Before I wrote the above, I started to respond to some specific things below. You can read them below if you want, but I think I have already covered my overall points above anyway.


I'll try to explain . . .

On 09/11/2013 11:15 PM, Pat Hayes wrote:

On Sep 11, 2013, at 6:14 PM, David Booth wrote:

hi Pat,

Since the RDF WG does not have a public discussion list to
which non-members can post, I'm copying the public www-archive
list.  I want to propose a couple of changes to the RDF specs,
and thought it might save the WG and others time if I first
discuss them with you (and anyone else you think would be
interested).  One of them is the following.

In
https://dvcs.w3.org/hg/rdf/raw-file/default/rdf-concepts/index.html


 I see this statement:

"IRIs have global scope: Two different appearances of an IRI
denote the same resource."

This is wrong

It is a foundational assumption of RDF. Without this assumption,
graph merging would never be a valid operation, and no RDF
engines could combine informationfrom different sources to draw
conclusions.

, because an IRI can and often does denote different resources
in different RDF interpretations.

That is irrelevant to the point being made in the sentence you
cite above. No interpretation allows two occurrences of a single
IRI to denote different things.

The problem is that that sentence is not constrained to a single
interpretation.  If it said "**For each RDF interpretation** IRIs
have global scope . . . . " then it would be fine.

An interpretation is just a formalization of the idea of the language
having a meaning. One does not completely know the intended meanings,
so is more than one possible interpretation. But that does not say
that some RDF has one interpretation while other RDF has a different
interpretation. That idea - what you are calling the
"multiple-interpretation perspective", if I follow you properly - is
simply a misunderstanding of the very idea of an interpretation in
model-theoretic semantics.

The RDF Semantics document says that an interpretation is a *function*, and I know what a function is. I see nothing in the semantics that requires only *one* interpretation function to exist.



As written, that sentence ("IRIs have global scope: Two different
appearances of an IRI denote the same resource") is just patently
false, as your example of G1 and G2 illustrated:

G1: ex:a ex:p "23"^^xsd:number .

G2: ex:p rdfs:range xsd:string .

Assuming XSD semantics, ex:p clearly denotes something different in
G1 than it denotes in G2.

No, it does not, which is WHY these are mutually inconsistent. If it
could denote one thing in G1 and something different in G2, and if
this were somehow acceptable, then these two graphs would be
consistent. In fact, the statements P and (not P) would be
consistent, becuase the firat P could be interpreted as being true
and the second P as being false.

No, you're talking about the merge of the two graphs, which indeed would be inconsistent. I'm talking about the two graphs separately.




And this, in practice, means that an IRI often denotes
different resources in different *graphs*

No, it does not. What is true, of course, is that the sets of
interpretations which satisfy the two graphs will be different,
and each will likely be different from the set of
interpretations satisfying both of them (their union.) But that
does not imply that IRIs in different graphs denote differently.

When you say "But that does not imply that IRIs in different graphs
denote differently", notice that you are implicitly assuming that
the *same* interpretation(s) will be applied to both graphs.
(Because obviously if different interpretations are applied, the
same URI may denote different things.)  But my point was that if
you look at it from the perspective of "What are the sets of
satisfying interpretations for each of these graphs (separately)?",
then we *are* talking about different sets of interpretations, and
the same IRI *may* denote different things in them.

No. Look, if we take each graph in isolation, then yes, different
sets of interpretations make them true. There are interpretations
which make G1 true, and there are other interpretations which make G2
true, and these interpretations give different meanings to ex:p.

Exactly.  That's what I have been trying so hard to point out.

But
still, each interpretation assigns meanings to every occurence of
every IRI. So the interpretations that make G1 true also make G2
false, and the interpretations that make G2 true also make G1 false.
There is no interpretation that makes G1 and G2 *both* true, and this
is BECAUSE every interpretation assigns a truthvalue to every triple
in every graph, and assigns the same denotation to every occurrence
of each IRI, whatever graph it is in.

Of course.


Do you see how this works yet?

Yes, of course, I see how it works in *that* direction. But I also see how it works in the other direction: given G1, it is reasonable to ask: "What resource does ex:p denote in G1?" And the obvious answer is that ex:p denotes some resource r1=i1(ex:p) such that i1 is in the set of satisfying interpretations for G1. Similarly, the obvious answer to the question "What resource does ex:p denote in G2?" is that ex:p denotes some resource r2=i2(ex:p) such that i2 is in the set of satisfying interpretations for G2. It is useful to look at graphs this way! But now we have a problem, because the RDF Concepts introduction says: "Two different appearances of an IRI denote the same resource", but we also know that r1 != r2.




, because any graph has a set of satisfying interpretations,
and different graphs may have different sets of satisfying
interpretations.

Yes, but that does not imply what you seem to think it implies.

I doubt that what I think is what you think I think.  What do you
think I think it implies?

To be clear, I think it implies the following.  For graphs g1 and
g2, URI u, let s1 and s2 be the sets of satisfying interpretations
for g1 and g2 (respectively).  Let rs1 be the set of resources
{i(u) such that i is in s1}, and similarly let rs2 be the set of
resources {j(u) such that j is in s2}.   Claim: Every member of s1
is "what u denotes in g1"

That phrase is meaningless, and it is not used anywhere in the RDF
semantics. Denotation is not graph-relative.

Are you telling me that it is meaningless to ask, given a graph,
what a particular IRI denotes in that graph? That would be absurd. It is perfectly reasonable and normal thing to ask. The fact that the RDF Semantics has specifically defined this notion is a *bug*, not a feature. It could easily be defined as described above (in terms of the satisfying interpretations for the graph).

I get the impression that you would *like* the question to be: "what resource does u denote in *all* graphs?". But that question would be completely pointless, because nobody cares about *all* graphs. People care about *specific* graphs, and it is very important that people have the ability to chose *which* graphs to care about, thank you very much. The fact is that people *do* use the same URI to denote different things, and people *do* look at graphs and want to know what a URI denotes in a particular graph. We might as well take advantage of the existing RDF Semantics to help them out.

Thanks,
David


and every member of s2 is "what u denotes in g2".  (But note that
they came from different sets of interpretations: s1 and s2,
respectively.) Claim: "what u denotes in g1" may be *different*
from "what u denotes in g2".  The truth of this should be obvious.

Notice that nowhere am I making the single-interpretation
assumption. AFAICT, the disconnect between us seems to be that you
are assuming that one must only be talking about the *same*
interpretation(s) when talking about g1 and g2.

Interpretations apply across all IRIs and all graphs, by definition.
The set of interpretations which satisfy a graph is dependent upon
the graph, of course. But every interpretation defines a truthvalue
for every possible RDF triple, and hence for every possible RDF
graph. That is the entire point of model-theoretic semantics:
interpretations fix the meaning of ALL SENTENCES in a given language.
If they did not, they would not be interpretations.

That would be necessary if we were talking about the union of g1
and g2, but it is *not* necessary if we are talking about g1 and g2
as separate graphs.  The RDF Semantics can perfectly well be
applied to each graph separately.


For example, suppose graphs g1 and g2 have sets of satisfying
interpretations s1 and s2, respectively, and those sets may be
disjoint.  Then colloquially (and technically) we can say that
an IRI may map to one resource in g1 (i.e., in some
interpretation in s1) and a different resource in g2 (i.e., in
some interpretation in s2).

No, that would not be a correct way to express this condition,
even colloquially. What you are describing is two graphs which
contradict each other in some way.

Yes: the intersection of their sets of satisfying interpretations
is empty.  I.e., the graphs contradict each other.

Which is impossible  in RDF but much easier to arrange in RDFS or
OWL or other more expressive languages, but in any case it is
often only possible to detect the contradiction when we presume
that IRIs denote uniformly across graphs. Take this example,
using some rdfs:

G1: ex:a ex:p "23"^^xsd:number .

G2: ex:p rdfs:range xsd:string .

Each is consistent (has satisfying interpretations) but together
they are inconsistent (recognizing XSD). Why? Because if ex:p has
range xsd:string, then the first triple in G1 implies that a
nuber must be an XSD string, and XSD says these are disjoint. But
notice, this line of reasoning assumes that the ex:p in the G1 is
the same ex:p as in G2.

By "inconsistent", presumably you mean either; (a) that the graph
that is the union of G1 and G2 has no satisfying interpretations;
or (b) that the intersection of the sets of satisfying
interpretations for G1 and G2 is empty.

Those are two ways of saying the same thing. so I mean both of them.

In case (a), we would be talking about a different graph that has
G1 and G2 as subgraphs, so yes, ex:p in G1 must be the same as ex:p
in G2, and there are no interpretations that satisfy this
requirement. In case (b), ex:p in G1 clearly denotes a different
resource than ex:p in G2, and that is why the intersection of their
satisfying interpretations is empty.

No. The reason why the set is empty is not because ex:p denotes
differently in the two graphs (which is meaningless as stated) , it
is because *whatever you take ex:p to denote*, at least one of the
graphs must be false. You survey all the possible interpretations,
and you find that whatever you do, you never get both graphs true at
the same time.


If it wasn't – if the same IRI in two different graphs could
denote different things – then there would be no inconsistency
here, because G2 might be talking about a different thing than
the ex:p that G1 is talking about.

Indeed, it is quite clear that the ex:p that G1 is talking about
*is* different than the ex:p that G2 is talking about, and this is
why these graphs are incompatible.  This is evident because in
every satisfying interpretation of G1, the value of ex:p is an
xsd:number, whereas in every satisfying interpretation of G2, the
value of ex:p its value is an xsd:number, whereas in G2 its value
is required to be an xsd:string, and an xsd:string cannot be an
xsd:number.  I.e., the intersection of their sets of satisfying
interpretations is empty, so the graphs are necessarily
inconsistent.

Yes, exactly. Put another way, the interpretations which satisfy G1
cannot satisfy G2, and vice versa.




This requires thinking about graphs in terms of sets of
satisfying interpretations -- an important and valid
perspective -- rather than assuming that one looks at them only
through the lens of a single interpretation.

Of course we think of graphs in terms of sets of satisfying
interpretations. That does not imply that different occurrences
of an IRI can denote differently.

Sure it does.  ex:p denotes *different* things in the set of
satisfying interpretations of G1 than it does in the set of
satisfying interpretations of G2, as we just established above.

So what? What established mutual inconsistency here is that in every
interpretation which satisfies G1, G2 is false (and vice versa.) But
to show this rigorously means that we have to consider the truth of
G2 in those G1-satisfying interpretations. And we do that by applying
the interpretation mapping to G2; and when we do, we interpret the
IRIs in G2 exactly the way they are interpreted in G1. Because, to
make the basic point one again, interpretation mappings are defined
on IRIs, not on occurrences of IRIs in graphs, so you get the same
denotation for every occurrence of the IRI, in any graph. And this
follows from the *definition* of "interpretation". Different
occurrences of an IRI cannot denote differently.

In short, I think the above statement needs to be qualified
somehow, such as:

"IRIs are intended to have global scope: Two different
appearances of an IRI are intended to denote the same resource.
(But see RDF Semantics for caveats regarding different RDF
interpretations.)"

The semantics document has no such "caveats".

And then we would have to add something to the RDF Semantics
document to explain how an IRI can denote different things in
different interpretations.

Of course IRIs denote different things in different
interpretations. That is what interpretations are all about: each
interpretation is one way to construe what IRIs mean, one mapping
from IRIs to denoted things. But each one of them construes each
IRI in a particular way. It does not construe one occurrence of a
given IRI in one way, and a different occurrence of the same IRI
in a different way.

Correct: a single interpretation does not construe one occurrence
of a given IRI in one way and a different occurrence of the same
IRI in a different way.  But that is *exactly* what multiple
interpretations do.

No, that is NOT what they do. They simply provide a mathematical
survey of possible ways for IRIs to denote.  But they are all
functions *from IRIs to denotations*, not from IRI occurrences to
denotations. (You can define a (different) semantics which allows
this, and it is a context-logic semantics: interpretations map from
<context, IRI> pairs to denotations. In your case, the contexts would
be graphs, I presume.)


That condition – we might call it a 'split reference' – is not
possible in any interpretation. In fact, it is explciitly ruled
out by the very construction of interpretations, which are
defined as mappings from IRIs to referents. Not from
*occurrences* of IRIs to referents, notice.

Agreed.  I'm not talking about a single interpretation.  I'm
talking about multiple interpretations, such as we may be
considering when we ask: "What are the sets of satisfying
interpretations for g1, g2 and g3 (respectively)?"

Multiple interpretations are still interpretations. A set of mappings
from one set to another is not a mapping from a different set.




Does this make sense to you?

Clearly not; but you knew this, surely, from our earlier
extended discussions on this topic.

Hey, I'm trying to make headway toward a common understanding here!
:)  Have I made any progress?

Apperently not.

David, if you think that you have a new idea here and you are
eventually going to convince me you are right, give up now. I know
model theory and logical semantics very well indeed, and I know that
you are confused about the basic ideas. You are not going to persuade
me that you are right, because you aren't.

Pat


Best wishes, David


------------------------------------------------------------ IHMC
(850)434 8903 home 40 South Alcaniz St.            (850)202 4416
office Pensacola                            (850)202 4440   fax FL
32502                              (850)291 0667   mobile
(preferred) pha...@ihmc.us       http://www.ihmc.us/users/phayes










Reply via email to