Intelligent Semantic Web ALC Generator Testing Reasoner

Overview

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

You might also like...

Java testing framework for testing pojo methods

Java testing framework for testing pojo methods. It tests equals, hashCode, toString, getters, setters, constructors and whatever you report in issues ;)

Aug 23, 2022

Cucumber DSL for testing RESTful Web Services

Cucumber DSL for testing RESTful Web Services

cukes-rest takes simplicity of Cucumber and provides bindings for HTTP specification. As a sugar on top, cukes-rest adds steps for storing and using r

Oct 18, 2022

Burp Extension for BFAC (Advanced Backup-File Artifacts Testing for Web-Applications)

Burp Extension for BFAC (Advanced Backup-File Artifacts Testing for Web-Applications)

BFAC - Burp Extension Burp Extension for BFAC (Advanced Backup-File Artifacts Testing for Web-Applications). What is BFAC - Burp Extension ? Backup fi

Jul 16, 2022

Firefly is an asynchronous web framework for rapid development of high-performance web application.

What is Firefly? Firefly framework is an asynchronous Java web framework. It helps you create a web application Easy and Quickly. It provides asynchro

Dec 18, 2022

JSON Web Token (JWT) implementation for Java with support for signatures (JWS), encryption (JWE) and web keys (JWK).

Nimbus JOSE+JWT Nimbus JOSE+JWT is a popular open source (Apache 2.0) Java library which implements the Javascript Object Signing and Encryption (JOSE

Jul 1, 2022

An evolving set of open source web components for building mobile and desktop web applications in modern browsers.

Vaadin components Vaadin components is an evolving set of high-quality user interface web components commonly needed in modern mobile and desktop busi

Dec 31, 2022

This repository is related to the Java Web Developer (ND035), Course - Web Services and APIs

About this Repository This repository is related to the Java Web Developer (ND035), Course - Web Services and APIs It contains the following folders:

Jan 28, 2022

The application consists of a web page with a list of some movies. The page allows user interaction through ratings of movies listed in the web app.

The application consists of a web page with a list of some movies. The page allows user interaction through ratings of movies listed in the web app.

DSMovie About the project https://matheus-maia-alvarez-dsmovie.netlify.app/ DSMovie is a full stack web and mobile application built during the Spring

Jul 21, 2022

JSON Web Token implementation for Java according to RFC 7519. Easily create, parse and validate JSON Web Tokens using a fluent API.

JWT-Java JSON Web Token library for Java according to RFC 7519. Table of Contents What are JSON Web Tokens? Header Payload Signature Features Supporte

Jul 10, 2022

A command line parser generator

jbock is a command line parser that works similar to airline and picocli. While most of these other tools scan for annotations at runtime, jbock is an

Dec 13, 2022

ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files.

ANTLR v4 Build status ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating

Dec 28, 2022

JavaCC - a parser generator for building parsers from grammars. It can generate code in Java, C++ and C#.

JavaCC Java Compiler Compiler (JavaCC) is the most popular parser generator for use with Java applications. A parser generator is a tool that reads a

Dec 27, 2022

The fast scanner generator for Java™ with full Unicode support

JFlex JFlex is a lexical analyzer generator (also known as scanner generator) for Java. JFlex takes as input a specification with a set of regular exp

Dec 18, 2022

A fast JSON parser/generator for Java.

A fast JSON parser/generator for Java.

fastjson Fastjson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON str

Dec 31, 2022

A small and easy-to-use one-time password generator library for Java according to RFC 4226 (HOTP) and RFC 6238 (TOTP).

OTP-Java A small and easy-to-use one-time password generator for Java according to RFC 4226 (HOTP) and RFC 6238 (TOTP). Table of Contents Features Ins

Dec 30, 2022

Generator fake objects from a template

Fixture Factory is a tool to help developers quickly build and organize fake objects for unit tests. The key idea is to create specification limits of

Dec 15, 2022

Java fake data generator

jFairy by Devskiller Java fake data generator. Based on Wikipedia: Fairyland, in folklore, is the fabulous land or abode of fairies or fays. Try jFair

Dec 10, 2022

Java code generator for calling PL/SQL.

OBridge OBridge provides a simple Java source code generator for calling Oracle PL/SQL package procedures. Supported input, output parameters and retu

Oct 7, 2022
Owner
Gianluca De Lucia
Master Degree in Computer Science - University Federico II of Napoli
Gianluca De Lucia
Java serialization library, proto compiler, code generator

A java serialization library with built-in support for forward-backward compatibility (schema evolution) and validation. efficient, both in speed and

protostuff 1.9k Dec 23, 2022
A demo web application that authenticates users via Wultra Mobile Token.

Demo of Wultra Mobile Token A demo web application that authenticates users via Wultra Mobile Token. Installation Install JDK 11 Install Maven 3.6 Ins

Wultra 1 Jan 31, 2022
Logic-less and semantic Mustache templates with Java

Handlebars.java Logic-less and semantic Mustache templates with Java Handlebars handlebars = new Handlebars(); Template template = handlebars.compile

Edgar Espina 1.3k Dec 23, 2022
A JNI code generator based on the JNI generator used by the eclipse SWT project

HawtJNI Description HawtJNI is a code generator that produces the JNI code needed to implement java native methods. It is based on the jnigen code gen

FuseSource 153 Nov 17, 2022
Log4j-payload-generator - Log4j jndi injects the Payload generator

0x01 简介 log4j-payload-generator是 woodpecker框架 生产log4 jndi注入漏洞payload的插件。目前可以一键生产以下5类payload。 原始payload {[upper|lower]:x}类型随机混payload {[upper|lower]:x}

null 469 Dec 30, 2022
OpenApi Generator - REST Client Generator

Quarkus - Openapi Generator Welcome to Quarkiverse! Congratulations and thank you for creating a new Quarkus extension project in Quarkiverse! Feel fr

Quarkiverse Hub 46 Jan 3, 2023
Intelligent object mapping

ModelMapper ModelMapper is an intelligent object mapping library that automatically maps objects to each other. It uses a convention based approach wh

ModelMapper 2.1k Dec 28, 2022
Hierarchical Temporal Memory implementation in Java - an official Community-Driven Java port of the Numenta Platform for Intelligent Computing (NuPIC).

htm.java Official Java™ version of... Hierarchical Temporal Memory (HTM) Community-supported & ported from the Numenta Platform for Intelligent Comput

Numenta 301 Dec 1, 2022
Compilation of code scripts from the Fall 2021 semester of Intelligent Tunneling subteam.

VIP-Fall-2021 Compilation of code scripts from the Fall 2021 semester of Intelligent Tunneling subteam. Table of Contents Overview Data Normalization

Kruti Gupta 1 Feb 2, 2022
Code4Me provides automatic intelligent code completion based on large pre-trained language models

Code4Me Code4Me provides automatic intelligent code completion based on large pre-trained language models. Code4Me predicts statement (line) completio

Code4Me 38 Dec 5, 2022