Next: Example
Up: Background
Previous: Labelling the Real World
Practicalities
Practical interoperability has to take account of pre-existing data
which may have been constructed using entirely different semantic
principles. In the case of feature identity, the task in hand is not so
much to provide support for those existing dataset collections which provide
sophisticated persistent identifiers as to provide mechanisms whereby
datasets without persistent identifiers can nevertheless offer useful
services as if they did. For example, a good standard should not
preclude the possibility that identity is constructed using a key based
on one or more attribute values (as used in many RDBMSs), but neither
should it mandate such an approach since many other GISs have a concept
of identity which cannot be adequately represented by that approach.
The process of standardisation introduces its own oddities and
restrictions which are not present in either commercial or
academic research software. In addition,
the goals themselves are different from most academic work in GIS. University
research tends to look for proof that an innovative technique is
feasible, elegant and efficient, irrespective of its compatibility with
existing systems, whereas standardization research has to bring the bulk
of the existing commercial implementations with it.
Thus introducing new concepts has to be done with great care:
- find the minimum number of new concepts required
- consider whether these concepts need to be reified as
software objects;
- if so reified, whether these objects should be named, and
- if so named, over what namespace the names should be unique.
A ``namespace'' is a concept which has been found increasingly useful in
the design of computer languages. The C++ language recently elevated it
to be an integral part of the language, and the Python language is
fundamentally designed around it [3].
Thus while a concept may be universally agreed as being a useful aid in
structuring a problem area, it can be nevertheless be productive avoid
naming or reifying it because that can then avoid an entire
harmonisation argument.
For those objects (concepts) we are going to name individually we then
consider how we might ``get one'' and what we could do with it once
we've got it, i.e. what other object might be a factory for it, and what
operations we might want to perform on it or with it.
Next: Example
Up: Background
Previous: Labelling the Real World
Tom Conversion Service