Represents an individual object of a given object type produced by an experiment. Is required if we want to represent object-object collection hierarchies. NB the name DataObject is used iso Object, as the latter may lead to name clashes in serialisations.

In this model any artefact produced by a Protocol can be represented by an appropriate ObjectType and relations can exist between them. Some of these relations are many-to-one, i.e. between object collections and parent ojects. If such relations must also be represented in the output of an Experiment, it must be possible to represent individual objects.

A typical example is a cosmological simulation produccing N > 1 snapshots. We may want to represent each individual snapshot in the result, together with statistical information about the collections of particles contained in each.

The object can give values to properties related to objects of its type.

In principlpe this model now would allow one to describe an experiment in all details, with each individual object listed. This is as should be for a conceptual model, but in particular applications we envision that limits be put on the size of results. For example it does not make sense to store the complete results of a large cosmolgical simulation in this way, as the storage of property values is inefficient. 
