- From: Drew McDermott <drew.mcdermott@yale.edu>
- Date: Wed, 21 May 2003 17:16:43 -0400 (EDT)
- To: www-ws@w3.org
It's interesting how nervous people get when the subject of the meanings of formal languages on the Web comes up. It's clear that many of us are worried that the standard ways of thinking about the meanings of computer languages have lost their power in the Web setting, and feel that it's urgent to come up with new ways. So Jeff Lansing <jeff@polexis.com> says Terms such as "owns" and "pays" get their meaning be pointing into a shared interaction model. Let's say that this is the "everyday interaction model for commerce" that exists in the actual world. (Does it? Is there just one? Is is a cultural artifact? Lets suppose that those are orthogonal questions.) Then the goal directed reasoners will manipulate this model in order to arrive at their results. and Stanislaw Ambroszkiewicz <sambrosz@ipipan.waw.pl> says What is the meaning of the formula: "?person owns ?book by Tolkien" Or, when is this formula true? My answer: If something happens, i.e., if the goal formula is translated into a plan, and then the plan is arranged as a workflow, and finally the workflow is executed successfully. The question of how terms get their meanings is interesting, but we are not going to solve it any time soon. Philosophers have been working on this problem for centuries, and especially in the last century have confronted problems much like the ones we're now exploring. They have found some interesting skeletal ideas, but most of them come down to saying "Such-and-such old-fashioned model is wrong, while such-and-such neat alternative is right." Unfortunately, the neat alternative is not very detailed. That's the bad news. The good news is that we don't need to solve the problem of meaning in order to build the Semantic Web. The idea that we do need to solve it is, I think, based on the following analogy: computer languages get their meanings from formal specifications of how expressions in those those languages correspond to states of a computation. The formal specification answers essentially all questions about the meanings. To apply the same idea to web-service description, we will have to specify in great detail what processes happen as a result of a certain expression being transmitted from one agent to another. In the extreme, we can _replace_ all occurrences of a defined term with its definiens. We can rewrite "X owns Y" as "X has received an invoice saying \ldots about Y." This is a problematic approach, because the suggested necessary and sufficient conditions are usually only an approximation. Usually there will be a large disjunction of ways in which someone could come to own something, even an open-ended disjunction as new ways come into use. This is exactly the critique that philosophers have leveled against "old-fashioned model number 1," the idea that the meaning of a term is given by some kind of definition. Another reason it's a bad idea is that it makes inference about the defined concept awkward. An agent may have a significant amount of reasoning to do using terms like "owns" and "pays for" before it ever gets around to resolving the meanings of the terms "operationally." Is it really plausible that all this inference is really about unwieldy disjunctions? Yet another reason is that there is no independent check on the veracity of a definition. An agent's goal might be to own an object of type Y. It faithfully carries out the protocols defining ownership, but then receives evidence (say, a letter from a federal prosecutor) informing it that it doesn't own a Y after all. From the definition point of view, this communication is incoherent. Ownership is nothing more or less than carrying out the protocol, so the statement "You carried out the protocol, but you don't own the object" means the same as "You carried out the protocol, but you didn't carry out the protocol." In principle, we could go back and edit the definition with further caveats, such as, "The merchant did not provide counterfeit proof of its own ownership," but it would be a lot simpler to separate the concept of ownership from the concept of the protocol, and just say that "Carrying out this protocol normally results in owning a Y." On rare occasions, it doesn't. So what is to be done? The answer is that we formalize concepts like ownership as thoroughly as it is possible to do. We provide ontologies in which "ownership," "payment," "delivery," "promissory notes," and such are all related together in various ways. These relationships, expressed as axioms, _constrain_ the meanings of the symbols being defined, but they can never fully specify them. So what? The important point is that a vocabulary provide the necessary lubrication for interagent discourse. If everyone uses it, and everyone agrees on the meanings of the terms, or agrees 99% of the time, then web services will be useful and roboust. On occasions when uncertainty creeps in, the committee in charge of the ontology gets together and edits or adds axioms to reflect a consensus. The bottom line is that we can relax. We don't need to shy away from using "real-world" terms in a formal language. We don't need to provide a philosophical theory of meaning before using a symbol like "trustworthy" in descriptions of web services. We do need to provide mechanisms for reasoning with formal languages, but those mechanisms can be oblivious to the meanings of the terms they manipulate. -- -- Drew McDermott
Received on Wednesday, 21 May 2003 17:16:45 UTC