Hi Folks, When you create an XML Schema, you are creating an abstraction. Is your abstraction sound? Read on! Recently I read an article about creating models of continuous things, by breaking the things up into
pieces [discretizing them]. The article used the phrase “unsound abstraction.” I didn’t know what that phrase meant, so I asked. Below is what I learned. If you have anything to add, I’d love to hear from you! /Roger
In general, it is an abstraction that delivers conclusions that do not transfer to reality (due to
the model's inaccuracies). In case of modeling system behaviors, an unsound abstraction would return a positive/satisfying answer ("the system always behaves correctly"/"the system is always safe") for a design that might not behave correctly or is not safe
in reality. Discretization may lead to unsoundness if, for example, the discretized range of values is not as
monotonic or smooth as its discrete abstraction. Suppose you have a traffic light and a car camera that detects its state, which is modeled as exclusively red, yellow, or green (an abstraction). In reality, though, the camera might take a picture at the very
moment when no light is on (because it's switching between them) or when both yellow and red are on (no clear mapping to the abstraction). So, properties like "the state of the traffic light is always known," and "it is always known whether to stop or go"
may hold for the abstraction but be violated in reality. Ivan Ruchkin |