===================== Pointers, version 0.2 ===================== In Storm, we have *blocks*, which are immutable (content type, octet sequence) pairs, and in the future we'll have *refs*, which will allows us to represent arbitrary concepts associated with an immutable blob of metadata about them (see ``ref_blocks--benja``__). However, for Storm to be useful, we also need a mechanism to provide *mutable* documents. This PEG proposes the first such *pointer* mechanism that stands a chance at having the persistency commitment made on it. __ ../ref_blocks--benja/peg.gen.html Concepts ======== What a pointer *is* ------------------- The basic idea about pointers is that they *point* to the Storm block containing the current version of a document. The pointer would thus represent this document. Pointers should provide history, i.e., it should be possible to browse the past versions of a document. The history should be permanent; if a version is in the history today, it should still be there in ten or twenty years. Pointers should have owners; only the owner of a pointer should be able to change that pointer. This PEG proposes to broaden the notion of a pointer, allowing it to identify *anything*, for example a document, but also a university, a brand of car, an RDF property, and so on, allowing arbitrary authoritative information to be associated with these things (by the owner of the pointer). As with HTTP URIs used to identify concepts in the Semantic Web, it would be useful if these pointers' URIs could be entered into a browser and some human-readable documentation about them would appear. Thus, all pointers, document or not document, can point to something to be shown in a browser-- be it a version of a document or a description of an abstract concept. (Aside: In fact, it may even be a description of a document; for example, a pointer representing the Haskell Report might show in a browser a page that allows you to download the report in HTML, PDF or PS.) What a pointer "does" ---------------------