Automatic Tools for Mapping Between Ontologies

(In cooperation with BBN and Kestrel.)

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.

There are two phases in the process of connecting agents:

  1. Finding a common ontology in which their contents can be expressed.
  2. Finding a "glue function" that translates the data structures of one to the format of the other.

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:

A proposal for extending N3, which supersedes:

A proposal for reforming RDF


Sample DAML Ontologies

XML pages using those ontologies

DAML Homework 2