Re: [OEP,ALL] Potential topics for OEP notes

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