Advanced Student Record Search Based on Ontology Model in Protégé

Contents

Chapter 1: Introduction…………………………………………………………………….1-5

1.1 Goal of Project ……………………………………………………………………………..1

1.2 Motivation ………………………………………………………………………………1-2

1.3 What is Ontology? ………………………………………………………………………….2

1.4 Context of Project ……………………………………………………………………………..3

1.5 Overall Objectives ……………………………………………………………………………..4

1.6 Scope of Project……………………………………………………………………………5

Chapter 2: Literature Review ………………………………………………………….….5-

2.1 Latest Achievements ………………………………………………………………………5

2.2 Existing Work ………………………………………………………………………….6-7

2.3 Comparative Analysis …………………………………………………………………….8

2.4 Survey …………………………………………………………………………………….9

Chapter 3: Project Plan………………………………………………………………………….7-8

3.1 Project Plan ……………………………………………………………………………7

3.2 Issue Log ……………………………………………………………………………..7-8

Chapter 4: Planning your artefact…………………………………………………………8-10

4.1 Requirements…………………………………………………………………………8

4.1.1 Non-Functional Requirements ……………………………………………8-9

4.1.1.1 Efficiency ………………………………………………….…8

4.1.1.2 Flexibility …………………………………………………….8

4.1.1.3 Portability ……………………………………………………9

4.1.1.4 Performance …………………………………………………9

4.1.1.5 Reliability ……………………………………………………9

4.1.1.6 Usability ………………………………………………………9

4.1.2 Functional Requirements ……………………………………………9

4.1.2.1 Software Requirements……………………………………………9

4.1.2.2 User Requirements ………………………………………………10

4.2 Testing Strategy ………………………………………………………………………10-11

Chapter 5: Design……………………………………………………………………………….12-18

5.1 Program Design…………………………………………………………………………12

5.1.1 Prototype Sketches……………………………………………………………..12

5.1.2 Non-Working prototype………………………………………………………..12

5.1.3 Software……………………………………………………………………….13

5.2 Program Structure………………………………………………………………………14

5.2.1 Use Case Diagram of System……………………………………………1.4

5.2.2 Activity Diagram of System ………………………………………………..14

5.3 Methodologies………………………………………………………………………15

5.3.1 Waterfall model……………………………………………………………15

5.3.1 Requirements Gathering…………………………………………16

5.3.2 Design……………………………………………………………..16

5.3.3 Planning……………………………………………………………17

5.3.4 Implementation…………………………………………………….17

5.3.5 Testing………………………………………………………17

5.3.6 Maintenance………………………………………………………18

Chapter 6: Implementation…………………………………………………………19

6.1 Protégé…………………………………………………………………………………19

6.1.1 Classes………………………………………………………………………20

6.1.2 Objects………………………………………………………………………21

6.1.3 Individuals…………………………………………………………………..22

6.1.4 Ontology Model ……………………………………………………………23

6.1.5 Apache Jena ……………………………………………………………23

6.2 GUI Interface …………………………………………………………………………24

6.2.1 Search student by Name……………………………………………………….25

6.2.2 Search student by Grade………………………………………………………26

6.2.3 Search student by Course ……………………………………………………..27

Chapter 7: Testing……………………………………………………………………………………30

7.1 Black Box Testing…………………………………………………………………….30-31

7.2 White Box Testing ……………………………………………………………………31-33

7.3 User acceptance………………………………………………………………………33

Chapter 8: Close of Project…………………………………………………………………….33

8.1 Future Developments and Improvements……………………………………………33-34

8.2 Solutions to the problems………………………………………………………………34

8.3 Strengths…………………………………………………………………………………34

8.4 What went well and went wrong?…………………………………………………………………………..34

8.5 Weaknesses …………………………………………………………………………… 34

8.6 Evaluation ………………………………………………………………………………35

8.7 Critical Analysis ………………………………………………………………………..36

8.8 Goals Achieved…………………………………………………………………………..36

References………………………………………………………………………………………….

Appendix…………………………………………………………………………………………

Chapter 1: Introduction

  1.  Goal of Project

Many schools and universities today have a specific way of student management. This project would like to cater towards that, normally a student could be found by their unique Student ID number, however, in this project, the goal is to oversee that and search among other factors to filter out a specific student. To succeed in this an ontology model is to be designed in protégé and a framework for Java is to be installed in this case the framework is Apache Jena. The advanced search would let schools and universities search using filters, checkboxes, and categories. In today’s world a standard search doesn’t cater to users’ needs and often doesn’t bring up the results they need, so in this case, the system proposed will cater towards more of the users’ needs and what result they expect. The main goal of this project was to improve the current search system, many have failed to understand the user needs and deliver the results they want from a search system. The system I’m developing using ontology which improves the accuracy of the search and would bring a better match of their query rather than use a standard search system. Semantic web search system has become more popular over the decades, this paper will discuss the recent works done with semantic web search system based on ontology and how this project would relate to it.

1.2 Motivation

In the past I have wanted to work with intelligent systems and ontology as a whole previously in one of the units studied this year we worked with ontology models. This has motivated me more towards on to making my own system which using ontology as it was a topic in particular I liked and was something new and fresh to work with at the time. Previously I’ve worked with SQL queries and I found it easy to work with when recently working with ontology the query language used, SPARQL I found interesting as it was different to SQL. Using SPARQL has motivated me towards this project because it would give me a chance to learn newer things along the way. Self-motivation is a key element in a project and that drive will allow this project to move forward successfully. Previously working with semantic web was fun and enjoyable and has kept me motivated to producing a product which would be useful to someone, which gave me this idea to help schools and universities with a search system to allow them to locate a student with filtering their details, details such as their student ID, forename, surname, grade, and course could be filtered allowing the system to bring up an exact match to the original query.

1.3 What is Ontology?

In the world of computer science ontology is defined as an interpretation of a group of ideas within a domain. Ontology is used mainly to organise information in many fields in computers such as AI, standard systems, and semantic web systems. Fig 1.1 shows a typical ontology framework and the ins and out of how it works. One of the uses of ontology being on semantic web systems, the semantic web was conceived by Tim Berners-Lee founder of WWW. [1] describes in his paper the different types of Semantic web technologies. XML is a language used mainly in a semantic website as plays the role of creating tags for users for annotation, XML provides and restricts the main contents of elements in XML documents. Resource Description Framework (RDF) consists of a set of triples, each triple contact a subject, predicate, and object.

Image result for ontology architecture

Fig 1.1 Ontology framework

1.4 Context of Project

Day by day schools are using a system to manage or view student records and most of them are prior research find their system may have a lack of functionality. This system will cover different areas will allow the universities and schools to have the ability to search the student by grades, academic performance, and many more factors.  [1] looks into his paper the role of ontology for the use in semantic web, and it’s also stated that early 90’s ontology was a hot topic and was a very popular researched topic in AI, processing, and intelligent systems. The work of ontology would include a set of components to make it relate. Components as such: individuals, classes, attributes, relations and many more. To project will include classified information on students, information such as their personal details, courses, and grades.  The system proposed in this project will be considered as an advanced search and will include filters on the search to ensure users search is refined as much as they would like it to be to produce the best kind of results of them. Fig 1.2 shows a typical semantic web search system which would use SPARQL queries to execute as you can see the results display the results from the query being executed above. As you can see from the search it brings up five columns for results to be shown in, this being done by the SPARQL query ‘Select Distinct ?Date ?Name ?Fours ?Sixes ?Run’ as shown in the figure below. The system being developed in this project would be similar to this in the sense but however many changes would come to it such as filter search and many more.

Image result for semantic search web system gui

Fig 1.2 A GUI of a semantic search system based on ontology

1.5 Overall Objectives

This study aims to look at the different type of systems, mainly semantic web systems how the ontology is used.

The overall objectives of this research are:

  • To purpose a search system which caters for a school or university that gives them options as they search
  • Design an ontology system on protégé which will then later relate to the system.
  • Create results that match the exact query or closely related to satisfying the user’s needs.
  • Look at current semantic web systems and how the system being proposed could relate to it.
  • Look into further developments of ontology search-based systems and design me own one.

1.6 Scope of project

The system is to help the university and schools in today’s world to have an efficient way to search for a student, and to cater for errors which may well exist today.

Software being used in this project in first eclipse, eclipse will be used for the GUI purpose of the system and will show the interface of the program. Apache Jena will also be used as a Java framework and to also execute SPARQL queries another software that’ll be used in the project will be protégé. On protégé the ontology itself will be created and edited as the project goes along, the owl created from the ontology will be executed on Apache Jena allowing successful search queries being executed on the system itself.

Chapter 2: Literature Review

2.1 Latest Achievements

Semantic web is classed as an emerging technology, for over a decade now it has been misunderstood and there has been a confusion towards it. Since 1999 many industries have used World Wide Web (WWW) who was invented by Tim Berners-Lee’s to excel in semantic web projects. There has been a trend in information management in enterprises over the past five years. Many challenges are faced in relation to information management, as many enterprises need semantic it’s important for them to have a reliable information management system. Different people may well use semantic web for their uses, for example in the industry of medicine and pharmaceutical, companies are using semantic web technologies for mainly drug discovery and development in clinical, the use of semantic web technologies in this kind of industry means companies can make investments.

 

2.2 Existing Work

Previously there has been work done in the field of ontology. Many developers have worked with ontology before made it possible with developed an ontology-based system. [2] proposes a search system in his paper and also describes the method using for ontology and states that the ontology implementation was made using ontology web language (OWL) and it’s also stated that editor used to develop the search system was protégé-2000. [2] mentions the implementation methods and steps used in the process of successfully creating the ontology. All the steps carried in the process of creating the ontology is essentials. In this paper, the author has described the implementation and states that the project is a medical information search system based on ontology which would cater for clinics.

There are many other purposes for developing a search system based on ontology. [3] describes and look into their paper the background of semantic web search system and how they are more useful in today’s world, in this paper many different methods are looked into.

There are many reasons out there that the semantic web is useful for, it might be for a company, business, and industry. Fig 2.1 shows a semantic web framework. [4] discuss in their paper their latest achievement in developing an ontology-based semantic web search system for vegetable supply chain model. In their paper, they describe how they use RDF for the description of the website. It states in their paper that users can access easy navigation on the website. The navigating bar on their search system is as follow computer basic knowledge, computer application knowledge, supply chain academic knowledge, supply chain practical knowledge and supply chain case study. Further on from selecting an item from navigation it will split into functions allow them to search the knowledge through keywords helping them obtain related and useful knowledge.

[5] develops a search system ontology-based which focusses on matching and classification of skills using data mining. In their paper they discuss the implementation of developing the matching system and state the results are reviewed with the ranking of retrieved researchers using a score to closely match the researcher, they explain that they use two different type of rankings. The first one being Rank-Score and Path-Rank. In Rank-Score, the more papers researched by the researcher will determine the higher rank score. In Path-Rank the results are retrieved based on user preference, users tend to use narrower semantic in Path-Rank.

Image result for semantic web framework[6] proposes a system named ‘Ontology-driven web search celebration system, and states that it’s a relatively new system and take’s the keyword search system to an upper level. The system has a good use of semantics in web search with the application of ontology. In their paper, they talk about the ontology grounded index (OGI) building process and they propose an up to scratch system architecture with the elements of Ontology, Crawler and Indexer assembly, Ontology grounded index, the index refiner and ontology creation tools and algorithms. In their paper, they briefly speak about each element. The ontology element is mainly mentioned around the topic of AI and intelligent systems, [6] states the ontology comes with two components. The crawler and indexer assembly is known to generic for web search engines makes way for hyperlinks in web pages. The index refiner would be efficient to OGI index as it may build it. The OGI element is built by the index refiner as just mentioned, it’s a newer version of the inverted index and lastly, the ontology creation tools and algorithm element consist of using software tools like protégé to successfully create and manage an ontology. [6] describe in their paper their search process taken towards their proposed search system. The process consists of four main functions: Analysing query, Semantic classification into classes, Query suggestion, and OGI search, Documental response.

 

 

 

 

Fig 2.1 Semantic Web Framework

2.3 Comparative Analysis

[3] looks into a search system method ontology-based called fuzzy. Fuzzy search is a process that would find relevant web pages or words to the original search even when the word doesn’t match and as well as doing that it will show the exact match of the search at the top of the search. The process is implemented in a method could personalised abstract search service (PASS). The fuzzy method works in the manner that it will compare the search based on keywords and the results accumulated for the PASS method for that certain query. In their paper they ran tests on three different terms: related, broader and narrower terms, from the experiment results they ran it shows that a broader search releases more an accurate search then both related and narrower terms, what can be learnt from the test is that the efficiency of the system can be improved by a combination of PASS features. The next method analysed in this paper is a method called ‘Crawling Search’. Crawling Search is to follow a particular search engine called Personalised Semantic Search Engine (PSSE). Using this search engine the main goal is to reduce to processing time. [3] evaluates the step in this architecture. The first step is the crawling stage, in the crawling process it is said that the approach taken is to find related links to the original user query. In their paper they compare different search methods and look at their particular approach, they present the comparison in a table. Table 1. Displays the comparisons between the different search methods on semantic web. Each technique is different from and another. However, as a whole using one of these techniques would improve the accuracy of the results rather than use a standard search system because these techniques are ontology-based. As shown in table 1. Fuzzy, keyword and semantic search and Personalised mobile search engine all use a similar approach which is keyword based but all have different methods of producing search results. Due to the approach of these methods, they would generate likewise or close enough results.

 

 

Table 1. Comparison of methods

2.4 Survey

To understand the target audience of this project and the user’s knowledge of semantic web search systems based on ontology, a survey has been created. Fig 2.2 shows the survey. The survey consists of 6 questions which ask users general questions are whether they have experience in using search systems and would they think of today’s use of student systems in schools and universities. The research shows that the majority of the target audience for this project is at a working level and have a profession of a teacher and currently have experience with search systems, especially with student records. Some of them believe that the current school system for searching for student records isn’t as efficient to them, and the majority believe that today’s search systems don’t cater their needs.

 

 

 

 

 

 

 

 

 

 

Fig 2.2 a survey on Semantic Web Search System

 

Chapter 3: Project Plan

3.1 Gantt Plan

Fig 3.1 shows the Gantt Plan which is to be followed during the course of the project, some tasks on the Gantt Plan are completed in the same time frame this helps with time efficiency towards the project and to ensure tasks were completed on time. The first task of the project was to complete the ethics and proposal form both of these were completed in the same amount of dates and the same amount of time, it took a total of 4 days to complete both the proposal and ethics form. The next task of the project and which is stated on the Gantt Plan is completing the interim report. A sufficient amount of time was given to complete the interim report and I allowed myself enough time to complete the interim report. The interim report included research and review of other projects which aids towards my project. The interim report took me almost 3 weeks to complete as it took well enough time to gather information for my project as well as doing market research towards the project. Near to the end of completing the interim report I then completed the first progress report which was update my supervisor on the current stage of the project. After completing the interim report and progress report I then went on to starting to plan for my artefact. Artefact planning need a requirements list of non-functional and functional. When planning the artefact, it was important to state what software would be needed and also what hardware would be needed if necessary. Artefact Planning took me 3 days to complete, when I felt that I was ready and I haven’t gathered requirements for the project it was safe to say that I could continue to the next task. The next task of the project was project design. The designing process of the project took me roughly 3 days to complete. The project design consisted of sketches of the project and a non-working prototype of the project. The non-working prototype showed how the interface of the search system would look when it came the implementation of the project. A second progress report was then completed after the project design section. The next task after the project design was to complete the implementation. The implementation stage took me 11 days to complete and consisted of the ontology model to be finished and for the search system to be working completely with no errors. This stage was a time costly stage as a lot had to be completed to ensure the project was working. After completing the implementation stage another progress report was to be completed the update the supervisor on the current stage of the project. Project testing was the next stage of the project and was a crucial stage of the project as I had to ensure the project was implemented correctly and that no errors occurred during the testing of the project. To finish off the project the final report was to be completed which includes all the previous tasks to be documented on the report. The final report took me roughly 2 weeks to be completed and for everything to be well documented.

 

Fig 3.1 Gantt Plan

Chapter 4: Planning your Artefact

4.1 Requirements

4.1.1 Non-Functional Req.

4.1.1.1 Efficiency – The system should cater the users’ needs of displaying the minimum results expected and should work efficiently according to the SPARQL query.

4.1.1.2 Flexibility – The system should be flexible and should allow users to make more than one more search at one time. For example, the system should allow users to search a student by name as well as by their grade which will show the student in that grade class from what they have inputted.

4.1.1.3 Portability – The system should work on all operating systems that support java. As the system is using a java framework, and the GUI is java-based on eclipse. As for it being used on other devices this won’t be possible.

4.1.1.4 Performance – The system should be able to preview the best matches results from the query, from the user input the system should work at its best ability and should show the results which best match the users’ needs.

4.1.1.5 Reliability – The system is to be reliable in every aspect there is. For example under certain conditions the system should still be able to work fine and should be able to achieve its best performance, as well as making the users’ happy.

4.1.1.6 Usability – The system should be easy to use, users should have no problem finding elements on the page. The GUI is to be clear, users should be able to know where they would navigate to the make a search.

 

4.1.2 Functional Req.

4.1.2.1 Software Requirements

When planning for the system, it was important to look at the requirements of the software. The software should be able to support apache jena, which is a java framework. The software should be able to read sparql queries and should also be able to work well with ontology models. The software used should allow additional external files to be added to allow the system to work. A lot of requirements are required for the system. One of the main requirements is for the software to support a GUI that allows users to navigate and conduct a search with no problems.

4.1.2.2 User Requirements

The system should cater to the users’ needs and should work according to the program. The search should match the users input or the keywords. The system should return results from the ontology model which has been inputted in through the GUI. Users should be able to adjust their search to display the results they need from the system.

4.2 Testing Strategy

4.3.1 Black box testing – It’s suitable to carry out the black box testing strategy as it will test out the software features, e.g. the features on the GUI. The black box testing will carried out to test the design of the software. Once the implementation has been completed it’s important to carry out the correct testing methods. Black box testing will help test every item and the design of the actual software. Fig 4.3.1 displays the template of the black box testing that will be used to test the software design and inner and features.

Test# Purpose of test Expected outcome Actual outcome Action

Fig 4.3.1 Black box testing template

4.3.2 White box testing – White box testing is more technical. In the white box testing the program/software is tested internally. Rather than testing the features of the software in this testing strategy I will be testing each bit of code. Fig 4.3.2 displays the template that would be used to carry out the white box testing strategy to test this software/program. Each test will have a pass or fail mark on it to ensure the testing of the product has been carried out in the correct way. Additional comments will also be added if needed, e.g. if a test fails the reasons why a test has failed will be stated in the comments of the test.

Test# Module/Class Test Case Test Data Scenario to reproduce the issue Pass/Fail Status of the big Comments

Fig 4.3.2 White box testing template

Chapter 5: Design

5.1 Program Design

5.1.1 Prototype Sketches

Fig 5.1.1 shows a hand sketch version of what the system should look like when it comes to developing it. The sketch consists of search options: search by student details, search  by students grade or search by students course. The results will show at the bottom of the page. This design is a sketch up, the look of the interface might change during the course of the project. As well as making a sketch of the system, a non-working prototype will be made, this will be further discussed.

 

 

 

 

 

Fig 5.1.1 GUI Sketch of program

 

5.1.2 Non-Working prototype

After making sketches of the project, a non-working prototype was designed to show the outlook of the project. The non-working prototype was designed in C#. Fig 5.1.2 shows this non-working prototype. As you can see users have three options to search from: Search by details, Search by grade and Search by course. Initially when users are to search a student by details they would have to enter the students name and in which the results will bring up details of the search student. When it comes to searching the student by grade, a drop down will be presented to the user from where they can pick the grade from the grade the user has picked it will show the students in that grade class. Users would be able to search a particular student and select a grade to see if they are in that grade class. The last option allows users to search by course, a drop down will be available to users for them to select the course, once a course has been selected by a user the search results would show the students on that selected course.

Fig 5.1.2 Non-working prototype

5.1.3 Software

There are many software to be used for the ontology model. Ontology is growing day by day. It has been found that Protégé is a popular software for use for ontology. The Ontology model is to be made in protégé which allows the ontology to be saved as RDF file which would help when executing it on Apache Jena, which is the java framework. The front-end of the project is being developed on eclipse and is useful in this case as it works well with Apache Jena, additional files were to be added to the project to ensure the project was working fine.

5.2 Methodologies

5.2.1 Use Case Diagram of System

Fig 5.2.1 shows the use case diagram of the system. The use case should usually include the actors, use cases and associations. The actors of the system were the users of the system. The main purpose of composing the use case diagram was to show exactly how the users interact with the system and what services they have access to on the system. Firstly the users are to start the program then can carry on to picking the search options they can pick to search a student through their name, grade or course. Once a user has selected the option they would like to use for their search, they are then prompted to make an input. As soon as the input is made users can proceed onto the search, the SPARQL query for that particular query will be ran. The query is being executed using Apache Jena, which will load the ontology model and return the most accurate results from the user input. After a user has made an input and the query is executed, the results will be previewed onto the interface for users to see.

5.2.1Use Case Diagram of System

5.2.2 Activity Diagram of System

Fig 5.2.2 shows the activity diagram of the system. The activity diagram presents more of the dynamic behaviour of the system was action the system carries out. As you can see below I have shown the activity diagram for the system. At first users will have to start the program, when the program is started users will then see the different search options. Users from here can select a search option of their choice. Once users have selected a search option they are prompt to make an input to the system for results to be returned. The system will allow users to pick one or more search option, for example users would be able to search a student through their name as well as searching their grade at the same time. Once users have selected their options, the SPARQL query will be ran which will work with the ontology model to return the best results from the model. Once the results have been gathered they will be returned back to the system and will shows users the results gathered which would be shown on the GUI.

C:UsersAbdullahAppDataLocalMicrosoftWindowsINetCacheContent.WordStudent Search System Activity.jpg

5.2.2Activity Diagram of System

5.3 Methodologies

5.3.1 Waterfall model

The methodology used for this project is the waterfall model. It requires six steps as listed:

5.3.1 Requirements Gathering

The first step of this methodology is requirements gathering. Firstly, I broke down the requirements of this project. I looked into:

  1. Non-Functional Requirements:

I have listed six non-functional requirements: Efficiency, Flexibility, Portability, Performance, Reliability and Usability. I have spoken about each requirement according to the program.

  1. Functional Requirements:

Functional Requirements are more technical requirements. The functional requirements were broken up into two sections software requirements and hardware requirements.

  1. Software Requirements:

It is important to use the right software for this project this ensure the software requirements are met. In this case a software that supports SPARQL and ontology is needed to make sure the software requirements are met.

5.3.2 Design

The design section displays the look of the user interface and how the program is meant to look. The design process outlines the functions on the program. The non-working prototype shows the search options. In this project there are 3 search options: search by name, search by grades and search by course. All three different searches return different results from the executed query. The design section includes a sketch of the program of how initially the program is meant to look. A UML diagram is also included the show the mechanics of the program and how the search is conducted. An activity diagram is also include in the design section, the activity diagram will show the activity taken on the system to ensure a working project.

5.3.3 Planning

After design then comes the planning stage which includes the project plan and a Gantt chart of when each task is due. The Gantt was updated during the course of the project. Furthermore, the project itself had to be planned; it was at this stage I had to make sure I had the right software and hardware for this project.

5.3.4 Implementation

Implementing the program is the next stage of the waterfall model methodology which has been applied with this project. The implementation section will show the final look of the system and how it’s working. In the implementation screenshots will be included to show the outlook of the program and the results gathered from the search.

5.3.5 Testing

One of the closing stages is testing; to ensure the quality of the project is up to standard and meets users’ needs it is important to test it and record any faults of the program if necessary. The method used for testing is mainly black box and white box testing which both test different aspects of the program itself. Black box is testing the interface while white box testing is testing the technical side of the program.

5.3.6 Maintenance

The last stage is to maintain the project. In this stage it is important to ensure that the project is still stable after release so future adjustments and developments can be made to it if necessary.

 

Chapter 6: Implementation

6.1 Protégé

6.1.1 Classes

 

6.1.2 Objects

6.1.3 Individuals

6.1.4 Ontology Model

6.1.5 Apache Jena

Chapter 7: Testing

7.1 Black box testing

Black box is the first test method that will be carried out to ensure the system works to its full capacity. Black box testing will test the features on the GUI. Features such as the text input, combo boxes and the buttons on the page. In this test, I will state the expected results from the test and then the actual results as well as stating whether the test as a whole has passed or failed. The severity of the tests will also be noted.

Test ID Test Description Expected Results Actual Results Test Status Pass/Fail Severity
BB01 Text Input for Students Name Users’ should be able to input in students name for the search. The system allows users’ to input student’s name. Pass High
BB02 Select Option for Student Grade Users’ should be able to select a grade from the drop down. The system allows users’ to select an option from the drop down with no errors occurring. Pass Medium
BB03 Select Option for Student Course Users’ should be able to select a grade from the drop down. The system allows users’ to select an option from the drop down with no errors occurring. Pass Medium
BB04 Button for student name input The button should be able to be clicked by users’ upon searching. The system allows users to click the button without an error occurring. Pass High
BB05 Button for select student grades The button should be able to be clicked by users’ upon searching. The system allows users to click the button without an error occurring Pass High
BB06 Button for select student courses The button should be able to be clicked by users’ upon searching. The system allows users to click the button without an error occurring Pass High
BB07 Results section text area The results should show in the allocated text area on the GUI. The results from the search query are shown in text area with no given errors. Pass High

The system has been tested successfully using the black box testing method. Seven tests have been done to ensure the features on the GUI works up to standard without no errors occurring during use.

7.2 White box testing

The second testing method used to test the program is the white box testing. White box testing tests the more technical side of the system. For example, white box testing will test the code and some of the functions and methods used. The test will include the Test ID, Test Description, code being tested, expected results, actual results, test status and the severity.

Test ID Test Description Code Expected Results Actual Results Test Status Pass/Fail Severity
WB01 Test for loading ontology model applying apahce jena.  Model model = FileManager.get().loadModel(“C:/Users/1404035/Desktop/Search System Update/Student Search System Project/Student Search System Ontology/Ontologies/src/studentsearch.rdf”); The model should be loaded and information should be able to be retrieved from the model. No errors occurred from located the path of the ontology model. The .RDF file was found successfully. Pass High
WB02 Test for SPARQL query “Class Search” String classSearch =”SELECT ?individual_label ?class_label ?processor  WHERE {?individual rdf:type owl:NamedIndividual . ?individual rdf:type ?class . ?individual rdfs:label ?individual_label . ?class rdfs:label ?class_label . ?individual rdfs:seeAlso ?proc. ?proc rdfs:label ?processor. FILTER (?class_label=””+ x +””)} ORDER BY ?individual_label”               ; The Query should be executed successfully with no errors and show results from the ontology. The Query works and shows the results from the classes based on the ontology model. Pass High
WB03 Test for SPARQL query “Individual Search” String individualSearch=”SELECT ?classlabel ?label ?processor WHERE {?individual rdf:type owl:NamedIndividual . ?individual rdfs:label ?label . ?individual rdf:type ?class . ?class rdfs:label ?classlabel .?individual rdfs:seeAlso ?proc. ?proc rdfs:label ?processor . FILTER regex(str(?label),””+ y +””,”i”)}ORDER BY ?label”; The Query should be executed successfully with no errors and show results from the ontology. The Query works and shows the results from the classes based on the ontology model. Pass High
WB04 Test for SPARQL query “Class Individual Search” “SELECT ?classlabel ?label ?processor WHERE {?individual rdf:type owl:NamedIndividual . ?individual rdfs:label ?label . ?individual rdf:type ?class . ?class rdfs:label ?classlabel .?individual rdfs:seeAlso ?proc. ?proc rdfs:label ?processor . FILTER regex(str(?label),””+ y +””,”i”)}ORDER BY ?label”; The Query should be executed successfully with no errors and show results from the ontology. The Query works and shows the results from the class individuals based on the ontology model. Pass High
WB05 Test for SPARQL query “Type Individual Class Search” String typeIndClassSearch =”SELECT ?classlabel ?label WHERE {?individual rdf:type owl:NamedIndividual . ?individual rdfs:label ?label . ?individual rdf:type ?class . ?class rdfs:label ?classlabel. ?individual rdfs:seeAlso ?proc. ?proc rdfs:label ?processor .FILTER regex(str(?label),””+y+””,”i”) .FILTER(?classlabel = ””+z+””||?classlabel = ””+x+””)}ORDER BY ?label” ; The Query should be executed successfully with no errors and show results from the ontology. The Query works and shows the results from the based on the ontology model. Pass High
WB06 Test for SPARQL query “Type Individual Search” String typeIndSearch = “SELECT ?classlabel ?label ?processor WHERE {?individual rdf:type owl:NamedIndividual . ?individual rdfs:label ?label . ?individual rdf:type ?class . ?class rdfs:label ?classlabel. ?individual rdfs:seeAlso ?proc . ?proc rdfs:label ?processor .FILTER regex(str(?label),””+y+””,”i”) .FILTER (?classlabel = ””+z+””)}ORDER BY ?label”; The Query should be executed successfully with no errors and show results from the ontology. The Query works and shows the results from the individuals based on the ontology model. Pass High
WB07 Test for SPARQL query “Type Search”  String typeSearch = “SELECT ?classlabel ?label WHERE {?individual rdf:type owl:NamedIndividual . ?individual rdfs:label ?label . ?individual rdf:type ?class . ?class rdfs:label ?classlabel. ?individual rdfs:seeAlso ?proc. ?proc rdfs:label ?processor .FILTER (?classlabel = ””+z+””)}ORDER BY ?label”; The Query should be executed successfully with no errors and show results from the ontology. The Query works and shows the results from the ontology model. Pass High
WB08 Test for SPARQL query “Type Class” String typeClass=”SELECT ?classlabel ?label ?processor WHERE {?individual rdf:type owl:NamedIndividual . ?individual rdfs:label ?label . ?individual rdf:type ?class . ?class rdfs:label ?classlabel. ?individual rdfs:seeAlso ?proc. ?proc rdfs:label ?processor .FILTER(?classlabel = ””+x+””|| ?classlabel = ””+z+””)}ORDER BY ?label”; The Query should be executed successfully with no errors and show results from the ontology. The Query works and shows the results from the ontology model. Pass High
WB09 Test to show query has been executed and the search type is shown  String finishedQuery =””; 

if(queryGet==”1″){

finishedQuery=classSearch;

System.out.println(“classSearch”);

}

else if (queryGet==”2″){

finishedQuery=classIndSearch;

System.out.println(“classIndSearch”);

}

else if (queryGet==”3″){

System.out.println(“individualSearch”);

finishedQuery=individualSearch;

}else if (queryGet==”4″){

finishedQuery=typeIndClassSearch;

System.out.println(“typeIndClassSearch”);

}else if(queryGet==”5″){

finishedQuery=typeIndSearch;

System.out.println(“typeIndSearch”);

}else if (queryGet==”6″){

finishedQuery=typeSearch;

System.out.println(“type Search”);

}else if (queryGet==”7″){

finishedQuery=typeClass;

System.out.println(“typeClass”);

}

;

The system should print out the search type in the console before results are shown. The query type is shown in the console successfully with no errors occurring. Pass Low
WB10 Test for Failed Query  finishedQuery=”SELECT ?classlabel ?label WHERE {?individual rdf:type owl:NamedIndividual . ?individual rdfs:label ?label . ?individual rdf:type ?class . ?class rdfs:label ?classlabel}”; 

System.out.println(“failed”);

The system should show the query has failed and it should displayed it in the console. The query is shown as failed and it displays it in the console. Pass Low
WB11 Test for Results ResultSet results = qexec.execSelect(); 

String rs = ResultSetFormatter.asText(results);

ResultSetFormatter.out(System.out, results, query);

The results should be stored in the variable ‘rs to be displayed later. The results are stored in the variable successfully. Pass High
WB12 Test for the returning results return rs; The results are to be passed for the parameters to be displayed on to the GUI. The results from the query are successfully passed through the parameters. Pass High
WB13 Event on button click for search by name  btnNewButton.addActionListener(new ActionListener() { 

public void actionPerformed(ActionEvent arg0) {

String search = textField.getText();

if(search.equals(“”) ){

type=false;

}else{

type=true;

}

The text input should be received and stored. Validation should occur. The input from the text field was successfully and stored in a string. Pass High
WB14 Event on button click for search by grade Object comboObj = comboBox2.getSelectedItem(); 

String combo2 = comboObj.toString();

if(combo2 ==”All”){

queryType=”2″;

}else if(combo2 ==”All”){

queryType=”3″;

}else if( combo2 ==”All”){

queryType=”1″;

}else if(combo2 !=”All”){

queryType=”4″;

}else if (combo2 !=”All”){

queryType = “5”;

}else if (combo2 !=”All”){

queryType =”6″;

}else if (combo2 !=”All”){

queryType= “7”;

}

else{queryType=”0″;}

String stCombo = null;

The selected item from the comb box should be received and stored. Validation should occur and should state the query type. The selected item was validated and the selected item was stored in the variable “combo2”. Pass High
WB15 Event on button click for search by name btnNewButton_1.addActionListener(new ActionListener() { 

Object combo3 = comboBox_1.getSelectedItem();

String combocourse = combo3.toString();

if(combo3 ==”All”){

queryType=”2″;

}else if(combo3 ==”All”){

queryType=”3″;

}else if( combo3 ==”All”){

queryType=”1″;

}else if(combo3 !=”All”){

queryType=”4″;

}else if (combo3 !=”All”){

queryType = “5”;

}else if (combo3 !=”All”){

queryType =”6″;

}else if (combo3 !=”All”){

queryType= “7”;

}

else{queryType=”0″;}

String stCombo = null;

The selected item from the comb box should be received and stored. Validation should occur and should state the query type. The selected item was validated and the selected item was stored in the variable “combocourse”. Pass High
WB16 Results Displayed String rs = Main.getSparql(stCombo,search,queryType,combo2); 

textArea.setText(rs);

The text area should display the results that were returned. The results were returned successfully and the results are shown in the text area with no errors. Pass High

The system has been tested successfully using the white box testing method. Sixteen tests have been done to ensure the code works and no errors occur during the execution. The code has been attached with the test that is being carried out for reference.

7.3 User Acceptance Questionnaire

To test the system from a users’ point of view. I have made a questionnaire that consists six questions. These questions asked users if they have used semantic web search systems before and what they think of the system that I have developed. The questionnaire also gives the users a say in future developments by asking if any improvements could be done to make the system better. The results of the questionnaire are shown the appendix section.

Chapter 8: Close of Project

8.1 Future Developments and Improvements

Now looking forward to the future and looking back at the project there are a couple of future improvements and developments which could be made to enhance the project. Firstly I would like to mention that due to lack of time issues the projects developments wasn’t up to full expectation, however it does deliver as to what I proposed.

Looking back at the system there is are lots of room for improvements and a lot of future work that could be done to make the system work more efficiently and more in the users favour. The system caters to the users’ basic needs and could adjust favour to allow an easier and more flowing search to derive better results. Some of the improvements that could be done to the system would include:

  1. Flexibility – The system could be more flexible, this meaning the system could include more search options for users to pick from. For example, on the current system users are given the ability to search students by course. This could be further adjusted in the future to allow users to look a particular unit to see if the student is enrolled onto the selected unit. Also, users should be able to search a student using their unique student IDs as there might be issues with duplicates in terms of students having the same forename. This is a major change that could improve the search in the future.
  2. GUI – I would improve the graphical user interface as I believe it’s not engaging enough to be used, and maybe a bit more for users to see it on the page. The current systems GUI isn’t engaging enough and I feel that in the future changing the appearance of the interface could in fact attract more of the target audience.

As well as faults in the system there were also faults in the project which may of lead me to have further problems in the development stage of the project. There was room for improvements on the project side, most of these problems had a solution to them. However, given the project could be further developed in the future these problems could be addressed to allow the project to run more freely. A list of improvements in the project as a whole will be listed below.

There are many things I would improve to make the project as a whole:

  1. Time management – Time management as a key project management tool however I believe I lack in time management and would be a topic that I should improve on as it is vital towards meeting deadlines and ensuring work is completed on time.

Communication – I believe that my communication with me and my supervisor could have been a bit better  as I was planning to meet up with him every 4 weeks to approve the project proposal and additionally meet him if there have been any updates regarding the project.

  1. Motivation – I could have been more motivated towards the project and spending more time on certain aspects of the project to make it more applicable to the target audience.

If I had more time and concentration towards the project it would minimise the future developments of the project as I planning to implement more of the features that I have mentioned in the time frame given.

8.2 Solutions to the problems

During the course of the project some problems were faced. Some of the problems were related to project management and some problems were more technical. A problem encountered when developing was the threshold selection would find itself jammed, however this problem was solved by looking at solutions online. I also had a few problems which managing the project such as time management and communication. However these problems soon were no longer that much of a problem but were a weakness of the project. I solved my problem with time management by ensuring the Gantt chart was updated at least every 2 weeks. Communication problems were solved by getting in contact with my supervisor on a weekly basis usually by emails and face to face discussions for improvements.

8.3 Strengths

I have found that there were many areas that were strength points for me in the project. During the course of the project I learnt something new day by day that I didn’t already know.

My key strengths were:

  1. Knowledge – My knowledge towards the project mainly improved as I haven’t previously worked with ontology and semantic web search systems.
  2. Presentation – I think that the way I presented and overlooked this project was done with precision especially the implementation and looking at the best way to neatly write the code without causing any complications.
  3. Market research – I think the way I went about doing my market research was done well. I included surveys and a comparative analysis which is technical way of composing a market research.

8.4 What went well and wrong?

At first, I didn’t have much knowledge working with ontologies and semantic web search systems, I have gained more confidence with the topic during the course of the project. With the project the implementation was the strongest topic as not many errors occurred during the course of the developing the artefact. The main points that went wrong with the project was time, communication and planning. I got very mistaken with the time I had and the time I thought I could my work. Communication was another factor which went wrong during the course of the project I believe that I could had a lot better communication with my supervisor, as it was also inconsistent. Planning the project was a weakness as well because at first I didn’t know how to go about doing the project and how exactly I progress from stage to stage.

8.5 Weaknesses

As well as strengths there are also weaknesses. A number of weaknesses were found during the course of the project.

The main weaknesses of the project were as follows:

  1. Communication – I feel like that my communication with my supervisor could have been better during the course of the project. This would come under my main weakness. The main reason why I felt that communication was a weakness is because I felt that I didn’t communicate with my supervisor as much as I should have.
  2. Time management – Time management is another weakness I found, I felt that I didn’t have time to do everything I wanted to do so therefore future plans had to be made.
  3. Planning – Planning the project was a weakness found in the project. At first I didn’t know how to go about doing the project but then I researched which helped me improve this point.

8.6 Evaluation

To evaluate the project as a whole I would first like to thank everyone who helped and took part in making it possible to complete this project. I found that during the course of the project I worked with new tools and utilities. During the course of the project I found strengths and weaknesses which I recorded to help me improve on certain aspects of the project. I had fun working with this project because I’ve never gone out of my own way to produce something which I first I had hardly any knowledge on it. There are many things if I could improve I would such as meeting up with my supervisor on more of a regular basis to get my feedback which would strength my project. For this project we were given many months to attempt the work in these months I have researched in looking at how I would approach the project and how I would tackle the situation in hand. It was important to ensure that while going along with my project that I managed my time well so I don’t focus more one topic then falling behind on the other topic. In the future, I would look into semantic web search systems and make the system more advance so it could meet more of the user’s needs.

8.7 Critical Analysis

To analyse the project as a whole I would like to speak about what went right and what went wrong with the project. During the course of the project I found that the artefact and implementation was more of a problem rather than the report being a problem. As mentioned in my strengths and weaknesses I found that time management and communication with my supervisor wasn’t the strongest point. Overall, I would say that I would be looking forward to developing the project further if I had more time towards it.

8.8 Goals achieved

Before starting the project, I set out a list of goals and how I aim to achieve these goals. These goals were to ensure that the project objectives were met and to ensure I plan, design and implement the system in the proposed way. To evaluate the project, I would say the goals were achieved to develop a semantic web search system which is based on ontology. I started off the project with researching the topic in hand and how I would move forward with designing and implementing the system. The main goal of this project was to introduce a semantic web search system for schools and universities which would allow users to search for a particular student. The goal was achieved and could be further developed in the future the meet the users’ needs further. The context and scope of the project were clearly outlined at the start of the project and it’s safe to say that the scope didn’t change during the course of the project and stayed the same. As mentioned before there is room for improvement on the project which could affect the users’. I was new to working with ontology and didn’t have much experience in the field, I found it fun and challenging at times to produce a system as such. The scope on the project proposal outlined the software that would be used in the project, that didn’t change. The software used worked well with the project and caused minimal errors in the project. Finally, to conclude the project main goals have been met and a successful semantic web search system was developed that could actually cater for school and university’s needs. As for room for improvements these could be applied in the future to aid a more functional system.

 

 

 

 

 

 

 

References

[1] Giri, K. (2011). Role of Ontology in Semantic Web. [online] Publications.drdo.gov.in. Available at: https://publications.drdo.gov.in/ojs/index.php/djlit/article/viewFile/863/364 [Accessed 21 Jul. 2018].

[2] Salam, F. (2018). New Semantic Indexing and Search System based on Ontology. [online] 0-ieeexplore-ieee-org.brum.beds.ac.uk. Available at: https://0-ieeexplore-ieee-org.brum.beds.ac.uk/stamp/stamp.jsp?tp=&arnumber=6631638 [Accessed 22 Jul. 2018].

[3] Kavitha, V., Hanumanthappa, M. and R Prakash, B. (2018). Ontology Based Search Engine. [online] Ijettcs.org. Available at: http://www.ijettcs.org/Volume4Issue5(2)/IJETTCS-2015-10-22-42.pdf [Accessed 22 Jul. 2018].

[4] Yue, J., Li, Z. and Fu, Z. (2006). Ontology-based Vegetable Supply Chain Knowledge Searching System. [online] 0-ieeexplore-ieee-org.brum.beds.ac.uk. Available at: https://0-ieeexplore-ieee-org.brum.beds.ac.uk/stamp/stamp.jsp?tp=&arnumber=4021543 [Accessed 22 Jul. 2018].

[5] Punnarut, R. and Sriharee, G. (2010). A Researcher Expertise Search System using Ontology-Based Data Mining. [online] Crpit.com. Available at: http://crpit.com/confpapers/CRPITV110Punnarut.pdf [Accessed 22 Jul. 2018].

[6] Atreja, T. and Kumar Bhatia, K. (2016). Ontology Driven Web Search Cerebration System. [online] 0-ieeexplore-ieee-org.brum.beds.ac.uk. Available at: https://0-ieeexplore-ieee-org.brum.beds.ac.uk/stamp/stamp.jsp?tp=&arnumber=7724898 [Accessed 23 Jul. 2018].

[7]

 

 

 

 

 

 

 

 

 

 

 

 

 

Appendix

Appendix A: Project Proposal

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Appendix B: User Acceptance Questionnaire Results

 

study
http://au.au.freedissertation.com

You must be logged in to post a comment