W3C home > Mailing lists > Public > public-semweb-lifesci@w3.org > January 2007

Re: Versioning vs Temporal modeling of Patient State

From: <dirk.colaert@agfa.com>
Date: Sat, 13 Jan 2007 08:51:52 +0100
To: ora.lassila@nokia.com
Cc: Alan Ruttenberg <alanruttenberg@gmail.com>, kc28 <kei.cheung@yale.edu>, Nigam Haresh Shah <nigam@stanford.edu>, w3c semweb hcls <public-semweb-lifesci@w3.org>, public-semweb-lifesci-request@w3.org, "Kashyap, Vipul" <VKASHYAP1@PARTNERS.ORG>, Trish Whetzel <whetzel@pcbi.upenn.edu>
Message-ID: <OF45860839.A953357A-ONC1257262.0027DE74-C1257262.002B340D@agfa.com>
Personally I don't see too much of a difference between versioning of 
models and versioning of instances. The former is needed to  bundle a 
couple of *updates* of our world model (stamped with a version number), 
the latter is needed because also instance data change and previous values 
still keep being important. You can discuss wether a new version of an 
instance is really a new version or a new instance (maybe with a link to 
the previous instance). To me it doesn't matter and looks like an 
implentation issue.
We have to realize that versioning is an artifact anyway. The real world 
keeps on going and doesn't hold its breath to take snapshots. It is our 
need to document the world at a certain point in time that creates the 
need of snapshots: for example documenting your assessment of a patient by 
giving a diagnosis. Keeping track of previous *versions* of instances is 
very important in medicin, not at least for legal issues.

When you look at implementations of electronic patient records you see 
that different approaches are chosen: the more simple (simplistic?) 
approach is to take each patient encounter as a container and put all your 
instances of clinical data in it (diagnoses, medication, procedures, etc 
...). This gives you an easy way of handling changes over time. In the 
next encounter the diagnosis is changed an you just add a new instance of 
the diagnosis in the new container. While escaping from the versioning 
problems you loose information. In the real world there is an *evolution* 
of the patient condition and you didn't capture that.
Other implementations consider a diagnosis as something pertaining to the 
patient and evolving. At a certain moment in time they link the current 
*version* of that diagnosis to the encounter. In a next encounter you can 
again link the - maybe changed- diagnosis to the new encounter. The result 
is that for any encounter you have captured the current state of the 
patient and you have a nice way of looking at the evolution of that state 
by looking at the different versions.

What do we learn from that?
In both ways you try to capture the ever changing world by introducing a 
time concept: the encounter. In the first approach you make time 
containers and put instances in it, in the second approach you make time 
stamped versions and link them to time containers. I perfer the second 
approach because of the added information.
The point is that versioning means: adding a temporal concept to the 
snapshots of the world. Because the history matters (both for models and 
instances) we better model that temporal aspect as well. It will enable us 
to reason about it.
As for the difference between *update* and *version*: my intuitive feeling 
is that an update means a atomic change and a version means a bundled and 
officially relleased collection of these changes. And indeed the latter 
will be more appropriate for models than for instances.

Dirk
______________________________________
Dr. Dirk Colaert MD
Advanced Clinical Application Research Manager
Agfa Healthcare               mobile: +32 497 470 871



Ora Lassila <ora.lassila@nokia.com> 
Sent by: public-semweb-lifesci-request@w3.org
12/01/2007 17:06

To
"Kashyap, Vipul" <VKASHYAP1@PARTNERS.ORG>, w3c semweb hcls 
<public-semweb-lifesci@w3.org>
cc
Trish Whetzel <whetzel@pcbi.upenn.edu>, kc28 <kei.cheung@yale.edu>, Alan 
Ruttenberg <alanruttenberg@gmail.com>, Nigam Haresh Shah 
<nigam@stanford.edu>
Subject
Re: Versioning vs Temporal modeling of Patient State








Vipul,


On 2007-01-12 10:21, "Kashyap, Vipul" <VKASHYAP1@PARTNERS.ORG> wrote:

>> my experience is that issues of versioning are quite different from the
>> issues of temporl modeling. Often in the former case, we don't have to
>> concern ourselves with what changes have taken place, whereas in the
>> latter
>> case, we often need to focus on the changes themselves (i.e., questions 
of
>> what changes, how, and *when* are critical).
> 
> [VK] That is a good way to distinguish the issues. Unfortunately, the 
few use
> cases that were provided to me suggested issues of versioning were 
confounded
> with issues of temporal data modeling.
> 
> The latter notion of versioning is from the content management 
perspective,
> where the notion of what.why,who changed it is important, i.e., 
provenance.
> 
> This underlines the need for a clear definition of versioning and 
provenance
> in
> the life sciences context.

[OL] Hmm... still, from the content management perspective, you may not
*reason* over the changes or (more generally) the temporal extent of 
things.
In a way, there is a different whether you are modeling the real world, or
modeling the documents that contain models that represent the real world.

Confusing the various (meta)levels can quickly mess up your head. :-) 
There
are multiple dimensions all of which may have to be represented: the
temporal dimension, the stack of metalevels (models, models of models,
etc.), perhaps others.

>> This is an old and difficult problem with systems employing complex
>> representations of the world. It is often not sufficient to operate 
within
>> a
>> mere snapshot of the world. One has to ask whether time (or the changes
>> over
>> time) matter, or whether at any moment it is sufficient to consider a
>> snapshot.
> 
> [VK] The key is how you support this functional requirement. Either you 
could
> create an appropriate temporal model that provides the framework 
acquisition
> and
> querying of this data; or
> you could fall back on versioning functionality to get this information.
> IMHO, there is more value in taking the former approach as it can be fed 
into
> versioning systems that compute the changes or "diffs"

[OL] Regardless of how you do this, you have to decide whether you really
are reasoning over/about the changes (in time). The information (about
changes) may be *acquired* from the versioning system, but then has to be
modeled *outside* the versioning system. Acquisition vs. processing is an
important distinction.

>> One might draw analogies to "compile-time vs. run-time" considerations
>> often
>> occurring in computer science... in fact, the question of "class 
changes
>> vs.
>> instance changes" is exactly that.
> 
> [VK] Agree. However whether an instance is actually changing or whether 
a
> particular property of the individual is naturally modeled as a dynamic 
time
> varying data type need to be identified.

[OL] This may or may not be a relevant distinction, depending on how you
implement thing, what tools you use, etc. But generally, I agree.

Regards,

    - Ora


>> BTW, there is a paper that points out that temporal modeling/reasoning 
is
>> re-invented/re-implemented over and over because of the lack of 
"built-in"
>> support for it in KR systems:
>> 
>> Thomas L. Dean and Drew McDermott. Temporal Data Base Management.
>> Artificial
>> Intelligence, 32(1):155, 1987.
> 
> [VK] Thanks for the above info.
> 
> ---Vipul
> 
> 
> 
> 
> THE INFORMATION TRANSMITTED IN THIS ELECTRONIC COMMUNICATION IS INTENDED 
ONLY
> FOR THE PERSON OR ENTITY TO WHOM IT IS ADDRESSED AND MAY CONTAIN 
CONFIDENTIAL
> AND/OR PRIVILEGED MATERIAL.  ANY REVIEW, RETRANSMISSION, DISSEMINATION 
OR
> OTHER USE OF OR TAKING OF ANY ACTION IN RELIANCE UPON, THIS INFORMATION 
BY
> PERSONS OR ENTITIES OTHER THAN THE INTENDED RECIPIENT IS PROHIBITED.  IF 
YOU
> RECEIVED THIS INFORMATION IN ERROR, PLEASE CONTACT THE SENDER AND THE 
PRIVACY
> OFFICER, AND PROPERLY DISPOSE OF THIS INFORMATION.
> 
> 
Received on Saturday, 13 January 2007 07:52:23 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 17:20:22 UTC