Model theory provides a well-established set of concepts for discussing language and communication, but it can also lead us astray, and make common sense ideas inaccessable if we are not careful.
What does "http://www.w3.org/People/Berners-Lee/card#i" designate/identify/denote/name? One of the huge problems behind getting the basic layer semantic web architecture has been the difficulty of using terms which do not have, at least for some community, quite the wrong meaning. Different specs use different terms.
Identifier" is what programming languges tend to call the string used as a name for, say, and integer variable. However, "identify" can have a connotation provide enough information to allow one to determine a unique individual, as in "He can be identified by his tendency to wear shorts and sandals."
Denote is a word which has a very well established use in model theory as the relationship between a symbol and something in a particular interpretation. An interpretation is a set of bindings between symbols and things. In this theory one can never talk of any real or correct interpretation, so one can never talk about what (in general) a symbol denotes.
This is where we lose track of the ability to name things.
Model theory describes commuication in which agents only exchange messages. If an agent may send and receive messages to communicate with another agent, all it can formally do is to remove from the set of interpretations it is consdidering those which conflict with the messages from the other agent. In this analysis there is no 'real world'. If we want to use this theory, and also we want to think about communication in a system in which a few terms have a very well developped and shared meaning -- like the case world of standard network protocols carrying downloaded weather data, say -- we don't want to worry at every turn whether the two systems "mean the same thing" by "temperature in degrees Celsius". Sometimes we do, but much of the time we instead want to build systems which just assume that it is a common, understood term.
If you like, we have two modes of operations. I have called
these before the naive mode and the less naive mode. In naive
mode we talk about what a URI like
http://www.w3.org/People/Berners-Lee/card#i means.
How can we do this, when there is no single interpretation?
Well, what happens in a working group? If you are looking at the establishment of a common term in a community through model theory glasses, then you see many messages being passed around. Suppose each agent starts off with many possible interpretations, but as it sees new messages come along it discards those interpretations which are incompatible with those messages. (It gets more interesting than this -- sometimes it will challenge a message and the community will fight over whwther it gets included ... in other words whether the sender or reeciever's constraints are the ones which the community will work with, .. sometimes the agent is left with no interpretations and has either give up as not understandingcreate new concepts, etc... but i digress). After a while, it turns out that the process of deletion and argument subsides. It turns out that, as further communication contuinues, the sets of interpretations remians more lor less unchanged. At this stage, the situation is that -- while we cannot say anything about the sets of interpretations held by the different agents and real life -- we can notice that the sets are such that they each interpretation in the set of each agent is consistent wit a very large body of communicted messages. One agent can then pick any one of its interpretations as bing the working one. It can then imagine that the other agents actually have exactly the same interpretation. (When some of the bindings will fbe from a symbol to an abstract concept, you might ask what it means to be the same -- what does it mean for one person's idea of integer negation to be the same as the other person's idea? we are talking about measurable diferences. We could go into this. footnote?) . When it imagines this, life becomes simpler. The whole logic of dealing with buying and selling things rules with operations in which a lot of the terms are considered common and constant. Not strictly defensible, but good enough for rock andd roll, government work, and indeed while we often in particular cases overestimate the solidity of terms, we also overlook when thinking about how we think the vast amount of the time in human communication and in machine protocols that we do rely on this naive approximation, and behave as though it were valid.
Of course, there are many times in practice when the naive approximation fails. We typically handle this as an exception condidtion. (The Mars lander [@@check] takes off, deploys, heads toward the planet, and at a certian point two parts of the system thought thye meant the same thing by thrust while one was using metric strandards and the other was using an ancient foot-lb system still in use in some parts of the USA. But its not normally so late or so disasterously that the realization comes. Every now and again the flow of life is is interrupted by the realization that a concept has not been well enough defined, and maybe two concepts have to be split out. The tax software I was using one year would automatically calculate the penalty for late payment of taxes. It knew the amounts and dates of payemnts, and I helped it classify them. However, it had only one concept of "date". The relevant date for penalties was the date the check was sent, but the only date it knew was the date that the check was cached by the tax department. This sort of assumption (that the dates were the same) are typical of the assumption which make systems work in practice, but have to be revisted after a while. When several parties are involved, this can involve renegotiating the meaning of terms. Sometimes in W3C we have to go back to a working group (or attempt to reconstitue it) and ask them what they really meant when a corner
The engineers realize there is a problem, and fix it for next time. With the semantic web, these things can still happen.
Is this approximation, by which we imagine that the same symbol names the same thing for different people or machines, a kludge? Well, not really.
Machines are built by and incorporate the understanding of people, and people
There is a formal theory of communication in which
The semantic web, it seems to me, is built by creating ontologies and then using them. Specifically, ontologies are sets of terms, Properties and Classes, that are used as predicates and types respectively. Binary and unary preciates, in fact.
RDF: can't use a bnode for it.
- because we build things up and must knock them down
- can I say that any use of s in subject means that it is a carrot?
- the spam
- currennt
- unary preciates
- topology
- also in logic