- From: Fabien Gandon <Fabien.Gandon@sophia.inria.fr>
- Date: Wed, 20 Oct 2004 09:48:11 +0200
- To: public-swbp-wg@w3.org
- CC: public-swbp-wg-request@w3.org
Hi, Christopher Welty a écrit : > > - a design pattern on the "usage of multiple instantiation": avoid > > artificial multiplication of common subtypes, useful to model roles, can > > be used for boolean properties in closed worlds, etc. > > I'm not sure what you mean - do you mean that an individual can be an > instance of more than one class? Exactly. Students are puzzled by this ability to declare multiple classes for an object and they were struggling to understand why and when it should be used. Examples using roles worked well: we instantiated a "abc:Firm" and reused its URI to instantiate its roles in business exchanges "abc:Provider", "abc:Customer". We also saw that multiple instantiation allows us to formalize Boolean attributes as classes (since they are unary predicates) without creating all the possible combinations of sub classes: "abc:FirmWithRAndDDepartment", "abc:RegisteredFirm", etc. And we talked about the closed world assumption one must make if one wants to use negation as failure to determine those instances for which the property is false. I am sure there exist good practices in using multiple instantiation and typical situations where it offers elegant solutions; however, in my experience, students with a background in object-oriented programming rarely envisage this option since they are not familiar with it. I was wondering if it wouldn't be a good idea to have one or more design patterns showing typical modelling situations (ex: roles) were multiple instantiation is both natural and elegant. Just my 2 cents, Fabien -- "Proving that I am right would be admitting that I could be wrong." -- Beaumarchais. ____________ |__ _ |_ http://www-sop.inria.fr/acacia/personnel/Fabien.Gandon/ | (_||_) INRIA Sophia Antipolis - ph# (33)(0)4 92 38 77 88
Received on Wednesday, 20 October 2004 07:50:47 UTC