Today I finally finished reading chapter 13 of Using Z. I've been looking at this for days, and I'm still not sure I get it. I'll probably have to come back to it later.
This chapter covers schema factorization and promotion. It seems that this relates to how you can model indexed collections of things. The examples include things like arrays and the player scores in Trivial Pursuit. The basic idea seems to be that, given the right conditions, you can describe the global state in terms of local states. So, instead of having a schema to describe the global state, you can factor this out as a schema describing the local state and a promotion schema, which basically determines how changes in the local state affect the global state.
What I don't get is why you would want to define things in terms of promotion schemas and how to you would go about constructing them. Maybe I've just put up a mental block, but it kind of seems like this method is overly complicated. The concept seems reasonable enough, but the examples just seem to make things more difficult than they need to be. Perhaps promotion suffers from the same problem as teaching object-orientation - all the good examples are too comlicated for beginners and all the examples beginners can handle are incredibly stupid applications of the concept.
It doesn't help that I'm starting to drown in the notation in this chapter. I think I'm going to have to go back over the last few chapters again soon. For instance, I keep wondering where the thetas are coming from. Of course, the theta operator indicates a characteristic binding, which was never really defined with any clarity. The book pretty much just said it's a binding that characterizes a schema by binding, e.g. element a to a, b to b, and so on. What, exactly, that means and why I should care is still an open question.
That's enough for now. It's late, I'm tired, and I just don't care anymore. Plus I'm pissed off because VMware's network bridging module has been causing kernel panics every time I try to use it.
You can reply to this entry by leaving a comment below. You can send TrackBack pings to this URL. This entry accepts Pingbacks from other blogs. You can follow comments on this entry by subscribing to the RSS feed.