On 26 March 2014 09:18, Dileepa Jayakody <[email protected]> wrote:
> > >> My question was, for ay given Email instance, is the Reputation that it >> is associated with the same as the Reputation associated with the >> EmailContact that sent it? >> > > No, it's 2 different instances. Email has a email reputation instance. It > will be generated as a result of the email reputation analysis process. > > The contact's reputation instance is generated as a result of running a > reputation score normalizing process over the reputation score's of all > emails exchanged with him. > OK, that's clear enough. In which case your UML diag looks ok. > > From another point of view, reputation can even be just an attribute of > Email and EmailContact objects without being a separate object. > In that case, the domain model will be more simple with only 3 domain > objects. UserInbox, Email and EmailContact. > reputation will be an attribute of both Email and EmailContact objects. > > Yes; that's what I implied when saying that reputation might be a value type. We need to improve Isis' support for value types, but it's something on the cards to tackle soon-ish (ie could be done to support this project). > But with the plan of extending Reputation analysis functions, I > initially thought it would be better to abstract out the Reputation concept > as a separate domain entity. > > WDYT? > As I say, it could be separated out as a value type instead, cf Isis' o.a.i.applib.values.Clob and o.a.i.applib.values.Blob types. That means its persistence would be inline with the entity, but it's still is a separate domain concept. On 26 March 2014 09:18, Dileepa Jayakody <[email protected]> wrote: > > Hi Dan and all, > > On Wed, Mar 26, 2014 at 1:38 PM, Dan Haywood <[email protected] > > wrote: > >> >> On 26 March 2014 07:48, Dileepa Jayakody <[email protected]>wrote: >> >>> >>> @Dan, >>> EmailContact's reputation is an aggregated and normalized reputation >>> score calculated based on the overall reputation scores of the emails >>> exchanged with that person. >>> >> >> Yes, understood. >> >> My question was, for ay given Email instance, is the Reputation that it >> is associated with the same as the Reputation associated with the >> EmailContact that sent it? >> > > No, it's 2 different instances. Email has a email reputation instance. It > will be generated as a result of the email reputation analysis process. > > The contact's reputation instance is generated as a result of running a > reputation score normalizing process over the reputation score's of all > emails exchanged with him. > > From another point of view, reputation can even be just an attribute of > Email and EmailContact objects without being a separate object. > In that case, the domain model will be more simple with only 3 domain > objects. UserInbox, Email and EmailContact. > reputation will be an attribute of both Email and EmailContact objects. > > But with the plan of extending Reputation analysis functions, I initially > thought it would be better to abstract out the Reputation concept as a > separate domain entity. > > WDYT? > >> >> ie email.reputation == email.contact.reputation for all instances. >> >> If so, then it's a derived relationship. But is it? >> >> >> >>> Initially the Reputation will only contain a single score value to >>> indicate the goodness of the email & email-contact. I intend to extend the >>> attributes of the Reputation object to provide more reputation details in >>> future. (eg: reputation scores in different contexts: business, friendship, >>> entertainment etc). >>> WDYT? >>> >>> >> ok. Still not sure if that's a value type or an entity type. >> >> The "different contexts" also sounds like either an entity or an enum >> type (Category?) But suggest leave that out for now, can refine later once >> get into the ins-and-outs of Mahout. >> >> > >> >> >>> FYI I have setup a github project with the >>> simple_wicket_restful_jdo-archetype at [2]. I will use this to develop my >>> prototype. >>> >> >> thx; have forked it. >> >> Dan >> >> >
