<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Barriers to Effective Agent Communication</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Position Statement</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Michael Uschold The Boeing Company P.</institution>
          <addr-line>O. Box 3707, MS 7L-40 Seattle, WA 98124-2207</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>In this position statement, we describe the role of ontologies in agent communication. We describe a number of key barriers to effective agent communication. We believe that these barriers are a major issue, holding back widespread uptake of agent technology. We outline a strategy for how to better understand and overcome these barriers.</p>
      </abstract>
      <kwd-group>
        <kwd>General Terms Standardization</kwd>
        <kwd>Languages</kwd>
        <kwd>Theory</kwd>
        <kwd>Design</kwd>
        <kwd>Reliability</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Position Statement
When agents communicate with each other, there needs to be
some way to ensure that the meaning of what one agent 'says' is
accurately conveyed to the other agent. There are two extremes, in
principal, for handling this problem. The simplest (and perhaps
the most common?) approach, it to ignore the problem altogether.
That is, just assume that all agents are using the same terms to
mean the same things. In practice, this will usually be an
assumption built into the application. This only works, however,
when one has full control over what agents exist, and what they
might communicate. In reality, agents need to interact in a much
wider world, where it will cannot be assumed that other agents
will use the same terms, or if they do, it cannot be assumed that
the terms will mean the same thing.</p>
      <p>The moment we accept the problem, and grant that agents may not
use the same terms to mean the same things, we need a way for an
agent to discover what another agent means when it
communicates. The basic idea for how to proceed, in theory,
anyway, is to encode the terms and their semantics in ontologies.
If agent 1 sends a message to agent 2, then along with this
message is an indicator of, or a pointer to what ontology agent 1
is using. The theory goes, that agent 2 can look in agent 1's
ontology to see what the terms mean, the message is successfully
communicated, the service is performed to specification, and they
all live happily ever after. The holy grail is for this to be able to
happen despite the following plethora of difficulties.
2.
3.
4.
5.
6.
7.
8.
9.</p>
      <p>different ontology languages are sometimes based on
different underlying paradigms (e.g. description logic,
firstorder logic, frame-based, taxonomy, semantic net, thesaurus)
some ontology languages are very expressive, some are not.
some ontology languages have a formally defined semantics,
some do not.
some ontology languages have inference support, some do
not.</p>
      <p>Even if the exact same language is used, two different people will
likely build two different ontologies in the same subject area.
These ontologies can be incompatible in various ways:</p>
    </sec>
    <sec id="sec-2">
      <title>People may use different terms for the same thing.</title>
    </sec>
    <sec id="sec-3">
      <title>People may use the same term for different things.</title>
      <p>A given notion, or concept may be modeled at different
levels of detail.</p>
      <p>A given notion or concept may be modeled using different
primitives in the language. E.g. is the notion of being red
modeled by having the attribute color, with value red? Or is
modeled as a class called something like RedThings? Or is it
both, where either 1) they are independent or 2) RedThings
is a derived class defined in terms of the attribute color and
the value red.
10. A given notion or concept may be modeled with a very
different fundamental underlying primitives. For example,
when modeling time, one might a time interval as a
primitive, another might use a time point as a basic primitive.
There is no reason to expect these two ontologies to be
compatible.</p>
      <p>Even if the exact same language is used, and if there is
substantial similarity in the underlying models and assumptions,
the inference required to determine whether two terms actually
mean the same thing, is in general, intractable.</p>
      <p>Many of these problems are inherent, and will never go away. The
challenge to the agent community, and the ontology community is
to discover where progress is possible, and to move forward. At
least two main approaches exist. First, a lot of benefit can be made
by increasing the degree of standardization, both in the languages
and in the content of the actual ontologies. Second, where
standardization is not possible, technologies need to be developed
for mapping and translating between and among ontologies.
Finally, when problems are known to be impossible, in general,
the challenge is to find ways to make simplifying assumptions
which enable agents to do useful things in practical situations.</p>
    </sec>
  </body>
  <back>
    <ref-list />
  </back>
</article>