Hi All,

After doing some background reading on Reputation object modeling [1], I
have extended my class diagram to describe the reputation analysis model in
my application : http://yuml.me/c97453ec

An entity has a reputation which describes it's value. EmailContact, Email
are the 2 entity objects in my application.
Reputation is an interface implemented by ReputationObject class.
Reputation has a particular context/domain in which it isearned (eCommerce,
films, technical forums etc ), in this case the context is email
communication. The reputation's value is represented by the ReputationValue
object which is calculated based on a certain criteria (In my case the
criteria are People associated with the email, topic and actions in the
email). Criteria defines the required parameters and the
ComputationAlgorithm to be used to calculate reputation value.
The reputation value is calculated by the particular ComputationAlgorithm
using the parameters given by the criteria. This is where the
implementation specific stuff comes in for calculation. Mahout
recommendation algorithms, Drools rules are implementations of such
ComputationAlgorithms.

@David, Dan
I think above model defines the service "contracts" well for the domain
model of my application.
Suggestions are welcome as always.

Thanks,
Dileepa

[1] Adrian Paschke, Rehab Alnemr, Christoph Meinel, The Rule Responder
Distributed Reputation Management System for the Semantic Web





On Thu, Mar 27, 2014 at 2:10 AM, David Tildesley <davo...@yahoo.co.nz>wrote:

>
>
> Hi Dileepa,
>
> Regardless of the implementation of the service, you should be able to
> determine the service "contract" which would allow you to model the domain.
> At the end of the day, the biggest influencer on domain shape is behaviour.
>
> Regards,
> David.
>
>
> On Thursday, 27 March 2014 9:15 AM, Dileepa Jayakody <
> dileepajayak...@gmail.com> wrote:
>
> Hi David,
>
> On Thu, Mar 27, 2014 at 1:13 AM, David Tildesley <davo...@yahoo.co.nz
> >wrote:
>
> > Now we are getting somewhere. Why do you want the domain to supply the
> > keywords to the reputation analysis component? Do you allow the end user
> to
> > define these  keywords? If not then do they change all the time and you
> > need an admin role to be constantly updating them? If not then why not
> load
> > them as a static property file when Mahout starts? And if the keywords
> are
> > allowed to change does that mean that all emails and contacts must be
> > rescored?
> >
>
> Thanks for your suggestions.
>
> I haven't yet designed the ReputationAnalysisService functions. I will have
> to do some background research on Mahout/weka and Drools expert [1] (as
> Oscar suggested I will also consider Drools expert for this component) to
> answer your queries precisely. At the moment, I have the idea to perform
> the email analysis process as below;
> 1. An initial email analysis process will be carried out to process past
> emails in the user's inbox and build up a reputation index (a regression
> model to rate each email based on reputation).
> 2. Then using that regression model predict reputation of new emails.
>
> I'm currently doing some reading on available ML libraries like Mahout,
> weka and also RulesEngines like Drools in order to design this component.
> Your suggestions are also welcome..
>
> [1] https://www.jboss.org/drools/drools-expert
>
>
> >
> > If the score for a contact is based on a history of their email scores
> > then what holds this history? (hopefully you are going to tell me that
> > Mahout/Hadoop) does and therefore the domain does not care.
> >
> > David.
> >
> >
> >
> >
> >   On Thursday, 27 March 2014 12:24 AM, Dileepa Jayakody <
> > dileepajayak...@gmail.com> wrote:
> >  Hi David,
> >
> > On Wed, Mar 26, 2014 at 4:03 PM, David Tildesley <davo...@yahoo.co.nz
> >wrote:
> >
> > Hi Dileepa,
> >
> > I see. Then the domain will perhaps have some object representing
> > "ReputationScore" with a method such as "calculateEmailReputationScore"
> and
> > "calculateEmailContactReputationScore" with the implementation of the
> > methods based on Mahout and injected via a domain service. So it's the
> same
> > deal no matter how you want to reword it - the complexity of the score
> > calculation is not in the ISIS domain but in the Mahout implementation.
> >
> >
> > Yes, the domain service (ReputationAnalysisService) will call out a
> Mahout
> > recommender process  to give the reputation score of the new email.
> >
> > So what information do you need to "feed" these two methods in order to
> do
> > the calculation?
> >
> > I'm planning to feed  people (to, cc, from), topic and actions (keywords
> > such as meeting, project, important etc) mentioned in the email to
> perform
> > reputation calculation.
> >
> >
> > David.
> >
> >
> >
> > On Wednesday, 26 March 2014 11:09 PM, Dileepa Jayakody <
> > dileepajayak...@gmail.com> wrote:
> >
> > Hi David,
> >
> > On Wed, Mar 26, 2014 at 3:22 PM, David Tildesley <davo...@yahoo.co.nz
> > >wrote:
> >
> > >
> > > Hi David,
> > >
> > > On Wednesday, 26 March 2014 8:49 PM, Dileepa Jayakody <
> > > dileepajayak...@gmail.com> wrote:
> > >
> > > > Hi Dan, David and all,
> > >
> > > > Above class diagram only contains the domain entities. Perhaps
> David's
> > > > question on the domain requirements could be clarified if domain
> > service
> > > > classes are also included in the diagram. Shall I do so?
> > >
> > > No. Please don't do that. Stick to the domain object model (leave out
> any
> > > view objects also). Key attributes and methods will aid in
> understanding
> > it.
> > >
> > > So .. you are saying that the reputation analysis/scoring is not part
> of
> > > the domain for the application but is a separate component? In that
> case
> > I
> > > am correct in saying it is an external service (whether it runs in the
> > same
> > > processor space or accessed via a web-service is irrelevant - the fact
> is
> > > that it is not part of the domain of the ISIS based application).
> > >
> > >
> > Perhaps I haven't yet understood the Isis programming model as much as I
> > should have. But as I see, RB server component is also within the Isis
> > application domain. Implementing the RB application in Isis requires
> > implementing both RB client webapp and RB server components.
> >
> > I have stated  "reputation scoring is not done by some other system, it's
> > done in the reputation-box server component of my application." and by
> that
> > I wanted to convey that I see implementing the ReputationAnalysisService
> is
> > within the domain of the Isis based application. I will integrate a
> Mahout
> > recommendation process in the above domain service to generate the
> > reputation-scores but still it will be within the Isis domain AFAIU.
> Please
> > correct me if I'm wrong.
> >
> >
> > > I must say that this is an ambitious project with a lot of integration
> -
> > > what is the overall objective? Just to prove that ISIS is a rapid
> > > prototyping tool? In which case I would "stub" out all the integration
> > > points and have some fake random reputation scoring code sitting behind
> > the
> > > service otherwise all your effort will go into writing the SI layer and
> > the
> > > reputation analysis/scoring and ISIS does not help you one jot with
> that.
> > >
> >
> > The objective is to develop a real world application in the email domain
> > using Isis as a framework to rapidly develop domain driven applications.
> I
> > will utilize Isis features to develop my domain model and generate other
> > layers such as persistence, presentation etc. And as a sub-task of the
> > project Oauth2 client support will also be implemented (for authorizing
> RB
> > app to connect to user mailboxes). Further I intend to write an academic
> > paper on my project and explain how it was developed using Isis features.
> >
> >
> >
> >
> > >
> > > Regards,
> > > David.
> >
> >
> >
> >
> >
>

Reply via email to