Representing changes in semistructured data. Query language Chorel
could query over data and changes represented in DOEM. System implemented
in Lorel system.
Update on OEM model: node insertion, update of node values, and
addition and removal of labeled arcs.
DOEM: Use tags to annotate the changes on each node. There are four
kinds of annotations corresponding to fours updates: cre(t), upd(t, ov),
add(t), and rem(t).
In DOEM, every object has its oid, so the updates is easily
described as the operations on the object.
In Charel, put <tag> before and after a label, to find the
objects recently changed.
In OEM, there is no distinguish between data and schema, (as they are
semistructured), so in terms of XML, they are handling only the
well-formed XML documents.
They use OID to describe the changes, and using the tagged path
expression in their queries..
XMLTreeDiff can compare two DOM structures (or XML documents) by just
looking at the document structure, not the particular file representation
of it. It reports the differences in XML format as a sequence basic of
tree operations like change node, delete node and insert
node. XMLTreeDiff provides an update tool as well, which will update a DOM
by using a XML difference report, and a graphical user interface to
display the differences on the DOM trees themselves.
They use [XPath] for syntax of location of a portion of XML data.
They have extend the DOM model to handle DTD related operations.
They consider three types of basic updates on web data source: Ins,
Del and Chg. <Ins, o1, l, o2>
and <Del, o1, l, o2>represent the
insertion and deletion of the edge with label l from object o1
to object o2. <Chg, o, OldVal, NewVal>denotes
the change of the value of the atomic object o from OldVal
to NewVal. For both insertion and deletion, o1 must
be a complex object while o2 can be either an
atomic object or a complex one.
In terms of update propagation, they have following conclusions:
They still don't have DTD extensions.