72
Recommender System for Crops & Varieties Selection A Farmer Centered Approach DISSERTATION SUBMITTED TO THE GLOBAL OPEN UNIVERSITY OF NAGLAND IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE AWARD OF THE DEGREE OF MASTER OF PHILOSOPHY BY GAURAV KUMAR AGARWAL QQ DEPARTMENT OF COMPUTER SCIENCE GLOBAL OPEN UNIVERSITY NAGALAND INDIA 2009

Rec Om Mender System Thesis Mphil Gaurav

Embed Size (px)

Citation preview

Page 1: Rec Om Mender System Thesis Mphil Gaurav

Recommender System for Crops & Varieties Selection

A Farmer Centered Approach

DISSERTATION SUBMITTED TO THE GLOBAL OPEN UNIVERSITY

OF NAGLAND

IN PARTIAL FULFILLMENT OF THE REQUIREMENTS

FOR THE AWARD OF THE DEGREE OF

MASTER OF PHILOSOPHY

BY

GAURAV KUMAR AGARWAL

QQ

DEPARTMENT OF COMPUTER SCIENCE

GLOBAL OPEN UNIVERSITY

NAGALAND

INDIA

2009

Page 2: Rec Om Mender System Thesis Mphil Gaurav

CERTIFICATE

This is to certify that the work embodied in this dissertation entitled RECOMMENDER

SYSTEM FOR CROPS & VARIETIES SELECTION – A FARMER CENTERED

APPROACH has been submitted to Department of Computer Science, Global Open

University, Nagaland. The work presented in this dissertation has not been submitted in

parts or full to any other university for any diploma or degree.

Gaurav Kumar Agarwal

(Candidate)

Dr. Sudeep Marwaha

(Supervisor and Scientist (SS)

Division of ComputerApplications IASRI,

Pusa, Delhi)

Page 3: Rec Om Mender System Thesis Mphil Gaurav

ii

Abstract

As information mounts it leads to the problem of how to access, navigate through,

and select available options. One possible solution to the problem is based on recommender

systems or the concept of automatic recommendation generation. A recommender system

recommends items to users by predicting items relevant to the user, based on various kinds

of information including items, user information and interactions between users and items.

Recommender systems form a specific type of information filtering technique that attempt

to present information items such as movies, music, books, news, images, web pages, that

are likely to be of interest to the user. Typically, a recommender system compares the

user's profile to some reference characteristics. These characteristics may be from the

information item (the content-based approach) or the user's social environment (the

collaborative filtering approach) or combination of both (Hybrid-filtering approach). These

systems are very powerful cognitive decision – makers in the context of distributed online

information processing in real – time networked scenarios.

Recommender Systems have now evolved to trust – based recommender systems where the

trust component has been modeled using soft computing techniques. Thus the

recommender systems have graduated from being intelligent decision – support systems to

human – level AI systems. Trust plays an important role in the decisions related to sources

that are used by humans to take recommendations. We do not go out on the street and just

start taking recommendations from anyone on the street, but opt for our trustworthy

acquaintances to suggest us products. In real life, we use the data provided by others, but

process it according to our own reasoning power, into information that we use for decision

making. If recommender systems also use advice seeking and decision making process

similar to real life, then it will be easier for the user to trust the recommendations of the

system. Hence, by adding a trust component to a decentralized environment the problem of

lack of trust on the recommenders is alleviated.

There are number of domain experts (agriculture scientists) each having knowledge of their

domain according to their own perspective. Now, if the farmer wants information about the

Page 4: Rec Om Mender System Thesis Mphil Gaurav

iii

varieties of a crop that can be grown in a specific zone such as Uttar Pradesh, he may

contact the domain experts who provide their knowledge of the specific problem area such

as pathology (Disease related problems) or entomology (insect/pest problems). Thereafter

accordingly the farmer processes the information gathered according to his specification.

As the experts may be geographically distributed, this knowledge engineering problem is a

distributed computing problem.

Research literature on intelligent agent system architectures has established that problems

that are inherently distributed can be efficiently implemented as a multi agent system. So

we propose a prototype recommender system for agriculture that helps the farmers to find

the best possible crops / set of varieties which can be grown on the farmer’s field. This

prototype recommender system is based on a multi-agent system approach, where every

user in the prototype is represented by an agent. The agents communicate with others to

generate the recommendation using various techniques like Content Based, Collaborative

and Hybrid approach.

.

Page 5: Rec Om Mender System Thesis Mphil Gaurav

iv

Acknowledgements

It gives me immense pleasure to extend my thanks to those who

provided inestimable support for the completion of my work.

In the first place I would like to record my gratitude to Dr. Sudeep

Marwaha for his supervision, advice, guidance from the very early stage of

this research and for patiently guiding me through the dissertation process. I

gratefully acknowledge him for his crucial contributions, which made him a

backbone of this dissertation.

I would like to thank my brother Mr. Sumit Agarwal for the valuable

suggestions he had provided during this work.

Further, I would like to thank Mrs. Jotsna, staff of Global Open

University Nagaland, for her prompt help whenever I approached her.

I thank my parents, and in-laws, for their faith in me and allowing me to

be as ambitious as I wanted.

I owe my loving thanks to my wife Mrs. Madhulika Agarwal, for all the

support and encouragement she had provided in spite of her hectic schedule. I

would also thank my little son Aryan Agarwal for letting me work on this

study by being patient and understanding.

I would like to thank all the people who have directly or indirectly

helped me in completing this dissertation.

GAURAV KUMAR AGARWAL

Page 6: Rec Om Mender System Thesis Mphil Gaurav

v

Table of Contents

Abstract ....................................................................................................................... i

Acknowledgement ................................................................................................ iii

List of Figures ......................................................................................................... vi

List of Tables .......................................................................................................... vii Chapter 1 Introduction ....................................................................................... 1 1.1 Problem Definition ................................................................................. 2 1.2 Overview of Dissertation ........................................................................ 2 Chapter 2 Review of Literature .................................................................... 4 2.1 Introduction ............................................................................................ 4 2.2 Working of Recommender System ......................................................... 5 2.3 Classification of the existing Recommender Systems ............................ 6 2.4 Techniques used by different types of Recommender Systems .............. 6 2.5 Evaluation of Recommender Systems ...................................................10 2.6 Technologies Used .................................................................................12 2.6.1 Multi Agent System ...................................................................12 2.6.2 JADE (Java Agent Development Environment) ........................13 2.6.3 APACHE TOMCAT (Web Server) ...........................................13 2.6.4 JAVA .........................................................................................13 2.6.5 JSP (Java Server Pages) .............................................................14 2.6.6 ORACLE 9i ............................................................................................ 15 Chapter 3 System Design ................................................................................ 17 3.1 Introduction ............................................................................................17 3.2 Basics of Intuitionistic Fuzzy Sets .........................................................17 3.3 Improving Recommender Systems with Trust .......................................19 3.4 Analysis .................................................................................................22 3.5 Methodology ..........................................................................................22 3.6 Algorithm ...............................................................................................27

Page 7: Rec Om Mender System Thesis Mphil Gaurav

vi

Chapter 4 System Architecture of Recommender system .......... 32 4.1 Introduction ............................................................................................32 4.2 System Architecture ...............................................................................33 4.3 Database Design ....................................................................................36 4.4 Implementation ......................................................................................44 Chapter 5 Conclusion ......................................................................................... 47 Annexure I ................................................................................................................. 49

Database Table Description .............................................................49 Annexure II .............................................................................................77 Abbreviations .....................................................................................77 References .................................................................................................................. 85

Page 8: Rec Om Mender System Thesis Mphil Gaurav

vii

LIST OF FIGURES Figure No

Description

Page No

1 Working of Recommender System 5

2 Web of Trust 20

3 Functional diagram of A RECOMMENDER SYSTEM-AFCA 23

4 Block Diagram of AFCA 33

5 Data Flow Diagram 34

6 Entity - Relationship Diagram 35

7 Login window of AFCA 41

8 Agent Environment 42

9 Information exchange among the agents during unintentional encounters

42

10 Selection of user’s known variety list 43

11 User’s known variety details 43

12 Selection of experienced varieties 44

13 Ranking of varieties according to the variety attributes 44

14 Updation of trust of the user over recommenders 45

15 Grade the degree of significance 45

16 Selection of zone for generating the recommendation 46

17 Recommendation Report 46

Page 9: Rec Om Mender System Thesis Mphil Gaurav

viii

LIST OF TABLES Table No

Description

Page No

1 Degree of significance of attributes of varieties

25

2 Degree of Trust of user on the recommenders

25

3 Preference List (all the sublists) about taste of user maintained by recommenders

26

4 Uncertain List (UA) about taste of user maintained by recommenders

26

Page 10: Rec Om Mender System Thesis Mphil Gaurav

ix

Chapter 1

Introduction The availability of sea of alternatives in terms of products, movies, books, holiday

destinations, etc. have resulted in predicament for today’s man. It is possible to fish out

the best option from this sea, only if we are prepared to devote enough time and/or

money to find it. We prefer a shortcut by taking support from society to select a good

alternative. The support from the society is in the form of recommendations from our

acquaintances, reviews in the newspapers, magazines, and general surveys, etc. to help us

find interesting products or services. As information becomes abundant and multi-

dimensional, humans are confronted with more difficult decisions about how to access,

navigate through, and select available options. The sheer number of alternatives often

makes a wise choice impossible without some intelligent computational assistance. The

need for such assistance led to the development of the Recommender Systems.

Recommender Systems attempt to reduce information overload and retain customers by

selecting a subset of items from a universal set based on user preferences. While research

in recommender systems grew out of information retrieval and filtering, the topic has

steadily advanced into a legitimate and challenging research area of its own. The

Recommender Systems are a technological proxy for the support provided by the friends,

reviews in the magazines, newspapers, etc. to filter the set of possible options to a more

manageable subset and act like electronic assistants to sort out relevant information for

the user. These are a class of applications that use opinions of members of a community,

to help individuals in that community, identify information or products most likely to be

interesting to them or relevant to their needs. Typically, recommender system analyses

data about items’ or about interactions between users and items to find the associations

amongst them. The results obtained are used to predict relevant and interesting items for

the user.

Page 11: Rec Om Mender System Thesis Mphil Gaurav

10

The research on recommender systems uses the results of a wide variety of fields like

Information Retrieval, Artificial Intelligence, Cognitive Science, Approximation Theory,

Forecasting Theories, Statistics, etc.

1.1 Problem Definition Recommender Systems have come up in the market to ensure that the right information is

delivered to the right person at the right time. They use opinions of members of a

community to help individuals in that community identify information most likely to be

interesting to them or relevant to their needs. India being an agriculture base country with

over 70% people gets their livelihood from agriculture and allied industry. With an ever

increasing demand for food and government’s pledge for food security thrusts researchers

to innovate support tools for agriculture community. In this direction, a prototype

recommender system for agriculture is proposed that helps the farmers to find the best

possible crops / set of varieties which can be grown on the farmer’s field. This system

produces the results based on the knowledge of several domain experts, which

incorporates into the system. The system also provides reports like how many times a

user chooses a given recommendation, what the quality of rating is given by an expert,

etc. Finally system helps in the process of selection of crops and varieties most suited for

a given situation.

1.2 Overview of the Dissertation Chapter 1 of this research work gives an introduction to what is a Recommender

system. It also defines the ‘problem’.

Chapter 2 of this research work reviews the history and recent developments in

the field of Recommender System, classification and working of the existing

Recommender Systems, various techniques used by the Recommender Systems and

evaluation metrics of the Recommender System. It also explains briefly the technologies

used in developing a system for this research work. Some of the technologies are JSP,

JADE, ORACLE 9i, JAVA SCRIPT, APACHE TOMCAT etc.

Page 12: Rec Om Mender System Thesis Mphil Gaurav

11

Chapter 3 explains basic concepts of Intuitionistic Fuzzy Sets, Trust and

Recommender System based on Trust. It also explains Analysis, Methodology,

Algorithms used in the proposed recommender system.

Chapter 4 gives the architecture of the system, the database design of the system.

It also shows the implementation details of the proposed recommender system for a given

zone (state) along with the results obtained.

Chapter 5 gives the conclusion and the probable future enhancement for the

system developed.

Page 13: Rec Om Mender System Thesis Mphil Gaurav

12

Chapter 2

Review of Literature 2.1 Introduction

The availability of sea of alternatives in terms of products, movies, books, holiday

destinations, etc. have resulted in predicament for today’s man. It is possible to fish out

the best option from this sea, only if we are prepared to devote enough time and/or

money to find it. We prefer a shortcut by taking support from society to select a good

alternative. The support from the society is in the form of recommendations from our

acquaintances, reviews in the newspapers, magazines, and general surveys, etc. to help us

find interesting products or services. As information becomes abundant and multi-

dimensional, humans are confronted with more difficult decisions about how to access,

navigate through, and select available options. The sheer number of alternatives often

makes a wise choice impossible without some intelligent computational assistance. The

need for such assistance led to the development of the Recommender Systems [Resnick

and Varian, 1997].

Recommender Systems attempt to reduce information overload and retain customers by

selecting a subset of items from a universal set based on user preferences. While research

in recommender systems grew out of information retrieval and filtering, the topic has

steadily advanced into a legitimate and challenging research area of its own.

The Recommender Systems are a technological proxy for the support provided by the

friends, reviews in the magazines, newspapers, etc. to filter the set of possible options to

a more manageable subset and act like electronic assistants to sort out relevant

information for the user [Schafer et. al., 1999]. These are a class of applications that use

opinions of members of a community, to help individuals in that community, identify

information or products most likely to be interesting to them or relevant to their needs.

Typically, recommender system analyses data about items’ or about interactions between

Page 14: Rec Om Mender System Thesis Mphil Gaurav

13

users and items to find the associations amongst them. The results obtained are used to

predict relevant and interesting items for the user.

Recommender Systems have come up in the market to ensure that the right

information is delivered to the right person at the right time. They use opinions of

members of a community to help individuals in that community identify information

most likely to be interesting to them or relevant to their needs.

2.2 Working of Recommender System

According to [Burke, 2002; Schafer et. al., 2002], the principal mode of operation of the

recommender systems can be broken down into three major steps as:

1. Acquisition of the background information which is in the form of the explicit ratings

given by the users to the products or preferences of the users learnt by the system

through the history of purchase transactions, usage records, etc.

2. Determination of the pattern of associations among the users or items, from the

background information.

3. Generation of the predicted ratings or the recommendations for the target user from

the patterns found in the background information.

Figure 1: Working of Recommender Systems

Background Information (Product Ratings, User Profiles, etc.)

Patterns of association among users or items

Recommendations for the target user

Page 15: Rec Om Mender System Thesis Mphil Gaurav

14

Generating recommendations basically is a problem of estimating ratings for the items that

the target user has not seen. Intuitively, this estimation is based on the ratings given by the

target user to the other items; or on the ratings given by the other users who are similar to

the target user in terms of preferences.

2.3 Classification of the existing Recommender Systems

The recommender systems can be classified mainly into three categories: content based,

collaborative filtering based and hybrid recommender system.

1. Content based recommender systems

These recommender systems use the ratings of the items the target user liked in

the past to predict items the target user would also like.

2. Collaborative filtering based recommender systems

These recommender systems use the ratings of the users with tastes “similar” to

the target user and predict items for the target user.

3. Hybrid recommender systems

Hybrid recommender systems use a combination of the above two approaches.

2.4 Techniques used by different types of Recommender Systems

The different types of recommender systems require data to be analyzed to find the

patterns of associations among the users or the items. The following analysis techniques

are used to find the associations:

• Neighborhood formation

• Association Rule Mining

• Machine Learning

Page 16: Rec Om Mender System Thesis Mphil Gaurav

15

2.4.1 Neighborhood Formation

When systems look for similar users or items purchased together, they form a

neighborhood of the users most similar to the target user or of items that are generally

purchased together [Sarwar et. al., 2001; Semeraro et. al., 2005]. The neighbors of the

target user or item are determined using different methods such as correlation coefficient;

similarity functions, clustering techniques, etc.

Once the value of similarity is available through correlation coefficient or similarity

functions, etc., the neighbors of the target user or the item are selected using any of the

following method:

• Compare the values obtained against a threshold and those that exceed the threshold

form a part of the neighborhood.

• Select fixed number of best neighbors of the target. The best neighbors are the ones

that are most similar to the target user or item [Baldi et. al., 2003].

Once the neighborhood has been selected, the ratings from the neighborhood are

combined to predict ratings for the target user of the products that he/she is not familiar

with.

Value of similarity can be calculated by the following methods:

2.4.1.1 Correlation Coefficient

The Pearson’s correlation coefficient r(A, B), between two users A and B is given by

( ) ( )( )( )( ) ( )( )∑ ∑∑ ∑

∑∑∑=2

B2B

2A

2A

BABA

R - Rn R - Rn

RR - RRn B) r(A,

Where,

RA and RB are the rating vectors of A and B, respectively of size n.

Page 17: Rec Om Mender System Thesis Mphil Gaurav

16

2.4.1.2 Similarity Functions

The cosine similarity function is the most common similarity function used to determine

the similarity between two entities. The ratings/ attributes of the entities are considered as

vectors and the cosine formula calculates the cosine of the angle between the two vectors.

As cosine approaches “1”, the two vectors become coincident. If two vectors are totally

unrelated, they will be orthogonal and the cosine will be “0”. The similarity between the

two entities →

u and →

v is defined as follows:

22

v u

v u v ,ucos )v ,u sim(→→

→→→→→→ •

=⎟⎠⎞

⎜⎝⎛=

Where i

→→

• v u is the dot product of vectors →→

v and u .

2.4.1.3 Clustering

Clustering techniques work by identifying groups of users who appear to have similar

preferences. The clusters are usually created using distance metrics. Once the clusters are

created, the estimated rating for the target user can be computed as the rating of the

centroid user by averaging the ratings of the others users in that cluster [Ungar and

Foster, 1998; Li and Kim, 2003; Semeraro et. al., 2005].

Two broad approaches used in literature for clustering are as follows:

• Partitional methods

• Hierarchical methods

2.4.2 Association Rule Mining

The association rule mining method is used to discover elements that co-occur frequently

within the dataset, e.g., purchasing transactions and to discover rules, such as implication

or correlation, which relate co-occurring. Questions like “If a customer purchases product

Page 18: Rec Om Mender System Thesis Mphil Gaurav

17

A, how likely is he/she to purchase product B?” and “What products are likely to be

purchased by a customer if he/she has purchased items C and D?” are answered by

association finding algorithms. Association rules are not restricted to dependency

analysis in the context of retail applications, but are also successfully applied to a wide

variety of business problems.

An association rule is an expression X ⇒ Y, where X and Y are set of items. Given

database D of transactions, where each transaction DT ∈ is a set containing items X, Y.

X ⇒ Y expresses that whenever a transaction T contains X then T probably contains Y

also. The probability or rule confidence is defined as the percentage of transactions

containing Y in addition to X with regard to the overall number of transactions containing

X. That is, the rule confidence can be understood as the conditional

probability ( )TTp X | Y ⊆⊆ .

2.4.3 Machine Learning

Machine learning deals with the development of algorithms and techniques that allow

computers to “learn”. There are two types of learning: inductive and deductive. Inductive

machine learning methods create computer programs by extracting rules and patterns out

of massive data sets. The algorithms used include Bayesian networks, neural networks,

etc.

In content based recommender systems, the patterns of association are computed for

the dataset related to the target user and in collaborative filtering recommender systems,

the patterns of association are computed for the dataset consisting of transactions related

to all the users of the system. Using the learnt patterns, products are recommended to the

target user.

2.5 Improving Recommender Systems with Trust

Research in recommender systems to date has predominately focused on designing

algorithms for more effective and efficient computation of recommendations [Breese et.

al., 1998; Sarwar et. al., 2000b]. Even though the recommender systems may be

providing accurate recommendations, studies by Sinha and Swearingen [2001] have

Page 19: Rec Om Mender System Thesis Mphil Gaurav

18

found that users prefer the recommendations of friends over those of recommender

systems. This is because most of the existing recommender systems do not take into

account the social elements of advice seeking and decision-making. Hence the system

model does not match the mental model of the user and it is difficult for the user to trust

the system recommendations. [Bedi P. and Kaur H, 2006 ] [Bedi P., Kaur H and Marwaha

S., 2007 ] [Bonhard, 2004][Kaur H, 2007, Phd Thesis ]

Augmenting recommender systems with trust dimension in a decentralized

environment solves the problem of lack of trust on the recommender system. Trust plays

an important role in the decisions related to sources that are used by humans to take

recommendations. We do not go out on the street and just start taking recommendations

from anyone on the street, but opt for our trustworthy acquaintances to suggest us

products. In real life, we use the data provided by others, but process it according to our

own reasoning power, into information that we use for decision making. If recommender

systems also use advice seeking and decision making process similar to real life, then it

will be easier for the user to trust recommendations of the system. Hence, by adding trust

to decentralized environment alleviate the problem of lack of trust on the recommender

systems.

2.6 Evaluation of Recommender Systems

A wide variety of algorithms exist for generating recommendations and their

evaluation Metrics are required to empirically measure how a recommender system

predicted ranking of items to the user’s true preferences. They may also measure how

well a system can predict an exact rating for a specific product. In literature, majority of

the evaluations of the recommender system are the done using accuracy metrics to prove

the utility of the recommender system [Herlocker et. al., 2004].

2.6.1 Predictive Accuracy Metrics

Predictive accuracy metrics measure the closeness of the predicted ratings to the true user

ratings. Most prominent and widely used mean absolute error (MAE) represents an

efficient means to measure the statistical accuracy of the predictions [Shardanand and

Maes, 1995; Breese et. al., 1998]. The accuracy of m predictions is as follows:

Page 20: Rec Om Mender System Thesis Mphil Gaurav

19

m

Real - Pred MAE

m

1 iii∑

==

 

2.6.2 Decision-Support Metrics

The decision support metrics do not consider rating predictions and their deviations from

the actual ratings; rather they judge how relevant the ranked recommendations are for the

user. Precision, recall, fallout and F measure, metrics fall in this category.

Precision

Precision is defined as the fraction of the selected items that are relevant to the user’s

needs. It measures the selection effectiveness of the system and represents the probability

that the item is relevant.

retrievedtionsrecommenda ofnumber Totalretrieved tionsrecommendarelevant ofNumber Precision =

Recall

Recall is defined as the ratio of the relevant items selected to the total number of relevant

items available. Recall represents the probability that a relevant item will be selected.

availabletionsrecommendarelevant ofnumber Totalretrieved tionsrecommendarelevant ofNumber Recall =

Fallout

The fallout is the fraction of the irrelevant items retrieved. Fallout represents the

probability that an irrelevant item is selected.

retrievedtionsrecommenda ofnumber Totalretrieved tionsrecommenda irrelevant ofNumber Fallout =

F-measure

Another metric that is used extensively in information retrieval and recommender

systems research is the F-measure metric [Huang et. al., 2004a]. Many a times, it is

required that a precision and recall be used in conjunction. The F-measure consists of a

Page 21: Rec Om Mender System Thesis Mphil Gaurav

20

weighted combination of precision and recall. The general formula for F-measure (for

non-negative real, α) is

( )RecallPrecision

RecallPrecision 1 F 2

2

+×××+

=αα

α

When α = 1, it is known as F1 measure and represents the weighted harmonic mean of

precision and recall giving equal weights to them.

2.7 Technologies Used The system makes use of the following technologies:

Multi-Agent System:

Multi-Agent system focuses on systems in which many intelligent agents interact with

each other. The agents are considered to be autonomous entities, such as software

programs or robots. Their interactions can be either cooperative or selfish. That is, the

agents can share a common goal (e.g. an ant colony), or they can pursue their own

interests (as in the free market economy).

Agents are small software programs that communicate with each other, acting

behaviorally to interact and respond, matching available resources to demand. In a multi-

agent system, each agent communicates with the network of agents, considering options

for matching its capabilities with demand, negotiating on such constraints as quality,

price and time, and then making decisions for committing resources to match demand.

The most important reason to use MAS when designing a system is that some domains

require it. In particular, if there are different people or organizations with different

(possibly conflicting) goals and proprietary information, then a multi agent system is

needed to handle their interactions. Even if each organization wants to model its internal

affairs with a single system, the organizations will not give authority to any single person

to build a system that represents them all: the different organizations will need their own

system that reflects their capabilities and priorities.

Page 22: Rec Om Mender System Thesis Mphil Gaurav

21

JADE (Java Agent Development Environment):

JADE (Java Agent Development Environment) is a software framework to develop

agent-based applications in compliance with the FIPA (Foundation for Intelligent

Physical Agents) specifications for interoperable intelligent multi-agent systems. The

goal is to simplify the development while ensuring standard compliance through a

comprehensive set of system services and agents. JADE can then be considered an agent

middle-ware that implements an Agent Platform and a development framework. It deals

with all those aspects that are not peculiar of the agent internals and that are independent

of the applications, such as message transport, encoding and parsing, or agent life-cycle.

The communication architecture offers flexible and efficient messaging, where JADE

creates and manages a queue of incoming ACL messages, private to each agent; agents

can access their queue via a combination of several modes: blocking, polling, timeout and

pattern matching based. The full FIPA communication model has been implemented and

its components have been clearly distinct and fully integrated: interaction protocols,

envelope, ACL, content languages, encoding schemes, ontologies and, finally, transport

protocols. JADE has also been integrated with JESS, a Java shell of CLIPS, in order to

exploit its reasoning capabilities.

Apache Tomcat (Web Server):

Apache Tomcat is a web container or application server developed at the Apache

software foundation (ASF). Tomcat implements the Java Servlets and the Java Server

Pages (JSP) specifications providing an environment for java code to run in cooperation

with a web server.

JAVA:

The implementation of the prototype is carried out in java programming language. Java

can be used to create applications and applets. An application is a program that runs on

your computer, under the operating system of that computer. That is, an application

created by Java is more or less like one created using C or C++. When used to create

applications, Java is not much different from any other computer language. Rather, it is

Page 23: Rec Om Mender System Thesis Mphil Gaurav

22

Java’s ability to create applets that makes it important. An applet is an application

designed to be transmitted over the Internet and executed by a Java-compatible Web

browser. An applet is actually a tiny Java program, dynamically downloaded across the

network, just like an image, sound file, or video clip. The important difference is that an

applet is an intelligent program, not just an animation or media file. In other words, an

applet is a program that can react to user input and dynamically change—not just run the

same animation or sound over and over. Java is widely used as its ability to solve the

problems like:

• Security: When you use a Java-compatible Web browser, you can safely

download Java applets without fear of viral infection (viruses, adware, malware,

etc) or malicious intent (hacking passwords / other useful Information). Java

achieves this protection by confining a Java program to the Java execution

environment and not allowing it access to other parts of the computer. The ability

to download applets with confidence that no harm will be done and that no

security will be breached is considered by many to be the single most important

aspect of Java.

• Portability: Java generates the byte code for the application written, once the

byte- code is written it will be easily executed in different platforms with the help

of Java Virtual Machine. Hence, java is considered a portable language.

JSP (Java Server Pages):

Java Server Pages (JSP) technology enables Web developers and designers to rapidly

develop and easily maintain, information-rich, dynamic Web pages that leverage existing

business systems. As part of the Java technology family, JSP technology enables rapid

development of Web-based applications that are platform independent. JSP technology

separates the user interface from content generation, enabling designers to change the

overall page layout without altering the underlying dynamic content.

For a web page developer or designer who is familiar with HTML can:

• Use JSP technology without having to learn the Java language: You can use JSP

technology without learning how to write Java scriplets. Although scriptlets are

Page 24: Rec Om Mender System Thesis Mphil Gaurav

23

no longer required to generate dynamic content, they are still supported to provide

backward compatibility.

• Extend the JSP language: Java tag library developers and designers can extend the

JSP language with “simple tag handlers,” which utilize a new, much simpler and

cleaner, tag extension API. This spurs the growing number of pluggable, reusable

tag libraries available, which in turn reduces the amount of code needed to write

powerful Web applications.

• Easily write and maintain pages: The Java Server Pages Standard Tag Library

(JSTL) expression language is now integrated into JSP technology and has been

upgraded to support functions. The expression language can now be used instead

of scriptlet expressions.

JSP technology uses XML-like tags that encapsulate the logic that generates the

content for the page. The application logic can reside in server-based resources (such as

Java Beans component architecture) that the page accesses with these tags. Any and all

formatting (HTML or XML) tags are passed directly back to the response page.

Oracle 9i:

Oracle 9i is a Relational Database Management System used to maintain and store the

knowledge of various domain experts (farmer) in a data format. An Oracle database is a

collection of data treated as a unit. The purpose of a database is to store and retrieve

related information. A database server is the key to solving the problems of information

management. In general, a server reliably manages a large amount of data in a multiuser

environment so that many users can concurrently access the same data. All this is

accomplished while delivering high performance. A database server also prevents

unauthorized access and provides efficient solutions for failure recovery.

Oracle Database is the first database designed for enterprise grid computing, the most

flexible and cost effective way to manage information and applications. Enterprise grid

computing creates large pools of industry-standard, modular storage and servers. With

this architecture, each new system can be rapidly provisioned from the pool of

components. There is no need for peak workloads, because capacity can be easily added

or reallocated from the resource pools as needed.

Page 25: Rec Om Mender System Thesis Mphil Gaurav

24

The database has logical structures and physical structures. Because the physical and

logical structures are separate, the physical storage of data can be managed without

affecting the access to logical storage structures.

Page 26: Rec Om Mender System Thesis Mphil Gaurav

25

Chapter 3

System Design 3.1 Introduction

When a research is carried out in an organization lot of human effort, time and

money are put into it. After completing the research if the researcher gets to know that

the same research has already been accomplished by another researcher, the investment

made in this research gets wasted. Instead if by some means a researcher can check the

database of accomplished researches, to see all similar researches accomplished earlier,

he will not end up reinventing wheels. This chapter presents the basics of Intuitionistic

fuzzy sets, recommender system based on trust, analysis, methodology and algorithms

used for the research work “A Recommender System for Crops & Varieties Selection-A

farmer Centered Approach”.

3.2 Basics of Intuitionistic Fuzzy Sets

Intuitionistic fuzzy sets (IFS) are one of the interesting and useful generalizations

of fuzzy set theory, introduced by Atanassov (1999) having membership, non-

membership and hesitation part. Fuzzy sets are IFS but the converse is not necessarily

true. IFS theory has been applied in various areas such as logic programming, decision

making problems, medical diagnosis etc.

Here we give some basic definitions, which are used in the paper. Consider a set

E, An intuitionistic fuzzy set (IFS) A in E is defined as an object of the following form

A = {(x, μA(x), νA(x)) | x ∈ E}

where the functions

μA: E → [0,1]

and

νA: E → [0,1]

Page 27: Rec Om Mender System Thesis Mphil Gaurav

26

define degree of membership and degree of non-membership of the element x ∈ E,

respectively.

And ∀x ∈ E,

0 ≤ μA + νA ≤ 1

Obviously, each ordinary fuzzy set may be written as

{(x, μA(x), 1– μA(x)) | x ∈ E}

The value of

πA(x) = 1 – μA(x) – νA(x)

is called the degree of non - determinacy (or uncertainty) of the element x ∈ E to the

intuitionistic fuzzy set A. This may cater to either membership value or non-membership

value or both.

3.2.1 Distance between Intuitionistic Fuzzy Sets Two of the most popular distances between the two intuitionistic fuzzy sets A and B in

X = {x1, x2, x3, …, xn} are

• Hamming distance:

lIFS(A,B) = ∑=

n

i 1

( | μA(xi) – μB(xi)| + | νA(xi) – νB(xi)| + | πA(xi) – πB(xi)| )

• Euclidean distance:

eIFS(A,B) = ∑=

n

i 1

( (μA(xi) – μB(xi) )2 + (νA(xi) – νB(xi) )2 + (πA(xi) – πB(xi) )2)1/2

Page 28: Rec Om Mender System Thesis Mphil Gaurav

27

3.3 Improving Recommender Systems with Trust

3.3.1 Trust

The presence of trust in human society is unquestionable. All the relations and the

interactions thereof in human society are based on trust between the interacting

individuals. Trust helps an individual to safeguard its interests from harmful individuals

in the society and as agents are designed to behave like humans, trust should play an

important role during the interactions between the agents. The agents also, except for

trivial application domains, require interaction with other agents, i.e., application

domains require multi-agent systems. This interaction is required for sharing files and

services with the other agents in the application domain. Trust increases the robustness of

an agent by making it capable to safeguard its interests from harmful agents in the

application domain as in human beings.

3.3.2 Degree of trust

Trust is not dichotomous; rather it is a range. This means that trust may be graded and the

extent to which one is trustworthy is the degree of trust (DoT) of the entity. Degree of

trust can be defined as a subjective certainty of the pertinent beliefs. We have restricted

the range of degree of trust between 0 and 1.

3.3.3 Recommender System based on Trust

Agents interact with other peer agents in the application domain and exchange

information with each other. An agent forms trustworthy relationships with peers and the

suggestions from such trustworthy acquaintances are used in its decision making process.

These trustworthy relationships form a web of trust. The social network hence formed

helps an agent to get views of even those agents that are not directly known to it through

the agents known to it directly (Fig 2).

Page 29: Rec Om Mender System Thesis Mphil Gaurav

28

Fig. 2: Web of Trust

Fig 2 shows such a network of peers represented by the numbered circles, where the

numbers in the circles identify the various peers in the application domain. An edge

represents that trustworthy relationship exists between the connected agents with certain

degree of trust. Every agent maintains a list of peers adjacent to it along with the degrees

of trust on them. It is not necessary that if A trusts B with degree of trust as x then B also

trusts A with degree x.

The peer agents in the community environment exchange recommendations about

the products during their idle time, which we are referring to as the unintentional

encounters. The recommendations are list of products that the recommender has

suggested along with the degree of importance associated with it. An agent may

accumulate the recommendations of one specific agent through more than one

unintentional encounter. But one agent cannot be a part of more than one group at a given

instance. Since the idle agents are free to join the group of agents exchanging

information, such interactions are the unintentional encounters. When an agent wants to

find interesting products for it and explicitly seeks the recommendations from its

trustworthy agents, the interactions are termed as intentional encounters. The

unintentional encounters and their own experience with the products are used by

recommender agents to compute the information for recommendations to be given to the

user agent during the intentional encounters.

It is not feasible for an agent to know every peer in the network to be able to

assign a trust value to them, and then get recommendations from all of them. Rather the

6

98

75

4

3 2

1

Page 30: Rec Om Mender System Thesis Mphil Gaurav

29

agent may use the recommendations of those known to it, which may further take the

recommendations from those known to them and so on. This is on the basis of the

assumption that if A trusts B and B trusts C then A also trusts C, even though not

necessarily with the same degree of trust as it has on B. Let the circle with number 1 in

Fig. 2 represents the agent that wants to find interesting products for itself through its

network of acquaintances. All the agents that are directly linked to the user agent

participate in intentional encounters and give their recommendations to the user. Even the

agent that is not directly linked conveys its recommendation list to the user agent through

the intermediate agents.

Research in recommender systems to date has predominately focused on

designing algorithms for more effective and efficient computation of recommendations

[Breese et. al., 1998; Sarwar et. al., 2000b]. Even though the recommender systems may

be providing accurate recommendations, studies by Sinha and Swearingen [2001] have

found that users prefer the recommendations of friends over those of recommender

systems. This is because most of the existing recommender systems do not take into

account the social elements of advice seeking and decision-making, and hence the system

model does not match the mental model of the user [Bonhard, 2004]; and it is difficult

for the user to trust the system recommendations [Bedi P. and Kaur H, 2006 ].

Augmenting recommender systems with trust dimension in a decentralized

environment solves the problem of lack of trust on the recommender system. Trust plays

an important role in the decisions related to sources that are used by humans to take

recommendations. We do not go out on the street and just start taking recommendations

from anyone on the street, but opt for our trustworthy acquaintances to suggest us

products. In real life, we use the data provided by others, but process it according to our

own reasoning power, into information that we use for decision making. If recommender

systems also use advice seeking and decision making process similar to real life, then it

will be easier for the user to trust recommendations of the system. Hence, by adding trust

to decentralized environment alleviate the problem of lack of trust on the recommender

systems.

Page 31: Rec Om Mender System Thesis Mphil Gaurav

30

3.4 Analysis of the proposed Recommender System

The existing recommender systems do not generate their recommendations based on the

trust relationships that exist in the society, rather suggest products on the basis of

similarity between the users or the items. They ignore the social elements of decision-

making and advice seeking, and hence the system model does not match the mental

model of the user. The recommender agent does not know about the people whose tastes

are used to suggest products that may be of interest to the user, and this result in lack of

trust on the recommendations received from the system. Given a choice between

recommendations from friends and recommender systems, in terms of quality and

usefulness, friend’s recommendations are preferred even though the recommendations

given by the recommender system have high novelty factor [Sinha et. Al 2000]. Friends

are seen as more qualified to make good and useful recommendations as compared to

recommender systems.

In the presented recommender system, a social structure exists between the agents in the

application domain, which is formed on the basis of trust between them. The agents

recommend varieties to each other using this social structure. This is similar to the mental

model of decision making of a human.

Every agent in the system maintains a degree of trust and information about the tastes of

the agents that are connected to it directly. The recommenders pass only that

recommendation to the user agent that matches its taste leading to personalization of the

recommender system. This reduces the number of recommendations that need to be given

to the user agent by removing the unnecessary recommendations and this further reduces

the number of computations that the user agent has to perform at the aggregation of the

recommendations to find something useful for itself

3.5 Methodology of the proposed Recommender System

The proposed recommender system is a Multi Agent System (MAS) as illustrated in

Fig. 3. Most of the existing recommender systems ignore the social elements of decision-

making and advice seeking, and hence the system model does not match the mental

model of the user. These recommender systems are designed with a central authority

Page 32: Rec Om Mender System Thesis Mphil Gaurav

31

controlling the data as well as computational resources to generate recommendations. The

user does not know about the people whose tastes are used to suggest products. This acts

as a hindrance for the user to trust the recommendations of the system.

Fig.3 The Functional diagram of A RECOMMENDER SYSTEM-AFCA

The decentralized and distributed systems are increasingly becoming popular and

the recommender systems can take advantage of the huge amount of information that

they provide. These infrastructures provide the information in human understandable and

machine readable format. Recommender Systems can be designed in such a way that they

use the machine-readable information available with the user or user agent to infer the

user preferences and then generate personalized recommendations for the user.

Page 33: Rec Om Mender System Thesis Mphil Gaurav

32

To overcome the limitations of lack of trust and the central control in the existing

recommender systems, a trust based decentralized recommender system is being

proposed and a prototype is developed under this project. Every human user of the

recommender system is represented through an agent. The information is distributed over

the entire network in the form of information with the agents. The agents of the

application domain form a trust based virtual community referred to as “web of trust”.

The architecture provides ways to quantify degree of trust between the agents initially

when the system starts and also when a new agent comes into the application domain.

Trust is initialized to zero in the beginning or can be subjectively given by the

administrator of the system to give good recommendations, which is then updated on the

basis of interactions between the agents.

All recommender agents have their own knowledge about the varieties in specific Zone

stored in their own location. Hence, the recommender system being developed under A

RECOMMENDER SYSTEM-AFCA uses the decentralized database. A user agent asks

for recommendations from various recommender agents in its neighborhood, which in

turn can take recommendations from their trustworthy neighbors. The user agent then

prioritizes the received recommendations based on trust on recommenders and generates

a ranked list of recommendations for the user.

The prototype A RECOMMENDER SYSTEM-AFCA has two different types of agents:

1. User Agent (UA)

2. Recommender Agent (RA)

3.5.1 User Agent (UA): User sends the request to the UA. UA collects the data from the user using web based

GUI. It captures the information for the attributes to be considered for selection of a

variety and their degree of significance. UA also stores trust values for each interacting

recommender agent known to it and prioritizes the recommender agents according to

their trust value.

Page 34: Rec Om Mender System Thesis Mphil Gaurav

33

Temperature Spacing Plant Type Disease Resistance Ingredients

.7845 .6873 .5974 .2345 .2323

Table 1: Degree of significance of attributes of varieties

Recommenders R1 R2 R3 R4 R5

Degree of Trust 0.78 0.68 0.85 0.23 0.76

Table 2: Degree of Trust of user on the recommenders

Once, UA receives the recommendations from all trustworthy recommender agents in its

neighborhood, it generates the final recommendation list of varieties after taking into

account the degree of trust on each of the recommender agent. UA also updates the

degree of trust on each recommender agent after evaluating the recommendations given

by them.

3.5.2 The Recommender Agent (RA): The Recommender agent (RA) after getting a request from user agent generates a set of

recommendations in order to best satisfy the incoming request. Every recommendation

corresponds to a variety for a specific crop for a given Zone is in the form of

Intuitionistic fuzzy Set (IFS). The IFS recommendation for a variety has a degree of

membership (satisfaction), degree of non-membership (dissatisfaction) and the degree of

hesitation (uncertainty) signifying the relevance, irrelevance and uncertainty of the

variety for a given user. To personalize the variety recommendations according to the

taste of the user agent A, the recommender agent maintains the following lists:

• Preference list: The preference list, PA consists of the information in terms of the

attributes (Temperature, spacing, plant type, disease resistance, Ingredients etc.) of

the varieties liked by the user in the past connected to user agent A. There are

separate sublists in PA corresponding to the attributes Temperature, spacing, plant

type, disease resistance, Ingredients. The order of names of varieties in a sublist in PA

Page 35: Rec Om Mender System Thesis Mphil Gaurav

34

corresponding to a particular attribute signifies their priority in their respective

sublists.

Preferences in the sublists ( PA )

Temperature V3 V5 V2 V1 V4

Spacing V1 V2 V4 V3 V5

Plant Type V2 V5 V4 V1 V3

Disease Resistance V1 V3 V2 V5 V4

Ingredients V5 V4 V3 V1 V2

Table-3: Preference List (all the sublists) about taste of user maintained by recommenders

• Uncertain list: The uncertain list, UA consists of the same type of information as that

of the preference list. However, it is unordered list accumulated during unintentional

encounters and the recommender agent has no idea whether the user prefers one

variety over the other.

Uncertain List (UA )

V6 V8 V7 V10 V9

Table-4: Uncertain List (UA) about taste of user maintained by recommenders

In this research work, we are trying to build a prototype for a system similar to a social

recommendation process. The system is also capable of recommending a variety to a user

if the variety has a general appeal. In such cases, if the user likes the variety that actually

does not conform to his/her tastes explicitly mentioned, the user agent gives a feedback to

the recommender agent(s) who recommended that particular variety. The recommender

agent on getting the feedback from the user agent adds the variety in the preference list

for that user.

Page 36: Rec Om Mender System Thesis Mphil Gaurav

35

3.6 Algorithms used in proposed Recommender System:

3.6.1 Generating Recommendations

Various ways in which a recommender agent recommends a variety are:

• Case 1: The variety is in the preference list corresponding to the user stored in

the recommender agent.

• Case 2: The recommender agent comes to know about the variety through a

trustworthy acquaintance during unintentional encounters.

• Case 3: The recommender has used the variety, and feels that the variety has a

general appeal even if it does not conform to the tastes of the user. Recommender

agent recommends that variety to the user with the degree of uncertainty. The

degree of uncertainty signifies the extent to which the recommender is not sure

about his/her decision to suggest that variety to the user. The degree of

membership is zero for such varieties and the third parameter is computed using

the other two degrees. All such varieties are recommended to the user.

The varieties of case 3 are recommended whether they are according to the tastes of the

user or not. For the varieties of case 1 and case 2, matching is done with PA and UA and

based on the matching results, the recommendation is generated.

3.6.1.1 IFS generation for Varieties

A recommender can recommend varieties known to it. The recommender agent comes to

know about the variety either through usage or through unintentional encounters. During

the unintentional encounters, an agent exchanges the information about only those

varieties that it has used and is satisfied with.

An agent stores the names of the experienced varieties. When an agent has to generate

recommendations for other agent, it retrieves knowledge about experienced varieties.

Let a variety V be represented by n attributes (a1, a2… an). A variety V is suggested to the

user agent A, along with the IFS generated for it as shown below:

Page 37: Rec Om Mender System Thesis Mphil Gaurav

36

1. The degree of membership of variety V, μv is computed using the preference list PA, as: 1.1 For every attribute ai (i = 1, …, n) of variety V, do the following:

1.1.1 Search the position pi of variety V in preference list PA then compute the

rank Ranki as the normalized position of V in the range [0 to 1] using the

following formula:.

Ranki = 1- ((pi – 1) / (max-1))

where

max represents total number of varieties exist in PA

1.1.2 Finally, degree of membership of variety V, μv is computed as:

μv = n

rankdan

iii∑

=1)*(

where dai (i = 1, 2, …, n) represents the normalized degree of significance that

the user associates with the ith attribute,

n represents the total number of attributes of variety V in PA.

2. The degree of uncertainty of variety V, πv is computed using the uncertainty list UA,

created during the unintentional encounter among the trustworthy agents and on the

experienced varieties of the recommenders that are not matched with varieties of PA

as:

2.1 πv is computed from PA, using the experienced varieties list by assigning the

satisfaction values of V, greater than some threshold value.

2.2 πv is computed using the uncertainty list UA, as:

2.2.1 Let ki be the attribute value of V for attribute ai in UA.

2.2.2 Compute the degree of uncertainty of the V as:

n) k da ... k da k (da nn22 11 ∗++∗+∗

=vπ

where, dai (i = 1, 2, …, n) represents the degree of significance that the user associates with the ith attribute.

n represents the number of varieties in UA. The degree of non-membership of variety V, νv is computed as follows:

vv - - 1 πμν =v

Page 38: Rec Om Mender System Thesis Mphil Gaurav

37

3.6.1.2 Recommendation List Generation by Recommender Agent After matching the varieties with the preference list and uncertain list, the degree of

membership, degree of non-membership and uncertainty is available with the

recommender agent for all the varieties that it knows. The following method is used to

generate the final list of the varieties that are to be recommended to the user agent along

with IFS that is computed for them:

1. All the varieties that are part of case 3, section 3.6.1 are to be considered for

further processing.

2. For all the varieties of case 1 and 2, section 3.6.1, do the following:

2.1 The varieties with non-zero degree of membership are followed by the

varieties with non-zero degree of uncertainty.

2.2 Within the varieties with non-zero degree of membership, order the

varieties in descending order on degree of membership.

2.3 Within the varieties with non-zero degree of uncertainty, order the

varieties in descending order on degree of uncertainty.

3.6.2 Final Recommendation List Generation by User Agent

The user agent needs to form an aggregated list out of the IFS recommendations lists

received from the trustworthy recommender agents. User agent has to generate a final

consolidated list from all the recommendations that are received from the

recommenders. The user agent computes the degree of importance of a variety on the

basis of degree of trust on the recommenders who have recommended the variety, the

relative position of the variety in the list of recommenders and the IFS

recommendation of the recommender. The user agent generates a final consolidated

list from all the recommendations that are received from the recommenders using the

following aggregation method:

1. First identify the distinct varieties from the lists and then compute the degree of

importance (DoI) of every variety (Vi) as follows: ( ) ( ) ( ) ( ) ( )

( ) ( ){ }( ) ( ) ( ) ( ){ } ( )))(

)),......()()((),}{((

22222

11111

kikikikik

iiii

iiii

RRankRRRRDoTABSRRankRRRRDoTABS

RRankRRRRDoTABSMAXDoI

∗∗−∗∗∗−∗

∗∗−∗=

πνμπνμ

πνμ

Page 39: Rec Om Mender System Thesis Mphil Gaurav

38

where,

DoIi(A) is degree of importance of Vi as computed by A,

Rj is the jth recommender,

μi(X) is the degree of membership of Vi according to recommender X,

νi(X) is the degree of non-membership of Vi according to recommender X,

πi(X) is degree of uncertainty or hesitation of Vi according to recommender X,

DoT(Rj) is the degree of trust of the A on Rj,

Ranki(Rj) is the normalized position of Vi in the recommendation list of Rj,

k is the total number of recommenders who have recommended Vi.

2. Compute the threshold, TDOI for degree of importance as

TDOI = μ – ν * π

where,

μ, ν and π are degree of membership, non membership and uncertainty,

respectively that the user agent expects from the interesting variety.

3. For all the distinct varieties, Vi of step 1, the degree of importance obtained is a

real number that lies between 0 and 1; and hence there is no need for its

normalization. Arrange the products in the descending order of their degrees of

importance.

3.6.3 Initializing and Updating Degree of Trust on the Recommenders

3.6.3.1 Trust Initialization When a new agent comes up in the system or the system starts from the scratch, then the

agents have to initialize the trust values for some of the other agents in the application

domain to form its acquaintance set. If an agent is known to the other agent (i.e., the

corresponding humans know each other), then the human associated with the agent can

initialize the degree of trust according to the personal dealings with the person. However,

the system also allows an agent to initialize degree of trust on an agent X, on the basis of

the experiences of the other agents with X, i.e., to what extent the other agents in the

Page 40: Rec Om Mender System Thesis Mphil Gaurav

39

application domain have received good recommendations from X. The degree of trust is

then regularly updated on the basis of the personal experience of the agent with X.

The new agent Y, asks for the experience of known agents’ (connected to it) w.r.t. X. Let

q agents return their experience values as the number of good recommendations received

to the total number of the recommendations received from X. Let jth agent gives the

experience as ej. Then the degree of trust on X is as following:

q

eXDoT

q

jj∑

== 1)(

where, DoT(X) is degree of trust as computed by Y on X.

If q is large, then basically we are interested in finding what is the experience of

majority of the agents? Then experiences can then be clustered and degree of trust can be

computed [Kaur et al., 2005].

3.6.3.2 Trust Updation The degree of trust on a recommender is updated on the basis of the distance between

degree of importance of the variety as it is there in the aggregated list of the user agent

(A) and the recommendation list of the recommender (R). The difference of opinion

between the user and the recommender is computed as follows: ( )

p D ... D D

d P21 +++=

where, Di = {μi(R) – νi(R) * πi(R)} – {μ – ν * π},

μ, ν, π; and μi(R), νi(R), πi(R) are as defined earlier.

p is the total number of varieties in the recommendation list of R.

Depending upon whether the difference between its aggregated list and the

recommendations is below its acceptable threshold dt or not, the user agent updates the

degree of trust, DoT(R) on recommender as follows:

DoT(R) = DoT(R) + (dt – d) In our model, hence trust increases for those who give good recommendations and vice-versa.

Page 41: Rec Om Mender System Thesis Mphil Gaurav

40

Chapter 4

System Architecture of Recommender System 4.1 Introduction:- In the present context, there are number of domain experts (Farmers) each having

knowledge of their domain according to their own perspective. Now, if the user wants

information about the use of strategies and set of varieties that can be deployed in a

specific Zone such as Uttar Pradesh, Himachal Pradesh, he may contact the domain

experts who provide their knowledge of the specific problem area. Thereafter accordingly

the user processes the information gathered according to his specification. As the experts

may be geographically distributed, this knowledge engineering problem is a distributed

computing problem. Research literature on intelligent agent system architectures has

established that problems that are inherently distributed can be efficiently implemented as

a multi agent system. So the prototype proposes the solution based on a multi-agent

system approach, where every user in the prototype is represented by an agent. The

agents communicate with others to generate the recommendation using various

techniques like Content Based, Collaborative and Hybrid approach.

The prototype “A Recommender System for Crops & Varieties Selection-A farmer

Centered Approach” addresses the influence of Zone over varieties system operates. The

prototype integrates the knowledge of various domain experts (farmers) thereby

providing a solution to its users by recommending a set of varieties that is useful and can

be used for a particular Zone. This in turn expands the user knowledge regarding the

effects of Zones.

Using this Recommender System a user can get the recommendation on the use of

variety/ set of varieties in a user specified Zone from the available set of varieties, it takes

into account the influence of Zone over which farmers and varieties systems operate

thereby expanding the body of knowledge regarding the effects of Zone. The prototype

Page 42: Rec Om Mender System Thesis Mphil Gaurav

41

combines several domain experts’ knowledge to compute the recommendations. Thus, in

order to cover a certain range of tactical engagements, a recommendation for a set of

varieties will be obtained.

4.2 System Architecture:-

4.2.1 Program Structure Program structure defines the boundaries of the system within which the system will be

developed. This head provides pictorial view of the system which helps in understanding

various modules and sub-system of the system. Information like how the system interacts

with the user, how the input given by the user produces the output, what are the various

processes available to the user, type of users that are available with the system, etc.

4.2.2 Architecture Diagram The overall system would be presented shown pictorially with Block diagram, DFD and

ERD of the proposed system.

Block Diagram

Figure 4, shows the interaction of the user with the prototype. User provides the Zone

description as input and the system in turn produces the recommended ranked variety list

under crops from which the user finally selects a variety(s) for use. The system comprises

of certain crop which contain number of varieties of similar attributes.

Zone Description Variety list as

recommendation

Figure 4: Block Diagram

RECOMMENDER SYSTEM FOR

CROPS. & VARIETIES SELECTION – A

FARMER CENTERED APPROACH

Page 43: Rec Om Mender System Thesis Mphil Gaurav

42

4.2.3 Data Flow Diagram

The data flow diagram as shown in figure 5 describes how the user interacts with the

system and the process flow of the system.

Figure 5: Data Flow Diagram

Page 44: Rec Om Mender System Thesis Mphil Gaurav

43

4.2.4 Entity Relationship Diagram Figure 6 shows the entity relationship diagram for the prototype under consideration.

Figure 6: Entity - Relationship Diagram

Page 45: Rec Om Mender System Thesis Mphil Gaurav

44

4.3 Data Design 4.3.1 Database Description

The database for the proposed system has the following relations, in which some of them

are static and some are dynamically created. The purpose and attributes of each of these

tables is explained in Annexure I.

Zone Info

Variety Info Field Name Type Keys Description

Variety_ID VARCHAR2(15) Primary Key

Variety_Name VARCHAR2(40)

Description VARCHAR2(80)

Crop Info Field Name Type Keys Description

Crop_ID VARCHAR2(15) Primary Key

Crop _Name VARCHAR2(20)

Description VARCHAR2(80)

Field Name Type Keys Description

Zone_ID VARCHAR2(15) Primary Key

Zone_Name VARCHAR2(20)

Description VARCHAR2(80)

Page 46: Rec Om Mender System Thesis Mphil Gaurav

45

Zone_Crop Info Field Name Type Keys Description

Zone_Crop_ID VARCHAR2(15) Primary Key

Zone_ID VARCHAR2(15)

Foreign Key on Zone_ID of

Zone Info.

Crop_ID VARCHAR2(15) Foreign Key on Crop_ID of

Crop Info.

(Zone_ID and Crop_ID) must be a candidate Key.

Attribute Info Field Name Type Keys Description

Attribute_ID VARCHAR2(15) Primary Key

Attribute_Name VARCHAR2(20)

Description VARCHAR2(80)

Crop_Attribute Info Field Name Type Keys Description

Crop_Attribute_ID VARCHAR2(15) Primary Key

Crop _ID VARCHAR2(15) Foreign Key on Crop _ID of Crop

Info.

Attribute_ID VARCHAR2(15) Foreign Key on Attribute_ID of

Attribute Info.

(Crop _ID and Attribute_ID) must be a candidate Key.

Page 47: Rec Om Mender System Thesis Mphil Gaurav

46

User Account Info Field Name Type Keys Description

User_ID VARCHAR2(15) Primary Key

User_Type VARCHAR2(20)

Description VARCHAR2(80)

User_Name VARCHAR2(20)

Password VARCHAR2(15)

Address VARCHAR2(50)

Phone_No NUMBER(10)

Designation VARCHAR2(20)

Crop_ Variety Info Field Name Type Keys Description

Crop _Variety_ID VARCHAR2(15) Primary Key

Variety_ Crop _ID VARCHAR2(15) Foreign Key on

Variety_ Crop _ID of

Crop Info.

Variety_ID VARCHAR2(15) Foreign Key on Variety-

_ID of Variety Info.

(Variety_ Crop _ID and Variety_ID) must be a Candidate key.

Attribute_Variety Info Field Name Type Keys Description

Attribute_ID VARCHAR2(15) .

Variety_ID VARCHAR2(15)

Value NUMBER(6,6)

(Attribute_ID, Variety_ID) must be a Candidate Key.

Page 48: Rec Om Mender System Thesis Mphil Gaurav

47

Ajay_Trust

Field Name Type Keys Description

User_Name VARCHAR2(15) .

Trust_On VARCHAR2(15)

Trust_Value NUMBER(6,6)

(User_Name, Trust_On and Trust_Value) must be a Candidate Key.

Ajay_Significance

Field Name Type Keys Description

Attribute_ID VARCHAR2(20) Primary Key

Significance_Value NUMBER(20,18)

Gaurav_Uncertain

Field Name Type Keys Description

Variety_ID VARCHAR2(20)

Gaurav_Final_Recommendation

Field Name Type Keys Description

Variety_ID VARCHAR2(15)

D_O_Imp NUMBER(8,6)

Ui_Vi_Pii NUMBER(8,6)

Page 49: Rec Om Mender System Thesis Mphil Gaurav

48

Gaurav_Variety

Field Name Type Keys Description

Variety_ID VARCHAR2(20) Primary Key

Satisfaction_Rate NUMBER(8,6)

4.4 Implementation Details

A Recommender System for Crops & Varieties Selection - A Farmer Centered Approach

is designed and developed using JADE (Java Agent Development Environment), JSP and

Oracle 9i. An experiment is conducted in which 10 domain experts (farmers) were asked

to help the users decide about which variety to use in a specific zone. The dataset is

collected from the IASRI for generating the recommendations and trust updation. This

dataset contained the details of 10 zones, 12 crops, 15 varieties under each crop category

and 6 variety attributes.

The AFCA system starts with 10 recommender agents (domain experts), who have their

own knowledge about the varieties in specific zone stored in their own location. User

agent creates when user logs into the system. The user agent has a certain degree of trust

on these recommender agents, which is represented in the Table-2. In Table -1, degrees

of significance that the user agent associates with the attributes of a variety. The Table –

3 gives the preference list that the user agent gave to the recommender agents. The

information in the Table – 4 is what the recommender agents know, during the

unintentional encounters.

User agent receives the query regarding variety recommendation from the user and passes

this query to its trustworthy recommender agents. The recommender agents respond with

the degrees of membership and non-membership about the varieties. Finally the

aggregated list of all the recommendations as computed by the user agent and given to

user.

Page 50: Rec Om Mender System Thesis Mphil Gaurav

49

The following snapshots give the implementation details of the AFCA system and which

will guide the user how to interact with the system.

4.4.1 Login

This is first screen that displays. It allows the user to access different screens based upon

the user’s role. Administrator, Domain expert and User are different roles assigned to

user. User with administrator role has to login first for successfully starting the

application.

Fig.7 Login window of AFCA

4.4.2 Domain Expert Agents

Once administrator successfully logs into the system then all the domain expert agents

run automatically. These agents were created in the JADE (Java Agent Development

Environment). Fig.8. shows agent environment in which domain expert agents are

running.

Page 51: Rec Om Mender System Thesis Mphil Gaurav

50

Fig.8 Agent Environment

4.4.3 Unintentional Encounters

The recommender agent comes to know about the variety through unintentional

encounters. During the unintentional encounters, an agent exchanges the information

about only those varieties that it has used and is satisfied with. Fig.9 shows the

information exchange among the agents during unintentional encounters.

Fig.9 Information exchange among the agents during unintentional encounters

Page 52: Rec Om Mender System Thesis Mphil Gaurav

51

4.4.4 Recommender’s known varieties details

For creating a known variety list user selects the variety from the existing variety list to

known variety list shown in Fig.10 then user fills the satisfaction in percentage for the

experienced varieties shown in Fig 11.

Fig.10 Selection of user’s known variety list

Fig.11 User’s known variety details

Page 53: Rec Om Mender System Thesis Mphil Gaurav

52

5.2.5 Recommender’s experienced variety details

The system allows the recommenders to share the experienced varieties knowledge.

Recommender selects the appropriate zone and crop under which he experienced the

varieties then he selects the list of experienced varieties from the pool of existing list

shown in Fig-12. Fig 13 shows the recommender ranks the list of selected varieties

according to variety attributes.

Fig.12 Selection of experienced varieties

Fig.13. Ranking of varieties according to the variety attributes

Page 54: Rec Om Mender System Thesis Mphil Gaurav

53

5.2.6 Update trust

Trust of the user on recommenders is updated by the system implicitly based on

importance of recommendation for the user. System also allows the user to explicitly

update the trust on the recommenders shown by Fig 14.

Fig. 14 Updation of trust of the user over recommenders

5.2.7 Recommendation Generation

System captures the information of degree of significance for the variety attributes shown

in Fig 15 then system allows the user to select the zone over which variety has to use

shown in Fig.16. After that system generates the recommendation list for the specified

zone shown by Fig.17.

Fig.15 Grade the degree of significance

Page 55: Rec Om Mender System Thesis Mphil Gaurav

54

Fig.16 Selection of zone for generating the recommendation

Fig.17 Recommendation Report

Page 56: Rec Om Mender System Thesis Mphil Gaurav

55

Chapter 5

Conclusion and Future Work

The research work “Recommender System for Crops & Varieties Selection -A Farmer

Centered Approach” addresses the influence of Zone over which farmers and variety

systems operate. The prototype integrates the knowledge of various domain experts

thereby providing a solution to its users by recommending a set of variety systems that

are useful and can be used for a particular Zone. This in turn expands the user knowledge

regarding the effects of Zone.

All existing recommender systems employ one or more of a handful of basic techniques:

content-based, collaborative, hybrid. A survey of these techniques shows that they have

complementary advantages and disadvantages. This fact has provided incentive for

research in hybrid recommender systems that combine techniques for improved

performance.

Using this Recommender System a user can get the recommendation on the use of variety

/ set of varieties in a user specified Zone from the available set of varieties, it takes into

account the influence of Zone over which farmers operate thereby expanding the body of

knowledge regarding the effects of Zone. The prototype combines several domain

experts’ knowledge to compute the recommendations. Thus, in order to cover a certain

range of tactical engagements, a recommendation for a set of varieties will be obtained

The existing recommender systems base recommendations on similarity between the user

and the recommenders or between the items. In the first case, the user profile is matched

with the database of profiles to find the similar profiles. The products preferred by those

similar people are suggested to the user also. In the second type of recommender systems,

the database is mined to find products that are normally preferred together. Depending

upon what user has already purchased/shown preference for; the other products that go

along with it are suggested to the user. However, the studies have shown that the users

Page 57: Rec Om Mender System Thesis Mphil Gaurav

56

prefer recommendations from friends as compared to the recommendations received from

these recommender systems. This is because the existing recommender systems work like

a black box and hence it is difficult for the user to accept the recommendations of the

system.

To overcome this problem of lack of trust on the recommendation systems this model

incorporates the social recommendation process. The trustworthy peers of the user

become the recommender agents and suggest varieties to the user according to the tastes

of the user. The agents in our system also learn from their experience in dealing with the

trustworthy peers and update the degree of trust on them. In this system, we have tried to

merge the advantages of the mechanical recommender system with the more human

recommendation process to make their recommendations trustworthy and useful for the

user.

Future versions of the present system can incorporate neural models of adversarial

strategies while computing recommendations.

Page 58: Rec Om Mender System Thesis Mphil Gaurav

57

Annexure I

a) Database Table Description

• User This table stores the details of the users, authorized to use this system.

Name Data type Description Remarks User_Id Varchar(20) Every user has a unique

user id, used for authentication

Primary Key

Password Char(10) It stores password given by user

-

User_name Varchar(20) It stores the name of the user

-

Address Varchar(20) It stores the address of user

-

City Varchar(20) It stores the city of user - State Varchar(20) It stores the state of user - Country Varchar(20) It stores the country of

user -

Phone Number(10) It stores the phone number of user

-

Institute_id Varchar(20) It stores the id of institute where the user works

Foreign Key-(Institute(Institute_id))

Usertype_id Varchar(20) It sorer the type of user Foreign Key-(UserType(Usertype_id))

• UserType

This table stores the different types of users permitted to uses the system:

Name Data type Description Remarks Usertype_Id Varchar(20) Every type of user has a

unique user type id Primary Key

Usertype Varchar(10) It stores the type of user - Usertype_desc Varchar(20) It stores the description

about that user type -

Page 59: Rec Om Mender System Thesis Mphil Gaurav

58

• Institute This table stores the details of the institute where the user belongs to.

Name Data type Description Remarks Institute_Id Varchar(20) Every institute has a

unique institute_id. Primary Key

Institute_Acro Char(10) It stores the acronym of the institure

-

Institute_name Varchar(20) It stores the name of the institute

-

Institute_Address Varchar(20) It stores the address of the institute

-

Institute_City Varchar(20) It stores the city of institute

-

Institute_State Varchar(20) It stores the state of institute

-

Institute_Country Varchar(20) It stores the country where the institute is located

-

Institute_Phone Number(10) It stores the phone number of the institute

-

Institute_fax Varchar(20) It stores the fax number of the institute

Foreign Key-(Institute(Institute_id))

Institute_website Varchar(20) It stores the website address of the institute

Institute_Email It stores the Email Id

• Proj_Basic_Data: This table contains the data regarding the project

Name Data type Description Remarks Proj_Code Varchar(20) Every project title is given

an unique id Primary Key

TiTle VarChar(200) The title of the project is stored here

-

Proj_Start_Date Date It stores the date when the project was started

-

Proj_End_Date Date It stores the date when the project came to an end

-

Institute_Id Varchar(20) It stores the city of user Refers Institute(Institute_id)

PI_Name Varchar(20) It stores the name of PI of that project

Refers Users(User_Id)

Status Char(10) The staus “new”,”comp”, “ongoing” is stored

Page 60: Rec Om Mender System Thesis Mphil Gaurav

59

• Proj_Objective This table stores the Objectives corresponding to

each Project Title Name Data type Description Remarks Proj_objective_Id Varchar(20) Every Objective is

given an unique Id Primary Key

Pcode Varchar(20) The project Titlecode is given here

Refers Proj_Basic_Data(Proj_Cde)

Proj_Objective Varchar(200) The objective statement is given here

-

• Proj_Activity The descriptions of all the activities are mentioned in this table

Name Data type Description Remarks Proj_Actv_Code Varchar(20) Every Activity

is given an unique Id

Primary Key

Proj_Obj_Id Varchar(20) The Id of the Objective to which the activity belongs to is mentioned

Refers Proj_Objective(Proj_Objective_Id)

Proj_Activity Varchar(200) The activity statement is given here

-

Page 61: Rec Om Mender System Thesis Mphil Gaurav

60

Annexure II

RiTa.WordNet Libraries

Fields RiWordNet.ADJ String constant for Adjective part-of-speech

RiWordNet.ADV String constant for Adverb part-of-speech

RiWordNet.NOUN String constant for Noun part-of-speech

RiWordNet.VERB String constant for Verb part-of-speech

Methods exists() Checks the existence of a ‘word’ in the ontology

getAllAlsoSees()

Returns also-see terms for all senses ofword/pos or null if not found Holds for nouns (?) & adjectives Example: happy -> [cheerful, elated, euphoric, felicitous, joyful, joyous...]

getAllAntonyms()

Returns String[] of Antonyms for the 1st sense of word with pos or null if not found Holds for adjectives only (?)

Page 62: Rec Om Mender System Thesis Mphil Gaurav

References

61

getAllCoordinates()

Returns coordinate terms for all sense of word/pos, or null if not found X is a coordinate term of Y if there exists a term Z which is the hypernym of both X and Y. Examples:

• blackbird and robin are coordinate terms (since they are both a kind of thrush)

• gun and bow are coordinate terms (since they areboth varieties)

• fork and spoon are coordinate terms (since they are both cutlery, or eating utensils)

• hat and helmet are coordinate terms (since they are both a kind of headgear or headdress)

Example: arm -> [hind-limb, forelimb, flipper, leg, crus, thigh, arm...] Holds btwn nouns/nouns and verbs/verbs

getAllDerivedTerms()

Returns derived terms forall senses of word/pos or null ifnot found Holds for adverbs Example: happily -> [jubilant, blithe, gay, mirthful, merry, happy]

getAllExamples()

Returns examples for all senses of word with pos if they contain the word, else null if not found

getAllGlosses()

Returns glosses for all senses of ‘word’ with ‘pos’, or null if not found

getAllHolonyms()

Returns part-to-whole relationships for all sense of word/pos, or none if not found X is a meronym of Y if Y has X as a part. X is a holonym of Y if X has Y as a part. That is, if Y is a meronym of X. Holds between: nouns and nouns Returns part, member, and substance holonyms Example: arm -> [body, physical-structure, man, human...]

getAllHypernyms()

Returns an ordered String[] of hypernym-synsets (each a semi-colon delimited String) up to the root of WordNet for the 1st sense of the word, or null if not found

getAllHyponyms()

Returns an unordered String[] of hyponym-synsets (each a colon-delimited String), or null if not found

Page 63: Rec Om Mender System Thesis Mphil Gaurav

References

62

getAllMeronyms()

Returns array of whole-to-part relationships for all senses of word/pos, or null if not found X is a meronym of Y if Y has X as a part. X is a holonym of Y if X has Y as a part. That is, if Y is a meronym of X. Holds between: Nouns and nouns Returns part,member, and substance meronyms Example: arm -> [wrist, carpus, wrist-joint, radiocarpal-joint...]

getAllNominalizations()

Returns nominalized terms for all sense of word/pos or null if not found Refers to the use of a verb or an adjective as a noun. Holds for nouns, verbs & adjecstives(?) Example: happiness(n) -> [happy, unhappy] happy(a) -> [happiness, felicity]

getAllSimilar()

Returns similar-to list for all sense of word/pos or null if not found Holds for adjectives Example: happy(a) -> [blessed, blissful, bright, golden, halcyon, prosperous...]

getAllSynonyms()

Returns an unordered String[] containing the synset, hyponyms, similars, alsoSees, and coordinate terms (checking each in order) for all senses of word with pos, or null if not found

getAllSynsets()

Returns String[] of words in each synset for all senses of word with pos, or null if not found

getAllVerbGroups()

Returns verb group for all senses of verb or null if not found Example: live -> [dwell, inhabit] Holds for verbs

getAlsoSees()

Returns also-see terms for 1st sense of word/pos or null if not found Holds for nouns (?) & adjectives Example: happy -> [cheerful, elated, euphoric, felicitous, joyful, joyous...]

getAnagrams() Returns up to maxResults full anagram matches for the specified word and pos

Page 64: Rec Om Mender System Thesis Mphil Gaurav

References

63

Example: ‘table’ returns ‘bleat’ (but not ‘tale’).

getAntonyms()

Returns String[] of Antonyms for the 1st sense of word with pos or null if not found Holds for adjectives only (?)

getAnyExample()

Return a random example from the set of examples from all senses of word with pos, assuming they contain word, or else null if not found

getBestPos()

Finds the most-common part-of-speech for the word, according to its polysemy count, returning the pos for the version of the word with the most different senses.

getCommonParent()

Returns common parent for words with unique ids id1, id2, or null if either word or no parent is found

getCommonParents()

Returns String[] of Common Parents for 1st senses of words with specified pos’ or null if not found

getContains()

Returns up to maxResults of the specified pos where each contains the given word

Example: ‘table’ returns ‘bleat’ (but not ‘tale’).

getCoordinates()

Returns coordinate terms for 1st sense of word/pos, or null if not found X is a coordinate term of Y if there exists a term Z which is the hypernym of both X and Y. Examples:

• blackbird and robin are coordinate terms (since they are both a kind of thrush)

• gun and bow are coordinate terms (since they are both varieties)

• fork and spoon are coordinate terms (since they are both cutlery, or eating utensils)

• hat and helmet are coordinate terms (since they are both a kind of headgear or headdress)

Example: arm -> [hind-limb, forelimb, flipper, leg, crus, thigh, arm...] Holds btwn nouns/nouns and verbs/verbs

getDerivedTerms() Returns derived terms for 1st sense of word/pos or null if not found

Page 65: Rec Om Mender System Thesis Mphil Gaurav

References

64

Holds for adverbs Example: happily -> [jubilant, blithe, gay, mirthful, merry, happy]

getDescription()

Returns description for word with pos or null if not found

getDistance()

Returns the min distance between any two senses for the 2 words in the WordNet tree (result normalized to 0-1) with specified pos, or 1.0 if either is not found

getEndsWith()

Returns up to maxResults of the specified pos ending with the given word.

Example: ‘table’ returns ‘turntable’ & ‘uncomfortable’

getExamples()

Returns examples for word with unique senseId, or null if not found

getGloss()

Returns full gloss for !st sense of ‘word’ with ‘pos’ or null if not found

getHolonyms()

Returns part-to-whole relationships for 1st sense of word/pos, or none if not found X is a meronym of Y if Y has X as a part. X is a holonym of Y if X has Y as a part. That is, if Y is a meronym of X. Holds between: nouns and nouns Returns part, member, and substance holonyms Example: arm -> [body, physical-structure, man, human...]

getHypernyms()

Returns Hypernym String[] for all senses of word with pos or null if not found

X is a hyponym of Y if there exists an is-a relationship between X and Y. That is, if X is a subtype of Y. Or, for xample, if X is a species of the genus Y. X is a hypernym of Y is Y is a hyponym of X. Holds between: nouns and nouns & verbs and verbs Examples:

• artifact is a hyponym of object • object is a hypernym of artifact • carrot is a hyponym of herb

Page 66: Rec Om Mender System Thesis Mphil Gaurav

References

65

• herb is a hypernym of carrot

getHypernymTree()

Returns an ordered String[] of hypernym-synsets (each a semi-colon delimited String) up to the root of WordNet for the id, or null if not found

getHyponyms()

Returns Hyponym String[] for 1st sense of word with pos or null if not found

X is a hyponym of Y if there exists an is-a relationship between X and Y. That is, if X is a subtype of Y. Or, for xample, if X is a species of the genus Y. X is a hypernym of Y is Y is a hyponym of X. Holds between: nouns and nouns & verbs and verbs Examples:

• artifact is a hyponym of object • object is a hypernym of artifact • carrot is a hyponym of herb • herb is a hypernym of carrot

getHyponymTree()

Returns an unordered String[] of hyponym-synsets (each a colon-delimited String) representing all paths to leaves in the ontology (the full hyponym tree), or null if not found

getMeronyms()

Returns array of whole-to-part relationships for 1st sense of word/pos, or null if not found X is a meronym of Y if Y has X as a part. X is a holonym of Y if X has Y as a part. That is, if Y is a meronym of X. Holds between: Nouns and nouns Returns part,member, and substance meronyms Example: arm -> [wrist, carpus, wrist-joint, radiocarpal-joint...]

getNominalizations()

Returns nominalized terms for 1st sense of word/pos or null if not found Refers to the use of a verb or an adjective as a noun. Holds for nouns, verbs & adjecstives(?)

Page 67: Rec Om Mender System Thesis Mphil Gaurav

References

66

Example: happiness(n) -> [happy, unhappy] happy(a) -> [happiness, felicity]

getPos()

Returns an array of all parts-of-speech ordered according to their polysemy count, returning the pos with the most different senses in the first position, etc.

getRandomExample() Returns a random example from a random word w’ pos

getRandomExamples()

Returns numExamples random examples from random words w’ pos

getRandomWord()

Returns a random word with pos and a maximum of maxChars.

getRandomWords() Returns count random words w’ pos

getRegexMatch()

Returns up to maxResults of the specified pos matching the the given regular expression pattern.

getSenseCount()

Return the # of senses (polysemy) for a given word/pos. A ‘sense’ refers to a specific WordNet meaning and maps 1-1 to the concept of synsets. Each ‘sense’ of a word exists in a different synset.

For more info, see: {@link http://WordNet.princeton.edu/gloss}

getSenseIds()

Returns String[] of unique ids, one for each ‘sense’ of word with pos, or null if none are found.

A WordNet ‘sense’ refers to a specific WordNet meaning and maps 1-1 to the concept of synsets. Each ‘sense’ of a word exists in a different synset.

For more info, see: {@link http://WordNet.princeton.edu/gloss}

getSimilar()

Returns similar-to list for first sense of word/pos or null if not found Holds for adjectives Example: happy(a) -> [blessed, blissful, bright, golden, halcyon, prosperous...]

Page 68: Rec Om Mender System Thesis Mphil Gaurav

References

67

getSoundsLike()

Returns up to maxResults of the specified pos that match the soundex code of the given word.

getStartsWith()

Returns up to maxResults of the specified pos starting with the given word.

Example: ‘turn’ returns ‘turntable’

getStems() Returns an array of all stems, or null if not found

getSynonyms()

Returns an unordered String[] containing the synset, hyponyms, similars, alsoSees, and coordinate terms (checking each in order) for all senses of word with pos, or null if not found

getSynset()

Returns String[] of words in synset for first sense of word with pos, or null if not found.

getVerbGroup()

Returns verb group for 1st sense of verb or null if not found Example: live -> [dwell, inhabit] Holds for verbs

getWildcardMatch()

Returns up to maxResults of the specified pos matching a wildcard pattern, with * ‘*’ equals any number of characters, and ‘?’ equals any single character.

Example : ‘t ?le’ returns (tale,tile,tole) Example : ‘t*le’ returns (tatumble, turtle, tussle, etc.) Example: ‘t?le*’ returns (telex, tile,tilefish,tile,talent, tiles, etc.)

ignoreCompoundWords()

ignoreUpperCaseWords()

isAdjective()

isAdverb()

isIgnoringCompoundWords()

Page 69: Rec Om Mender System Thesis Mphil Gaurav

References

68

isIgnoringUpperCaseWords()

isNoun()

isStem()

Returns true if ‘word’ exists with ‘pos’ and is equal (via String.equals()) to any of its stem forms, else false;

isVerb()

printHypernymTree()

Prints the full hypernym tree to System.out (primarily for debugging).

printHyponymTree() Prints the full hyponym tree to System.out (primarily for debugging).

Page 70: Rec Om Mender System Thesis Mphil Gaurav

References

69

References Adomavicius G., and Tuzhilin A., 2005. Toward the Next Generation of Recommender Systems: A Survey of the State-of-the-Art and Possible Extensions. In IEEE Transactions on Knowledge and Data Engineering, Vol. 17, No. 6, pp. 734-749. Atanassov, K., 1999. Intuitionistic Fuzzy Sets: Theory and Applications. Studies in Fuzziness and Soft Computing, 35, Physica-Verlag. Baldi P., Frasconi P. and Smyth P., 2003. Commerce on the Web: Models and Applications. Modeling the Internet and the Web, Probabilistic Methods and Algorithms, John Wiley & Sons Ltd., West Sussex, England, pp. 211-234. Bedi P. and Kaur H., 2006. Trust based Personalized Recommender System. In INFOCOM Journal of Computer Science, Vol. 5, N.1, pp. 19-26. Bonhard P., 2004. Improving Recommender Systems with Social Networking. In the Proceedings Addendum of the 2004 ACM Conference on Computer-Supported Cooperative Work. Chicago, IL, USA. Breese J., Heckerman D. and Kadie C., 1998. Empirical Analysis of Predictive Algorithms for Collaborative Filtering. In the Proceedings of Fourth Annual Conference on Uncertainty in Artificial Intelligence, Morgan Kaufmann, Madison, WI, USA, pp. 43-52.

Burke R., 2002. Hybrid Recommender Systems: Survey and Experiments. User Modeling and User-Adapted Interaction, Vol. 12, pp. 331-370. Herlocker J.L., Konstan J.A., Terveen L.G. and Riedl J., 2004. Evaluating Collaborative Filtering Recommendations. In ACM Transactions on Information Systems, Vol. 22, No. 1, pp. 5-53. Huang Z., Chen H. and Zeng D., 2004a. Applying Associative Retrieval Techniques to Alleviate the Sparsity Problem in Collaborative Filtering. In the ACM Transactions on Information Systems, Vol. 22, No. 1, pp. 116-142. Li Q. and Kim B.M., 2003. Clustering Approach for Hybrid Recommender System. In the Proceedings of the IEEE/WIE International Conference on Web Intelligence (WI’03). Resnick P. and Varian H.R., 1997. Recommender Systems. In the Communications of the ACM, Vol. 40, Vol. 3, pp. 56-58.

Page 71: Rec Om Mender System Thesis Mphil Gaurav

References

70

Sarwar B., Karypis G., Konstan J. and Riedl J., 2000b. Analysis of Recommender Algorithms for E-Commerce. In the Proceedings of Electronic Commerce, Minneapolis, Minnesota, USA, pp. 158-167.

Sarwar B., Karypis G., Konstan J., and Riedl J., 2001. Item-Based Collaborative Filtering Recommendation Algorithms. In the Proceedings of World Wide Web, Hong Kong, pp. 285-295 Schafer J.B., Konstan J. and Riedl J., 1999. Recommender Systems in E-Commerce. In the Proceedings of First ACM Conference on Electronic Commerce, Denver, USA. Schafer J.B., Konstan J. and Riedl J., 2002. Meta-Recommender Systems: User-controlled Integration of Diverse Recommendations. In the Proceedings of Conference on Information and Knowledge Management (CIKM ’02), McLean, Virginia, USA, pp. 43-51. Semeraro G., Lops P. and Dedemmis M., 2005. WordNet-based User Profiles for Neighborhood Formation in Hybrid Recommender Systems. In the Proceedings of the 5th International Conference on Hybrid Intelligent Systems (HIS '05). Shardanand U., and Maes P., 1995. Social information filtering: Algorithms for Automating “Word of Mouth”. In the Proceedings of the ACM CHI’95 Conference on Human Factors in Computing Systems, Denver, CO, pp. 210-217. Sinha R. and Swearingen K., 2001. Comparing Recommendation made by Online Systems and Friends. In the Proceedings of the DELOS-NSF Workshop on Personalization and Recommender Systems in Digital Libraries, Ireland.

Ungar L.H. and Foster D.P., 1998. Clustering Methods for Collaborative Filtering. In the Proceedings of the Workshop on Recommender Systems, AAAI Press.

Page 72: Rec Om Mender System Thesis Mphil Gaurav

71

Annexture I

Abbreviations Terms

AFCA A Farmer Centered Approach

JADE Java Agent Development Environment

GUI Graphical User Interface

HTML Hyper Text Markup Language

JSP Java Server Pages