vocabulary SeparateSubtype
;
/*
* Value Types */
Claim ID is written as Auto Counter; Date Time is written as Date Time; Person Name is written as String;
/*
* Entity Types */
Claim is identified by its ID;
Incident is identified by Claim where
Claim concerns at most one Incident, Incident resulted in one Claim;
Incident occurred on at most one Date Time;
Person is identified by its Name;
Vehicle Incident is a kind of Incident [separate];
Witness is a kind of Person; Witness saw at least one Incident,
Incident was independently witnessed by at most one Witness;
Driver is a kind of Person; Vehicle Incident occurred while at most one Driver was in charge;
/*
* Constraints: */
for each Incident, Person at most one of these holds:
Incident is a Vehicle Incident that occurred while Driver was in charge and Driver is a kind of Person, Incident was independently witnessed by Witness;