The "t-String" Data Type

The "t-String" data type allows for entering string-typed values that retain their evolution through time. For example, consider the case that we want to retain history of the addresses at which some organization is installed; for this purpose we would use a t-String typed slot named "Address". In the instance editing window, the slot would be rendered as standard Protégé list box, and we would use the "Add Value" button to enter the proper values for the organization whereabouts, each one tagged with a period expressing when the organization was installed at the specific location, e.g.:

[2000-01-30, 2004-12-06]Somewhere, Someplace 23, 12345, Neverland
[2004-12-07, 2006-03-08]Elsewhere, Otherplace 42, 34567, Neverland
[2006-04, now]Anywhere, Anyplace 4, 67890, Neverland

Note that it is allowed to use mixed granularities across periods timestamping different values (i.e. the first two rows use day-level granularity, while the third one employs month-level); the use of "now" and "unknown" is also permitted.

The semantics for the "multiple" check box in the slot property window are modified for the t-String data type as follows:

  1. if the "multiple" check box is not checked, then it is not allowed for any two list entries to have overlapping timestamps i.e. not multiple means that for any given point in time, at most one value is allowed. If entries with overlapping timestamps are detected in the list, the slot value is considered erroneous and the list is highlighted with a red border, while the tooltip text is set to indicate the offending periods.
  2. if the "multiple" check box is checked, then the timestamp overlap check is not performed, effectively allowing any number of list entries to have overlapping timestamps. This may be used to model cases that multiple values for a single point in time are allowed in the real world, such as organizations with multiple installations (e.g. headquarters, agencies, warehouses etc), lists of professors serving in a University department and so forth.

Under these definitions, the value list depicted in the following table is not valid for a t-String slot characterized as "non-multiple" because the second and third rows have overlapping timestamps; the same value list is valid for a t-String slot characterized as "multiple".

[2000-01-30, 2004-12-06]Somewhere, Someplace 23, 12345, Neverland
[2004-12-07, 2006-03-08]Elsewhere, Otherplace 42, 34567, Neverland
[2005-11, 2006-04-18 10:11]Wherever, Everyplace 88, 98765, Neverland
[2006-04, now]Anywhere, Anyplace 4, 67890, Neverland

No overlap check is performed for timestamps using the "now" and "unknown" date representations at either end.