Re: TRM - Morbidity has set in, or not?

From: Keith H Duggar <duggar_at_alum.mit.edu>
Date: 18 May 2006 16:00:40 -0700
Message-ID: <1147993240.287121.264470_at_j73g2000cwa.googlegroups.com>


Bob Badour wrote:
> I think now is a good time to revisit Keith's statement
> about simulation. One should first note that there are
> different types of simulation.
>
> Simula was invented for the sort of simulation that builts
> large unpredictable state machines by combining lots of
> small predictable state machines arranged in complex
> patterns.

[snip interesting circuit simulation example]

(forgive my ignorance, what language was your example written in? And would I need a particular DBMS to run a simulation coded in this way? I'm trying to work through the example it's just a little new to me.)

The type of simulation I had in mind was one having a large (though fairly simple) state with a complex unpredictable (stochastic) transition function. For example a few years ago I implemented (in C++) a bovine spongiform encephalopathy (BSE) or mad cow disease simulator as part of a team working for the USDA. The state of the simulation is simply a population (up to a hundred million or so) of bovines. Some of these bovines may be infected with BSE. Those that are infected possess additional attributes. For example here is my attempt at describing this with two relations:

bovines

purpose     : BEEF DAIRY BREED
gender      : MALE FEMALE
birth       : date

sick bovines

purpose     : BEEF DAIRY BREED
gender      : MALE FEMALE
birth       : date
infected    : date    -- when infected
clinical    : date    -- when symptoms will appear
contagious  : date    -- when maternal transfer is possible
termination : date    -- when BSE will kill this animal


The stochastic transition function is composed of such things at natural birth and death, culling and subsequent rendering (conversion to animal feed components) or slaughter for human consumption, death from BSE and subsequent disposition (burial or rendering), feeding of the bovines with possible infection from rendered BSE, spontaneous infection, etc. These functions are complicated and stochastic though typically do not vary with time (though they can).

As the simulation progresses from state to state we observe and summarize the state as well as track some aspects of the transition. For example we might summarize the number of infected cattle and we might track how much BSE went into the human food supply.

Now of course we made choices on how to structure the state and parameters which leads to this point

Marshall wrote:
> Physical independence comes in when one considers how much
> work many C++ programmers have to do to, for example, lay
> out their data in a way that will satisfy a graphics
> coprocessor, or enable them to use SIMD instructions. It
> would be better if this was abstracted from the code.

Or even laying out data in a structure convenient for your own analysis. A particular network may be very convenient for one analysis and a nightmare for other. I'm beginning to understand this is the concept of "access paths" correct? And that a network model encodes and optimizes a particular access path whereas a relational model does not? And thus a RM allows many access paths? Efficiently?

I realize that those questions are somewhat flawed because matters of implementation, efficiency, etc are orthogonal (partially? totally?) to the relational data model. For some reason, however, I haven't fully assimilated this concept. Probably from years of following the Tao of pointers.

Finally forgive my repeating this question (from a thread I tried to move this discussion to); as I say I'm simply VERY curious and would love some input.

Marshall wrote:
> To achieve the big wins, though, we need a programming
> language that uses the RM at its core, and that has
> support for physical independence. I am afraid that at
> this time this is just a wish.

I'm glad you brought this up because I'm VERY curious about this. Is it so that such a language is still just a dream? What about APL, Joy, K, and Prolog for example? What are their good and bad points from a relational support perspective? Is there a RM programming language on the horizon or under development?

  • Keith --
Received on Fri May 19 2006 - 01:00:40 CEST

Original text of this message