7 Lessons Learned and Future work
Our concepts of relations and Objects consisting of Versions have proved to be
technically well suited for storage and retrieval of time-variant data. The advantage
of using Versions is that holistic statements (as opposed to statements about single
attributes) about some entity over certain intervals can be made.
Adding support for time-variant artifacts doesn’t come for free, but the experience
with applying our model to the prototype scenario has shown that it can be done with
reasonable effort. The model provides lightweight metaphors and a small but sufficient
set of predefined operations promising a steep learning curve. Application developers
often implement relations as attributes of the objects involved. Expressing temporal
changes of relations between objects as changes in their respective attributes instead
of using additional time-variant entities supports this point of view. The ability to ex-
press temporal changes can be incorporated into an existing application model without
changing its basic structure. Business logic can be implemented with a few rules in
mind that map desired changes in the data model to the six operations of our temporal
model. The price for simplicity is increased redundancy by saving unchanged attributes
multiple times. This should be coped with by a more efficient versioning layer for ob-
jects that stores version differences instead of full object copies. Another solution would
be a temporally grouped representation (that is, every attribute holds its own history).
Such a representation can be serialized using XML, rather complicated table structures
in common RDBMS, or nested tables as supported by SQL:2003.
From our point of view, finding sufficient user interface metaphors is crucial for
implementing “temporal awareness” into groupware. Users are accustomed to software
that only has concepts for “now”. If a person is removed from a group, the interaction
either happens because the person just left the group or the person was wrongly assigned
to it. In conventional groupware there is no need to care about the difference between
these operations because the result is the same – the person is currently not in the group.
If we start to support time variance we have to make the user aware of a distinction he
is not used to express explicitly. This could prove to be much harder than implementing
an efficient data model.
Virtual Organizations can employ software similar to our prototype to keep track of
all their internal changes. However in real world settings, one would need to consider
concurrency and transactional issues. Enhanced access control would be necessary to
prevent unauthorized users from overwriting information that refers to the past.
We also strive for more intuitive ways to input information, not forcing users to think
in terms of versions. Our goal is to empower users to intuitively enter facts like “person
X changed her e-mail address to w@xyz.com in 2006”. We want them to be able to
specify single facts (as opposed to filling in a complete form) and also want to support
additional unspecific, “fuzzy” time values. Next, we want to examine possibilities how
this can be supported at the user interface level. In addition, we want to explore how
time-variant information can be visualized and manipulated graphically. We already
developed concepts for interactive “time bars”, that were however not included in our
prototype due to technical limitations. These concepts need to be refined, evaluated and
extended to support large amounts of data and longer time intervals, for example using
perspective distortion and Overview and Detail techniques.
43