- From: Pat Hayes <phayes@ihmc.us>
- Date: Fri, 4 Oct 2013 00:12:47 -0500
- To: David Booth <david@dbooth.org>
- Cc: www-archive <www-archive@w3.org>, "Hawke, Sandro" <sandro@w3.org>, Gregg Reynolds <dev@mobileink.com>
Hi David On Oct 3, 2013, at 9:47 PM, David Booth wrote: > Hi Pat, > > On 09/27/2013 02:41 PM, Pat Hayes wrote: >> >> On Sep 25, 2013, at 10:56 PM, David Booth wrote: >> >>> 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. >> >> Model theory isn't a scientific discipline, it is a mathematical >> theory. >> >>> 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. >> >> Its not a question of "allowing". Its a question of what makes sense, >> and what the mathematical construct called "interpretation" is >> intended to be modeling. > > Sorry, but I do *not* think it makes sense to assume that there exists only one "correct" interpretation, and AFAICT that seems to be the basis of the single interpretation assumption. I guess it depends on what one means by "correct". There is only one world, after all, which we are all trying to talk about. > > I got my understanding of interpretations from here: > http://www.w3.org/TR/rdf-mt/#interp > [[ > The basic intuition of model-theoretic semantics is that asserting a sentence makes a claim about the world: it is another way of saying that the world is, in fact, so arranged as to be an interpretation which makes the sentence true. In other words, an assertion amounts to stating a constraint on the possible ways the world might be. . . . > ]] > > And from the Stanford Encyclopedia of Philosophy: > http://plato.stanford.edu/entries/model-theory/ > and other readings on the web. > > It seems perfectly reasonable to me that one person (or application) may think the world is arranged one way and another may thing it is arranged a different way. Of course that is reasonable. But isnt it also obvious that when this happens, they are in fact *disagreeing* in their opinions? And that such a disagreement might reveal itself in their making incompatible - mutually inconsistent - assertions? And don't we normally treat *data* as being factual rather than an expression of an opinion? > One might say that an interpretation is not about how some person (or application) *thinks* the world is arranged, it is about how the world really *is* arranged. When the assertions are understood to be about a single world: yes, exactly. As data is normally understood to be about. > But if we're talking about how the world really *is* arranged, then it's clear that people *do* sometimes use the same URI to denote different things. OTOH, maybe we're not talking about the real world, maybe we're talking about an *idealization* of the world, in which a URI really does only ever denote one resource. That view seems coherent to me, but: (a) that's different than what I understand from reading > http://www.w3.org/TR/rdf-mt/#interp > because when I read that section get the distinct impression that interpretations are supposed to correspond to the *real* world -- not an idealization; and (b) that view seems a bit pointless to me, because it does not correspond to reality. > > In short, it seems to me that different, well-intentioned people *do* have different interpretations in mind when they write their RDF graphs. That might well be the case, yes. In fact it almost certainly is. But this is a *problem*. > *And* it seems to me that the existing RDF Semantics accounts for this rather nicely in its use of interpretations to abstract the mapping from URIs to real world entities. That is where we disagree. Trying to use simple model theory to account for contextual change of meaning doesn't work. You don't get the results you want or expect. Entailment turns out to be either vacuous or impossible, depending which way you push the definitions. What model theory does account for very nicely is ambiguity, but that is not the same thing as contextual variation. >>> 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. >> >> No, it is not. I really don't know what more I can say to make you >> see that there is no contradiction here. As an analogy: I can look >> north and I can also look south, but I can't ever be looking two ways >> at once. Does that help? > > Pat, there is no need to make me see that "there is no contradiction here", because I *already* see how "there is no contradiction here" *if* certain assumptions are made No, no assumptions. Just that there is no contradiction, period. > , and I have seen that for a long time. You don't have to keep repeating it. The problem is that you are refusing to accept the fact that there *is* a different way of looking at this, and it follows *directly* from the mathematics of the RDF semantics, just as surely as the square root of 4 can be *either* 2 or -2. That other way of thinking about it may offend your sense of the "right" way to think about model theory, but AFAICT it *is* mathematically valid, and furthermore I think it is *useful* because it coincides more closely with real life use of RDF than the single interpretation assumption does. If you actually work through the details of this "other way of looking", you will find that it does not in fact work in the way you want it to. One does not get a semantic theory which accounts for contextual variability in IRI meanings without explicitly introducing contexts (in some way) into the semantic equations. What you seem to be sketching in your idea of this "other way to think" is to implicitly use the graph as the context, but this DOES NOT WORK, for quite sharp technical reasons. For one thing, any triple in any RDF graph of N triples is in fact in 2|(N-1) distinct graphs at the same time (all the subgraphs of the graph which contain the triple.) > >> >>> 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. >> >> A URI collision is where a single URI is being used to *identify* >> two distinct things. This is (a) not the same issue as the one we are >> talking about (though it is close, I will admit) but (b) is a >> *problem* when it happens and *should not happen*. So the RDF >> semantics (like many other Web standards) is built based on the >> presumption that this bad thing is not happening. > > Well, no, the RDF Semantics only assumes that this does not happen in any *individual* interpretation. But this is exactly what happens in different interpretations: the same URI denotes different things (regardless of the appearances of that URI). An interpretation is a formalization of the intuitive idea of "a way that IRIs could refer". So of course an IRI may refer differently in different interpretations. Nothing of any importance follows from this platitude. In particular, it does not mean that there is any way that two **occurrences of the same IRI** can refer differently. > FYI, I noticed that you have now defined a distinction between "identify" and "denote" in the current draft. I don't think that is helpful, and I'd like to discuss it further to understand the rationale better You have an official WG response letter on that one. > , but I don't want to get that discussion tangled up with this one, so let's skip that issue for the moment. > >> >>> >>> 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. >> >> Sure I can. If you were to insist that 2+2 equalled 5, I could tell >> you to brush up on your arithmetic. The RDF semantics *is* a model >> theory. >> >>> In particular, if the spec says that an interpretation is a >>> *function*, then it had damn well better be a function >> >> Yes, it is. >> >>> and nothing more than a function! >> >> No, it is a function with an intended use within a standard >> ('textbook") way of describing a semantics, and the specification >> clearly refers to this standard way. > > What do you mean by 'a function with an intended use'? Do you mean that there are constraints about how these functions can be used? I mean, the formal mathematical apparatus, of which this is a part, is designed and intended to formalize a pre-formal intuition. It is not an exercise in pure mathematics. > If so, exactly what are these constraints, and where in the RDF Semantics specification are these constraints specified? I want to know concretely what they are. The entire document does its best to explain them. In all sincerity, I don't know how I could explain it more clearly. > > OTOH, if you are just referring to an informal/conceptual way of thinking about interpretation functions, then that does not sound to me like a binding constraint on the semantics. That way of thinking IS the semantics. Check out the definition of entailment, for example, and the proof that a merge of a set of graphs entails all the graphs in the set. >>> 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. >> >> Actually, I don't. The functions in question are functions from the >> set of URIs to a universe of denotations. They are not graph-relative >> and they are not defined on the set of URI *occurrences* or *tokens*. >> It is you who are warping the mathematics, not me. > > It looks like you are still misunderstanding my point. I never meant to assert that an interpretation function **by itself** is graph-relative. But this is exactly the terminology you use: you talk about what an IRI denotes "in a graph". What do you think this means? (Can you express it mathematically?) > But the RDF Semantics as a whole is graph-relative and interpretation-relative. The semantics are defined in terms of the interaction between graphs and interpretations. It defines truth conditions on graphs in interpretations. I have no idea what you mean by "interaction", but if it means more than this, then the semantics does not talk about it. >>> >>> Last spring I think we made some significant progress in >>> understanding this disconnect between our perspectives >> >> There is no "disconnect between perspectives". I am sorry, but you do >> not have a "perspective" here, only a misunderstanding which is >> amazingly persistent, but nevertheless quite erroneous. > > That really isn't constructive. If you think I've made a mistake somewhere in my mathematics, please point it out specifically. I have pointed out several times that the usages "denoting in a graph" and "interpretation of a graph" to which you again and again revert in these debates, are mathematically meaningless. The fact that this is expressed in words does not make it less mathematical an error. Actually, I have not seen any mathematics in your emails on these threads. If you were to present your ideas mathematically, using the formalism of the RDF semantics - the IEXT(I(ex:a)) kind of mathematics - then perhaps I would be able to see something in your ideas that I am currently missing. > I've been looking at this for a few years and have not yet found one, but I still could have missed something. > >> If you feel >> differently, then I suggest you try writing up your perspective and >> publishing it in an appropriate journal of formal philosophical >> logic. > > As I said, I'm not making any grand claims about philosophical logic here. I'm merely making a simple observation about the mathematics of the RDF semantics. And as much as you may find it distasteful or an abuse of the intent of model theory, according to the mathematics an IRI can denote different resources in different graphs under different interpretations. It is as simple (and obvious) as that. The phraseology "denote..in a graph" is meaningless. An IRI can denote different things in different interpretations: that is trivial and vacuous. Two different graphs may (typically will) have different sets of satisfying interpretations. All this is true, but none of it supports any kind of "alternative perspective" on model theory or semantics. > > But why are we still arguing at this level? Didn't you read the recap of last spring's conversation below? Yes, I did, with some pain. Did you re-read my replies to you in that correspondence? > Last spring we already got to the point where you agreed that my points were valid I hope we did not get to that point. I have never conceded that your points are valid, except insofar as they consist of your reiterating basic elementary facts about model theory and then claiming that this somehow provides a different "perspective". > , though you viewed them as violating the intent of the RDF Semantics. It would be nice if we could catch up to where we left off and move forward from that point instead of re-arguing the same points that we already covered before. There really is no point to catch up to. I have not conceded, and until you say something new I will not concede, that you have anything useful to say on this topic, I am afraid. >>> >>> , 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 >> >> That is not the kind of use that RDF is intended for. > > That's irrelevant. If you'd rather, you can imagine that Alice and Bob posted their documents on the web instead. In which case they contradict each other, by making mutually incompatible claims about what some IRIs denote. So they cannot be both correct, just as the semantics says they cannot. > >> RDF is designed >> to allow propositional information (data) to be *published* on the >> Web, where it can be read and used by many applications. In general, >> and typically, the nature of the use is not known to the publisher. > > I would guess that the majority of RDF use today is *not* on the web. ??!!?? Really? Do you have any evidence for this claim? But in any case, frankly, if its not on the Web then I don;t care about it, nor whether it is conformant to the specs, including the semantics. If its not on the Web then its not being used for the purposes for which the specs were written. >> If some RDF is used in a private one-time transaction between apps, >> or entirely in-house in some closed enterprise, then its semantics is >> irrelevant: it can be used to encode musical notation, or as an >> alternative syntax for Javascript, and the RDF specs simply don't >> apply to such uses. > > Standards are important for use *within* organizations in addition to being important between organizations. I absolutely disagree. Conformance to Web standards is relevant only to uses of these standards in a Web setting, Other uses are completely irrelevant, and may be nonconformant. I can use Fortran 4 as a musical notation if I like, and as long as I don't complain about why my programs don't run properly, who cares? > > But in any case, if you are attacking the legitimacy of the example the I gave then you are mounting a very flimsy defense indeed, the semantics are the same regardless of the context of the example. But the notion of "being both correct" is very different. I agree the semantics of the two graphs is the same, and indeed those two graphs are inconsistent with one another. (As you seem to agree with this, I rather fail to see your point with the example.) >>> (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. >> >> It tells us that **if we assume G2 is true**, then ex:off denotes the >> same as db:x. > > Yes, exactly. It is perfectly reasonable and natural to ask "What resource does db:x denote in G1 (assuming G1 is true)?". No no no. You ask, what does db:x denote, assuming G1 is true? You do not ask, what does it denote "in G1", because that phrasing is meaingless and misleading. Assuming G1 is true, it co-denotes with ex:on. Under this same assumption, therefore, G2 is false. Similarly the other way. All this is exactly what the current model theory says: the two graphs are inconsistent with one another. So? What was your point, again? > And it is perfectly reasonable and natural to ask "What resource does db:x denote in G2 (assuming G2 is true)?". > >> >>> That is useful! Furthermore, the semantics tells us that if we >>> merge those graphs then we have a contradiction >> >> No, we have the contradiction already. These two graphs contradict >> each other, period. Merging does not change anything about the >> semantics of the graphs. >> >>> -- 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**. >> >> It means they cannot both be true. > > What exactly do you mean when you say "Graph G can be true"? And I'm not playing games by asking this. I'm serious. It looks to me like there are at least two notions of what you may mean when you say that a graph can be true: > > 1. There exists a satisfying interpretation for the graph under standard RDF and OWL semantics. > > 2. Under some particular *unspecified* interpretation, the graph is true under standard RDF and OWL semantics. > > The problem with definition #2 is that it involves an unbound variable: the interpretation has not been specified. And as we all know, a statement with an unbound variable is a big no-no. None of this makes the slightest sense. Your 1 and 2 here are paraphrases of each other and hence mean the same thing. The existential quantifier does not specify what thing it is that exists. In fact, ironically, your 2 states quite compactly the truth conditions of your 1 here. > > So what exactly *do* you mean when you say that a particular graph can be true? Either or both of your statements will do. "Graph G can be true" means that there is a possible interpretation which satisfies it. (The modality of "can" exactly mirrors the modality of "possible", in case you were wondering.) > >> Publishing both of them was probably a bad idea. > > That's a silly thing to say, given that both Alice's and Bob's apps are working perfectly and doing exactly what Alice and Bob intended them to do. But publishing them is not just making their apps work, it is claiming them to be true. The apps are, frankly, irrelevant at this point. >>> 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. >> >> No, it does no such thing. Even tableaux reasoners perform reasoning >> by surveying possible interpretations, not by choosing one. > > You don't seem to be grasping my point about what RDF applications do. Try re-reading this: > http://lists.w3.org/Archives/Public/public-semweb-lifesci/2013Mar/0208.html I have (re-)read it, and it is confused. In particular, the idea that Web applications "choose" an interpretation is quite wrong. For one thing, there may well be uncountably many interpretations to "choose" from, making this choice uncomputable. >>> This is a very useful aspect of the model theoretic style of the >>> semantics. >> >> It is a gross misreading of the semantics. Nothing in the semantics >> tells you to choose a single interpretation. > > I didn't say that the *semantics* tells you to choose a single interpretation. I said that, in effect, that is what *applications* do And this is wrong, they don't. Not even in effect. > when they take RDF as input, assume it is true, and produce output based on that input. What they do do, is draw inferences, which may or may not be valid (= guaranteed truth-preserving). The semantic's only role is to make this idea of validity, of truth-preserving, mathematically precise. Nothing in the semantics or the surrounding mathematics can possibly justify or support your claim that applications "choose a single interpretation". (Perhaps what you intend to mean can be expressed by saying that they choose a "context", which can be represented or thought of as the subset of interpretations of the graph which satisfy it. That is indeed a potentially useful way to think, but it really does not add anything to the "inference" way of talking, in fact, since the various completeness and correctness results establish that these two ways of talking are always equivalent. Most users find inference-talk a lot more useful than interpretation-talk, most of the time. Even logic textbooks usually emphasize proofs over semantics through most of logic 101.) >>> 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. >> >> Using RDF to "do" anything is probably mis-using it. > > That's silly. RDF is good for lots of uses. I meant that it is intended to express data on the Web, not to transmit instructions or control machinery. > >> RDF is not in >> any sense a programming or scripting language. > > Nor is XML or ASCII or CSV or any other information representation language. Applications use their input to decide what to do. That's just basic computing. The input does not have to be written in a scripting or programming language. The issue is how the semantics of the notation is described. Semantics for programming formalisms are fundamentally different from those for assertional formalisms, relying on fixpoint theorems to support recursion. (Some formalisms, such as pure LISP and Prolog, live in an uneasy nomansland between these semantic worlds, but that is a more complicated topic than we should be trying to enter at this point.) >>> 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? >> >> No, I would not. > > Well, please let's work together constructively to resolve this. If we can't come to a common understanding directly between us, then it's going to be all that much harder getting this resolved in the working group. You are presuming that there is something to resolve :-) > I may be a fool, but merely calling me one and telling me to read a book ain't gonna help. Well, a quick read of a textbook on model-theoretic semantics of logics might actually help quite a bit, in all seriousness. > I've got legitimate points that are rooted soundly both in practice and in the mathematics. You have not yet convinced me that this is true, I am afraid. Sorry, but it is important to be clear, as you seem to think that in our earlier correspondence I was agreeing with you. Pat > I've learned a great deal from you -- though I'm sure not nearly enough, from your perspective ;) -- and it's from exploring the logical consequences of what I've learned that I've reached these conclusions. > > David > >> >>> >>> 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. >> >> Of course not. Many interpretations *exist*. That is the point of >> having discussing interpretations in the first place. But a construct >> consisting of two interpretations is not, itself, an interpretation. >> >>>>> >>>>> 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. >> >> I am talking about two graphs. I did not mention merging or >> unioning. >> >>>>>>> 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 the truth of that trivial observation does not have the >> consequences that you seem to think it has. So pointing out that it >> is true is not really a useful activity. >> >>> >>>> 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?" >> >> No, that question is meaningless as posed. (What do you think "denote >> in G1" means? Denotation is defined relative to an interpretation, >> not relative to a graph.) >> >>> 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. >> >> That would be the answer to the question: "what resource does ex:p >> denote, assuming that G1 is true?" >> >>> 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. >> >> "What does ex:p denote, assuming G2 is true?" >> >>> It is useful to look at graphs this way! >> >> Indeed. >> >>> 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. >> >> No, we do not have a problem, because G1 and G2 cannot both be true. >> And indeed, we have *discovered* this by applying the semantics. We >> have used valid logical entailment (as defined in the RDF semantics) >> to derive an explicit contradiction from the two graphs, showing that >> they are mutually inconsistent. That is, that no (single) >> interpretation can satisfy both of them. If the same URI could denote >> differently "in" the two graphs, then they would not be >> inconsistent. >> >>>>>> >>>>>>> , 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? >> >> Yes. >> >>> That would be absurd. It is perfectly reasonable and normal thing >>> to ask. >> >> No, it is not. Maybe this is the source of the difficulty you have in >> following this. The idea of a name denoting something "in" a graph is >> not a meaningful notion. In fact, in my experience, you are the first >> person who has ever used such a phrase. >> >>> 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?". >> >> No, that is equally meaningless. The only meaningful question to ask >> is, what does U denote? Now, one can meaningfully ask something along >> the lines of: "Assuming that these graphs are true (and assuming >> nothing else, perhaps) what can be said about what ex:p denotes?" and >> such a question is quite meaningful (although the answer is usually, >> depressingly little.) >> >>> 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. >> >> Perhaps so, but the RDF model is that RDF is published globally and >> can be accessed at will, and that none of it is preferred or has a >> higher status than any other. So while indeed nobody cares about all >> graphs, it is still true that the set of graphs that anyone cares >> about cannot, in general, be delineated ot circumscribed beforehand. >> It is not infinite, but is unbounded. >> >>> The fact is that people *do* use the same URI to denote different >>> things >> >> They do, in fact, yes. And when they do, applications break and fail. >> So we encourage them to not do that, and also force them to accept >> responsibility for the consequences which result when they do. >> >> Pat >> >> >>> , 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) phayes@ihmc.us http://www.ihmc.us/users/phayes >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>> >> >> ------------------------------------------------------------ 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) phayes@ihmc.us http://www.ihmc.us/users/phayes >> >> >> >> >> >> >> >> >> > ------------------------------------------------------------ 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) phayes@ihmc.us http://www.ihmc.us/users/phayes
Received on Friday, 4 October 2013 05:13:20 UTC