Scholarly article on topic 'Automated web usage data mining and recommendation system using K-Nearest Neighbor (KNN) classification method'

Automated web usage data mining and recommendation system using K-Nearest Neighbor (KNN) classification method Academic research paper on "Computer and information sciences"

CC BY-NC-ND
0
0
Share paper
Academic journal
Applied Computing and Informatics
OECD Field of science
Keywords
{Automated / "Data mining" / "K-Nearest Neighbor" / On-line / Real-Time}

Abstract of research paper on Computer and information sciences, author of scientific article — D.A. Adeniyi, Z. Wei, Y. Yongquan

Abstract The major problem of many on-line web sites is the presentation of many choices to the client at a time; this usually results to strenuous and time consuming task in finding the right product or information on the site. In this work, we present a study of automatic web usage data mining and recommendation system based on current user behavior through his/her click stream data on the newly developed Really Simple Syndication (RSS) reader website, in order to provide relevant information to the individual without explicitly asking for it. The K-Nearest-Neighbor (KNN) classification method has been trained to be used on-line and in Real-Time to identify clients/visitors click stream data, matching it to a particular user group and recommend a tailored browsing option that meet the need of the specific user at a particular time. To achieve this, web users RSS address file was extracted, cleansed, formatted and grouped into meaningful session and data mart was developed. Our result shows that the K-Nearest Neighbor classifier is transparent, consistent, straightforward, simple to understand, high tendency to possess desirable qualities and easy to implement than most other machine learning techniques specifically when there is little or no prior knowledge about data distribution.

Academic research paper on topic "Automated web usage data mining and recommendation system using K-Nearest Neighbor (KNN) classification method"

Applied Computing and Informatics (2014) xxx, xxx-xxx

King Saud University Applied Computing and Informatics

www.ksu.edu.sa www.sciencedirect.com

ORIGINAL ARTICLE

Automated web usage data mining and recommendation system using K-Nearest Neighbor (KNN) classification method

D.A. Adeniyi, Z. Wai, Y. Yongquan *

Department of Computer Sc. & Technology, College of Information Sc. & Engineering, Ocean University of China, Qingdao, Shandong, China

Received 3 August 2014; revised 29 September 2014; accepted 17 October 2014

KEYWORDS

Automated; Data mining; K-Nearest Neighbor; On-line; Real-time

Abstract The major problem of many on-line web sites is the presentation of many choices to the client at a time; this usually results to strenuous and time consuming task in finding the right product or information on the site. In this work, we present a study of automatic web usage data mining and recommendation system based on current user behavior through his/her click stream data on the newly developed Really Simple Syndication (RSS) reader website, in order to provide relevant information to the individual without explicitly asking for it. The K-Nearest-Neighbor (KNN) classification method has been trained to be used on-line and in real-time to identify clients/visitors click stream data, matching it to a particular user group and recommend a tailored browsing option that meet the need of the specific user at a particular time. To achieve this, web user's RSS address file was extracted, cleansed, formatted and grouped into meaningful session and data mart was developed. Our result shows that the K-Nearest Neighbor classifier is transparent, consistent, straightforward, simple to

Corresponding author. E-mail address: i@yangyongquan.com (Y. Yongquan). Peer review under responsibility of King Saud University.

http://dx.doi.org/10.1016/j.aci.2014.10.001

2210-8327 © 2014 Production and hosting by Elsevier B.V. on behalf of King Saud University.

This is an open access article under the CC BY-NC-ND license (http://creativecommons.org/licenses/by-nc-nd/3.0/).

D.A. Adeniyi et al.

understand, high tendency to possess desirable qualities and easy to implement than most other machine learning techniques specifically when there is little or no prior knowledge about data distribution.

© 2014 Production and hosting by Elsevier B.V. on behalf of King Saud University. This is an open access article under the CC BY-NC-ND license (http://creativecom-

1. Introduction

Data mining is the extraction of knowledge from large amount of observational data sets, to discover unsuspected relationship and pattern hidden in data, summarize the data in novel ways to make it understandable and useful to the data users (Jiawei and Micheline, 2006; Zdravko and Daniel, 2007; Bounch et al., 2001). Web usage mining is the application of data mining technique to automatically discover and extract useful information from a particular web site (Bounch et al., 2001; Niyat et al., 2012; Xuejuu et al., 2007).

The term web mining was believed to have first came to be in 1996 by Etzioni in his paper titled ''The World Wide Web: Quagmire or Gold mine'' and since then the attention of researchers world over has been shifted to this important research area (Resul and Ibrahim, 2008). In recent years, there has been an explosive growth in the number of researches in the area of web mining, specifically of web usage mining. According to Federico and Pier (2005), over 400 papers have been published on web mining since the early paper published in 1990's.

The Really Simple Syndication (RSS) reader website was developed for the purpose of reading daily news on-line across the Globe, but lack ways of identifying client navigation pattern and cannot provide satisfactory real-time response to the client needs, so, finding the appropriate news becomes time consuming which makes the benefit of on-line services to become limited. The study aims at designing and developing an automatic, online, real-time web usage data mining and recommendation system based on data mart technology. The system is able to observe user/client navigation behavior by acting upon the user's click stream data on the RSS reader web site, so as to recommend a unique set of objects that satisfies the need of an active user in a real-time, online basis. The user access and navigation pattern model are extracted from the historical access data recorded in the user's RSS address URL file, using appropriate data mining techniques.

The K-Nearest Neighbor classification method was used online and in RealTime to exploit web usage data mining technique to identify client's/visitor's click stream data matching it to a particular user group and recommend a tailored browsing option that meets the need of the specific user at a given time (Padraig and Sarah, 2007). For instance, if a user seems to be searching for politics news on china daily on his/her visit to the RSS reader site, more politics news headlines from other dailies such as CNN politics news will be recommended to the user with the required feed needed to be added to his/her profile in order to

mons.org/licenses/by-nc-nd/3.0/).

Automated web usage data mining and recommendation system 3

access such news headlines asides his/her originally requested news. This is aimed at assisting the user to get relevant information without explicitly asking for it, so as to ease and fasten navigation on the site without too many choices being presented to the user at a time, More so, the study will assist the web designer and administrator to re-arrange the content of the web site in order to improve the impressiveness of the web site by providing online real-time recommendation to the client.

To achieve this, the web user's RSS address URL file was extracted, cleansed, formatted and grouped into meaningful session for data mining analysis and data mart was developed, this is as a result of the fact that the raw URL file extracted is not well structured to be used directly for data mining. In designing the data mart, the process of URL data acquisition and model extraction was implemented using database management software specifically the Structured Query Language, MySQL 2008 (MySQL Corporation, 2008). The process of the development of automatic real-time web usage mining and recommendation application was done by adopting the Java programing language with NetBeans as the editor and compiler (NetBeans IDE, 2008). MATLAB software was used for interpretation and graphical presentation of the result obtained (Mathworks Incorporation, 1984-2011). A thorough presentation of the experimental result was done in order to assist the site designer and administrator to improve the content and impressiveness of the said RSS reader site. The architecture of the overall system is shown in Fig. 1.

2. Related work

This section reviews some related works pertinent to this study, the review is specifically organized into sub sections as follows:

Figure 1 The architecture of the overall system.

D.A. Adeniyi et al.

2.1. Web data mining

Zdravko and Daniel (2007), described web data mining as the application of data mining techniques to discover patterns in web content, structure and usage. It is a branch of applied artificial intelligence that deals with storage, retrieval and analysis of web log files in order to discover user's accessing and usage pattern of web pages (Resul and Ibrahim, 2008).

According to (Zdravko and Daniel, 2007; Xuejuu et al., 2007), there are three major research areas in web data mining which are:

1. Web structure mining: This refers to the application of data mining method in investigating the hyperlink structure of the web, so as to discover related connectivity pattern, specifically when mining HTML or XML tags (Zdravko and Daniel, 2007; Xuejuu et al., 2007).

2. Web content mining: This refers to the discovery of pattern contained in the web information such as HTML pages, video, images, E-mails, audio links, etc., with the intention of turning web data into web knowledge.

3. Web usage mining: This is the application of data mining method to uncover usage pattern in the web data in order to understand the user navigation behavior through the user's click stream at a given time. It reflects the behavior of users as they interact with the web site (Zdravko and Daniel, 2007; Xuejuu et al., 2007).

2.2. Forms of data mining system

Two forms of data mining tasks were identified by researchers over the years, these include; predictive and descriptive (Jiawei and Micheline, 2006; Amartya and Kundan, 2007; David et al., 2001).

In predictive data mining task, inference is performed on current data in a database in order to predict future values of interest while in descriptive task, data in a database are classified by characterizing the general properties of the data, it finds pattern describing the data in the database so as to present the interpretation to the user (Jiawei and Micheline, 2006; Amartya and Kundan, 2007; David, 2012). According to Amartya and Kundan (2007), the goal of either predictive or descriptive can be archived through different data mining techniques such as association rule mining, clustering, classification etc. which can apply different data mining methods such as decision tree, genetic algorithm, K-Nearest Neighbor classifier, path analysis to mention but a few.

2.2.1. Classification of data mining system

Data mining system can be classified using different criteria. Jiawei and Micheline (2006), identified these criteria as kind of database mined, kind of knowledge

Automated web usage data mining and recommendation system

mined, type of technique utilized and according to type of application adapted. Federico and Pier (2005), stated further that in web usage data mining task, different techniques can be adopted, but the issue is how to determine which technique is most appropriate for the problem at hand. A multiple approach or an integrated technique that combines the benefits of a number of individual approaches can be adopted by a comprehensive data mining system (Shu-Hsien et al., 2012).

Classification: This refers to a form of data analysis that can be used to produce models that brings out important data classes, classification predict categorical labels. A classifier is an abstract model, that describes a set of predefined classes generated from a collection of labeled data (Luca and Paolo, 2013). (Jiawei and Micheline, 2006; Luca and Paolo, 2013), stated that there are different techniques for data classification which includes; decision tree classifier, Bayesian classifier, K-Nearest Neighbor classifier, rule base classifier etc. In our work, the K-Nearest Neighbor classification method was adopted.

2.3. Overview of some related data mining techniques

Below is a brief overview of some of the data mining techniques according to different scholars in the field as it relates to our work.

Decision tree: In the work of (Jiawei and Micheline, 2006), decision tree was described as a flowchart-like tree structure in which Test of attributes is represented as internal nodes (non leaf node), while the outcome of the test represented the branch and the leaf nodes usually referred to as terminal node which represent the class label. The topmost node is called the root. The use of classification and regression tree (CART) was adopted by Amartya and Kundan (2007) in their work. In constructing a decision tree, they applied both gini index (g) and entropy value (ei) as the splitting indices, the model was experimented with a given set of values, different sets of results were obtained for both the outlook, humidity, windy, Temp, and Time for execution. The result of the experiment shows that the best splitting attribute in each case was found to be outlook with the same order of splitting attributes for both indices.

The decision tree technique has the restriction that the training tuples should reside in memory, so, in the case of very large data, decision tree construct therefore becomes inefficient due to swapping of the training tuples in and out of the main and cache memories. As a result of this a more scalable approach like the KNN method, capable of handling training data that are too large to fit in memory is required.

The SOM model: Self Organizing Map (SOM) or Kohonen neural network model was explored by (Xuejuu et al., 2007), in their work, to model customer navigation behavior. The model was used to create clusters of queries based on user session as extracted from web log with each cluster representing a class of users with similar characteristics, in order to find the web links or product of

D.A. Adeniyi et al.

interest to a current user on a real-time basis. The experimental result of the SOM model performance was compared with that of K-Means model, the SOM model was found to outperform the K-Means model with value of correlation co-efficient of SOM model scoring twice that of K-Means result.

Our work shares essentially the same goals as SOM, but differs in its construction. In SOM, the user profiles have been pre- determined offline by the offline usage pattern discovery module, while in our work, user profiles are determined online, thereby make real time response and recommendation faster.

The path analysis model: Resul and Ibrahim (2008), in their work used the path analysis method to investigate the URL information of access to the Firat University web server, web log file so as to discover user accessing pattern of the web pages, in order to improve the impressiveness of the web site. They explain further that, the application of path analysis method provides a count of number of time a link occur in the data set, together with the list of association rules which helps to understand the path that user follows as they navigate through the Firat University web site.

The Path analysis model is based on information from the client's previous navigation behavior, the method provides a count of number of time a link occur in the dataset. Though our work shares the same goal of recommendation but again differs in its approach, which is based on user's current navigation behaviors rather than previous navigation behavior as in path analysis method.

Bayesian classifier model: Decision rule and Bayesian network, support vector machine and classification tree techniques were used by Rivas et al. (2011) to model accidents and incidents in two companies in order to identify the cause of accident. Data were collected through interview and were modeled. The experimental result was compared with statistics techniques, which shows that the Bayesian network and the other methods applied are more superior to the statistics technique. Rivas et al. (2011), stated further that the Bayesian/K2 network is of advantage as it allows what-if analysis on data, which makes the data to be deeply explored.

In theory, Bayesian classifier is said to have minimum error rate in comparison to all other classifiers but in practice this is not always the case, due to inaccuracy in assumptions made for its use, such as class conditional independency and the lack of available probability data which is usually not the case when using KNN method.

The K-Nearest neighbor (KNN): Many researchers have attempted to use K-Nearest Neighbor classifier for pattern recognition and classification in which a specific test tuple is compared with a set of training tuples that are similar to it. (Killian et al., ND), in their work show how to learn a Mahalanobis distance metric for K-Nearest Neighbor classification by semi definition programing. The result obtained shows a test error rate of 1.3% on the MNIST handwritten digits. James et al. (1985), in their own work introduced the theory of fuzzy set into K-Nearest Neighbor technique to develop a fuzzy version of the algorithm. The

Automated web usage data mining and recommendation system

result of comparing the fuzzy version with the Crisp version shows that the fuzzy algorithm dominates its counterpart in terms of low error rate. In the work of Habin and Vlado (2006) the K-Nearest Neighbor algorithm was used alongside with five other classification methods to combine the mining of web server logs and web contents for classifying users' navigation pattern and predict users' future request. The result shows that the KNN outperformed three of the other algorithms, while two of them performed uniformly. It was also observed that KNN archives the highest F-Score and A(c) on the training set among the six algorithms. (Paul and Kenta, 1997), as well adopted the KNN classifier to predict protein cellular localization site. The result of the test using stratified cross validation shows that the KNN classifier performs better than the other methods which include binary decision tree classifier and naive Bayesian classifiers.

2.4. Justification for using KNN algorithm over other existing algorithm

The K-Nearest Neighbor (K-NN) algorithm is one of the simplest methods for solving classification problems; it often yields competitive results and has significant advantages over several other data mining methods. Our work is therefore based on the need to establish a flexible, transparent, consistent straightforward, simple to understand and easy to implement approach. This is achieved through the application of K-Nearest Neighbor technique, which we have tested and proved to be able to overcome some of the problems associated with other available algorithms. It is able to achieve these by:

- Overcoming scalability problem common to many existing data mining methods such as decision tree technique, through its capability in handling training data that are too large to fit in memory.

- The use of simple Euclidean distance to measure the similarities between training tuples and the test tuples in the absence of prior knowledge about the distribution of data, therefore make its implementation easy.

- Reducing error rate caused by inaccuracy in assumptions made for usage of other technique such as the Naive Bayesian classification technique, such as class conditional independency and the lack of available probability data which is usually not the case when using KNN method.

- Providing a faster and more accurate recommendation to the client with desirable qualities as a result of straightforward application of similarity or distance for the purpose of classification.

2.5. Significance of the study

Available published literature makes it clear that though web based recommendation systems are increasingly common, there are many problem areas still available calling for solutions. The fact is that the most existing works lack scalability and

D.A. Adeniyi et al.

capability when dealing with on-line, real-time search driven web sites, more so, the recommendation quality and accuracy of some are doubtful, since they mostly relied on historical information based on clients' previous visit to the site, rather than his immediate requirement. Some recommendation system as well, create a lot of bottleneck through system computing load when handling scaled web site at peak visiting time thereby slowing down the recommendation process.

To solve the above issues the following solutions were made through our system.

- Scalability problems common to many existing recommendation system were overcome through combine on-line pattern discovery and pattern matching for real time recommendation, in this regard our algorithm works better than decision tree algorithm.

- Our result indicates that the adoption of the K-NN model can lead to a more accurate recommendation that outperformed many other existing models. In most cases the precision rate or quality of recommendation by our system is equal to or better than 70%, meaning that over 70% of product recommended to a client will be in line with his immediate requirement, making support to the browsing process more genuine rather than a simple reminder of what the user was interested in on his previous visit to the site as seen in path analysis technique.

- Our recommendation engine collects the active users' click stream data, match it to a particular user's group in order to generate a set of recommendation to the client at a faster rate, therefore overcoming the problem of bottleneck caused by system computing load when dealing with scaled web sites at a peak visiting time, as it is in many existing data mining methods.

- Our system provides a precise recommendation to the client based on his current navigation pattern, thereby overcoming time wastage in finding the right product or information caused by presentation of many irrelevant choices to the client at a time as it is in many existing systems.

Hence, the proposed approach is capable of addressing the issues and provide a straightforward, simple to understand and easy to implement web usage classification and recommendation model.

3. Methodology

This section presents detailed description of the realization and implementation of web usage data mining system. The presentation of the application of the proposed methodology for the analysis of users' RSS address file of the RSS reader website was showcased. We have developed an online, real-time recommendation expert system that can assist the web designer and administrator to improve the content, presentation and impressiveness of their website by recommending a

Automated web usage data mining and recommendation system

unique set of objects that satisfies the need of active user based on the user's current click stream.

3.1. Overview of steps in performing web usage data mining task

Data mining task can be categorized into different stages based on the objective of the individual analyzing the data (Amartya and Kundan, 2007; David et al., 2001). The objective of our system is to design and develop an automated web usage data mining and recommendation expert system. The system is aimed at recommending a unique set of objects that satisfy the need of each active user in an online, realtime basis, based on the user's current behavior by acting upon the user's click stream data on the RSS site.

The overview of the task for each step is presented in detail in four sub sections as follows:

3.1.1. Data acquisition, preprocessing and data Mart development

Data acquisition: This refers to the collection of data for mining purpose, this is usually the first task in web mining application (Dario et al., 2013). The said data can be collected from three main sources which include (i) Web server (ii) Proxy server and (iii) Web client (Federico and Pier, 2005). In this study, the web server source was chosen for the fact that it is the richest and most common data source, more so, it can be used to collect large amount of information from the log files and databases they represent. The log files and database typically share the same basic information such as name and IP address of the remote host, date and time of request, HTTP status, click streams, etc., all which are represented in standard format such as common log format, extended log format and Log ML format (Federico and Pier, 2005; Habin and Vlado, 2006; Cooley et al., 1999). The user profile information, the access and navigation pattern or model are extracted from the historical access data recorded in the RSS reader site, users' address database. The data are so voluminous as they contain so many detailed information such as date, time in which activities occur, saver's name, IP address, user name, password, dailies name, required feed, news headlines and contents, etc., as recorded in the database file. In fact, the original document is about 5285 pages.

Data pre-processing: In the original database file extracted, not all the information are valid for web usage data mining, we only need entries that contain relevant information. The original file is usually made up of text files that contain large volume of information concerning queries made to the web server in which most instance contains irrelevant, incomplete and misleading information for mining purpose (Xuejuu et al., 2007; Habin and Vlado, 2006). Resul and Ibrahim (2008), described data preprocessing as the cleansing, formatting and grouping of web log files into meaningful session for the sole aim of utilizing it for web usage mining.

D.A. Adeniyi et al.

Data cleansing: Data cleansing is the stage in which irrelevant/noisy entries are eliminated from the log file (Michal et al., 2012). For this work the following operations were carried out:

i. Removal of entries with ''Error'' or ''Failure'' status.

ii. Removal of requests executed by automated programs such as some access records that are automatically generated by the search engine agent from access log file and proxies.

iii. Identification and removal of request for picture files associated with request for a page and request includes Java scripts (.js), style sheet file etc.

iv. Removal of entries with unsuccessful HTTP status code etc.

Data mart development: Two crown corporation (1999), explained that the data mart is a logical subset of data warehouse. If the data warehouse DBMS can support more resources, that will be required for the data mining operation, otherwise a separate data mining database will be required. Since the raw log file is usually not a good starting point for data mining operation, the development of a data mart of log data is required for the data mining operation. In this work a separate data mart of users' RSS address URL was developed using relational database Management software MySQL (MySQL Corporation, 2008).

3.1.2. Transaction identification

There is need for a mechanism to distinguish different users so as to analyze user's access behavior (Habin and Vlado, 2006). Transaction identification is meant to create meaningful clusters of references for each user. Xuejuu et al. (2007), stated that a user navigation behavior can be represented as a series of click operations by the user in time sequence, usually call click stream, which can further be divided into units of click descriptions usually referred to as session or visit.

Session identification: According to Xuejuu et al. (2007), Habin and Vlado (2006), a session can be described as a group of activities carried out by a user from the user's entrance into the web site up to the time the user left the site. It is a collection of user clicks to a single web server. Session identification is the process of partitioning the log entries into sessions after data cleansing operation (Michal et al., 2012). In order to achieve this Xuejuu et al. (2007), suggested the use of cookies to identify individual users, so as to get a series of clicks within a time interval for an identified user. One session can be made up of two clicks, if the time interval between them is less than a specific period. Cooley et al. (1999), in their model explain that each user session can either be a single transaction made up of many page references or a set of many single page reference transaction. Catledge and Pitkow (1995), in their work calculated the time out between every two clicks of user. The result indicated the mean value to be 9.3 min and by adding 1.5 derivations to the mean, this now gives a maximum time out of

Automated web usage data mining and recommendation system

25.5 min for two adjacent clicks in one session, while Cooley et al. (2000), in their own work adopted 30 min as the maximum time out for the same purpose.

3.1.3. Pattern discovery

Pattern discovery is the key process of web mining which includes grouping of users based on similarities in their profile and search behavior. There are different web usage Data mining techniques and algorithms that can be adopted for pattern discovery and recommendation, which include, path analysis, clustering, associate rule, etc. In our work, we have experimented with the K-Nearest Neighbor classification technique as described in Section 3.2 in order to observe and analyze user behavior pattern and click stream from the pre-process to web log stage and to recommend a unique set of object that satisfies the need of an active user, based on the users' current click stream.

3.1.4. Pattern analysis

Pattern analysis is the final stage in web usage mining which is aimed at extracting interesting rules, pattern or statistics from the result of pattern discovery phase, by eliminating irrelevant rules or statistics. The pattern analysis stage provides the tool for the transformation of information into knowledge. We have incorporated an SQL language to develop a data mart using MySQL DBMS software specifically created for web usage mining purpose in order to store the result of our work. The data mart is populated from raw user's RSS address URL file of the RSS reader's site that contains some basic fields needed; our experiment result is presented in Section 4.

3.2. Our approach

The problem at hand is a classification problem, therefore the K-Nearest Neighbor method of data mining is ideal. The objective of the system is to create a mapping, a model or hypothesis between a given set of documents and class label. This mapping was later to be used to determine the class of a given Test (unknown or unlabeled) documents (Zdravko and Daniel, 2007). The K-Nearest Neighbor model is the simplest and most straightforward for class prediction, it is the most popular similarity or distance based text and web usage classification and recommendation model (Zdravko and Daniel, 2007).

3.2.1. K-Nearest-Neighbor technique

According to Leif (2009), a non-parametric method of pattern classification popularly known as K-Nearest Neighbor rule was believed to have been first introduced by Fix and Hodges in 1951, in an unpublished US Air Force School of Aviation Medicine report. The method however, did not gain popularity until

443470

ACI 30 31 October 2014 ARTICLE IN PRESS No. of Pages 23

12 D.A. Adeniyi et al.

the 1960's with the availability of more computing power, since then it has become widely used in pattern recognition and classification (Jiawei and Micheline, 2006). K-Nearest Neighbor could be described as learning by analogy, it learns by comparing a specific test tuple with a set of training tuples that are similar to it. It classifies based on the class of their closest neighbors, most often, more than one neighbor is taken into consideration hence, the name K-Nearest Neighbor (K-NN), the ''K'' indicates the number of neighbors taken into account in determining the class (Jiawei and Micheline, 2006). The K-NN algorithm has been adopted by statisticians as a machine learning approach for over 50 years now (Zdravko and Daniel, 2007). The K-NN is often referred to as ''Lazy learner'' in the sense that it simply stores the given training tuples and waits until it is given a test tuple, then performs generalization so as to classify the tuple based on similarities or distance to the stored training tuples. It is also called ''instance based learner''. The lazy learner or instance based learner do less work when presented with training tuples and more work during classification and prediction, therefore makes it computational expensive, unlike the eager learners that when given a training tuple construct a classification model before receiving the test tuple to classify, it is therefore very ready and eager to classify any unseen tuples. (Jiawei and Micheline, 2006;Zdravko and Daniel, 2007; Amartya and Kundan, 2007). (Jiawei and Micheline, 2006; Leif, 2009), stated that the K-NN error is bounded above twice Baye's error rate.

3.3. The working of K-Nearest Neighbor classifier

The K-Nearest Neighbor classifier usually applies either the Euclidean distance or the cosine similarity between the training tuples and the test tuple but, for the purpose of this research work, the Euclidean distance approach will be applied in implementing the K-NN model for our recommendation system (Jiawei and Micheline, 2006).

In our experiment, suppose our data tuples are restricted to a user or visitor/client described by the attribute Daily Name, Daily Type and News category and that X is a client with Dayo as username and Dy123 as password.

The Euclidean distance between a training tuple and a test tuple can be derived as follows:

Let Xi be an input tuple with p features (xi1, xi2,.........., xip)

Let n be the total number of input tuples (i = 1,2,........., n)

Let p be the total number of features (j = 1,2,........., p)

The Euclidean distance between Tuple Xi and Xt (t = 1,2, ...... , n) can be

defined as

d(xi, xt) = \J (xa - xtlf+(x2 - x^)2 + ... + (xiP - xtpf (3.1)

ACI 30 31 October 2014 ARTICLE IN PRESS No. of Pages 23

Automated web usage data mining and recommendation system 13

In general term, the Euclidean distance between two Tuples for instance

X1 = (xn, X12,............x1n) and X2 = (X21, X22, ..............X2n) will be

dist(x1, X2) = n=1 {xu - X2,)2 (3.2)

Eq. (3.2) is applicable to numeric attribute, in which we take the difference between each corresponding values of attributes tuple X1 and X2, square the result and add them all together then get the square root of the accumulated result this gives us the distance between the two points x1 and x2 (Jiawei and Micheline, 2006; Leif, 2009). In order to prevent attributes with initially large ranges from outweighing attributes with initial smaller ranges, there is need to normalize values of each attributes before applying Eq. (3.2)

The min-max normalization can be applied to transform for instance value V of a numeric attribute A to V1 in the

V minA

range[0,1]by using the expressionV1 =-a-:_A (3.3)

minA and maxA are attribute A, minimum and maximum values (Jiawei and Micheline, 2006).

In K-NN, classification, all neighboring points that are nearest to the test tuple are encapsulated and recommendations are made based on the closest distance to the test tuple, this can be defined as follows: Let C be the predicted class

Ci = fx 2 Cp; d(x, xi) 6 d(x, xm), 8i#mg (3.4)

The nearest tuple is determined by the closest distance to the test tuple. The K-NN rule is to assign to a test tuple the majority category label of its K-nearest training tuple (Leif, 2009).

3.3.1. Computing distance for categorical attribute

A categorical attribute is a non numeric attribute such as color, object name, etc. To calculate the distance, we simply compare the corresponding values of the attributes in tuple x1 with that of x2, if the values are the same, then the difference is taken to be zero(0), otherwise the difference is taken to be one(1). For instance, if two users, x1 and x2 click stream on the RSS reader site is both sport news category, then the difference is zero(0), but if tuple x1 is sport and tuple x2 is politics, then the difference is taken to be one(1) (Jiawei and Micheline, 2006).

3.3.2. Missing values

If the value of a given attribute A is missing in tuple x1 or x2 or both, for categorical value, if either or both values are missing we take the difference to be one(1), in numeric attribute if x1 and x2 values are missing we also take the difference to be one(1), if only one value is missing and the other is present and normalized we

ACI 30 31 October 2014 ARTICLE IN PRESS No. of Pages 23

14 D.A. Adeniyi et al.

can consider the difference to be |1 — V1| or |0 — V1|whichever is greater is chosen (Jiawei and Micheline, 2006).

3.3.3. Determining the value of K, the number of Neighbor

In reality, the value of Kis usually odd numbers, ie. K = 1, K = 3, K = 5, etc. this is obvious in order to avoid ties (Leif, 2009). K =1 rule is mostly referred to as the nearest neighbor classification rule. The value of K (Number of neighbor) can be determined by using a test set to determine the classification error rate, by experimenting with different values of K, starting with K = 1, then the K value with minimum error rate is selected (Jiawei and Micheline, 2006). Jiawei and Micheline (2006), stated further that the larger the training tuple, the larger the value of K. Zdravko and Daniel (2007), in their work, experimented with different values of up to K = 19, with and without distance weighting on a set of document collections, the experiment was run with a complete set of 671 attributes and concluded that a small set of relevant attributes works better than all attributes, that the experiment works perfect with K = 1, and K =3 and with little improvement in K =5. So, if K approaches infinity, the error rate approaches that of Baye's error rate (Jiawei and Micheline, 2006). Zdravko and Daniel (2007), further stated that 1-NN makes a better prediction using single instance however large the training set is, but under the assumption that there is no noise and all attributes are equally important for classification.

In our work, we adopted 5 as the maximum value of K. We simply applied the distance weighted K-NN approach, in which we experimented for different values of K on our sample data, starting from K = 1, up to K = 9. We discovered that the experiment works better with K = 1, K = 3 and with little accuracy at K = 5, so, we selected K = 5, which gives us the minimum error rate.

The algorithm for the K-Nearest Neighbor classifier model is shown in Fig. 2.

3.4. Application of K-Nearest Neighbor classification technique to predict user's class label in the RSS reader's web site

Example 1: Let us consider the RSS reader sites' client click stream as a vector with three(3) attributes: Daily name News category and Added required feed type,

with users represented by X1, X2, X3, X4,......, X11 as the class labels as shown in

Table 1. Assuming the class of user X3 is unknown.

To determine the class of user X3, we have to compute the Euclidean distance between the vector X3 and all other vectors, by applying Eq. (3.2)

The Euclidean distance between two tuples for instance training tuple X1 and test tuple X3 ie.

X1 = (x11, x12, x13) and X3 = (x31, x32, x33) each with the following attributes as in Table 1

Automated web usage data mining and recommendation system

Let X be an input tuple with features (x^, xi2,..........., xip) simply put. Let U = {xj, x2. ... ,...xn}

1. Begin

2. Input x of unknown classification

3. Let k= 1<K< n

4. Initialize i=l

5. Do Until(K-Nearest neighbor found)

6. Compute Euclidean distance from x to Xj

7. If(i<K) Then

8. Let x; be a member of K-Nearest neighbors

9. Else if(Xj is closer to x than any previous neighbors) Then

10. Swap X; for the previous nearest(closest) neighbor ie add x, to the top of members of K-nearest neighbor

11. End if

12. Increment i by 1

13. End Do Until

14. Determining the majority class in the members of the K-nearest Neighbors

15. If (a tie exists) Then

16. Add all the distances of neighbors in each class which tied

17. Else(if no tie exists) Then

18. Classify x in the class of minimum sum of distance

19. Else

20. Classify x in the class of last minimum distance found

21. End if

22. Else

23. Classify x in the majority class

24. End if

25. End

Figure 2 Algorithm for the K-Nearest Neighbor classifier model.

Table 1 RSS reader's data mart class label training tuple.

Users Daily's name News category Added required feed type Class

xi CNN news World www.*world World

x2 China daily Business www.*business Business

X4 CNN news Politics www.*politics Politics

X5 Punch ng Entertainment www.*entertainment Entertainment

x6 This day news politics www.*politics Politics

x7 Vanguard news Sports www.*sports Sports

xg Compete football Sport www.*sports Sports

x<9 Vanguard news Politics www.*politics Politics

xio China daily Politics www.*politics Politics

x11 This day news World www.*world World

x3 Punch ng Politics www.*politics ?

ACI 30 31 October 2014 ARTICLE IN PRESS No. of Pages 23

16 D.A. Adeniyi et al.

X1 = (CNN news, World, www.*world) and X3 = (Punch ng, politics, www.*politics) will be:

dist(x1, X3) = n=3(x1i " x3')2

Remember, for a categorical attribute as in Table 1., the difference (x11,x31) can be computed by simply compare the corresponding value of the attributes in tuple x1 with that of x3 as explained previously. If the values are the same then the difference is taken to be zero(0), otherwise, the difference is taken to be one(1). So, for (x11 and x31) ie. (CNN news and Punch ng), the difference is 1, for (x12 and x32) ie., (World and Politics) the difference is 1, likewise for (x13 and x33) ie., (www.*world and www.*politics) the difference is 1 as well, therefore,

dist(x1, x3) = \J(xM - x3,1)2+(x1,2 - x3,2)2 + (x1,3 - x3,3)2this gives :

dist(x1, x3) = p12 + 12 + 12=p3 = 1.73205081

Repeating the same process in our example for all other tuples x2,x4,......x11, the

result of these calculation produced a stream of data as shown in Table 2, which shows the users sorted by their Euclidean distance to the user x3 to be classified.

The 1-NN approach simply picks the user with minimum distance to x3, (the first one from the top of the list) and use it's class label ''politics'' to predict the class of x3, therefore recommend similar news headlines of ''Politics'' as in user x9 class.

In example 1, 3-NN will as well classify ''Politics'' because it's the majority label in the top three classes. However, distance weighted K-NN can be helpful in determining the class a given test tuple belong, whenever there seems to be a ties (Zdravko and Daniel, 2007). For instance, the distance weighted 5-NN will simply add the distance for class politics as in our example in Table 2 and compare it with that of Entertainment whichever is greater is selected. i.e., 1.000000000 + 1.000000000 + 1.000000000 + 1.141421356 = 4.141421356 while that of entertainment is 1.141421356 thus, weight of''politics'' > ''Entertainment'' Then the 5-NN will as well classify user X3 as ''Politics'' because it has higher weight

Table 2 User's sorted by distance to user x3.

User Class Distance to user x3

X9 Politics 1.000000000

X10 Politics 1.000000000

X6 Politics 1.000000000

X4 Politics 1.141421356

X5 Entertainment 1.141421356

X2 Business 1.732050810

X7 Sports 1.732050810

Xg Sports 1.732050S10

x1 World 1.732050810

x11 World 1.732050S10

ACI 30 31 October 2014 ARTICLE IN PRESS No. of Pages 23

Automated web usage data mining and recommendation system 17

than entertainment. The distance weighted K-NN allows the algorithm to use more or even all instances instead of one instance as in 1-NN.

4. System evaluation and analysis of result

This section evaluates our system by applying the result of the experiment conducted. The result was presented and analyzed in order to evaluate the quality of our recommendation system based on K-Nearest Neighbor classification model. In the previous section we established that a class with minimum distance to the test tuple will be predicted for 1-NN or in case ties exist, the weighted distance predicts a class with greater weighted distance as in 5-NN in example 1 and recommendation will be made based on this, for user with unknown class.

Software was developed with Java Net Beans programing language and MySQL DBMS was used in creating the data mart in order to implement our model using K-NN method. Fig. 3. shows sample interface from the automated on-line real-time recommendation system developed for the purpose, indicating the active user's click stream, a dialog box presenting his requested news headlines and a message box presenting real-time recommendation to the user based on his current request. The source code in Java Net Beans programing language for the system is available on request.

In this work, the number of class C of user X that can be recommended by the recommendation model is set at 5, ''5'' indicates different news category headlines and user classes that could be presented to the active user, based on information from user's click stream. However, this number could be increased or decreased depending on the available options at a given time.

Figure 3 Sample interface from the automated real-time recommendation system.

D.A. Adeniyi et al.

In this study however, the computation of Euclidean distance that produced the set of values from which the closest distance Ct = {x 2 Cp; d(x, x,) 6 d(x, xm), Vi#m}, was not repeatedly shown, because of size, since the calculation follows the same procedures. Table 2 shows the sorted result according to distance to the Test tuple.

Godswill (2006), stated that in real life analysis, a model performance quality can only be measured by ability to predict accurately, the new data set rather than the training data set in which the model was trained. They explained further that the predictive ability of a model will be questionable and cannot be use for prediction, if the model performs well in the training set but performs poorly in the test validation data set or new data set.

4.1. Presentation of result

Example 2: Using the data in Table 1, this time around assuming the class of user X7 is unknown. We can determine the class of user x7 based on his current click stream information by computing the Euclidean distance between the user x7 and all other users as we did in example 1

X1 = (CNN news, World, www.*world) X7 = (Vanguard news, Sports, www.*sports)

dist(x1, x7) = ^^n=3(xli - x7i)2

Being categorical attributes,

Differences(xM - x7,1) = 1, (x^ - x^) = 1, (xM - x^) = 1

Therefore applying Eq. (3.2) we have

dist(x1, x7) = p12 + 12 + 12=p3 = 1.73205081

Repeating the whole process for all the available users produced a stream of data as in Table 3.

4.2. Analysis of the results

The MATLAB code (Mathworks Incorporation, 1984-2011; Ogbonaya, 2008), that was used for graphical analysis of the experimental result from Tables 2 and 3 as shown in Figs. 4-6. is available on request.

In order to model the user's click stream in the RSS reader's web site, The K-Nearest Neighbor classification technique of data mining was applied on the extracted users' RSS address database. The data set was produced by computing the Euclidean distance between the test tuple and the training tuples as shown in example 1 and example 2 and data set is presented in Tables 2 and 3 respectively.

Automated web usage data mining and recommendation system

Table 3 Data showing Users sorted by distance to user x7.

User Class Distance to user X7

X8 Sports l.0000000000

x9 Politics 1.1414213560

x1 World 1.7320508100

X2 Business 1.7320508100

x3 Politics 1.7320508100

x4 Politics 1.7320508100

X5 Entertainment 1.7320508100

X6 Politics 1.7320508100

x10 Politics 1.7320508100

X11 World 1.7320508100

Graph showing Euclidean Distance of other users to the Unknown users

Users X1 to X11

Figure 4 Graph showing the Euclidean distance from the other user/neighbor to users X3 and X7.

627 The K-Nearest Neighbor classifier predicts the class label with class Ci for

628 which Ci = fx 2 Cp; d(x, x,) 6 d(x, xm), Vi#m} for the unknown user class ie.,

629 the 1-NN classification simply picks the user with minimum distance to users X3

630 and X7 as the case may be (ie. The first user from the top of the list), in Table 2

631 for user X3 and Table 3 for user X7 respectively and use their class labels to predict

632 the class of X3 and X7 respectively, therefore, recommend similar news headline of

633 politics for user X3 as in user X9 class from Table 2 and Sports for user X7 as in

634 user X8 class from Table 3 as shown in Figs. 4-6 respectively.

635 5.1. Summary of findings

636 Different criteria can be used to determine the quality and efficiency of a particular

637 web site, which include: contents, presentation, ease of usage, ease of accessing

638 required information and waiting time of users, to mention just a few. In this study

639 a novel approach is presented to classify users based on their current click stream,

640 matching it to a particular user group popularly referred to as Nearest neighbor

D.A. Adeniyi et al.

Figure 5 Bar Chart showing the Euclidean distance from the other users/neighbor to X3.

Bar Chart Representing Eucleaden distance of other users to user X7

1 23456789 10 11

Users Xi toXn

Figure 6 Bar chart showing the Euclidean distance from the other users/neighbor to X7.

641 and recommend a tailored browsing option that satisfies the needs of the active

642 user at a particular time, by applying the web usage data mining technique to

643 extract knowledge required for providing real-time recommendation services on

644 the web site.

645 We have conducted experiments on our designed experimental system. The data

646 set used in the system is the RSS user access database for a two month period,

647 which was extracted, pre-processed and grouped into meaningful sessions and

648 data mart was developed. The K-Nearest Neighbor classification technique was

649 used to investigate the URL information of the RSS users' address database of

650 the RSS reader site as stored in the data mart created. Evaluating sample testing

ACI 30 31 October 2014 ARTICLE IN PRESS No. of Pages 23

Automated web usage data mining and recommendation system 21

651 session, the results are presented and analyzed. The finding of the experimental

652 study shows that the K-NN classification technique implemented with the Euclid-

653 ean distance method consistently produces an automated real-time recommenda-

654 tion to the client and obtained the best classification accuracy. The findings of the

655 experimental study can now be used by the designer and administrator of the web

656 site to plan the upgrade and improvement of the web site, in order to ease the nav-

657 igation on the site without too many choices at a time as well as meeting their

658 needed information without expecting them to ask for it explicitly, therefore

659 improving the impressiveness of the web site.

660 5.2. Conclusion

661 Our work provides a basis for automatic real-time recommendation system. The

662 system performs classification of users on simulated active sessions extracted from

663 testing sessions by collecting active users' click stream and matches this with sim-

664 ilar classes in the data mart, so as to generate a set of recommendations to the cli-

665 ent in a real-time basis.

666 Many approaches to creating web based recommendation system have been

667 proposed, however they lack scalability and capability when dealing with search

668 driven web site in a real time, online basis. Our approach seeks to overcome some

669 of these limitations.

670 The result of our experiment shows that an automatic real-time recommenda-

671 tion engine powered by K-NN classification model implemented with Euclidean

672 distance method is capable of producing useful and a quite good and accurate

673 classifications and recommendations to the client at any time based on his imme-

674 diate requirement rather than information based on his previous visit to the site.

675 Our recommendation engine only needs to collect the active users' click stream

676 data, match it to a particular users' group in order to generate a set of recommen-

677 dations to the client at a faster rate, therefore overcoming the problem of bottle-

678 neck caused by system computing load when dealing with scaled web sites at a

679 peak visiting time, as it is in many of the existing data mining methods.

680 The results of our experiment indicate that the adoption of K-Nearest Neighbor

681 model can lead to more accurate recommendations that outperformed the Bayes-

682 ian classifier. In most cases the precision rate or quality of recommendation is

683 equal to or better than 70%, this means that over 70% of news recommended

684 to a client will be in line with his immediate requirement, making support to the

685 browsing process more genuine, rather than a simple reminder of what the user

686 was interested in on his previous visit to the site as seen in path analysis technique.

687 5.3. Recommendation for future work

688 Our designed system is a proof-of-concept, prototype of idea for using web usage

689 data mining with K-NN technique, and there are some aspects in which it can be

D.A. Adeniyi et al.

improved in any future work. The study could be taken much further by investigating the user's RSS address URL of the RSS reader in a continuous basis. More so, the system presented in this research work can be strengthened by determining the effect of value of K so as to identify regions where over learning or over fitting may occur.

More researches also need to be carried out on many other data mining techniques, comparing the result with this model, so as to determine the most effective model in handling a problem of this nature in the nearest future.

Appendix A. Supplementary data

Supplementary data associated with this article can be found, in the online version, at http://dx.doi.org/10.1016/j.aci.2014.10.001.

References

Amartya, S., Kundan, K.D., 2007. Application of Data mining Techniques in Bioinformatics. B.Tech Computer Science Engineering thesis, National Institute of Technology, (Deemed University), Rourkela.

Bounch, F., Giannotti, F., Gozzi, C., Manco, G., Nanni, M., Pedreschi, D., Renso, C., Ruggier, S., 2001. Web log data warehousing and mining for intelligent web caching. J. Data Knowledge Eng. 36, 165-189 (PH:S0169-023x(01)00038-6).

Catledge, L.D., Pitkow, J., 1995. Characterizing browsing strategies in the World Wide Web. J. Comput. Netw. ISDN Syst. 27 (6), 1065-1073. http://dx.doi.org/10.1016/0169-7552(95)00043-7.

Cooley, R., Mobasher, B., Srivastava, J., 1999. Data preparation for mining World Wide Web browsing patterns. J. Knowledge Inf. Syst. 1 (1), 1-27.

Cooley, R., Tan, P.N., Srivastava, J., 2000. Discovery of interesting usage patterns from web data. International workshop on web usage analysis and user profiling, ISBN 3-540-67818-2, pp. 63-182.

Dario, A., Eleno, B., Giulia, B., Tania, C., Silvia, C., Naeem, M., 2013. Analysis of diabetic patients through their examination history. J. Exp. Syst. Appl. 40, 4672-4678. http://dx.doi.org/dx.doi.org/10.1016/ j.eswa.2013.02.006.

David, H, Heikki, M., Padhraic, S., 2001. Principles of data mining. The MIT Press, Cambridge. Massachusetts, London, England, pp. 2-20.

David, F.N., 2012. Data mining of social networks represented as graphs. J. Comput. Sci. Rev. 7(2013) 1-34. doi: 10.1016/j.cosrev.2012.12.001.

Federico, M.F., Pier, L.L., 2005. Mining interesting knowledge from weblog: a survey. J. Data Knowledge Eng. 53, 225-241. http://dx.doi.org/10.1016/j.datak.2004.08.001.

Godswill, C.N., 2006. A comprehensive Analysis of predictive data mining techniques (M.Sc. thesis), The University of Tennessee, Knoxville.

Habin, L., Vlado, K., 2006. Combining mining of web server logs and web content for classifying users' navigation pattern and predicting users future request. J. Data Knowledge Eng. 61 (2007), 304-330. http:// dx.doi.org/10.1016/j.datak.2006.06.001.

James, M.K., Michael, R.G., James, A.G., 1985. A Fuzzy K-Nearest Neighbor Algorithm. IEEE Transactions on system Man and cybernetics, vol. SMC-15 No4. (0018-9472/85/0700-0580$01.00).

Jiawei, H., Micheline, K., 2006. Data Mining Concept and Techniques, second ed., Morgan Kaufmann Publishers, Elsevier inc., USA San Francisco, CA 94111, pp. 285-350.

Killian, Q.W., John, B., Lawrence, K.S., ND. Distance metric learning for large margin Nearest Neighbor classification. Technical report, University of Pennsylvania, Lavine Hall, 3330 Walnut street, Philadelphia, PA 19104.

Leif, E.P., 2009. K-Nearest Neighbor. Scholarpedia 4(2):1883. Downloaded 27-04-2014, @ www.google.com.

ACI 30 31 October 2014 ARTICLE IN PRESS No. of Pages 23

Automated web usage data mining and recommendation system 23

735 Luca, C., Paolo, G., 2013. Improving classification models with taxonomy information. J. Data Knowledge Eng.

736 86, 85-101. http://dx.doi.org/10.1016/j. datak.2013.01.005.

737 Mathworks Incorporation., 1984-2011. MATLAB R2011b(7.13.0.564), Licence number: 161052, USA, Math-

738 works Incorporation.

739 Michal, M., Jozef, K., Peter, S., 2012. Data preprocessing evaluation for web log mining: reconstruction of

740 activities of a web visitor. J. Proc. Comput. Sci. 1, 2273-2280. http://dx.doi.org/10.1016Zj.procs.2010.04.255.

741 MySQL Corporation, 2008. MySQL Database Management System software. USA MySQL/Oracle

742 Corporation.

743 NetBeans IDE 7.3., 2008. NetBeans java compiler. USA, Java/Oracle corporation.

744 Niyat, A., Amit, K., Harsh, K., Veishai, A., 2012. Analysis the effect of data mining techniques on database. J.

745 Adv. Eng. Softw. 47, 164-169. http://dx.doi.org/10.1016/j.advengsoft.2011.12.013.

746 Ogbonaya, I.O., 2008. Introduction to Matlab/Simulink, for Engineers and Scientist, second ed. John Jacob's

747 Classic Publishers Ltd, Enugu, Nigeria.

748 Padraig, C., Sarah, J.D., 2007. K-Nearest Neighbor classifier. Technical report UCD-CSI-2007-4.University

749 College Dublin.

750 Paul, H., Kenta, N., 1997. Better prediction of protein cellular localization sites with the K-Nearest Neighbor

751 Classifier. ISMB-97, Proceeding of America Association for Artificial Intelligence. USA. P. 147-152.

752 Resul, D., Ibrahim, T., 2008. Creating meaningful data from web log for improving the impressiveness of a web

753 site by using path analysis method. J. Exp. Syst. Appl. 36, 6635-6644. http://dx.doi.org/10.1016/

754 j.eswa.2008.08.067.

755 Rivas, T., Paz, M., Martins, J.E., Matias, J.M., Gracia, J.F., Taboadas, J., 2011. Explaining and predicting

756 workplace accidents using data-mining Techniques. J. Reliab. Eng. Syst. Safe. 96 (7), 739-747. http://

757 dx.doi.org/10.1016/j.ress.2011.03.006.

758 Shu-Hsien, L., Pei-Hui, C., Pei-Yuan, H., 2012. Data mining techniques and applications - a decade review from

759 2000 to 2011. J. Exp. Syst. Appl. 39, 11303-11311. http://dx.doi.org/10.1016/j.eswa.2012.02.063.

760 Two crown corporation, 1999, Introduction to Data mining and Knowledge discovery, Third edition. Two crown

761 corporation, 10500 falls road, Potamac, MD 20854, USA. P. 5-40.

762 Xuejuu, Z., John, E., Jenny, H., 2007. Personalised online sales using web usage data mining. J. Comput. Ind. 58,

763 772-782. http://dx.doi.org/10.1016/j.compind.2007.02.004.

764 Zdravko, M., Daniel, T.L., 2007. Data Mining the Web, Uncovering Patterns in Web Content, Structure, and

765 Usage. John Wiley & sons Inc, New Jersey, USA, pp. 115-132.