Ich habe ein Problem, wenn ich SWRLAPI oder SWRL mit Drools API hinzufügen möchte. Ich habe SWRLAPI, SWRLAPI mit Drools und OWLAPI Abhängigkeiten mit Maven hinzugefügt. Es scheint ein Problem mit SWRLAPIFactory.createSWRLRuleEngine (o) zu bestehen. Hier ist meine HauptklasseAusnahme beim Hinzufügen von SWRLAPI, um Swrl-Regeln in Java zu manipulieren
OWLOntologyManager m = OWLManager.createOWLOntologyManager();
File file = new File("OoEI.owl");
OWLOntology o = m.loadOntologyFromOntologyDocument(file);
// Create a SWRL rule engine using the SWRLAPI
SWRLRuleEngine ruleEngine = SWRLAPIFactory.createSWRLRuleEngine(o);
PelletReasoner reasoner = com.clarkparsia.pellet.owlapiv3.PelletReasonerFactory.getInstance().createReasoner(o);
und hier ist mein pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>OWLAPITest</groupId>
<artifactId>OWLAPITest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<sourceDirectory>src</sourceDirectory>
<resources>
<resource>
<directory>src</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<!-- https://mvnrepository.com/artifact/net.sourceforge.owlapi/owlapi-distribution -->
<dependency>
<groupId>net.sourceforge.owlapi</groupId>
<artifactId>owlapi-distribution</artifactId>
<version>5.1.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.github.ansell.pellet/pellet-owlapiv3 -->
<dependency>
<groupId>com.github.ansell.pellet</groupId>
<artifactId>pellet-owlapiv3</artifactId>
<version>2.3.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/edu.stanford.swrl/swrlapi-drools-engine -->
<dependency>
<groupId>edu.stanford.swrl</groupId>
<artifactId>swrlapi-drools-engine</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>edu.stanford.swrl</groupId>
<artifactId>swrlapi</artifactId>
<version>2.0.0</version>
</dependency>
</dependencies>
ich diese Ausnahme erhalten:
Exception in thread "main" org.swrlapi.exceptions.SWRLRuleEngineException: Error creating rule engine Drools. Exception: java.lang.NoSuchMethodError. Message: org.semanticweb.owlapi.model.OWLOntologyManager.getIRIMappers()Lorg/semanticweb/owlapi/util/PriorityCollection;
at org.swrlapi.factory.DefaultSWRLRuleAndQueryEngineFactory.createSWRLRuleEngine(DefaultSWRLRuleAndQueryEngineFactory.java:73)
at org.swrlapi.factory.DefaultSWRLRuleAndQueryEngineFactory.createSWRLRuleEngine(DefaultSWRLRuleAndQueryEngineFactory.java:43)
at org.swrlapi.factory.SWRLAPIFactory.createSWRLRuleEngine(SWRLAPIFactory.java:39)
at OWLAPITest.main(OWLAPITest.java:45)
Caused by: java.lang.NoSuchMethodError: org.semanticweb.owlapi.model.OWLOntologyManager.getIRIMappers()Lorg/semanticweb/owlapi/util/PriorityCollection;
at org.swrlapi.factory.DefaultSWRLAPIOWLOntology.addSWRLAPIOntologies(DefaultSWRLAPIOWLOntology.java:1740)
at org.swrlapi.factory.DefaultSWRLAPIOWLOntology.<init>(DefaultSWRLAPIOWLOntology.java:161)
at org.swrlapi.factory.SWRLAPIInternalFactory.createSWRLAPIOntology(SWRLAPIInternalFactory.java:248)
at org.swrlapi.factory.DefaultSWRLRuleAndQueryEngineFactory.createSWRLRuleEngine(DefaultSWRLRuleAndQueryEngineFactory.java:55)
... 3 more
Gibt es eine Lösung? Danke dir.