Observation
A basic object expressing an information about observe data structure. On it's own the observation has little meaning, it server more like a metadata container. For example, we may want to express when the observation was made, who made the observation or a level of certainty.
Observations allow a user to attach information, with meaning specified by the predicate. Predicate also limit the possible subject and value of the observation.
Meta-model
// @lc-entity
// @lc-identifier dsc:Predicate
class Predicate<SubjectType, ObjectType> {}
// @lc-entity
// @lc-identifier dsc:Observation
class Observation {
// @lc-property
// @lc-identifier dsc:subject
subject: SubjectType | null;
// @lc-property
// @lc-identifier dsc:predicate
predicate: Predicate<SubjectType, ObjectType>;
// @lc-property
// @lc-identifier dsc:object
object: ObjectType | null;
}