Semistructured data may be irregular and incomplete and does not necessaril
y conform to a fixed schema. As with structured data, it is often desirable
to maintain a history of changes to data, and to query over both the data
and the changes. Representing and querying changes in semistructured data i
s more difficult than in structured data due to the irregularity and lack o
f schema. We present a model for representing changes in semistructured dat
a and a language for querying over these changes. An important feature of o
ur approach is that we represent and query changes directly as annotations
on the affected data, instead of indirectly as the difference between datab
ase states. We describe the implementation of our model and query language.
We present extensions that permit convenient snapshot-based access in our
change-based data model. We also describe our design and implementation of
a query subscription service that permits users to subscribe to changes in
semistructured information sources. (C) 1999 John Wiley & Sons, Inc.