Reviews:BenedictoRodriguezCastro about Object with states 2
From Odp
Review about Submissions:Object with states
Overall suggestion (score): 1 - needs minor revision
The proposed pattern addresses a very recurrent modeling scenario in real world Web applications and puts forward a generic solution, domain-independent with a promising potential for reusability. In terms of functionality, the pattern submitted addresses the targeted modeling scenario. On the other hand, in terms of description and documentation, there are some important aspects captured in the rest of this report that in my view have not been sufficiently documented and discussed.
Overall, I think this pattern fits very well the WOP workshop and can provide a very interesting topic of discussion among participants. I would recommend a rating of 1 ("weak accept" or "needs minor revision").- "Relation to Other Patterns",
- "Overall Understandability",
- "Clear Relevance and Consequences",
- "Clear Figures and Illustrations", and
- "Missing information".However, I believe that the relation between the two is stronger than the author states. In fact I believe that "Objects with states" could be seen as simply an extension of the VP pattern because the parallelism between the two goes beyond what it is discussed in the submission.
For example, consider the graphocal representation of the OWS pattern given in the submission and Figure 1 in the VP pattern introduced at: http://www.w3.org/TR/swbp-specified-values/
The following functional equivalences between the elements of both patterns (where functional equivalences refers to elements that perform the same or analogous function) could be identified:
- The State class partition (and its 3 individuals) is analogous to the Health_Value class partition (and its 3 individuals).
- The has_state property is analogous to the has_health_status property.
- The Object class is analogous to the Person class.
- The ObjectStateA, -B, -C classes are analogous to the class Healty_Person and to the hypothetical classes Medium_Health_Person, Poor_Health_Person respectively if the last two were to be declared in the VP partition (which in Figure 1 are not).
Up to this point the OWS pattern can be seen as an instantiation of the VP pattern for a particular modeling scenario. The novelty of the OWS, where it extends the VP pattern, comes from these additional requirements:
- The OWS pattern requires a subclass of Object (ObjectStateA, -B, -C) for every individual of type State, while the VP pattern does not.
- The Object class is the disjoint union of its subclasses (which can be seen also as a VP pattern in itself as per Figure 2 in http://www.w3.org/TR/swbp-specified-values/). This characteristic is not required by the VP pattern (i.e. Person does not have to be the disjoint union of Healty_Person, etc.).
- The additional properties p1, p2, p3, etc. introduced to characterize the implications of an object being in a given state.
- The cardinality constraints in all object properties.
Conversely, there is a key feature in the VP pattern that in the version of the OWS submitted is not present or discussed. That is:
- The class Healthy_Person includes an owl:equivalentClass axiom that allows a standard DL-reasoner to classify all individuals of type Person whose value for has_health_status is good_health as individuals of type Healthy_Person as well.
- Analogous inferences would be possible for individuals of type Object. They could be automatically classified as individuals of the corresponding ObjectStateA, -B, -C class, if these classes were to follow an implementation analogous to Healthy_Person (replacing the applicable rdfs:subClassOf axiom for a owl:equivalentClass).
I believe the comparative analysis above between the OWS pattern and the VP pattern is relevant and it will improve the clarity and potential reusability of the OWS pattern.- "Relation to Other Patterns",
- "Clear Relevance and Consequences",
- "Clear Figures and Illustrations", and
- "Missing information".However, consider also adding a graphical representation of a specific example that instantiates the pattern. The submission already provides a textual description of such specific example in the context of software defects, yet a graphical representation will illustrate how the generic elements of the pattern map to the elements in the example.
This is considered a good practice for the documentation of design patterns in general.- "Relation to Other Patterns",
- "Overall Understandability",
- "Clear Relevance and Consequences",
- "Clear Figures and Illustrations", and
And one more consideration. A known use case is provided in the form of an alm-istack.owl file. Please, consider providing a textual description to highlight the main aspects of this particular known use case with respect to the proposed pattern. At a glance, it seems that the pattern is instantiated several times in the .owl use case provided. Consider describing these different instantiations and how the main generic elements have been populated.Posted: 2013/8/8 Last modified: 2013/8/8