Giter Site home page Giter Site logo

Comments (19)

greeny277 avatar greeny277 commented on June 4, 2024 2

I built the package from the sources and included it into my project. The error hasn't reappeared yet 👍

from openllet.

Galigator avatar Galigator commented on June 4, 2024 1

Interesting, I will try to reproduce.

from openllet.

Galigator avatar Galigator commented on June 4, 2024 1

Thx for this bigger ontology and for the analyse on 'randomizeAxioms()'.

I have hack into the ontology and SearchMinimalBug, I can now achieve a 85% bug occurrence on sub-set of your ontology. Baddly this sub set still have more than 1000 axioms.

So I have hack SearchMinimalBug a little more to optimize number of axiom and bug occurrence.

85% is enough to start investigation.

from openllet.

Galigator avatar Galigator commented on June 4, 2024 1

The last commit should solve the problem.

There was a problem in the way of backjump when multiple branch are related to clash with dependencies on branch that haven't been explore when backtracking.

The way I resolve it should not mark an inconsistent ontology as consistent, but it may consider inconsistent ontologies that should be consistent if there was any bug.

from openllet.

greeny277 avatar greeny277 commented on June 4, 2024

Interesting, I will try to reproduce.

Thanks .

If you can't reproduce it I would share my ontology with you.

from openllet.

Galigator avatar Galigator commented on June 4, 2024

I failed at reproduce it.

from openllet.

greeny277 avatar greeny277 commented on June 4, 2024

I think I might have found the root of the problem.

When I use two equivalent classes with the same data range limit it crashes although they are not marked as disjoint:

For instance. the following causes a crash:

NormalDose = 
(concreteDrug some Clozapin)
 and (dose some xsd:integer[>= 100 , <= 250])

MaximumDose=
(concreteDrug some Clozapin)
 and (dose some xsd:integer[>= 250 , <= 251])

When I increase the limit by 1 in the second class, it doesn't fail.

from openllet.

greeny277 avatar greeny277 commented on June 4, 2024

Perhaps you can reproduce this error now.

from openllet.

Galigator avatar Galigator commented on June 4, 2024

Okay, even with this information I failed to reproduce the bug. See the test programs TestBasic.java.

So to show the bug we may use another strategy, I just write a small program that take an ontology that cause a crash/exception and search for a minimal set of axioms that produce the crash/exception; and it rename every entities in it.

This program can be use the following way :

git clone https://github.com/Galigator/openllet.git
cd openllet/tools-pellint/
./searchMinimalBug.sh /path/to/the/problematic/ontology/file.owl

(it use maven compile then run)

The program use a random strategy and all yours cpu to search a sub-ontology that create the crash.
The found sub-ontology is put into the file "minimalOntologyFile.owl".

The program is 'any-time' (aka it can be stop any time with an ontology that is smaller that your original ontology, once it have check consistency at least one time); because it is random based, you can run it on many computer as you have.

from openllet.

greeny277 avatar greeny277 commented on June 4, 2024

Yet I'm unable to build your project.

For Opennllet Version 2.6.4-SNAPSHOT I get the error:

[ERROR] Failed to execute goal on project openllet-pellint: Could not resolve dependencies for project 
com.github.galigator.openllet:openllet-pellint:jar:2.6.4-SNAPSHOT: The following artifacts could not be 
resolved: com.github.galigator.openllet:openllet-jena:jar:2.6.4-SNAPSHOT, 
com.github.galigator.openllet:openllet-owlapi:jar:2.6.4-SNAPSHOT: Could not find artifact 
com.github.galigator.openllet:openllet-jena:jar:2.6.4-SNAPSHOT -> [Help 1]

After switching to version 2.6.3 another error occurs:


[WARNING]
java.lang.ClassNotFoundException: openllet.pellint.SearchMinimalBug
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:270)
        at java.lang.Thread.run(Thread.java:748)

[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.6.0:java (default-cli) on project openllet-pellint: An exception occured while executingthe Java class. openllet.pellint.SearchMinimalBug -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.6.0:java (default-cli) on project openllet-pellint: An exception occured while executing the Java class. openllet.pellint.SearchMinimalBug
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: An exception occured while executing the Java class. openllet.pellint.SearchMinimalBug
        at org.codehaus.mojo.exec.ExecJavaMojo.execute(ExecJavaMojo.java:339)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
        ... 20 more
Caused by: java.lang.ClassNotFoundException: openllet.pellint.SearchMinimalBug
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:270)
        at java.lang.Thread.run(Thread.java:748)

Any suggestions?

from openllet.

Galigator avatar Galigator commented on June 4, 2024

The SearchMinimalBug is a program I add Saturday morning, so it is only available in the 2.6.4-SNAPSHOT.

Maybe you need to build the project first.
On the openllet project root do :

mvn clean install -DskipTests=true

before going into tools-pellint/. It should take less than a minute.

from openllet.

greeny277 avatar greeny277 commented on June 4, 2024

Ok this is the resulting minimal ontology.

from openllet.

greeny277 avatar greeny277 commented on June 4, 2024

Could you reproduce the error with the minimal ontology?

from openllet.

Galigator avatar Galigator commented on June 4, 2024

Sorry for this late answer, I have try your ontology but it look good (didn't throw exception or any crash).
Do you have a configuration file with options for pellet ?

from openllet.

greeny277 avatar greeny277 commented on June 4, 2024

No i don't have any config files for pellet as far as i know...
I also tried reasoning the minimal ontology and i don't get an error either?! This is so weird.
Would you mind trying this bigger ontology with SearchMinimalBug.java for a few seconds? Just to see if you get any errors at all. I tried reasoning the linked ontology as well without removing axioms and it turns out that the randomizeAxioms() functions determines if does crash or not.

from openllet.

greeny277 avatar greeny277 commented on June 4, 2024

I'm glad that you were able to reproduce the error. I looked up the source code where the error is thrown. These backtracking algorithms are no fun to debug by only staring at the code I can tell. If you will be able to obtain a smaller ontology feel free to share it so I can help debugging.
Thx for your effort anyway!

from openllet.

greeny277 avatar greeny277 commented on June 4, 2024

That sounds great. When will the openllet 2.6.4-SNAPSHOT repository contain this fix so I can try it?

from openllet.

greeny277 avatar greeny277 commented on June 4, 2024

Shall I close the issue?

from openllet.

Galigator avatar Galigator commented on June 4, 2024

You are welcome.

from openllet.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.