Learning Content Recommendation for Visual Basic.Net Programming Language based on Ontology

: Nowadays, the quality of learning and the expansion of education technology, motivate the researchers to work on learning area more than before. Problem statement: With the rapid advance of learning contents on the web and also the variety of learning books, finding suitable ones has become a very difficult and complicated task for learners. Approach: This study aims to propose a learning system includes the semantic recommender system. Students can employ this application to learn learning content at anywhere. This system works based on the learner’s knowledge level and also the learner’s request that system asks from the learner at the beginning. Learner will be able to find and learn the right learning materials to reach their request. Finally, all changes about learner will store in the learner model in the ontology. The proposed architecture comprises some subsystems and components. One of the most important of subsystems is a knowledge based system, which covers the ontology which called VBnet ontology. This ontology consists of three parts; LearnerModel, Domain Concept and Learning Material. Moreover, we define two other subsystems; Learner performance evaluation, recommendation system and some modules; Availability checker, Knowledge evaluator, Exam generator, Request analyzer and user interface. Results: Considering to scope of research we develop the ontology for Visual Basic.Net programming language and describe all available classes and subclasses step by step. Also we create some query by SPARQL and show the information retrival from VB ontology. Conclusion: This system can help to student to learn materials of Visual Basic.Net with the good quality without the place dependency.


INTRODUCTION
E-learning systems help learners to learn electronic course through computer or network as virtual classroom instead of face to face learning. This type of learning has some advantages versus conventional learning system. Face to face learning or conventional learning systems will be time consuming for the learner and also learner should spend more cost in contrast with the learning as virtual classroom (Yu et al., 2007). Schools and universities have been looking for ways to increase learning efficiency for students and improve learner performance. E-learning provides some advantages for the learner by making access to educational material very fast and just-in-time at any time or place (Ghaleb et al., 2006). Due to increasing computer technologies, learning at home as distance learning can be effective similar to face to face learning. So, developing tutoring system and the suitable learning way can increase the learning efficiency and also can be an appropriate solution for universities and schools problem (He, 2009). With the rapid growth of electronic course contents and virtual classrooms, e-learning systems are efficiently used for education and training in academic and non-academic places. Owing to traditional teaching resources, such as textbooks, learner should follow fixed sequences of learning materials. Learners with the same plan have the same content lists for learning, even though they have different previous knowledge about their plans but, the online education such as adaptive e-learning system provide flexible curriculum sequencing control to adapt learners with learning environments (Chen, 2008). One of the most important topics in the adaptive e-learning systems is personalization. Personalization works based on user modeling and user profile. The information that is included in the user profile is various for each learner. The user profile has importance role in this proposed recommender system. Nowadays, right information to the right person in the right way is a challenge in the learning world Adaptive Content recommendation can solve this problem (Fischer, 2001;Yu et al., 2006). Sometime student requires large volumes of material and spent a lot of time to learn particular content or relevant information (Muna et al., 2005). Recommender system can help students to spend less time during the learning process.
Recommendation system offers suitable learning contents based on user profile. Considering the personalization in recommender systems and also their dependency on user profile, recommended contents will be different for each learner. In the current system, we mainly consider to knowledge evaluation and learner request analysis. They play the most important role in recommendation. We are planning to make the content recommendations using knowledge about the learner, knowledge about the learning domain and knowledge about the learning materials. Also, we offer the semantic recommender system based on ontology for VisialBasic.Net programming language learning. In the structure of this system, the use of ontology focuses mainly on learning materials and relation between them and the learner model aspects, as well.
This study arises from two basic research topics; First, the tutoring systems and learning systems and second, recommender systems and knowledge representation.
Knowledge background: Recommender system: Many recommendation systems in various domains such as movies, music, commerce and medicine have been developed but few in the education field (Drachsler et al., 2007). Compared with other fields, learning content recommendation is a new topic with the appearance of e-learning. The most commonly used technique for recommendation systems is collaborative filtering (Lemire, Boley et al. 2005;Chiu et al., 2006;Manitsaris et al., 2007;Guo et al., 2008;Serradilla et al., 2009). Content filtering is the second recommender technique. Researchers employed this technique to develop their recommendation systems (Ghauth and Abdullah, 2009). Another recommendation technique refers to hybrid filtering. Hybrid filtering is a combination of collaborate filtering and content filtering (Liang et al., 2006;Khribi et al., 2008). The last one is knowledge based technique. This technique also is used to develop a recommendation system.

Ontologies:
Ontology comprises a set of knowledge terms, including the vocabulary, the semantic interconnections and some simple rules of inference and logic for some particular topics (Hendler, 2001). Ontology is the backbone of Semantic Web, a new form of Web content that is meaningful to computers and will unleash a revolution of new possibilities (Berners-Lee et al., 2001). Gruber defines ontology as an explicit specification of a conceptualization (Gruber, 1993). Two main properties of ontology such as shareablility and reusability make them very attractive and powerful for representing domain knowledge. Ontologies provide a shared understanding of a domain of interest to support communication among human and computer agents(Al-Safadi and Al-Abdullatif 2010).
Tutoring system: Computers have been used for more than 35 years in education (Beck et al., 1996). The first tutoring program designed in 1970 (Carbonell, 2007). Before Intelligent Tutoring Systems, Computer-Based Training (CBT) and computer aided instruction (CAI) were the first systems used to teach using computers. In these systems, the learning environment is not individual, so the learning material is inflexible while Intelligent Tutoring provides the personally learning environment. These systems work similar to one-to-one tutoring (He, 2009).Tutoring systems discuss about the course learning based on curriculum sequencing (Li, Tang et al.). These systems are computer based program that represents the learning materials in a flexible and personalized way (Brusilovsky and Peylo, 2003;Johnson, 2001).
Literature review and current related work: Many related researches can be found through the internet.. Domains, learning strategy and knowledge representation are the main diffidences among them. We are discussing some of the learning systems or tutoring systems as following. He Xuechen has proposed a web-based intelligent Tutoring system for English Dictation Automatic Correction, called EDAC. This system uses JavaScript to correct the user's dictation after executing a query to get the answer from the SQL Server database (He, 2009). Michael Negnevitsky has designed a knowledge based tutoring system that supports the education of power engineering students (Negnevitsky, 2002). He applied expert system shell in this project. The students by using this system can understand and have received a good introduction to fault analysis in power systems. (Song et al., 1997) have described a system called C-Tutor, an Intelligent Tutoring System (ITS) for novice C programmers. As a learning environment, Curriculum Network constructs the knowledge base as genetic graphs to teach programming. The knowledge base of C-Tutor is represented as frame structure. The system evaluation is through some real students.
Aytu¨rk (Keles et al., 2009) have developed an intelligent tutoring system for Mathematics Education, called ZOSMAT. ZOSMAT can be used for the purpose of either individual learning or real classroom environment. This system follows a student in each stage of the learning process and they are guided about their needed following actions. This system suggests some relevant examples from past experience also analyze student solutions and explain errors then recommend some activity based on learning goals. Know ledges about the learner and all learning materials store in the ralational database.
Antonija Mitrovic in (Mitrovic, 2003) has designed a Web-enabled intelligent tutoring system for the SQL database language. This system observes students' actions and adapts to their knowledge and learning abilities. The knowledge about the domain that SQLT-Web contains is represented as a set of constraints. Frigo et al. (2005) have created a tutoring system is named MathTour. MathTutor is a multi-agent system tutor. The architecture includes the Student, Domain and Pedagogical Models. Application domain represented by using domain ontology (Berners-Lee et al., 2001).
Adriana da Silva Jacinto et al, have proposed an ontology based architecture for tutoring system. They have designed ontology for each model in their system; ontology for learner model, pedagogical model, structure model, adaption model and domain model. Adaptation model works with a base of rules for decision making and pedagogical model specifies the business rules of the system. Interaction model represents the description of possible learner's behavior. The Structure Model specifies how the concepts of the Domain Model are grouped into semantic units, like, learning units. Learner model consists of the learner information and domain model represents the application domain structure. Each decision that is taken by adaption model will be represented to a learner by presentation model (Frigo et al., 2005).
Thaw Ta Htaik et al have proposed EGIP system to generate the explanations focused on teaching mathematical integrations (Htaik and Phon-Amnuaisuk, 2005). The architecture of their system consists of an expert module, the student model, the tutor module and Prolog based user interface. The student model includes Name, ID, number of investigated problems, and number of correct and incorrect answer. The tutor model provides teaching and explaining integration rules such as problem and typing method, and generates the correct answer. The expert model includes the domain knowledge to be tutored. The system shell is being integrated with the Prolog and HTML.
In addition to learning domain we mention to some knowledge based intelligent system in other domain. The most of these system apply the ontology to represent their knowledges. Owaied et al., (2011) have developed the knowledge based tourism system. This intelligence system guide the tourism to find the best attraction place based on their need. This model follows the behaviour of the human guide. Lu and Feng (2009)have proposed a novel concept of intelligent topic map. This concept covers the related characteristics of knowledge and realizes knowledge reasoning. They designed an ontology which covers the multi-resource knowledge.
Ding and his colleague (Ding and Sun, 2009) has designed the ontology based framework to provide the integration among software resources. Their framework makes the semantic interoperability between various software resources. Developed ontology in their research divide to shared ontology and domain ontology which the shared ontology has an important role in this model. Wei et al. (2009) has proposed an ontological system for manufacturing design. This system is trying to solve the available problem in manufacturing design. The Knowledge Management (KM), a Product Knowledge Model (PKM) and the Intelligent Application System (IAS) are the main subsystems in this system. This system employs the semantic technology to share knowledge among multidisciplinary organizations and intelligent supporting the manufacturing design.
As we described above, the first difference refers to variety of the worked domains such as mathematic (Berners-Lee et al., 2001;Htaik and Phon-Amnuaisuk, 2005;Keles et al., 2009), SQL language (Mitrovic, 2003), C programming languages (Song et al., 1997), power engineering (Negnevitsky, 2002) and English dictation (He, 2009). The second difference points the learning strategy. Some of them ask the learners about their problem then recommend the suitable answers to them (Htaik and Phon-Amnuaisuk, 2005). Another control a student in each stage of the learning process and guides him/her about what he/she will need to do then based on their needs offer some activity (Keles et al., 2009). As we brought above, none of them do not evaluate the learner's knowledge level. In the previous research, we proposed the recommender system (Shishehchi et al., 2010) by using ontology. The most significant different between this study and previous research (Shishehchi et al., 2010) is about the knowledge representation. In the previous research (Shishehchi et al., 2010) the learner's profile and all information about learner store in seperate storages. The developed ontology in (Shishehchi et al., 2010) consists of learning materials and semantic relationship among them while in current study ontology covers both scopes of knowledge; learner's knowledge and know edges about learning materials. This approach integrates all of the available know ledges.
Our strategy will be based on the learner knowledge level and also the learner request. The knowledge level for each new learner will evaluate and estimate through the system automatically. This is one of the differences among our research and previous works. Another one is about the domain that we work on. We select the Visual Basic.Net programming language to teach. The majority of related works applied the ontology to represent the knowledge about learner and domain, separately (Frigo et al., 2005;Berners-Lee et al., 2001;Htaik and Phon-Amnuaisuk, 2005). Some of them applied rational database to store their knowledge (Song, Hahn et al. 1997;Keles et al. 2009), genetic graph (Song et al., 1997). Furthermore, expert systems can use learning systems such as (Negnevitsky, 2002;Htaik and Phon-Amnuaisuk, 2005). Unlike the previous related works, we prefer to have integrated knowledge consists of one ontology. We design the ontology to represent knowledge related to learner model, learning materials and domain.

MATERIALS AND METHODS
System architecture: Our proposed architecture consists of three subsystems; Recommendation system, semantic Knowledge based system and learner performance evaluation system. In addition to these subsystems, we define some various modules in this architecture; Exam generator, knowledge evaluator, Availability checker, Graphical user interface, Learner's request analyzer. The architecture is presented in Fig. 1. Now, we are going to describe each subsystem and modules in details.

Knowledge based system:
The applied technique for representation of knowledge is one of the most important ones in respective application. In this system, we apply ontology to represent all knowledge in this system. Various knowledge such as knowledge about the learner, knowledge about the learning domain and knowledge about the learning materials have been represented in this system.

VBnet ontology:
We create the VBnet ontology by using Protégé 3.4.3 as ontology editor. This ontology has hierarchy structure and follows the OWL ontologies. This ontology consists of some classes, instances for classes and properties (object properties and data type properties). There is three main classes in this ontology; LearnerModel class, ConceptDomain class and LearningMaterial class. Each of these classes includes subclasses and also some individuals. Some properties have been defined to make a relation among these instances.
Recommendation System: Each of these components has various tasks to do. Concept and content are two words with different meaning and different using. Concept refers to all topics and name of coerces in Visual Basic. Net that is available in the DomainConcept class in ontology. Content points to all learning material who system recommends them to a learner to learn. Concept can be loop statement topic, and content can be an example of loop statement.

Concept recommendation:
Recommending some suitable concepts based on learner request and also the learner knowledge level.
Learning path: When the system specifies the appropriate concepts to a learner, then should extract the connection between these concepts and create the path. In next stage learner use this learning path to learn some contents.

Content recommendation:
Before this stage learner has some recommended concepts and learning paths. Now in this stage system recommends some textual content related to each concept to a learner. Learner should learn these contents according to the learning path.
Learner performance evaluation: When the learner learns the textual contents, system evaluates the learner performance. The system should evaluate the current learner, whether the learner understands the current textual content or not. This subsystem includes some components; Quiz Generator, Time Observer and Learning Content recommendation. The output of Quiz generator and time Observer components has an effect to the system specify the performance.
Quiz Generator: This component should generate quiz according to current textual content which learner finishes the its reading. This component will generate some questions from all topics of current textual content randomly. Then the system evaluates the quiz and saves the obtained score of a quiz for the learner on the learner's model.
Time Observer: When a learner starts to read the current textual content for each concept, system measure the reading time spent until the learner finishes the content. This time is effective in performance evaluation for the learner.

Learning content recommendation:
After performance evaluation through quiz score and reading time spent, system recommends some learning content. Based on the result, these learning contents are different. Then all changes related to the learner will be stored in the learner's model, and VBnet ontology will be updated.
In this stage we are going to describe the modules in the system architecture.
Availability checker: This module should check the learner's availability, whether the learner is new or old, since the process of the system in the beginning for a new learner and old learners is different. The system will search the username for the current learner, if the username is valid, itmeans that the learner is the old learner, otherwise the learner is new and should fill up the personal information form and make user name and password. We show the flowchart related to this part in  Knowledge evaluator: Another module of the system is the knowledge evaluator. According to Fig. 2, when a learner logs in and the system specifies whether s/he is a new or old learner, if he is new then this module starts to evaluate the knowledge level of the current learner otherwise this module will not need to work.
Exam generator: When the system specifies the knowledge level for a learner, then the system automatically, generate the exam. The question included in this exam is returned to result of knowledge evaluation. This exam is different for each learner because their knowledge levels are different.
Learner request analyzer: One of the most effective components in concept recommendation is the learner request. Each concept can be considered as one request from the learner. Predefined concepts in the domain have some prerequisites. In learning domain when the learner wants to learn the specific concept is necessary to pass all prerequisites. Thus, this module retrieves all prerequisites for the learner request from the ontology.
Creation the ontology: This ontology consists of three different classes and 41 subclasses. VBnet ontology divides to some level: • The first level of hierarchy structure consists of three main classes; learner Model, ConceptDomain and Learningmaterials • The second level comprises the all subclasses in these main classes. This level covers all 41 subclasses • The third level of the structure, includes the all individuals belong to these classes and subclasses. Total of individuals are 50. 43 belong to ConceptDomain, 4 belongs to LearnerModel and 3 belongs to LearningMaterials The first level of VBnet ontology: As we mentioned before, this level consists of three main classes. Fig. 3 shows these classes.
The second level of VBnet ontology: This level comprises the subclasses. We classify these subclasses based on their parent classes.
LearnerModel class: The LearnerModel Class represents the knowledge about the learner. This class consists of two subclasses; • learnerKnowledgeLevel class: this class shows the knowledge level of a learner and includes three individuals; Basic, Medium and Advance • LearnerInformation class: this class covers all personal information about the learners. This information can be first name, last name, username and password and alike. Figure 4 presents the subclasses belong to this class ConceptDomain class: The ConceptDomain consists of some selective concepts From Visual Basic.Net. We selected these concepts from some learning books about Visual Basic.Net programming language. These subclasses could be found in Fig. 5. There are some others subclasses that we do not show in this picture In this class. LearningMaterial class: The learningMaterial class represents the knowledge about the all learning object due to Concepts that we mention before in the ConceptDomain class. The learning materials in this paper are; Example, TextContent and Quiz. Figure 6 show these subclasses.
The third level of VBnet ontology: Each class or subclass comprises some instances. In Fig 7 we bring one example of these instances for LearningMaterial class. Semantic relationship as properties: To extract the information from ontology and make two way communication between learner and system, it needs to provide some semantic relationships. We created some properties (Bechhofer et al., 2004) to make relation among materials in VBontology. These properties according to OWL (Bechhofer, Van Harmelen et al. 2004) can be object property and data type property.

RESULTS
As we mentioned before this ontology follow the OWL ontologies (Bechhofer et al., 2004), so the samples of OWL file present in the Fig. 8. During the processing, we need to retrieve some information from ontology, and also we needed to add some information to ontology, that is why we also defined some queries based on SPARQL language. Figure 9 shows the exmaple of query to extract some information based on "HasExample " property. The result of this query present the avaiable exmples related to each TextContent in the VBontology.

DISCUSSION
As we mention before, the recommendation technique in the current study depends on some relationship among the learning materials and learner's knowledge level. To extract all relationships among the learning materials is one of the significant tasks in the current system when the learner asks the request. Figure  9 shows the desired results related to the learner request about content 'x'. Learner asks some example for content 'x'. This figure expresses the system operations according to learner request. Specific learning materials as a desired recommendation result need to some task in the system. Considering to ontology performance that we mention before, it can improve the quality of knowledge retrieval and increase the speed of search by using the semantic rule and semantic query. This figure shows the knowledge retrieval from the VBOntology. This information retrieval without the ontology is possible but with the lower speed and complexity in structure of query.

CONCLUSION
We propose a learning system for VisualBasic.Net to help learner to learn. This system plays the teacher role in the virtual class. Learner can use this system at home or anywhere else. We represent our knowledge by using ontology. VBnet ontology consists of some levels that we implement them in details. This application comprises the recommendation system. This part is one of the most important parts in this system. This subsystem recommends the suitable learning materials based on learner request and also learner knowledge level. Knowledge level evaluation occurs for each new learner in the system for the first time. This part prevents the time consuming during the learning process. The system offers the suitable learning contents that learner need to learn. Learners do not need to learn all prerequisite content to reach their request. Other modules such as performance evaluation, exam generator and availability checker play a specific role in this system. The knowledge based system consists of our knowledge about learner, learning materials and domain. This knowledge have represented by using Protégé 3.4.3.

Future work:
We are going to develop and prototype the performance evaluation module and recommendation module in this system. These modules have some components. We will prototype them by using Java (Netbeans), the semantic framework jena 2.6.3.

AKNOWLEDGEMENT
The authors would like to thank for funding this research under Assoc. Prof. Dr Nor Azan grant.