Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[mdt-sbvr.dev] 3rd set of comments on MRV

I started trying to model individual concepts using the MRV and LFSV models. For example, "Driver Bill" and "Driver Bill has age 35" and "Driver Bill rents car A". Here's what I noticed:

* Most of LFSV is missing. In particular, AtomicFormulation and RoleBinding are not implemented -- and I can't model something as simple as "Driver Bill has age 35" without those.

* I'm surprised to see BindableTarget in MRV since it is defined in the LFSV part of the specification. I'm guessing that's because _expression_ is a kind of BindableTarget -- and otherwise _expression_ would be defined as a kind of Thing in MRV. Is that right? Perhaps this is also an SBVR issue.

* Since a Text is a kind of _expression_, which is a kind of BindableTarget, I can see how the string "Bill", instantiated as a Text, can participate in an AtomicFormulation. But I don't see how a boolean true/false value or a number can be a BindableTarget. For example "Driver Bill is of age" and "Driver Bill has age 35". I think this is a problem with the SBVR spec. Comments?

* I previously commented on the use of XPATH references (rather than UUIDs) between model elements. I think it should be possible to put these individual concepts in their own XML file, separate from the model file. But separating the individual concepts from the the model itself makes it likely that one will change independently of the other. Similarly, if one SBVR vocabulary incorporates another vocabulary, it is likely that they will be kept separately and evolve independently. XPATH references between separate vocabularies will be particularly brittle.

* Concept has both a getInstances() and a getExtension() method, reflecting the fact that the SBVR specification models both of these. However, the specification is clear that an instance is "thing that is in an extension of a concept " and also that "A thing is an instance of a concept if and only if the thing is in the extension of the concept. " Therefore, it seems like these two methods must return the same values, and hence one is redundant. (Also, it seems to me that SBVR figure 8.9 would be clearer if the association between concept and thing had the text "(subsets includes)" to show that this association is derived from the "set includes thing" association shown in the same figure. Comments?)

* I noticed a class "Element" in MRV that isn't used anywhere, and doesn't even have a corresponding "impl" class. I think it should be dropped.


I'm stymied at this point because of the missing AtomicFormulation. Is someone creating it, or should I do it for myself, or what?

--------------------------------
Mark H. Linehan
STSM, Model Driven Business Transformation
IBM Research

phone: (914) 945-1038 or IBM tieline 862-1038
internet: mlinehan@xxxxxxxxxx


Back to the top