Integration language = glue language + data source description language In the Rodin project at Wisconsin --- in which we've thus far written more code than papers, so don't ask me for a nice overview :-) --- we've been using Coral as, effectively, the integration language. Our experience makes me feel optimistic about the use of such a language for integration; I think Jeff's proposal of a Datalog like language will work. (I'm not sure whether Prolog or SQL syntax will ``fly'', but there's much to be said for Prolog syntax in this context, notably that it lends itself well to explanations. When your answers depend on someone else's data, explanations tend to be useful.) However, the ability to deal with set, list and other types of data cannot be avoided, I think. In this regard, I agree with Peter's push for a richer type facility. My preference would be for a Datalog-style language in which field values are drawn from a suitably rich set of types, perhaps even with a mechanism to define new ADTS --- although this last point will open a big new set of issues, and we should probably punt on this for now. While this would constitute an adequate language for integration purposes (for `gluing' together multiple pieces of information), integration decisions will depend upon *descriptions* of what a data source has to offer. One can take the position that the wrapper around the data source will accept queries in the core language, but: (1) Not all sources one is interested in will have such wrappers. (2) Independently of this point, we need to know what the answers mean. The description language, I think, needs to be driven by a careful consideration of the range of sources out there that we want to be able to integrate. This is where I see many of Rick's concerns pointing to. (And these considerations will also, I suspect compel the glue language to provide some kind of open-ended hook like an ADT defn facility or an external call mechanism or ...) Summary: I think there are really two components to an integration language --- the `glue' language used to gather together information from a variety of sources into a convenient user-level view, and the `description' language used to describe what a data source has to offer. Mediators/wrappers need to be aware of both.