Ich baue ein Maven Projekt mit OWL und SWRL APIs. Ich möchte alle Regeln in einer .owl Datei gespeichert sind, abzurufen mit dem Code unten:SWRL API Fehler: keine registrierten SWRL Regelengines
import org.semanticweb.owlapi.apibinding.OWLManager;
import org.semanticweb.owlapi.model.OWLOntology;
import org.semanticweb.owlapi.model.OWLOntologyCreationException;
import org.semanticweb.owlapi.model.OWLOntologyManager;
import org.swrlapi.core.SWRLAPIRule;
import org.swrlapi.core.SWRLRuleEngine;
import org.swrlapi.factory.SWRLAPIFactory;
import java.io.*;
import java.util.Set;
public class ManagingRules {
public static void main(String[] args) throws OWLOntologyCreationException {
OWLOntologyManager m = OWLManager.createOWLOntologyManager();
OWLOntology ontology = m.loadOntologyFromOntologyDocument(new File("pwidasFinale.owl"));
//taking SWRLs list
SWRLRuleEngine ruleEngine = SWRLAPIFactory.createSWRLRuleEngine(ontology);
// Get SWRL rules
Set<SWRLAPIRule> sets = ruleEngine.getSWRLRules();
for(SWRLAPIRule item : sets){
System.out.println(item.toString());
}
}
}
Es gibt keine Kompilierung-Fehler. Aber wenn ich diese Klasse laufen, bekam ich diese Benachrichtigung
Exception in thread "main" org.swrlapi.exceptions.NoRegisteredSWRLRuleEnginesException: no registered SWRL rule engines
at org.swrlapi.factory.DefaultSWRLRuleAndQueryEngineFactory.createSWRLRuleEngine(DefaultSWRLRuleAndQueryEngineFactory.java:47)
at org.swrlapi.factory.SWRLAPIFactory.createSWRLRuleEngine(SWRLAPIFactory.java:39)
at ManagingRules.main(ManagingRules.java:20)
In der Tat, in der .owl Datei gibt es 15 gespeicherten Regeln.
Bitte zeigen Sie mir, wo ich es beheben kann.
Ich habe ein praktisches Tutorial oder FAQ von SWRL API, einschließlich this gesucht. Aber es scheint, dass es nicht so viel hilft.
P.S. meine Coding-Fähigkeit ist schlecht
Hallo @ignazio, ich habe die Abhängigkeiten hinzugefügt und der Fehler ändert sich jetzt, ich werde es in einem anderen Beitrag fragen. Danke –