Dear Sjir
Your example is an interesting one, and does illustrate a difference between ORM and CogNIAM. In CogNIAM, I take it that you treat a fact type such as
Person lived in Country from Date to Date
as an asserted fact type, allowing that the end date is optional, which means that you allow nulls in asserted fact instances. For example, assuming for simplicity that we can identify people by their first given name, and that countries are identifed by 2-letter ISO country codes and that dates are identified by year-month-date strings, we might populate the fact type with the following fact instance:
The Person with first givenname 'Terry' lived in the Country with the countrycode 'US' from the Date with ymd datestring '2000-02-15' to the Date NULL.
To save writing, let's leave the reference schemes implicit, and now represent the fact instance by the tuple
'Terry', 'US', '2000-02-15', NULL
This approach is of course convenient for storing facts in relational tables, since the relation scheme for this case (allowing that a person may have multiple habitations in the same country) may be specified as
Habitation ( personName, countryCode, startDate, [endDate] )
with additional constraints such as uniqueness over (personName, countryCode, endDate) and other constraints to ensure endDate >= startDate for the same habitation and that habitation periods for the same person don't overlap. We can now conveniently populate this table with many rows, e.g.
Habitation ( personName, countryCode, startDate, [endDate] )
'Sjir', 'NL', '1950-01-22', '1982-02-03'
'Sjir', 'AU', '1982-02-04', '1986-12-31'
'Sjir', 'NL', '1987-01-01', NULL
''Terry', 'US', '2000-02-15', NULL
In ORM, we do not allow nulls in asserted facts, so if presented with this population in a report to verbalize, we would proceed differently. In looking at the last row, we see simpy the fact that Terry began a habitation in the US on 2000-02-15, which we may treat as an instance of the fact type
Person began a habitation in Country on Date.
We do not attempt here to verbalize something like "until NULL", as the NULL simply indicates the absence of a fact. Looking at the first row, we might have first verbalized it as a quaternary indicating Sjir lived the The Netherlands from 1950-01-22 to 1982-02-03. However, now that we know the end date might not always be known (e.g. rows 3 and 4), we rephrase row 1 by stating the smaller ternary fact about the habitation start (Sjir began a habitation in The Netherlands on 1950-01-2), and then attach the end fact to that (That Habitation ended on 1982-02-03), making the end fact type optional in the schema. This leads to the following nested formualtion for the schema:
Person began a habitation in Country on Date: objectify as "Habitation";
That Habitation ended on Date (optional)
Uniqueness constraints are added (internal and external uniqueness), and other temporal constraints as discussed before. In the second edition of Information Modeling and Relational Databases (p. 422, Figure 10.25) I discuss a similar example, and also show various alternative ways to model the situation (e.g. introduce a simple identifer for the habitation).
In ORM, you may still use the quaternary formulation if you like, but as a derived fact type (defined in terms of the nested formulation). ORM allows nulls only in derived facts, and regards relation schemes as simply derived fact types (typically compound). In ORM, it is not uncommon in Step 1 of the CSDP to initially verbalize in a way that is later reformulated, with the option of retaining the initial verbalization as a derived fact.
As another issue, note that if we had COMPLETE knowledge of habitation facts, we could model the situation with yet another alternative, where we have two ternary fact types "Person began a habitation in Country on Date" and "Person ended a habitation in Country on Date", with a pair-subset constraint from the Person-Country role pair of the end fact type to the Person-Country role pair in the start fact type. This flattened approach fails however if we have incomplete knowledge. For example, w.r.t. rows 1 and 2 of the above sample population suppose we know only that Sjir started a habitation in NL on 1950-01-22 and ended a habitation in NL on 1986-12-31: from this it would be incorrect to deduce that Sjir lived in NL from 1950-01-22 to 1986-12-31.