Skip to content

gigernau/Intelligent-Semantic-Web-ALC-Generator-Testing-Reasoner

Repository files navigation

Intelligent-Semantic-Web-ALC-Generator-Testing-Reasoner

Intelligent-Semantic-Web-ALC-Generator-Testing-Reasoner

1) Intro

The following project consists of three main phases:

  • Generation of an ALC concept in Negative Normal Form (NNF)
  • Feasibility test with Hermit and JFact reasoners
  • Comparison between the times of the two reasoners

To generate the concept, the user is asked for a percentage with which to choose the degree of probability that a satisfactory concept is desired or not.

After a first random choice conditioned by probability, a tree is generated whose nodes represent the various operators of intersection, union, complement, universal and existential restriction.

Recursively, each level of the tree is generated up to the required depth. In the leaves, with a random function at 50%, a literal negated or not is generated

All this has been implemented with the OWL-API 5.0.3 and the Java 8 language. To test whether a concept is satisfactory or not, the Hermit reasoner was used compared with the time of the JFact reasoner.

1.1 GUI

Schermata da 2022-01-13 18-22-30

Initial window in which the user can choose whether to perform a single test or a preset battery.

Schermata da 2022-01-13 18-22-50

Single test window in which the user can choose the depth of the tree, the percentage of dissatisfacibility, the number of roles and concept names, and the distribution of probabilities related to various operators.

2) Classes and functions

The classes of the project are Main, Menu, InputForm, BatteryTest, SingleTest, Utilities.

2.1 CRC Cards

Schermata da 2022-01-13 18-23-17

Schermata da 2022-01-13 18-23-17

Schermata da 2022-01-13 18-23-23

Schermata da 2022-01-13 18-23-28

2.2 Main functions

Schermata da 2022-01-13 18-23-50

firstChoose: initial choice, through probability, to generate an unsatisfiable or satisfying concept.

Schermata da 2022-01-13 18-23-58

generateSatisfacibleConcept: receiving by parameters the depth of the tree and the probability percentages of each operator type, it generates a concept that randomly, based on the probabilities, recursively the type of operator is chosen to get to the leaves where atomic concepts are generated.

3) Testing

3.1 Case Test

The tests carried out:

  • Varying the depth of the tree
  • Varying the number of concepts and role names
  • Varying the probabilities of the operators

4) Conclusion

The HermiT reasoner and the JFact reasoner both have excellent performance for controlling the satisfaction of a concept.

It is advisable to use Hermit for:

  • Full and balanced tree
  • Few atomic concepts
  • Large size of alphabets
  • For unsatisfiable concepts

While it is convenient to use JFact to:

  • Full shaft with operators: ⱻ , Ɐ
  • Many atomic concepts
  • Small size of alphabets

To conclude, it follows that both are excellent reasoners to use.

Language program

Java 8 SDK 5

Resouces

OwlApi ---> https://github.com/owlcs/owlapi

About

Intelligent-Semantic-Web-ALC-Generator-Testing-Reasoner

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages