To allow generic tools to extract meaningful information from objects of types for which they do not have pre-built knowledge, models should allow for annotations that indicate what a certain member means.
For example, an object might contain information about it's location. To a generic tool this information would be just numbers, unless a model contains information that specifically annotates the location with a "tag" that indicates it is a location.
An example:
class Car:/
latitude: float64, tags={position_latitude}
longitude: float64, tags={position_longitude}
A tag indicates that it is a property "of the object". An object might for example contain multiple positions, however the tag will only indicate the one that is the position of the object. A tag can therefore only appear once per type.
Another example is keeping track of various timestamps that relate to the object, like creation timestamp or last updated timestamp:
class Car:/
created: time, tags={time_created}
last_updated: time, tags={time_last_updated}
Tags allow for extending metadata of certain objects, without having to extend the builtin object header, which would increase footprint for all objects.
To allow generic tools to extract meaningful information from objects of types for which they do not have pre-built knowledge, models should allow for annotations that indicate what a certain member means.
For example, an object might contain information about it's location. To a generic tool this information would be just numbers, unless a model contains information that specifically annotates the location with a "tag" that indicates it is a location.
An example:
A tag indicates that it is a property "of the object". An object might for example contain multiple positions, however the tag will only indicate the one that is the position of the object. A tag can therefore only appear once per type.
Another example is keeping track of various timestamps that relate to the object, like creation timestamp or last updated timestamp:
Tags allow for extending metadata of certain objects, without having to extend the builtin object header, which would increase footprint for all objects.