Here's my current understanding of inspection and absorption. Please let me
know if it is not correct or not clear.
Inspection
Inspection: operations that can be performed
while positioned at each item's start tag. Each
item can be treated as opaque. There is no need
to peek inside each item.
These are inspection operations: count(), exists(),
name().
Consider a sequence of items. The function count()
can count each item in the sequence, without peeking
inside each item.
Inspection operations are those that require only a
surface understanding of the items: we merely skim
the items.
Absorption
Absorption: operations that require going inside each
item.
These are absorption operations: string(), data(),
xsl:value-of.
Consider a sequence of items. The function string()
requires going inside each item in the sequence to
collect and concatenate all the values.
Absorption operations are those that require a deep
understanding of the items: we must absorb all the
information in the items.