It is interesting to imagine how such a useful program could operate
in a capability system. Retrieve uses its infinite authority to read any
file on the disk. Such authority is unlikely to be available in a capability
system. I suggest the following instead:
For a given word processor there are two factories
which produce new documents (word processor instances). One is discreet
and the other is not. The yield of the indiscreet factory deposits a RAT
(Read Ascii Text) capability with the retrieve service. (Its ability to
do this is the hole (the rat hole) that makes the factory indiscreet.)
When RAT is invoked the information of the document is returned in flat
ascii form. Now a program such as Retrieve can scan those documents that
have not been hidden. It can read compressed files and Acrobat files.
The RAT capability might be amplifiable to a full document capability to be returned to the invoker of Retrieve. This does not help to recall where that document lives in the system. Indeed it might be used to retrieve the document after all copies of the main capability to the document have been lost.
An order on the main capability returns a RAT key for the requestor to disseminate as he wishes.