Automatic Tools for Mapping Between Ontologies

A Project in the 
DARPA Agent Markup Language (DAML)
Program

Drew V. McDermott, Yale University (drew.mcdermott@yale.edu)
Douglas R. Smith, Kestrel Institute (smith@kestrel.edu)
Mark H. Burstein, BBN Technologies (burstein@bbn.com)

Agent communication will eventually require the ability for two or more agents to connect together even though they were not explicitly designed to connect together. There are several facets to this problem, but the hardest part is translating from the data structures of one agent to the data structures of another. We assume that the idea of connecting two agents has been proposed by some other entity, such as a "matchmaker." We also assume that the provider of the agent has specified the content of its inputs and outputs using DAML, the DARPA Agent Markup Language. This project is developing ways to ensure that the messages these agents exchange are meaningful to each, by translating between their published DAML ontologies, and planning tools that can use DAML service descriptions to compose sequences of messages that accomplish user goals.


Developed Software:


Details of approach to translation:
There are two phases in the process of connecting agents:

The first phase requires ontologies to be linked together, with translation procedures supplied by human knowledge engineers. This translation process is not in general a one-to-one mapping between vocabulary items. In general, one ontology may "make more distinctions" than the other, so that translating between them requires adding or deleting contextual information. For example, if one ontology Ont1 specifies the times at which propositions are true, and the other, Ont2, is timeless, then the translation from Ont1 to Ont2 requires fixing a time; the translation back requires adding a constant time.

Once the two content specifications are in the same notation, there remains the task of translating individual instances of the output of one agent to corresponding instances of the input of the other. For example, if the first agent supplies tuples giving (mutual-fund, total-dividends, tax-exempt-dividends), and the second wants a tuple (mutual-fund, taxable-dividends), then we must apply the function

(lambda (m, d, x) (m, d-x))
to each tuple. We produce such functions automatically by inspection of the content specs. We are looking for a function F such that
(map F 
  (map 
    (lambda (m) 
       (m, 
        tax_ex(taxpayer, m, year)
           + taxable(taxpayer, m, year), 
        tax_ex(taxpayer, m, year)))
  (mutual-funds taxpayer)))
=
(map 
   (lambda (m) 
      (m, taxable(taxpayer,m,year)))
   (mutual-funds taxpayer))

We use a heuristic search to transform the right-hand side of the equation until the answer is available by inspection.



Links at this site:

The latest version of the DRS Guide , an RDF encoding that generalizes the Owl Rules Language (SWRL). Formalized by the DRS OWL Ontology.

Sample DAML Ontologies

XML pages using those ontologies DAML Homework 2