Integrated information systems are often realized as data-intensive Web sit
es, which integrate data from multiple data sources. We present a system, c
alled STRUDEL, for specifying and generating data-intensive Web sites. STRU
DEL separates the tasks of accessing and integrating a site's data sources,
building its structure, and generating its HTML representation. STRUDEL's
declarative query language, called StruQL, supports the first two tasks. Un
like ad-hoc database queries, a StruQL query is a software artifact that mu
st be extensible and reusable. To support more modular and reusable site-de
finition queries, we extend StruQL with functions and describe how the new
language, FunStruQL, better supports common site-engineering tasks, such as
choosing a strategy for generating the site's pages dynamically and/or sta
tically. To substantiate STRUDEL's benefits, we describe the re-engineering
of a production Web site using FunStruQL and show that the new site is sma
ller, more reusable, and unlike the original site, can be analyzed and opti
mized.