next up previous
Next: Mechanisms to Declare Scopes Up: Feature Identities, Descriptors and Previous: Mechanisms

   
What do we need Identifiers For?

Having reviewed a bewildering array of identification mechanisms, nearly all under active development, we can see that we really do need some clearer idea of what we want identifiers for and how we want to use them:
1.
When doing updates, we need to be able to determine if the supplied identifier in the update refers to a feature in the original dataset to decide whether to update it or to create a new one.
2.
When comparing versions, we want to be able to find the previous version of a feature from the current version and vice versa.
3.
When doing some work outside a GIS, we want to be able to make a reference to specific features in a published dataset which persists for some indefinite time into the future.
4.
Within some defined scope (usually the ``same'' dataset), we want to assert that a relationship of a certain type exists between two features and we want this relationship to persist when any feature collection containing the related features is copied to another dataset.
5.
When we copy a feature collection in its entirity, it would be useful if there were some simple relationship between the feature handles in the two copies, e.g. differing only in some prefix, so that access in both directions were quick and easy.
We introduced feature descriptors and feature handles earlier; but how can we use them ? What do we mean when we say a feature descriptor ``returns a feature''? There are two possibilities:
1.
we get a lump of binary data encoded in a ``well-known format'' which contains all the feature's attribute data and sufficient references to a schema to be able to decode the names and types of the attributes,
2.
we get a feature handle which incorporates the identification of the scope in which is is valid.
Whereas when we ask what happens when a feature handle ``returns a feature'', we must mean that we get the binary lump.

Assuming that we used the descriptor to make a query on some third-party indexing service, we get a handle but we must then find the actual dataset repository. We require some naming scheme so that we can use the handle to then obtain information about the scope object itself (the dataset).

Each scope may have its own coding function which it uses to evaluate the handle and to return the feature itself (in a well-known binary format).

Some scopes may publish their coding functions and allow independent access into the dataset, e.g. a directory tree of files in well-known formats, others may maintain their own integrity and require access using opaque handles using a private coding function.


 
next up previous
Next: Mechanisms to Declare Scopes Up: Feature Identities, Descriptors and Previous: Mechanisms
Tom Conversion Service