Comments (19)
I built the package from the sources and included it into my project. The error hasn't reappeared yet
from openllet.
Interesting, I will try to reproduce.
from openllet.
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.
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.
Interesting, I will try to reproduce.
Thanks .
If you can't reproduce it I would share my ontology with you.
from openllet.
I failed at reproduce it.
from openllet.
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.
Perhaps you can reproduce this error now.
from openllet.
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.
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.
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.
Ok this is the resulting minimal ontology.
from openllet.
Could you reproduce the error with the minimal ontology?
from openllet.
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.
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.
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.
That sounds great. When will the openllet 2.6.4-SNAPSHOT repository contain this fix so I can try it?
from openllet.
Shall I close the issue?
from openllet.
You are welcome.
from openllet.
Related Issues (20)
- Openllet: UnsupportedClassVersionError HOT 4
- Inconsistent results for EL and DL ontologies. HOT 2
- Clearify the relation to Pellet HOT 3
- Build Error (maven on debian10) HOT 2
- ArrayIndexOutOfBoundsException when using minQualifiedCardinality
- class file has wrong version 54.0, should be 52.0 HOT 2
- getInstances for Class Expressions using Complement doesn't work correctly HOT 2
- invalid explanations with owlapi HOT 3
- Reasoner `.bindSchema` doesn't work HOT 1
- USE_UNIQUE_NAME_ASSUMPTION = true leads to contradictions HOT 1
- DL query is NULL for Openllet reasoner
- Openllet-Jena 2.6.5 is conflicting with Apache Jena Libs > 3.15.0 ( java.lang.NoSuchFieldError: SHACLC) HOT 2
- Unsupported rule Rule HOT 2
- replace travis-ci.org with different ci service HOT 2
- The command line interface shound be documented
- [ERROR] Failed to execute goal org.apache.felix:maven-bundle-plugin:4.1.0:bundle HOT 1
- Broken Logging
- Jena API Performance Problems HOT 2
- Wrong DisjointClass(A,B) inferred if the ontology includes a Subclass(A, ObjectComplementOf(B)) HOT 2
- Do not work in Protege5.1.0 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from openllet.